Files
gh-sjnims-requirements-expe…/commands/identify-epics.md
2025-11-30 08:57:33 +08:00

5.3 KiB

name, description, allowed-tools
name description allowed-tools
re:identify-epics Identify major capabilities (epics) from vision and create epic issues in GitHub Projects
AskUserQuestion
Bash
Read

Identify Epics

Identify major capabilities (epics) from the product vision and create epic issues in GitHub Projects as children of the vision issue.

Instructions

Load the epic-identification skill to access methodology and templates.

Step 1: Verify Prerequisites

  1. Check for Vision:

    • Use gh project item-list [project-number] --format json to list items
    • Filter for Type = "Vision"
    • If no vision found: Inform user they need to run /re:discover-vision first, then exit
    • Store vision issue number/URL for parent linking
  2. Read Vision Issue:

    • Use gh issue view [vision-issue-number] --repo [repo] --json body
    • Extract vision content to use for epic identification

Step 2: Automated Epic Suggestion

Analyze the vision and suggest potential epics using epic-identification skill methodology:

Use these discovery techniques:

  • User Journey Mapping: What end-to-end journeys do users take?
  • Capability Decomposition: What major capabilities are needed?
  • Stakeholder Needs: What do different user types need?
  • Technical Enablers: What infrastructure is required?

Suggest 5-10 potential epics based on the vision:

  • Present as a numbered list
  • Brief description (1-2 sentences) for each
  • Categorize (User-Facing, Infrastructure, Integration, etc.)

Display:

Based on your vision, I've identified these potential epics:

**User-Facing Capabilities:**
1. [Epic name] - [Brief description]
2. [Epic name] - [Brief description]

**Infrastructure:**
3. [Epic name] - [Brief description]

**Integration:**
4. [Epic name] - [Brief description]

These are suggestions - you can accept, modify, or add your own.

Step 3: Epic Selection & Refinement

Use AskUserQuestion to refine the epic list:

Question 1:

  • Question: "Which of these suggested epics should we include? (Select all that apply)"
  • Header: "Epic Selection"
  • multiSelect: true
  • Options: One option per suggested epic (label = epic name, description = brief desc)

Question 2:

  • Question: "Are there any additional epics we should add?"
  • Header: "Additional Epics"
  • Options: Custom text input

Step 4: Validate Epic Count

Check the total number of epics:

  • If < 5: Suggest this might be too few, ask if more decomposition needed
  • If > 15: Suggest this might be too many, ask if some can be combined
  • Ideal range: 5-12 epics

Step 5: Create Epic Issues

For each selected/added epic:

  1. Compile Epic Description: Use template from epic-identification skill's ${CLAUDE_PLUGIN_ROOT}/skills/epic-identification/references/epic-template.md:

    ## Epic: [Epic Name]
    
    ### Overview
    [Brief description of what this epic delivers]
    
    ### User Value
    [Who benefits and how]
    
    ### Scope
    **Included:**
    - [Capability 1]
    - [Capability 2]
    
    **Excluded:**
    - [Not included 1]
    
    ### Success Criteria
    - [Criterion 1]
    - [Criterion 2]
    
    ### Dependencies
    [None identified yet - will be defined during story creation]
    
    **Parent:** [Link to Vision Issue #]
    
  2. Create Issue:

    • Use gh issue create --repo [repo] --title "[Epic Name]" --body "[epic description]" --label "type:epic"
    • Capture issue number and URL
  3. Add to Project:

    • Use gh project item-add [project-number] --owner [owner] --url [issue-url]
  4. Set Custom Fields:

    • Type: Epic
    • Status: Not Started
    • Priority: (Will be set in prioritization step)
  5. Link to Vision (Parent):

    • Add comment to epic issue: "Parent: #[vision-issue-number]"
    • Use GitHub's task list syntax in vision issue to track epics

Step 6: Initial Prioritization Prompt

After creating all epics, ask:

✅ Created [N] epics successfully!

Epics:
- #[num] - [Epic 1 name]
- #[num] - [Epic 2 name]
...

Would you like to prioritize these epics now using MoSCoW framework?

Use AskUserQuestion:

  • Question: "Prioritize epics now?"
  • Header: "Prioritize"
  • Options:
    • "Yes, prioritize now" (description: "Use MoSCoW framework to prioritize")
    • "No, I'll prioritize later" (description: "Skip prioritization for now")
  • multiSelect: false

If "Yes": Execute /re:prioritize command

If "No": Show next steps

Step 7: Success Message & Next Steps

Display:

✅ Epic identification complete!

Created [N] epics linked to Vision (#[vision-num])

Next Steps:
1. Run `/re:prioritize` to rank epics by importance
2. Review epic issues and add details as needed
3. Run `/re:create-stories` to break down highest-priority epic
4. Use `/re:status` to see project overview

Pro tip: Start with one epic, create stories for it, then move to the next!

Error Handling

  • If no vision exists: Guide to /re:discover-vision
  • If vision is incomplete: Suggest reviewing and updating it first
  • If issue creation fails: Show error and permissions guidance
  • If too many/few epics: Provide guidance on right-sizing

Notes

  • Use epic-identification skill for methodology
  • Aim for 5-12 epics (sweet spot)
  • One epic per file (separate issues)
  • Each epic links to vision as parent
  • Epics should be distinct and non-overlapping
  • Use common epic patterns (User-Facing, Infrastructure, Integration, Data)