bro

bro debt

Review debt — harvest unresolved threads on merged PRs into a ledger.

Review bots comment, you merge, the threads rot. bro debt is the collections agency: it sweeps merged PRs, writes findings to a local ledger, and labels each PR so nothing is scanned twice.

PR merged → bro debt collect → findings land in .agents/review-debt/
                            → PR gets debt:collected (or debt:clean)
                            → you see what's left: bro debt prs

Commands

CommandWhat it does
bro debt collectScan merged PRs missing a debt:* label, harvest unresolved threads, label the PR debt:collected or debt:clean
bro debt prsThe queue — merged PRs still unprocessed (--all for everything)
bro debt statusLedger stats: open/done/wontfix, by area, by author, duplicates
bro debt stats [--by author|source|area]Reviewer/source signal: findings grouped with fix% — the done share of decided rows. Which bot is worth reading, which is noise
bro debt listRaw rows, filterable
bro debt mark <pr> <state>Manual override — skipped is the human opt-out
bro debt set <status> --thread-id IDRow lifecycle: claimed / done --fix-pr N / wontfix / duplicate
bro debt syncProject the ledger into beads — idempotent (thread_id → external_ref), so bd ready -l debt is the work queue
bro debt next [--claim] [--json]Top open finding, priority-ranked. The agent-fix primitive
bro debt watch [--interval SEC]Collect on a timer (default 300s) — catches post-merge bot comments

Labels

LabelMeaning
debt:collectedSwept, findings in the ledger
debt:cleanSwept, nothing found — bro won't look twice
debt:skippedHuman opt-out — bro respects it

The fix loop

bro debt next --claim              # top finding, now claimed
# ... fix it, push, PR ...
bro debt set done --thread-id ID --fix-pr N
bro debt sync                      # closes the bead

The ledger dir is machine-local — bro adds it to .git/info/exclude on first write so evidence can't be committed by accident.

On this page