Skip to content

Authority rows: the release-prep bump follows the family norm - #351

Merged
johnnyt merged 1 commit into
mainfrom
st-2sbx-release-prep-rows
Sep 29, 2026
Merged

johnnyt merged 1 commit into
mainfrom
st-2sbx-release-prep-rows

Conversation

@johnnyt

@johnnyt johnnyt commented Sep 29, 2026

Copy link
Copy Markdown
Member

Rewords the version-bump authority row, and the two wurk extension sentences that follow it, to the family norm the file's own Release preps paragraph already states: a release bead the operator has named is enough for the bump, and no campaign consent has to name it (ruled by the operator, 2026-09-27). Also carries the doc_links comment reword in .quality.exs with its gate-change ledger entry, and drops a planning reference from one provenance line. Docs and comments only; no code, no version field, no stage option.

Refs: st-2sbx, st-1kyb

What changed, row by row and sentence by sentence

CLAUDE.md, the version-bump row (a version bump on a release bead's branch). The trigger said "an operator-authorized release bead, inside a campaign carrying the operator's explicit consent". It now says "a release bead the operator has named (in the campaign plan or their own words); the bump is release prep, the family norm, and no campaign consent has to name it". This restates the first two sentences of the file's Release preps paragraph ("The version bump and the tag of a release prep are the family norm, not a grant a campaign consent has to name. On a release bead the operator has named (in the campaign plan or their own words), ...") and grants nothing more. The forbidden cell ("on any other bead, on main, or when the operator has not named this repo's release bead") is unchanged.

CLAUDE.md, the merge exception's provenance line. It carried a trailing internal planning reference after "by the operator" across two lines; it now says "(Recorded 2026-09-01 by the operator.)", the same scrub statifier-ui carries. The paragraph's rule is unchanged.

.claude/wurk/release.md, "What a release here still is not". The bullet quoting the version-bump row now quotes the row's new trigger. The paragraph after it said the recipe runs "on a named release bead's branch, under a campaign consent that names it"; it now says "on the branch of a release bead the operator has named". Both restate the row and the Release preps paragraph; the tag bullet, the publish bullet and the publish sentence are unchanged.

.claude/wurk/commit.md, "Version bump: release-prep commits only". The release-prep commit landed "under a consent that names it"; it now lands "on a release bead the operator has named (in the campaign plan or their own words)". The tag sentence and "the publish that follows (mix hex.publish) is always the user's" are unchanged; the paragraph's remaining lines are re-wrapped only.

.quality.exs, the comment beside the Docs and Doc links stages. It said the Doc links stage fails on "a published relative link to a file that is not an extra", which reads as covering moduledoc links too. It now says "a relative link in a Markdown extra to a file that is not itself an extra (moduledoc links are the Docs stage's)", the wording the other packages in the family carry. Comment only: no stage, option or threshold changes.

docs/quality-gate-changes.md. A new entry for that comment reword, with Approved-by: JohnnyT (in session, 2026-09-27, for exactly this: the doc_links comment reword in .quality.exs), in the shape of the 2026-09-19 and 2026-09-23 entries. The approval is the operator's own, given in session on 2026-09-27 for exactly this change; this PR records it and grants nothing beyond it.

Every other authority row is byte-identical

git diff origin/main -- CLAUDE.md limited to lines starting with | shows exactly one removed and one added table line, both the version-bump row; the table has the same number of | lines before and after. The tagging row, the publish row, the merge row, the bd close row and the bd dolt push row are untouched.

Review (in-turn)

I re-read the diff against both beads' acceptance: the version-bump row reads the norm in the file's own words, consistent with the Release preps paragraph; release.md and commit.md say the same and their publish sentences stay; no other row moved; the doc_links comment matches the family wording (checked against statifier_persistence's .quality.exs); the ledger entry carries the operator's Approved-by. Each reworded sentence was checked against what it restates (the Release preps paragraph, and the operator's 2026-09-27 ruling that a named release bead is enough and the publish stays the operator's): same meaning, nothing granted beyond it.

Checks

  • mix quality: green, every stage (Gate guard: no unjustified gate changes). The Gate guard was also checked to discriminate: with the entry's Approved-by: label broken on a copy, the guard failed naming .quality.exs; restored byte-equal, green again.
  • mix quality --profile merge (the ADR judge): green.
  • The commit's tree is byte-identical to the tree both runs went green on.
  • Terminology firewall scan over the diff, commit message, branch name and this body: clean, with a constructed positive control that fired. Planning-id scan over the diff and this body: clean.
  • No changelog fragment: changelog.d/README.md excludes documentation and quality-gate or agent-tooling changes.

Provenance

.claude/wurk/commit.md's gate-guard section says an agent does not write a ledger entry itself. The entry here records the operator's own approval of this exact change (quoted above), which is what that section asks for; the entry text was drafted earlier and only its Approved-by: line is filled from the operator's words.

The version-bump row in CLAUDE.md asked for "an operator-authorized
release bead, inside a campaign carrying the operator's explicit
consent", while the file's Release preps paragraph calls the bump and
the tag of a release prep the family norm, not a grant a campaign
consent has to name. The row's trigger now reads a release bead the
operator has named (in the campaign plan or their own words), as the
paragraph does, ruled by the operator, 2026-09-27; its forbidden cell
is unchanged. .claude/wurk/release.md and .claude/wurk/commit.md drop
the same consent condition in their own words. The tag row, the
publish row and every other row are unchanged.

The merge exception's provenance line drops a planning reference and
reads "(Recorded 2026-09-01 by the operator.)".

The comment beside the Docs and Doc links stages in .quality.exs said
the Doc links stage fails on "a published relative link to a file that
is not an extra", which reads as covering moduledoc links too. The
stage reads relative links in the Markdown extras and the README only;
moduledoc links are the Docs stage's. The comment now carries the
wording the other packages in the family use; no stage option changes.
docs/quality-gate-changes.md carries the entry the Gate guard requires,
with the operator's approval of 2026-09-27.

Refs: st-2sbx, st-1kyb
@johnnyt
johnnyt merged commit dc1900d into main Sep 29, 2026
1 check passed
@johnnyt
johnnyt deleted the st-2sbx-release-prep-rows branch September 29, 2026 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant