用途:Autoresearch 受 karpathy/autoresearch 启发,把 ML 研究中的自主迭代模式迁移到代码质量改进。它通过固定、客观的指标加上 git 作为回滚机制,让智能体在无需逐次人工确认的情况下安全迭代:提出一处改动、运行测量、若指标改善则提交保留,否则用 git checkout -- . 回滚,重复直到手动停止。
主要能力与用法分四种模式:
- 扫描(默认):运行 grep 指标(可调整为项目自身约定),检测已有循环,输出按优先级排序的建议表格。示例命令:/autoresearch
- --scaffold <loop-name>:在 scripts/autoresearch/{loop-name}/ 下生成三个机械文件——measure.sh(单一指标评估脚本,返回整数)、direction.txt(lower 或 higher)、files.txt(智能体操作范围)。示例:/autoresearch --scaffold loop-remove-as-any
- --run <loop-name>:执行自主循环。需先存在 measure.sh 与 program.md,否则报错退出。每次迭代读取 program.md 约束、提出一处针对性改动、应用后重新测量,按方向判断保留或回滚,并记录到 results.tsv。示例:/autoresearch --run loop-remove-as-any
- --status:扫描各循环,显示当前指标、迭代次数与保留数,状态为 ACTIVE 或 SCAFFOLDED。示例:/autoresearch --status
适用场景:移除 as any 类型断言、消除 eslint-disable、统一函数或接口写法、清理 TODO 注释等机械、可量化的代码质量改进;指标可为覆盖率或质量评分(此时方向设为 higher)。
限制:program.md 必须由用户手写,用于编码项目特定约束,工具不会自动生成;每轮只做一处改动;停止条件为指标达标、无更多机械改动可做或用户手动终止;运行前建议创建 worktree 并 cd 进入;measure.sh 与 files.txt 的具体内容需按项目实际调整。时间上扫描约 30 秒,单轮迭代耗时取决于改动范围,循环会一直运行。