.agents/skills/release/SKILL.md
Plan and publish a GitHub Release in a tag-driven repository. Use when a user asks to cut, prepare, or publish a software release, propose the next vX.Y.Z tag, support prerelease tags like vX.Y.Z-beta.N, draft better release notes from PRs and direct commits since the last release, update CHANGELOG.md, create the tag pinned to an exact commit, and watch the publish workflow.
npx skillsauth add pwrdrvr/ghcrawl releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill for repos that publish from GitHub Releases and want human-written notes instead of GitHub's generated summary.
gh repo view; do not guess.git fetch origin --tags.git pull --ff-only origin <default-branch>.v, for example v0.6.0 or v0.6.0-beta.1.gh release create --target <sha>.origin/<default-branch> moves after planning or before pushing, stop and regenerate the release plan.v0.6.0-beta.1, the GitHub release must be created as a prerelease too.Use the bundled planner to gather release facts and raw note inputs:
python3 .agents/skills/release/scripts/release_plan.py --output-dir .local/release
It writes:
.local/release/release-plan.json.local/release/release-plan.mdThe planner:
mainBefore making any changelog edit, commit, push, tag, or release, show the user:
origin/<default-branch>If the meaningful commit count is less than 3, explicitly warn that there are not many changes in this release and ask whether they still want to proceed.
main with no PR, use the commit subject and body as raw input and rewrite those too.CHANGELOG.md and the GitHub release notes.Highlights, Fixes, Performance, Docs, and Internal when they fit the release.CHANGELOG.md does not exist, create it with a # Changelog header.## v0.6.0 - 2026-03-12
docs: add changelog for v0.6.0
Use the planner's suggestion unless the user overrides it.
v0.5.0 -> v0.6.0.v0.9.0 -> v0.10.0 as the normal next minor bump.v0.9.0 to v1.0.0 unless the user explicitly asks.The bundled planner treats a patch release as the default only when all of these are true:
git fetch origin --tags
default_branch=$(gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name')
current_branch=$(git branch --show-current)
test "$current_branch" = "$default_branch"
git pull --ff-only origin "$default_branch"
python3 .agents/skills/release/scripts/release_plan.py --output-dir .local/release
Read .local/release/release-plan.md and summarize the proposed release for approval.
After approval, write:
.local/release/release-notes.mdCHANGELOG.mdgit add CHANGELOG.md
git commit -m "docs: add changelog for <tag>"
git push origin HEAD:"$default_branch"
release_sha=$(git rev-parse HEAD)
Stable release:
gh release create "<tag>" \
--target "$release_sha" \
--title "<tag>" \
--notes-file .local/release/release-notes.md
Prerelease:
gh release create "<tag>" \
--prerelease \
--target "$release_sha" \
--title "<tag>" \
--notes-file .local/release/release-notes.md
If the repo prefers a titled release name such as <tag> - short theme, use that instead of the plain tag.
gh release view "<tag>"
run_id=$(gh run list --workflow publish.yml --event release --limit 10 --json databaseId,headSha,status,conclusion \
--jq '.[] | select(.headSha == "'"$release_sha"'") | .databaseId' | head -n1)
gh run watch "$run_id"
If the publish workflow fails, inspect it yourself:
gh run view "$run_id" --log-failed
CHANGELOG.md.tools
Use the local ghcrawl CLI to inspect duplicate clusters and issue/PR summaries from the existing ghcrawl dataset, and refresh one repo only when the user explicitly asks. Use when a user wants to triage related issues or PRs, inspect semantic clusters, or run ghcrawl's staged refresh pipeline.
testing
Manage GitHub issues and the GitHub Project board for the current repository, while keeping the local tracker in sync. Use when the user wants to capture freeform requirements as issues, flesh out issue descriptions from repo or upstream research, triage Priority/Size/Workflow/Status, add issues or PRs to the repo's configured project board, or reconcile GitHub state with `.local/work-items.yaml`.
documentation
Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
documentation
Maintain the OpenClaw memory wiki vault with deterministic pages, managed blocks, and source-backed updates.