Regenerated by 'make.tcl modules' + 'bootsupport' + 'vfscommonupdate'. make.tcl reaches
the predicate through a guarded require against the bootsupport snapshot, so the third
tcl-library convention only takes effect for a bake once this lands; 'make.tcl check'
confirms the gate ACTIVE and now names all three locations.
The thin-layout make.tcl copies and the templates modpod carry the reworded K10 key note,
so generated projects describe the gate the same way.
The bootsupport templates modpod again failed to copy in place with 'invalid argument' and
again succeeded on retry seconds later - the transient lock noted in the previous two
build-output commits, not a make.tcl mount this time. Copied by hand, then 'make.tcl
bootsupport' and 'vfscommonupdate' re-run to reconcile; all three copies share one sha1.
Assisted-by: harness=claude; primary-model=claude-opus-5[1m]; api-location=anthropic.com
Regenerated by 'make.tcl modules' + 'bootsupport' + 'vfscommonupdate' for the G-125
change. make.tcl loads punkboot::utils from bootsupport through a guarded require, so the
boot-precondition gate only becomes ACTIVE once the snapshot carries
vfs_boot_library_report - before this propagation 'make.tcl check' correctly reported the
gate UNAVAILABLE.
The thin-layout make.tcl copies and the templates modpod pick up the gate and the K10
workflow key note, so generated projects get the same refusal behaviour.
The bootsupport templates modpod again could not be replaced in place - 'BOOTSUPPORT
module update FAILED: ... templates-0.2.0.tm (invalid argument)'. Unlike the G-124
occurrence a plain tclsh failed on the first attempt too and succeeded on a retry moments
later, which points at a transient lock by one of the running shells rather than at
make.tcl having the file mounted. Copied by hand, then 'make.tcl bootsupport' re-run to
reconcile the punkcheck record.
Assisted-by: harness=claude; primary-model=claude-opus-5[1m]; api-location=anthropic.com
Move vendor_source_dirty_warnings out of make.tcl into punkboot::utils as
vcs_dirty_warnings (PUNKARGS-documented, caller-label param so the
bootsupport update path can share it per G-026). make.tcl now uses a
guarded lazy require and degrades to skipped-with-warning if the
bootsupport snapshot lacks the proc - a stale/broken snapshot must never
brick the make.tcl commands used to repair it.
Chicken-and-egg-safe ordering used and now documented in
src/bootsupport/AGENTS.md ("Moving make.tcl functionality into
punkboot::utils"): edit src module + bump buildversion, make.tcl modules,
make.tcl bootsupport, only then repoint make.tcl call sites. Boot-phase
code (path setup, punkboot::lib prompts, package-availability checks)
stays self-contained in make.tcl.
Bootsupport snapshot refresh from the sanctioned pipeline: punkboot::utils
0.1.0->0.1.1, shellrun 0.1.2->0.1.4 (punk::args require fix catch-up),
punk::console 0.7.1 content catch-up; layout mirrors via the
punkcheck-tracked sync steps.
New tests: src/tests/modules/punkboot/utils/testsuites/utils/vcsdirty.test
(git fixture: dirty/clean/dedupe/label/unversioned/missing) - 25/25 across
punkboot suites; vendorupdate verified end-to-end through the module path.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Move project-version helper procs (parse_punkproject_version,
read_punkproject_version, read_changelog_latest_version) out of make.tcl
inline definitions into a loadable punkboot::utils module so the parsing
logic is unit-testable.
- src/modules/punkboot/utils-999999.0a1.0.tm: new module (0.1.0) with
the 3 procs in punkboot::utils namespace, PUNKARGS argdoc blocks.
- src/modules/punkboot/utils-buildversion.txt: initial 0.1.0.
- src/tests/modules/punkboot/utils/testsuites/utils/utils.test: 19 tests
covering section tracking, missing fields, wrong sections, whitespace,
quote styles, changelog header parsing, pre-release suffixes. All pass.
- src/make.tcl: inline procs removed; projectversion block now does
package require punkboot::utils and calls punkboot::utils:: procs.
- Layout make.tcl files (punk.shell-0.1, punk.project-0.1): same edit;
punk.basic keeps inline procs (no bootsupport tree).
- include_modules.config: added punkboot::utils entry (main + 2 layouts).
- Bootsupport snapshots propagated via make.tcl bootsupport.
- AGENTS.md: project version bump 0.2.0 -> 0.2.1 (patch: new make.tcl
projectversion subcommand is part of the product surface); added
clarifying line that make.tcl command interface warrants at least a
patch bump; src/project_layouts/ added to directories agents should
not directly modify.
- CHANGELOG.md: 0.2.1 entry.
Assisted-by: harness=opencode; primary-model=openrouter/z-ai/glm-5.2; api-location=openrouter.ai