Release Bump
jamiepine/voicebox
Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.
Manage a lean-spec PR after it's been pushed — spec-issue linking, CI triage, review-comment discipline, merge-conflict recovery on open PRs, webhook subscription, and CHANGELOG follow-through on…
$ npx skills add codervisor/leanspec --skill leanspec-pr-lifecycle -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install codervisor/leanspec leanspec-pr-lifecycle --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/codervisor/leanspec.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/leanspec-pr-lifecycle .claude/skills/leanspec-pr-lifecycle && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "leanspec-pr-lifecycle" agent skill from https://github.com/codervisor/leanspec/tree/main/.agents/skills/leanspec-pr-lifecycle into .claude/skills/leanspec-pr-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "leanspec-pr-lifecycle", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/codervisor/leanspec/tree/main/.agents/skills/leanspec-pr-lifecycleType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add codervisor/leanspec --skill leanspec-pr-lifecycle -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install codervisor/leanspec leanspec-pr-lifecycle --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codervisor/leanspec.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/leanspec-pr-lifecycle .agents/skills/leanspec-pr-lifecycle && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "leanspec-pr-lifecycle" agent skill from https://github.com/codervisor/leanspec/tree/main/.agents/skills/leanspec-pr-lifecycle into .agents/skills/leanspec-pr-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "leanspec-pr-lifecycle", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add codervisor/leanspec --skill leanspec-pr-lifecycle -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install codervisor/leanspec leanspec-pr-lifecycle --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codervisor/leanspec.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/leanspec-pr-lifecycle .cursor/skills/leanspec-pr-lifecycle && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "leanspec-pr-lifecycle" agent skill from https://github.com/codervisor/leanspec/tree/main/.agents/skills/leanspec-pr-lifecycle into .cursor/skills/leanspec-pr-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "leanspec-pr-lifecycle", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/codervisor/leanspec.git --path .agents/skills/leanspec-pr-lifecycle--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add codervisor/leanspec --skill leanspec-pr-lifecycle -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install codervisor/leanspec leanspec-pr-lifecycle --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codervisor/leanspec.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/leanspec-pr-lifecycle .gemini/skills/leanspec-pr-lifecycle && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "leanspec-pr-lifecycle" agent skill from https://github.com/codervisor/leanspec/tree/main/.agents/skills/leanspec-pr-lifecycle into .gemini/skills/leanspec-pr-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "leanspec-pr-lifecycle", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install codervisor/leanspec leanspec-pr-lifecycleInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add codervisor/leanspec --skill leanspec-pr-lifecycle -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/codervisor/leanspec.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/leanspec-pr-lifecycle .github/skills/leanspec-pr-lifecycle && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "leanspec-pr-lifecycle" agent skill from https://github.com/codervisor/leanspec/tree/main/.agents/skills/leanspec-pr-lifecycle into .github/skills/leanspec-pr-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "leanspec-pr-lifecycle", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add codervisor/leanspec --skill leanspec-pr-lifecycle -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install codervisor/leanspec leanspec-pr-lifecycle --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codervisor/leanspec.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/leanspec-pr-lifecycle .opencode/skills/leanspec-pr-lifecycle && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "leanspec-pr-lifecycle" agent skill from https://github.com/codervisor/leanspec/tree/main/.agents/skills/leanspec-pr-lifecycle into .opencode/skills/leanspec-pr-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "leanspec-pr-lifecycle", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
leanspec-pr-lifecycleManage a lean-spec PR after it's been pushed — spec-issue linking, CI triage, review-comment discipline, merge-conflict recovery on open PRs, webhook subscription, and CHANGELOG follow-through on…
Leanspec PR Lifecycle is an agent skill from codervisor/leanspec. Manage a lean-spec PR after it's been pushed — spec-issue linking, CI triage, review-comment discipline, merge-conflict recovery on open PRs, webhook subscription, and CHANGELOG follow-through on merge. Triggers include "CI is failing", "check is red", "link this issue", "Closes vs Part of", "respond to review", "subscribe to PR", "triage PR", "the PR is ready", "PR has conflicts", "branch has conflicts with main", "merge conflict on the PR", or when a github-webhook-activity event arrives on a lean-spec PR…
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Git workflow, Webhooks and Changelog and release notes. It works with GitHub. The repository describes itself as: Lightweight, flexible Spec-Driven Development (SDD) for modern AI-powered development. The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit ee122d6. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghpnpmcargoFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Leanspec PR Lifecycle loads about 3.3k tokens when it runs. Until then it costs about 172 tokens; SKILL.md has 1,535 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from codervisor/leanspec at commit ee122d6, republished under its MIT licence (© codervisor). 1,535 words, ~3,317 tokens.
.claude/skills/leanspec-pr-lifecycle/SKILL.md (or your agent's skills folder).Everything that happens after git push on a lean-spec PR. Covers spec-issue linking, CI triage, review-comment discipline, webhook subscription, and the manual ticking of Plan items / CHANGELOG entries on merge.
This is lean-spec's analogue of onsager-pr-lifecycle / duhem-pr-lifecycle. The discipline is the same.
gh CLI for issue/PR manipulation, no hub, no direct GitHub API. Always use mcp__github__*. The gh CLI is fine for CI workflow inspection (gh run list, gh run view) — see leanspec-development "CI/CD"; it's just not the tool for spec-label updates or PR body edits.codervisor/leanspec for this skill.Every PR must either:
Closes #N / Fixes #N / Resolves #N (slice complete) or Part of #N / Refs #N (scaffolding), ORtrivial label (typo, doc-only, one-line obvious fix).If neither, the PR is out of process. Comment on the PR asking the author to add a spec link — creating one via issue-spec if none exists — or apply the trivial label.
GitHub closes issues on merge when the PR body contains one of: close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved — followed by #N.
Pick the keyword based on what this PR actually delivers:
| PR delivers | Use |
|---|---|
| The acceptance test / vertical slice the spec asks for | Closes #N |
| A bug fix for a specific defect | Fixes #N |
| Scaffolding / one phase of a multi-phase spec | Part of #N |
| Related work that shouldn't close the spec | Refs #N |
Part of / Refs are not auto-close keywords — they just cross-link in the UI. Use them for scaffolding so the spec stays open for the real slice.
Edit the PR body via mcp__github__update_pull_request (don't open a new PR just to fix the link). Put the linking line at the top of the body.
If a single PR delivers acceptance for more than one issue, write one Closes keyword per issue:
Closes #27, Closes #30, Closes #33GitHub only honors auto-close on each #N individually; Closes #27, #30, #33 closes #27 and leaves #30/#33 open.
## Delivers subsectionFor Part of #N PRs (and ideally all PRs), include a ## Delivers subsection in the body listing the exact Plan items this PR ticks. Copy the item text verbatim from the spec's ## Plan, but mark each as - [x]. Use this list to tick the parent spec's checkboxes after merge — see "Issue progress" below.
Example PR body:
Closes #142
## Delivers
- [x] Implement `GithubProvider::list_specs` in `rust/leanspec-core/src/providers/github.rs`
- [x] Add `--provider=github` flag to `leanspec init`
- [x] Update `locales/en.json` and `locales/zh-CN.json` with provider-picker copy
## Provider impact
- Types added: `ProviderKind::Github`, `GithubProviderConfig`
- Trait changes: none (implements existing `Provider` trait)
- Breaking change? no
## Summary
First slice of the github provider. List-only; CRUD lands in a follow-up.## Provider impact in the PR bodyIf the linked spec is labeled provider-impact, the PR body must include a ## Provider impact subsection (it's fine to copy the spec's own subsection verbatim). This makes provider changes visible in the PR diff itself, not just on the linked issue, so reviewers don't have to context-switch.
If Breaking change? yes, the PR must also touch CHANGELOG.md under the next [Unreleased] heading. Comment on the PR if either is missing.
Spec issues use only their open/closed state — no status labels. Lifecycle moves:
Closes #N → issue auto-closes (GitHub).Part of #N → spec stays open; tick the delivered Plan items on the parent manually (see below).When a PR is merged with Part of #N (parent stays open):
## Delivers subsection.- [ ] line in the parent spec's ## Plan section and flip it to - [x].mcp__github__issue_write.When a PR is merged with Closes #N:
provider-impact with Breaking change? yes, confirm a CHANGELOG entry landed; if not, file a follow-up PR adding it.Some issues are umbrella trackers that reference several sub-issues as a checklist — identified by a [Tracking] title prefix, a tracking label, or a ## Progress section whose items are - [ ] #N lines. When a PR closes a sub-issue, the tracker does not update itself.
After merge, for each auto-closed or explicitly-closed issue:
mcp__github__search_issues with repo:codervisor/leanspec #N in:body is:issue is:open.- [ ] ... #N ... line in a Progress / Plan section, flip it to - [x].<pr> landed #N1, #N2, #N3; ticked in Progress."CI on this repo runs from .github/workflows/. The relevant workflows are listed in leanspec-development "CI/CD"; the patterns below are what fails most often:
| Symptom | Usual cause |
|---|---|
pnpm typecheck fails on CI, passes locally | CI built the merge preview; main has drifted. git fetch origin main && git merge origin/main on the branch, re-run typecheck, push. |
cargo clippy -- -D warnings fails | A warning slipped in (often unused_imports or dead_code). Fix the root cause; never #[allow] past it. |
| i18n parity check fails | A key was added to en.json but not zh-CN.json (or vice versa). Add the missing key, even as a placeholder + // TODO(i18n) comment. |
| Test suite times out on Rust integration tests | Usually a tokio runtime blocking issue. Check for block_on inside an async context. |
| Workspace protocol validation fails | scripts/validate-no-workspace-protocol.ts flagged a workspace:* in a published package. Run pnpm sync-versions to resolve. |
| Platform binary validation fails | Rust binaries weren't copied for all 5 platforms. See NPM-DISTRIBUTION.md. |
| Desktop build fails | Tauri toolchain difference; rarely a code bug. See CI-TROUBLESHOOTING.md. |
WebFetch cannot read authenticated GitHub Actions logs — both the run pages and the API logs endpoint return 403. Don't waste time on them. Work instead from:
mcp__github__pull_request_read with method: get_check_runs — gives step name, status, timings.gh CLI in this repo's sessions (when available): gh run view <run-id> --log-failed. See CI-COMMANDS.md.When GitHub shows "This branch has conflicts that must be resolved" or mcp__github__pull_request_read reports mergeable: false, resolve locally — the GitHub web editor bypasses any local validation and routinely lands broken merges.
Don't use mcp__github__update_pull_request_branch to auto-merge main in via GitHub. That surfaces the same conflicts without giving you the resolution workspace, then commits a broken merge if you accept the default.
Check out the branch locally and run the full conflict walkthrough in leanspec-pre-push (step 1, "Resolving conflicts").
After the merge commit lands, continue with the rest of leanspec-pre-push (typecheck, test, clippy, spec-link, provider/i18n evidence) before pushing.
Push the merge commit to the same branch with git push (no --force). The existing PR updates in place; the conflict banner clears when GitHub re-evaluates.
If the PR is tied to a Closes #N / Part of #N line and the merge touched the spec's surface area (provider types, i18n keys), comment on the spec flagging what drifted, so the parent stays accurate.
If the branch is so far behind main that the conflict set is large (>10 files), close the PR, rebase the work into a fresh branch from origin/main, and open a new PR with the same linking line. Note the close reason on the old PR.
Fix the code. Don't reply per comment. Multiple reviewers (Copilot + human) often flag the same defect; a single commit that fixes it resolves all of them at once.
Reply only when:
Use mcp__github__add_reply_to_pull_request_comment for threaded replies, never top-level comments unless summarizing multiple responses at once.
If a review comment raises a design concern that the spec didn't address, pause and update the linked spec issue (add an open question under ## Alignment, comment on the spec, let a human decide). Don't silently expand scope in the PR.
Events from CI and reviewers arrive wrapped in <github-webhook-activity> tags. The harness forwards them as user messages.
mcp__github__subscribe_pr_activity after the PR is created (or the user asks you to watch it).mcp__github__unsubscribe_pr_activity when done — not strictly necessary but cleaner.After handling a webhook event, end with one or two sentences: what the failure was, what you changed, whether CI is re-running. Don't dump the full commit message in chat — the user can see it on the PR.
| Related surface | Role |
|---|---|
leanspec-dev-process | Top-level SDD loop; points here for the post-push stage. |
issue-spec | Creates the spec issue this PR links to. Installed globally from onsager-ai/dev-skills. |
leanspec-pre-push | Runs before git push; enforces the spec-link check locally and owns the conflict walkthrough. |
leanspec-development | Commands, CI workflows, publishing, changelog format, runner research. |
github-integration | gh CLI in cloud sessions (CI inspection only — not for issue/PR mutation). Installed globally from onsager-ai/dev-skills. |
© codervisor, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/leanspec-pr-lifecycle of codervisor/leanspec.
Open the folder on GitHubat commit ee122d6
Leanspec PR Lifecycle next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Leanspec PR Lifecycle this skillcodervisor/leanspec | 296 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Release Bumpjamiepine/voicebox | 57k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Go-Redis Release Preparationredis/go-redis | 22k | — | ~1.1k | Automated safety check: Pass | BSD-2-Clause | |
| Hunk Release Workflowmodem-dev/hunk | 9.5k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Worktrunk Release Workflowmax-sixty/worktrunk | 9k | — | ~6.9k | Automated safety check: Pass | Custom licence | |
| pybind11 Release Publicationpybind/pybind11 | 18k | — | ~2.5k | Automated safety check: Pass | Custom licence |
jamiepine/voicebox
Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.
redis/go-redis
Prepares a go-redis release locally: picks the next semver, gathers merged PRs, writes the RELEASE-NOTES entry and bumps versions, without publishing.
modem-dev/hunk
Maintainer workflow for preparing, publishing, verifying and curating Hunk releases, with confirmation gates before tags, publishes and public edits.
max-sixty/worktrunk
Walks a maintainer through cutting a Worktrunk release: sync the release branch, pass two test gates, review the changes, then publish.
pybind/pybind11
Walks a maintainer through publishing a pybind11 release after the preparation PR merges, with preflight checks, confirmations before each push and a GitHub release.
obot-platform/obot
Drafts release notes for an upcoming Obot minor release and saves them as an unpublished GitHub draft release, never tagging or publishing.
codervisor/leanspec
The spec-coding methodology for AI-assisted development. An agent skill from codervisor/leanspec.
codervisor/leanspec
Development workflows, commands, publishing, CI/CD, changelog management, and contribution guidelines for LeanSpec.
codervisor/leanspec
The end-to-end spec-issue-driven dev loop for lean-spec — spec → branch → implement → PR → merge → closure.
codervisor/leanspec
Run before pushing code to the lean-spec repo to catch what reviewers and CI will catch later, and confirm the branch has a linked spec issue in a valid state.
codervisor/leanspec
Watch GitHub Actions CI status for the current commit until completion.
Works with
Categories
Manage a lean-spec PR after it's been pushed — spec-issue linking, CI triage, review-comment discipline, merge-conflict recovery on open PRs, webhook subscription, and CHANGELOG follow-through on…. Leanspec PR Lifecycle is an agent skill from codervisor/leanspec. Manage a lean-spec PR after it's been pushed — spec-issue linking, CI triage, review-comment discipline, merge-conflict recovery on open PRs, webhook subscription, and CHANGELOG follow-through on merge.
Leanspec PR Lifecycle fits situations like: include CI is failing; link this issue; closes vs Part of; respond to review.
Run `npx skills add codervisor/leanspec --skill leanspec-pr-lifecycle -a claude-code`. Or copy the skill folder (.agents/skills/leanspec-pr-lifecycle in codervisor/leanspec) into .claude/skills/leanspec-pr-lifecycle in your project. Claude Code loads it when a task matches its description.
Run `npx skills add codervisor/leanspec --skill leanspec-pr-lifecycle -a codex`. Or copy the skill folder (.agents/skills/leanspec-pr-lifecycle in codervisor/leanspec) into .agents/skills/leanspec-pr-lifecycle in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add codervisor/leanspec --skill leanspec-pr-lifecycle -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/leanspec-pr-lifecycle, .gemini/skills/leanspec-pr-lifecycle, .github/skills/leanspec-pr-lifecycle and .opencode/skills/leanspec-pr-lifecycle in your project.
Going by SKILL.md and its folder, Leanspec PR Lifecycle needs the command-line tools its instructions call (git, gh, pnpm and cargo).
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Leanspec PR Lifecycle is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Leanspec PR Lifecycle: Release Bump (jamiepine/voicebox, 57k stars), Go-Redis Release Preparation (redis/go-redis, 22k stars), Hunk Release Workflow (modem-dev/hunk, 9.5k stars) and Worktrunk Release Workflow (max-sixty/worktrunk, 9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
codervisor (a GitHub organization) maintains it in codervisor/leanspec, which has 296 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on May 20, 2026.
Source: codervisor/leanspec on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.