Goal: Start each day (or active period) with a prioritized, actionable picture of what needs attention — without manually checking CI, issues, PRs, and chat.
Recommended:
/loop 1dfor morning triage (Grok, Claude Code)/loop 2hduring active sprints for faster signal- GitHub Action cron
0 8 * * 1-5for teams without a TUI
Many teams run triage-only first (reporting, no auto-fix) for 1–2 weeks before enabling action.
loop-triage— Reads CI, issues, commits, chat; produces prioritized findings (seetemplates/SKILL.md.loop-triage)minimal-fix(optional, phase 2) — Drafts small fixes for obvious failures- Reviewer sub-agent or skill (optional, phase 2) — Verifies proposed fixes
Use STATE.md (or a Linear board view) as the memory spine:
# Loop State — Project X
Last run: 2026-06-09 08:15 UTC
## High Priority (loop is acting or waiting on human)
- [ ] #1241 — flaky test in auth flow (CI red on main)
Loop action: Opened worktree. Fix proposed. Waiting for human PR review.
## Watch List
- PR #1238 open 4 days with no activity.
## Recent Noise (ignored this run)
- Dependabot PRs (separate automation)Fields the loop must update every run:
Last runtimestamp- Item status + last action taken
- Human decisions that overrode the loop
- Scheduler fires (morning or interval).
- Triage skill ingests: CI failures (24h), open issues/tickets, recent commits, prior
STATE.md. - High-priority items appended to state with suggested next action.
- (Phase 2) For small, self-contained failures: open worktree → implementer → verifier.
- (Phase 3) Connectors update PRs/tickets; ambiguous items flagged for human.
- Prune resolved/merged items from state.
- Record post-run critique in state: false positives, repeated items, re-prioritized or dropped items, and one adjustment for next run.
After each Daily Triage run, record:
- High-noise items.
- False positives (items incorrectly flagged).
- Items that should be deprioritized.
- Any human-review friction.
- One change to improve the next cycle.
- Phase 1 (report-only): Human reads
STATE.md— no auto-action verification needed. - Phase 2+: Never let implementer mark work done; verifier confirms fix scope and tests.
- Triage skill must not invent architectural work — signal only.
- Design decisions or multi-file refactors
- Security, auth, payments, infrastructure
- Items flagged "needs discussion" in triage output
- Anything the loop has surfaced 3+ days without resolution
Grok Build TUI:
/loop 1d Run the loop-triage skill. Append high-priority items to STATE.md. For obvious small bugfixes only: worktree + minimal-fix + verifier sub-agent (maker/checker). Flag ambiguous items for human review.Claude Code:
/loop 1d Run $loop-triage and update STATE.md. Do not auto-fix on first week — report only.Codex:
- Automations tab: daily prompt calling
$loop-triage, output to Triage inbox +STATE.md.
GitHub Actions:
- See
examples/github-actions/daily-triage.yml.
| Failure | Mitigation |
|---|---|
| Triage creates noise | Tighten skill rules; add "Noise / Ignore" section |
| State file grows unbounded | Prune merged/closed items every run |
| Auto-fix on wrong priority | Start report-only; add explicit effort/risk gates |
| Missed overnight failures | Add fireImmediately: true or run at start of day + mid-day |
| Stale critique / never reviewed | Add human handoff when critique entries accumulate without resolution across N runs. |
| Scenario | Tokens/run | Notes |
|---|---|---|
| No-op | ~5k | Nothing actionable in state |
| Full triage (L1) | ~50k | CI + issues + commits scan |
| Assisted fix (L2) | ~200k | Worktree + implementer + verifier |
Cadence: 1d–2h · Tier: low · Suggested daily cap: 100k tokens
npx @cobusgreyling/loop-cost --pattern daily-triage --cadence 1d --level L1Scaffold loop-budget.md and loop-run-log.md with loop-init. See operating-loops.md.
- Time from "something broke" to "human knows about it"
- % of mornings where
STATE.mdmatched what you'd have found manually - Reduction in ad-hoc "what's on fire?" Slack messages
Start report-only. Add action only when triage quality is consistently good.