- Source
- Current release
- Verified
Spec Driven Development for AI agents
Give every coding agent a contract. Verify the code before done.
Planu turns a request into an approved spec, keeps implementation aligned, and validates the result against explicit acceptance criteria.
Free commercial and non-commercial use · compatible Node.js runtime · no Planu API key to start
Build-time verified
Product facts, not vanity counters.
- Source
- Focused SDD tools
- Verified
- Tag
- v5.3.30
- Source
- Commit
- Verified
A released Planu artifact
Follow the contract from request to release.
This compact record is generated from sanitized, allowlisted lifecycle and validation evidence—not a staged terminal animation.
Clear released specs from the pending release ledger
Make the release commit the atomic source of truth for which pending specs were published, while preserving any ledger entry created or updated after the immutable release-base snapshot.
- approved
- implementing
- done
Acceptance criteria
- AC1GIVEN `planu/releases/pending.json` contains valid entries at `RELEASE_BASE_HEAD`, WHEN the release commit is created, THEN every current entry with the same complete `{specId,title,completedAt}` identity is removed, and a shared cross-process lock makes entries added or changed after the snapshot—including an append attempted during reconciliation—remain.
- AC2GIVEN release execution resumes before or after the release commit, WHEN pending reconciliation runs, THEN it derives the same snapshot from the persisted `RELEASE_BASE_HEAD`, is idempotent, and never repeats mutation after `release-commit` is recorded; `tests/integration/release-pipeline-recovery.test.ts` line 4 changes the recovery expectation.
- AC3GIVEN dry-run mode, a missing/empty snapshot, or malformed snapshot/current JSON, WHEN pending reconciliation is evaluated, THEN dry-run performs no write, missing/empty snapshot preserves current state, and malformed data exits non-zero without changing the current file.
- AC4GIVEN release 4.11.17 publishes the currently queued specs, WHEN delivery completes, THEN `planu/releases/pending.json` is empty, npm exposes 4.11.17, and `main`, `develop`, and `release` resolve to the same release commit.
d589ca65cWhat changes
Less rediscovery. Clearer review. Verifiable delivery.
- 01
Persistent intent
Requirements live in a reviewable spec instead of disappearing inside chat history.
- 02
Controlled implementation
Approval and readiness gates give every agent the same implementation boundary.
- 03
Evidence before done
Validation checks the delivered code against the criteria that were accepted.
One contract, many hosts
Keep your workflow when the agent changes.
Planu connects the same local spec lifecycle to Claude Code, Codex, Cursor, Windsurf, Gemini CLI and other supported MCP hosts.
See supported tools- Claude Code
- Codex
- Cursor
- Windsurf
- Gemini CLI
- OpenCode
Transparent by design
Local project state with explicit network boundaries.
Specs and project decisions are stored as readable local files. Network activity can occur for updates, diagnostics and integrations you configure.
Read configuration details- Readable local project artifacts
- No Planu API key required to start
- Documented telemetry and integration boundaries
Built with its users
Use Planu. Help make it better.
Official unmodified Planu packages are free to run for commercial and non-commercial work. The repository and TypeScript implementation remain private and proprietary; distributed JavaScript is readable. Support independent development with a donation or share what Planu improved in your workflow.
$ npx -y @planu/cli@latest install
Make the next agent start from a spec.
Install once, describe one real feature, and complete your first validated loop.
Open the installation guide