Browse Source

Polyglot scope policy recorded (bootstrap-only); G-006 fetcher-shape leaning noted

bin/AGENTS.md gains the user's 2026-07-29 principle: the multishell polyglot
mechanism exists to serve BOOTSTRAPPING (no-tclsh/no-toolchain cold start -
punk-runtime, punk-getzig) and, being complex and potentially fragile long
term, is not to be expanded unnecessarily - capabilities that only run with a
tclsh present belong in-tree behind make.tcl. G-006's Notes record the
corresponding fetcher-shape leaning (non-contract): no punk-gettool polyglot;
the make.tcl-integrated downloader the goal's Approach already leans toward is
the indicated shape (build-tool fetching always has a tclsh - make.tcl IS the
consumer), with punkres on the punkbin tools tier noted as the first concrete
artifact the channel would serve. Doc-only, non-shipped surfaces - no version
bump.

Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 1 day ago
parent
commit
1c771a8920
  1. 10
      bin/AGENTS.md
  2. 13
      goals/G-006-prebuilt-artifact-download.md

10
bin/AGENTS.md

@ -16,6 +16,16 @@ deliberately fragile (mutual shell-hiding tricks, LF-only endings, cmd.exe's 512
label-scanner constraints) - a hand-edit can silently break one of the participating label-scanner constraints) - a hand-edit can silently break one of the participating
shells. shells.
Polyglot scope policy (user, 2026-07-29): the multishell mechanism exists to serve
BOOTSTRAPPING - reaching a working punkshell environment from a machine that has no
tclsh or toolchain yet (`punk-runtime` fetches runtimes, `punk-getzig` fetches the
zig toolchain). Because the mechanism is complex and potentially fragile over the
long term, do not expand it unnecessarily: a capability that only runs when a tclsh
is already present (anything make.tcl-adjacent - fetching build tools such as
punkres, for example) belongs in-tree behind make.tcl (the G-006 direction), not in
a new polyglot. Propose a new polyglot only when the no-tclsh bootstrap case
genuinely applies.
When asked to "fix bin/<name>.cmd": When asked to "fix bin/<name>.cmd":
1. Edit the payload/config sources under `src/scriptapps/bin/` (never the output file). 1. Edit the payload/config sources under `src/scriptapps/bin/` (never the output file).
2. Re-wrap from the scriptset's folder: cd `src/scriptapps/bin` then 2. Re-wrap from the scriptset's folder: cd `src/scriptapps/bin` then

13
goals/G-006-prebuilt-artifact-download.md

@ -48,3 +48,16 @@ This goal is parallel to and independent of G-005. A user with zig uses G-005; a
tcltls removes the largest standing class of prebuilt binaries this channel tcltls removes the largest standing class of prebuilt binaries this channel
would otherwise carry long-term - G-116's scope note ("prebuilt replacement would otherwise carry long-term - G-116's scope note ("prebuilt replacement
path") is this goal's build-side counterpart. path") is this goal's build-side counterpart.
- Fetcher-shape leaning (user, 2026-07-29, recorded during the G-128 closeout
discussion): do NOT shape this goal's downloader as a new polyglot scriptset
(a punk-gettool sibling of punk-getzig was considered and set aside) -
polyglots serve BOOTSTRAPPING, the no-tclsh cold start, and are deliberately
not expanded beyond it (bin/AGENTS.md "Polyglot scope policy"). Build-tool
fetching always runs with a tclsh present (make.tcl is the consumer), so the
make.tcl-integrated downloader this file's Approach already leans toward is
the indicated shape - e.g. a 'make.tcl tool fetch <name>' surface reusing
the tool step's vendored-version/installed-state knowledge, with this goal's
consent flag and G-123's server-trust keying; extending punk-runtime remains
G-123's parallel lane for runtime tiers. The first concrete artifact this
channel would serve exists: punkres on the punkbin tools tier (G-128,
achieved - route in src/tools/punkres/PROVENANCE.md "Distribution").

Loading…
Cancel
Save