3 components1 spec contract0 glue scripts

Plan once.
Ship with agents.

OpenPlanr is a toolkit for spec-driven coding agents. Author plans in markdown, hand them to a Claude Code factory that ships code, tests, infra and docs — with a human checkpoint between.

  • planr v1.4.2
  • openplanr-pipeline v0.4.0
  • skills v1.2.0
MIT licensed · TypeScript + Markdown · Claude Code & Cursor & Codex compatible · openplanr.dev
01 · The system

Three components, one contract.

Three things you use, one schema they share. Each component is independently useful; together they form an end-to-end loop where artifacts written by one are read verbatim by the next — no glue scripts, no schema drift.

Authoringv1.4.2

planr CLI

@openplanr/planr

Node CLI that scaffolds .planr/ markdown artifacts. Three planning postures: agile (epic→feature→story→task), quick task, spec-driven for AI handoff.

.planr/specs/.planr/tasks/spec shapespec decompose
Runs as · Humannpm i -g openplanr
Executionv0.4.0

openplanr-pipeline

Claude Code plugin

Eight-subagent factory. PO Phase decomposes specs & PNGs into tasks; DEV Phase ships code, tests, Docker and docs. Tool-layer enforced rules.

/openplanr-pipeline:plan/openplanr-pipeline:ship8 subagents
Runs as · Claude Codev0.4.0 · MIT
Orchestrationv1.2.0

openplanr/skills

Claude Code skill plugin

Teaches Claude when to reach for planr CLI vs the pipeline, and how to chain spec-driven mode end-to-end. Model-invoked, no slash command needed.

skills/openplanr/SKILL.mdmodel-invoked
Runs as · Claude (auto)v1.2.0 · MIT
02 · How they compose

One artifact contract, read by every layer.

planr spec decompose writes .planr/specs/SPEC-NNN-{slug}/. The pipeline reads that exact directory. No conversion adapters, no schema drift — the authoring surface and the executor share the spec format verbatim.

OpenPlanr ecosystem composition diagramUser talks to Claude, guided by the openplanr skill. Claude drives the planr CLI which writes specs, then invokes the openplanr-pipeline plugin which reads those specs and ships source, tests, Docker and docs. The marketplace installs the pipeline plugin.HUMANSYSTEMOUTPUTUserPO · TL · DevClaude+ openplanr skill/openplanr-pipeline:planplanr CLIspec create · shape · decomposeauthoring surface.planr/specs/SPEC-NNN-{slug}/design/ · stories/ · tasks/ · the contractread verbatimopenplanr-pipelinePO · review · DEV8 subagents · plugin v0.4.0marketplace/plugin installinstall pipesrc/codetests/qa-agentDockerdevopsDocs/doc-gen⚠ human review between PO & DEV
Authoring (planr)Execution (pipeline)Distribution (marketplace)Orchestration (skills)Shared spec contract
03 · planr CLI · three postures

Pick the planning style that matches the work.

Same CLI, three planning styles. Pick one per project, mix per task. The spec-driven posture is the bridge to the pipeline; the others are standalone and ceremony-free.

Posture 01

Agile

epic → feature → story → task

Full SDLC artifacts in markdown. Stories carry Gherkin acceptance criteria, tasks reference parents via frontmatter, ADRs document binding decisions. Sprints, backlog, the lot.

~/team-project
$ planr init $ planr epic create "Marketplace v2" $ planr plan --epic EPIC-001 ✓ 4 features → 12 stories + Gherkin ✓ 4 task lists generated $ planr sprint create ✓ Sprint 1 · 2w · 8 tasks selected
Best for— teams, multi-sprint work, formal review.
Posture 02

Quick Task

one chore, no ceremony

A single markdown checklist file under .planr/quick/. AI optionally generates the breakdown from a one-liner. Skip the agile hierarchy entirely.

~/side-project
$ planr quick create "add OAuth login" ✓ QT-001-add-oauth-login.md ✓ 6 subtasks · 2 acceptance checks $ planr quick refine QT-001 ✓ Refined to match repo style # open in editor and ship
Best for— solo dev, < 1 day of work, no reviewers.
Posture 03 · the bridge

Spec-driven

handoff to AI agents

Author a SPEC, shape it via 4 questions, decompose into US + tasks via AI. Output lands in .planr/specs/SPEC-NNN-{slug}/— the exact contract the pipeline reads.

~/agent-built
$ planr spec init $ planr spec create "User Auth" --slug auth $ planr spec shape SPEC-001 ↳ 4 questions · context, FRs, rules, AC $ planr spec decompose SPEC-001 ✓ 3 stories · 5 tasks · ready for pipeline
Best for— you have a spec, you want an agent to ship it.
04 · openplanr-pipeline · DEV factory

Eight subagents. Two phases. One human gate.

Each subagent has restrictions enforced in the manifest, not the prompt. The db-agent can run psql but never git; the designer-agent has no shell access at all.

PO PhaseDecompose
/openplanr-pipeline:plan {feature}
db-agent
Read-only DB introspection · psql / mysql / sqlite / mongo only
Sonnet 4.6
designer-agent
PNG vision → design-spec.md · 10 sections, hex tokens, components
Sonnet 4.6
specification-agent
Spec → US + tasks · max 2 tasks per US · stack-aware
Sonnet 4.6
Human gate
Tech Lead reviews tasks, edits spec/stack, approves DEV phase.
DEV PhaseShip
/openplanr-pipeline:ship {feature}
frontend-agent ‖ backend-agent
Parallel · tasks topologically grouped · 3-iteration correction loop
Opus 4.8
qa-agent
Build + test gate · git diff vs base · DoD verification
Sonnet 4.6
devops-agent · doc-gen-agent
Generate Docker + CI · write Docs/feat-{name}/ · no deploy
Sonnet 4.6
Tool-layer rules · enforced in plugin manifest3-iteration correction loop · then error-report.mdCLAUDE.md snapshot at end of every DEV run
05 · Decision matrix

When do you reach for which piece?

Filled mint dot = primary tool. Hollow ring = optional support. Dash = not needed. Skills runs whenever you're in Claude Code — it's the always-on playbook. The two AI-orchestrated rows (Spec → AI ships it and Plan-and-ship from a one-liner) are where all three components actively compose.

Scenarioplanr CLIpipelineskills
Solo dev fixing one thingOne file, no reviewers, ship today.
Team running sprintsReal backlog, multiple stakeholders, ADRs.
Spec → AI agent ships itYou wrote the spec; agent does the implementation.
PNG mockups → full-stack codeDesigner hands you screens; you want UI + API.
Greenfield project scopingNew repo, brand-new product, define epics.
Plan-and-ship from a one-linerOne sentence to Claude → committed PR.
06 · End-to-end walkthrough

From idea to merged PR in six commands.

The full spec-driven loop. Every step writes a real artifact you can read, edit, and commit. The human only intervenes at the review gate — everything else is one keystroke.

1

Bootstrap the project

Human · planr CLI

Initialise .planr/ and the spec subsystem. Optional: drop PNG mockups into input/ui/ and a stack file at input/tech/stack.md.

~/agent-built
$ planr init $ planr spec init
produces:.planr/config.json.planr/specs/
2

Create & shape the spec

Human · 4 questions

Spec frontmatter + a 4-prompt body: who's the user, what must the system do, business rules, observable outcomes. No vim, no editor mode — single-line answers compose into markdown.

~/agent-built
$ planr spec create "User Auth" --slug auth --priority P0 $ planr spec shape SPEC-001
produces:.planr/specs/SPEC-001-auth/spec.md
3

Decompose into stories & tasks

Claude · planr CLI

AI scans your repo (planr's buildCodebaseContext), reads the spec + stack, generates stories with Gherkin-shaped acceptance plus 1–2 tasks each, every task naming concrete files to create / modify / preserve.

~/agent-built
$ planr spec decompose SPEC-001 ✓ 3 stories · 5 tasks ✓ written to .planr/specs/SPEC-001-auth/
produces:stories/US-001-*.mdtasks/T-001-*.mddesign-spec.md
4

Plan in the pipeline (skip if you used spec decompose)

Claude Code · pipeline plugin

If you skipped planr spec decompose, run the pipeline's PO phase instead — same output, same paths. The pipeline auto-detects spec mode via .planr/config.json.

Claude Code
/openplanr-pipeline:plan auth ✓ designer-agent · spec mode detected ✓ specification-agent · 3 US, 5 tasks ⚠ STOP: human review required
produces:PO artifacts in .planr/specs/
5

Human review gate

Tech Lead · markdown editor

Read every tasks/T-NNN-*.md. Adjust scope, fix file paths, edit the stack if a dependency changed. The pipeline refuses to proceed without this checkpoint — by design.

.planr/specs/SPEC-001-auth/
# review the tree, edit anything $ tree .planr/specs/SPEC-001-auth $ $EDITOR tasks/T-002-jwt-middleware.md
produces:approval to ship
6

Ship the code

Claude Code · pipeline plugin · 8 subagents

Frontend + backend agents run in parallel by topological group, qa-agent gates the build, devops + doc-gen produce Docker/CI/Docs in parallel. CLAUDE.md snapshot at the end. PR-ready.

Claude Code
/openplanr-pipeline:ship auth ✓ frontend-agent · 2 tasks ✓ backend-agent · 3 tasks ✓ qa-agent · build + tests pass ✓ devops + doc-gen complete ✓ CLAUDE.md refreshed · ready for PR
produces:src/tests/docker-compose.ymlDocs/feat-auth/
07 · Roadmap

What's shipped, what's next.

Public progress in three lanes. Versions are pinned across the four repos in lockstep so the spec contract never drifts.

Shipped
Spec-driven mode in planr
v1.4.0 · spec init/create/shape/decompose/sync
Pipeline reads .planr/specs/ directly
openplanr-pipeline v0.4.0 · no conversion
Self-heal stack.md in spec mode
openplanr-pipeline v0.4.0 · auto-templates from plugin
8 subagents with tool-layer enforcement
db / designer / spec / fe / be / qa / devops / doc-gen
Single-line shape prompts (no vim)
planr v1.4.2 · friendlier authoring UX
openplanr skill teaches mode selection
skills v1.2.0 · model-invoked, no slash needed
In flight
Hybrid stack.md nudge in spec init
planr v1.4.2 · doc-link next-steps prompt
Live AI smoke tests for decompose
CI matrix · Anthropic / OpenAI / Ollama
Marketplace polish
org profile README · CONTRIBUTING.md
Public launch announcement
Phase 3 · launch-plan.md draft ready
Planned
Shared spec-schema module
extract once 2+ consumers exist
Multi-spec dependency graph
visualise SPEC ↔ SPEC blocking edges
planr github push for spec artifacts
sync stories/tasks to GitHub Issues
Sprint integration for spec-mode
treat spec tasks as sprint candidates
Auto-import output/feats/.planr/specs/
migration helper for default-mode users