Add capability for organizing backlog into shippable business capabilities using value-based milestones (not time-based phases). Components: - milestone-planning skill: Value-based framework, vertical slice test, one active milestone - create-milestones skill: Orchestrator (Haiku) for analyzing and grouping issues - milestone-planner agent: Groups issues into capabilities autonomously (Haiku) Core Principles: - Milestone = shippable business capability (not phase) - One active milestone at a time (preserves focus) - 5-25 issues per milestone (right-sized) - Value labels: value/high, value/medium, value/low - Risk labels: risk/high (optional) - Vertical slice test (can be demoed independently) - No dates (capability-based, not time-based) Workflow: /create-milestones reads existing Gitea issues → analyzes capability boundaries → groups into milestones → creates in Gitea → assigns issues → applies labels → user manually activates ONE milestone Co-Authored-By: Claude Code <noreply@anthropic.com>
236 lines
5.4 KiB
Markdown
236 lines
5.4 KiB
Markdown
---
|
|
name: create-milestones
|
|
description: >
|
|
Analyze existing Gitea issues and group into value-based milestones. Creates
|
|
milestones, assigns issues, applies value/risk labels. Use when organizing
|
|
backlog by capability, or when user says /create-milestones.
|
|
model: claude-haiku-4-5
|
|
argument-hint:
|
|
user-invocable: true
|
|
---
|
|
|
|
# Create Milestones
|
|
|
|
@~/.claude/skills/milestone-planning/SKILL.md
|
|
@~/.claude/skills/gitea/SKILL.md
|
|
|
|
Analyze existing issues and organize into value-based milestones (shippable capabilities).
|
|
|
|
## Process
|
|
|
|
### 1. Fetch Existing Issues
|
|
|
|
```bash
|
|
tea issues --state open -o json
|
|
```
|
|
|
|
Get all open issues from current repository.
|
|
|
|
Verify issues exist. If none:
|
|
```
|
|
No open issues found. Create issues first using /vision-to-backlog or /ddd-breakdown.
|
|
```
|
|
|
|
### 2. Analyze Issues
|
|
|
|
Read issue details for each:
|
|
```bash
|
|
tea issues <number>
|
|
```
|
|
|
|
**Look for:**
|
|
- Issue titles and descriptions
|
|
- Bounded context labels (if present)
|
|
- Capability labels (if present)
|
|
- User stories
|
|
- Acceptance criteria
|
|
- DDD guidance (aggregates, commands, events)
|
|
|
|
### 3. Spawn Milestone Planner
|
|
|
|
Use Task tool to spawn `milestone-planner` agent:
|
|
|
|
```
|
|
Analyze these issues and group into value-based milestones.
|
|
|
|
Issues: [list of issue numbers with titles]
|
|
|
|
For each issue, you have access to:
|
|
- Full issue description
|
|
- Labels
|
|
- DDD context
|
|
|
|
Group issues into milestones that represent shippable business capabilities.
|
|
|
|
Follow milestone-planning skill principles:
|
|
- Milestone = capability user can demo
|
|
- 5-25 issues per milestone
|
|
- Cross-cutting (commands + events + reads + UI)
|
|
- Vertical slice test
|
|
|
|
Output:
|
|
- Milestone definitions
|
|
- Issue assignments
|
|
- Value/risk labels per issue
|
|
|
|
Follow milestone-planner agent instructions.
|
|
```
|
|
|
|
Agent returns grouped milestones.
|
|
|
|
### 4. Review Grouped Milestones
|
|
|
|
Present agent output to user:
|
|
|
|
```
|
|
## Proposed Milestones
|
|
|
|
### Milestone: Customer can register and authenticate
|
|
**Description:** User registration, login, and session management
|
|
**Issues:** 8
|
|
**Value:** high
|
|
**Issues:**
|
|
- #42: Implement User aggregate
|
|
- #43: Add RegisterUser command
|
|
- #44: Publish UserRegistered event
|
|
- #45: Add LoginUser command
|
|
- #46: Create UserSession read model
|
|
- #47: Build registration form
|
|
- #48: Build login form
|
|
- #49: Add session middleware
|
|
|
|
### Milestone: Order can be placed and paid
|
|
**Description:** Complete order placement with payment processing
|
|
**Issues:** 12
|
|
**Value:** high
|
|
**Issues:**
|
|
- #50: Implement Order aggregate
|
|
- #51: Add PlaceOrder command
|
|
...
|
|
|
|
[... more milestones]
|
|
```
|
|
|
|
**Ask user:**
|
|
- Approve these milestones?
|
|
- Modify any groupings?
|
|
- Change value/risk labels?
|
|
|
|
### 5. Ensure Labels Exist
|
|
|
|
Before creating milestones, ensure labels exist in Gitea:
|
|
|
|
**Check for labels:**
|
|
```bash
|
|
tea labels list
|
|
```
|
|
|
|
**Create missing labels:**
|
|
```bash
|
|
# Value labels
|
|
tea labels create "value/high" --color "#d73a4a" --description "Highest business value"
|
|
tea labels create "value/medium" --color "#fbca04" --description "Moderate business value"
|
|
tea labels create "value/low" --color "#0075ca" --description "Nice to have"
|
|
|
|
# Risk label
|
|
tea labels create "risk/high" --color "#e99695" --description "Technical risk or uncertainty"
|
|
```
|
|
|
|
### 6. Create Milestones in Gitea
|
|
|
|
For each approved milestone:
|
|
|
|
```bash
|
|
tea milestones create \
|
|
--title "<milestone title>" \
|
|
--description "<milestone description>"
|
|
```
|
|
|
|
Capture milestone ID/title for issue assignment.
|
|
|
|
### 7. Assign Issues to Milestones
|
|
|
|
For each issue in each milestone:
|
|
|
|
```bash
|
|
tea issues edit <issue-number> --milestone "<milestone-title>"
|
|
```
|
|
|
|
### 8. Apply Value/Risk Labels
|
|
|
|
For each issue:
|
|
|
|
```bash
|
|
tea issues edit <issue-number> --labels "<existing-labels>,<value-label>"
|
|
|
|
# If has risk
|
|
tea issues edit <issue-number> --labels "<existing-labels>,<value-label>,risk/high"
|
|
```
|
|
|
|
**Preserve existing labels** (bounded-context, capability, etc.)
|
|
|
|
### 9. Report Results
|
|
|
|
Show created milestones with links:
|
|
|
|
```
|
|
## Milestones Created
|
|
|
|
### Customer can register and authenticate (8 issues)
|
|
- Value: high
|
|
- Issues: #42, #43, #44, #45, #46, #47, #48, #49
|
|
- Link: [view milestone](https://git.flowmade.one/owner/repo/milestone/1)
|
|
|
|
### Order can be placed and paid (12 issues)
|
|
- Value: high
|
|
- Issues: #50-#61
|
|
- Link: [view milestone](https://git.flowmade.one/owner/repo/milestone/2)
|
|
|
|
[... more milestones]
|
|
|
|
## Next Steps
|
|
|
|
1. **Review milestones** in Gitea
|
|
2. **Activate ONE milestone** (the current value focus)
|
|
3. **Close milestone** when capability is demoable
|
|
4. **Pick next milestone** to activate
|
|
|
|
Remember: Only one open/active milestone at a time!
|
|
```
|
|
|
|
## Guidelines
|
|
|
|
**Value slices:**
|
|
- Each milestone is a shippable capability
|
|
- Can be demoed independently
|
|
- User sees observable value
|
|
|
|
**One active milestone:**
|
|
- User manually activates ONE
|
|
- This workflow doesn't activate automatically
|
|
- Forces focus and completion
|
|
|
|
**Label strategy:**
|
|
- Every issue gets value label
|
|
- High-risk issues get risk/high label
|
|
- Preserves existing labels (context, capability)
|
|
|
|
**Sizing:**
|
|
- 5-25 issues per milestone
|
|
- If larger, agent should split
|
|
- If smaller, might not need milestone
|
|
|
|
**No dates:**
|
|
- Milestones are capability-based
|
|
- Not time-based
|
|
- Ship when done, not by deadline
|
|
|
|
## Tips
|
|
|
|
- Run after creating issues from /vision-to-backlog
|
|
- Re-run if backlog grows and needs reorganization
|
|
- Agent groups by capability boundaries (aggregates, contexts)
|
|
- Review groupings - agent might miss domain nuance
|
|
- Adjust value/risk labels based on business context
|
|
- Keep one milestone open at all times
|