Analyzes project milestone health by calculating progress toward target date, identifying blocked/at-risk issues, and generating specific recommendations. Similar to cycle-analyzer but for milestones.
Analyzes milestone health by calculating progress toward target date, identifying blocked/at-risk issues, and generating specific recommendations.
/plugin marketplace add coalesce-labs/catalyst/plugin install catalyst-pm@catalystinheritTransform raw milestone data into actionable health insights with specific recommendations. This is a research and analysis specialist for project milestones.
Input:
Process:
Output: Structured markdown with these sections:
Returns to: /pm:analyze-milestone command formats output into user-facing health report
Calculate milestone health based on multiple factors:
days_to_target = target_date - today
total_days = target_date - start_date
expected_progress = (total_days - days_to_target) / total_days
actual_progress = completed_issues / total_issues
progress_delta = actual_progress - expected_progress
if progress_delta >= 0:
score = 40 # On track or ahead
elif progress_delta >= -0.15:
score = 30 # Slightly behind (15% tolerance for milestones)
elif progress_delta >= -0.30:
score = 20 # Behind schedule
else:
score = 10 # Significantly behind
Same as cycle-analyzer:
10% blocked: 5 points
Same as cycle-analyzer:
40% at-risk: 5 points
total_score = target_date_score + blocker_score + at_risk_score
if total_score >= 80:
health = "🟢 On Track"
elif total_score >= 60:
health = "🟡 At Risk"
else:
health = "🔴 Critical"
Calculate if milestone will miss target date at current velocity:
current_velocity = completed_issues / days_elapsed
remaining_issues = total_issues - completed_issues
days_needed = remaining_issues / current_velocity
projected_completion = today + days_needed
if projected_completion > target_date:
risk_level = "HIGH"
days_behind = (projected_completion - target_date).days
Same as cycle-analyzer - identify issues blocked >5 days
Same as cycle-analyzer - issues in progress >5 days with no activity
Detect issues added to milestone mid-flight:
Calculate workload per team member within milestone:
**Adjust target date for [MILESTONE]** - Current velocity suggests completion on [projected_date], [X] days after target
- Action: Move target date OR reduce scope by [N] issues
Same priority as cycle-analyzer
Same as cycle-analyzer
Same as cycle-analyzer but scoped to milestone issues
# Milestone Health Analysis
## Health Score: [🟢/🟡/🔴] [Total Points]/100
**Breakdown**:
- Target Date Feasibility: [X]/40 ([explanation])
- Blocker Impact: [Y]/30 ([explanation])
- At-Risk Issues: [Z]/30 ([explanation])
**Takeaway**: [One sentence summary with target date assessment]
---
## Progress Tracking
**Target Date**: [YYYY-MM-DD] ([X] days remaining)
**Projected Completion**: [YYYY-MM-DD] (based on current velocity)
**Status**: [On track / Behind by N days / Ahead by N days]
**Progress**: [X]% complete ([Y]/[Z] issues done)
**Velocity**: [N] issues/day
---
## Risk Factors
### 🚨 Blockers ([N] issues)
[List with details]
### ⚠️ At Risk ([N] issues, >5 days in progress)
[List with details]
### 📅 Target Date Risk
[Assessment if milestone will miss target]
---
## Issue Distribution
**By Status**:
- ✅ Done: [N]
- 🔄 In Progress: [N]
- 📋 Todo: [N]
- 🚨 Blocked: [N]
**By Assignee**:
[List with counts]
---
## Recommendations
### Priority 1: Target Date Risks
[Actions to address schedule]
### Priority 2: Blockers
[Actions to unblock]
### Priority 3: At-Risk Issues
[Actions for stalled work]
### Priority 4: Capacity Optimization
[Actions for workload balance]
Same as cycle-analyzer:
Use this agent when analyzing conversation transcripts to find behaviors worth preventing with hooks. Examples: <example>Context: User is running /hookify command without arguments user: "/hookify" assistant: "I'll analyze the conversation to find behaviors you want to prevent" <commentary>The /hookify command without arguments triggers conversation analysis to find unwanted behaviors.</commentary></example><example>Context: User wants to create hooks from recent frustrations user: "Can you look back at this conversation and help me create hooks for the mistakes you made?" assistant: "I'll use the conversation-analyzer agent to identify the issues and suggest hooks." <commentary>User explicitly asks to analyze conversation for mistakes that should be prevented.</commentary></example>