release
Skill74 starsChanged 8 days agoMITView on GitHub
Project release helper for corezoid-ai-plugin. Prepares a new tagged release end-to-end. Use whenever the user says "release", "релиз", "новый релиз", "сделай релиз", "выпусти версию", "bump version", "обновить версию", "tag a release", "/release", or anything that implies cutting a new version of this plugin. Walks through six explicit phases — compare `main` with the latest tag, ask which new version to publish, draft a CHANGELOG.md entry, sync that version across all seven release files, show the full proposed change set for confirmation, then commit and tag — see "The six phases" below for what each does. Always use this skill instead of running release steps manually — it keeps the seven release files in lock-step, formats the changelog consistently, and prevents partial releases.
- Commits and pushes
196 other projects use a version of this.
Adopted by
Most recently taken up by
- zxcvbn-ts/zxcvbntheir own version, first seen Nov 9, 2026
- TechbeeAT/jtxBoardtheir own version, first seen Nov 9, 2026
- ddnexus/pagytheir own version, first seen Nov 9, 2026
- zerx-lab/FluxDowntheir own version, first seen Nov 9, 2026
- orioledb/orioledbtheir own version, first seen Nov 9, 2026
- AmruthPillai/Reactive-Resumetheir own version, first seen Nov 8, 2026
Used with
Projects with it also use create-agent-adapter, changelog-style and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkillcreate-agent-adapter
Technical guide for creating a new Paperclip agent adapter. Use when building a new adapter package, adding support for a new AI coding tool (e.g. a new CLI agent, API-based agent, or custom process), or when modifying the adapter system. Covers the required interfaces, module structure, registration points, and conventions derived from the existing claude-local and codex-local adapters.
Also in 5 projects that use this
GrinvSkillchangelog-style
Turn a commit range into CHANGELOG.md entries following common-changelog style. Use when finishing a PR or cutting a release, to write/fix the [Unreleased] section's entries — moving [Unreleased] under a new dated version heading is a separate, automated step (see the release skill / scripts/sync-version.ts), not this skill's job.
Also in 4 projects that use this
GrinvSkilldocs-consistency-check
Check README/manifest.json/server.json/CHANGELOG.md/AGENTS.md and docs/*.md for drift against the actual registered tools and source. Use after adding, renaming, or removing a tool, or as part of a live-audit pass.
Also in 4 projects that use this
Microsoft AzureSkillcomponent-release
Prepares a verifiable Agent Landing Zone UI release. Use for release branches, VERSION, changelog entries, tags, release notes, and compatibility evidence; never publish without explicit human approval.
Also in 4 projects that use this
Microsoft AzureSkilldocumentation-consistency
Keeps AI Landing Zone contributor, user, and operator documentation aligned with shipped Bicep behavior. Use for parameters, defaults, outputs, topology, deployment flow, operations, or releases.
Also in 8 projects that use this
rivet-devSkilllaunch-graphics
Generate agentOS marketing/launch graphics (launch & social heroes, code-snippet cards) from the committed generators in docs-internal/graphics. Use when asked to make, update, or render an agentOS launch image, social image, "agentOS Apps" graphic, or technical code-snippet image.
Also in 3 projects that use this
- +3 more from Grinv
Other versions196 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 196
- paperclipai/paperclip★ 112ksame name
- modelcontextprotocol/servers★ 92ksame name
- remotion-dev/remotion★ 72ksame name
- traefik/traefik★ 65ksame name
- usememos/memos★ 64ksame name
- tw93/Pake★ 63ksame name
- AmruthPillai/Reactive-Resume★ 45ksame name
- amruthpillai/reactive-resume★ 45ksame name
- reactive-resume/reactive-resume★ 45ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
186 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- public/llms.txtllms.txt
- commitSkill
- plan-to-issuesSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 9 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 186 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 37
If git status shows uncommitted changes, ask the user whether those should be part of this release or stay out of it.
- Very specific: line 45
Use AskUserQuestion with the current version pulled from plugins/corezoid/.claude-plugin/plugin.json and three suggested bumps:
- Very specific: line 59
Read CHANGELOG.md. The format is rigid:
- Very specific: line 72
Use the same category prefixes seen in prior entries.
- Distinctive: line 74
Write in the past tense, imperative-ish style matching prior entries ("add", "fix", "remove" — not "added", "fixes").
- Very specific: line 95
Use the Edit tool with old_string containing the full "version": "..." (or version: ...
- Distinctive: line 97
After editing, verify with a single grep:
- Distinctive: line 154
Avoid git add -A / git add .
- Distinctive: line 156
Commit message format (matches recent release commits in this repo):
- Distinctive: line 165
Use a HEREDOC for the commit so multiline formatting is preserved.
- Very specific: line 173
Use the annotated form (-a) so git describe and GitHub Releases pick it up correctly.
- Distinctive: line 175
Do not push automatically.
- Distinctive: line 187
Tag already exists: Before Phase 6, run git tag -l vX.Y.Z.
- Distinctive: line 189
Manifest drift in the diff: If Phase 1 shows a manifest file already changed by a previous (incomplete) attempt, treat that as suspect — …
“Common” is measured: kept by at least 6 in 10 of the 186 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.
Files
Release skill
This skill prepares a new tagged release of corezoid-ai-plugin. It runs through six phases in order. Do not skip phases, and do not collapse them — the user expects to see and approve each one before the next begins.
Why a dedicated skill
A release of this plugin touches seven separate manifest files (Claude, Codex, Kiro plugin manifests; the agent-plugins root plugin.json; two marketplace manifests; and POWER.md frontmatter) plus the changelog. Forgetting any one of them ships a broken or inconsistent release: marketplace listings disagree about the version, Codex/Kiro install the wrong build, or POWER.md — which is attached to the GitHub Release artifact set — advertises a stale version. The single source of release truth for this repo is RELEASE_CHECKLIST.md — this skill executes that checklist programmatically so nothing is missed.
The six phases
Phase 1 — Inspect what changed since the last tag
Goal: understand and summarise everything that has landed since the previous release.
Run, in parallel:
git fetch --tags --quiet
git describe --tags --abbrev=0 # the last released tag, e.g. v2.3.9
git log <last-tag>..HEAD --pretty=format:'%h %s' # commit subjects since that tag
git diff --stat <last-tag>..HEAD # files touched, magnitude of change
git status --short # uncommitted work that may need to ship in this releaseThen read the actual diff for any commit subjects that are vague or for any non-trivial file changes — commit subjects alone often understate what shipped. Pay particular attention to:
- New skills under
plugins/corezoid/skills/(added directories). - MCP server changes in
plugins/corezoid/mcp-server/(new tools, schema changes, breaking behaviour). - Docs changes in
plugins/corezoid/docs/and root-level docs (README.md,SECURITY.md,CLAUDE.md). - CI / workflow changes in
.github/.
If git status shows uncommitted changes, ask the user whether those should be part of this release or stay out of it. Don't assume — pending edits are sometimes the whole point of the release and sometimes unrelated work.
Output to the user: a short bulleted summary grouped by category, the kind of bullets that would end up in the changelog. Use the same vocabulary the existing CHANGELOG.md uses: Feat:, Fix:, Docs:, Chore:, CI:, Security:, Refactor:. Keep each bullet to one line.
Phase 2 — Ask which new version to publish
Goal: get the new semantic version from the user.
Use AskUserQuestion with the current version pulled from plugins/corezoid/.claude-plugin/plugin.json and three suggested bumps:
- Patch (
X.Y.Z+1) — bug fixes, docs, internal cleanup only. - Minor (
X.Y+1.0) — new skills, new MCP tools, additive features. - Major (
X+1.0.0) — breaking changes to manifests, MCP tool schemas, or skill contracts.
Recommend a level based on Phase 1 (e.g. if a new skill directory appeared, suggest a minor bump). Always allow the user to override with a custom version via the "Other" answer.
The version the user picks is the only version that should appear anywhere downstream in this skill run. Store it once and reuse it — do not re-derive it.
Phase 3 — Draft the CHANGELOG.md entry
Goal: produce a new section at the top of CHANGELOG.md, matching the existing format exactly.
Read CHANGELOG.md. The format is rigid:
## [X.Y.Z]
- Feat: …
- Fix: …
- Docs: …Rules:
- The new section goes immediately after the top-level
# Changelogheading, before the previous version. - Use the same category prefixes seen in prior entries. Don't invent new ones unless the change genuinely doesn't fit (e.g.
Refactor:is fine,Stuff:is not). - One bullet per logical change, not one bullet per commit. Squash related commits.
- Write in the past tense, imperative-ish style matching prior entries ("add", "fix", "remove" — not "added", "fixes").
- Drop trivia: bumps of internal version numbers, merge commits, formatting-only changes. The changelog is for users of the plugin, not for git archeologists.
Show the drafted entry to the user before writing it to disk. They will often want to reword a bullet or merge two of them — that's expected.
Phase 4 — Sync the version across all seven release files
Goal: the new version appears in exactly seven places, all in agreement.
The files and the field to update:
| File | Field to edit |
plugins/corezoid/.claude-plugin/plugin.json | top-level "version" |
plugins/corezoid/.codex-plugin/plugin.json | top-level "version" |
plugins/corezoid/.kiro-plugin/plugin.json | top-level "version" |
plugin.json (repo root, agent-plugins manifest) | top-level "version" |
.claude-plugin/marketplace.json | plugins[0].version |
.agents/plugins/marketplace.json | plugins[0].version |
POWER.md | YAML frontmatter version: |
Use the Edit tool with old_string containing the full "version": "..." (or version: ... for POWER.md) line so the replacement is unambiguous. Do not rewrite the whole file. Do not touch any other field — license, description, paths must stay as-is.
After editing, verify with a single grep:
grep -nE '"version"|^version:' \
plugins/corezoid/.claude-plugin/plugin.json \
plugins/corezoid/.codex-plugin/plugin.json \
plugins/corezoid/.kiro-plugin/plugin.json \
plugin.json \
.claude-plugin/marketplace.json \
.agents/plugins/marketplace.json \
POWER.mdAll seven lines must show the new version. If any one disagrees, fix it before moving on — never proceed to commit with mismatched manifests. CI's Version sync across manifests step and the release workflow's guard job both enforce this; a stale file will fail the release before any binary is built. That step in .github/workflows/ci.yml is the authoritative list: if it names a file this table lacks, bump that file too and add it here. v3.11.0 was first tagged with the root plugin.json still on the old version because this table listed six files.
Then validate that the JSON still parses:
python3 -m json.tool .claude-plugin/marketplace.json >/dev/null
python3 -m json.tool .agents/plugins/marketplace.json >/dev/null
python3 -m json.tool plugins/corezoid/.claude-plugin/plugin.json >/dev/null
python3 -m json.tool plugins/corezoid/.codex-plugin/plugin.json >/dev/null
python3 -m json.tool plugins/corezoid/.kiro-plugin/plugin.json >/dev/null
python3 -m json.tool plugin.json >/dev/nullPhase 5 — Confirm with the user
Goal: nothing is committed without explicit go-ahead.
Show the user:
- The new version number.
- The CHANGELOG.md entry as it will be written.
- A
git diff --statof all currently staged/unstaged changes (including any pre-existing edits from Phase 1 that they confirmed should ship). - The exact commit message and tag name you intend to create.
Then use AskUserQuestion with options like "Proceed with commit and tag" / "Let me edit something first". Do not proceed without an affirmative answer. If the user wants to tweak the changelog or change the version, loop back to the relevant phase rather than improvising in place.
Phase 6 — Commit and tag
Goal: a single release commit plus a matching annotated git tag on the current branch.
Stage only the files this skill touched plus any files the user confirmed should ship:
git add CHANGELOG.md \
plugins/corezoid/.claude-plugin/plugin.json \
plugins/corezoid/.codex-plugin/plugin.json \
plugins/corezoid/.kiro-plugin/plugin.json \
plugin.json \
.claude-plugin/marketplace.json \
.agents/plugins/marketplace.json \
POWER.md
# Plus any other files the user explicitly approved in Phase 1.Avoid git add -A / git add . — there may be unrelated untracked files (samples, local docs, IDE state) that must not enter the release commit.
Commit message format (matches recent release commits in this repo):
chore(release): vX.Y.Z
- Brief one-line summary of the biggest change.
- Optional second bullet if there's another standout.Use a HEREDOC for the commit so multiline formatting is preserved. Do not add Claude co-author trailers to release commits — these are public and authored by the maintainer.
Then create the tag:
git tag -a vX.Y.Z -m "Release vX.Y.Z"Use the annotated form (-a) so git describe and GitHub Releases pick it up correctly. The unannotated git tag vX.Y.Z form will work but is inferior.
Do not push automatically. After the commit and tag are created, tell the user exactly what to run to push:
git push origin <current-branch>
git push origin vX.Y.ZThis deliberate pause is a safety net — pushing the tag triggers release.yml and a public GitHub Release, which is hard to undo. Let the user do that last step themselves.
Things to watch for
- Wrong branch. Releases typically come from
main. If the current branch is something else (e.g.develop), surface this in Phase 5 so the user can decide whether to merge first or release from where they are. - Tag already exists. Before Phase 6, run
git tag -l vX.Y.Z. If it returns the tag, stop — the version is already taken. Ask the user to pick a different one and loop back to Phase 2. - Unrelated untracked files. The repo often has work-in-progress files (
comparison.html,plan.html, sample.conv.jsonfiles, IDE config). These must not enter the release commit unless the user explicitly says they should. - Manifest drift in the diff. If Phase 1 shows a manifest file already changed by a previous (incomplete) attempt, treat that as suspect — re-read all seven release files before Phase 4 and reconcile from a known state, don't blindly bump on top of a half-finished bump.
- CHANGELOG.md already has an entry for the chosen version. That means a previous release attempt was partially completed. Show the existing entry to the user and ask whether to extend it, replace it, or pick a different version.
When the user wants a one-shot, no-questions release
If the user explicitly says something like "just release a patch, no questions" or "автоматический релиз патча", you can fold Phase 2 (pick patch bump) and Phase 5 (confirmation) into a single approval at the end, but never skip showing the proposed changelog entry and the proposed version. The seven-file sync is non-negotiable regardless of speed mode.
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
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.

