Browse Source

G-159: archive retrofit - 30 files gain ## Follow-ons disposition sections

All vocabulary-flagged archived detail files structured under the v4
grammar: 24 files with real items, 6 with (none - incidental vocabulary)
notes. Census at acceptance: 50 structured follow-ons - 25 open, 17
became goals (incl. G-101''s seven-item block onto G-158/G-130/G-131,
G-057+G-128 RT_VERSION onto G-137, G-155 keep-list onto G-156), 6 landed
(evidence-backed: G-036 udp swap DONE record, G-046 same-day fix, G-031
tomlish-found core arms), 2 declined (G-036 immunity question academic,
G-096 0.15.2 migration superseded by 0.16.0 adoption). Zero
unstructured-vocabulary files remain; goals_lint clean (grammar + goal
refs validated). goals_followons.tcl: lsort -dictionary for zero-padded
ids. Evidence + open-items census recorded in the G-159 detail file.

Claude-Session: https://claude.ai/code/session_01QgaxV27VZkmEec7oNbEVFc
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 1 week ago
parent
commit
4ec0a1109f
  1. 40
      goals/G-159-followon-disposition-tracking.md
  2. 8
      goals/archive/G-001-pluggable-console-backends.md
  3. 4
      goals/archive/G-007-console-location-transparency.md
  4. 5
      goals/archive/G-012-template-payload-safety.md
  5. 6
      goals/archive/G-025-exe-selfreport.md
  6. 6
      goals/archive/G-030-maketcl-punkargs.md
  7. 5
      goals/archive/G-031-componentized-kit-boot.md
  8. 6
      goals/archive/G-036-tcl9-udp-console-worker-wedge.md
  9. 4
      goals/archive/G-037-vendorlib-vfs-propagation.md
  10. 4
      goals/archive/G-039-orphan-console-spin.md
  11. 4
      goals/archive/G-046-punkargs-deferred-help-and-fixes.md
  12. 4
      goals/archive/G-057-kit-icon-embedding.md
  13. 4
      goals/archive/G-058-static-runtime-packages.md
  14. 4
      goals/archive/G-062-project-license-file.md
  15. 4
      goals/archive/G-076-tcl9-deadconsole-fix-adoption.md
  16. 4
      goals/archive/G-082-punkargs-error-selection.md
  17. 5
      goals/archive/G-087-thin-project-layouts.md
  18. 5
      goals/archive/G-096-zig-buildsuite-piperepl.md
  19. 4
      goals/archive/G-098-suite-tk-tcllib-critcl.md
  20. 4
      goals/archive/G-099-suite-tcl86-buildsuite.md
  21. 10
      goals/archive/G-101-tcl86-kit-container-strategy.md
  22. 4
      goals/archive/G-106-powershell-consolemode-fallback.md
  23. 6
      goals/archive/G-122-host-target-platform-split.md
  24. 5
      goals/archive/G-123-thirdparty-runtime-tiers.md
  25. 4
      goals/archive/G-126-punkzip-accelerator.md
  26. 5
      goals/archive/G-128-portable-pe-resource-stamping.md
  27. 6
      goals/archive/G-139-punkbin-library-consumption.md
  28. 4
      goals/archive/G-144-punkargs-synopsis-name-fallback.md
  29. 4
      goals/archive/G-152-punkargs-form-viability-verdict.md
  30. 4
      goals/archive/G-153-metakit-punk-zig-port.md
  31. 4
      goals/archive/G-155-mint-stage-vocabulary.md
  32. 8
      scriptlib/developer/goals_followons.tcl

40
goals/G-159-followon-disposition-tracking.md

@ -91,3 +91,43 @@ prose.
terms-only noise with no path overlap (commandstack internals / tcltestrun
parsing - unrelated territory); standing relationships unchanged
(Related: G-156).
## Progress
2026-08-03: implemented whole in three change-sets (activation; v4 contract +
tooling; archive retrofit) and verified.
- Contract: goals/AGENTS.md Follow-ons section (line grammar, closed
disposition vocabulary, sanctioned disposition-only edits, archive-sweep
step (c)); GOALS.md v4 front matter + version entry + maintenance/authoring
rule wiring; GOALS-archive.md frozen-file carve-out.
- Tooling: goals_lint.tcl Follow-on grammar findings, fixture-verified (a
malformed disposition token and a disposition naming a goal in neither index
both fire, exit 1); goals_followons.tcl advisory report, fixture- and
live-verified (nested parens and ' => ' inside item text parse correctly;
lsort -dictionary fix for zero-padded goal ids).
- Retrofit (user-granted blanket permission 2026-08-03): all 30
vocabulary-flagged archived files received ## Follow-ons sections - 24 with
structured items, 6 with '(none - incidental vocabulary)' notes. Dispositions
evidence-checked where cheap: G-036's udp-swap DECIDED+DONE record (landed),
G-046's same-day fix record (landed), make.tcl @form -synopsis overrides
still present so the G-144 item stays open, tclvfs absent from punk9win.vfs
so the G-058 item stays open, G-101's seven follow-on items mapped onto
G-158 (x3) / G-130 / G-131 / open (x2). Judgment-call dispositions reported
in the completion summary.
- Acceptance verification 2026-08-03: goals_lint clean (84 live-index goals,
77 archived); goals_followons report on the real archive: 50 structured
follow-ons in 24 files - 25 open, 17 goal, 6 landed, 2 declined - and ZERO
unstructured-vocabulary files. Open items at acceptance (G-<home> item):
G-001 junction stacks punk/0-only; G-001 get_prompt_config tcl_interactive
keying; G-007 ownership hint; G-025 punkorigin stamp gap, make.tcl check
line, module-provenance report; G-030 result-dict key-shape docs; G-031
make.tcl shell boot-core surface; G-036 tcludp upstream tickets; G-058 tcl9
tclvfs bundle-or-accept; G-062 LICENSE.txt layout seeding; G-082
typed-value screen message; G-087 fauxlink link_as; G-098 PUNK_TEST_TK
silent end; G-101 head publication, suite-owned kit writer; G-106 raw-mode
typing feel; G-122 pure-Tcl zip decoder, no-tcl_library deploy refusal;
G-123 per-name detail view, mapvfs seam characterization; G-128 zip
convention conversion; G-139 linux lib-tier emission, libfetch httpfixture
test; G-144 synopsis-override drops. Full listing reproducible via
'tclsh scriptlib/developer/goals_followons.tcl report'.

8
goals/archive/G-001-pluggable-console-backends.md

@ -148,3 +148,11 @@ thread::send to the thread's MAIN interp):
- get_prompt_config still keys result/info prompt decoration on process tcl_interactive,
so a foreign-console repl in a non-interactive process shows undecorated results
(prompts themselves are emitted).
## Follow-ons
Follow-on: streaming bridge for foreign-console code-interp output (junction-to-pipe + fileevent forwarding, replacing per-run batch emission) => goal G-002
Follow-on: junction stacks are wired for repltype punk/0 only - safe/safebase/punksafe subshells on a foreign console still write code-interp output to process std channels => open
Follow-on: raw-mode/editbuf behaviour on a foreign console is untested (exercised when raw-default and completion work run) => goal G-013
Follow-on: scoped ansi_wanted/colour_disabled + raw-state tsv (process-global today; a foreign-console repl settling ansi_wanted affects the whole process) => goal G-008
Follow-on: get_prompt_config keys result/info prompt decoration on process tcl_interactive, so a foreign-console repl in a non-interactive process shows undecorated results => open

4
goals/archive/G-007-console-location-transparency.md

@ -146,3 +146,7 @@ already lives in tsv because it must be visible to all threads.
future default); fixing line-mode query cooperation would be its own goal.
Related: both diagnostics observed (the query-timeout stderr message, the "chan blocked"
notice) are the kind of raw diagnostic traffic G-011 gives a defined per-console home.
## Follow-ons
Follow-on: subclass-level ownership hint on ::opunk::Console (small additive change if a subclass ever needs it; the registry stays punk-side) => open

5
goals/archive/G-012-template-payload-safety.md

@ -182,3 +182,8 @@ out of this goal's acceptance - candidate follow-on goal.
punkproject.toml workflow defaults plus ignore rules into layout payload - a new
payload class for this goal's inert-storage plus refresh machinery to carry; the
seeding rides this goal's refresh step.
## Follow-ons
Follow-on: fossil binary-glob/crlf-glob seeding so generated projects' trailing fossil commit survives binary payloads => goal G-146
Follow-on: inert storage + materialize-at-generation treatment for future layout AGENTS.md payloads (same hazard class as the .gitignore payloads) => goal G-027

6
goals/archive/G-025-exe-selfreport.md

@ -157,3 +157,9 @@ Edge cases driving the acceptance clauses:
generating shell belongs to a checkout (read via punkboot::utils from
punkproject.toml); bare kits currently record an empty version - a stamped
kit-level punkshell version would close that gap.
## Follow-ons
Follow-on: close the punkorigin.toml punkshell_version gap for bare kits by reading the buildinfo stamp => open
Follow-on: 'make.tcl check' report line for the stamp/gate surfaces => open
Follow-on: running-interp module-provenance report (which copy of each key punk module is loaded and where from - kit vfs / bootsupport / dev paths), making silent provenance mixing observable => open

6
goals/archive/G-030-maketcl-punkargs.md

@ -220,3 +220,9 @@ and names ::punkboot::argdoc as an in-tree constructed-def exemplar.
- Old `echo y | make.tcl vfscommonupdate` agent workflow is retired; docs
updated (src/AGENTS.md, src/tests/shell/AGENTS.md, src/bootsupport/AGENTS.md,
src/modules/AGENTS.md).
## Follow-ons
Follow-on: runtests/make.tcl-adjacent tooling that returns result dicts documents the key shape => open
Follow-on: punk::args synopsis fallback to @cmd -name for script-level definition ids => goal G-144
Follow-on: @cmd -help indent leak in constructed definitions (G-045 mechanisms adopted in make.tcl: block form + @normalize + capability probe) => landed 2026-07-14 (this file's post-achievement Follow-up section)

5
goals/archive/G-031-componentized-kit-boot.md

@ -258,3 +258,8 @@ permanently own - a thousand lines of boot code.
kit-reported via the G-025 buildinfo surfaces (stamp + live);
guidance shipped (sample, READMEs, AGENTS.md, runtime-queryable
moduledoc::punkboot); collision gate live across every bake this arc ran.
## Follow-ons
Follow-on: make.tcl shell adopts the punk executable launch surface by sourcing the shared boot core (plain runtime + checkout presents the same surface as a kit) => open
Follow-on: graceful missing-app-package subcommand arms found during the tomlish demonstration => landed 2026-08-02 (boot core 0.2.1, punkshell 0.47.1)

6
goals/archive/G-036-tcl9-udp-console-worker-wedge.md

@ -531,3 +531,9 @@ exit 0
`shutdown_free_threads` already does); `shellfilter::run` must honor its `-syslog` option
instead of the hardcoded `127.0.0.1:514` in `log::open` (debug leftover - the correct call
sits commented out beside it).
## Follow-ons
Follow-on: punk8win.vfs 8.6 kits swap udp 1.0.12 -> tcludp 1.0.13 => landed 2026-07-08 (via the G-037 vfslibs propagation step; Loose ends DECIDED+DONE record above)
Follow-on: explain the apparent 8.6 immunity to the worker-thread wedge => declined 2026-07-08 (academic once all kits carry 1.0.13)
Follow-on: polite upstream tickets for residual tcludp trunk weaknesses (auto-reset-event-as-lock, packetNum recvfrom error path, INFINITE waits without watchdog) => open

4
goals/archive/G-037-vendorlib-vfs-propagation.md

@ -114,3 +114,7 @@ Verification (2026-07-08, acceptance met - goal flipped to achieved):
while the punk9win kit vfs bundles twapi 5.2.0 - vendorlib and kit vfs trees have already
diverged in BOTH directions (vendorlib newer for udp, older for twapi), so the sync step
needs explicit direction/authority semantics, not just "copy newer over older".
## Follow-ons
Follow-on: lib_tcl8 kits served by the same propagation mechanism (punk8win udp 1.0.12 superseded) => landed 2026-07-08 (G-036 loose-ends record; dual-generation tcludp 1.0.13 folder serves both generations)

4
goals/archive/G-039-orphan-console-spin.md

@ -155,3 +155,7 @@ All remaining items resolved:
- Root cause verified independent of punkshell with plain tclsh 9.0.3; upstream ticket
draft written to `TEMP_REFERENCE/tcl9-dead-console-spin-TICKET-DRAFT.md` (filing is a
user decision, not gating this goal).
## Follow-ons
(none - 'parked' in this file is the tcl86-console-parked-read prior-art name, not a deferred item)

4
goals/archive/G-046-punkargs-deferred-help-and-fixes.md

@ -196,3 +196,7 @@ deferred ${[helpers::example ...]} expands once into the display cache as design
- Related: G-045 (authoring ergonomics - same resolve neighbourhood; free sequencing),
G-041 (form matching will exercise resolve paths more heavily - deferral lightens its
per-form attempts), G-044 (completion wants fast parse-spec resolution).
## Follow-ons
Follow-on: post-achievement 'i punk::args::define' timing regression (user-reported) => landed 2026-07-10 (advisory parse at -errorstyle minimal; parity within noise, recorded above)

4
goals/archive/G-057-kit-icon-embedding.md

@ -315,3 +315,7 @@ recorded as gathered:
Acceptance evaluated 2026-07-29 against every clause: met. The flip archives
this file; the cross-host shortcoming + G-128 remedy note above and the
Decisions section carry the durable design record.
## Follow-ons
Follow-on: RT_VERSION version-information resource stamping (requirements sketch above; reconcile with the kit stamp and embedded artifact record so the provenance surfaces tell one story) => goal G-137

4
goals/archive/G-058-static-runtime-packages.md

@ -141,3 +141,7 @@ Implementation-discovered refinements to the Approach:
punk902z + full shell tree unchanged (23 pass/2 constraint skips); full punk/lib
tree green. tclsfe-x64.exe pinned in punkbin (commit b2dbbe6) with sha1sums and
new AGENTS.md scaffolding.
## Follow-ons
Follow-on: bundle a tcl9 tclvfs build in punk9win.vfs, or accept vfs-less zipfs kits (vfs is primarily needed for .kit interop) => open

4
goals/archive/G-062-project-license-file.md

@ -32,3 +32,7 @@ Repo-sweep for top-level license claims found none contradicting BSD-2-Clause:
- Goal files (G-060, G-063, G-064) reference "license" in their contracts — descriptive, not claiming a project license.
No contradictions. The project-level license declaration is unambiguous: BSD-2-Clause via `LICENSE.txt`, `README.md`, `AGENTS.md`, and `punkproject.toml`.
## Follow-ons
Follow-on: seed LICENSE.txt into generated project layouts (deliberately excluded from this goal's acceptance; project_layouts sync is restricted) => open

4
goals/archive/G-076-tcl9-deadconsole-fix-adoption.md

@ -263,3 +263,7 @@ Landed:
Remaining manual items: none. The 9.0.5 verification runtime is the ad-hoc zig build
recorded in the earlier 2026-07-20 entries; reproducing it as a tracked suite is G-096
(proposed).
## Follow-ons
(none - 'parked' refers to earlier zig versions set aside in C:/zig/_aside*, not a deferred item)

4
goals/archive/G-082-punkargs-error-selection.md

@ -81,3 +81,7 @@ multiform rank_form_failures selection.
G-071 achieved 2026-07-12 (the optional-element allocation
machinery this selection logic sits beside - goals/archive/G-071-punkargs-optional-allocation.md).
- Archived-goal references in this file: G-030 achieved 2026-07-14 (goals/archive/G-030-maketcl-punkargs.md); G-074 achieved 2026-07-13 (goals/archive/G-074-punkargs-multiform-ambiguity-lint.md).
## Follow-ons
Follow-on: a REQUIRED typed value failing the basic-type screen reports missingrequiredvalue rather than a typemismatch naming the word (the rejection-record seam would cover it) => open

5
goals/archive/G-087-thin-project-layouts.md

@ -502,3 +502,8 @@ injection + bare-kit criteria verified 2026-07-19 (increment 3); the
overlay case (custom-over-vendor override + .anti deletion + name@base
derived layout via the sample-0.1/othersample fixtures materializing into a
generated project) verified this increment. No remaining items.
## Follow-ons
Follow-on: per-ref update-policy keys (allowupdates/repo/reposubdir) carried by the layout ref body, feeding derived-project pull provenance => goal G-027
Follow-on: fauxlink link_as encoder (the counterpart of resolve) for stage-2 migration tooling => open

5
goals/archive/G-096-zig-buildsuite-piperepl.md

@ -406,3 +406,8 @@ Remaining for acceptance:
and behaviour matrix (earlier increments), both-VCS tracking + samplesuite1/
vendorbuild reconciliation, bin/AGENTS.md naming policy + punk-getzig rename
(original increments). Ready for the achieved flip on user confirmation.
## Follow-ons
Follow-on: zig 0.15.2 recipe migration (transformer script + findings preserved in the increment-2 record) => declined 2026-07-20 (0.16.0 adopted as the suite pin instead)
Follow-on: Tk, tcllib accelerators via critcl, and testsuite-gating as new suite scope => goal G-098

4
goals/archive/G-098-suite-tk-tcllib-critcl.md

@ -272,3 +272,7 @@ user direction 2026-07-20:
clean -all removes it), checkouts under _build with FOSSIL_HOME isolation and
--nested. critcl is git, not fossil - clone/pin convention to be settled in the work
(git clone under _build with a pinned tag/commit is the expected shape).
## Follow-ons
Follow-on: PUNK_TEST_TK=1 opt-in silently ends the runtests run right after the file header (exit 0, no tally; pre-existing on both runtimes) => open

4
goals/archive/G-099-suite-tcl86-buildsuite.md

@ -192,3 +192,7 @@ later.
the arm's-length runtime-factory shape that direction took for Tcl cores. The two
zig surfaces share the pinned-zig / zig-only toolchain policy; G-116's
extension-build pattern is the living edge of G-005's expansion list.
## Follow-ons
(none - 'Follow-on arc' describes this goal's own lineage from G-096/G-098, not a deferred item)

10
goals/archive/G-101-tcl86-kit-container-strategy.md

@ -657,3 +657,13 @@ it over cookfs/zipvfs, since Tcl 9 already has zipfs and needs no help.
ride fully target-keyed: non-default-target kits bake to bin/kits/<platform>/ and
per-.vfs %platform% payload declarations select per consuming kit target - container
kits inherit both unchanged - see goals/archive/G-127-crosstarget-vfs-bake.md.
## Follow-ons
Follow-on: make.tcl sdx resolution ladder gains the suite-shell rung ahead of the tclkit last resort (retire/repair the stale bin/sdx1.bat wrapper while there) => goal G-158
Follow-on: family variants of the mk4 head (-punk/-bi battery payloads per the G-103 shapes) => goal G-158
Follow-on: punk86-kit parity bake ('kit'-type mapvfs entries wrapping punk .vfs payloads with the suite head) => goal G-158
Follow-on: win32-ix86 head (cross-target parameterization of suite_tcl86; the mk4 pieces are dual-arch-proven) => goal G-130
Follow-on: publication of the heads (runtime-tier schema-v2 records to punkbin; punkres icon/version stamping at the established seam) => open
Follow-on: dual-container runtime boot detection (this goal's kithead.c/boot.tcl are the mk4 half) => goal G-131
Follow-on: suite-owned kit writer (sdx option (b), setupvfs.tcl as the reference) if ever warranted => open

4
goals/archive/G-106-powershell-consolemode-fallback.md

@ -207,3 +207,7 @@ Remaining manual item: none gating. The user's interactive feel of raw mode on t
suite runtimes (typing experience) is the natural follow-up confirmation; the
mechanical acceptance criteria are all verified above. 8.6-runtime verification is
recorded as residue against the G-099 arc (see ## Notes).
## Follow-ons
Follow-on: interactive typing-experience confirmation of raw mode on the suite runtimes (user feel; the mechanical acceptance criteria are verified) => open

6
goals/archive/G-122-host-target-platform-split.md

@ -222,3 +222,9 @@ clause was verified:
detail block names the tier and whether the target is the host default or
declared; the workflow text gained key note [K9] and a target-keyed store
line. punkshell 0.24.1 -> 0.25.0.
## Follow-ons
Follow-on: third-party runtime tier publication/fetch via punkbin or alternative servers (schema-v2 provenance labeling, server-trust-keyed consent) => goal G-123
Follow-on: vendor or write a pure-Tcl zip decoder so the zipfs-less msys bake path is self-contained => open
Follow-on: refuse to DEPLOY a kit whose extraction produced no tcl_library instead of warning past it => open

5
goals/archive/G-123-thirdparty-runtime-tiers.md

@ -361,3 +361,8 @@ see goals/archive/G-058-static-runtime-packages.md).
discipline); the index Scope ps1-path correction (contract edit
awaiting approval: the payload lives at
src/scriptapps/bin/punk-runtime.ps1, not src/scriptapps/punk-runtime.ps1).
## Follow-ons
Follow-on: per-name detail view for a not-yet-fetched artifact (if acceptance walking finds it wanted) => open
Follow-on: permanent seam-based characterization of fixture-tier wiring (needs an alternate-mapvfs-config seam in make.tcl, which does not exist today) => open

4
goals/archive/G-126-punkzip-accelerator.md

@ -324,3 +324,7 @@ working tree; one now exists.
baseline. (The Git tclsh is not a full-suite runner - 194 environmental
failures there predate this work.)
ACCEPTANCE FULLY MET - flipped achieved 2026-07-27 as part of this closeout.
## Follow-ons
(none - 'follow on their own line' is output-format description prose, not a deferred item)

5
goals/archive/G-128-portable-pe-resource-stamping.md

@ -456,3 +456,8 @@ the parked RT_VERSION stamping wants, since the project version is known late.
(metakit via consent), punkluck86 (PE32, live bakes both arms + linux
cross-bake), zipcat construction; suites punkres upstream 33/33 both
platforms, punkres.test 8/8, punkexe 83/0. Remaining manual items: none.
## Follow-ons
Follow-on: RT_VERSION stamping carrying the project version through this tool's resource structures => goal G-137
Follow-on: in-place conversion between archive-relative and file-relative zip conventions (same fix-up machinery, delta direction reversed) => open

6
goals/archive/G-139-punkbin-library-consumption.md

@ -248,3 +248,9 @@ State at drafting worth recording:
live user shells this session); a piped binscripts characterization
test for libfetch (httpfixture pattern) is a natural test-coverage
follow-up.
## Follow-ons
Follow-on: linux-x86_64 lib-tier emission for punk9linux's linux-built tcllibc siblings (candidate goal - not written) => open
Follow-on: remaining kits switch to lib-tier payloads at their next natural rebake => landed 2026-08-02 (subsequent full 11-kit bakes through the 0.47.x arc)
Follow-on: piped binscripts characterization test for libfetch (httpfixture pattern; adjacent to the maketcllibfetch.test coverage planned by G-141/G-147) => open

4
goals/archive/G-144-punkargs-synopsis-name-fallback.md

@ -42,3 +42,7 @@ The goal text named "(shared)/(package)-style doc ids" alongside (script) as ben
- Verification: synopsis.test 22/22; full modules/punk/args/*** + modules/punk/ns/*** suites green apart from two PRE-EXISTING nsprimitives.test failures (nseval_ifexists_weird, nstree_raw_pins - weird colon-run namespace handling, fail identically with the module change stashed; unrelated). tcl87 runner. make.tcl modules + bootsupport rebuilt (bootsupport snapshot now args-0.13.0.tm; the run also propagated two lagging source bumps - commandset::layout 0.2.0->0.3.0, commandset::project 0.4.0->0.4.1, and the shellfilter 0.2.4 G-145 comment - and pruned the superseded copies). 'make.tcl help modules' renders unchanged (explicit @form -synopsis overrides still win). Project version 0.39.5 -> 0.39.6 (patch: latent capability, no currently-shipped definition renders differently).
- Remaining for acceptance: none - the Acceptance clauses are all met and pinned. Achieved 2026-08-01: the user confirmed the settled (script)-only gate against the Goal statement's (shared)/(package) mention (the survey shows those families declare no invocation-style -name today, so there is nothing to render differently; widening later is a one-line prefix-match extension in punk::args::synopsis).
- Follow-on (not part of this goal's acceptance): make.tcl drops its per-definition @form -synopsis overrides - under G-143 if active, else a small follow-on edit; the punkexe moduledoc's six overrides are the same candidate set.
## Follow-ons
Follow-on: make.tcl drops its per-definition @form -synopsis overrides and the punkexe moduledoc's override set once the @cmd -name fallback serves them => open

4
goals/archive/G-152-punkargs-form-viability-verdict.md

@ -25,3 +25,7 @@ Raised by user review of 'make.tcl help tool info' output (2026-08-02, during th
- 2026-08-02 IMPLEMENTED (punk::args 0.14.0, punkshell 0.41.3): verdict computed by a viability-probe mode on the single-form engine (`private::get_dict_form` optional 4th arg) rather than by remapping failure classes. The probe suppresses exactly the pure-exhaustion raises - below-minimum leading/trailing count shortfalls and missing-required leader/option/value checks, each position-guarded (leaders only with no option/value words consumed; options only before value words and any eopts `--`; values always), plus an adhoc option's value lying beyond the supplied words - and lets every contradiction raise stand INCLUDING final validation of the consumed words (the soundness backstop; the engine validates types/choices only AFTER the count/required checks, which is exactly why the raw failure classes could not carry the verdict, and why the G-071 screen asymmetry - basic types screened even for required args, choices deliberately unscreened - made {frobnicate} class identically to {info}). Multiform candidacy confirms each classify-'incomplete' per-form failure with one probe re-parse before recording it (contradiction-classed failures skip the probe); parse_status's single-form formstatus record gets the same confirmation; parse_status's top-level status keeps the engine classification for single-form parses (display-scheme driver) - the split is documented in the argdoc.
- 2026-08-02 VERIFIED (native tclsh 8.7 via runtests.tcl): acceptance scenarios pinned in new `src/tests/modules/punk/args/testsuites/args/formviability.test` (10 tests: {info} -> classes {incomplete invalid invalid invalid} with the viable info form ranked first; {frobnicate} -> all invalid, overall parse_status status now 'invalid'; {build -bogus} -> all invalid; -formerrors/formstatus agreement; success-path verdicts; required-option position guards; single-form formstatus soundness incl the engine-vs-verdict split on a type-screen rejection; clause-partial conservatism; message marking). Contract documented in the parse argdoc ('Multiform failure contract' section: errorcode shape + class vocabulary) and the parse_status argdoc (formstatus verdict semantics). Rendered noformmatch marks each form line '(viable - needs more arguments)' / '(not viable)' after the stable "form '<fid>':" anchor (anchor pinned unchanged). args subtree green (28 files + the new suite); full source-tree run at exact parity with a stashed-baseline run (the same 21 pre-existing environment failures on this box - twapi-less tcl 8.7a6 child SIGILLs in repl consolebackends/nscurrent, core exec.test, argparsingtest, ansi grepstr, lib compat lpop edge, ns nslist/nsprimitives, zip zipreader - none args-related). forms.test verdict pins deliberately updated: formstatus ms/idle for {cancel after#1} 'incomplete'->'invalid' (words failing their type screens are contradictions).
## Follow-ons
(none - 'follow-on session' in Context describes session lineage, not a deferred item)

4
goals/archive/G-153-metakit-punk-zig-port.md

@ -316,3 +316,7 @@ into a kit-class shell copy (inc 6); fork commit pinned with ready-to-land
sources.config and build.zig.zon record text captured (inc 5); root
LICENSE landed with the first ported sources (inc 1). The Progress
remaining-work list is EMPTY; goal achieved.
## Follow-ons
(none - 'follow-up' records an in-arc decision hardening, not a deferred item)

4
goals/archive/G-155-mint-stage-vocabulary.md

@ -220,3 +220,7 @@ machine-wide derived-project census; this goal's prose/tag/workdir sweep stands
Related: G-035 + G-047 (2026-08-02 pre-activation score run) - same src/modules + src/lib AGENTS.md
guidance surfaces and layout-seed/ignore-rule sync channels G-112's Notes recorded for both; their
surfaces receive this sweep's vocabulary - coordinate edit windows if either activates concurrently
## Follow-ons
Follow-on: promote the identifier keep-list to alpha-window renames with a derived-project census => goal G-156

8
scriptlib/developer/goals_followons.tcl

@ -100,28 +100,28 @@ puts "goals_followons report: $ntotal structured follow-on(s) in $nfiles_with ar
if {[llength $open_items]} {
puts "\nOPEN (not yet acted on):"
foreach row [lsort -integer -index 0 $open_items] {
foreach row [lsort -dictionary -index 0 $open_items] {
lassign $row fid item
puts " G-$fid $item"
}
}
if {[llength $goal_items]} {
puts "\nBECAME GOALS:"
foreach row [lsort -integer -index 0 $goal_items] {
foreach row [lsort -dictionary -index 0 $goal_items] {
lassign $row fid gid item
puts " G-$fid -> G-$gid $item"
}
}
if {[llength $landed_items]} {
puts "\nLANDED (done without a goal):"
foreach row [lsort -integer -index 0 $landed_items] {
foreach row [lsort -dictionary -index 0 $landed_items] {
lassign $row fid date item
puts " G-$fid $date $item"
}
}
if {[llength $declined_items]} {
puts "\nDECLINED:"
foreach row [lsort -integer -index 0 $declined_items] {
foreach row [lsort -dictionary -index 0 $declined_items] {
lassign $row fid date item
puts " G-$fid $date $item"
}

Loading…
Cancel
Save