Agent skill

Leanspec Dev Process

by codervisor in codervisor/leanspec

The end-to-end spec-issue-driven dev loop for lean-spec — spec → branch → implement → PR → merge → closure.

MITAuto-check passedDevelopment

Install Leanspec Dev Process

skills CLI
$ npx skills add codervisor/leanspec --skill leanspec-dev-process -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install codervisor/leanspec leanspec-dev-process --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/codervisor/leanspec.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/leanspec-dev-process .claude/skills/leanspec-dev-process && rm -rf skills-src

Use ~/.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/

Facts

Skill name
leanspec-dev-process
GitHub stars
296
Token cost
~3.3k tokens
SKILL.md length
1,357 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

The end-to-end spec-issue-driven dev loop for lean-spec — spec → branch → implement → PR → merge → closure.

  • Works in 8 steps: Write the spec → Resolve open questions → Branch and implement → …
  • Asked how do I start work
  • SKILL.md covers The loop, Stages, The trivial escape hatch and Issue progress is the source…, plus 3 more sections
  • Calls pnpm and cargo

What it does

Leanspec Dev Process is an agent skill from codervisor/leanspec. The end-to-end spec-issue-driven dev loop for lean-spec — spec → branch → implement → PR → merge → closure. Use when asked "how do I start work", "what's the process", "SDD loop", "spec-driven development", "how do we ship a change on lean-spec", "from scratch what do I do", or when you're about to begin a non-trivial change on codervisor/leanspec and haven't yet decided how to split spec/PR. Delegates to issue-spec (spec writing), leanspec-pre-push (pre-push checks), leanspec-pr-lifecycle (post-push), and…

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 Spec-driven development and Internationalization. It works with GitHub. The repository describes itself as: Lightweight, flexible Spec-Driven Development (SDD) for modern AI-powered development. The licence is MIT.

When your agent uses it

  • Asked how do I start work
  • Whats the process
  • Spec-driven development
  • How do we ship a change on lean-spec

Example prompts

  • “how do I start work”
  • “s the process”
  • “SDD loop”
  • “/leanspec-dev-process”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Write the spec
  2. Resolve open questions
  3. Branch and implement
  4. Pre-push
  5. Open the PR
  6. During review
  7. Merge
  8. Closed-unmerged path

What it can do on your machine

Read from SKILL.md and the folder at commit ee122d6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm
    • cargo

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Leanspec Dev Process loads about 3.3k tokens when it runs. Until then it costs about 149 tokens; SKILL.md has 1,357 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~149
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from codervisor/leanspec at commit ee122d6, republished under its MIT licence (© codervisor). 1,357 words, ~3,257 tokens.

Download SKILL.mdSave it as .claude/skills/leanspec-dev-process/SKILL.md (or your agent's skills folder).
name
leanspec-dev-process
description
The end-to-end spec-issue-driven dev loop for lean-spec — spec → branch → implement → PR → merge → closure. Use when asked "how do I start work", "what's the process", "SDD loop", "spec-driven development", "how do we ship a change on lean-spec", "from scratch what do I do", or when you're about to begin a non-trivial change on `codervisor/leanspec` and haven't yet decided how to split spec/PR. Delegates to `issue-spec` (spec writing), `leanspec-pre-push` (pre-push checks), `leanspec-pr-lifecycle` (post-push), and `leanspec-development` (commands, CI, publishing, i18n).
metadata.internal
true

leanspec-dev-process

The spec-issue-driven development (SDD) loop on lean-spec. Every non-trivial change starts as a GitHub spec issue on codervisor/leanspec, proceeds through a PR that references it, and closes when the PR merges.

Lean-spec is its own dogfood: we use the SDD loop we ship. The historical specs/ directory is frozen as a snapshot of pre-migration work; new specs are GitHub issues. This is the same shape as Onsager's and Duhem's loops — the area taxonomy and toolchain checks are lean-spec-specific.

The loop

     ┌─────────────────────────────────────────────────────────────────┐
     │                                                                 │
     │   idea/request                                                  │
     │        ↓                                                        │
     │   spec(<area>): ...    ← issue-spec skill                       │
     │        │                                                        │
     │        ↓                                                        │
     │   branch + implement                                            │
     │        │                                                        │
     │        ↓                                                        │
     │   leanspec-pre-push    ← merge preview, typecheck, test, clippy │
     │        │                                                        │
     │        ↓                                                        │
     │   git push → open PR (body: "Closes #N" or "Part of #N")        │
     │        │                                                        │
     │        ↓                                                        │
     │   leanspec-pr-lifecycle   ← CI triage, review, iterate          │
     │        │                                                        │
     │        ↓                                                        │
     │   merge                                                         │
     │        │                                                        │
     │        │ Closes #N → GitHub auto-closes spec                    │
     │        │ Part of #N → tick Plan items manually (pr-lifecycle)   │
     │        ↓                                                        │
     │   spec closed (Closes) OR Plan items ticked (Part of)           │
     │                                                                 │
     └─────────────────────────────────────────────────────────────────┘

Stages

1. Write the spec

Trigger issue-spec (or say "spec this"). It creates a GitHub issue on codervisor/leanspec with:

  • ## Overview, ## Design, ## Plan, ## Test, ## Alignment, ## Notes
  • ## Provider impact when the change touches the provider seam
  • Open questions live under ## Alignment as a ### Open questions subsection (omit if none) — leanspec-pre-push blocks on unresolved items there.
  • Labels: spec, one type (feat / fix / refactor / perf), one or more area:*, one priority:*. The full area taxonomy lives in issue-spec's SKILL.md.

Hard rule: no spec → no PR, unless the PR is labeled trivial (typos, doc-only fixes, one-line obvious bug repair).

Body size: <~2000 tokens. Larger features split into parent + sub-issues via mcp__github__sub_issue_write. The SDD loop runs independently on each sub-issue; the parent tracks overall progress.

If the spec touches the provider abstraction — types in packages/ui/src/types/specs.ts, the provider trait in rust/leanspec-core/, or anything else that crosses the markdown/github backend seam — it must include ## Provider impact. This is lean-spec's analogue of Duhem's schema-impact rule: the provider seam is the central product promise (CLI/MCP/UI behave identically across backends), so changes to it are tracked explicitly.

If the spec adds or changes user-visible strings, the Plan must include locale updates for both en and zh-CN, and the i18n label is applied. The leanspec-development skill's I18N.md is canonical.

2. Resolve open questions

Before opening a PR, resolve any open questions on the spec issue thread. A spec with unanswered ### Open questions is not ready to implement — its design isn't pinned yet.

3. Branch and implement

Branch naming convention:

  • Human-owned branches: any name following <type>/<short-description> (e.g. feat/github-provider, fix/cli-help-text).
  • Claude-owned branches: claude/spec-<N>-<slug> or claude/<descriptor>. The harness enforces the claude/ prefix on cloud sessions.

Implement the spec's Plan items in order. Keep commits small and focused. Commit messages: imperative mood, <72 chars, types feat / fix / refactor / test / docs / chore / ci / perf (matches codervisor/CLAUDE.md).

Provider-agnostic core discipline. When working in area:provider or area:core, the lean-spec invariant is that backend-specific concerns don't leak upward. Markdown-specific frontmatter parsing belongs in the markdown provider; github-specific issue mapping belongs in the github provider; both expose the same LightweightSpec / Spec shape upward. A change that adds a backend-typed field to a shared type is a regression of this invariant and must be called out in ## Provider impact.

i18n discipline. No user-visible string ships in only one locale. The leanspec-development skill's RULES.md lists this as a mandatory rule; CI enforces parity for the locale files it knows about.

Rust discipline. All Rust code must pass cargo clippy -- -D warnings. Functions with >7 args use a params struct (enforced by clippy.toml). Don't #[allow(dead_code)] or #[allow(unused)] past a clippy warning — fix the root cause.

4. Pre-push

Trigger leanspec-pre-push (or say "ready to push"). The full checklist is in that skill; in summary:

  1. Sync origin/main into the branch (CI tests a merge preview, not the branch alone). Resolve conflicts locally, never on the PR web editor.
  2. pnpm typecheck (never skip before marking complete).
  3. pnpm pre-push (typecheck + clippy).
  4. pnpm test for the affected packages.
  5. pnpm format:rust:check for Rust changes.
  6. Verify a spec issue is linked, or that the PR will be labeled trivial.
  7. If the spec is labeled provider-impact or i18n, confirm the corresponding evidence is in the PR.

Don't paper over warnings with --no-verify. If a hook fails, investigate.

5. Open the PR

PR body must begin with a linking line:

PR deliversUse
The full spec / acceptance test / vertical sliceCloses #N
A bug fix for a specific defectFixes #N
Scaffolding / one phase of a multi-phase specPart of #N
Related work that shouldn't close the specRefs #N

Under ## Delivers, list the Plan items this PR ticks (exact text from the spec's Plan). After merge, tick those checkboxes manually on the parent spec — see leanspec-pr-lifecycle.

If the PR is genuinely trivial (typo, doc-only, one-line obvious fix), apply the trivial label and skip the spec-linking requirement. Use sparingly — if reviewers flag it as needing context, escalate to a spec.

Decide before opening, not after. Answer the spec-vs-trivial gate at PR creation: pass Closes #N / Part of #N in the PR body, or pass labels: ["trivial"] to mcp__github__create_pull_request. Don't push and let a reviewer ask.

6. During review

Trigger leanspec-pr-lifecycle (or say "triage PR" / "CI is failing" / respond to a webhook). It covers:

  • CI triage: build / test / lint / i18n-parity failures.
  • Review-comment discipline: fix the code, don't reply per comment.
  • Webhook subscription to stream CI + review events.
Show full SKILL.md (546 more words)Show less
7. Merge
  • Closes #N PRs auto-close the spec on merge.
  • Part of #N / Refs #N PRs leave the spec open; tick the delivered Plan items manually on the parent spec, and if all sub-issues of a parent are closed, ping the parent. See leanspec-pr-lifecycle.
  • For PRs labeled provider-impact, append the change to CHANGELOG.md under the next-version heading. The leanspec-development skill's "Changelog" section is the format reference.
8. Closed-unmerged path

If you close a PR without merging (e.g. abandoned approach), the spec issue stays open as-is — the next implementer can pick it up from there.

The trivial escape hatch

Not every change needs a spec. The trivial label on a PR explicitly opts out. Use for:

  • Typos in comments, docs, commit messages.
  • One-line obvious bug fixes where the repro is in the diff itself.
  • Formatting-only changes.
  • Dependency version bumps (unless they break APIs).

Do NOT use for:

  • Anything touching multiple files.
  • Anything that changes the provider abstraction.
  • Anything adding or changing a user-visible string (i18n parity is mandatory).
  • Anything that could plausibly merit a follow-up.

When in doubt, write the spec.

Issue progress is the source of truth

A spec issue's open/closed state plus its Plan checkboxes are the source of truth. Use Closes #N only on a PR that delivers the final unticked Plan items, so GitHub's auto-close fires once the spec is actually complete; use Part of #N for partial slices that leave items behind, then tick the delivered checkboxes manually on merge. If a multi-PR spec finishes via Part of PRs only, a human closes the parent once the last Plan item ticks. Plan-item ticks on merge are manual; leanspec-pr-lifecycle covers the mechanics.

Anti-patterns (don't)

  • PR without a spec and no trivial label. Reviewers will ask; the PR should not merge until the author either adds a spec link or the trivial label.
  • Closing a spec manually when you meant Closes #N. Let GitHub do it via the PR merge so the timeline has the auditable link.
  • Editing Plan checkboxes to mark items done before the PR merges. Tick them on merge, not before.
  • Provider change without ## Provider impact callout. The provider seam is the central product promise; mis-tracking a change to it corrupts the signal for users adopting different backends.
  • User-visible string in only one locale. Both en and zh-CN ship together, every time.
  • Skipping leanspec-pre-push. Even a thin checklist catches the cheap mistakes; the typecheck/clippy gate exists because CI re-runs these and slow CI cycles cost more than local cycles.
  • Authoring a new specs/NNN-slug/ directory. The file-based corpus is frozen post-migration. New work is GitHub issues.

Delegation map

StageSkill / workflow
Write the specissue-spec (installed globally from onsager-ai/dev-skills)
Commands, CI, publishing, i18nleanspec-development
Pre-push checksleanspec-pre-push
CI triage, review, iterateleanspec-pr-lifecycle
On PR merge → tick Plan itemsleanspec-pr-lifecycle (manual)
GitHub CLI / cloud authgithub-integration (installed globally from onsager-ai/dev-skills)

Relationship to Onsager / Duhem dev process

Lean-spec, Onsager, and Duhem share the SDD shape but live in separate repos with separate skills. When working on lean-spec, use this loop. The methodology itself comes from lean-spec — Onsager and Duhem are downstream adopters of the framework lean-spec defines. That's another reason to dogfood it here: if the SDD loop is awkward on lean-spec's own repo, that's a signal for the next iteration of the product.

© codervisor, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/leanspec-dev-process of codervisor/leanspec.

Open the folder on GitHubat commit ee122d6

Compare with similar skills

Leanspec Dev Process 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.

Leanspec Dev Process compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Leanspec Dev Process this skillcodervisor/leanspec296—~3.3kAutomated safety check: PassMIT
Repomix Browser Extension Developeryamadashy/repomix29k1 repos~288Automated safety check: PassMIT
Valgocohesivestack/valgo508—~2.4kAutomated safety check: PassMIT
Readme I18nY80/bmm3432 repos~1.9kAutomated safety check: PassMIT
Review Spdzhu1090093659/spec_driven_develop983—~1.5kAutomated safety check: PassMIT
React Router RFC Implementerremix-run/react-router57k—~2.3kAutomated safety check: PassMIT

Similar skills

  • Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content…

    29k GitHub starsUsed in 1 repo~288 tokens
    DevelopmentAuto-check passed
  • Valgo

    cohesivestack/valgo

    Add, refactor, debug, review, explain, or migrate type-safe validation in consumer Go applications using github.com/cohesivestack/valgo.

    508 GitHub stars~2.4k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • A skill your agent uses when the user wants to translate a repository README, make a repo multilingual, localize docs, add a language switcher, internationalize the README, or update localized…

    343 GitHub starsUsed in 2 repos~1.9k tokens
    Frontend & DesignAuto-check passed
  • Review Spd

    zhu1090093659/spec_driven_develop

    Findings-first code review workflow for AI coding agents. An agent skill from zhu1090093659/spec_driven_develop.

    983 GitHub stars~1.5k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • React Router RFC Implementer

    remix-run/react-router

    Turns a React Router RFC discussion on GitHub into an implementation, weighing community feedback and settling open questions with you before coding.

    57k GitHub stars~2.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Spec Driven Develop

    zhu1090093659/spec_driven_develop

    Automates pre-development workflow for large-scale complex tasks.

    983 GitHub stars~5.1k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed

More from codervisor/leanspec

  • Leanspec

    codervisor/leanspec

    The spec-coding methodology for AI-assisted development. An agent skill from codervisor/leanspec.

    296 GitHub stars~1.8k tokensUpdated 4 mo ago
    Auto-check passed
  • Leanspec Development

    codervisor/leanspec

    Development workflows, commands, publishing, CI/CD, changelog management, and contribution guidelines for LeanSpec.

    296 GitHub stars~2.5k tokensUpdated 4 mo ago
    Auto-check passed
  • Leanspec PR Lifecycle

    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…

    296 GitHub stars~3.3k tokensUpdated 4 mo ago
    Auto-check passed
  • Leanspec Pre Push

    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.

    296 GitHub stars~2.5k tokensUpdated 4 mo ago
    Auto-check passed
  • Watch CI

    codervisor/leanspec

    Watch GitHub Actions CI status for the current commit until completion.

    296 GitHub stars~724 tokensUpdated 4 mo ago
    Auto-check: notes

Works with

Questions about Leanspec Dev Process

What does Leanspec Dev Process do?

The end-to-end spec-issue-driven dev loop for lean-spec — spec → branch → implement → PR → merge → closure. Leanspec Dev Process is an agent skill from codervisor/leanspec. The end-to-end spec-issue-driven dev loop for lean-spec — spec → branch → implement → PR → merge → closure.

When should I use Leanspec Dev Process?

Leanspec Dev Process fits situations like: asked how do I start work; whats the process; spec-driven development; how do we ship a change on lean-spec.

How do I install Leanspec Dev Process in Claude Code?

Run `npx skills add codervisor/leanspec --skill leanspec-dev-process -a claude-code`. Or copy the skill folder (.agents/skills/leanspec-dev-process in codervisor/leanspec) into .claude/skills/leanspec-dev-process in your project. Claude Code loads it when a task matches its description.

How do I install Leanspec Dev Process in Codex?

Run `npx skills add codervisor/leanspec --skill leanspec-dev-process -a codex`. Or copy the skill folder (.agents/skills/leanspec-dev-process in codervisor/leanspec) into .agents/skills/leanspec-dev-process in your project. Codex loads it when a task matches its description.

Can I use Leanspec Dev Process in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add codervisor/leanspec --skill leanspec-dev-process -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-dev-process, .gemini/skills/leanspec-dev-process, .github/skills/leanspec-dev-process and .opencode/skills/leanspec-dev-process in your project.

What does Leanspec Dev Process need to run?

Going by SKILL.md and its folder, Leanspec Dev Process needs the command-line tools its instructions call (pnpm and cargo).

Does Leanspec Dev Process access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Leanspec Dev Process safe to install?

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.

What licence does Leanspec Dev Process use?

Leanspec Dev Process is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Leanspec Dev Process use?

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.

What are the alternatives to Leanspec Dev Process?

Skills that share tags, products or a category with Leanspec Dev Process: Repomix Browser Extension Developer (yamadashy/repomix, 29k stars), Valgo (cohesivestack/valgo, 508 stars), Readme I18n (Y80/bmm, 343 stars) and Review Spd (zhu1090093659/spec_driven_develop, 983 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Leanspec Dev Process?

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.