Skip to content

feat(skills): add release-captain skill for the weekly release cadence - #4435

Open
matthewgrossman wants to merge 21 commits into
mainfrom
feat/4433-release-captain-skill/matthewgrossman
Open

matthewgrossman wants to merge 21 commits into
mainfrom
feat/4433-release-captain-skill/matthewgrossman

Conversation

@matthewgrossman

@matthewgrossman matthewgrossman commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Summary

Add an internal release-captain skill for the weekly RFC 0014 release train. It covers Monday pre-flight, the Tuesday stable release, and starting the next train. Every action that changes something (tags, workflow runs, merges, Slack or GitHub posts) requires explicit approval.

Starting the next train is the captain's last Tuesday duty. Auto-Tag only continues a train that has a -pre.1, so the outgoing captain pushes the next version's -pre.1 after the release. Next week's captain then starts Monday with Auto-Tag pre-releases already running.

Related Issue

Closes #4433

Changes

  • Add .agents/skills/release-captain/SKILL.md:
    • Monday: preview the candidate Release would promote, triage failed runs and the compatibility review, fix forward to a green pre-release, and draft the coordination post with a merge cutoff.
    • Tuesday: tag the final pre-release by hand if the cutoff is after Auto-Tag, get approval with the candidate, commits, and release notes preview, dispatch release.yml, verify publication, close the loop in the thread, and start the next train.
    • Recovery: a short table for transient failures, startup failures, code defects, and failed Release runs.
  • CI.md: add release-auto-tag.yml to the workflow table, including that each train's -pre.1 is pushed by hand, and note that every Pre-release run writes a release notes preview.
  • Register the skill in the CONTRIBUTING.md skills table and the sync-agent-infra maintenance map.

It complements release-openshell, the short procedure for the release.yml dispatch, and changes no workflows. If #4754 merges, the release notes guidance still holds; only its CI.md text may need a rebase.

Testing

  • Checks appropriate to the affected code and behavior pass
    • markdownlint-cli2 passes on CI.md and CONTRIBUTING.md. The repo config excludes .agents/**.
    • Used the skill to run the v0.1.5 release: the candidate preview selected v0.1.5-pre.7, Release run 39462712309 promoted it, and the publication checks confirmed the GitHub Release assets and the PyPI wheel.
    • Checked that the relative RFC links resolve.
  • Unit tests added/updated (if applicable)
  • E2E tests added/updated (if applicable)

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

@copy-pr-bot

copy-pr-bot Bot commented Oct 12, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

Add an internal skill with Monday pre-flight, Tuesday stable cut, and
recovery steps for the RFC 0014 release train. All tag, workflow, merge,
and Slack actions require explicit maintainer approval.

Closes #4433

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Pre-release tag pushes now start Release Tag, so the skill no longer
dispatches after pushing. Add seed-commit selection from Release Dev
results, a commit-type summary for the patch/minor decision, and a
recovery row for a tag push that starts no run.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
@matthewgrossman
matthewgrossman force-pushed the feat/4433-release-captain-skill/matthewgrossman branch from d1b39ca to 46e8ab0 Compare October 14, 2026 20:02
…onfig

With tag.gpgSign enabled, git tag creates an annotated tag and blocks in
an editor. Disable signing for the release tag commands so they create
the same lightweight tags as Auto-Tag.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Note that Auto-Tag skips report success and show how to tell from the
log, the UTC time of the schedule across DST, where pre-releases appear
instead of the Releases page, why tags need a forced fetch, reading
workflow triggers from origin/main, the rolling dev tag, and the common
compatibility-review false positive for unpublished internal crates.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
…visories

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
A failed pre-release doesn't end the train. Document merging the fix and
tagging the next pre-release by hand once its Release Dev run passes,
letting the failed run finish for its remaining signal.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
…release failures

Name #openshell-triage, where TriageBot posts each failed Release Tag
attempt, and ask the captain to reply in the failure's thread so others
know a fix is underway. List common transient failure types and rerun
once when a failure looks unrelated to the commit.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Codex Security no longer runs in release qualification (#4469), so the
stable release can't rely on a pre-release's Codex result and runs can't
be matched by its job name. Match dispatched runs by the qualification
artifact name instead.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
… thread

Name the CNCF Slack channel, note that the release ships from main with
no release branch or cherry-picks, and add an example post.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
… usage guide

Stable releases are now dispatched with release.yml, which selects the
qualified pre-release and creates the tag, and pre-releases run in
release-prerelease.yml. Replace the stable tag push steps and stale
recovery rows, add a preview of the selected candidate, add a section on
when to use each part of the skill, and trim redundant explanations.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
The release ships the final pre-release's commit only if it passes, so
the coordination post must not promise that every PR merged by the
cutoff ships. Describe the Auto-Tag and hand-tagged cutoffs, and tag
the final pre-release by hand on Tuesday for a later cutoff.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Review the release notes preview from the Pre-release run before
approval, and describe how Release regenerates them. Correct the thread
when the shipped pre-release was cut before the posted cutoff, require
maintainer agreement for accepted-risk breaks in a patch release, and
add recovery rows for startup failures and release notes failures.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Move starting the next train after closing the loop, so it is the last
Tuesday step. The captain's week ends when the next -pre.1 Pre-release
run passes or its failure is handed off. Also move open milestone items
when closing the loop.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Remove repeated guidance, week-specific examples, fragile commands, and
debugging detail an agent can derive from the workflows. Keep the
approval guardrails, the weekly steps, and a short recovery table.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
…tain-skill/matthewgrossman

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Add Release Auto-Tag to the workflow table, including that each train's
-pre.1 is pushed by hand, and note that every Pre-release run writes a
release notes preview.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
@matthewgrossman
matthewgrossman marked this pull request as ready for review October 20, 2026 19:05
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Check pre-release runs directly instead of relying on an internal
notification channel, and drop internal Slack channel IDs.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
TaylorMutch
TaylorMutch previously approved these changes Oct 20, 2026
A rerun repeats the same commit, so a failure that needs a fix ships
in the next -pre.N. Cut it by dispatching Release Auto-Tag from the tip
of main, and tag a specific commit by hand only when needed.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
@matthewgrossman
matthewgrossman added this pull request to the merge queue Oct 20, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Oct 20, 2026

This branch has not been deployed

No deployments
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.

feat(skills): add a release-captain skill for the weekly release cadence

2 participants