The kit launch surface dogfoods punk::args. Boot core 0.2.1 -> 0.3.0:
new built-in 'help' subcommand + '-help' / '<subcommand> -help' render
tabled usage from the moduledoc::punkexe ids plus live registrations
(per-kit resolved_def clones (script)::punkexe.launcher/.launcherhelp);
unknown first arg naming no existing file (and no lib:* reference) is
refused with usage (stderr exit 1) instead of a silent script attempt;
buildinfo enforces its no-arguments contract through punk::args (pinned
one-liner + tabled usage, exit 2 unchanged). Registration extension
::punkboot::project_subcommand_info (summary/argsid/package/parse -
documented by moduledoc::punkboot 0.2.0): project subcommands appear in
help by registration alone and may opt arguments into declared parsing.
Carve-outs: tool-style kits keep help flags routed to their processor
(tomlish parity); tclsh intercepts a help flag only as sole argument
(stock dash parity); argsid-less registrations keep -help passthrough.
G-030 degradation doctrine: lazy guarded requires (normal boots never
load punk::args), PUNKBOOT_PLAIN=1 hook, plain-list fallback, rendering
degrades independently of parsing. 8.6 trap fixed en route: punk::args
choices-grid render needs punk::lib's lpop shim - guarded require added
(verified tabled help on metakit punk86).
moduledoc::punkexe 0.4.0: (script)::punkexe::help definition; top-level
refusal rule + help discovery; per-subcommand -help notes; buildinfo
rejection shape; passthrough-vs-parsed decision recorded.
Verified on zipfs (punk902z, punk91) and metakit (punk86) kits;
launcherhelp.test 22/22 (incl fake-thin-main registration harness +
metakit leg); punkexe subtree 140/136/4skip/0fail; full suite failures
(4) are pre-existing in untouched subsystems. Goal flipped achieved +
archive record + live-tier sweep (G-038 rewrite, pointers to G-077 and
G-089); detail-file move to goals/archive follows as a pure rename.
Layout _config trio + _vfscommon core seed hand-swept (byte-identical
to masters). GOALS.md staged as the G-032-removal hunk only - the
uncommitted G-159 draft entry is left to its author.
Claude-Session: https://claude.ai/code/session_01Y1diJnhjUxKgEG6EwYAzxj
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com