Spec-driven development for AI agents β ship faster better using PRDs, GitHub issues, and multiple agents running in parallel.
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.
Important
π’ CCPM is now an AGENT SKILL! It works with any Agent Skillsβcompatible harness that supports skills: Claude Code, Codex, OpenCode, Factory, Amp, Cursor, and more.
- Background
- The Workflow
- What Makes This Different
- Why GitHub Issues
- Core Principle: No Vibe Coding
- The Parallel Execution System
- Key Features & Benefits
- Install
- Usage
- Workflow Phases
- Skill Structure
- Example Flow
- Proven Results
- Local vs Remote
- Technical Notes
- Who's Behind this Project
Note
Check out proof to get your agents capture visual proof of work of terminal output, browser interactions, and mobile simulator recordings.
Every team struggles with the same problems:
- Context evaporates between sessions, forcing constant re-discovery
- Parallel work creates conflicts when multiple agents touch the same code
- Requirements drift as verbal decisions override written specs
- Progress becomes invisible until the very end
CCPM solves all of that.
graph LR
A[PRD Creation] --> B[Epic Planning]
B --> C[Task Decomposition]
C --> D[GitHub Sync]
D --> E[Parallel Execution]
"I want to build a notification system β where do we start?"
β Guided brainstorming + PRD creation
"break down the notification-system epic"
β Parallelizable task files with dependencies
"sync the notification-system epic to GitHub"
β Epic issue + sub-issues + worktree
"start working on issue 42"
β Parallel stream analysis + multiple agents launched
"what's our standup for today?"
β Instant report from project files
| Traditional AI Development | CCPM |
|---|---|
| Context lost between sessions | Persistent context across all work |
| One agent, one task | Parallel agents on independent streams |
| Vibe coding from memory | Spec-driven with full traceability |
| Progress hidden in chat logs | Transparent audit trail in GitHub |
| Scattered status updates | Structured standup, blocked, next |
Most AI coding workflows operate in isolation β a single session with no shared state. CCPM uses GitHub Issues as the source of truth, which unlocks something fundamentally different:
Team collaboration β multiple agents (or humans) work on the same project simultaneously. Progress is visible in real-time through issue comments.
Seamless handoffs β an agent can start a task, a human can finish it, or vice versa. No "what did the AI do?" meetings.
Single source of truth β no separate databases or project management tools. Issue state is project state. Comments are the audit trail.
Works with what you have β no dependency on GitHub Projects. Integrates with existing labels, milestones, and PR workflows.
Every line of code must trace back to a specification.
CCPM enforces a strict 5-phase discipline:
- π§ Brainstorm β think deeper than comfortable
- π Document β write specs that leave nothing to interpretation
- π Plan β architect with explicit technical decisions
- β‘ Execute β build exactly what was specified
- π Track β maintain transparent progress at every step
No shortcuts. No assumptions. No regrets.
Traditional thinking: one issue = one agent = one task
Reality: a single "Implement user authentication" issue is actually:
- Agent 1: Database tables and migrations
- Agent 2: Service layer and business logic
- Agent 3: API endpoints and middleware
- Agent 4: UI components and forms
- Agent 5: Test suites and documentation
All running simultaneously in the same worktree.
| Approach | Agents working | Wall time |
|---|---|---|
| Traditional (serial) | 1 | 5x |
| CCPM (parallel streams) | 5 | 1x |
Each agent handles its own context in isolation. Your main conversation becomes the conductor β it never drowns in implementation details. Agents read from .claude/epics/ and commit progress back through Git.
π§ Context preservation β project state lives in files, not in your head or chat history. Start a session anywhere, any time.
β‘ Parallel execution β tasks marked parallel: true run concurrently across multiple agents without conflicts.
π GitHub native β works with tools your team already uses. No dependency on the Projects API.
π Full traceability β every decision documented. PRD β Epic β Task β Issue β Code β Commit.
π€ Deterministic ops run as scripts β status, standup, search, validate all run as bash scripts: fast, consistent, no LLM token cost.
π Harness-agnostic β follows the agentskills.io open standard. Works with Factory, Claude Code, Amp, OpenCode, Codex, Cursor, and more.
CCPM is a standard Agent Skill. Point your harness at skill/ccpm/ β that's it.
git clone https://github.com/automazeio/ccpm.git# Symlink into your skills directory
ln -s /path/to/ccpm/skill/ccpm ~/.factory/skills/ccpmIn your project root, add a skills/ directory and symlink or copy the skill:
ln -s /path/to/ccpm/skill/ccpm .claude/skills/ccpmPoint it at skill/ccpm/. It follows the agentskills.io standard and works out of the box.
gitandghCLI (authenticated:gh auth login)- A GitHub repository for your project
CCPM activates automatically when your agent detects PM intent. Just talk naturally β no special syntax needed.
| What you say | What happens |
|---|---|
| "I want to build X" / "let's plan X" | Brainstorming + PRD creation |
| "parse the X PRD" / "create an epic for X" | PRD β technical epic |
| "break down the X epic" | Epic decomposition into tasks |
| "sync the X epic to GitHub" | Issues created, worktree set up |
| "start working on issue N" | Analysis + parallel agents launched |
| "standup" / "what's our status" | Bash script runs instantly |
| "what's next" / "what's blocked" | Priority queue from project files |
| "close issue N" | Local + GitHub updated |
| "merge the X epic" | Tests, merge, cleanup |
"I want to build a notification system β push, email, and in-app"
CCPM conducts guided brainstorming before writing anything. It asks about the problem, users, success criteria, constraints, and what's out of scope β then creates a structured PRD at .claude/prds/<name>.md.
When ready: "parse the notification-system PRD" β produces a technical epic at .claude/epics/notification-system/epic.md with architecture decisions, technical approach, and task preview.
"break down the notification-system epic into tasks"
Each task gets a file with acceptance criteria, effort estimate, depends_on, parallel, and conflicts_with metadata. Tasks are intelligently batched for parallel creation. β€10 tasks per epic by default.
"sync the notification-system epic to GitHub"
Creates an epic issue, creates sub-issues for each task, renames local files to match GitHub issue numbers, sets up a dedicated worktree (../epic-notification-system/), and creates a mapping file for reference.
"start working on issue 42"
Analyzes the issue for independent work streams, launches parallel agents scoped to their own files, and sets up progress tracking. Each agent commits with Issue #N: description and coordinates through Git.
"standup" / "what's blocked" / "what's next"
All tracking operations run as bash scripts β instant output, no LLM overhead. The scripts scan .claude/epics/ and report what's in progress, what's next, and what's blocked.
skill/ccpm/
βββ SKILL.md # Entry point β detects intent, routes to reference
βββ references/
βββ plan.md # PRD writing + parsing to epic
βββ structure.md # Epic decomposition into tasks
βββ sync.md # GitHub sync, progress comments, close, merge
βββ execute.md # Issue analysis + parallel agent launch
βββ track.md # Status, standup, search, next, blocked
βββ conventions.md # File formats, frontmatter schemas, git rules
βββ scripts/ # Bash scripts for deterministic operations
βββ status.sh
βββ standup.sh
βββ epic-list.sh
βββ search.sh
βββ ... # 14 scripts total
Your project files live in .claude/ in your project root:
.claude/
βββ prds/ # Product requirement documents
βββ epics/
β βββ <feature>/
β βββ epic.md # Technical epic
β βββ <N>.md # Task files (named by GitHub issue number after sync)
β βββ <N>-analysis.md # Parallel work stream analysis
β βββ updates/ # Agent progress tracking
βββ (archived epics)
Files are the source of truth β plain markdown that lives in your repo, no external services.
You: "I want to build a payment integration with Stripe β subscriptions and one-time charges"
CCPM: Asks 5 clarifying questions about scope, users, success criteria...
You: [answers]
CCPM: β
PRD created: .claude/prds/payment-integration.md
Ready to create the technical epic?
You: "yes, parse it"
CCPM: β
Epic created: .claude/epics/payment-integration/epic.md
8 task categories identified. Ready to decompose?
You: "break it down"
CCPM: β
Created 7 tasks β 5 parallel, 2 sequential
Ready to push to GitHub?
You: "sync it"
CCPM: β
Epic #1234 created
β
7 sub-issues created (#1235β#1241)
β
Worktree: ../epic-payment-integration/
You: "start working on issue 1235"
CCPM: Analyzed 3 parallel streams:
Stream A: Stripe client setup β Started
Stream B: Webhook handler β Started
Stream C: Database models βΈ Waiting on A
You: "what's our standup?"
CCPM: [runs standup.sh instantly]
π
Daily Standup β 2026-03-18
π In Progress: Issue #1235 (payment-integration) β 60%
βοΈ Next: Issue #1236 β Subscription billing logic
π Tasks: 2 in progress, 5 open, 0 closed
Teams using this system report:
- 89% less time lost to context switching
- 5β8 parallel tasks vs 1 previously
- 75% reduction in bug rates β due to detailed task breakdown before coding
- Up to 3Γ faster feature delivery
In structured evals comparing CCPM-equipped agents vs baseline (no skill):
| Scenario | With CCPM | Without |
|---|---|---|
| PRD creation (brainstorm-first, correct paths) | β 4/4 | β 2/4 |
| Issue execution (analysis + worktree checks) | β 4/4 | β 0/4 |
| Standup (runs script, real data) | β 3/3 | β 1/3 |
| Overall | 100% | 27.7% |
| Operation | Local | GitHub |
|---|---|---|
| PRD creation | β | β |
| Implementation planning | β | β |
| Task breakdown | β | β (on sync) |
| Execution | β | β |
| Progress updates | β | β (on sync) |
| Final deliverables | β | β |
GitHub integration β uses gh-sub-issue extension for proper parent-child relationships. Falls back to task lists if not installed. Install with: gh extension install yahsan2/gh-sub-issue
File naming β tasks start as 001.md, 002.md during decomposition. After GitHub sync, renamed to {issue-id}.md (e.g. 1234.md). Issue #1234 = file 1234.md.
Design decisions β intentionally avoids GitHub Projects API complexity. All operations work on local files first for speed. GitHub sync is explicit and controlled. Worktrees provide clean git isolation for parallel work.
Looking for v1? β The original /pm:* Claude Code slash command system is preserved on the v1 branch.
CCPM was developed at Automaze for developers who ship, by developers who ship.
If CCPM helps your team ship better software:
- β Star this repository to show your support
- π¦ Follow @aroussi on X for updates and tips
Tip
Ship faster with Automaze. We partner with founders to bring their vision to life, scale their business, and optimize for success. Visit Automaze to book a call βΊ
