Repository navigation
feat(skills): add a release-captain skill for the weekly release cadence #4433
Description
User Story
As an OpenShell release captain, I need a Monday and Tuesday checklist that an agent can run, so I can get a qualified pre-release out as a stable release every Tuesday without relying on knowledge that only exists in Slack.
Problem Statement
RFC 0014 sets a Tuesday stable cadence, and maintainers are rotating release captain duties: keep pre-releases passing, coordinate the release with contributors, and cut the release. The automation (Release Auto-Tag, Release Tag qualification, advisory compatibility review, Release Canary) is documented in CI.md, but the weekly human steps are not written down:
- what to check on Monday, and where qualification, compatibility, and security reports live;
- how to collect ready PRs and set a merge cutoff before the release;
- how to select and verify the final candidate on Tuesday, tag it, and confirm publication;
- how to start the next train's
-pre.1; - what to do when a release run is stuck or fails, without moving a published stable tag.
The v0.1.3 release (October 7–9) needed a pulled tag and two retries, and the v0.1.4-pre.3 compatibility review produced likely false positives that nobody owned triaging.
Impact / Why This Matters
New release captains, including next week's, can run the release from a repeatable checklist with copyable gh/git commands. That reduces Tuesday slippage and keeps tag pushes behind explicit maintainer approval.
Proposed Design
Add an internal contributor skill, .agents/skills/release-captain/SKILL.md (metadata.internal: true), with:
- Monday: identify the current train and latest
-pre.N; read its Release Qualification summary, advisory compatibility report, and security results; check Release Canary; triage findings; draft the coordination post listing ready PRs and the merge cutoff. - Tuesday: after the cutoff, confirm the final candidate's qualification matches its tag and commit; get maintainer approval; tag that exact commit
vX.Y.Z; watch Release Tag; verify the GitHub Release and published artifacts; start the next train. - Recovery: stuck or failed runs, rerun versus a new pre-release, and the rule against moving a published stable tag.
- Guardrails: the agent never pushes or deletes tags, dispatches release workflows, or posts to Slack without explicit maintainer approval.
This complements the tagging mechanics in #4335 (release-openshell) and does not change workflows. Register the skill in CONTRIBUTING.md and the sync-agent-infra maintenance map.
Acceptance Criteria
-
.agents/skills/release-captain/SKILL.mdexists withmetadata.internal: true, Monday, Tuesday, and recovery sections, and copyable commands verified against a real Release Tag run. - Every command that mutates tags, workflows, or Slack requires explicit maintainer approval.
-
CONTRIBUTING.mdlists the skill, and thesync-agent-inframaintenance map includes it for release workflow changes. - No workflow behavior changes.
Alternatives Considered
- Expand
release-openshellin fix(release): qualify prerelease tag pushes #4335. Kept separate so the weekly cadence and the tagging mechanics can change independently. - Add
misehelper tasks for Monday and Tuesday. Deferred; theghcommands in the skill avoid new scripts to maintain.
Activity
feat(skills): add release-captain skill for the weekly release cadence
feat(skills): add release-captain skill for the weekly release cadence (