用途:fix 是一个失败驱动的迭代修复循环,用于把一次验证失败、结构化 findings(来自 review/resolve/triage-issue)或自然语言 bug 描述转化为逐步修复。适用于用户要求“fix”“make it pass”“apply findings”等场景;不适用于无本地上下文的 CI/PR 流程(用 gh-fix-ci)、PR 评论(用 gh-address-comments)、合并冲突、纯分析任务(用 resolve 或 debug)以及无失败驱动的计划变更(用 proceed)。
主要能力与流程:采用 Detect → Prioritize → Fix ONE thing → Commit → Verify → Keep/Revert → Repeat。首次输出编辑前先声明 detected: <mode> — target=TARGET guard=GUARD scope=SCOPE cap=20。输入分类按优先级:gh-route、findings、verifier-failure、bug-spec。自动推断目标验证器、scope glob、guard 命令与迭代上限;出现 MIXED_MODE、GH_PARTIAL、LANG_UNKNOWN、SCOPE_AMBIGUOUS 时以单选方式询问用户。每轮只做一处修复,暂存检查点提交并运行验证器,通过则 KEEP,失败则用 git revert HEAD --no-edit 回退。决策矩阵:delta>0 且 guard 通过→KEEP;delta>0 但 guard 失败→REWORK(每项最多 2 次,第 4 次→SKIP);delta≤0→DISCARD。累计 3 次 SKIP 则 HALT 并输出摘要。
验证器检测:优先仓库原生方案,用 fd --max-depth 2 定位 Justfile、Makefile、package.json、dune-project 等,再使用 just test/make test/npm test/dune build @runtest 等;语言回退包括 Python 的 pytest 与 ruff/mypy、TypeScript 的 vitest 与 tsc/eslint、Rust 的 cargo test/clippy、Go 的 go test/golangci-lint、OCaml 的 dune。GH 输入在存在开放 PR 且 gh auth status 正常时可自动路由到 gh-fix-ci 或 gh-address-comments。
限制与规则:默认迭代上限 20,可用 iterations: N 或 --iterations N 覆盖;在 main、master、release/* 等受保护分支上拒绝进入循环。禁止使用 @ts-ignore、type: ignore、eslint-disable 压制错误,禁止删除测试来通过验证,禁止 git reset --hard,禁止“顺手”改动。完整规范位于 references/loop.md、references/classifier.md、references/verifiers.md;价格、平台支持等资料暂未提供。