aayudha docs Built from de79988 (2026-10-26)

release: promote merged work to a snapshot or a stable release

Merged is not released: shipping puts stories on dev, where work integrates. release moves a Release issue's work one rung up, dev to rolling or rolling to main, after a full gate on the exact commit that will land.

Field Value
In plain words Moves shipped work up to a snapshot or stable release, after a full gate, and schedules the measurement.
Journey stage Release it
Accountable seat DevOps & DevEx Tinkerer (Nala)
Does the work Nala, the Accountable seat's twin, in the chore model lane, with the seat's paired human when it has one
Consulted Quality Architect (Yama), Engineering Manager (Drona), Production Engineer (Shesha)
Informed Marketer & Documenter (Sauti), Founder (Atri)
Layers it can touch L09 Platform / operations
Who reasons no model: it is deterministic
Writes as a person's own GitHub identity
Where it runs the aayu command, a skill in your agent, an MCP tool (only with [mcp] expose_writes on)
The skill your agent reads skills/release/SKILL.md

When to use it

Work still on a pull request? Merge it first with ship.

Run it

Your agent may run a release under your account, because the gate decides, not the prompt. CI and bot accounts are refused. Promote on your release schedule or when someone asks for a release, never only because the gate is green:

Use the release skill to promote Release 120 to rolling: dry-run it first, then run it if the gate is green.
aayu release <release>
Input Required What it does
<release> yes Release issue.
--to yes Branch to promote to. One of: rolling, main.
--at no With --to rolling: promote this dev commit instead of dev's newest, such as the newest one with tier-2 eval results for every gating group.

Try it first with aayu release 120 --to rolling --dry-run: it shows the candidate, the tag, the stories it would stamp, and the release notes, and pushes nothing.

Needs setup: each rung dispatches your repository's ci.yml workflow on the candidate with a gate input. Without that workflow, release refuses and promotes nothing. See releases.

What you get back

The branch moved to the exact candidate commit and a tag: rolling-<date> (with .n for later snapshots that day) or an annotated vX.Y.Z on main. Every shipped story stamped released, release notes that cite only proven Features, and the Release issue's Shipping evidence section filled in. The Goals and Initiatives above those stories become due for measure 28 days later.

You should see the new tag and the stories labelled released. A failing gate is re-run once; if it stays red, nothing is promoted and the message names the run. Exit codes: troubleshooting.

Gates

It checks these before it acts, and stops when one fails:

Before the candidate, it also reads your reliability targets when you have them: while an error budget is spent, only Bugs ship (slo).

What only a person does

A stable release is a person's decision. After the rolling snapshot, comment on the Release issue with this first line, from your own account:

Stable release: v1.2.0

Agents never write that comment, and the pre-tool hook refuses a command that would post it. At your own terminal, your yes at the prompt is the request. Never release to work around a red gate: fix the cause through dev.

What's next