Install in Claude Code
Copygit clone --depth 1 https://github.com/hyhmrright/brooks-lint /tmp/release && cp -r /tmp/release/.claude/skills/release ~/.claude/skills/releaseThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
# brooks-lint — Release Target version comes from `$ARGUMENTS` (e.g. `1.4.0`). If empty, ask the maintainer for the semver bump before doing anything. Execute these steps in order. `bump-version.mjs` reads the version FROM `package.json` and does NOT touch the changelog — so the version edit and the CHANGELOG entry are manual; the script only fans the version out to the manifests and every version-bearing text file. 1. **Set the source of truth.** `npm version <version> --no-git-tag-version` (the `--no-git-tag-version` flag is required — plain `npm version` would create its own commit + tag and collide with the manual commit in step 5). 2. **Propagate.** `npm run bump` — writes the version into `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, `.codex-plugin/plugin.json`, `gemini-extension.json`, and every version-bearing text file discovered by `scripts/version-refs.mjs` (all six README badges plus the JSON-LD `softwareVersion` on the docs landing page). Do not maintain a list here — the script's is authoritative. 3. **Write the changelog.** Add a new section at the top of `CHANGELOG.md` with categorized notes (Added / Fixed / Changed) summarizing the commits since the last release tag (`git log <last-tag>..HEAD --oneline`). The heading MUST be `## [<version>] - YYYY-MM-DD` — `npm run validate` parses that exact shape and fails on a bare `## <version>`. 4. **Validate.** `npm run validate` — fails if any manifest, any version-bearing text file, or the CHANGELOG entry is out of sync. Fix and re-run until clean. Then `npm test`. 5. **Commit & push.** Stage everything `npm run bump` rewrote plus `CHANGELOG.md` — read `git status` rather than naming files, because the version-bearing set is discovered from disk and is more than one README; commit with a conventional message (`chore(release): bump version to <version>`); push to `main` (direct-to-main repo — no PR). 6. **Tag & publish.** Create the GitHub release: `gh release create v<version> --title "v<version>" --notes "<changelog section>"`. Report the released version and the GitHub release URL when done.