Acceptance verified in full: all 11 issue-list items dispositioned
(2026-07-24) with decided fixes landed (items 3/4/5/9 in 0.20.0, items 1/7
via the G-117-cycle patch rev, item 10 docs in 0.20.1, item 11 console test)
and items 2/6/8 documented-as-intended in the item-10 definitions; durable
doc home = punk::args::moduledoc::punkexe; tclshcmd.test 19 piped tests
green vs punk902z + punk9_beta; dorepl console-reopen path console-driven
(punkconsole gate, 21/21 with PUNK_TEST_CONSOLE=1).
Flip: detail file status achieved 2026-07-25 + flip evidence record; entry
moved to GOALS-archive.md; detail file to goals/archive/. Reference sweep:
ARCHITECTURE.md tclsh bullet marked achieved + G-118 removed from the
in-flux launch-surface list; G-031/G-032/G-077/G-120 notes updated with
archive markers and landed-state wording (G-032 now points at the shipped
punkexe moduledoc ids as its source material; G-077 notes the boundary text
to update when -e lands). goals_lint clean, architecture_lint clean,
goals_xref report carries no G-118-bridged unlinked pairs.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
New src/tests/testsupport/consoleinject.ps1: the G-106 recipe's injection
half as a committed helper - FreeConsole/AttachConsole to a target pid's
console, open CONIN$, type lines as WriteConsoleInput key events.
tclshcmd.test: constraint punkconsole (windows + PUNK_TEST_CONSOLE=1; normal
runs skip) gates two tests driving the reopen path end-to-end in the child's
OWN hidden console (outer Start-Process -WindowStyle Hidden wrapper owns a
fresh console; wrapper runs '<kit> tclsh' there with std handles redirected
to files; piped code sets dorepl; injected lines + exit 0 finish it).
Pinned: reopened flips 0 -> 1 at reopen with istty immutable at 0,
inputbuffer published empty, reopen notice silent by default and STDERR-only
under TCLSH_PIPEREPL_DEBUG=1, injected exit completes with code 0 - closing
the item-1/7 console-side residue. Deadlines + wrapper-tree kill keep the
tests hang-proof; the piped-harness HANG RULE stands for everything else.
Verified: PUNK_TEST_CONSOLE=1 run 21/21 against punk9_beta; normal run
19 pass + 2 console skips; shell/*** suite 64 pass / 4 skips / 0 fail.
AGENTS updates: src/tests/shell (tclshcmd bullet - coverage now exists,
refined hang rule), src/tests (testsupport index + .ps1 helpers wording).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
New punk::args::moduledoc::punkexe 0.1.0: (script)::punkexe dispatch
definition (package modes, subcommand enumeration, default reclassification)
+ (script)::punkexe::tclsh full contract (stock arg-form parity incl the
deliberate no -e boundary (G-077), lib: refusal, piperepl ::tclsh state
array + env gates, intended divergences recorded per item decisions 2/6/8)
+ summary definitions for script/shell/punk/shellspy. G-032-compatible: the
launcher help/parse wiring renders from these ids later.
punk::args 0.12.7: update_definitions handles tag-prefixed id namespaces
first-class - namespace_docpackages consulted with the tagged key (usage/
real_id on registered-but-unloaded (script)::* ids no longer no-such-id),
generic tag strip for the real-namespace probes, unqualified-ns warning no
longer fires for tag ids. args/ns/repl suites 352 pass 0 fail.
punk::repl 0.5.3: code-interp setup catch-requires the punkexe moduledoc
beside tclcore (both sites) so the docs are queryable in any punk shell.
ARCHITECTURE.md: tclsh subcommand bullet in the boot/launch chain
(architecture_lint clean). punkproject 0.20.1 + CHANGELOG.
Verified: fresh-interp usage-first render (real_id path); rebuilt punk902z
kit self-carries 0.1.0 (5298-char tclsh render); piped punk session renders
(script)::punkexe with no manual require.
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
Acceptance evidence in the archived detail file: embed verified in all three
family members (family_check), sidecar derived from embed with identical
build_id, 'info' identifies sidecar-paired/renamed-stray/pre-v1 files without
execution and flags doctored-sidecar disagreements, punkbin AGENTS.md schema
docs, roundtrip pin green, record survives make.tcl kit wrapping (punk9_beta
reads its runtime's r2 record in-kit), r2 re-emitted with full v1 records.
Sweep: achieved markers in G-025/G-057/G-108/G-116/G-118/G-119 (G-025's
survival expectation updated to confirmed). tclshcmd.test pins
::tclsh(reopened) publication on the rebuilt patched kits (G-118 items 1+7
landed+verified; Progress updated). build905.zig: packager git-identity leg
judges success by output not out_code (resolved 'unrecorded' on this host -
effective at next emission).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Cross-references recorded after user-prompted overlap review (none of the four
files referenced its counterpart): G-117 embedded runtime record vs G-025
kit-layer stamp (record expected to survive kit wrap - two-layer provenance,
build_id linkage for the stamp's runtime field, namespaced filenames); G-118
item 10 refined to G-032-COMPATIBLE punk::args definitions as the docs home
(rendering/parsing/degradation stay with G-032; item-4 file-exists precedent
noted for G-032's reclassification rule); item 9 duplication interim pending
G-031; G-077 tclsh -e boundary note. G-118 Progress records items 3/4/5/9
landed (0.20.0) with verification evidence.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com