Skip to content

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

Merged
johnnyt merged 1 commit into
mainfrom
px-bkpc-release-prep-rows
Sep 29, 2026
Merged

johnnyt merged 1 commit into
mainfrom
px-bkpc-release-prep-rows

Conversation

@johnnyt

@johnnyt johnnyt commented Sep 29, 2026

Copy link
Copy Markdown
Member

Rewords two rows of the authority table and one sentence of the release recipe, and appends a dated Note to ADR-0006. Docs and agent tooling only.

What changed

CLAUDE.md, the release-prep row's trigger. It said: "an operator-authorized release bead, inside a campaign carrying the operator's explicit consent; or the user asking for a release in their own words". It now says: "a release bead the operator has named (in the campaign plan or their own words) - the family norm, not a grant a campaign consent has to name (the Release preps paragraph below); or the user asking for a release in their own words". This restates the first two sentences of the file's own Release preps paragraph and the version-bump norm ruled by the operator, 2026-09-27; it grants nothing more. The row's action cell, its version sentence and its "Still unauthorized when" cell (the tag after merge, the publish staying the operator's) are unchanged.

CLAUDE.md, the git push, gh pr create row's trigger. It said: "the user asks for it in their own words". It now says: "the user asks for it in their own words - a human invoking /wurk:mr satisfies this, so the skill does not stop to ask again; a conductor, an orchestrator or a parent session invoking it on the user's behalf does not, and needs the campaign's consent". This is statifier-ex's wording for the same row, ruled by the operator, 2026-09-29. It grants nothing more: it names who counts as the user, which the paragraph above the table already says a dispatch from another agent is not. The forbidden cell is unchanged.

.claude/wurk/release.md, "The release trigger". Its first sentence said: "An operator-authorized release bead, inside a campaign carrying the operator's explicit consent; or the user asking for a release in their own words." It now says the same as the CLAUDE.md row, in this file's voice, citing CLAUDE.md's Release preps paragraph. The tag and publish sentences after it are unchanged. .claude/wurk/commit.md needed no change: its only bump sentence ("@version in mix.exs moves only for a named release") already matches.

docs/adr/0006-irreversibility-places-the-human-gates.md. A ## Notes foot with one dated Note, in the shape docs/adr/README.md fixes (ADR-0017's). It points from the Decision's "adjacent row" paragraph and the skills bullet in Consequences to CLAUDE.md's Release preps paragraph (ruled by the operator, 2026-09-25): the merged prep's tag is the conductor's or the release-bead session's, and the publish stays the operator's. It cites #235 and #237. git diff origin/main -- docs/adr/ shows 31 added lines and 0 removed.

Review (in-turn)

I re-read the diff against both beads' acceptance. Every sentence written restates either the Release preps paragraph, the bump norm, or statifier-ex's push/PR row, and none widens a grant: the merge row, the bd close row, the bd dolt push row and the mix hex.publish row are untouched. Byte-identity of every other row was checked by listing every | -prefixed table line in CLAUDE.md at origin/main and at this head and comparing them pairwise: the two rows above are the only changed lines, the other 38 are identical. The Note's two dates were checked against CLAUDE.md ("Recorded 2026-09-25 by the operator") and the ruling date. A re-grep of release.md and commit.md (line breaks flattened) found no other sentence making the bump wait on a consent.

Gate and changelog

No Elixir code is touched, so per CLAUDE.md's commit row there is no gate to run; CI runs the full gate anyway. No changelog fragment: changelog.d/README.md excludes documentation, ADRs and agent tooling changes.

Refs: px-bkpc, px-ap1p

The release-prep row's trigger and the release recipe's trigger made
the version bump wait on a campaign consent. Both now name the family
norm in their own words: a release bead the operator has named is
enough, as the Release preps paragraph already says (ruled by the
operator, 2026-09-27). The tag and publish wording is unchanged.

The push/PR row now says a human invoking /wurk:mr satisfies its
trigger, while a conductor, orchestrator or parent session invoking it
needs the campaign's consent (ruled by the operator, 2026-09-29). Its
forbidden cell and every other authority row are byte-identical.

ADR-0006 gains a dated Note at its foot pointing at the Release preps
paragraph: the merged prep's tag is the conductor's or the release-bead
session's, and the publish stays the operator's. No line above it moved.

Docs and agent tooling only: no Elixir code, so no gate to run, and no
changelog fragment (changelog.d/README.md excludes both).

Refs: px-bkpc, px-ap1p
@johnnyt
johnnyt merged commit dd6b9ef into main Sep 29, 2026
1 check passed
@johnnyt
johnnyt deleted the px-bkpc-release-prep-rows branch September 29, 2026 12:44
@codecov

codecov Bot commented Sep 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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