--- 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)