From e11247b467519814fef9ff5f0626a8c4360777ee Mon Sep 17 00:00:00 2001 From: dan-claude-bot Date: Mon, 20 Jul 2026 12:41:30 +0000 Subject: [PATCH] docs: the provenance comment matches #61's pinned contract, not the old story Review found `commands/platform.sh` still telling future readers that a missing converged_* pair is a legitimate state on a freshly bootstrapped box. It is not, and the rest of this PR already says so: #61's writer records both pairs equally at bootstrap, so no writer produces that manifest -- its absence means partial or hand-edited. README and the fixtures were corrected in an earlier commit of this series; the comment beside the code was not, which left the one artifact a future change actually reads while editing this block still arguing the retired position. Also corrects two examples that went stale under this PR rather than in it. #76 and #77 merged while this was in review, so the marker example in the same file -- and the sample `rig platform` output in README -- still showed `role=dev class=human host=yes join=authkey`, a spelling bootstrap no longer writes. Now `role=dev-server root-door=closed host=yes join=authkey`, with a note that the renderer prints whatever fields a marker carries, so a pre-rename box still shows its own class= line unchanged. Comments and docs only; no behaviour change. Same defect class both times -- prose that contradicts the contract the tests pin -- which is why the sweep went wider than the one site reported. Co-Authored-By: Claude Opus 4.8 --- README.md | 2 +- commands/platform.sh | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1db81aa..a8b82a8 100644 --- a/README.md +++ b/README.md @@ -740,7 +740,7 @@ VIRT kvm PROVENANCE CONVERGED 0.6.0, 2026-08-02T09:11:03Z BOOTSTRAP 0.4.0, 2026-07-19T14:24:51Z -ROLE dev (class=human host=yes join=authkey) +ROLE dev-server (root-door=closed host=yes join=authkey) ``` "Is this the 32GB one, or the M900?" was previously a question you answered by diff --git a/commands/platform.sh b/commands/platform.sh index 65c446d..c72d11c 100755 --- a/commands/platform.sh +++ b/commands/platform.sh @@ -170,9 +170,12 @@ if [ -r "$MANIFEST" ]; then if [ -z "$M_SCHEMA$B_BY$B_AT$C_BY$C_AT" ]; then field RIG "manifest present but carries no recognised fields ($MANIFEST)" else - # 'not recorded' rather than 'unknown': under #61's rule 2 converged_* is - # written only when the version actually differs, so its absence is a - # legitimate state on a freshly bootstrapped box, not a lost value. + # 'not recorded' rather than 'unknown', and it does NOT describe a fresh + # box: #61's writer records both pairs equally at bootstrap, so no writer + # produces a manifest missing converged_* — its absence means the file is + # partial or hand-edited. Deliberately not backfilled from bootstrapped_*, + # because inferring a convergence that never happened is worse than saying + # the record is not there. README and the fixtures pin exactly this. field CONVERGED "${C_BY:-not recorded}${C_AT:+, $C_AT}" field BOOTSTRAP "${B_BY:-not recorded}${B_AT:+, $B_AT}" [ -n "$M_SCHEMA" ] && [ "$M_SCHEMA" != "1" ] && \ @@ -182,8 +185,11 @@ else field RIG "not bootstrapped (no $MANIFEST)" fi -# The role marker is bootstrap's own line — 'role=dev class=human host=yes -# join=authkey' — printed as the role plus its traits. +# The role marker is bootstrap's own line — 'role=dev-server +# root-door=closed host=yes join=authkey' — printed as the role plus its +# traits. The example tracks the CURRENT vocabulary (#76's -server/-box role +# suffixes, #77's root-door trait); this command renders whatever fields the +# marker carries, so a pre-rename box still prints its own class= line as-is. MARKER_LINE="$(read_role_marker "$MARKER")" if [ -n "$MARKER_LINE" ]; then ROLE_NAME="" ROLE_TRAITS=""