Agent-executable Product Requirements Documents, generated by a 3-phase pipeline of parallel research agents, synthesis, quality scoring, and adversarial review.
PRD Engine ships as a Claude Code plugin and as a drop-in skill bundle. Same content, two install paths. Use whichever fits your workflow.
You describe a feature in plain English. The engine:
- Spawns 3-8 parallel research agents (codebase analysis, domain research, requirements, risks, implementation strategy).
- Hands their reports to a synthesizer that fills a structured template with before/after code blocks for every requirement, verification tables, acceptance criteria, and explicit "what NOT to change" lists.
- Runs a quality reviewer (0-100 rubric) plus 5 adversarial experts in parallel (blast radius, data integrity, UX regression, code patterns, scope) and decides: deliver, revise, rework, or escalate.
Output: a single PRD.md file at .prd-engine/{slug}/PRD.md that another agent can implement directly without follow-up questions.
Most PRDs read fine to humans but fail when you hand them to an autonomous coding agent. They reference files that no longer exist, claim BEFORE code that doesn't match the actual source, leave acceptance criteria vague ("works correctly"), and skip the negative space ("don't change these 12 things").
PRD Engine enforces the structural rules that make a PRD agent-executable, then runs adversarial review to catch the gaps a single drafting pass misses.
# In any Claude Code session
/plugin marketplace add addiplus/prd-engine
/plugin install prd-engine@addiplusThis auto-discovers the skill at skills/prd-engine/SKILL.md and the 10 agents at agents/prd/.
# Clone or download this repo, then:
cp -r skills/prd-engine ~/.claude/skills/
cp -r agents/prd ~/.claude/agents/Both install paths use the same content. The plugin path adds versioning and marketplace integration; the drop-in path is just files.
You: "Write a PRD for adding dark mode to the dashboard"
You: "PRD for the payment integration API --deep"
You: "Quick PRD for fixing the header alignment bug"
The engine confirms the plan (agents, intensity, time estimate), waits for "go", then runs to completion.
demo/ holds one complete worked example, committed as files: a feature request going
in, the five research reports, the validator and quality-gate reports, all five adversarial
expert reports, and the delivered PRD coming out. Start at demo/README.md,
which maps every file to the pipeline stage that produces it.
| Tier | Total agents | Research | Quality + Adversarial | Time | Use case |
|---|---|---|---|---|---|
quick |
4 | 3 agents | none | 5-8 min | Small bug fix, internal tool |
standard (default) |
13 | 5 agents | 1 reviewer + 5 adversarial | 12-18 min | Most features |
deep |
15 | 6 agents | 1 reviewer + 1 contrarian + 5 adversarial | 20-28 min | Cross-cutting, external-facing |
exhaustive |
19 | 8 agents | 2 synthesizers + scorer + 1 reviewer + 1 contrarian + 5 adversarial | 30-45 min | Mission-critical, zero ambiguity |
Natural-language detection: "quick PRD" → quick. "thorough" / "deep" → deep. "exhaustive" / "production" → exhaustive. No signal → standard.
| Agent | Role |
|---|---|
prd-engine-synthesizer |
Composes PRD from research reports |
prd-reviewer |
Scores draft on 5-dimension rubric (0-100) |
prd-blast-radius-analyst |
Traces downstream consumer breakage |
prd-data-integrity-adversary |
Corruption, race, parsing-overflow attacks |
prd-ux-regression-hunter |
Layout, dark mode, discoverability gaps |
prd-code-pattern-enforcer |
BEFORE/AFTER block accuracy, style drift |
prd-scope-critic |
Overengineering and cross-PRD conflicts |
adversarial-calibrator |
Rates adversarial report quality |
adversarial-heatmap-generator |
Agent × PRD severity matrix |
finding-deduplicator |
Groups findings by semantic similarity |
All agents run on Opus with extended context.
| Score | Action |
|---|---|
| 80-100 | DELIVER as-is. Copy draft to final. |
| 60-79 | REVISE. Apply reviewer's top 3 suggestions, deliver. |
| 40-59 | REWORK. Prompt user with top issues; offer re-synthesis. |
| 0-39 | ESCALATE. Fundamental gaps; review raw research. |
- Every requirement has BEFORE/AFTER code blocks (no exceptions)
- Every acceptance criterion has a specific expected value (no "works correctly")
- The "What NOT to Change" section has ≥10 items
- The PRD is self-contained (no external file references)
- File count in metadata matches files in body
- Length budget: 200 + (requirements × 60), capped at 600 lines
.prd-engine/{slug}/
config.json
research/
01_codebase_analysis.md
02_domain_research.md
03_requirements.md
04_risks_and_edges.md
05_implementation_strategy.md
09_validation.md
10a_quality_review.md
10b_contrarian.md # deep+ only
expert_1_blast_radius.md
expert_2_data_integrity.md
expert_3_ux_regression.md
expert_4_code_patterns.md
expert_5_scope_critic.md
PRD_DRAFT.md
PRD.md
| Flag | Values | Default |
|---|---|---|
--intensity / -i |
quick, standard, deep, exhaustive | standard |
--number / -n |
Integer | Auto-increment from highest existing PRD |
--output / -o |
Directory path | .prd-engine/{slug}/ |
--clarify |
Flag | Enabled for deep+, disabled for quick/standard |
--no-questions |
Flag | Skip Socratic clarification |
--target |
Project path | Repository root |
--skip-quality |
Flag | Skip quality gate (not recommended) |
Every push and pull request runs a validation job
(.github/workflows/validate.yml) that checks this repo is
still well formed. It is a structural check only. Nothing in it calls a model, spawns an agent,
or generates a PRD.
The job runs .github/scripts/validate.py, which confirms:
.claude-plugin/plugin.jsonand.claude-plugin/marketplace.jsonparse as JSON and carry the fields Claude Code needs, including aplugins[0].namethat matches the plugin name so the documented install resolves.- Every agent definition under
agents/and everyskills/**/SKILL.mdopens with YAML frontmatter that parses and declares a non-emptynameanddescription. - No Markdown or JSON file contains an em dash, en dash, or related long dash, which keeps the prose in plain ASCII punctuation.
It needs the Python standard library plus PyYAML. Run it locally the same way CI does:
pip install pyyaml
python .github/scripts/validate.pyMIT. See LICENSE.
Built by Joe Smith. Companion repos:
addiplus/mcp-cookie-auth-reference: MCP server reference for cookie-authenticated systemsaddiplus/claude-skill-pack: Bun-native Claude Code dev loop (4 skills)addiplus/mcp-builder: skill for building MCP servers with dual transport + OAuth 2.1