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
Pure-rename move goals/G-101-tcl86-kit-container-strategy.md ->
goals/archive/ (content edits landed in the prior commit); GOALS.md entry
-> GOALS-archive.md record (acceptance as achieved). Live-tier sweep:
G-131 Depends-on rewritten (the metakit arm now EXISTS - kithead step,
kithead.c/boot.tcl = the mk4 half of its detection; zipfs-backport open
items move there); G-130 both pending-tense sites updated (mk4 decided,
ix86 head = follow-on parity item 4); G-110 gains the measured
dll-from-vfs temp-copy fact; G-141/G-147 survey mentions gain achieved
markers; archived G-153 record+detail Scope path fixed (goals/ ->
goals/archive/, the sanctioned broken-path fix). xref report: no
unlinked pair loses its only bridge (annotated pairs are one-directional
with live links). goals_lint clean (82 active / 72 archived).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com