name: autonomous-dev description: | 自主连续开发方法论(Codex 版)。把一个项目按「每轮一个最小可提交单元」的方式推进到完成: 每轮读真相源 → 选下一个未做项 → 做一个最小单元 → 过验证门 → 记录勾选 → 最小提交 → 报进度。 适用于"按需求/台账建功能、还原原型、修一批 bug、补测试、重构、迁移、清理"等需要反复同构推进的任务。
与 Claude Code 的关系:Claude Code 有内置 /loop 自动续期(/loop /dev-loop),Codex 没有——
所以 Codex 端由你(或脚本 / cron)反复触发"继续下一轮",方法论本身一致。
触发场景:
- 想让 Codex 把某个项目/某个意图"一轮轮推进到完成"
- 还原原型图、修一批 warning、补单测、重构模块等同构重复任务
- 需要"每步可编译、可回退、可恢复"的稳健推进方式
触发词:自主开发、连续开发、循环开发、一轮一提交、还原原型、批量修复、autonomous dev、continuous dev
autonomous-dev — 自主连续开发方法论(Codex 版)
这是什么 / 怎么用
把开发拆成一轮一个最小可提交单元的同构循环,每轮稳定产出、可验证、可回退、可恢复。
- Claude Code 用户:直接用
/loop /dev-loop(自动续期)或/loop-gen <意图>生成定制循环提示词。 - Codex 用户(本技能面向你):没有自动续期,每次触发执行一轮,做完即停;由你或脚本再次触发"继续下一轮"。方法论与下面完全一致。
每轮标准流程(核心)
- 读真相源(每轮必读,不可凭记忆):需求文档 / 原型(
prototype/*.html或docs/prototypes/)/ 任务台账(docs/tasks/的[ ]/[x]清单)/ 项目规约(AGENTS.md/CLAUDE.md/.claude/PROJECT.md)。上下文会压缩,但文件不会——每轮回读才不漂移。 - 选一项:台账里「最靠前、依赖已完成」的第一个未勾
[ ];没有台账(第 0 轮)就先按需求+原型拆出有序最小任务清单写进docs/tasks/active/再结束本轮。 - 只做这一个最小单元,遵守项目技术栈与架构规约,严禁一轮多做。
- 验证门(必须过才提交):
- Tauri / web 前端:
cargo check(后端)+npx tsc --noEmit(前端),相关则cargo test。 - Qt / C++:
cmake --build build+ctest。 - 红了当场修绿。每完成 5 项或到里程碑边界跑一次全量。
- Tauri / web 前端:
- 记录:台账该项
[ ]→[x],补一行「实际改了什么 / 坑」。 - 最小提交:逐个
git add本轮改动的具体文件(禁止git add -A),git commit(Conventional Commits 带 scope,一句话)。 - 报本轮:✅做了啥 | 📊进度 X/总 | ⏭️下一个。然后停止本轮(Codex 等待下次触发)。
原型保真截图闭环(涉及 UI 的任务必过)
模型偏离原型,根因是"看不见自己渲染的结果"。给它装眼睛:
- 起前端 / 编译运行应用(用后台方式起,不 kill 已有进程)。
- 截运行界面 = 现状:web 前端用浏览器打开运行页截图;原生窗口(Qt)用桌面截图 /
QWidget::grab()导出 PNG。 - 打开对应原型 = 目标,逐条比对:布局分区 / 主辅状态色 / 间距留白 / 字号字重行高 / 控件类型 / 文案 / 交互态(hover/按下/禁用/空态)。
- 有差异只改视图层 → 重新截图确认消除;关键差异没消除就继续修、别急着提交。
- 颜色 / 间距 / 字号一律用设计令牌(CSS 变量 / QSS 主题),禁止硬编码;禁止"我觉得更好看"擅自改。
决策分流(遇模糊不瞎停也不瞎冲)
- 可逆 / 低风险(命名、文件位置、等价写法)→ 按合理默认继续,记一行
docs/BLOCKERS.md,不空等。 - 不可逆 / 合规 / 架构级 / 缺外部凭据 → 停下问用户。
卡点熔断 + 停止条件
- 连续 3 轮无实质进展,或同一项 2 轮验证门修不过 → 停止,报错误原文 + 判断 + 建议。
- 任务台账全部
[x]+ 验收清单全绿 → 输出「✅ 完成」+ 自检,停止(不再继续)。
红线
- 不发明真相源里没有的功能;技术栈不换。
- 文件 UTF-8 无 BOM、中文注释可读。
- 不按名杀宿主进程(按端口 / PID 精准);不
git add -A;不git reset --hard/clean丢改动;本地提交不推远端(除非用户明确要求);私钥 /.env不进 git。