release-prep
Skill2 starsChanged 7 months agoMITView on GitHub
Use when: preparing, validating, publishing, or verifying an ACP Kit release; release checklist; changelog, README, package version, tag, npm publish, GitHub Actions release workflow.
- Installs packages
- Commits and pushes
23 other projects use a version of this.
Adopted by
Most recently taken up by
- colonyops/hivetheir own version, first seen Nov 7, 2026
- microsoft/durabletask-pythontheir own version, first seen Nov 2, 2026
- Terryc21/sitreptheir own version, first seen Nov 1, 2026
- kala-project/acp-kitword for word, first seen Oct 20, 2026
- finch-xu/cc-routertheir own version, first seen Oct 15, 2026
- barlevalon/skillstheir own version, first seen Oct 13, 2026
Other versions23 projects use a version of this.
Word for word · 1
- kala-project/acp-kit★ 2100% same
Edited · 0
None found.
Wrote their own version · 22
- dathere/qsv★ 3.8ksame name
- Devolutions/IronRDP★ 3.3ksame name
- johnhuang316/code-index-mcp★ 1ksame name
- Trampoline-AI/predict-rlm★ 436same name
- Fu-Jie/awesome-openwebui★ 326same name
- Fu-Jie/openwebui-extensions★ 326same name
- finch-xu/cc-router★ 293same name
- ten9876/AetherSDR★ 259same name
- ayutaz/piper-plus★ 240same name
- opencrvs/opencrvs-core★ 122same name
12 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 repositoryOne other file it gives its agents.
- docs/agents.mdAGENTS.md
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. 0 are common, 9 are distinctive, and 12 are very specific to this project.
0
Common
Most of the 20 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
12
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
- Very specific: line 8
Use this skill before shipping a new @acp-kit/core or @acp-kit/spar release from the acp-kit repository.
- Distinctive: line 12
Run all commands from the repository root.
- Very specific: line 17
The two packages version independently: Only the package you are releasing needs its package.json version to equal the tag version.
- Very specific: line 18
If a spar release needs new core functionality, publish core-v...
- Distinctive: line 35
If the worktree has changes, identify whether they are release changes, user changes, or unrelated generated files.
- Very specific: line 47
Check that the target tag does not already exist locally or remotely ($pkg is core or spar):
- Very specific: line 58
Update root CHANGELOG.md only for @acp-kit/core, repository-wide release infrastructure, docs-site, or cross-package changes:
- Very specific: line 60
Keep ## [Unreleased] at the top.
- Very specific: line 61
Add ## [$version] - YYYY-MM-DD directly below it.
- Very specific: line 64
Do not duplicate Spar-only changes in root CHANGELOG.md.
- Very specific: line 66
Update packages/author-reviewer-loop/CHANGELOG.md when that package behavior, CLI, TUI, docs, or package metadata changed.
- Distinctive: line 68
Update README/docs only when user-facing behavior changed:
- Distinctive: line 74
Do not write new README files unless explicitly requested.
- Very specific: line 78
Only the package you are releasing changes version.
- Distinctive: line 102
Run the same core checks as CI/release plus docs when documentation changed:
- Very specific: line 121
Run a version sanity check before committing ($pkg is core or spar):
- Distinctive: line 134
If validation fails, fix the root cause and rerun the relevant checks.
- Distinctive: line 155
No unrelated user changes are being accidentally included.
- Distinctive: line 181
If the tag push fails because the tag already exists, stop and inspect.
- Very specific: line 185
Do not rely on gh run watch if it behaves badly in the local terminal.
- Distinctive: line 199
After the release workflow succeeds, verify npm metadata for the package you released:
“Common” is measured: kept by at least 6 in 10 of the 20 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
ACP Kit Release Prep
Use this skill before shipping a new @acp-kit/core or @acp-kit/spar release from the acp-kit repository.
Ground Rules
- Run all commands from the repository root.
- Preserve unrelated local changes. Do not reset, checkout, or discard user edits.
- The release workflow is tag-driven and per-package.
.github/workflows/release.ymltriggers on two independent tag families, and each publishes exactly one package:core-vX.Y.Zpublishes only@acp-kit/core; GitHub Release notes come from the matching section in rootCHANGELOG.md.spar-vX.Y.Zpublishes only@acp-kit/spar; GitHub Release notes come frompackages/author-reviewer-loop/CHANGELOG.md.
- The two packages version independently. Only the package you are releasing needs its
package.jsonversion to equal the tag version. Do not bump or re-publish the other package just to keep the numbers aligned. - If a spar release needs new core functionality, publish
core-v...first. The workflow refuses aspar-v...release whose declared@acp-kit/coredependency baseline is not yet on npm. - The workflow is idempotent: if the exact version is already on npm (published from the same commit) it skips
npm publishand only (re)creates the GitHub Release. If the version exists but was published from a different commit, it fails loudly instead of attaching a release to mismatched code. - For stable versions, npm publishes with
latest; prerelease versions (the version string contains-) publish withnext. - Releases ride on top of normal development history. Do not create a dedicated "Release X.Y.Z" commit. Instead, fold the version bump and changelog update into the regular feature/fix commit they belong to (or whatever in-progress commit the work logically lives in), then tag that commit. Tagging a normal commit is what triggers the release.
1. Inspect Current State
Run these first:
git status --short --branch
git log -5 --oneline --decorate
git tag --list 'core-v*' 'spar-v*' | tail -n 10
npm view @acp-kit/core version dist-tags.latest
npm view @acp-kit/spar version dist-tags.latestIf the worktree has changes, identify whether they are release changes, user changes, or unrelated generated files. Keep unrelated user changes intact.
2. Decide The Package And Version
First decide which package you are releasing: core or spar. Release them with separate tags and separate changelog entries; never bump both just to keep the numbers in lockstep.
Pick the smallest SemVer bump that fits the changes:
- Patch: bug fixes, docs corrections, small compatibility fixes.
- Minor: new features or breaking changes while still in
0.x. - Prerelease: use
X.Y.Z-alpha.N,X.Y.Z-beta.N, or similar when the release should go to npmnext.
Check that the target tag does not already exist locally or remotely ($pkg is core or spar):
pkg=spar
version=0.10.2
git tag --list "${pkg}-v$version"
git ls-remote --tags origin "${pkg}-v$version"3. Update Release Notes And Docs
Update root CHANGELOG.md only for @acp-kit/core, repository-wide release infrastructure, docs-site, or cross-package changes:
- Keep
## [Unreleased]at the top. - Add
## [$version] - YYYY-MM-DDdirectly below it. - Move relevant unreleased bullets into
Added,Changed,Fixed, orRemovedsections. - Mention package names when useful, especially
@acp-kit/corevs repository tooling. - Do not duplicate Spar-only changes in root
CHANGELOG.md. Spar CLI/TUI/runtime/docs/package metadata changes belong inpackages/author-reviewer-loop/CHANGELOG.mdonly.
Update packages/author-reviewer-loop/CHANGELOG.md when that package behavior, CLI, TUI, docs, or package metadata changed.
Update README/docs only when user-facing behavior changed:
- Root
README.mdfor core runtime behavior, install, supported agents, or examples. packages/author-reviewer-loop/README.mdfor CLI flags, environment variables, TUI behavior, usage display, exit behavior, or examples.docs/**when site docs should reflect the same change.
Do not write new README files unless explicitly requested.
4. Bump The Released Package Version
Only the package you are releasing changes version. The version in its package.json must equal the tag version.
For a core release:
version=0.10.2
npm pkg set "version=$version" -w packages/core
npm install --package-lock-onlyFor a spar release:
version=0.11.0
npm pkg set "version=$version" -w packages/author-reviewer-loop
# Only when this spar release requires a newer @acp-kit/core line (publish core first):
# npm pkg set "dependencies.@acp-kit/core=^<core-version>" -w packages/author-reviewer-loop
npm install --package-lock-onlyThe root package.json version is not used by the release workflow. Use the -w <path> form (the spar package is named @acp-kit/spar, so -w @acp-kit/author-reviewer-loop does not resolve).
5. Validate Locally
Run the same core checks as CI/release plus docs when documentation changed:
npm run build
npm test
npm run docs:build
git diff --checkFor changed .mjs files, syntax-check them explicitly:
node --check packages/author-reviewer-loop/bin/acp-author-reviewer-loop.mjs
node --check packages/author-reviewer-loop/lib/engine.mjs
node --check packages/author-reviewer-loop/lib/runtime/role.mjs
node --check packages/author-reviewer-loop/lib/renderers/plain.mjs
node --check packages/author-reviewer-loop/lib/renderers/tui.mjsRun a version sanity check before committing ($pkg is core or spar):
node -e "const pkg=process.argv[1], v=process.argv[2]; const dir=pkg==='core'?'packages/core':'packages/author-reviewer-loop'; const m=require('./'+dir+'/package.json'); if(m.version!==v) throw new Error(pkg+' version mismatch: '+m.version+' != '+v); console.log('version ok', pkg, v);" "$pkg" "$version"Optionally, before a release, run the gated real-agent smoke tests against installed agents (skipped by default so normal npm test stays fast):
npm run build
SPAR_REAL_AGENT_E2E=1 SPAR_REAL_AGENT_E2E_AGENTS=codex,claude npm testIf validation fails, fix the root cause and rerun the relevant checks.
6. Review The Final Diff
Before committing:
git status --short --branch
git diff --stat
# For a core release:
git diff -- CHANGELOG.md packages/core/package.json package-lock.json
# For a spar release:
git diff -- packages/author-reviewer-loop/CHANGELOG.md packages/author-reviewer-loop/package.json package-lock.jsonConfirm:
- The relevant changelog (
CHANGELOG.mdfor core,packages/author-reviewer-loop/CHANGELOG.mdfor spar) has a section matching the exact tag version. - The released package version equals
$version. package-lock.jsonreflects the version and dependency changes.- README/docs were updated if behavior changed.
- No unrelated user changes are being accidentally included.
7. Commit, Tag, And Push
Fold the version bump, changelog, README/docs, and package-lock.json updates into the regular development commit they belong to — do not create a dedicated "Release X.Y.Z" commit. The tag itself is what marks the release.
Typical flow:
# Stage everything that belongs in the next commit, including the version bumps.
git add -A
git diff --cached --stat
# Either amend the in-progress commit that the release rides on...
git commit --amend --no-edit
# ...or create a normal commit describing the actual change (not the release).
# Example: a fix-focused message, not "Release 0.10.2".
git commit -m "author-reviewer-loop: pass author reply into reviewer prompt"
# Tag that commit and push. Use the per-package tag: core-v$version or spar-v$version.
git tag "${pkg}-v$version"
git push origin main
git push origin "${pkg}-v$version"If the tag push fails because the tag already exists, stop and inspect. Do not force-push a release tag unless the user explicitly approves.
8. Verify GitHub Actions And npm
Do not rely on gh run watch if it behaves badly in the local terminal. Prefer status/list commands or the GitHub Actions page.
gh run list --workflow release.yml --limit 5
gh run list --workflow ci.yml --limit 5
gh run list --workflow docs-pages.yml --limit 5For a specific run id:
gh run view <run-id> --json status,conclusion,url,headSha,displayTitle,eventAfter the release workflow succeeds, verify npm metadata for the package you released:
# core release:
npm view @acp-kit/core version dist-tags.latest gitHead
# spar release:
npm view @acp-kit/spar version dist-tags.latest gitHeadExpected result:
- The released package version equals
$version. dist-tags.latestequals$versionfor stable releases, ordist-tags.nextequals$versionfor prereleases.gitHeadmatches the release commit.- The GitHub Release workflow completed successfully. Node action deprecation warnings alone are not release blockers.
9. Final User Summary
Report concisely:
- Release version, commit, and tag.
- Local validation commands and results.
- GitHub Release workflow status.
- npm package versions and dist-tags.
- Any warnings or follow-up risks.
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.

