Skip to content
Automation
Skill

/release

Prepare, verify, and publish Sutando engine releases. Use when asked to prepare a release proposal, determine a version bump, audit release documentation, validate release gates, create a release PR, tag a confirmed release, or publish GitHub release notes. Preparation is safe

From plugin
sutando
41087 skills20 hooks

Claude Code

$ npx -y skills add sonichi/sutando --skill release --agent claude-code

SKILL.md

release.SKILL.md
name: release
description: Prepare, verify, and publish Sutando engine releases. Use when asked to prepare a release proposal, determine a version bump, audit release documentation, validate release gates, create a release PR, tag a confirmed release, or publish GitHub release notes. Preparation is safe and non-publishing; tagging and publishing require explicit owner confirmation.

Release

Use [`docs/release-process.md`](../../docs/release-process.md) as policy. Do not duplicate or reinterpret it here. This skill turns that policy into an evidence-backed workflow.

Choose a mode

  • **Prepare**: inspect changes, update documentation and release artifacts, run

gates, and write a proposal. This is the default.

  • **Publish**: create the tag and GitHub Release only after explicit owner

confirmation in the current conversation.

Never infer publish permission from “prepare,” “get ready,” a green CI run, or an approved release PR.

Prepare

1. Read `docs/release-process.md` completely. 2. Resolve the repository and workspace:

   REPO="$(git rev-parse --show-toplevel)"
   WORKSPACE="$(bash "$REPO/scripts/sutando-config.sh" workspace)"

3. Identify the last release tag and the exact candidate SHA. Compare the tag to the candidate; do not rely only on PR titles. 4. Classify the change set:

  • user-visible features and fixes;
  • configuration, schema, API, protocol, or permission changes;
  • migrations and rollback implications;
  • new or changed skills;
  • install, setup, operations, and troubleshooting changes.

5. Run the documentation audit:

   python3 skills/release/scripts/docs_audit.py

A `WARN` about `skills/tutorial/feature-list.json` names the tour steps whose watched paths changed since the last plain `vX.Y.Z` tag while the tour's `revision` did not. Whoever cuts the release updates those steps and bumps `revision`. If the tour is unaffected, set the file's top-level `"reviewed_at"` to that tag instead. That records the review durably and silences the warning until the next tag.

6. Perform a docs-impact pass. For every user-visible or contract change, identify the canonical document in `docs/catalog.json`. Update that document, its `last_verified` date, README navigation when appropriate, migration or upgrade guidance, and `CHANGELOG.md`. Do not copy canonical text into a second document. 7. Prepare one release PR containing only release artifacts and documentation. Do not mix product fixes into it; list unresolved fixes as blockers. It records the entry **after** the tag (see Publish step 2) and is not a precondition for publishing. 8. Run every applicable hard gate from `docs/release-process.md`, including the fresh-clone health check, headline-feature smoke, migration idempotency, and prior-release-to-candidate upgrade smoke. Record exact commands, candidate SHA, exit status, and observable evidence. Never invent or summarize an unexecuted gate as passing. 9. Write the proposal to `$WORKSPACE/notes/release-proposals/proposed-vX.Y.Z.md` with:

  • candidate version and SHA;
  • SemVer rationale;
  • user-facing summary and CHANGELOG draft;
  • documentation-impact table;
  • gate evidence;
  • migrations, rollback, and known gaps;
  • unresolved blockers;
  • explicit owner decision line: `publish: pending owner confirmation`.

10. Report the proposal and release PR. Stop before tagging or publishing.

Publish

Proceed only when the owner explicitly confirms the exact version and candidate SHA in the current conversation.

1. Re-read the proposal and `docs/release-process.md`. 2. Verify the candidate SHA is still the intended commit, required checks are green, the worktree is clean, the tag does not exist, and every blocker is resolved.

**Do not gate the tag on the release PR being merged.** This repo tags the candidate commit and records the CHANGELOG entry afterwards — v0.7.0 through v0.10.0 were each tagged on a tree containing no entry for themselves, and v0.10.0's entry landed two days later in #2826. Holding the tag for the changelog PR blocks the release on review latency for no benefit. 3. If any evidence is stale or the SHA changed, return to **Prepare**. 4. Create the annotated tag. Use a signed tag only when the owner is performing the signing with their configured key; never impersonate an owner signature. 5. Push the tag and create the GitHub Release from the approved notes. 6. Verify the remote tag and release page, then report their URLs and SHA.

Safety

  • Treat tag creation, tag push, and GitHub Release creation as irreversible

external writes requiring explicit owner confirmation.

  • Never publish from a dirty tree, a moving branch name, or an unrecorded SHA.
  • Never bypass CI, approvals, migration gates, or release blockers.
  • Keep `CHANGELOG.md` authoritative; generated GitHub notes are a completeness

aid, not the release narrative.

Read more
@sonichi
Ships withsutando

My AI Stand — Realtime by Day, Rewriting Itself by Night. Summon my AI superpower. Voice, vision, screen, meetings, calls when I'm engaged. Learns my patterns, ships its own code when I'm not. Runs across my Macs, interacts with people & their Stands.

Stars on GitHub

Momentum

stars in total
410
Star history of sonichi/sutando on GitHub, a chart by star-history.com

Other skills on sutando.

ag2-space-mcp

ag2-space-mcp

Connect this Sutando install to AG2 Space's hosted MCP as its own agent, without the desktop app, and know which room and Commons…

@sonichi@sonichiInstall Skill
ag2space-voice

ag2space-voice

s.space voice surface — binds the room the s.space client announces to the voice session's origin, so work delegated by voice in…

@sonichi@sonichiInstall Skill
agent-activity

agent-activity

Streams what the agent is doing into the room, as rows the desktop client renders in an **events drawer** above the composer…

@sonichi@sonichiInstall Skill
agent-registry

agent-registry

Local Agent Registry — a standalone, dependency-free service that tracks running Claude Code (and other) agent instances. Agents…

@sonichi@sonichiInstall Skill
agent-room-ops

agent-room-ops

For an all-room analysis sweep, use the tested window collector and coverage contract in…

@sonichi@sonichiInstall Skill
answer-format

answer-format

Deterministic final-answer normalizer — a last-step pass for any task that ends in a *precise* answer (a number, a short string,…

@sonichi@sonichiInstall Skill

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n2w209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about release.

Which coding agents can use release?
release installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.