4.8 KiB
Recover Sprint Status v3.0
Fix sprint-status.yaml when tracking has drifted. Analyzes multiple sources (story files, git commits, completion reports) to rebuild accurate status. **Multiple Evidence Sources, Conservative Updates**- Story file quality (size, tasks, checkboxes)
- Explicit Status: fields in stories
- Git commits (last 30 days)
- Autonomous completion reports
- Task completion rate
Trust explicit Status: fields highest. Require evidence for status changes.
name: recover-sprint-status version: 3.0.0modes: dry-run: {description: "Analysis only, no changes", default: true} conservative: {description: "High confidence updates only"} aggressive: {description: "Medium+ confidence, infers from git"} interactive: {description: "Ask before each batch"}
confidence_levels: very_high: {sources: [explicit_status, completion_report]} high: {sources: [3+ git_commits, 90% tasks_complete]} medium: {sources: [1-2 git_commits, 50-90% tasks_complete]} low: {sources: [no_status, no_commits, small_file]}
<execution_context> @patterns/hospital-grade.md </execution_context>
**Scan all evidence sources**# Find story files
SPRINT_ARTIFACTS="docs/sprint-artifacts"
STORIES=$(ls $SPRINT_ARTIFACTS/*.md 2>/dev/null | grep -v "epic-")
# Get recent git commits
git log --oneline --since="30 days ago" > /tmp/recent_commits.txt
For each story:
- Read story file, extract Status: field if present
- Check file size (≥10KB = properly detailed)
- Count tasks and checkbox completion
- Search git commits for story references
- Check for completion reports (.epic-*-completion-report.md)
| Evidence | Confidence | Action |
|---|---|---|
| Explicit Status: done | Very High | Trust it |
| Completion report lists story | Very High | Mark done |
| 3+ git commits + 90% checked | High | Mark done |
| 1-2 commits OR 50-90% checked | Medium | Mark in-progress |
| No commits, <50% checked | Low | Leave as-is |
| File <10KB | Low | Downgrade if done |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔍 RECOVERY ANALYSIS (Dry Run)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
High Confidence Updates:
- 2-5-auth: backlog → done (explicit Status:, 3 commits)
- 2-6-profile: in-progress → done (completion report)
Medium Confidence Updates:
- 2-7-settings: backlog → in-progress (2 commits)
Low Confidence (verify manually):
- 2-8-dashboard: no Status:, no commits, <10KB file
Exit after preview. No changes made.
**Apply only high/very-high confidence updates**For each high+ confidence story:
- Backup current sprint-status.yaml
- Use Edit tool to update status
- Log change
# Backup
cp $SPRINT_STATUS .sprint-status-backups/sprint-status-recovery-$(date +%Y%m%d).yaml
Skip medium/low confidence stories.
**Apply medium+ confidence updates**Includes:
- Inferring from git commits (even 1 commit)
- Using task completion rate
- Pre-filling brownfield checkboxes
⚠️ AGGRESSIVE mode may make incorrect inferences.
Review results carefully.
**Verify recovery worked**
./scripts/sync-sprint-status.sh --validate
Should show:
- "✓ sprint-status.yaml is up to date!" (success)
- OR discrepancy count (if issues remain)
Use Bash to commit:
git add docs/sprint-artifacts/sprint-status.yaml
git add .sprint-status-backups/
git commit -m "fix(tracking): Recover sprint-status.yaml - {{mode}} recovery"
<failure_handling> No changes detected: sprint-status.yaml already accurate. Low confidence on known-done stories: Add Status: field manually, re-run. Recovery marks incomplete as done: Use conservative mode, verify manually. </failure_handling>
<post_recovery_checklist>
- Run validation:
./scripts/sync-sprint-status.sh --validate - Review backup in
.sprint-status-backups/ - Spot-check 5-10 stories for accuracy
- Commit changes
- Document why drift occurred </post_recovery_checklist>
<success_criteria>
- All evidence sources analyzed
- Changes applied based on confidence threshold
- Validation passes
- Backup created </success_criteria>