Activation gated on the G-112 rename core + G-104 contract (both achieved
today); score re-run recorded. First increment:
- suite_tcl86/: sources.config (source + self-description records - lists and
describes itself via 'make.tcl buildsuite list/info' with no make.tcl
edits), suite.tcl fork (folder-derived naming, {tcl tclthread tclvfs}
requireds, build86.zig recipe file), build86.zig pending-derivation skeleton
(staging succeeds, recipe fails with a clear message), build.zig.zon with
real zig-fetch hashes, README with the DERIVATION record.
- Thread 2.8 selection: thread-2-8-branch @ e14fa771ae (tagged thread-2-8-13,
2.8.13); configure.ac TCL_MAJOR_VERSION==8 guard confirms the pairing.
- 8.6 source records in BOTH flows: dev refs (core-8-6-branch -> tcl86,
thread-2-8-branch, tclvfs trunk 1.4.2-era) + zon per-checkin pins
(tcl 1d1d5cbd91 = 8.6.18 era).
- First staging run through 'make.tcl buildsuite build suite_tcl86' (a real
driver run through the G-104 surface): checkouts staged from the shared
hermetic store, TCL_PATCH_LEVEL 8.6.18 read from the tree.
- makefile.vc derivation findings recorded incl. two Context corrections:
8.6.18 DOES generate tclUuid.h; zlib is prebuilt-import in stock nmake
(zig-only recipe will compile compat/zlib statically).
Core-test census + baseline deliberately pending until a built tclsh86 exists
(recorded in Progress).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Acceptance evidence recorded in each detail file before the content-identical
archive moves:
- G-112: fresh-rebuild bake products BYTE-IDENTICAL to pre-rename vfs products
(punk91 zip-wrap + punk86 kit-wrap; vacuous punkcheck-skip pass caught and
redone), vfslibs phase runs inside bake, aliases + bakehouse dirty-refusal
verified live, docs/layout copies swept, punkexe suites 54/0 green.
- G-113: zero-ESC piped on tclsh90 + punk kit + 8.6, force overrides, real
Windows-console and WSL-pty mode=tty evidence, maketclcolour.test green;
manual-visual note recorded.
- G-104: list/info/build + self-description contract verified incl. a copied
tree; punk-kit hosting; docs in place.
Sweep: G-005/G-018/G-035/G-047/G-099 pending-tense references rewritten with
archive pointers; forward-notes pushed to G-108/G-061/G-105; G-099<->G-108
re-bridged with a direct Related line (their bridges were all archived).
Also: tclsh9.0.5-punk working runtime re-materialized to r2 (stale local
materialization exposed by the window's bake - G-118 piperepl pins green again).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
- GOALS.md: "Goals-system: v2" front matter; canonical "Goals system versions"
section; Scope structure rule (elements separated by '; ' at top level,
commas only inside parens/braces); Child DOX Index note in root AGENTS.md
- goals_lint.tcl: new finding for top-level commas in Scope lines
(paren/brace depth-aware)
- goals_xref.tcl: repo-local configuration via goals/xref.conf (path roots,
stop words, file extensions, reference containers, module dirs,
bare_path_roots, prefix_anchors); defaults byte-identical to previous
behaviour (verified on this tree)
- goals/AGENTS.md: cross-repo goal references drop the G- prefix; xref.conf
documented in Verification
- Scope delimiter normalisation across GOALS.md, GOALS-archive.md and all
detail files, live and archived: 224 lines, top-level commas only;
conservation verified (goals_xref report byte-identical pre/post, diff
hunks are Scope lines only). Archived tier converted under explicit user
approval; sanctioned exception recorded in GOALS-archive.md.
Assisted-by: harness=opencode; primary-model=openrouter/moonshotai/kimi-k3; api-location=openrouter.ai
Final acceptance item closed by the punk9_beta/punk9bi_beta kit-wrap
trial (user go-ahead; quiet tree): make.tcl project wrapped both kits
over the family runtimes (the user's own earlier same-day build agreed -
punkcheck no-change), and probes UNDER each kit verified 9.0.5,
//zipfs:/app/tcl_library, PIPEREPL MACHINERY PRESENT, Thread 3.0.7
winning over the vfs payload's legacy thread3.0.1, vfs/tcllib/tcllibc
engaged, punk::args from the vfs side, and Tk create/destroy in both -
punk9bi_beta's Tk necessarily from the runtime's attached image
(punk9win_for_tkruntime.vfs carries none). Every acceptance clause is
now met; evidence recorded in the detail file.
Flip mechanics: Status achieved 2026-07-22; detail file to
goals/archive/ (content-identical move after edits); index entry to
GOALS-archive.md; reference sweep across 13 live goal files (archive
markers per the G-058 precedent - non-contract text only, Scope lines
untouched; pending-tense updates in G-099 arc-unblocked, G-108 family
production landed, G-018/G-023 naming-authority pointers). Forward
pointers pushed to live goals: G-101 (8.6-family deferral target),
G-067 (family -rN artifacts exist; publication user-gated with the
defaults.txt flip process).
Flagged (completion report): tcltls bi-battery line loses its goal home
with this archive - candidate goal on request; punk9wintk905.vfs legacy
thread3.0.1 payload cleanup can ride a future payload refresh; beta
promotion is the user's interactive trial per the *_beta convention.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Raw mode on twapi-less windows runtimes made dependable and quiet: lazy
singleton server (tsv-shared per process, spawn no longer at module
load), parent-pid self-reaping (no orphan pwsh), the 20s
keepalive-without-pinger and the first-message listener kill (reader
Close disposing the pipe stream) both fixed, disableraw served on
no-inputmode runtimes (8.6 path), enable confirmed via live tcl9
-inputmode before return, script resolution env -> argv0 -> module-dir
-> embedded copy (pwd fallback gone; kits need no scriptlib on disk).
PUNK_PS_CONSOLEMODE_DEBUG=1 for diagnostics both sides.
scriptlib/utils/pwsh reconciled: canonical consolemode_server_async.ps1
rewritten (protocol enableraw|disableraw|ping|exit, parent-pid watch,
posh-git MIT attribution for the C# snippet), five experiment variants
retired (consolemode_server.ps1, *_async1.ps1, *_async.2ps1,
consolemode.ps1, consolemode_enableraw.ps1), README labels the folder.
New console suite psfallback.test pins the embedded-copy/file sync and
the resolution chain. punk::repl stale comment fix (no behaviour
change). Verified per the recipe recorded in the goal detail file:
hidden-console selftests on suite tclsh90spr + zipfs kit tclsh90sprzip
(25s-idle survival, stop/respawn, zero orphans), live make.tcl-shell and
bare-repl sessions driven by injected keystrokes (console mode
0x1E7<->0x1E1 read externally), embedded-resolution forced run, console
testsuite 76/76. G-106 acceptance met - achieved flip recorded in the
detail file; archive move follows in the next commit.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Layout fold ("fold stale layout fixes into this"): both layout stores
(src/project_layouts/vendor/punk/project-0.1/bin and the modpod-templates
equivalent) had shipped a stale 2025-era runtime.cmd and a pre-G-096
getzig.cmd - the getzig rename had missed this channel entirely, so
generated projects still received old-named, stale utilities. Both renamed
via git mv AND refreshed to byte-copies of the current bin/punk-runtime.cmd
+ bin/punk-getzig.cmd; the layout src/runtime/Readme.md references updated
in both stores (the layout bin/runtime/ data-dir READMEs are gitignored -
updated on disk only, like the root bin/runtime/README.md); residual
old-name scan of the layout trees clean. The built modpod zips (root
modules/ + bootsupport templates-0.2.0.tm) carry old names until their
normal re-vendor cycles. Layout paths join the goal Scope per the approved
fold.
Flip mechanics: detail file to goals/archive with Status achieved
2026-07-21 (verification in its Progress section: full rename sweep, pins
retargeted and passing 26/25/1/0, drift findings recorded), GOALS.md entry
removed, GOALS-archive record appended (amended Scope + Acceptance
verbatim), reference sweep: G-103 scope parenthetical (both tiers) +
Relationships and the G-099/G-103 sequencing notes annotated with the
achievement; G-096's archive gains a note recording the layout-channel gap
and its closure. goals_lint clean (75 active-index goals, 31 archived).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
User confirmation 2026-07-21, noted in the three affected goals: the bin
naming sweep runs first (runtime.cmd -> punk-runtime lands before G-103
extends the scriptset's list/use), the kit family + naming decision +
punkbin publication next, and the suite_tcl86 fork is taken only after the
family assembly steps exist in suite_tcl90 (fork-timing logic per
G-102-before-G-099), giving G-101 a concrete payload contract.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Acceptance evidence recorded in the archived detail file: PATH-scrubbed
clean-clone demonstration (c:/T/g102, env probed tclsh/fossil/git-free) ran
'zig build bootstrap' end-to-end - zon-pinned sources materialized, runtime +
piperepl variants built, smokes green (static/zip shells, Tk tooltip, tcllib,
tcllibc accelerators via critcl+zig cc), demo shell's tcl::build-info identical
to the fossil-flow build; scrubbed test gate 69552/56075/13468/9 with 8
baselined + fCmd-30.3 proven a SystemDrive scrub artifact (single-file rerun
with the var: GATE PASS), matching the same-day fossil-flow delegated gate
(69552/56040/13503/9 GATE PASS). Environment findings (critcl target probing,
windows Run-step stdio, testsuite base-env needs, firewall consent on first
socket listen) recorded in the detail file for future suite work.
Flip mechanics: detail file to goals/archive with Status achieved 2026-07-21,
GOALS.md entry removed, GOALS-archive record appended (Scope+Acceptance
verbatim), pending-tense G-102 references in G-099/G-103/G-104/G-105 annotated
with the achievement and the settled driver shape. goals_lint clean (77
active-index goals, 29 archived).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Direction agreed 2026-07-20: the whole buildsuite pipeline becomes
drivable with only the pinned zig toolchain present. Pre-tclsh phases
(fetch, configure-product generation, compile) move into the zig build
layer with sources in a content-hashed zon-shaped manifest (fossil
sources pin as per-checkin tarballs - '-refresh' becomes 'bump the pin';
fossil-checkout flow retained as the dev alternative); post-tclsh phases
(tcllib/tklib installers, critcl, parsed-totals test gate) stay Tcl
scripts run by the FRESHLY BUILT suite tclsh as build steps. Acceptance
includes a PATH-scrubbed no-tclsh end-to-end demonstration, preservation
of the copy-and-tweak retargeting property, and the recorded rejection of
a bash+powershell polyglot for this layer (polyglot craft remains the
acquisition layer's mechanism - punk-getzig/getpunk first contact).
Cross-references: G-096 direction note marked RESOLVED -> G-102 (its
remaining items close on the current suite.tcl shape regardless); G-099
sequencing now weighs birthing suite_tcl86 onto the chosen driver shape.
goals_lint clean (76 active, 26 archived).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
G-098 (suite_tcl90 Tk+tklib, tcllib/tcllibc via critcl, test gating)
flipped to achieved 2026-07-20 and archived - all acceptance items
recorded in the goal file across increments 1-7 (Tk 9.0.2 + tklib,
tcllib+tcllibc ~248x hashing speedup, parsed-totals test gate with
dispositioned baseline, full punkshell runtests parity with the Tcl903
baseline including Tk suites unskipped, kit-hosted runs fixed).
New proposed goals mirror the arc for fossil core-8-6-branch (8.6 stays
punkshell's real Tcl 8 target; current punk86-class kits ride prebuilt
third-party tclkits - a provenance gap):
- G-099: suite_tcl86 core - zig-only 8.6 runtime + thread 2.8-branch +
tclvfs + parsed-totals core-test gate with its own dispositioned
baseline. Records expected differences (no zipfs, entry-point/bundled
lib divergences, no tcl::process).
- G-100: Tk 8.6 + tklib + tcllib/tcllibc via critcl on the 8.6 runtime +
punkshell runtests census against a native 8.6 kit baseline.
- G-101: kit container strategy without zipfs (metakit/tclkit lineage vs
cookfs vs zipvfs boot; TEMP_REFERENCE/metakit + KitCreator guidance) -
separated so the well-understood ports stay incrementally landable.
Sequencing recorded in each goal: recommendation is to close G-096's
remainder and run the punk905_beta trial to promotion before activating
the 8.6 arc, so shared suite scaffolding settles before it is forked.
goals_lint clean.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com