From claude-harness
Analyzes PRD into atomic features with Gherkin acceptance criteria, performs product/architecture/QA analysis, generates dependency graphs, MVP features, and project plans from specs.
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-agent-framework --plugin panayiotism-claude-harnessThis skill uses the workspace's default tool permissions.
Analyze a Product Requirements Document (PRD) and decompose it into atomic features that integrate with the claude-harness workflow.
Applies Acme Corporation brand guidelines including colors, fonts, layouts, and messaging to generated PowerPoint, Excel, and PDF documents.
Builds DCF models with sensitivity analysis, Monte Carlo simulations, and scenario planning for investment valuation and risk assessment.
Calculates profitability (ROE, margins), liquidity (current ratio), leverage, efficiency, and valuation (P/E, EV/EBITDA) ratios from financial statements in CSV, JSON, text, or Excel for investment analysis.
Analyze a Product Requirements Document (PRD) and decompose it into atomic features that integrate with the claude-harness workflow.
Arguments: $ARGUMENTS
Detect PRD source (in priority order):
@ -> treat as file reference (e.g., @./docs/prd.md)--url flag provided -> fetch from GitHub issue--file flag provided -> read from specified file path./.claude-harness/prd.md exists -> read from fileValidate PRD format:
Store PRD input:
.claude-harness/prd/ directory if missing.claude-harness/prd/input.md.claude-harness/prd/metadata.json:
{
"version": 1,
"sourceType": "inline|file|github|interactive",
"fetchedAt": "{ISO timestamp}",
"sourceUrl": "{URL or path}",
"hash": "{SHA256 of PRD}",
"characterCount": 0,
"sections": 0
}
Perform comprehensive analysis from three perspectives:
Product Analysis:
Architecture Analysis:
QA Analysis:
Save analysis results to .claude-harness/prd/analysis.json:
{
"version": 1,
"analyzedAt": "{timestamp}",
"product": {
"businessGoals": [...],
"userPersonas": [...],
"functionalRequirements": [...]
},
"architecture": {
"feasibilityAssessment": [...],
"implementationOrder": [...],
"mvpFeatures": [...],
"dependencies": {...}
},
"qa": {
"verificationFramework": {...},
"edgeCases": [...]
}
}
Transform analysis into atomic features:
Resolve dependencies:
Generate feature specifications (with structured Gherkin acceptance criteria):
{
"id": "feature-XXX",
"prdSource": {
"section": "Section Name",
"requirement": "R001"
},
"name": "Feature Title",
"description": "One-line description",
"detailedDescription": "Full description from PRD",
"priority": 1,
"dependencies": ["feature-YYY"],
"acceptanceCriteria": [
{
"scenario": "Descriptive scenario name",
"given": "precondition (context setup)",
"when": "action performed",
"then": "expected outcome"
}
],
"riskLevel": "low|medium|high",
"estimatedComplexity": "low|medium|high",
"mvpFeature": true|false
}
Important: acceptanceCriteria MUST use structured Gherkin format ({ scenario, given, when, then }) -- not plain strings. This enables the ATDD workflow in /flow --team where the tester teammate programmatically iterates scenarios to write executable tests.
Apply limits (if --max-features N provided):
Generate preview showing (skip if --auto flag provided):
PRD BREAKDOWN ANALYSIS COMPLETE
Sections: 5 | Requirements: 23 | Features: 8
MVP Features: 3 | High-Risk: 1 | Dependencies: 5
FEATURES (by priority):
1. [MVP] Add user authentication
Risk: MEDIUM | Complexity: MEDIUM | No dependencies
2. Build user dashboard
Risk: LOW | Complexity: LOW | Depends on: #1
... (6 more)
Create features? [Y/n/select/review]
Handle user response:
.claude-harness/prd/breakdown.jsonCreate features in .claude-harness/features/active.json:
{
"id": "feature-XXX",
"name": "...",
"description": "...",
"priority": N,
"status": "pending",
"acceptanceCriteria": [
{
"scenario": "...",
"given": "...",
"when": "...",
"then": "..."
}
],
"prdMetadata": {
"section": "...",
"breakdown": "prd-{date}-{hash}"
},
"verification": {
"build": "{auto-detected}",
"tests": "{auto-detected}",
"lint": "{auto-detected}",
"typecheck": "{auto-detected}"
},
"relatedFiles": [],
"github": {
"issueNumber": null,
"prNumber": null,
"branch": "feature/feature-XXX"
},
"createdAt": "{timestamp}",
"updatedAt": "{timestamp}"
}
GitHub issues are created by default for all generated features. Skip with --no-issues.
Pass 1 -- Create issues with rich bodies (in dependency order -- dependencies first):
Parse GitHub owner/repo from git remote get-url origin (or use cached from SessionStart)
For each created feature (ordered so dependencies are created first):
Build labels:
["feature", "prd-generated", "claude-harness"]mvpFeature is true: add "mvp"riskLevel is "high": add "high-risk"Build rich issue body:
## Description
{feature.detailedDescription or feature.description}
### PRD Source
**Section:** {prdSource.section} | **Requirement:** {prdSource.requirement}
---
## Acceptance Criteria
**Scenario: {scenario}**
- **Given** {given}
- **When** {when}
- **Then** {then}
{repeat for each criterion in acceptanceCriteria}
---
## Implementation Context
| Attribute | Value |
|-----------|-------|
| Priority | {priority} |
| Complexity | {estimatedComplexity} |
| Risk Level | {riskLevel} |
| MVP Feature | {mvpFeature ? "Yes" : "No"} |
### Related Files
{for each file in relatedFiles: "- `{file}`"}
{if empty: "- To be determined during planning"}
### Implementation Hints
{from architecture analysis for this feature: suggested approach, tech stack considerations, risks and mitigations}
---
## Dependencies
{placeholder -- will be updated in Pass 2 with actual issue numbers}
{if feature.dependencies: "Depends on: {list dependency feature names}"}
{if no dependencies: "No dependencies -- can be implemented independently."}
---
## Verification Commands
build: {verification.build or "not configured"} tests: {verification.tests or "not configured"} lint: {verification.lint or "not configured"} typecheck: {verification.typecheck or "not configured"} acceptance: {verification.acceptance or "not configured"}
---
*Generated by [claude-harness](https://github.com/panayiotism/claude-harness) PRD breakdown*
*Breakdown ID: {prdMetadata.breakdown}*
Create issue via gh issue create or mcp__github__create_issue:
{feature.name}Update feature entry in active.json:
github.issueNumber to created issue number.claude-harness/features/active.jsonRate limiting: 500ms delay between API calls
15.5. Pass 2 -- Update issues with cross-references (after ALL issues are created):
Now that every feature has an assigned `github.issueNumber`, update each issue that has dependencies or is depended upon:
- For each feature with `dependencies` array OR that appears in another feature's `dependencies`:
1. **Build "Depends on" section**:
```markdown
**Depends on:**
- #43 -- Add user authentication
- #45 -- Create database schema
```
Map each dependency feature ID to its `github.issueNumber` and `name`.
2. **Build "Blocks" section** (reverse lookup):
- Find all features whose `dependencies` array includes this feature's ID
```markdown
**Blocks:**
- #44 -- Build user dashboard
- #46 -- Add admin panel
```
3. **Replace the Dependencies section** in the issue body:
- Use `gh issue edit {issueNumber} --body "{updated body}"` or GitHub MCP
- Replace the placeholder dependency section with the actual cross-referenced version
4. **Rate limiting**: 500ms delay between API calls
This ensures **bidirectional linking**: if feature-002 depends on feature-001, then:
- feature-001's issue shows "**Blocks:** #44 -- feature-002 name"
- feature-002's issue shows "**Depends on:** #43 -- feature-001 name"
**Error Handling** (applies to both Pass 1 and Pass 2):
- GitHub MCP unavailable -> Log warning, skip issue creation entirely but continue with feature creation
- Permission denied -> Log error for specific feature, continue with others
- API rate limit -> Add 500ms delay between requests
- Network error -> Retry 3x with exponential backoff
- Pass 2 update failure -> Log warning (issues exist but without cross-references), continue
Report completion:
FEATURES CREATED FROM PRD
PRD Sections: 5
Features Extracted: 8
Created Now: 3
GitHub Issues Created: 3
#43: Add user authentication (MVP)
#44: Build user dashboard -> depends on #43
#45: Create database schema
Cross-references: 2 issues updated with dependency links
Files:
- PRD input: .claude-harness/prd/input.md
- Analysis: .claude-harness/prd/analysis.json
- Breakdown: .claude-harness/prd/breakdown.json
NEXT STEPS:
1. Start implementation: /flow feature-001
2. Or batch process: /flow --autonomous
3. Review analysis: cat .claude-harness/prd/breakdown.json
Interactive menu (if user doesn't select all):
--no-issues
--analyze-only
--auto
--max-features N
/claude-harness:prd-breakdown "Detailed PRD markdown here..." # Inline PRD (creates features + issues)
/claude-harness:prd-breakdown @./docs/prd.md # File reference (creates features + issues)
/claude-harness:prd-breakdown --file ./docs/prd.md # File flag
/claude-harness:prd-breakdown --url https://github.com/.../issues/42 # GitHub issue as PRD source
/claude-harness:prd-breakdown --analyze-only # Analysis only (no features, no issues)
/claude-harness:prd-breakdown --auto # No prompts, full automation
/claude-harness:prd-breakdown --max-features 10 # Top 10 only
/claude-harness:prd-breakdown @./prd.md --no-issues # Features only, skip GitHub issues
/claude-harness:prd-breakdown @./prd.md --auto # Full automation: analyze + features + issues
| Syntax | Behavior |
|---|---|
/prd-breakdown "markdown text" | Analyze inline PRD, create features + GitHub issues |
/prd-breakdown @path/to/file.md | Read PRD from file, create features + issues |
/prd-breakdown --file path/to/file.md | Read PRD from file (--flag syntax) |
/prd-breakdown --url https://... | Fetch PRD from GitHub issue |
/prd-breakdown @file.md --no-issues | Create features only, skip GitHub issues |
/prd-breakdown @file.md --auto | Full automation: analyze, create features AND issues |
| (no args) | Prompt user for interactive input |
| Scenario | Action |
|---|---|
| PRD not provided | Prompt via AskUserQuestion |
| PRD too large (>100KB) | Warn user, ask to focus section |
| GitHub fetch fails (no MCP) | Fall back to interactive input |
| Invalid markdown | Parse as plaintext, still extract |
| Feature ID collision | Use timestamp suffix for uniqueness |
| Dependency cycle | Report error, suggest manual ordering |
| GitHub MCP unavailable | Log warning, skip issue creation entirely but continue with feature creation |
| Issue creation permission denied | Log error for specific feature, continue with others |
| Issue creation rate limit | Add 500ms delay between requests, continue |
| Issue creation network error | Retry 3x with exponential backoff |
| Pass 2 update failure | Log warning (issues exist but without cross-references), continue |
/flow: Each created feature can be implemented via /flow feature-XXX/start: Shows PRD analysis summary from prior sessions