agileflow 2.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +61 -0
- package/src/core/agents/accessibility.md +445 -0
- package/src/core/agents/adr-writer.md +215 -0
- package/src/core/agents/analytics.md +523 -0
- package/src/core/agents/api.md +484 -0
- package/src/core/agents/ci.md +452 -0
- package/src/core/agents/compliance.md +401 -0
- package/src/core/agents/context7.md +164 -0
- package/src/core/agents/database.md +377 -0
- package/src/core/agents/datamigration.md +565 -0
- package/src/core/agents/design.md +400 -0
- package/src/core/agents/devops.md +576 -0
- package/src/core/agents/documentation.md +229 -0
- package/src/core/agents/epic-planner.md +277 -0
- package/src/core/agents/integrations.md +459 -0
- package/src/core/agents/mentor.md +375 -0
- package/src/core/agents/mobile.md +391 -0
- package/src/core/agents/monitoring.md +430 -0
- package/src/core/agents/performance.md +390 -0
- package/src/core/agents/product.md +311 -0
- package/src/core/agents/qa.md +647 -0
- package/src/core/agents/readme-updater.md +325 -0
- package/src/core/agents/refactor.md +432 -0
- package/src/core/agents/research.md +250 -0
- package/src/core/agents/security.md +379 -0
- package/src/core/agents/testing.md +397 -0
- package/src/core/agents/ui.md +999 -0
- package/src/core/commands/adr.md +32 -0
- package/src/core/commands/agent.md +23 -0
- package/src/core/commands/assign.md +34 -0
- package/src/core/commands/auto.md +364 -0
- package/src/core/commands/babysit.md +1357 -0
- package/src/core/commands/baseline.md +520 -0
- package/src/core/commands/blockers.md +343 -0
- package/src/core/commands/board.md +241 -0
- package/src/core/commands/changelog.md +321 -0
- package/src/core/commands/ci.md +36 -0
- package/src/core/commands/compress.md +270 -0
- package/src/core/commands/context.md +222 -0
- package/src/core/commands/debt.md +268 -0
- package/src/core/commands/deploy.md +544 -0
- package/src/core/commands/deps.md +560 -0
- package/src/core/commands/diagnose.md +227 -0
- package/src/core/commands/docs.md +166 -0
- package/src/core/commands/epic.md +40 -0
- package/src/core/commands/feedback.md +307 -0
- package/src/core/commands/handoff.md +33 -0
- package/src/core/commands/help.md +90 -0
- package/src/core/commands/impact.md +204 -0
- package/src/core/commands/metrics.md +530 -0
- package/src/core/commands/packages.md +369 -0
- package/src/core/commands/pr.md +35 -0
- package/src/core/commands/readme-sync.md +168 -0
- package/src/core/commands/research.md +30 -0
- package/src/core/commands/resume.md +475 -0
- package/src/core/commands/retro.md +538 -0
- package/src/core/commands/review.md +364 -0
- package/src/core/commands/session-init.md +532 -0
- package/src/core/commands/setup.md +708 -0
- package/src/core/commands/sprint.md +490 -0
- package/src/core/commands/status.md +38 -0
- package/src/core/commands/story-validate.md +242 -0
- package/src/core/commands/story.md +38 -0
- package/src/core/commands/template.md +458 -0
- package/src/core/commands/tests.md +359 -0
- package/src/core/commands/update.md +407 -0
- package/src/core/commands/velocity.md +369 -0
- package/src/core/commands/verify.md +283 -0
- package/src/core/skills/acceptance-criteria-generator/SKILL.md +46 -0
- package/src/core/skills/adr-template/SKILL.md +62 -0
- package/src/core/skills/agileflow-acceptance-criteria/SKILL.md +156 -0
- package/src/core/skills/agileflow-adr/SKILL.md +147 -0
- package/src/core/skills/agileflow-adr/examples/database-choice-example.md +122 -0
- package/src/core/skills/agileflow-adr/templates/adr-template.md +69 -0
- package/src/core/skills/agileflow-commit-messages/SKILL.md +130 -0
- package/src/core/skills/agileflow-commit-messages/reference/bad-examples.md +168 -0
- package/src/core/skills/agileflow-commit-messages/reference/good-examples.md +120 -0
- package/src/core/skills/agileflow-commit-messages/scripts/check-attribution.sh +15 -0
- package/src/core/skills/agileflow-epic-planner/SKILL.md +184 -0
- package/src/core/skills/agileflow-retro-facilitator/SKILL.md +281 -0
- package/src/core/skills/agileflow-sprint-planner/SKILL.md +212 -0
- package/src/core/skills/agileflow-story-writer/SKILL.md +163 -0
- package/src/core/skills/agileflow-story-writer/examples/good-story-example.md +63 -0
- package/src/core/skills/agileflow-story-writer/templates/story-template.md +44 -0
- package/src/core/skills/agileflow-tech-debt/SKILL.md +215 -0
- package/src/core/skills/api-documentation-generator/SKILL.md +65 -0
- package/src/core/skills/changelog-entry/SKILL.md +55 -0
- package/src/core/skills/commit-message-formatter/SKILL.md +50 -0
- package/src/core/skills/deployment-guide-generator/SKILL.md +84 -0
- package/src/core/skills/diagram-generator/SKILL.md +65 -0
- package/src/core/skills/error-handler-template/SKILL.md +78 -0
- package/src/core/skills/migration-checklist/SKILL.md +82 -0
- package/src/core/skills/pr-description/SKILL.md +65 -0
- package/src/core/skills/sql-schema-generator/SKILL.md +69 -0
- package/src/core/skills/story-skeleton/SKILL.md +34 -0
- package/src/core/skills/test-case-generator/SKILL.md +63 -0
- package/src/core/skills/type-definitions/SKILL.md +65 -0
- package/src/core/skills/validation-schema-generator/SKILL.md +64 -0
- package/src/core/templates/README-template.md +16 -0
- package/src/core/templates/adr-template.md +28 -0
- package/src/core/templates/agent-profile-template.md +51 -0
- package/src/core/templates/agileflow-metadata.json +41 -0
- package/src/core/templates/ci-workflow.yml +74 -0
- package/src/core/templates/claude-settings.advanced.example.json +71 -0
- package/src/core/templates/claude-settings.example.json +26 -0
- package/src/core/templates/comms-note-template.md +24 -0
- package/src/core/templates/environment.json +18 -0
- package/src/core/templates/epic-template.md +27 -0
- package/src/core/templates/init.sh +76 -0
- package/src/core/templates/research-template.md +44 -0
- package/src/core/templates/resume-session.sh +121 -0
- package/src/core/templates/session-state.json +20 -0
- package/src/core/templates/skill-template.md +75 -0
- package/src/core/templates/story-template.md +88 -0
- package/src/core/templates/validate-tokens.sh +88 -0
- package/src/core/templates/worktree-create.sh +111 -0
- package/src/core/templates/worktrees-guide.md +235 -0
- package/tools/agileflow-npx.js +40 -0
- package/tools/cli/agileflow-cli.js +70 -0
- package/tools/cli/commands/doctor.js +243 -0
- package/tools/cli/commands/install.js +82 -0
- package/tools/cli/commands/status.js +121 -0
- package/tools/cli/commands/uninstall.js +110 -0
- package/tools/cli/commands/update.js +99 -0
- package/tools/cli/installers/core/installer.js +296 -0
- package/tools/cli/installers/ide/_base-ide.js +133 -0
- package/tools/cli/installers/ide/claude-code.js +174 -0
- package/tools/cli/installers/ide/cursor.js +189 -0
- package/tools/cli/installers/ide/manager.js +197 -0
- package/tools/cli/installers/ide/windsurf.js +192 -0
- package/tools/cli/lib/ui.js +203 -0
- package/tools/cli/lib/version-checker.js +95 -0
- package/tools/postinstall.js +141 -0
|
@@ -0,0 +1,538 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generate retrospective with Start/Stop/Continue format
|
|
3
|
+
allowed-tools: Bash, Read, Edit, Write, Glob, Grep
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# retro
|
|
7
|
+
|
|
8
|
+
Automated retrospective generator that analyzes patterns and surfaces insights from AgileFlow data.
|
|
9
|
+
|
|
10
|
+
## Prompt
|
|
11
|
+
|
|
12
|
+
ROLE: Retrospective Facilitator
|
|
13
|
+
|
|
14
|
+
TODO LIST TRACKING
|
|
15
|
+
**CRITICAL**: Immediately create a todo list using TodoWrite tool to track retrospective generation:
|
|
16
|
+
```
|
|
17
|
+
1. Load data sources (bus/log.jsonl, status.json, story data, velocity data)
|
|
18
|
+
2. Analyze what went well (velocity, cycle time, epic completion, estimation)
|
|
19
|
+
3. Analyze what needs improvement (velocity drops, long cycles, high WIP, blockers)
|
|
20
|
+
4. Detect patterns (recurring blockers, day-of-week patterns, handoffs, story sizes)
|
|
21
|
+
5. Generate action items (prioritized by impact)
|
|
22
|
+
6. Create celebration moments section
|
|
23
|
+
7. Generate comprehensive retrospective report
|
|
24
|
+
8. Save to docs/08-project/retrospectives/
|
|
25
|
+
9. Update retrospectives index
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Mark each step complete as you finish it. This ensures comprehensive retrospective analysis.
|
|
29
|
+
|
|
30
|
+
OBJECTIVE
|
|
31
|
+
Automatically generate retrospective insights by analyzing bus/log.jsonl, status.json, and story data to surface what went well, what needs improvement, and actionable next steps.
|
|
32
|
+
|
|
33
|
+
INPUTS (optional)
|
|
34
|
+
- TIMEFRAME=sprint|2weeks|30d|90d (default: 2weeks)
|
|
35
|
+
- EPIC=<EP_ID> (retrospective for specific epic)
|
|
36
|
+
- FORMAT=ascii|markdown|html (default: ascii)
|
|
37
|
+
- SAVE=true|false (default: true - save to docs/08-project/retrospectives/)
|
|
38
|
+
|
|
39
|
+
DATA SOURCES
|
|
40
|
+
|
|
41
|
+
1. **docs/09-agents/bus/log.jsonl** - Event patterns
|
|
42
|
+
- Status transitions and their frequency
|
|
43
|
+
- Blocking events and duration
|
|
44
|
+
- Handoff patterns
|
|
45
|
+
- Error/issue mentions
|
|
46
|
+
|
|
47
|
+
2. **docs/09-agents/status.json** - Current state snapshot
|
|
48
|
+
- Stories in each status
|
|
49
|
+
- WIP levels
|
|
50
|
+
- Owner distribution
|
|
51
|
+
|
|
52
|
+
3. **docs/06-stories/**/US-*.md** - Story data
|
|
53
|
+
- Completed vs planned
|
|
54
|
+
- Estimates vs actuals
|
|
55
|
+
- AC completion rate
|
|
56
|
+
|
|
57
|
+
4. **Velocity data** - From bus analysis
|
|
58
|
+
- Points completed
|
|
59
|
+
- Throughput trends
|
|
60
|
+
|
|
61
|
+
RETROSPECTIVE STRUCTURE
|
|
62
|
+
|
|
63
|
+
### Format: Start, Stop, Continue
|
|
64
|
+
|
|
65
|
+
**START** - Things we should start doing
|
|
66
|
+
**STOP** - Things we should stop doing
|
|
67
|
+
**CONTINUE** - Things working well to keep doing
|
|
68
|
+
|
|
69
|
+
ANALYSIS PATTERNS
|
|
70
|
+
|
|
71
|
+
### 1. What Went Well (CONTINUE)
|
|
72
|
+
|
|
73
|
+
**Pattern: High velocity**
|
|
74
|
+
```bash
|
|
75
|
+
current_velocity=$(calculate_velocity 2weeks)
|
|
76
|
+
previous_velocity=$(calculate_velocity 2weeks --offset=2weeks)
|
|
77
|
+
|
|
78
|
+
if [ $current_velocity -gt $previous_velocity ]; then
|
|
79
|
+
echo "✅ Velocity increased from $previous_velocity to $current_velocity stories/week (+X%)"
|
|
80
|
+
echo " Continue: Current workflow and team collaboration"
|
|
81
|
+
fi
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Pattern: Fast cycle time**
|
|
85
|
+
```bash
|
|
86
|
+
fast_stories=$(find_stories_with_cycle_time_under 2days)
|
|
87
|
+
if [ ${#fast_stories[@]} -gt 5 ]; then
|
|
88
|
+
echo "✅ ${#fast_stories[@]} stories completed in <2 days"
|
|
89
|
+
echo " Continue: Small, well-defined stories enable fast delivery"
|
|
90
|
+
fi
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Pattern: No blocked stories**
|
|
94
|
+
```bash
|
|
95
|
+
blocked_count=$(jq -r '.stories | to_entries[] | select(.value.status=="blocked") | .key' status.json | wc -l)
|
|
96
|
+
if [ $blocked_count -eq 0 ]; then
|
|
97
|
+
echo "✅ Zero blocked stories this period"
|
|
98
|
+
echo " Continue: Proactive dependency management"
|
|
99
|
+
fi
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Pattern: Epic completion**
|
|
103
|
+
```bash
|
|
104
|
+
completed_epics=$(grep -l "completed:" docs/05-epics/*.md | wc -l)
|
|
105
|
+
if [ $completed_epics -gt 0 ]; then
|
|
106
|
+
echo "✅ Completed $completed_epics epic(s): $(list_epic_names)"
|
|
107
|
+
echo " Continue: Epic breakdown and execution approach"
|
|
108
|
+
fi
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Pattern: Good estimation**
|
|
112
|
+
```bash
|
|
113
|
+
avg_variance=$(calculate_estimation_variance)
|
|
114
|
+
if [ $avg_variance -lt 0.2 ]; then # <20% variance
|
|
115
|
+
echo "✅ Estimation accuracy within 20% (avg variance: ${avg_variance}%)"
|
|
116
|
+
echo " Continue: Current estimation practices"
|
|
117
|
+
fi
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Pattern: Balanced agent workload**
|
|
121
|
+
```bash
|
|
122
|
+
utilization_variance=$(calculate_agent_utilization_variance)
|
|
123
|
+
if [ $utilization_variance -lt 0.15 ]; then
|
|
124
|
+
echo "✅ Balanced workload across agents (variance: ${utilization_variance})"
|
|
125
|
+
echo " Continue: Current assignment strategy"
|
|
126
|
+
fi
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 2. What Needs Improvement (START/STOP)
|
|
130
|
+
|
|
131
|
+
**Pattern: Velocity drop**
|
|
132
|
+
```bash
|
|
133
|
+
if [ $current_velocity -lt $((previous_velocity - 2)) ]; then
|
|
134
|
+
echo "⚠️ Velocity dropped from $previous_velocity to $current_velocity (-X%)"
|
|
135
|
+
echo " START: Daily standup to identify blockers earlier"
|
|
136
|
+
echo " STOP: Taking on too many large (>3d) stories at once"
|
|
137
|
+
fi
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Pattern: Long cycle times**
|
|
141
|
+
```bash
|
|
142
|
+
slow_stories=$(find_stories_with_cycle_time_over 5days)
|
|
143
|
+
if [ ${#slow_stories[@]} -gt 3 ]; then
|
|
144
|
+
echo "⚠️ ${#slow_stories[@]} stories took >5 days to complete"
|
|
145
|
+
echo " START: Breaking down stories into smaller chunks"
|
|
146
|
+
echo " STOP: Starting stories without clear AC"
|
|
147
|
+
common_themes=$(analyze_slow_story_themes)
|
|
148
|
+
echo " Pattern: $common_themes"
|
|
149
|
+
fi
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Pattern: High WIP**
|
|
153
|
+
```bash
|
|
154
|
+
avg_wip=$(calculate_average_wip 2weeks)
|
|
155
|
+
wip_limit=6
|
|
156
|
+
if [ $avg_wip -gt $wip_limit ]; then
|
|
157
|
+
echo "⚠️ Average WIP ($avg_wip) exceeded limit ($wip_limit)"
|
|
158
|
+
echo " START: Finish stories before starting new ones"
|
|
159
|
+
echo " STOP: Context switching between multiple stories"
|
|
160
|
+
fi
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Pattern: Frequent blocking**
|
|
164
|
+
```bash
|
|
165
|
+
blocked_count=$(jq -r 'select(.type=="status-change" and .new_status=="blocked")' bus/log.jsonl | wc -l)
|
|
166
|
+
if [ $blocked_count -gt 5 ]; then
|
|
167
|
+
echo "⚠️ $blocked_count stories became blocked this period"
|
|
168
|
+
blocking_reasons=$(analyze_blocking_reasons)
|
|
169
|
+
echo " Common reasons: $blocking_reasons"
|
|
170
|
+
echo " START: Pre-sprint dependency check"
|
|
171
|
+
echo " STOP: Starting stories with unresolved dependencies"
|
|
172
|
+
fi
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Pattern: Long review times**
|
|
176
|
+
```bash
|
|
177
|
+
avg_review_time=$(calculate_average_review_time)
|
|
178
|
+
if [ $avg_review_time -gt 2 ]; then
|
|
179
|
+
echo "⚠️ Average review time: $avg_review_time days"
|
|
180
|
+
echo " START: Dedicated review time blocks"
|
|
181
|
+
echo " STOP: Large PRs (aim for <400 lines changed)"
|
|
182
|
+
fi
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**Pattern: Poor estimation**
|
|
186
|
+
```bash
|
|
187
|
+
avg_variance=$(calculate_estimation_variance)
|
|
188
|
+
if [ $avg_variance -gt 0.5 ]; then # >50% variance
|
|
189
|
+
echo "⚠️ Estimates off by ${avg_variance}% on average"
|
|
190
|
+
underestimated=$(count_underestimated_stories)
|
|
191
|
+
echo " $underestimated stories underestimated"
|
|
192
|
+
echo " START: Planning poker for complex stories"
|
|
193
|
+
echo " STOP: Estimating without team discussion"
|
|
194
|
+
fi
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Pattern: Agent bottleneck**
|
|
198
|
+
```bash
|
|
199
|
+
bottleneck_agent=$(find_most_overloaded_agent)
|
|
200
|
+
if [ -n "$bottleneck_agent" ]; then
|
|
201
|
+
count=$(get_agent_active_stories $bottleneck_agent)
|
|
202
|
+
echo "⚠️ $bottleneck_agent has $count active stories (others have 1-2)"
|
|
203
|
+
echo " START: Redistributing work more evenly"
|
|
204
|
+
echo " STOP: Assigning all $type stories to same agent"
|
|
205
|
+
fi
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Pattern: Stale stories**
|
|
209
|
+
```bash
|
|
210
|
+
stale_stories=$(find_stories_in_progress_over 10days)
|
|
211
|
+
if [ ${#stale_stories[@]} -gt 0 ]; then
|
|
212
|
+
echo "⚠️ ${#stale_stories[@]} stories in-progress >10 days: $(echo ${stale_stories[@]})"
|
|
213
|
+
echo " START: Weekly check-ins on long-running stories"
|
|
214
|
+
echo " STOP: Keeping stories in-progress without progress"
|
|
215
|
+
echo " Action: Consider closing or re-scoping"
|
|
216
|
+
fi
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### 3. Action Items
|
|
220
|
+
|
|
221
|
+
**Derive from patterns**
|
|
222
|
+
```bash
|
|
223
|
+
# High priority: Fix immediate problems
|
|
224
|
+
if [ $blocked_count -gt 2 ]; then
|
|
225
|
+
echo "🎯 HIGH: Unblock $blocked_count stories ASAP"
|
|
226
|
+
for story in blocked_stories; do
|
|
227
|
+
echo " - $story: $(get_blocking_reason $story)"
|
|
228
|
+
done
|
|
229
|
+
fi
|
|
230
|
+
|
|
231
|
+
# Medium priority: Process improvements
|
|
232
|
+
if [ $avg_review_time -gt 2 ]; then
|
|
233
|
+
echo "🎯 MEDIUM: Reduce review time from $avg_review_time to <1 day"
|
|
234
|
+
echo " - Set up daily 30min review slot"
|
|
235
|
+
echo " - Use /AgileFlow:ai-code-review before requesting human review"
|
|
236
|
+
fi
|
|
237
|
+
|
|
238
|
+
# Low priority: Long-term improvements
|
|
239
|
+
if [ $avg_variance -gt 0.3 ]; then
|
|
240
|
+
echo "🎯 LOW: Improve estimation accuracy"
|
|
241
|
+
echo " - Track actuals vs estimates in docs/08-project/estimation-log.md"
|
|
242
|
+
echo " - Review monthly to calibrate"
|
|
243
|
+
fi
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
RETROSPECTIVE OUTPUT
|
|
247
|
+
|
|
248
|
+
### ASCII Format (Default)
|
|
249
|
+
|
|
250
|
+
```markdown
|
|
251
|
+
╔════════════════════════════════════════════════════════════════╗
|
|
252
|
+
║ AGILEFLOW RETROSPECTIVE ║
|
|
253
|
+
║ Sprint: Oct 17 - Oct 31 (2 weeks) ║
|
|
254
|
+
╠════════════════════════════════════════════════════════════════╣
|
|
255
|
+
║ ║
|
|
256
|
+
║ 📊 SPRINT SUMMARY ║
|
|
257
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
258
|
+
║ ║
|
|
259
|
+
║ Stories Completed: 17 (85% of planned 20) ║
|
|
260
|
+
║ Velocity: 8.5 stories/week (↗ +12%) ║
|
|
261
|
+
║ Cycle Time: 3.2 days avg (↓ -8%) ║
|
|
262
|
+
║ Stories Blocked: 2 (during sprint) ║
|
|
263
|
+
║ Epics Completed: 1 (EP-0010: Authentication) ║
|
|
264
|
+
║ ║
|
|
265
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
266
|
+
║ ║
|
|
267
|
+
║ ✅ WHAT WENT WELL (Continue) ║
|
|
268
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
269
|
+
║ ║
|
|
270
|
+
║ 1. Velocity increased +12% vs previous sprint ║
|
|
271
|
+
║ 👉 Continue: Current workflow and team collaboration ║
|
|
272
|
+
║ ║
|
|
273
|
+
║ 2. Completed EP-0010 (Authentication) on schedule ║
|
|
274
|
+
║ 👉 Continue: Epic breakdown approach (13 small stories) ║
|
|
275
|
+
║ ║
|
|
276
|
+
║ 3. 12 stories completed in <2 days ║
|
|
277
|
+
║ 👉 Continue: Small, well-defined stories ║
|
|
278
|
+
║ ║
|
|
279
|
+
║ 4. Estimation accuracy improved to 18% variance ║
|
|
280
|
+
║ 👉 Continue: Team estimation sessions ║
|
|
281
|
+
║ ║
|
|
282
|
+
║ 5. Balanced workload (all agents 30-35% utilization) ║
|
|
283
|
+
║ 👉 Continue: Current assignment strategy ║
|
|
284
|
+
║ ║
|
|
285
|
+
║ 6. Zero merge conflicts this sprint ║
|
|
286
|
+
║ 👉 Continue: Frequent rebasing and small PRs ║
|
|
287
|
+
║ ║
|
|
288
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
289
|
+
║ ║
|
|
290
|
+
║ ⚠️ WHAT NEEDS IMPROVEMENT ║
|
|
291
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
292
|
+
║ ║
|
|
293
|
+
║ 1. Average review time: 2.5 days (up from 1.8) ║
|
|
294
|
+
║ 🛑 STOP: Letting PRs sit unreviewed ║
|
|
295
|
+
║ ▶️ START: Daily 30min review slot ║
|
|
296
|
+
║ ║
|
|
297
|
+
║ 2. 2 stories blocked >3 days (US-0045, US-0048) ║
|
|
298
|
+
║ 🛑 STOP: Starting stories with external dependencies ║
|
|
299
|
+
║ ▶️ START: Pre-sprint dependency verification ║
|
|
300
|
+
║ ║
|
|
301
|
+
║ 3. US-0042 took 8 days (estimated 2d, +300%) ║
|
|
302
|
+
║ 🛑 STOP: Estimating without understanding complexity ║
|
|
303
|
+
║ ▶️ START: Spike stories for unknowns ║
|
|
304
|
+
║ ║
|
|
305
|
+
║ 4. AG-API at 50% utilization (others at 30%) ║
|
|
306
|
+
║ 🛑 STOP: Assigning all API work to one agent ║
|
|
307
|
+
║ ▶️ START: Cross-training agents on API development ║
|
|
308
|
+
║ ║
|
|
309
|
+
║ 5. 3 stories rolled over from previous sprint ║
|
|
310
|
+
║ 🛑 STOP: Over-committing in sprint planning ║
|
|
311
|
+
║ ▶️ START: Use velocity data for realistic planning ║
|
|
312
|
+
║ ║
|
|
313
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
314
|
+
║ ║
|
|
315
|
+
║ 🎯 ACTION ITEMS ║
|
|
316
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
317
|
+
║ ║
|
|
318
|
+
║ HIGH Priority (This Week): ║
|
|
319
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
320
|
+
║ [ ] Unblock US-0045 (escalate for API keys) ║
|
|
321
|
+
║ [ ] Unblock US-0048 (depends on US-0045) ║
|
|
322
|
+
║ [ ] Set up daily 11am review time block (30min) ║
|
|
323
|
+
║ ║
|
|
324
|
+
║ MEDIUM Priority (Next Sprint): ║
|
|
325
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
326
|
+
║ [ ] Cross-train AG-UI and AG-CI on API development ║
|
|
327
|
+
║ [ ] Add dependency check to sprint planning checklist ║
|
|
328
|
+
║ [ ] Create spike story template for unknowns ║
|
|
329
|
+
║ ║
|
|
330
|
+
║ LOW Priority (This Month): ║
|
|
331
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
332
|
+
║ [ ] Review and update estimation guide ║
|
|
333
|
+
║ [ ] Track estimation accuracy monthly ║
|
|
334
|
+
║ [ ] Document blocking patterns for future avoidance ║
|
|
335
|
+
║ ║
|
|
336
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
337
|
+
║ ║
|
|
338
|
+
║ 📈 TEAM CONTRIBUTIONS ║
|
|
339
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
340
|
+
║ ║
|
|
341
|
+
║ AG-API: 7 stories (41%) ████████████████████░░ ║
|
|
342
|
+
║ AG-UI: 6 stories (35%) ██████████████████░░ ║
|
|
343
|
+
║ AG-CI: 4 stories (24%) ████████████░░ ║
|
|
344
|
+
║ AG-DEVOPS: 0 stories (0%) ░░ ║
|
|
345
|
+
║ ║
|
|
346
|
+
║ Note: Consider assigning automation work to AG-DEVOPS ║
|
|
347
|
+
║ ║
|
|
348
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
349
|
+
║ ║
|
|
350
|
+
║ 🔮 PREDICTIONS FOR NEXT SPRINT ║
|
|
351
|
+
║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
|
|
352
|
+
║ ║
|
|
353
|
+
║ Based on current velocity and epic progress: ║
|
|
354
|
+
║ ║
|
|
355
|
+
║ EP-0011 (Payment): 40% → 75% (6 stories) ║
|
|
356
|
+
║ EP-0012 (Dashboard): 10% → 35% (4 stories) ║
|
|
357
|
+
║ ║
|
|
358
|
+
║ Recommended sprint capacity: 18 stories ║
|
|
359
|
+
║ (Based on 8.5 avg velocity * 2 weeks + 5% buffer) ║
|
|
360
|
+
║ ║
|
|
361
|
+
║ Risks: ║
|
|
362
|
+
║ - Payment epic blocked on external API access ║
|
|
363
|
+
║ - Dashboard work may need design input ║
|
|
364
|
+
║ ║
|
|
365
|
+
╚════════════════════════════════════════════════════════════════╝
|
|
366
|
+
|
|
367
|
+
Saved to: docs/08-project/retrospectives/retro-20251031.md
|
|
368
|
+
|
|
369
|
+
Next Steps:
|
|
370
|
+
- Review action items in next team meeting
|
|
371
|
+
- Run /AgileFlow:metrics to track improvements
|
|
372
|
+
- Run /AgileFlow:velocity to update sprint planning
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
INSIGHTS ENGINE
|
|
376
|
+
|
|
377
|
+
### Pattern Detection
|
|
378
|
+
|
|
379
|
+
**1. Recurring Blockers**
|
|
380
|
+
```bash
|
|
381
|
+
# Find stories blocked multiple times
|
|
382
|
+
recurring_blockers=$(jq -r 'select(.type=="status-change" and .new_status=="blocked") | .story' bus/log.jsonl | sort | uniq -c | awk '$1>1 {print $2}')
|
|
383
|
+
|
|
384
|
+
if [ -n "$recurring_blockers" ]; then
|
|
385
|
+
echo "🔍 Pattern: Recurring blockers detected"
|
|
386
|
+
for story in $recurring_blockers; do
|
|
387
|
+
count=$(count_times_blocked $story)
|
|
388
|
+
reasons=$(get_all_blocking_reasons $story)
|
|
389
|
+
echo " $story: Blocked $count times ($reasons)"
|
|
390
|
+
done
|
|
391
|
+
echo " Action: Root cause analysis needed"
|
|
392
|
+
fi
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
**2. Day-of-Week Patterns**
|
|
396
|
+
```bash
|
|
397
|
+
# Stories completed by day of week
|
|
398
|
+
for day in Mon Tue Wed Thu Fri; do
|
|
399
|
+
count=$(jq -r 'select(.status=="done" and .ts | strftime("%a")=="'$day'")' bus/log.jsonl | wc -l)
|
|
400
|
+
echo "$day: $count completions"
|
|
401
|
+
done
|
|
402
|
+
|
|
403
|
+
# Identify productivity patterns
|
|
404
|
+
if [ $friday_completions -lt $((avg_completions / 2)) ]; then
|
|
405
|
+
echo "🔍 Pattern: Low Friday completions"
|
|
406
|
+
echo " Insight: Consider shorter Friday sprints or retrospective time"
|
|
407
|
+
fi
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
**3. Handoff Patterns**
|
|
411
|
+
```bash
|
|
412
|
+
handoff_count=$(jq -r 'select(.type=="handoff")' bus/log.jsonl | wc -l)
|
|
413
|
+
if [ $handoff_count -gt 5 ]; then
|
|
414
|
+
echo "🔍 Pattern: Frequent handoffs ($handoff_count this sprint)"
|
|
415
|
+
handoff_stories=$(get_handoff_stories)
|
|
416
|
+
echo " Stories: $handoff_stories"
|
|
417
|
+
echo " Insight: May indicate knowledge silos or unclear ownership"
|
|
418
|
+
echo " Action: Pair programming or better initial assignment"
|
|
419
|
+
fi
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
**4. Story Size Patterns**
|
|
423
|
+
```bash
|
|
424
|
+
# Compare cycle time by estimate
|
|
425
|
+
for size in 0.5d 1d 2d 3d 5d; do
|
|
426
|
+
avg_cycle=$(get_avg_cycle_time_for_size $size)
|
|
427
|
+
echo "$size stories: $avg_cycle days actual cycle time"
|
|
428
|
+
done
|
|
429
|
+
|
|
430
|
+
# Find sweet spot
|
|
431
|
+
if [ $size_1d_cycle -lt $size_2d_cycle ] && [ $size_2d_cycle -lt $size_3d_cycle ]; then
|
|
432
|
+
echo "🔍 Pattern: Story size correlates with cycle time (as expected)"
|
|
433
|
+
echo " Insight: 1d stories are most efficient"
|
|
434
|
+
echo " Action: Aim for more 1d stories in planning"
|
|
435
|
+
else
|
|
436
|
+
echo "🔍 Pattern: Large stories not taking proportionally longer"
|
|
437
|
+
echo " Insight: May indicate poor estimation or chunking issues"
|
|
438
|
+
fi
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
CELEBRATION MOMENTS
|
|
442
|
+
|
|
443
|
+
```bash
|
|
444
|
+
# Epic completion
|
|
445
|
+
if [ $completed_epics -gt 0 ]; then
|
|
446
|
+
echo "🎉 CELEBRATE: Completed $completed_epics epic(s)!"
|
|
447
|
+
for epic in completed_epic_ids; do
|
|
448
|
+
title=$(get_epic_title $epic)
|
|
449
|
+
duration=$(calculate_epic_duration $epic)
|
|
450
|
+
echo " $epic: $title (completed in $duration)"
|
|
451
|
+
done
|
|
452
|
+
fi
|
|
453
|
+
|
|
454
|
+
# Velocity milestone
|
|
455
|
+
if [ $current_velocity -gt 10 ]; then
|
|
456
|
+
echo "🎉 CELEBRATE: Hit double-digit velocity (${current_velocity} stories/week)!"
|
|
457
|
+
fi
|
|
458
|
+
|
|
459
|
+
# Zero bugs/issues
|
|
460
|
+
bug_count=$(count_stories_with_type "bug")
|
|
461
|
+
if [ $bug_count -eq 0 ]; then
|
|
462
|
+
echo "🎉 CELEBRATE: Zero bugs reported this sprint!"
|
|
463
|
+
fi
|
|
464
|
+
|
|
465
|
+
# Fast delivery
|
|
466
|
+
fastest_story=$(find_story_with_fastest_cycle_time)
|
|
467
|
+
if [ $fastest_cycle_time -lt 0.5 ]; then
|
|
468
|
+
echo "🎉 CELEBRATE: $fastest_story delivered in <4 hours!"
|
|
469
|
+
fi
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
EXPORT & STORAGE
|
|
473
|
+
|
|
474
|
+
### Save to File
|
|
475
|
+
```bash
|
|
476
|
+
retro_file="docs/08-project/retrospectives/retro-$(date +%Y%m%d).md"
|
|
477
|
+
mkdir -p docs/08-project/retrospectives
|
|
478
|
+
echo "$retro_content" > $retro_file
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
### Update Retrospectives Index
|
|
482
|
+
```bash
|
|
483
|
+
# docs/08-project/retrospectives/README.md
|
|
484
|
+
| Date | Sprint | Velocity | Completed | Top Action Item |
|
|
485
|
+
|------|--------|----------|-----------|-----------------|
|
|
486
|
+
| 2025-10-31 | Oct 17-31 | 8.5 | 17/20 (85%) | Reduce review time |
|
|
487
|
+
| 2025-10-17 | Oct 3-17 | 7.6 | 15/18 (83%) | Improve estimation |
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
INTEGRATION WITH OTHER COMMANDS
|
|
491
|
+
|
|
492
|
+
- After `/AgileFlow:metrics`: Run `/AgileFlow:retro` to contextualize the data
|
|
493
|
+
- Before planning: Run `/AgileFlow:retro` to apply learnings
|
|
494
|
+
- In `/AgileFlow:babysit`: Suggest `/AgileFlow:retro` at sprint boundaries
|
|
495
|
+
- With `/AgileFlow:velocity`: Use velocity trends in retro insights
|
|
496
|
+
|
|
497
|
+
USAGE EXAMPLES
|
|
498
|
+
|
|
499
|
+
### Standard 2-week retro
|
|
500
|
+
```bash
|
|
501
|
+
/AgileFlow:retro
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
### Last 30 days
|
|
505
|
+
```bash
|
|
506
|
+
/AgileFlow:retro TIMEFRAME=30d
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
### Epic-specific retro
|
|
510
|
+
```bash
|
|
511
|
+
/AgileFlow:retro EPIC=EP-0010
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
### Generate without saving
|
|
515
|
+
```bash
|
|
516
|
+
/AgileFlow:retro SAVE=false
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
### Export as markdown for Notion
|
|
520
|
+
```bash
|
|
521
|
+
/AgileFlow:retro FORMAT=markdown > retro.md
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
RULES
|
|
525
|
+
- Focus on patterns, not individuals (team-level insights)
|
|
526
|
+
- Balance positive (continue) with improvements (start/stop)
|
|
527
|
+
- Make action items specific and actionable
|
|
528
|
+
- Prioritize actions by impact and effort
|
|
529
|
+
- Celebrate wins (even small ones)
|
|
530
|
+
- Use data to drive insights (no subjective opinions without data)
|
|
531
|
+
- Always end with forward-looking predictions
|
|
532
|
+
- Save automatically for historical tracking
|
|
533
|
+
|
|
534
|
+
OUTPUT
|
|
535
|
+
- ASCII retrospective report (default)
|
|
536
|
+
- Saved to docs/08-project/retrospectives/retro-YYYYMMDD.md
|
|
537
|
+
- Updated retrospectives/README.md index
|
|
538
|
+
- Action items formatted as checkboxes for easy tracking
|