Acceptance verified on the rebuilt punk91 kit (plain script mode): recipe
'chan close stderr; open NUL w' yields a channel auto-named stderr with
working puts stderr; console+repl+libunknown suites 105/105. Detail file
archived content-identically with evidence recorded; GOALS-archive record
appended; sweep: G-101 launch-ladder item (2) rewritten to reflect
achievement (in-place stdio repair now available on the 9.1 kit), G-011
gains a recycled-stderr consumer pointer. goals_xref report shows no
orphaned shared-archived-ref bridges for G-120; goals_lint clean.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Activation: proposed->active flip (user-confirmed), goals_xref score re-run
recorded in detail Notes (nothing beyond the drafting survey).
Holder named: punk::libunknown zipfs_tm_UnknownHandler's builtin-static
shortcircuit leaked its version-probe child interp 'ptest' whenever an
UNVERSIONED package require of a true static reached the handler -
'package vsatisfies $v' with zero requirement args throws wrong#args,
skipping both interp-delete lines. The leaked non-safe child holds
registrations on the process std channels, so 'chan close stderr' left the
OS handle alive and the slot occupied; the next open got a fileN name and
puts stderr failed (punk91/tclsfe-9.1b0 only: Thread is a true static there,
punk905 loads it from a dll so the block never fires).
Fix (0.2.2): auto-named probe interp deleted in try/finally; zero-requirement
requires accept any provided static version; probe errors fall through to the
normal tm search. Disposition recorded in the goal detail: leak, fixed - not
console-ownership machinery.
Verified: bin/punk91 src script recipe yields channel auto-named stderr with
working puts stderr; libunknown+console+repl suites 105/105 pass (tclsh90).
punkproject 0.22.1 + CHANGELOG.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
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