Skip to content

docs: clarify release agent contract - #233

Closed
kocaemre wants to merge 5 commits into
Jebel-Quant:mainfrom
kocaemre:docs/release-agent-contract
Closed

kocaemre wants to merge 5 commits into
Jebel-Quant:mainfrom
kocaemre:docs/release-agent-contract

Conversation

@kocaemre

Copy link
Copy Markdown

Refs Jebel-Quant/rhiza#1686 and follow-up from Jebel-Quant/rhiza#1687.

Summary

  • Clarify in /rhiza:release that the command is the Claude Code harness for a repo-owned release contract, not a Claude-only release policy.
  • Document the portable contract terms directly in the release docs: declared version locations, changelog evidence, release PR, forge-gated merge, and tagging the merged default-branch commit.
  • Keep the change scoped to rhiza-claude, per maintainer feedback that this belongs here rather than in the template repo.

Test Plan

  • make portable — passed: 1897 passed, 11 skipped, 86 deselected.
  • make fmt — passed: all prek hooks passed, including markdownlint, generated docs reference blocks, prose counts, prompt wiring, and docs nav.
  • git diff --check — passed.

Additional check attempted:

  • make test — blocked by two existing Rust skeleton e2e expectations against the current cargo init stub shape (usize placeholder and no doc comment before pub fn add); unrelated to this prose-only release docs change. Coverage still reached 100%, and 1981 tests passed before the two e2e assertions failed.

Signed-off-by: Emre K <110906681+kocaemre@users.noreply.github.com>
@tschm

tschm commented Sep 23, 2026

Copy link
Copy Markdown
Member

Superseded by #238, which closes the same gap materially rather than by description.

Jebel-Quant/rhiza#1686 asked for /rhiza:release to be reachable by agents other than
Claude Code. #238 generates bundle/ — the ten commands and nine procedures in the open
SKILL.md format — so bundle/skills/rhiza-release/SKILL.md is a file any client can
load rather than a property the prose asserts about itself. It rewrites the five bindings
that don't travel (${CLAUDE_PLUGIN_ROOT}, $ARGUMENTS, /rhiza:<name>, allowed-tools,
and argument-hint/disable-model-invocation), docs/other-agents.md documents what the
translation changes and what you give up without the harness — the PreToolUse guard, the
tool allow-list, AskUserQuestion — and build_bundle.py --check runs as a prek hook so
the bundle cannot drift from the prose it was generated from.

Thank you for the report and the PR. The gap you identified is exactly the one #238 went
and filled, and your framing — the command is the harness, the contract is the state
machine — is what the docs now say at the scale of all ten commands instead of one.

Two reasons the paragraph isn't being carried across alongside it:

  • docs/skills/release.md already opens with the same five contract terms the paragraph
    enumerates ("bump every version location the repo declares, regenerate the changelog,
    open a release PR, let the forge merge it once its checks pass, and tag the commit that
    actually landed"), so the addition restates the summary it sits under.
  • The SKILL.md half ends in guidance to a future editor — keep the steps explainable in
    repo terms — inside a file that is a runtime prompt. The model running a release can't
    act on it, and it costs context on every run; in this repo that kind of note belongs in
    CLAUDE.md or the docs.

Closing as superseded, not declined.

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.

2 participants