# Autonomous Dev

> 自主连续开发方法论（Codex 版）。把一个项目按「每轮一个最小可提交单元」的方式推进到完成： 每轮读真相源 → 选下一个未做项 → 做一个最小单元 → 过验证门 → 记录勾选 → 最小提交 → 报进度。 适用于"按需求/台账建功能、还原原型、修一批 bug、补测试、重构、迁移、清理"等需要反复同构推进的任务。 与 Claude Code 的关系：Claude Code 有内置 `/loop` 自动续期（`/loop /dev-loop`），Codex 没有—— 所以 Codex 端由你（或脚本 / cron）反复触发"继续下一轮"，方法论本身一致。 触发场景： - 想让 Codex 把某个项目/某个意图"一轮轮推进到完成" - 还原原型图、修一批 warning、补单测、重构模块等同构重复任务 - 需要"每步可编译、可回退、可恢复"的稳健推进方式 触发词：自主开发、连续开发、循环开发、一轮一提交、还原原型、批量修复、autonomous dev、continuous dev

- Skill: `bkywksj/autonomous-dev` (Agent Skill)
- Install (CLI): `npx skillmds@latest add bkywksj/autonomous-dev`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bkywksj/autonomous-dev/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: bkywksj (https://skillmd.com/u/bkywksj)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/bkywksj/autonomous-dev

---


# autonomous-dev — 自主连续开发方法论（Codex 版）

## 这是什么 / 怎么用

把开发拆成**一轮一个最小可提交单元**的同构循环，每轮稳定产出、可验证、可回退、可恢复。

- **Claude Code 用户**：直接用 `/loop /dev-loop`（自动续期）或 `/loop-gen <意图>` 生成定制循环提示词。
- **Codex 用户（本技能面向你）**：没有自动续期，**每次触发执行一轮**，做完即停；由你或脚本再次触发"继续下一轮"。方法论与下面完全一致。

## 每轮标准流程（核心）

1. **读真相源（每轮必读，不可凭记忆）**：需求文档 / 原型（`prototype/*.html` 或 `docs/prototypes/`）/ 任务台账（`docs/tasks/` 的 `[ ]/[x]` 清单）/ 项目规约（`AGENTS.md` / `CLAUDE.md` / `.claude/PROJECT.md`）。上下文会压缩，但文件不会——每轮回读才不漂移。
2. **选一项**：台账里「最靠前、依赖已完成」的第一个未勾 `[ ]`；没有台账（第 0 轮）就先按需求+原型拆出有序最小任务清单写进 `docs/tasks/active/` 再结束本轮。
3. **只做这一个最小单元**，遵守项目技术栈与架构规约，**严禁一轮多做**。
4. **验证门（必须过才提交）**：
   - Tauri / web 前端：`cargo check`（后端）+ `npx tsc --noEmit`（前端），相关则 `cargo test`。
   - Qt / C++：`cmake --build build` + `ctest`。
   - 红了当场修绿。每完成 5 项或到里程碑边界跑一次全量。
5. **记录**：台账该项 `[ ]`→`[x]`，补一行「实际改了什么 / 坑」。
6. **最小提交**：逐个 `git add` 本轮改动的具体文件（**禁止 `git add -A`**），`git commit`（Conventional Commits 带 scope，一句话）。
7. **报本轮**：✅做了啥 | 📊进度 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。

