Acceptance met in full (walk in the detail file's Progress): libfetch with
sha1 verification + beside-toml metadata + server-trust consent proven LIVE
against the canonical origin post-publication; PACKAGES_tcl<N> libs-step
materialization with punkcheck provenance; vendorlib_vfs.toml declarations
(source_root=packages + replace) with supersedes removing tcllib1.21 incl.
nested tcllibc 0.4 + md5c from the 8.6-family kits; punk86 kit-hosted
runtests vs the same-day baseline IDENTICAL (zero differences to
disposition); vendored trees removed in their own commit after the proven
bake (70d1838c); the post-removal verification bake shipped kits with
verifiable embedded provenance from the tcllib-vendorless checkout;
derived-project decision recorded (fc2376ca).
Index entry -> GOALS-archive.md record. Reference sweep: G-004's
pending-tense retirement line updated to delivered (+ the remaining
vendored trees named as its outstanding scope with the tcllib pattern as
template); actionable pointers pushed to G-006 (libfetch's trust gate = the
interim consent instance to absorb), G-065 (the artifact-fetch pattern to
absorb/reference), G-027 (derived-project library story via the layout
sync), G-123 (materialization twin + the live interim consent flag to
coordinate with). make.tcl workflow text updated to the landed consumption
shape (fetch -> tier -> PACKAGES phase + vfslibs packages lane); vfslibs
summary/help texts cover both source roots. Project 0.32.0 + CHANGELOG
(user-visible kit payload upgrade). goals_lint clean (82 active, 57
archived). Detail-file move to goals/archive/ follows in the adjacent
pure-rename commit.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
vfslibs processed all declared trees (45 installs): every win32 tcl9 tree's
tcllib2.0 clean-slate replaced by the artifact copy (nested md5c/tcllibc
strays gone), sibling tcllibc-tcl9 installed, stray tcllibc2.0 names
superseded; tcl8 kits upgraded - tcllib1.21 (with nested tcllibc 0.4 + md5c)
superseded out, tcllib2.0-tcl8 + tcllibc-tcl8 in; punk86bawt's bare tcllibc
refreshed; punk9linux keeps its linux-built accelerator siblings (win32
artifacts deliberately not declared there). Every installed tree carries its
embedded punkbin-artifact.toml record into the kit payloads.
Selective bake punk86 + punk905 (punk91/punksys/punk9_beta are live user
shells - trees switched, bakes at next natural rebake): both deployed;
punk905 arch scan OK (tcllibc exempt under its platform subdir); punk86's
only warning is the recorded pre-existing zint i386 defect. Kit provenance
verified both container types: punkzip central-directory read (punk905 zip
kit) and in-vfs record probe (punk86 metakit kit) - records name their
source artifacts + build_ids.
VALIDATION (acceptance): kit-hosted runtests bracket isolating exactly the
kit payload switchover - baseline (pre-switchover punk86) 1125/1099/18/8 in
5 files (exec.test, ns/nslist, ns/nsprimitives, zip/zipaccel,
stdin/runstdin; 1960s); post-switchover IDENTICAL totals, files, and
per-test outcome extraction (1119 lines, empty diff). Differences to
disposition: none - the 8 failures pre-exist on the old payload.
punkcheck-managed vfs tree changes batched per the src/AGENTS.md carve-out.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
The decision (per the acceptance, recorded in the goal detail): derived
projects obtain library binaries via the SAME fetch entrypoint by default -
generated projects receive make.tcl (libfetch + the PACKAGES phase) through
the established layout-sync/G-027 channels and declare their artifacts in
their own src/runtime/libpackages.toml; the copy-and-tweak in-project suite
build per G-104's self-description contract remains the documented
alternative (a tcllib/tcllibc-only suite needs no Tcl source tree - critcl
bundles its headers).
The pre-G-096 samplesuite1 sketch in the project-0.1 layout
(download_and_build.config, mingw64/gcc-era, self-described as SKETCH ONLY)
is removed and replaced by src/buildsuites/README.md in the layout,
documenting both routes for generated projects - the disposition the goal
Approach named. Goal Progress also records the r1 publication (punkbin
ee571ed, pushed) and the live canonical-origin libfetch verification.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
New 'make.tcl libfetch' subcommand (argdoc'd; workflow text + plain help
updated): fetches the punkbin LIB-TIER artifacts declared in the new
src/runtime/libpackages.toml ([artifact.<name>] name/target; the four G-138
r1 artifacts, both generations) from <origin>/lib/<target>/ into the
untracked bin/packages/<target>/ input tier - zip + .toml sidecar, each
sha1-verified against the server's per-target sha1sums.txt (local tier copy
kept, the punk-runtime store idiom) - then materializes each verified zip
via punk::zip::unzip (crc-verified, mtimes restored, accelerator-eligible)
into bin/packages/<target>/tcl<N>/<pkgfolder>/ (generation subdirs: both
generations install identically-named folders). Idempotent: present
artifacts re-verify and skip; a materialized tree is current while its
embedded record names the declared artifact (the G-138 self-description
payoff); -force overrides.
Consent keyed to server trust (the G-123 posture): the canonical punkbin
origin (punk-runtime raw-base convention) gates nothing; any other origin
(-serverurl or env PUNKBIN_URL) refuses before network access without the
explicit -trust-server flag - never an interactive prompt. file:// origins
served natively (mirrors/fixtures); http(s) transport: Tcl http (+tls) when
loadable, else curl, else PowerShell. The dispatch block sits before the
build-command whitelist gate per the standalone-command pattern and exits
itself.
Emission-side amendment (both suites' library_artifacts.tcl): sidecar tomls
now ride the per-tier staging sha1sums.txt, matching the punkbin repo's
build_sha1sums.tcl coverage so staging-derived mirrors serve verifiable
sidecars.
Verified against a file:// mirror assembled from both suites' staging:
trust-gate refusal, consented fetch of all 4 artifacts (sha1-verified),
materialization of all 4 trees, fully idempotent re-run, and a package-load
proof from the tier (md5 2.0.9 + tcllibc accel=1 under the plain family
kit, ifneeded paths in bin/packages). bin/packages is already ignored in
both VCS via the /bin/* rules. Docs: bin/AGENTS.md tier section,
src/runtime/AGENTS.md libpackages.toml bullet. Project version 0.31.0 +
CHANGELOG (new make.tcl subcommand = product surface). Remaining G-139 work
recorded in the goal's Progress section.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Acceptance met in full (walk recorded in the detail file's Progress): emission
step landed in BOTH suites and demonstrated end-to-end - exceeding the
demonstrate-90/record-86-follow-through minimum - with byte-identical
re-emission verified, provenance-complete schema-v2 class=library records,
sidecars + per-tier sha1sums in the same step, publication left a deliberate
user step, punkbin layout docs recording the tier (punkbin repo commit
c38686a), and md5c dispositioned (dropped; tcllib's md5 prefers tcllibc,
which bundles the accelerator).
Index entry -> GOALS-archive.md record (file's established arrow-format
convention retained). Reference sweep: G-139 Context/Alternatives/Related
updated with achieved markers + archive path, and G-138's actionable
outcomes pushed to their consumers - G-139 (settled naming, md5c drop,
staging locations of the emitted r1 artifacts), G-123 (schema v2 landed
first for the library class - runtime-side v2 rides the lineage), G-004
(lib tier = the route for library binaries out of the tracked tree),
G-066/G-067 (zip tier recorded as the interim carrier for the .tm long
game). goals_xref report shows no unlinked pairs bridged only by G-138.
ARCHITECTURE.md buildsuites paragraph gains the lib-tier sentence
(architecture_lint clean); src/buildsuites/AGENTS.md child index updated
(also corrects the stale 'G-100 active' to achieved 2026-07-26).
Detail-file move to goals/archive/ follows in the adjacent pure-rename
commit per the Doc Restructures rule.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Index tags and detail-file Status mirrors flipped proposed -> active.
Activation-freshness overlap surveys re-run (goals_xref score, both goals):
no overlaps beyond the drafting-day survey - drafted and activated same day,
no goals drafted in the interval; survey notes recorded in both detail
files. goals_lint clean.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Motivated by the 2026-07-30 provenance investigation: the vendored tcllib
trees are hand-dropped 2023/2024 local builds whose only machine-readable
provenance is critcl's teapot.txt, while both buildsuites already build
tcllib 2.0 + tcllibc (zig cc) in their default step lists with full
provenance available at build time.
G-138: publish suite-built tcllib/tcllibc as immutable -r<N> <package>.zip
artifacts in a new punkbin lib/ tier - lib/allplatforms for platform-neutral
(user decision 2026-07-30), lib/<target> for binary packages - deterministic
punkzip assembly, embedded class=library artifact record (G-123 schema-v2
lineage), sidecars + sha1sums, deliberate-publish revision discipline (zig
non-reproducibility), md5c disposition required.
G-139: consume the tier - consent-gated make.tcl fetch into an untracked
bin/packages/<target> input tier mirroring bin/runtime/<tier> (user decision
2026-07-30), punkcheck-installed lib_tcl<N> materialization, tcllib/tcllibc
brought under vendorlib_vfs.toml declarations with supersedes removing
tcllib1.21/tcllibc0.4 from 8.6-family kits (kit-hosted runtests validation),
vendored-tree retirement sequenced after a proven artifact-path bake (G-004
payoff), derived-project story: fetch default / in-project suite build
alternative.
Interim-carrier framing recorded: the zip tier does not supersede the
G-066/G-067 .tm direction. Overlap surveys run (goals_xref); strongest live
relation G-123 (runtime-tier sibling) carried in both. Also recorded in
G-139 Context: lib_tcl8|9/test_old orphans moved to
TEMP_REFERENCE/retired_lib_tcl_test_old 2026-07-30 (were untracked).
goals_lint clean.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com