agentleFS
KcAnomKcAnom/pi-fairy-tales-chains/skills/release-tag/SKILL.md

release-tag

Skill0 starsChanged 4 months agoMITView on GitHub

Phase 3 of 5 in the release chain (changelog → bump → tag → publish → verify). Commits the bump + changelog and creates the annotated git tag for the version. Trigger when the previous phase says "run release-tag next", or standalone via "release-tag", "phase 3 of release", "commit and tag the release".

4 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 4 are distinctive, and 8 are very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    All chain state is managed by the chain tool: authoritative JSON at .pi/fairy-tales/chains/release/state.json with a human-readable …

    line 22
  2. Very specific:

    Call the chain tool with action: "status", chain: "release" (a legacy .release-state.md from an older version is imported automatically):

    line 29
  3. Very specific:

    If there is no run → abort: "No release run found.

    line 32
  4. Very specific:

    If the run is not active with currentPhase: "tag" → abort: "Expected the run to be at phase tag but it is at <currentPhase/status>.

    line 33
  5. Very specific:

    If data.package / data.version (or the bump phase summary) is missing → abort: "Phase pointer looks right but the Phase 2 output is missing.

    line 36
  6. Very specific:

    If the tool reports the chain is locked by another session, abort.

    line 39
  7. Distinctive:

    If on the default branch and the project's convention is to branch, create a release branch first.

    line 54
  8. Very specific:

    Create the annotated tag: git tag -a v<version> -m "<package> v<version>".

    line 59
  9. Very specific:

    Leave the commit and tag local.

    line 64
  10. Distinctive:

    Call the chain tool:

    line 69
  11. Distinctive:

    After completing this phase, output exactly:

    line 83
  12. Distinctive:

    Do not start the next phase.

    line 88

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Release: Tag

Chain version: 2 (durable state contract — see docs/STATE-CONTRACT.md)

Phase 3 of 5: release-changelog → release-bump → release-tag → release-publish → release-verify

Overview

Commits the version bump and changelog produced by earlier phases, then creates the annotated git tag. Keeps the tag local by default — pushing and publishing happen in the next phase — so a mistake here is still easy to undo (git tag -d, git reset).

All chain state is managed by the chain tool: authoritative JSON at .pi/fairy-tales/chains/release/state.json with a human-readable state.md projection beside it. Never create or edit state files by hand, and never create lock files — the tool locks for you.

Load State

Call the chain tool with action: "status", chain: "release" (a legacy .release-state.md from an older version is imported automatically):

  • If there is no run → abort: "No release run found. Run release-changelog first."
  • If the run is not active with currentPhase: "tag" → abort: "Expected the run to be at phase tag but it is at <currentPhase/status>. Run that phase's skill instead."
  • If data.package / data.version (or the bump phase summary) is missing → abort: "Phase pointer looks right but the Phase 2 output is missing. Treat as corrupted — restart the chain or repair via chain action 'update'."
  • If the tool reports the chain is locked by another session, abort; a dead session's lock can be cleared with action: "unlock". Never create lock files yourself.

Workflow

Step 1 — Commit

Stage package.json, CHANGELOG.md, and any other release-related files, then commit with a conventional message:

chore(release): <package> v<version>

End the commit body with the project's standard Co-Authored-By trailer if it uses one. If on the default branch and the project's convention is to branch, create a release branch first.

Step 2 — Tag

Create the annotated tag: git tag -a v<version> -m "<package> v<version>". Confirm with git tag --list v<version> and git describe --tags.

Step 3 — Do NOT push yet

Leave the commit and tag local. release-publish handles push + publish so the network step is a single, explicit phase.

Step 4 — Complete the phase

Call the chain tool:

action: "complete-phase", chain: "release", phase: "tag",
summary: "committed release; created local tag v<version>; tag/commit are local only — release-publish will push and publish",
data: {},
artifacts: { "commit": "<commit sha>", "tag": "v<version>" }

The tool validates this is the current phase, advances the run to publish, and rewrites the JSON + markdown projection atomically.

Handoff

After completing this phase, output exactly:

Phase 3 complete. Chain state updated (.pi/fairy-tales/chains/release/state.json). Run /release-publish to begin Phase 4.

Do not start the next phase. Do not offer to continue. Output only the handoff line and stop.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.