panayiotism/claude-harness/prd-breakdown
Claude Code and agent skill by panayiotism/claude-harness
- community
Checking that the SKILL.md file is still in the repository.
Analyze a PRD (product requirements document) and perform a breakdown into atomic features with Gherkin acceptance criteria. Use for PRD analysis, feature extraction, requirement decomposition, acceptance test generation, dependency graphing, and project planning from product specifications.
Install
npx vskill@latest install panayiotism/claude-harness/prd-breakdownSKILL.md
PRD Breakdown - Analyze and Decompose Product Requirements
Analyze a Product Requirements Document (PRD) and decompose it into atomic features that integrate with the claude-harness workflow.
Arguments: $ARGUMENTS
Phase 0: PRD Input Detection & Storage
- Detect PRD source (in priority order):
- If arguments start with
@-> treat as file reference (e.g.,@./docs/prd.md) - Else if
--urlflag provided -> fetch from GitHub issue - Else if
--fileflag provided -> read from specified file path - Else if file
./.claude-harness/prd.mdexists -> read from file - Else if arguments provided -> treat as inline PRD markdown
- Else -> prompt user for interactive input
- Validate PRD format:
- Check minimum length (at least 100 characters of content)
- If Markdown: verify structure (sections, requirements)
- If plain text: parse as-is
- If too large (>100KB): warn user, ask to focus on specific sections
- Store PRD input:
- Create
.claude-harness/prd/directory if missing - Save PRD content to
.claude-harness/prd/input.md - Create
.claude-harness/prd/metadata.json:
``json { "version": 1, "sourceType": "inline|file|github|interactive", "fetchedAt": "{ISO timestamp}", "sourceUrl": "{URL or path}", "hash": "{SHA256 of PRD}", "characterCount": 0, "sections": 0 } ``
Phase 1: PRD Analysis
Perform comprehensive analysis from three perspectives:
- Product Analysis:
- Extract business goals, user personas, functional requirements
- Identify non-functional requirements, dependencies, constraints
- Architecture Analysis:
- Review feasibility and technical complexity
- Propose implementation order (dependency graph)
- Identify risks and mitigations
- Suggest MVP features
- QA Analysis:
- Define acceptance criteria for each requirement
- Identify edge cases and error scenarios
- Specify performance/security requirements
- Save analysis results to
.claude-harness/prd/analysis.json:
``json { "version": 1, "analyzedAt": "{timestamp}", "product": { "businessGoals": [...], "userPersonas": [...], "functionalRequirements": [...] }, "architecture": { "feasibilityAssessment": [...], "implementationOrder": [...], "mvpFeatures": [...], "dependencies": {...} }, "qa": { "verificationFramework": {...}, "edgeCases": [...] } } ``
Phase 2: Breakdown Generation
- Transform analysis into atomic features:
- For each functional requirement (from product analysis):
- Generate feature name (readable title)
- Extract acceptance criteria (from QA analysis)
- Determine complexity from architecture assessment
- Identify dependencies
- Assign risk level
- Resolve dependencies:
- Build dependency graph: feature A depends on B, B depends on C
- Topologically sort (ensures dependencies implemented first)
- Detect cycles: ERROR if circular dependency found
- Generate priority ordering
- Generate feature specifications (with structured Gherkin acceptance criteria):
``json { "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 Nprovided):
- Sort by priority, keep top N
- Summarize excluded features
Phase 3: Feature Review & Creation
- Generate preview showing (skip if
--autoflag provided):
- Total PRD sections analyzed
- Functional requirements extracted
- Features to create (grouped by priority)
- MVP features highlighted
- Risk assessment summary
``` PRD BREAKDOWN ANALYSIS COMPLETE Sections: 5 | Requirements: 23 | Features: 8 MVP Features: 3 | High-Risk: 1 | Dependencies: 5
FEATURES (by priority):
- [MVP] Add user authentication
Risk: MEDIUM | Complexity: MEDIUM | No dependencies
- Build user dashboard
Risk: LOW | Complexity: LOW | Depends on: #1 ... (6 more)
Create features? [Y/n/select/review] ```
- Handle user response:
- Y: Create all features (go to step 14)
- n: Stop here, show file path:
.claude-harness/prd/breakdown.json - select: Show multi-select menu, create only selected features
- review: Display full breakdown details for inspection
- Create features in `.claude-harness/features/active.json`:
- For each selected feature:
- Generate next sequential feature ID (read active.json, find max, increment)
- Add feature entry with full PRD metadata:
``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}" } ``
Phase 3.5: GitHub Issue Creation (unless --no-issues)
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):
- Use the cached GitHub owner/repo from the session context (parse
git remote get-url originonly if absent) - For each created feature (ordered so dependencies are created first):
- Build labels:
- Base:
["feature", "prd-generated", "claude-harness"] - If
mvpFeatureis true: add"mvp" - If
riskLevelis "high": add"high-risk"
- Build rich issue body:
```markdown ## 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 --title "{feature.name}" --body "{rich body}" --label "{labels}":
- Handle failures gracefully (log warning, continue with other features)
- Update feature entry in active.json:
- Set
github.issueNumberto created issue number - Save updated
.claude-harness/features/active.json
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
dependenciesarray OR that appears in another feature'sdependencies:
- 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`.
- Build "Blocks" section (reverse lookup):
- Find all features whose
dependenciesarray includes this feature's ID
```markdown Blocks:
- #44 -- Build user dashboard
- #46 -- Add admin panel
```
- Replace the Dependencies section in the issue body:
- Use
gh issue edit {issueNumber} --body "{updated body}" - Replace the placeholder dependency section with the actual cross-referenced version
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):
ghunavailable or unauthenticated (gh auth statusfails) -> Log warning, skip issue creation entirely but continue with feature creation- Permission denied -> Log error for specific feature, continue with others
- API rate limit (rare below ~50 issues) -> back off and retry the failed call
- Network error -> Retry 3x with exponential backoff
- Pass 2 update failure -> Log warning (issues exist but without cross-references), continue
Phase 4: Summary & Next Steps
- 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
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/prd-breakdown/SKILL.md
Popularity
- Repository stars
- 74
- Repository forks
- 8
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 28 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/panayiotism/claude-harness/prd-breakdown)