Build Timmy autonomous backlog triage loop #1071

Closed
opened 2026-03-23 13:11:55 +00:00 by perplexity · 1 comment
Collaborator

Parent: #1070

Objective

Timmy should continuously scan the Gitea backlog, prioritize issues, and decide what to work on next — without waiting to be asked.

Loop

while true:
  1. Fetch all open issues from Gitea API
  2. Score/prioritize by: labels, age, dependencies, blocked status
  3. Identify unassigned high-priority items
  4. Decide: assign to self, dispatch to Claude Code, dispatch to Kimi, or flag for Alex
  5. Execute the assignment
  6. Sleep interval (configurable, default 15 min)

Priority Scoring

  • P0 (security, data loss, blocking): immediate
  • P1 (core functionality): next sprint
  • P2 (improvements): backlog
  • P3 (nice-to-have): someday
  • Epic/governing issues: break into actionable children if not already done

Acceptance Criteria

  • Loop runs continuously on Hermes via cron or daemon
  • Timmy creates a daily triage summary in Gitea or as a journal entry
  • Idle agents get assigned work within 15 minutes of becoming available
  • Alex can see what Timmy decided and why (audit trail via Gitea comments)
Parent: #1070 ## Objective Timmy should continuously scan the Gitea backlog, prioritize issues, and decide what to work on next — without waiting to be asked. ## Loop ``` while true: 1. Fetch all open issues from Gitea API 2. Score/prioritize by: labels, age, dependencies, blocked status 3. Identify unassigned high-priority items 4. Decide: assign to self, dispatch to Claude Code, dispatch to Kimi, or flag for Alex 5. Execute the assignment 6. Sleep interval (configurable, default 15 min) ``` ## Priority Scoring - P0 (security, data loss, blocking): immediate - P1 (core functionality): next sprint - P2 (improvements): backlog - P3 (nice-to-have): someday - Epic/governing issues: break into actionable children if not already done ## Acceptance Criteria - Loop runs continuously on Hermes via cron or daemon - Timmy creates a daily triage summary in Gitea or as a journal entry - Idle agents get assigned work within 15 minutes of becoming available - Alex can see what Timmy decided and why (audit trail via Gitea comments)
claude self-assigned this 2026-03-23 13:33:01 +00:00
Collaborator

PR created: http://143.198.27.163:3000/rockachopa/Timmy-time-dashboard/pulls/1141

Summary

Implemented BacklogTriageLoop in src/timmy/backlog_triage.py:

  • Fetches all open Gitea issues (paginated async httpx)
  • Scores each issue: scope + acceptance + alignment (0–9 scale)
  • Decides per unassigned ready issue:
    • P0/bugs → assign to @claude
    • Research/investigation → add kimi-ready label for Kimi
    • Blocked → flag @rockachopa with reason
    • Philosophy / low-score / already-assigned → skip
  • Audit trail: posts a Gitea comment on each actioned issue explaining the decision (Alex can override by reassigning)
  • Daily summary: new Gitea issue with ranked backlog + actions taken (once per UTC day)
  • Config: 4 new settings in config.py (master switch, interval, dry_run, daily_summary)
  • Tests: 57 new unit tests, all 3374 tests pass
PR created: http://143.198.27.163:3000/rockachopa/Timmy-time-dashboard/pulls/1141 ## Summary Implemented `BacklogTriageLoop` in `src/timmy/backlog_triage.py`: - **Fetches** all open Gitea issues (paginated async httpx) - **Scores** each issue: scope + acceptance + alignment (0–9 scale) - **Decides** per unassigned ready issue: - P0/bugs → assign to `@claude` - Research/investigation → add `kimi-ready` label for Kimi - Blocked → flag `@rockachopa` with reason - Philosophy / low-score / already-assigned → skip - **Audit trail**: posts a Gitea comment on each actioned issue explaining the decision (Alex can override by reassigning) - **Daily summary**: new Gitea issue with ranked backlog + actions taken (once per UTC day) - **Config**: 4 new settings in `config.py` (master switch, interval, dry_run, daily_summary) - **Tests**: 57 new unit tests, all 3374 tests pass
Sign in to join this conversation.
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#1071