From fa0e103d85018eb8acaede7981d66423793e3cd7 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sun, 27 Sep 2026 09:27:34 -0600 Subject: [PATCH] Release guides: the merged prep's tag The release and commit extensions still said the tag of a release prep was the operator's. CLAUDE.md's tagging row and its Release preps paragraph now make the tag of a merged prep the norm: once the prep is merged to origin/main, the conductor or the session that owns the release bead tags that commit. Both files now say so in their own words, and both keep the publish (mix hex.publish, a GitHub release) with the operator. No rule changes; no other file is touched. Documentation only: no code, no changelog fragment. Refs: sui-3jh1 --- .claude/wurk/commit.md | 7 +++++-- .claude/wurk/release.md | 22 +++++++++++++++------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/.claude/wurk/commit.md b/.claude/wurk/commit.md index a473649..526c0cc 100644 --- a/.claude/wurk/commit.md +++ b/.claude/wurk/commit.md @@ -44,8 +44,11 @@ The manifest does carry a `release` recipe - `kind: "hex"`, `version_file` `mix.exs`, `readme_pin` true - so `/wurk:release` runs here, driven by that block together with the required steps in `.claude/wurk/release.md`. None of that is a commit-time concern: the recipe runs on an operator-authorized -release bead, and it still stops short of tagging, pushing and publishing, -which `CLAUDE.md`'s authority table holds for the operator in every campaign. +release bead, and it still stops short of tagging, pushing and publishing. +Those follow `CLAUDE.md`'s authority table: once the prep is merged to +`origin/main`, the conductor or the session that owns the release bead tags +that merged commit, and only the publish (`mix hex.publish`, a GitHub +release) is the operator's, in every campaign. What it means for an ordinary commit is only this: if a version change turns up in the diff and you are not on a release bead, that is the finding - report it and stop, do not commit it. diff --git a/.claude/wurk/release.md b/.claude/wurk/release.md index 87dbc49..c0d5a81 100644 --- a/.claude/wurk/release.md +++ b/.claude/wurk/release.md @@ -218,10 +218,18 @@ Exactly these, and a release commit that touches anything else is wrong: ## What a release here still is not The skill does not tag, push, open a request or publish, and this extension -does not either. In this repo those are the operator's, in every campaign and -outside every campaign. `CLAUDE.md`'s authority table says it twice: a version -bump on a release bead's branch is authorized only on "an operator-authorized -release bead, inside a campaign carrying the operator's explicit consent", and -"a release (tag, `mix hex.publish`, GitHub release)" carries the trigger -`never`. The one thing a release-prep request contains is the version bump and -the fragment promotion above. +does not either. The one thing a release-prep request contains is the version +bump and the fragment promotion above. What happens around it is +`CLAUDE.md`'s authority table, not this recipe. A version bump on a release +bead's branch is authorized only on "an operator-authorized release bead, +inside a campaign carrying the operator's explicit consent"; the push and the +request follow the table's push row. Once the prep is merged to +`origin/main`, the conductor or the session that owns the release bead tags +that merged commit with the new version and pushes the tag: the table's +tagging row fires when "the release bead's version bump is merged to +`origin/main`; the tag names that version at the merged commit", and the +same file's Release preps paragraph makes the bump and the tag the family +norm rather than a grant a consent has to name. Publishing stays the +operator's, in every campaign and outside every campaign: "a release +(`mix hex.publish`, GitHub release)" carries the trigger `never`, a docs +republish is part of it, and no consent or relay delegates it.