G-176 marked active (user-directed).
New src/tests/modules/punk/libunknown/testsuites/discovery/packageoverride.test
pins the CURRENT punk::libunknown ::package override ahead of the increment-2
migration onto commandstack::rename_command.
BEHAVIOUR pins (must stay green byte-identically through the migration):
'package epoch tm|pkg' single-arg forms, indexed '<which> <index> ?key?'
queries, the four error arms, the filtered forget arm (real-ifneeded
forgotten, no-ifneeded filtered out, tcl/Tcl/tcl::oo/tk denied, mixed lists
partially applied), abbreviation acceptance (ep/epo/epoc + fo routing, with
the parked builtin's rejection of 'ep' pinned as the override's deliberate
delta), delegation pass-through, and the re-init no-op contract (stderr
notice captured via a child ::puts shim).
MARKED-TO-FLIP pins (comment-fenced to the increment-2 commit and no other):
the install shape (::package origin = the ::punk::libunknown::package
namespace import; :📦: parked and functional) and the two-override
packagepreference interop children in BOTH real-world install orders
(punkshell's pkgpref-first: stack count 1 + import origin; make.tcl's
libunknown-first: stack count 1 + ::package proc origin).
Children are fresh interps sourcing the source-tree
libunknown/commandstack/packagepreference by path via a shared
highest-version locator (discovery.test pattern). All 11 pins green on the
first run against the live implementation. Tests AGENTS.md index updated;
goal file gains its Progress entry.
testbody_lint 1699 clean; goals_lint clean (80 active-index / 96 archived);
modules tree 1346 total / 1335 pass / 11 constraint-skipped / 0 fail
(zig-built tclsh90s 9.0.5).
Claude-Session: https://claude.ai/code/session_01QgaxV27VZkmEec7oNbEVFc
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Four-increment arc from the 2026-08-08 feasibility investigation:
(1) characterise the untested arms of the current punk::libunknown
::package override (epoch single-arg/indexed forms + error arms, the
entire forget arm, abbreviation acceptance, delegation, re-init guard,
packagepreference interop in both install orders; install-shape pins
marked to flip), (2) migrate that override onto
commandstack::rename_command (one managed stack for both live ::package
overrides - cures the restore_original/wrong-command latent hazard of
the current unmanaged mix), (3) rename_command -punkargs stack-tied doc
blocks (attach at the single rename site, detach at the remove_rename
choke point every removal path funnels through; stackdocs registered
namespace covers renames performed before punk::args loads), (4)
cmdhelp/cmdinfo override-in-place hint (G-166-style second axis, live
get_stack query, no hard dependency) + the flagship {::package epoch}
doc attachment and the commandstack::help how-to.
Investigation evidence embedded in the goal Context: probe-verified
space-form doc define/resolve/undefine/fallback cycle ('i package
epoch' resolves despite the parent's restricted choices - G-051
space-form jump), record-key append contract, undefine_deflist
primitive, no external :📦: callers, the dead
has_package_files declaration, both real-world install orders.
goals_lint clean (80 active-index goals / 96 archived).
Claude-Session: https://claude.ai/code/session_01QgaxV27VZkmEec7oNbEVFc
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com