Skip to content
/

Claude Code PM (ccpm)

ccpm · automazeio/ccpm · ★ 8.1k · last commit 2026-03-18

Five-phase PRD-to-shipped-code skill using GitHub Issues as canonical task store with parallel agent execution via git worktrees.

Best whenDeterministic operations (status, standup) should always run as bash scripts rather than LLM calls; LLM reasoning reserved for planning and synthesis.
Skip ifVibe coding without documented requirements, Using the skill for debugging, test writing, or raw GitHub operations without delivery context
vs seeds
taskmaster-ai(multi-phase PRD-to-task pipeline with parallel agent execution) but differs architecturally by using GitHub Issues as t…
Primitive shape 1 total
Skills 1
00

Summary

CCPM (Claude Code Project Manager) — Summary

CCPM is a spec-driven project management skill for AI coding agents that implements a five-phase PRD→Epic→GitHub Issues→Parallel Agents→Shipped Code pipeline. It ships as a single SKILL.md file installable via the agentskills.io format, making it compatible with Claude Code, Codex, OpenCode, Factory, Amp, and Cursor. The skill routes its work through five named phase documents (plan.md, structure.md, sync.md, execute.md, track.md) plus a set of bash scripts for deterministic operations, combining LLM reasoning for planning work with script execution for reporting. GitHub Issues is used as the source-of-truth for cross-agent coordination, with git worktrees providing workspace isolation for parallel agent execution. CCPM is notable for its benchmark-driven validation: the README claims 100% eval score on a structured 3-scenario test vs 27.7% for baseline agents.

Compared to seeds: most similar to taskmaster-ai (multi-phase workflow, GitHub/file-based task storage, parallel agent execution) but differs by using GitHub Issues as canonical task store (not local JSON), requiring gh CLI integration, and packaging everything as a single agentskills.io SKILL.md rather than an MCP server with 37 tools.

01

Overview

CCPM — Overview

Origin

Built by Automaze (https://automaze.io); developed and maintained by @aroussi. 8,146 GitHub stars as of analysis. MIT licensed. Active, last commit 2026-03-18.

Philosophy

"Stop losing context. Stop blocking on tasks. Stop shipping bugs. CCPM gives your AI agent a structured PM brain: turn ideas into PRDs, PRDs into epics, epics into GitHub issues, and issues into production code — with full traceability at every step."

"Core Principle: No Vibe Coding. Requirements live in files, not heads."

The framework positions itself against "vibe coding" — AI-generated code without structured requirements. Its argument: agents operating on documented, traceable issues produce better outputs than agents operating on verbal memory.

Manifesto-style positions

  • GitHub Issues as source of truth: not a separate database, not a local file, but the team's existing issue tracker — visible to humans and agents simultaneously
  • Script-first for deterministic operations: whenever the answer can be computed by a bash script (status, standup, epic list), run the script; save LLM calls for work requiring reasoning
  • Parallel execution by design: every epic decomposition identifies independent vs sequential tasks upfront; agents launch in separate worktrees
  • Full traceability: PRD → Epic → Issue → PR → Code — every artifact links to its parent

Target Audience

Small engineering teams and solo developers using AI agents with GitHub repos.

02

Architecture

CCPM — Architecture

Distribution

Single SKILL.md file in the agentskills.io format. Install by copying skill/ccpm/SKILL.md into the agent's skill directory, or via the agentskills.io registry.

Install Complexity

Clone + copy one directory:

cp -r skill/ccpm ~/.claude/skills/ccpm

Or via agentskills.io compatible harness.

Required Runtime

  • gh CLI (GitHub CLI) — required for GitHub Issues sync
  • gh extension install yahsan2/gh-sub-issue — for parent-child issue relationships (optional fallback available)
  • Git with worktree support

Directory Tree (after CCPM setup)

<project-root>/
├── .claude/
│   ├── prds/
│   │   └── <feature-name>.md          # PRD files
│   └── epics/
│       └── <feature-name>/
│           ├── epic.md                 # Epic definition
│           ├── 001.md                  # Task file (pre-sync)
│           └── 1234.md                 # Task file (post-sync = issue number)
└── skill/
    └── ccpm/
        ├── SKILL.md                    # Main skill dispatch file
        └── references/
            ├── conventions.md          # Path standards, frontmatter schemas
            ├── plan.md                 # Phase 1: PRD writing + parsing
            ├── structure.md            # Phase 2: Epic decomposition
            ├── sync.md                 # Phase 3: GitHub sync
            ├── execute.md              # Phase 4: Parallel agent launch
            ├── track.md                # Phase 5: Status + standup
            └── scripts/
                ├── status.sh
                ├── standup.sh
                ├── epic-list.sh
                ├── epic-show.sh
                ├── epic-status.sh
                ├── prd-list.sh
                ├── prd-status.sh
                ├── search.sh
                ├── in-progress.sh
                ├── next.sh
                ├── blocked.sh
                └── validate.sh

Config Files

None — CCPM is configuration-free. All state lives in .claude/prds/, .claude/epics/, and GitHub Issues.

Target AI Tools

Claude Code (primary), Codex, OpenCode, Factory, Amp, Cursor — any agent with skill support.

03

Components

CCPM — Components

Skill File

skill/ccpm/SKILL.md — single dispatch skill that triggers on PM-related phrases. Contains the description: frontmatter for semantic matching and phase routing logic.

Phase Reference Documents

File Phase Purpose
references/plan.md 1 — Plan PRD creation via guided brainstorming; PRD-to-epic parsing
references/structure.md 2 — Structure Epic decomposition into numbered task files with dependencies
references/sync.md 3 — Sync Push local epics/tasks to GitHub Issues; progress comments; close issues
references/execute.md 4 — Execute Identify parallel work streams; launch parallel agents in worktrees
references/track.md 5 — Track Status, standup, search, in-progress, next priority, blocked, validate

Bash Scripts (deterministic operations)

Script Purpose
scripts/status.sh Project status report
scripts/standup.sh Daily standup report
scripts/epic-list.sh List all epics
scripts/epic-show.sh <name> Show epic details
scripts/epic-status.sh <name> Epic progress status
scripts/prd-list.sh List all PRDs
scripts/prd-status.sh PRD completion status
scripts/search.sh <query> Search issues/tasks
scripts/in-progress.sh What's currently in progress
scripts/next.sh What should be worked on next
scripts/blocked.sh What's blocked
scripts/validate.sh Validate project state integrity

Artifact Schemas

PRD frontmatter:

---
name: <feature-name>
description: <one-line summary>
status: backlog
created: <ISO-8601>
---

Epic frontmatter:

---
name: <feature-name>
status: backlog
created: <ISO-8601>
progress: 0%
prd: .claude/prds/<name>.md
github: (set on sync)
---
05

Prompts

CCPM — Prompt Files

Verbatim Excerpt 1: SKILL.md description field

Prompting technique: Semantic intent mapping — the description covers natural language triggers explicitly to maximize autonomous activation.

description: "CCPM - spec-driven project management: PRD → Epic → GitHub Issues → parallel agents →
shipped code. Use this skill for anything in the software delivery lifecycle: writing a PRD ('write
a PRD for X', 'let's plan X', 'scope this out'), parsing a PRD into an epic, decomposing an epic
into tasks, syncing to GitHub ('sync the X epic', 'push tasks to github'), starting work on an
issue ('start working on issue N', 'let's work on issue N'), analyzing parallel work streams,
running standups ('standup', 'run the standup'), checking status ('what's next', 'what's blocked',
'what are we working on'), closing issues, or merging an epic. Use ccpm any time the user is
talking about shipping a feature, managing work, or tracking progress — even if they don't say
'ccpm' or 'PRD'. Do NOT use for: debugging code, writing tests, reviewing PRs, or raw GitHub
issue/PR operations with no delivery context."

Verbatim Excerpt 2: references/plan.md — PRD creation process

Prompting technique: Preflight check → guided interview → schema-enforced output

## Writing a PRD

**Trigger**: User wants to plan a new feature, product requirement, or area of work.

### Preflight
- Check if `.claude/prds/<name>.md` already exists — if so, confirm overwrite before proceeding.
- Ensure `.claude/prds/` directory exists; create it if not.
- Feature name must be kebab-case (lowercase, letters/numbers/hyphens, starts with a letter).
  If not: "❌ Feature name must be kebab-case. Example: user-auth, payment-v2"

### Process

Conduct a genuine brainstorming session before writing anything. Ask the user:
- What problem does this solve?
- Who are the users affected?
- What does success look like?
- What's explicitly out of scope?
- What are the constraints (tech, time, resources)?

**Quality gates before saving:**
- No placeholder text in any section
- User stories include acceptance criteria
- Success criteria are measurable
- Out of scope is explicitly listed

**After creation**: Confirm "✅ PRD created: `.claude/prds/<name>.md`" and suggest:
"Ready to create technical epic? Say: parse the <name> PRD"

Verbatim Excerpt 3: Script-First Rule

Prompting technique: Explicit routing table (deterministic vs reasoning path)

## Script-First Rule

For deterministic operations — anything that reads and reports without needing reasoning — always
run the bash script directly rather than doing the work manually:

| What the user wants | Script to run |
|---|---|
| Project status | `bash references/scripts/status.sh` |
| Standup report | `bash references/scripts/standup.sh` |
| List all epics | `bash references/scripts/epic-list.sh` |
| Search issues/tasks | `bash references/scripts/search.sh <query>` |
| What's in progress | `bash references/scripts/in-progress.sh` |
| What's next | `bash references/scripts/next.sh` |
| What's blocked | `bash references/scripts/blocked.sh` |
| Validate project state | `bash references/scripts/validate.sh` |

Use the LLM for work that requires reasoning: writing PRDs, analyzing parallelism, launching agents,
synthesizing updates.
09

Uniqueness

CCPM — Uniqueness & Positioning

Differs from Seeds

CCPM is closest to taskmaster-ai in the seed set — both implement multi-phase PRD-to-task workflows with parallel agent execution. The key architectural delta: taskmaster-ai stores all tasks in a local tasks.json file accessed via an MCP server with 37 tools, while CCPM uses GitHub Issues as the authoritative task store (synced from local .claude/epics/ files) and packages its intelligence as a single SKILL.md rather than an MCP server. This means CCPM requires a GitHub repo and gh CLI but gains cross-machine visibility, human-readable issue tracker integration, and no local database dependency. Unlike bmad-method (role-based persona agents), CCPM is a single-skill dispatch system. Unlike superpowers (behavioral skills for Claude Code only), CCPM works across any agentskills.io-compatible harness. The "script-first for deterministic operations" pattern (routing status/standup to bash scripts rather than LLM calls) is unusual and not found in any seed framework.

Distinctive Positioning

  • Only framework in this batch with an explicit benchmark claim (100% vs 27.7% baseline on 3-scenario eval)
  • GitHub Issues as canonical task store — unique in the batch; most use local files
  • Script-first routing (bash for reporting, LLM for reasoning) — explicit LLM token optimization
  • Lazy-loading phase reference documents (each phase reads only its relevant references/*.md) — reduces initial context size
  • Git worktree isolation for parallel agents — specific execution isolation strategy named explicitly

Observable Failure Modes

  • Requires GitHub repo — doesn't work offline or with non-GitHub hosts (GitLab, Bitbucket)
  • Requires gh CLI and gh-sub-issue extension — setup friction for new users
  • Local .claude/ files can drift from GitHub Issues if another agent works from a different machine
  • No conflict resolution strategy if two agents close the same issue simultaneously
  • PRD/epic quality depends on LLM's brainstorming quality — no structural validator for requirements completeness beyond checklist prompts
04

Workflow

CCPM — Workflow

Five Phases

Phase 1 — Plan (Capture Requirements)

Trigger: User wants to define a new feature or area of work. Artifacts: .claude/prds/<name>.md Gate: Quality gates before saving — no placeholder text, user stories must have AC, success criteria must be measurable, out-of-scope explicitly listed. Human input: Guided brainstorming (5 questions about problem, users, success criteria, constraints, scope).

Phase 2 — Structure (Break It Down)

Trigger: Epic exists and needs decomposition. Artifacts: .claude/epics/<name>/001.md, 002.md, etc. (numbered task files) Gate: Tasks include dependency analysis (parallel vs sequential); dependency graph reviewed before proceeding.

Phase 3 — Sync (Push to GitHub)

Trigger: Local epic/tasks need to become GitHub Issues. Artifacts: GitHub Issues (epic issue + task sub-issues); worktree at ../epic-<name>/ Gate: GitHub sync confirmation; issue numbers assigned, task files renamed to {issue-id}.md.

Phase 4 — Execute (Start Building)

Trigger: User wants to start working on specific GitHub Issues. Artifacts: Parallel agents launched in separate worktrees; progress comments on GitHub Issues. Gate: Parallel stream analysis completed before agent launch.

Phase 5 — Track (Know Where Things Stand)

Trigger: User asks for status, standup, blocked items, or next priority. Artifacts: Reports generated by bash scripts (instant, no LLM call). Gate: None — pure reporting.

Approval Gates

Gate Type Description
PRD quality check freetext-clarify Brainstorming Q&A before PRD creation
PRD to epic confirmation yes-no "Ready to create technical epic? Say: parse the PRD"
Parallel stream analysis file-review Review dependency analysis before launching agents

Artifact Traceability

PRD → Epic → GitHub Issue → Git Branch → PR → Merged Code

Each artifact references its parent via prd:, github:, and branch naming conventions.

06

Memory Context

CCPM — Memory & Context

State Storage

Hybrid: local files + GitHub Issues.

Store Location Content
PRDs .claude/prds/<name>.md Requirements documents with YAML frontmatter
Epics .claude/epics/<name>/epic.md Technical implementation plan
Task files .claude/epics/<name>/001.md1234.md Individual task specs, renamed after GitHub sync
GitHub Issues Remote GitHub Canonical task state, progress comments, assignees

Persistence

  • Local: Project-scoped (.claude/ directory in repo)
  • Remote: GitHub Issues — survives across machines and agents; visible to humans and CI

Cross-Session Handoff

GitHub Issues serve as the primary handoff mechanism: any agent can pick up an issue and find the current state in issue comments. The local .claude/ files may be stale if another machine worked on them, but GitHub is authoritative.

Compaction

No explicit compaction. Closed epics are merged (branch merged, issue closed). Historical PRDs remain in .claude/prds/ as documentation.

Context Loading

The skill file (SKILL.md) references five separate references/*.md files rather than embedding all instructions. This lazy-loading approach keeps the initial skill invocation lightweight — the agent reads only the relevant phase document when that phase is triggered, reducing token consumption for phases not in use.

07

Orchestration

CCPM — Orchestration

Multi-Agent Support

Yes. The Execute phase explicitly launches parallel agents for independent work streams.

"Analyzed 3 parallel streams: Stream A: Stripe client setup ✓ Started / Stream B: Webhook handler ✓ Started / Stream C: Database models ⏸ Waiting on A"

Orchestration Pattern

Parallel-fan-out within hierarchical task structure: CCPM decomposes epics into numbered tasks, identifies which tasks are independent (can run in parallel), and launches separate agents in separate git worktrees — one worktree per parallel work stream.

Isolation Mechanism

Git worktrees: ../epic-<name>/ worktree created at sync time. Each parallel agent gets its own worktree to avoid conflicts.

Execution Mode

Interactive-loop for the workflow (human approves each phase transition). Within a phase, agents operate autonomously.

Multi-Model

No. CCPM is model-agnostic — it's a skill, and the host agent determines the model.

Consensus Mechanism

None. GitHub Issue state is the coordination primitive: agents mark issues in_progress, post progress comments, and close when done. No distributed consensus protocol.

Prompt Chaining

Yes — explicit: PRD text → epic.md parse → task decomposition → GitHub Issues → agent execution prompt. Each phase's output is the next phase's input.

Sub-Agent Format

Not specified. CCPM describes launching "parallel agents" but doesn't specify how — the execution.md reference document handles this, likely via Claude Code's Task tool.

Script vs LLM Routing

Explicit separation: deterministic operations (status, standup, search) → bash scripts; reasoning operations (PRD writing, parallelism analysis, agent launch) → LLM.

08

Ui Cli Surface

CCPM — UI & CLI Surface

CLI Binary

None. CCPM is a skill file, not a CLI tool. All interaction happens through the host agent (Claude Code, etc.).

Local UI

None. GitHub Issues serves as the "UI" — progress is visible in GitHub web/mobile.

IDE Integration

Via skill installation in any agentskills.io-compatible harness. Specifically tested with Claude Code.

Quick Reference Commands (natural language)

Plan a feature:     "I want to build X" or "create a PRD for X"
Parse to epic:      "turn the X PRD into an epic"
Decompose:          "break down the X epic into tasks"
Sync to GitHub:     "push the X epic to GitHub"
Start an issue:     "start working on issue 42"
Check status:       "what's our status" / "standup"
What's next:        "what should I work on next"
Merge epic:         "merge the X epic"
Report a bug:       "found a bug in issue 42"

Observability

  • GitHub Issue comments serve as an audit trail — every progress update, agent handoff, and completion note is posted as a comment
  • Standup script produces a formatted daily report from local file state
  • Validate script checks project state integrity

Notable: v1 Legacy

The original CCPM used /pm:* Claude Code slash commands. The current version is the skill-based architecture (v2+). The v1 branch is preserved at https://github.com/automazeio/ccpm/tree/v1.

Related frameworks

same archetype · same primary tool · same memory type

claude-mem (thedotmack) ★ 78k

Background worker service captures every tool call as an observation, AI-compresses sessions, and auto-injects relevant past…

pi (badlogic/earendil) ★ 55k

A minimal, hackable, multi-provider terminal coding agent that adapts to your workflows via npm-installable TypeScript Extensions…

Agent Skills (Addy Osmani) ★ 46k

Encodes senior-engineer software development lifecycle as 23 auto-routed skills and 7 slash commands for any AI coding agent.

wshobson/agents Plugin Marketplace ★ 36k

Single Markdown source for 83 domain-specialized plugins that auto-generates idiomatic artifacts for five AI coding harnesses.

TabbyML/Tabby ★ 34k

Self-hosted AI coding assistant server (alternative to GitHub Copilot) with admin dashboard, RAG-based completions, and multi-IDE…

Compound Engineering ★ 17k

Make each unit of engineering work compound into easier future work via brainstorm→plan→execute→review→learn cycles.