A persistent, session-based agent for Claude Code that turns Product Requirements Documents into executed code through structured planning and iterative execution.
Claude Code loses context between sessions. If you're implementing a complex PRD, you have to re-explain context every time. Tasks get lost, decisions get forgotten, and you end up re-doing work.
PRD Implementor gives Claude Code persistent memory on disk. It:
- Reads your PRD and decomposes it into sequenced, dependent tasks
- Stores everything in
~/.claude/tasks/{session-id}/ - Maintains a memory file that carries context between executions
- Tracks status, handles failures, and enables resumable workflows
curl -fsSL https://raw.githubusercontent.com/todiadiyatmo/prd-coder/main/bootstrap.sh | bash -s -- installgit clone https://github.com/todiadiyatmo/prd-coder.git
cd prd-coder
./install.sh/prd-plan /path/to/my-prd.md
This will:
- Generate a session ID (e.g.,
vibrant-oak-42) - Read and analyze your PRD
- Decompose it into ordered, dependent tasks
- Save everything to
~/.claude/tasks/vibrant-oak-42/
By default, sessions are stored in ~/.claude/tasks/. You can specify a custom base directory with write to:
/prd-plan /path/to/my-prd.md write to /tmp/
This creates the session at /tmp/{session-id}/ instead. Reference it by path in all commands:
/prd-execute /tmp/vibrant-oak-42
/prd-status /tmp/vibrant-oak-42
/prd-plan /tmp/vibrant-oak-42 add update dockerfile
Path resolution rule: If an argument contains /, it's treated as a path. If it's a bare name like vibrant-oak-42, the default ~/.claude/tasks/ directory is used.
/prd-plan vibrant-oak-42 add set up docker compose for dev
/prd-plan /path/to/my-prd.md add integration tests for auth
This will:
- Resolve the session (by session-id or by finding a session that used that PRD)
- Read existing tasks and context
- Create a new
task-{N+1}.mdappended to the plan - Update
status.md,manifest.md, andmemory.md
/prd-execute vibrant-oak-42
This will:
- Load the session's memory (context from previous runs)
- Re-read the original PRD
- Find the next actionable task
- Implement it
- Update status and memory
Run this repeatedly across Claude Code sessions. Memory persists.
/prd-status # list all sessions
/prd-status vibrant-oak-42 # detailed status for a session
Sessions are stored in ~/.claude/tasks/ by default, or in a custom directory specified via write to. All commands accept both session-ids (bare names) and full paths.
{base-dir}/{session-id}/ # base-dir defaults to ~/.claude/tasks
├── manifest.md # Session metadata, PRD path, creation date
├── task-1.md # Individual task with criteria & dependencies
├── task-2.md
├── task-N.md
├── memory.md # Append-only context log (the secret sauce)
└── status.md # Progress table
The memory.md file is append-only and timestamped. Every /prd-execute run:
- Reads it first to load context
- Appends after completing work
It records:
- Architectural decisions and rationale
- Files created/modified
- Issues encountered and resolutions
- Inter-task context ("task-2 created a helper that task-4 should reuse")
- Deviations from the plan
This is how continuity survives across separate Claude Code sessions.
- First failure: task marked
🔁 retry, failure logged in memory - Second failure: task marked
❌ blocked, agent moves to next non-dependent task - All failures are logged with context so retries have better information
The planner follows this order:
- Foundation — project setup, dependencies, config
- Data models — types, schemas, database models
- Core logic — main business functionality
- Interface layer — API endpoints, UI components
- Integration — connecting everything together
- Polish — error handling, validation, edge cases
- Testing — unit and integration tests
Each task targets 15-30 minutes of implementation work.
curl -fsSL https://raw.githubusercontent.com/todiadiyatmo/prd-coder/main/bootstrap.sh | bash -s -- uninstallThis removes agents, skills, and commands. Optionally deletes task data.
- Keep PRDs focused — one feature/product per PRD works best
- Don't move your PRD file — tasks reference its absolute path
- Run
/prd-statusoften — it's your dashboard - Memory is sacred — don't manually edit
memory.mdunless you know what you're doing - One task per
/prd-execute— this keeps each session focused and memory clean