agentleFS
panayiotismpanayiotism/claude-harness/skills/prd-breakdown/SKILL.md

prd-breakdown

Skill79 starsChanged 4 months agoMITView on GitHub

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.

2 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. KerberosClaw/kc_ai_skills★ 79same name
    2. jaron-goh-centr/claude-skills★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository6 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. About 0 are common, 10 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈10

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If arguments start with @ -> treat as file reference (e.g., @./docs/prd.md)

    line 17
  2. Distinctive:

    Check minimum length (at least 100 characters of content)

    line 25
  3. Distinctive:

    If Markdown: verify structure (sections, requirements)

    line 26
  4. Distinctive:

    If plain text: parse as-is

    line 27
  5. Distinctive:

    If too large (>100KB): warn user, ask to focus on specific sections

    line 28
  6. Very specific:

    Create .claude-harness/prd/ directory if missing

    line 31
  7. Distinctive:

    Y: Create all features (go to step 14)

    line 164
  8. Very specific:

    n: Stop here, show file path: .claude-harness/prd/breakdown.json

    line 165
  9. Distinctive:

    Add feature entry with full PRD metadata:

    line 172
  10. Distinctive:

    Use the cached GitHub owner/repo from the session context (parse git remote get-url origin only if absent)

    line 215
  11. Very specific:

    If mvpFeature is true: add "mvp"

    line 220
  12. Very specific:

    If riskLevel is "high": add "high-risk"

    line 221
  13. Distinctive:

    Use AskUserQuestion with multi-select: true

    line 356
  14. Distinctive:

    Run PRD analysis without creating features

    line 370
  15. Distinctive:

    Create all extracted features and GitHub issues automatically

    line 375

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.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

  1. Detect PRD source (in priority order):
    • If arguments start with @ -> treat as file reference (e.g., @./docs/prd.md)
    • Else if --url flag provided -> fetch from GitHub issue
    • Else if --file flag provided -> read from specified file path
    • Else if file ./.claude-harness/prd.md exists -> read from file
    • Else if arguments provided -> treat as inline PRD markdown
    • Else -> prompt user for interactive input
  2. 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
  3. 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:
      {
        "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:

  1. Product Analysis:
    • Extract business goals, user personas, functional requirements
    • Identify non-functional requirements, dependencies, constraints
  2. Architecture Analysis:
    • Review feasibility and technical complexity
    • Propose implementation order (dependency graph)
    • Identify risks and mitigations
    • Suggest MVP features
  3. QA Analysis:
    • Define acceptance criteria for each requirement
    • Identify edge cases and error scenarios
    • Specify performance/security requirements
  4. 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": [...]
      }
    }

Phase 2: Breakdown Generation

  1. 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
  2. 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
  3. 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.
  4. Apply limits (if --max-features N provided):
    • Sort by priority, keep top N
    • Summarize excluded features

Phase 3: Feature Review & Creation

  1. Generate preview showing (skip if --auto flag 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):
      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]
  2. 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
  3. 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:
        {
          "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.

  1. 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 origin only if absent)
    • For each created feature (ordered so dependencies are created first):

      1. Build labels:
        • Base: ["feature", "prd-generated", "claude-harness"]
        • If mvpFeature is true: add "mvp"
        • If riskLevel is "high": add "high-risk"
      2. 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}*
      3. Create issue via gh issue create --title "{feature.name}" --body "{rich body}" --label "{labels}":
        • Handle failures gracefully (log warning, continue with other features)
      4. Update feature entry in active.json:
        • Set github.issueNumber to 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 `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}"`
     - 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):
- `gh` unavailable or unauthenticated (`gh auth status` fails) -> 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

  1. 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
  2. Interactive menu (if user doesn't select all):
    • Use AskUserQuestion with multi-select: true
    • Show pending features from breakdown
    • Allow user to start implementing any features

Command Options

Flags

--no-issues

  • Skip GitHub issue creation. Features are still created in active.json.
  • Useful when GitHub integration is not configured or not needed.
  • By default, issues are always created alongside features.

--analyze-only

  • Run PRD analysis without creating features
  • Useful for review before committing to features

--auto

  • Skip feature review confirmation prompt
  • Create all extracted features and GitHub issues automatically

--max-features N

  • Limit feature creation to top N features by priority
  • Useful for phased rollout

Usage Examples

/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 Variations

SyntaxBehavior
/prd-breakdown "markdown text"Analyze inline PRD, create features + GitHub issues
/prd-breakdown @path/to/file.mdRead PRD from file, create features + issues
/prd-breakdown --file path/to/file.mdRead PRD from file (--flag syntax)
/prd-breakdown --url https://...Fetch PRD from GitHub issue
/prd-breakdown @file.md --no-issuesCreate features only, skip GitHub issues
/prd-breakdown @file.md --autoFull automation: analyze, create features AND issues
(no args)Prompt user for interactive input

Error Handling

ScenarioAction
PRD not providedPrompt via AskUserQuestion
PRD too large (>100KB)Warn user, ask to focus section
GitHub fetch fails (gh error)Fall back to interactive input
Invalid markdownParse as plaintext, still extract
Feature ID collisionUse timestamp suffix for uniqueness
Dependency cycleReport error, suggest manual ordering
gh unavailable/unauthenticatedLog warning, skip issue creation entirely but continue with feature creation
Issue creation permission deniedLog error for specific feature, continue with others
Issue creation rate limitBack off and retry the failed call, continue
Issue creation network errorRetry 3x with exponential backoff
Pass 2 update failureLog warning (issues exist but without cross-references), continue

Integration with Other Commands

  • With /flow: Each created feature can be implemented via /flow feature-XXX
  • With /start: Shows PRD analysis summary from prior sessions
  • With memory: Records decomposition patterns to procedural memory for future PRDs

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.