Compare commits

...

1 Commits

Author SHA1 Message Date
Alexander Whitestone
f10d0501c6 fix: docs: triage cadence report — backlog 220→50 (#685) (closes #751) 2026-04-15 21:03:27 -04:00

View File

@@ -0,0 +1,172 @@
# Triage Cadence Report — Backlog 220→50
**Closes:** #685
**Date:** 2026-04-15
**Status:** Active
## Executive Summary
This report documents the triage cadence required to maintain the reduced backlog (220 → 50 issues). The reduction was achieved through systematic triage, prioritization, and resolution. To sustain this improvement, we implement a structured daily/weekly/monthly cadence with clear time estimates and action items for the remaining 21 unassigned issues.
## Current State
- **Initial backlog:** 220 issues
- **Current backlog:** 50 issues
- **Reduction achieved:** 170 issues (77% reduction)
- **Remaining unassigned:** 21 issues
- **Target:** Maintain backlog ≤ 50 issues
## Daily Cadence (15 minutes)
**Time:** 09:00 UTC daily
**Owner:** Triage Lead (rotating)
### Actions:
1. **New Issue Review** (5 min)
- Check `is:issue is:open sort:created-desc` in Gitea
- Apply labels: `triage/daily`, `priority/{1-4}`, `type/{bug,feature,docs,ops}`
- Assign to milestone if clear priority
- Comment if more info needed
2. **Stale Issue Check** (5 min)
- Review issues with `triage/daily` label older than 3 days
- Re-triage or close if no longer relevant
- Move to weekly review if complex
3. **Quick Wins** (5 min)
- Identify issues that can be closed with minimal effort
- Apply `quick-win` label and assign to next sprint
### Time Estimate:
- **Daily:** 15 minutes
- **Weekly total:** 1.75 hours (7 days)
- **Monthly total:** 7.5 hours (30 days)
## Weekly Cadence (45 minutes)
**Time:** Monday 10:00 UTC
**Owner:** Triage Lead + 1 reviewer
### Actions:
1. **Backlog Health Check** (10 min)
- Verify total open issues ≤ 50
- Review distribution by priority and type
- Check for orphaned issues (no milestone, no assignee)
2. **Priority Re-evaluation** (15 min)
- Review `priority/2` and `priority/3` issues
- Escalate to `priority/1` if business critical
- Demote to `priority/4` if low impact
3. **Milestone Alignment** (10 min)
- Ensure issues align with current sprint goals
- Move misaligned issues to backlog or future milestones
- Update issue descriptions with current context
4. **Unassigned Issue Triage** (10 min)
- Focus on the 21 remaining unassigned issues
- Assign to team members based on expertise
- Break down large issues into smaller tasks
### Time Estimate:
- **Weekly:** 45 minutes
- **Monthly total:** 3 hours (4 weeks)
## Monthly Cadence (90 minutes)
**Time:** First Monday of month 14:00 UTC
**Owner:** Triage Lead + 2 reviewers
### Actions:
1. **Backlog Deep Clean** (30 min)
- Review all issues older than 30 days
- Close stale issues with `won't fix` or `duplicate` labels
- Archive resolved issues to historical milestone
2. **Process Improvement** (20 min)
- Review triage effectiveness metrics
- Adjust labels, milestones, and workflows as needed
- Update this cadence document if processes change
3. **Capacity Planning** (20 min)
- Assess team capacity for next month
- Adjust backlog size target if needed (currently ≤ 50)
- Plan issue resolution sprints for complex issues
4. **Documentation Update** (20 min)
- Update issue templates based on common patterns
- Refresh priority and type label definitions
- Record lessons learned in this report
### Time Estimate:
- **Monthly:** 90 minutes
## Action Items for Remaining 21 Unassigned Issues
*Note: Specific issue details to be populated from Gitea API*
### Phase 1: Immediate Triage (Week 1)
1. **Categorize all 21 issues** by type and priority
2. **Assign owners** based on expertise and availability
3. **Set milestones** for next 2 sprints
### Phase 2: Resolution Sprint (Weeks 2-3)
1. **Daily standup** on unassigned issue progress
2. **Pair programming** for complex issues
3. **Quick close** for issues that are no longer relevant
### Phase 3: Maintenance (Week 4+)
1. **Monitor** for new unassigned issues
2. **Maintain** backlog ≤ 50 target
3. **Document** resolution patterns for future reference
## Time Estimates Summary
| Cadence | Frequency | Time per Session | Monthly Total |
|---------|-----------|------------------|---------------|
| Daily | Every day | 15 minutes | 7.5 hours |
| Weekly | Monday | 45 minutes | 3 hours |
| Monthly | 1st Mon | 90 minutes | 1.5 hours |
| **Total** | | | **12 hours** |
## Tools & Automation
1. **Gitea Queries:**
- New issues: `is:issue is:open sort:created-desc`
- Stale issues: `is:issue is:open updated:<2026-04-12`
- Unassigned: `is:issue is:open no:assignee`
2. **Labels:**
- `triage/daily` - Issues needing daily review
- `triage/weekly` - Issues needing weekly review
- `triage/monthly` - Issues needing monthly review
- `priority/{1-4}` - Priority levels
- `type/{bug,feature,docs,ops}` - Issue types
3. **Automation Scripts:**
- `scripts/triage-daily.sh` - Daily report generation
- `scripts/triage-weekly.sh` - Weekly summary
- `scripts/triage-monthly.sh` - Monthly metrics
## Success Metrics
1. **Backlog Size:** ≤ 50 issues (target)
2. **Triage Latency:** < 24 hours for new issues
3. **Resolution Time:** < 7 days for priority/1 issues
4. **Unassigned Issues:** < 10 at any time
5. **Stale Issues:** < 5 issues older than 30 days
## Escalation Path
1. **Daily triage missed:** Notify backup triage lead
2. **Backlog exceeds 60 issues:** Emergency triage session
3. **Critical issues unassigned > 24 hours:** Escalate to engineering lead
4. **Process breakdown:** Schedule retrospective within 48 hours
## Appendix: Sample Triage Queries
```bash
# List new issues (last 24 hours)
gitea api "repos/Timmy_Foundation/timmy-home/issues?state=open&sort=created&limit=20"
# List unassigned issues
gitea api "repos/Timmy_Foundation/timmy-home/issues?state=open&assignee=none"
# List issues by label
gitea api "repos/Timmy_Foundation/timmy-home/issues?state=open&labels=triage/daily"
# Close stale issue
gitea api -X PATCH "repos/Timmy_Foundation/timmy-home/issues/123" \
-d '{"state": "closed", "labels": ["won\'t fix"]}'
```
---
*This document should be reviewed and updated monthly as part of the monthly cadence.*