Compare commits
1 Commits
step35/669
...
sprint/iss
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f10d0501c6 |
172
docs/TRIAGE_CADENCE_REPORT.md
Normal file
172
docs/TRIAGE_CADENCE_REPORT.md
Normal 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.*
|
||||
Reference in New Issue
Block a user