release
Skill8 starsChanged 12 days agoMITView on GitHub
Use in this repo when asked to release a version or redeploy the docs: "release", "release version", "cut a release", "ra bản mới", "release bản mới", "deploy docs", "cập nhật version lên docs".
- Reads credentials
- Deletes or force-pushes
- Commits and pushes
Files
release
Releases are cut by hand from this machine: check the commit, check the docs cover every skill and hook, build the docs site at the new version, then tag main, publish the GitHub release and deploy the site with the local Vercel CLI.
CI never tags or deploys; checks.yml only tests.
The user's "release" is the explicit word for tagging main and deploying the docs environment this once; still load environments (its docs entry in .agents/environments.json holds the URL, Vercel ids and rollback).
Nothing public happens before section 5, so any failure before it leaves no tag and no deploy behind.
Each Bash call starts a fresh shell: every block below begins by loading the state file, and sections 1 and 2 write it.
1. Pin the commit
git fetch origin --prune --tags
STATE="${TMPDIR:-/tmp}/hephaestus-release.env"
SHA="$(git rev-parse origin/main)"
MAIN="$(git worktree list --porcelain | sed -n 's/^worktree //p' | head -n 1)"
WT="$(dirname "$MAIN")/$(basename "$MAIN").worktrees/release-${SHA:0:12}"
SITE="$(mktemp -d)/hephaestus-skills-docs"
git worktree add --detach "$WT" "$SHA"
printf 'SHA=%s\nMAIN=%s\nWT=%s\nSITE=%s\n' "$SHA" "$MAIN" "$WT" "$SITE" > "$STATE"2. Pick the version
. "${TMPDIR:-/tmp}/hephaestus-release.env" && cd "$WT"
python3 .github/scripts/next_version.pyrelease=false: HEAD is tagged or nothing changed since the last tag; say so and stop, unless the user wants the current tag's docs redeployed, then set VERSION to that tag and REDEPLOY=1.
Otherwise VERSION is its version: ! or a BREAKING CHANGE: footer is major, any feat minor, the rest patch; a different number the user names wins.
Record it: printf 'VERSION=%s\nREDEPLOY=%s\n' "<version>" "<1 or empty>" >> "${TMPDIR:-/tmp}/hephaestus-release.env".
3. Checks on this exact commit
. "${TMPDIR:-/tmp}/hephaestus-release.env" && cd "$WT"
python3 .claude/skills/release/scripts/check_docs.py
python3 .github/scripts/check_skill_refs.py
bash .github/scripts/test_next_version.sh
bash hooks/test.sh
bash skills/feature-status/scripts/test_status.sh
python3 skills/harness-map/scripts/test_harness_map.py
python3 skills/project-init/scripts/test_doctor.pycheck_docs.py checks every skill is in the README ## Skills table, a pillar's covered_by.skills and lifecycle.json skills, and every hook in the README ## Hooks table and hooks/README.md; the rest are the checks.yml suites.
Any gap or failure stops the release: fix it in a worktree-flow PR into main, and start again at section 1 after the user merges it.
4. Build and look at the site
. "${TMPDIR:-/tmp}/hephaestus-release.env" && cd "$WT"
GSC="$(curl -fsS https://hephaestus-skills-docs.vercel.app/ | sed -n 's/.*google-site-verification" content="\([^"]*\)".*/\1/p' | head -n 1)"
python3 skills/harness-map/scripts/harness_map.py --docs-only "$SITE" --version "$VERSION" \
--site-url https://hephaestus-skills-docs.vercel.app ${GSC:+--gsc-token "$GSC"}
python3 .claude/skills/release/scripts/check_docs.py --site "$SITE" --version "$VERSION" --sha "$SHA"
npx --yes vercel@64.5.0 whoamiThe live site's Search Console token is carried over, so a release never drops it.
The site check must print 0 gaps (every skill page and sitemap entry, index.html, the install page, version.json).
Then open $SITE/index.html in a real browser: the wheel popover, a new skill's reader page and the install page must look right, per AGENTS.md's UI bar.
whoami failing is a blocker to report (the user logs in with ! npx vercel login); never read a stored token.
5. Confirm, tag, deploy
Show the user VERSION, the previous tag and git -C "$WT" log --no-merges --format='%h %s' <previous>..HEAD, and get one yes for the tag, release and deploy together (a redeploy: one yes for the deploy).
. "${TMPDIR:-/tmp}/hephaestus-release.env" && cd "$WT"
[ -n "$REDEPLOY" ] || gh release create "$VERSION" --target "$SHA" --title "Hephaestus Skills $VERSION" \
--notes "Docs: https://hephaestus-skills-docs.vercel.app" --generate-notes
cd "$SITE" && VERCEL_ORG_ID=team_yweEZEcfhBe9DEWQPiEOmXBX VERCEL_PROJECT_ID=prj_Aqtz9C2gXkFE0058DfeSQL4S88Cr \
npx --yes vercel@64.5.0 deploy --prod --yesThe Vercel ids come from the registry, so the CLI never asks to link or creates a new project. A failed release create stops before the deploy; a failed deploy after the tag is retried, and the tag stays (a tag is never deleted or moved without the user's word).
6. Verify and clean up
. "${TMPDIR:-/tmp}/hephaestus-release.env"
curl -fsS https://hephaestus-skills-docs.vercel.app/version.json # {"sha": "$SHA", "version": "$VERSION"}
gh release view "$VERSION" -R quocld/hephaestus-agent-skills --json tagName,urlRetry the curl for about two minutes before calling it failed; then smoke the live site per the registry's testing.rules in a real browser.
A bad deploy rolls back with the registry's rollback command.
Clean up from the main checkout: git -C "$MAIN" worktree remove "$WT", rm -rf "$(dirname "$SITE")" "${TMPDIR:-/tmp}/hephaestus-release.env".
Report
Version, tag commit, release URL, the docs check result, live version.json, smoke result, and anything left for the user.
Other versions194 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 194
- paperclipai/paperclip★ 110ksame name
- modelcontextprotocol/servers★ 92ksame name
- remotion-dev/remotion★ 70ksame name
- traefik/traefik★ 65ksame name
- usememos/memos★ 64ksame name
- tw93/Pake★ 63ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 40ksame name
- Yeachan-Heo/oh-my-claudecode★ 40ksame name
- tobi/qmd★ 30ksame name
- jlowin/fastmcp★ 28ksame name
184 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.
Used alongsideProjects 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
MicrosoftSkillpr-report
Review a pull request or contribution deeply, explain it tutorial-style for a maintainer, and produce a polished report artifact such as HTML or Markdown. Use when asked to analyze a PR, explain a contributor's design decisions, compare it with similar systems, or prepare a merge recommendation.
Also in 5 projects that use this
Microsoft AzureSkilldocumentation-consistency
Keeps GPT-RAG MCP service and umbrella documentation aligned with shipped behavior. Use for capabilities, configuration keys, deployment steps, endpoints, defaults, operations, or breaking changes.
Also in 6 projects that use this
parcadeiSkillagent-context-isolation
Agent Context Isolation
Also in 3 projects that use this
- +3 more from Grinv
In this repository27 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- ask-or-decideSkill
- axiSkill
- betterstack-logsSkill
- bug-triageSkill
- chrome-devtools-axiSkill
- e2e-verifySkill
- environmentsSkill
- feature-buildSkill
- feature-statusSkill
- fe-guardrailsSkill
- flow-traceSkill
- fresh-reviewSkill
- gnhfSkill
- harness-mapSkill
- jira-bug-hunterSkill
- knowledge-placementSkill
- logging-standardSkill
- project-initSkill
- root-causeSkill
- security-passSkill
- server-touchSkill
- stowSkill
- verify-loopSkill
- visionSkill
- worktree-flowSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

