Files
gh-eternnoir-claude-tool-pr…/skills/track-milestone/SKILL.md
2025-11-29 18:26:18 +08:00

641 lines
15 KiB
Markdown

---
name: track-milestone
description: Track and manage project milestones, deliverables, and deadlines. Use when user mentions "milestone", "deadline", "deliverable", "release", "target date", or wants to track major project achievements and dependencies between milestones.
---
# Track Milestone Skill
## When to use this Skill
Activate when the user:
- Mentions creating, updating, or checking milestones
- Uses keywords: "milestone", "deadline", "deliverable", "release", "target", "due date"
- Wants to track major project achievements
- References project timeline or roadmap
- Needs to manage milestone dependencies
- Wants to see progress toward goals
## Workflow
### Phase 1: Context Discovery & Intent Recognition
**Objective**: Understand project structure and user's specific milestone intent.
**Steps**:
1. **Locate project RULE.md** and **milestones.yaml**:
```bash
ls RULE.md milestones.yaml
```
2. **Read both files**:
- RULE.md: Project methodology, milestone tracking preferences
- milestones.yaml: Existing milestones and structure
3. **Detect user intent**:
- **Create milestone**: "create milestone", "add milestone", "new milestone"
- **Update milestone**: "update milestone", "milestone progress", "mark complete"
- **Check status**: "milestone status", "show milestones", "timeline"
- **Manage dependencies**: "milestone depends on", "blocking milestone"
4. **Route to appropriate workflow**:
- Create → Workflow A
- Update → Workflow B
- Status → Workflow C
- Dependencies → Workflow D
### Workflow A: Create Milestone
**Objective**: Add a new milestone to the project timeline.
**Steps**:
1. **Gather milestone details**:
**Name**:
```
Milestone name?
Example: "Beta Release", "MVP Launch", "Security Audit Complete"
```
**Description**:
```
Brief description of what this milestone represents?
```
**Target date**:
```
Target completion date? (YYYY-MM-DD or relative like "end of Q2")
```
**Deliverables**:
```
What needs to be delivered for this milestone?
- Deliverable 1
- Deliverable 2
```
**Owner** (optional):
```
Who's responsible for this milestone? (@name or "Team")
```
**Dependencies** (optional):
```
Does this milestone depend on any other milestones?
Example: "After Alpha Release" or "After milestones 1 and 2"
```
**Related sprints/phases** (optional):
```
Which sprints/phases contribute to this milestone?
```
2. **Generate milestone ID**:
```
milestone-{number} or {name-slug}
Example: milestone-1 or beta-release
```
3. **Read current milestones.yaml**:
```
Read milestones.yaml
```
4. **Add new milestone entry**:
```yaml
milestones:
- id: {milestone-id}
name: "{Milestone Name}"
description: "{Description}"
target_date: YYYY-MM-DD
actual_date: null
status: planned
dependencies: [{dependent-milestone-ids}]
deliverables:
- Deliverable 1
- Deliverable 2
owner: "@{name}"
related_sprints: [{sprint-numbers}]
completion_criteria:
- Criterion 1
- Criterion 2
notes: ""
```
5. **Validate dependencies**:
- Check that referenced milestones exist
- Detect circular dependencies
- Warn if dependency order seems wrong
6. **Update milestones.yaml** using Edit tool:
```
Edit milestones.yaml
Add new milestone entry in appropriate location (sorted by target date)
```
7. **Update governance**:
- Update project README.md (add to timeline section)
- Add "Recent Activity" entry
- Link to related sprints if applicable
8. **Report creation**:
```
✅ Milestone Created!
🎯 {Milestone Name}
📅 Target: {target_date}
📦 Deliverables: {count}
👤 Owner: @{name}
[If dependencies:]
🔗 Dependencies:
- {Dependent milestone names}
[If related sprints:]
🏃 Related Sprints: {sprint numbers}
📄 Added to: milestones.yaml
💡 Track progress with:
"Update milestone {name}"
"Milestone status"
```
### Workflow B: Update Milestone
**Objective**: Update milestone status, progress, or completion.
**Steps**:
1. **Identify target milestone**:
- Extract name/ID from user message
- Or ask: "Which milestone?"
2. **Read milestones.yaml**:
```
Read milestones.yaml
Find milestone entry
```
3. **Determine update type**:
- **Status change**: planned → in_progress → completed → delayed
- **Progress update**: Update notes or deliverables status
- **Date change**: Update target or actual date
- **Completion**: Mark as completed with date
4. **Execute update**:
**For status change**:
```yaml
status: {new_status}
```
**For completion**:
```yaml
status: completed
actual_date: {YYYY-MM-DD}
```
**For progress/notes**:
```yaml
notes: "{Updated notes about progress}"
```
**For deliverable tracking**:
```yaml
deliverables:
- [X] Deliverable 1 (completed)
- [ ] Deliverable 2 (in progress)
```
5. **Check impact**:
- **If milestone completed**: Check dependent milestones (can they start?)
- **If milestone delayed**: Check impacted milestones (cascade delays?)
6. **Update milestones.yaml** using Edit tool
7. **Generate milestone report** (if completed):
```markdown
# Milestone Completion Report: {Milestone Name}
**Completed**: {actual_date}
**Target**: {target_date} ({"On Time" | "Early" | "Delayed by X days"})
## Deliverables
- [X] Deliverable 1
- [X] Deliverable 2
## Contributing Sprints
- Sprint {X}
- Sprint {Y}
## Metrics
- Duration: {calculation}
- Team: {involved team members}
- Key Achievements: {summary}
## Impact
- Enabled milestones: {dependent milestones}
- Next milestone: {next in timeline}
## Lessons Learned
{Notes from milestone execution}
---
Generated: {YYYY-MM-DD} by ProjectMaster
```
8. **Save report** (if generated):
```
Write to: reports/milestone-{id}-completion.md
```
9. **Update governance**:
- Update project README.md
- Add Recent Activity entry
- Link report to milestone in yaml
10. **Report update**:
```
✅ Milestone Updated!
🎯 {Milestone Name}
📊 Status: {old_status} → {new_status}
[If completed:]
🎉 Milestone Completed!
📅 Completed: {actual_date} ({on_time_status})
📦 Deliverables: All {count} delivered
📄 Report: reports/milestone-{id}-completion.md
🔓 Unblocked Milestones:
- {Dependent milestone names}
💡 Next Milestone: {Next in timeline}
[If delayed:]
⚠️ Milestone Delayed
📅 Was: {original_target} → Now: {new_target}
⚠️ Impacted Milestones:
- {Affected milestones}
📄 Updated: milestones.yaml
```
### Workflow C: Status Report
**Objective**: Show project milestone status and timeline.
**Steps**:
1. **Read milestones.yaml**:
```
Read milestones.yaml
Parse all milestones
```
2. **Categorize milestones**:
- Completed
- In Progress
- Planned
- Delayed/At Risk
3. **Calculate metrics**:
- Total milestones
- Completion rate
- On-time rate
- Average delay (if any)
- Next milestone due date
4. **Check dependencies**:
- Any blocked milestones?
- Ready to start milestones?
5. **Generate status report**:
```
📊 Project Milestone Status
**Project**: {Project Name}
**Total Milestones**: {count}
**Completed**: {X}/{total} ({percentage}%)
**On Track**: {Y}
**At Risk**: {Z}
🎉 Completed Milestones:
✅ {Milestone 1} - {actual_date} ({"On Time" | "Early" | "Delayed"})
✅ {Milestone 2} - {actual_date}
...
🔄 In Progress:
- {Milestone Name} - Target: {target_date} ({days_remaining} days)
Status: {On Track | At Risk}
Progress: {notes or deliverables status}
📅 Upcoming:
- {Milestone Name} - Target: {target_date} ({days_until} days)
[If blocked:] ⚠️ Blocked by: {dependency names}
⚠️ Delayed:
- {Milestone Name} - Was: {original} Now: {revised}
Delay: {days} days
Impact: {affected milestones}
📈 Timeline Health: {Overall Assessment}
[If at risk:] ⚠️ {count} milestones at risk of delay
🎯 Next Milestone: {Name} - {target_date} ({days_remaining} days)
📄 Full timeline: milestones.yaml
```
6. **Include visual timeline** (text-based):
```
📅 Timeline:
Q1 2025
├── [✅] Alpha Release (2025-02-15) ← Completed
└── [🔄] Beta Release (2025-03-31) ← In Progress
Q2 2025
├── [📅] Public Launch (2025-04-30)
└── [⏸️] Feature Freeze (2025-05-15) ← Blocked by Beta
Q3 2025
└── [📅] 1.0 Release (2025-07-31)
```
### Workflow D: Manage Dependencies
**Objective**: Define or update milestone dependencies.
**Steps**:
1. **Identify milestones involved**:
- Primary milestone
- Dependent milestone(s)
2. **Read milestones.yaml**
3. **Update dependency**:
**Adding dependency**:
```yaml
milestones:
- id: milestone-2
dependencies: [milestone-1] # milestone-2 depends on milestone-1
```
**Removing dependency**:
```yaml
dependencies: [] # or remove the dependency from list
```
4. **Validate**:
- Check for circular dependencies
- Verify dependency exists
- Check timeline logic (dependent milestone should be after dependency)
5. **Update milestones.yaml**
6. **Report**:
```
✅ Dependency Updated!
🎯 {Milestone Name}
🔗 Now depends on:
- {Dependency 1}
- {Dependency 2}
⚠️ {Milestone Name} cannot start until dependencies complete.
[If circular dependency detected:]
❌ Error: Circular dependency detected!
{Milestone A} → {Milestone B} → {Milestone A}
Please review dependencies.
[If timeline conflict:]
⚠️ Warning: {Milestone Name} target ({date1}) is before
dependency {Dependency Name} target ({date2}).
Consider adjusting dates.
```
## Special Cases
### Case 1: Milestone with multiple dependencies
```yaml
milestones:
- id: public-launch
name: "Public Launch"
dependencies: [beta-complete, security-audit, marketing-ready]
status: planned
```
Report readiness:
```
🎯 Public Launch Readiness:
Dependencies:
✅ Beta Complete (2025-03-15) ← Done
✅ Security Audit (2025-03-20) ← Done
🔄 Marketing Ready (2025-04-01) ← In Progress (90%)
Status: Waiting on 1 dependency
Can start: After 2025-04-01
```
### Case 2: Milestone delayed - cascade impact
If milestone delayed, check cascade:
```
⚠️ Milestone Delay Impact Analysis
{Delayed Milestone} delayed from {old_date} to {new_date}
Directly Impacted:
- {Milestone A} (depends on this) - May delay
- {Milestone B} (depends on this) - May delay
Cascade Impact:
- {Milestone C} (depends on Milestone A) - Potential delay
- {Milestone D} (depends on Milestone B) - Potential delay
Recommendation:
Review timeline for {count} affected milestones.
Consider:
1. Adjusting target dates
2. Removing dependencies if possible
3. Allocating more resources
```
### Case 3: Sprint-to-milestone tracking
Link sprints to milestone progress:
```markdown
## Milestone: Beta Release
**Target**: 2025-03-31
**Status**: In Progress (75%)
### Contributing Sprints:
- Sprint 3: User Authentication ✅ Complete
- Sprint 4: Profile Management ✅ Complete
- Sprint 5: Settings & Preferences 🔄 In Progress (Day 8/14)
- Sprint 6: Final Polish 📅 Planned
### Deliverables Status:
- [X] Core Features (Sprints 3-4)
- [🔄] Additional Features (Sprint 5) - 80% complete
- [ ] Bug Fixes & Polish (Sprint 6)
**Progress**: 75% (3 of 4 sprints complete)
**On Track**: Yes, 2 weeks remaining
```
### Case 4: Milestone-based releases
For release milestones, include version info:
```yaml
milestones:
- id: v1-0-release
name: "Version 1.0 Release"
type: release
version: "1.0.0"
target_date: 2025-07-31
release_notes: "reports/v1.0-release-notes.md"
deliverables:
- All MVP features complete
- Security audit passed
- Documentation published
- Marketing materials ready
```
## Error Handling
### Error: milestones.yaml not found
```
⚠️ No milestones.yaml found.
This project hasn't initialized milestone tracking.
Options:
1. Create milestones.yaml now
2. Initialize project with: "Initialize project"
3. Cancel
What would you like to do?
```
If user chooses 1, create template milestones.yaml.
### Error: Invalid date format
```
⚠️ Invalid date format: "{input}"
Please use YYYY-MM-DD format.
Example: 2025-12-31
Or relative dates:
- "end of Q2" → 2025-06-30
- "next month" → 2025-12-01
```
### Error: Circular dependency
```
❌ Cannot create dependency: Circular reference detected!
Dependency chain:
{Milestone A} → {Milestone B} → {Milestone C} → {Milestone A}
Please remove one dependency to break the cycle.
```
### Error: Milestone not found
```
⚠️ Milestone "{name}" not found in milestones.yaml.
Available milestones:
- {Milestone 1}
- {Milestone 2}
- {Milestone 3}
Did you mean one of these?
```
## Integration with Other Skills
### With manage-sprint Skill
Sprints contribute to milestones:
- Link sprints to milestones in metadata
- Update milestone progress when sprint completes
- Show milestone context in sprint planning
### With track-meeting Skill
Milestone reviews create meetings:
- Milestone completion meeting
- Milestone checkpoint meeting
- Link meeting notes to milestone
### With AkashicRecords
Milestone artifacts:
- Decision records leading to milestone
- Documentation created for milestone
- Knowledge captured during milestone work
## Best Practices
### 1. Define clear deliverables
Each milestone should have specific, measurable deliverables.
### 2. Set realistic dates
Use team velocity and sprint history to set achievable targets.
### 3. Track dependencies explicitly
Don't assume implicit dependencies - document them.
### 4. Review timeline regularly
Monthly or per-sprint review of milestone status keeps project on track.
### 5. Celebrate completions
Acknowledge milestone achievements with team.
### 6. Learn from delays
Document reasons for delays to improve future planning.
### 7. Link to work items
Connect milestones to sprints, stories, and tasks for full traceability.
### 8. Update proactively
Update milestone status before it becomes "delayed".
## Notes
- Milestones provide high-level project visibility for stakeholders.
- Dependency tracking prevents surprises and enables proactive planning.
- Milestone completion reports create valuable project history.
- Integration with sprints connects strategy (milestones) with execution (sprints).
- The milestones.yaml becomes the project timeline source of truth.
---
Well-managed milestones turn long-term goals into achievable checkpoints. This Skill makes milestone tracking systematic and insightful.