The problem PM solves
Agentic coding sessions are interrupted constantly — a bug surfaces mid-sprint, a new requirement lands, a context window fills up and collapses. Traditional task trackers live outside the session entirely and don’t survive the compaction boundary. Notes in a conversation transcript vanish with the context. Even a carefully maintainedCLAUDE.md doesn’t tell you whether the proposal you were halfway through is still valid after the detour that interrupted it.
PM solves this by living inside Claude Code as a plugin with its own hooks. A SessionStart hook re-injects the full briefing the moment a new context begins — so the agent picking up after compaction sees the active epic, the detour stack, and the next-up queue without any manual re-orientation. A PreToolUse gate-guard hook mechanically blocks writes while a reconcile is still owed. Nothing depends on the agent “remembering” the right thing.
Core mechanisms
PM is built on three interlocking mechanisms. Together they make project state durable across the events that normally destroy it:Epics & Lanes
Every unit of work is an epic with a lane (
openspec, superpowers, claude-code, decision, external), a priority (P0–P3), and a lifecycle status. Epics are lane-agnostic at the conductor level — PM tracks them regardless of which tool owns execution.Detour Stack
When a mid-build interrupt arrives, PM classifies it as minimal (fix-and-resume, logged only) or substantial (PUSH the active epic, build the detour, POP and reconcile). The stack is durable in
.conductor/state.json — it survives compaction and session restarts.Reconcile Gate
Before a paused epic can resume, a fresh-context
reconciler agent re-validates it against what the detour actually shipped. The verdict is written durably via record-reconcile — not left in the transcript — and a PreToolUse hook hard-blocks any write while the gate is still owed.Quick Start
Install PM, run
/pm:init in your project, and get your first status briefing in under five minutes. No npm install, no external dependencies.What PM is NOT
PM is not a replacement for OpenSpec or Superpowers. It sits deliberately above them and only owns what neither of those tools owns:- OpenSpec owns the spec-driven proposal workflow —
proposal.md,design.md,tasks.md, gate reviews. PM tracks that an OpenSpec epic exists and its priority; it doesn’t touch the spec artifacts themselves. - Superpowers owns execution discipline — brainstorming, TDD, subagent-driven development, code review. PM tracks when and in what order an epic gets built; Superpowers drives how well it gets built.
- PM owns cross-epic ordering, the detour stack, and reconcile links. Nothing else. Stories stay wherever they already live — PM doesn’t move them or replace them.
PM runs exclusively in Claude Code today. Codex, Gemini CLI, Grok Build, and other
AGENTS.md-based platforms are on the roadmap.Real numbers
These aren’t benchmarks — they’re real figures pulled from PM’s owngit log, from the project that manages its own development through PM itself:
All 21 agents ran worktree-isolated and converged back through sequential merge with zero data loss and zero unresolvable conflicts. Every conflict was mechanical (a shared CHANGELOG header, a usage string) — never a real logic collision. The engine (
scripts/conductor.mjs) is ~2,100 lines of Node 18+ built-ins only.