debt 是 theplenkov/bro 仓库中的技能,入口对应 /debt,用于处理已合并拉取请求(PR)上的评审债务。资料明确指出,该技能不包含具体机制,所有机制都在 bro CLI 的 bro review debt * 命令中;技能本身只是策略层,不应重新实现 bro review debt 已有的能力。
使用前提:bro 需在 PATH 中,或通过 npx -y @broject/bro@0 运行(主版本固定)。需要 gh 认证。bd 仅在启用 beads 时必需,而 beads 为默认启用;在 bro.config.json 中设置 "stores": ["jsonl"] 可退出该默认并去掉对 bd 的依赖。
主要命令与用途:
bro review debt collect [filters]:扫描没有 debt:* 标签的已合并 PR,收集未解决线程,写入 harvests/*.jsonl,并打上 debt:collected 或 debt:clean 标签。若在 bro.config.json 中配置 debt.sources,还会运行可选的收集器(dependabot、code-scanning、secret-scanning、stale-prs、failed-ci、sonarcloud、codacy、codescene),数据进入同一台账,并在 beads 上添加 debt:<source> 标签;debt.stale_days 可调整 stale-prs。sonarcloud 需要 SONAR_TOKEN 和项目 key(debt.sourceConfig.sonarcloud.project_key 或 sonar-project.properties);codacy 需要 CODACY_API_TOKEN 或 CODACY_PROJECT_TOKEN;codescene 需要 CODESCENE_TOKEN 和 debt.sourceConfig.codescene.project_id(或 CODESCENE_PROJECT_ID)。bro review debt status:显示台账摘要和未处理的已合并 PR 数量。bro review debt stats [--by author|source|area]:按评审者、来源或区域查看信号;fix% 是已决定行中完成的比例。bro review debt trend [--by author|source|area] [--bucket week|day]:燃尽图,按时间桶显示未关闭债务;--json 输出图表数据。bro review debt prs:列出仍未处理的已合并 PR,即工作队列;--all 显示完整矩阵。bro review debt list:查看台账行,可按 --status、--area、--author、--priority、--pr 过滤。bro review debt mark <pr> <state>:手工覆盖状态,取值为 collected / clean / skipped / none。bro review debt set <status> --thread-id ID:设置台账状态,取值包括 claimed、done --fix-pr N、wontfix、duplicate,供 bro review debt sync 使用。bro review debt sync:把台账投影到 beads,之后 bd ready -l debt 成为工作队列。
策略要点:debt:* 标签是 PR 层面“已处理”的权威来源;skipped 是人工退出,始终优先于机器标签。beads 是默认存储;正常 collect 在 .beads 缺失时会自动运行 bd init --stealth --skip-agents --skip-hooks(--dry-run、--list-only 和空台账时跳过),并在 stderr 公告而非静默执行,同时通过 .git/info/exclude 让台账目录不被 git 跟踪;在 bro.config.json 中设置 "stores": ["jsonl"] 即退出。文件落地后再打标签;在 CI 流水线中运行 collect --no-label,落地 harvests/*.jsonl(用 git add -f,因为台账目录在本地被排除),然后执行 bro review debt mark。该技能的定位是收集而非修复:分诊进入待办,修复走修复循环;bro review debt 从不编辑产品代码,也不在源 PR 上解决线程。--reharvest 可在单次运行中绕过标签跳过逻辑。