leanspec-sdd

Teach agents how to run Spec-Driven Development (SDD) in LeanSpec projects. This skill is an addon: it does not replace MCP or CLI tools.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "leanspec-sdd" with this command: npx skills add codervisor/lean-spec/codervisor-lean-spec-leanspec-sdd

LeanSpec SDD Skill

Teach agents how to run Spec-Driven Development (SDD) in LeanSpec projects. This skill is an addon: it does not replace MCP or CLI tools.

Core Principles

  • Context Economy: Keep specs under 2000 tokens when possible. Split large specs.

  • Discovery First: Always run board/search before creating new specs.

  • Intent Over Implementation: Capture why first, then how.

  • No Manual Frontmatter: Use tools to update status, tags, dependencies.

  • Verify Against Reality: Check actual codebase, commits, and changes—not just spec status.

SDD Lifecycle

  1. Discover

Before creating or modifying anything:

  • Run board to see current project state and identify gaps

  • Run search "relevant keywords" to find related specs

  • If similar spec exists, consider extending it or linking as dependency

  1. Create Spec

Use create tool (preferred) or lean-spec create "spec-name" .

Always pass all known fields in the create call — title , content , priority , tags , etc. Never create empty specs then populate with follow-up update .

Gather requirements first:

  • Problem/Goal: What needs to be solved?

  • Scope: What's in and out?

  • Success Criteria: How do we know it's done?

  • Dependencies: What needs to exist first?

Naming conventions: kebab-case, descriptive — user-auth-oauth-integration , not bug-fix .

Quality content sections:

  • Overview (1-3 sentences) — problem and importance

  • Requirements — - [ ] checklist, independently verifiable items

  • Non-Goals — prevents scope creep

  • Technical Notes (optional) — architecture, APIs

  • Acceptance Criteria — measurable success conditions

After creation:

  • Link relationships (parent, depends_on) — see "Choosing Relationship Type"

  • Run validate to check quality; check tokens — keep under 2000

  1. Refine Spec

Pre-implementation research to ensure the spec is implementation-ready. Use when spec is drafted and approaching in-progress .

Research the codebase:

  • Search for files/modules mentioned in the spec

  • Find existing patterns to follow

  • Locate integration points; review test patterns

Validate technical approach:

  • Do referenced files/APIs exist?

  • Are proposed interfaces compatible?

  • Does architecture match current patterns?

  • Are there existing solutions to leverage?

Update spec with findings:

  • Specific file paths to modify

  • Exact function/class names and API signatures

  • Existing code to reuse; edge cases and blockers

Readiness checklist:

  • All referenced code paths verified

  • Technical approach validated against codebase

  • Dependencies confirmed available

  • No blocking unknowns remain

  • Checklist items are specific and actionable

  1. Implement Spec

Before starting:

  • Use view <spec> — includes parent, children, depends_on, required_by

  • Set status to in-progress : update <spec> --status in-progress

  • ⚠️ Do NOT call list , list_children , or list_umbrellas — view provides all relationships

  • If draft is enabled, move draft → planned first (skipping requires --force )

For umbrella specs: Implement children first; parent completes when all children complete.

For child specs: Complete independently once requirements are met.

During implementation:

  • Follow spec's checklist items in order

  • Stay within defined scope boundaries

  • Run tests frequently

  • Document discoveries in the spec

Verification (MANDATORY — do NOT skip):

pnpm typecheck # Zero type errors pnpm test # All tests pass pnpm lint # No lint errors lean-spec validate

All must pass before marking complete. If any fail, fix and re-run.

Completing:

  • Mark all checklist items as done

  • Add implementation notes if needed

  • Set status to complete : update <spec> --status complete

  1. Check Progress

Verify spec completion against actual implementation.

Extract from spec: checklist items, acceptance criteria, scope boundaries, technical requirements.

Verify against codebase:

git log --oneline --since="<spec-created-date>" -- <relevant-paths>

  • Verify new files/modules exist

  • Read actual code to verify it matches spec design

  • Check test coverage for spec requirements

  • Run pnpm test

For each checklist item:

  • Determine if verifiable via code, tests, or manual check

  • Search codebase for evidence of completion

  • Mark complete only if implementation is verified

Update status based on findings. Never trust status alone — always verify against actual code.

Managing Specs

Updating Specs

Use during draft/revision phase when requirements are evolving.

Content updates (edit spec file):

  • Add/remove requirements (- [ ] items)

  • Clarify scope and non-goals

  • Update technical approach

  • Document decisions with rationale

Metadata updates (use tools):

  • Status: update <spec> --status <status>

  • Dependencies: relationships with action=add , type=depends_on

  • Parent: relationships with action=add , type=parent

Handling scope creep:

  • Evaluate fit — does it belong in this spec?

  • Split if needed — create new spec for out-of-scope work

  • Link appropriately (parent or depends_on)

  • Update original non-goals to reference new spec

Organizing Specs

Use when specs need structure, relationships are unclear, or project board is cluttered.

Survey first:

  • board — specs by status

  • board --group-by priority — priority imbalances

  • board --group-by parent — hierarchy

  • stats — overall health

Patterns to look for:

Pattern Action

3+ related specs, no parent Create umbrella and group

Spec can't start without another Add depends_on

Completed spec still in-progress

Update status

Low-value spec, no activity Archive

Large spec (>2000 tokens) Split into parent + children

Duplicate/overlapping specs Merge or archive redundant one

Status definitions:

Status Meaning

planned

Defined, work not started

in-progress

Active development

complete

All requirements verified

archived

No longer relevant

Priority levels:

Priority When to Use

critical

Blocking release or breaking production

high

Important for current milestone

medium

Standard priority (default)

low

Nice-to-have, backlog

Bulk organization checklist:

  • Review board for misplaced/stale specs

  • Group related specs under umbrellas

  • Add missing depends_on links

  • Correct stale statuses

  • Adjust priorities to match current goals

  • Archive obsolete specs

  • Run validate and stats after changes

Tool Reference

Use MCP tools when available. Use CLI as fallback.

Action MCP Tool CLI Command

Project status board

lean-spec board

List specs list

lean-spec list

Search specs search

lean-spec search "query"

View spec view

lean-spec view <spec>

Create spec create

lean-spec create <name>

Update status update

lean-spec update <spec> --status <status>

View relationships relationships

lean-spec rel <spec>

Set parent relationships (action=add , type=parent ) lean-spec rel add <child> --parent <parent>

Add child relationships (action=add , type=child ) lean-spec rel add <parent> --child <child>

Add dependency relationships (action=add , type=depends_on ) lean-spec rel add <spec> --depends-on <other>

Remove dependency relationships (action=remove , type=depends_on ) lean-spec rel rm <spec> --depends-on <other>

Dependency graph deps

lean-spec deps <spec>

List children children

lean-spec children <parent>

Token count tokens

lean-spec tokens <spec>

Validate validate

lean-spec validate

Stats stats

lean-spec stats

Choosing Relationship Type

IMPORTANT: Critical decision. Read carefully before linking specs.

Parent/Child (Umbrella Decomposition)

Use when a large initiative is broken into child specs that together form the whole.

  • "This spec is a piece of that umbrella's scope"

  • Child spec doesn't make sense without parent context

  • Parent completes when all children complete

Tools: relationships with action=add , type=parent , target=<parent> (MCP) / lean-spec rel add <child> --parent <parent> (CLI)

Example: "CLI UX Overhaul" umbrella → children: "Help System", "Error Messages", "Progress Indicators"

Depends On (Technical Blocker)

Use when a spec cannot start until another independent spec is done first.

  • "This spec needs that spec done first"

  • Both specs are independent work items with separate goals

  • Removal of the dependency doesn't change the spec's scope

Tools: relationships with action=add , type=depends_on , target=<other> (MCP) / lean-spec rel add <spec> --depends-on <other> (CLI) Remove: relationships with action=remove , type=depends_on (MCP) / lean-spec rel rm <spec> --depends-on <other> (CLI)

Example: "Search API" depends on "Database Schema Migration"

Decision Flowchart

  • Is spec B part of spec A's scope? → Parent/child (type=parent )

  • Does spec B just need spec A finished first? → Depends on (type=depends_on )

  • Never use both parent AND depends_on for the same spec pair.

Litmus test: If spec A didn't exist, would spec B still make sense?

  • NO → B is a child of A

  • YES → B depends on A

Umbrella Workflow

  • Create the umbrella spec: create

  • Create each child spec: create

  • Assign children: relationships (action=add , type=parent ) for each child

  • Verify structure: children

  • Add cross-cutting deps if needed: relationships (action=add , type=depends_on )

Best Practices

  • Never create spec files manually; use create .

  • Always pass all known fields in the create call — never create empty then edit.

  • Keep specs short and focused; split when >2000 tokens.

  • Search first — never create duplicates; link related specs instead.

  • Checkboxes only for actions — use plain lists for non-actionable items.

  • Use parent/child for decomposition, depends_on for blockers.

  • Archive, don't delete — preserve history.

  • Survey before organizing — use board and stats first.

  • Research before implementing — refine specs to avoid surprises.

  • Verify before completing — pnpm typecheck , pnpm test , pnpm lint must ALL pass.

  • Document trade-offs and decisions as they happen.

  • Out-of-scope discoveries become new specs, not scope creep.

See detailed guidance in:

  • references/workflow.md

  • references/best-practices.md

  • references/examples.md

  • references/commands.md

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

agent-browser

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

leanspec-development

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

runner-research

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

github-actions

No summary provided by upstream source.

Repository SourceNeeds Review