Extends the dirty-bake provenance follow-on's publish-command endpoint with
the -r<N> derivation duty (user question 2026-08-08: must -Dlibrev be
manual?): the build recipe cannot safely self-derive (deliberate-publish
discipline, no configure-time mutable-state inputs, rev-inside-artifact
means comparison must build AT the published rev and sha1-compare);
publish verdicts current / bump to max+1 / alpha in-situ replace, asserted
on a checked claim. Records the recipe-default-as-published-state
convention (familyrev precedent) and librev's observed drift as the manual
failure mode - default+comment repair due at the r2 publish. goals_lint
clean.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
goals_lint caught both: the index Scope mirror must match the amended detail
Scope (index carries a mirror the amendment commit missed), and the new
alternatives bullet's G-176 reference needed its achieved/archive marker.
Lint now fully clean, no findings or warnings.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Extends the proposed goal with Approach 11 + matching Goal/Scope/Acceptance
clauses and a Context assembly finding (2026-08-08): zip-kit bake EXTRACTS
the runtime's attached vfs into the per-kit merge tree, so runtime batteries
are structurally maskable - but supersedes/replace run in the VFSPAYLOAD
phase before extraction and never reach them, so a bi-runtime kit with a
lower-versioned payload battery ships both copies and highest-wins picks the
runtime's. The amendment: mapvfs.toml kit-entry runtime_excludes applied at
merge time after extraction - the payload version wins by absence of
competition. Guardrails (boot-critical refusal, smokerequire proof),
provenance (mask = declared config, punkkit-stamp runtime_masks key,
no-volatile-fields safe; runtime's own record never edited), zip-lane first.
Alternatives recorded: require-time pinning via the managed ::package
override, runtime-variant proliferation. goals_lint clean.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Records the 2026-08-08 assessment as a live-tier Notes item (becomes a
Follow-on line at the flip, per goals/AGENTS.md - live goals carry no
Follow-ons section): near-term tree_state field in the advisory kit sidecar
surfaced by bakelist/BAKE SUMMARY/buildinfo; endpoint a publication-side
content-addressed manifest (kit sha1 -> producing commit, absence IS the
indication) sequenced after G-171's records-free-clone reproducibility
lands; stamp/payload and filename homes rejected (determinism principle,
name-keyed machinery). goals_lint clean.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Records that the stale_bootsupport gate cited as the layout-store report's
shape template now emits via the shared punkboot::lib::bootsupport_stale_warning
helper (b729ce07): Approach 10's implementer should generalize that helper
rather than hand-roll a second block, keeping the semantic split deliberate -
bootsupport staleness aborts/prompts (stale copies execute make.tcl itself),
the layout-store report is report-and-proceed. goals_lint clean.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
Investigation prompted by the 0.56.2 BAKE SUMMARY work, whose 'make.tcl modules'
run silently refreshed the tracked layout copies: does the mint terminology cover
that write? It does not, and the write is G-171's own class on the mint side.
Finding. make.tcl's sync_layouts phase (modules/libs/packages/bakehouse) performs
two different movements fused in one block. (a) It copies src/make.tcl,
src/build.tcl, the root .gitignore and the bootsupport manifests into the tracked
src/project_layouts store; (b) it copies that store into the templates modpod
source tree. Neither is mint by make.tcl's own G-155 definition - nothing is
version-stamped and nothing lands in the projectroot modules*/lib*/ trees.
(a)'s target IS a VCS-tracked consumption tree - the store 'dev project.new'
generates from - so it has promotion's shape, and release-sequence step (9)
already commits it beside the two promotion targets. Of the three such trees only
this one has no named command, no gate and no TERMINOLOGY entry: 'sync' appears
there purely as a MECHANISM word, so the movement it performs was never assigned
a stage and inherited mint by accident of which subcommands call it. (b) is the
one genuinely mint-internal half - input preparation ordered deliberately before
the source-modules mint that packs #modpod-* trees (verified: a modules run's
freshly packed templates-0.2.0.tm carries the same run's make.tcl, so there is no
one-run lag).
Contract changes (user-approved wording, proposal-first per GOALS.md):
- Goal: subject widened to (mint, bake/bakehouse/vfslibs ...); the deliberate-
writes clause now covers tracked TREES incl. refreshing the thin-layout store.
- Scope (both tiers, mirror verified identical): new element naming the
sync_layouts phase, its two targets and the workflow_text TERMINOLOGY/DIAGRAM 1b
stage-verb assignment.
- Acceptance: new clause - the sync writes no tracked path from a mint or
bakehouse run, refreshing store + modpod payload is an explicitly-invoked
command, the mint commands report a stale store instead of silently refreshing
it, and the vocabulary names the layout store as the third consumption tree.
Non-contract: Context gains a fourth structural problem (incl. the bakehouse help
claiming it does NOT run the promotion gates while writing a tracked consumption
tree) plus the vocabulary finding; Approach gains step 10 (explicit command +
stale_bootsupport-shaped check + the TERMINOLOGY/DIAGRAM/help corrections).
Back-pointer sweep (goals_xref reported 14 goals G-171 references without one):
added 'Related: G-171' to the eight it lists as genuinely related - G-004, G-006,
G-065, G-141, G-147, G-156, G-157, G-162 - each worded from that goal's own side.
Deliberately NOT added to G-089, G-114, G-131, G-019, G-020, G-116: G-171's own
overlap survey records those as judged not related in substance, so a back-pointer
would assert a relationship the survey ruled out. They remain the only flagged
pairs, which is the intended state.
G-171 stays 'proposed' - activation is the user's call.
Verified: goals_lint clean (81 active, 90 archived); GOALS.md and detail-file
Scope lines byte-identical; goals_xref score G-171 now surfaces G-156 at 1.28 on
the two newly-added paths (the overlap the new Related line records, invisible
before the fold).
Claude-Session: https://claude.ai/code/session_017yWCebiNUVFtTrMA9GvsYd
Assisted-by: harness=claude; primary-model=claude-opus-5[1m]; api-location=anthropic.com
Index entry + detail file goals/G-171-bake-writes-land-untracked.md; goals_lint
clean (81 live, 90 archived). Drafted at user direction from the 2026-08-06
consumer-machine incident: a stale untracked bin/punkzip.exe (pre-2.4.0)
received the v2.4.0 -b flag, swallowed it as the archive-name positional
(misdirected 90MB src/-b archive), the kit-container step failed and the died
bake stranded half-replaced tracked src/vfs trees - the failure class this
goal removes by construction.
Contract: routine bake/bakehouse/vfslibs phases write only to VCS-ignored
locations (declared payloads materialize into ignored staging; merge-time
layering enacts drop-in-wins identically on records-free fresh clones);
deliberate tracked-tree writes remain available only as explicit
materialize/tidy commands whose output is an ordinary reviewable VCS change,
with docs steering to declarations by default. Acceptance keys on a kill-probe
(clean tree in, clean tree out at arbitrary kill points), phase write-target
self-checks, and a 'bake -hold' inspection point whose completion must equal a
single uninterrupted bake - staged assembly reused only under digest-confirmed
currency (machinery shared with G-162), held staging machine-owned (inspection
sanctioned, hand-edits redone, never shipped).
Related: G-004 (write-side complement), G-157, G-162, G-065, G-141, G-147,
G-006; deliberately revises archived G-115's operative-assembly-area stance
and generalizes archived G-127's staging pattern.
Claude-Session: https://claude.ai/code/session_01EukjNTv2r5msFgHzWgaCdS
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com