diff --git a/goals/G-159-followon-disposition-tracking.md b/goals/G-159-followon-disposition-tracking.md index 2e13ee61..e73d7670 100644 --- a/goals/G-159-followon-disposition-tracking.md +++ b/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- 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'. diff --git a/goals/archive/G-001-pluggable-console-backends.md b/goals/archive/G-001-pluggable-console-backends.md index c483eb28..894f240d 100644 --- a/goals/archive/G-001-pluggable-console-backends.md +++ b/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 diff --git a/goals/archive/G-007-console-location-transparency.md b/goals/archive/G-007-console-location-transparency.md index 1f3e3376..037c1cb2 100644 --- a/goals/archive/G-007-console-location-transparency.md +++ b/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 diff --git a/goals/archive/G-012-template-payload-safety.md b/goals/archive/G-012-template-payload-safety.md index cb60e0e6..e539ebf6 100644 --- a/goals/archive/G-012-template-payload-safety.md +++ b/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 diff --git a/goals/archive/G-025-exe-selfreport.md b/goals/archive/G-025-exe-selfreport.md index 72fdb2cd..3f82242e 100644 --- a/goals/archive/G-025-exe-selfreport.md +++ b/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 diff --git a/goals/archive/G-030-maketcl-punkargs.md b/goals/archive/G-030-maketcl-punkargs.md index c19615f2..0bdcac77 100644 --- a/goals/archive/G-030-maketcl-punkargs.md +++ b/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) diff --git a/goals/archive/G-031-componentized-kit-boot.md b/goals/archive/G-031-componentized-kit-boot.md index 57452954..c14dbd6b 100644 --- a/goals/archive/G-031-componentized-kit-boot.md +++ b/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) diff --git a/goals/archive/G-036-tcl9-udp-console-worker-wedge.md b/goals/archive/G-036-tcl9-udp-console-worker-wedge.md index 94c61806..69c9d19e 100644 --- a/goals/archive/G-036-tcl9-udp-console-worker-wedge.md +++ b/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 diff --git a/goals/archive/G-037-vendorlib-vfs-propagation.md b/goals/archive/G-037-vendorlib-vfs-propagation.md index cde8f8ce..d659f556 100644 --- a/goals/archive/G-037-vendorlib-vfs-propagation.md +++ b/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) diff --git a/goals/archive/G-039-orphan-console-spin.md b/goals/archive/G-039-orphan-console-spin.md index 89d13cab..253ed5d5 100644 --- a/goals/archive/G-039-orphan-console-spin.md +++ b/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) diff --git a/goals/archive/G-046-punkargs-deferred-help-and-fixes.md b/goals/archive/G-046-punkargs-deferred-help-and-fixes.md index 9d446cbd..1cd40512 100644 --- a/goals/archive/G-046-punkargs-deferred-help-and-fixes.md +++ b/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) diff --git a/goals/archive/G-057-kit-icon-embedding.md b/goals/archive/G-057-kit-icon-embedding.md index 3be4c2f4..0fdf05b0 100644 --- a/goals/archive/G-057-kit-icon-embedding.md +++ b/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 diff --git a/goals/archive/G-058-static-runtime-packages.md b/goals/archive/G-058-static-runtime-packages.md index c13b90d8..1cfba617 100644 --- a/goals/archive/G-058-static-runtime-packages.md +++ b/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 diff --git a/goals/archive/G-062-project-license-file.md b/goals/archive/G-062-project-license-file.md index 243fbf7a..49ff7902 100644 --- a/goals/archive/G-062-project-license-file.md +++ b/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 diff --git a/goals/archive/G-076-tcl9-deadconsole-fix-adoption.md b/goals/archive/G-076-tcl9-deadconsole-fix-adoption.md index a7e6eda0..676b2aa6 100644 --- a/goals/archive/G-076-tcl9-deadconsole-fix-adoption.md +++ b/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) diff --git a/goals/archive/G-082-punkargs-error-selection.md b/goals/archive/G-082-punkargs-error-selection.md index db93c023..4f6b8f80 100644 --- a/goals/archive/G-082-punkargs-error-selection.md +++ b/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 diff --git a/goals/archive/G-087-thin-project-layouts.md b/goals/archive/G-087-thin-project-layouts.md index b5ca5d28..437c417f 100644 --- a/goals/archive/G-087-thin-project-layouts.md +++ b/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 diff --git a/goals/archive/G-096-zig-buildsuite-piperepl.md b/goals/archive/G-096-zig-buildsuite-piperepl.md index 17220bf5..27f23bfd 100644 --- a/goals/archive/G-096-zig-buildsuite-piperepl.md +++ b/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 diff --git a/goals/archive/G-098-suite-tk-tcllib-critcl.md b/goals/archive/G-098-suite-tk-tcllib-critcl.md index dc9ce949..4fa7e90e 100644 --- a/goals/archive/G-098-suite-tk-tcllib-critcl.md +++ b/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 diff --git a/goals/archive/G-099-suite-tcl86-buildsuite.md b/goals/archive/G-099-suite-tcl86-buildsuite.md index f7a299fa..03b352ec 100644 --- a/goals/archive/G-099-suite-tcl86-buildsuite.md +++ b/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) diff --git a/goals/archive/G-101-tcl86-kit-container-strategy.md b/goals/archive/G-101-tcl86-kit-container-strategy.md index bfca8c66..c964c4e2 100644 --- a/goals/archive/G-101-tcl86-kit-container-strategy.md +++ b/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// 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 diff --git a/goals/archive/G-106-powershell-consolemode-fallback.md b/goals/archive/G-106-powershell-consolemode-fallback.md index 6fb9fe2b..f7037d77 100644 --- a/goals/archive/G-106-powershell-consolemode-fallback.md +++ b/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 diff --git a/goals/archive/G-122-host-target-platform-split.md b/goals/archive/G-122-host-target-platform-split.md index a74c348c..181e21e2 100644 --- a/goals/archive/G-122-host-target-platform-split.md +++ b/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 diff --git a/goals/archive/G-123-thirdparty-runtime-tiers.md b/goals/archive/G-123-thirdparty-runtime-tiers.md index 50a12568..68459152 100644 --- a/goals/archive/G-123-thirdparty-runtime-tiers.md +++ b/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 diff --git a/goals/archive/G-126-punkzip-accelerator.md b/goals/archive/G-126-punkzip-accelerator.md index cf0526e3..99147526 100644 --- a/goals/archive/G-126-punkzip-accelerator.md +++ b/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) diff --git a/goals/archive/G-128-portable-pe-resource-stamping.md b/goals/archive/G-128-portable-pe-resource-stamping.md index b042c2b2..f2d5f653 100644 --- a/goals/archive/G-128-portable-pe-resource-stamping.md +++ b/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 diff --git a/goals/archive/G-139-punkbin-library-consumption.md b/goals/archive/G-139-punkbin-library-consumption.md index 3f3c4229..9f4a6ad4 100644 --- a/goals/archive/G-139-punkbin-library-consumption.md +++ b/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 diff --git a/goals/archive/G-144-punkargs-synopsis-name-fallback.md b/goals/archive/G-144-punkargs-synopsis-name-fallback.md index d9e639ba..6afd49c1 100644 --- a/goals/archive/G-144-punkargs-synopsis-name-fallback.md +++ b/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 diff --git a/goals/archive/G-152-punkargs-form-viability-verdict.md b/goals/archive/G-152-punkargs-form-viability-verdict.md index d4cccd9a..2802cb60 100644 --- a/goals/archive/G-152-punkargs-form-viability-verdict.md +++ b/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 '':" 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) diff --git a/goals/archive/G-153-metakit-punk-zig-port.md b/goals/archive/G-153-metakit-punk-zig-port.md index eb4819c2..bdb28c00 100644 --- a/goals/archive/G-153-metakit-punk-zig-port.md +++ b/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) diff --git a/goals/archive/G-155-mint-stage-vocabulary.md b/goals/archive/G-155-mint-stage-vocabulary.md index a8d61a44..a9fb5b75 100644 --- a/goals/archive/G-155-mint-stage-vocabulary.md +++ b/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 diff --git a/scriptlib/developer/goals_followons.tcl b/scriptlib/developer/goals_followons.tcl index 14806237..efa9dd8f 100644 --- a/scriptlib/developer/goals_followons.tcl +++ b/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" }