188 lines
5.3 KiB
Markdown
188 lines
5.3 KiB
Markdown
---
|
|
name: re:identify-epics
|
|
description: Identify major capabilities (epics) from vision and create epic issues in GitHub Projects
|
|
allowed-tools: [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`:
|
|
```markdown
|
|
## 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)
|