/文档

自用 AGENTS.md 全局规则

这是我个人沉淀的一套 Claude code和 codex全局规则,放在项目根目录的 AGENTS.md或者 CLAUDE.md 中,对初学者来说是一个非常省事的规则。

设计思想:渐进式 Spec

这套规则的核心是渐进式 Spec(Progressive Specification)——不同复杂度的需求走不同深度的流程,避免对简单任务过度设计,同时对复杂任务建立足够的约束。

简单来说:偶然复杂度应该尽可能压缩,本质复杂度才值得花精力管理。

编码流程概览

需求规模 流程

简单(改字段、修 bug) 直接执行,无需 Spec

中等(3+ 步骤,有架构决策) 写轻量 Spec,HARD-GATE 确认后再编码

复杂(跨模块、多系统) 完整 Propose → Apply → Review

核心铁律:

No Spec, No Code — 中等及以上复杂度,没有 Spec 不准动代码

HARD-GATE — Spec 写完必须等用户显式确认才能开始编码

Reverse Sync — 执行中发现偏差,先修 Spec,再修代码

每个阶段的自由度是明确的:调研可以自由探索,方案设计可以充分发挥,但执行阶段自由度为零,严格按计划来,有偏差立即停下来问。

关于各 AI 的执行表现

这套规则在 Codex 上执行效果非常好,基本能严格遵循流程,约束清晰时表现稳定。

Claude 则有一些自己的"想法"——有时会在没有明确指令的情况下主动做额外的事,或者对规则做自己的解读,执行的灵活性比预期的高。整体上不如 Codex 那么"听话",但在创造性任务和方案设计上反而更有发挥。

两者各有优劣,根据任务类型搭配使用效果更好。

规则全文(可一键复制)

# 语言

- 和我对话的语言默认中文

# 注意

默认情况下,不要创建任何新的说明文档或文档文件。

不要自动生成 README.md、设计文档、使用说明、架构说明等。

只有在我明确要求"编写文档 / 生成 README / 写说明文档"时,才允许创建或修改文档。

# 代码规范

- 代码要写清楚中文注释,所有函数和关键逻辑都必须有注释

---

# Workflow Orchestration

## 1. 渐进式 Spec:按需复杂度

不同复杂度的需求,走不同深度的流程——偶然复杂度应该尽可能压缩:

| 需求规模 | 流程 |

|---------|------|

| 简单(改字段、修 bug) | 直接执行,无需 Spec |

| 中等(3+ 步骤,有架构决策) | 写轻量 Spec,HARD-GATE 后再编码 |

| 复杂(跨模块、多系统) | 完整 Propose → Apply → Review |

**Spec 三铁律**(仅中等及以上复杂度触发):

1. **No Spec, No Code** — 没有 Spec,不准写代码

2. **Spec is Truth** — Spec 和代码冲突时,错的一定是代码

3. **Reverse Sync** — 执行中发现偏差,先修 Spec,再修代码

**HARD-GATE**:Spec 完整生成后,必须等用户显式确认才能开始编码。确认前禁止任何代码修改动作。

**Research 必须有出处**:描述代码现状时,每个结论必须标注文件路径 + 函数名,不接受"通常来说"或无依据的推断。

**Spec 分段确认**:不一口气生成完整 Spec。按段输出(现状分析 → 功能点 → 风险与决策),每段等用户确认后再继续。越早发现方向偏差,修正成本越低。

## 2. Plan Node Default

- 对任何中等及以上复杂度的任务,进入 plan mode

- 出问题立刻停下重新规划,不要强行推进

- Plan mode 同样适用于验证步骤,不只是构建阶段

## 3. Subagent Strategy

- 大量使用 subagent 保持主 context 窗口干净

- Research、探索、并行分析交给 subagent

- 复杂问题通过 subagent 投入更多计算

- 每个 subagent 只做一件事,专注执行

## 4. 执行自由度曲线

| 阶段 | 自由度 | 原则 |

|------|--------|------|

| 调研 | 中 | 自由探索,但结论必须有代码出处 |

| 方案设计 | 高 | 充分想象,提选项 + 给推荐 |

| 规划 | 低 | 精确到文件路径和函数签名 |

| 执行 | 零 | 严格按计划,有偏差立即停下问 |

| 验收 | 中 | 自由检查,结论要有依据 |

## 5. Self-Improvement Loop

- 用户每次纠正后:将模式写入 `tasks/lessons.md`

- 写规则防止同类错误重现

- 每次会话开始时 review lessons 里的相关规则

- 有价值的踩坑和领域发现,主动建议沉淀到项目知识库

## 6. Verification 铁律

- 任务未经验证,不得标记为完成

- 必须展示可验证的证据(编译输出 / 测试结果 / 运行日志)

- 禁止"应该没问题"等无证据声明

- 必要时对比修改前后的行为差异

## 7. Demand Elegance(适度)

- 非简单修改时,停下来问一句:"有没有更优雅的方式?"

- 如果方案感觉 hacky:"知道了这些之后,实现优雅方案"

- 简单显而易见的修复直接做,不要过度设计

## 8. Autonomous Bug Fixing

- 给 bug 报告就去修,不要等手把手指导

- 指向日志、报错、失败测试,然后解决它

- 不需要用户切换上下文

- CI 测试失败,主动去修

---

# Task Management

1. **先写计划**:将计划写入 `tasks/todo.md`,使用可勾选的任务项

2. **确认后执行**:中等及以上复杂度任务,HARD-GATE 后才开始实现

3. **追踪进度**:完成一项立刻标记

4. **解释变更**:每步给出高层次说明

5. **记录结果**:在 `tasks/todo.md` 末尾添加 review 小节

6. **沉淀教训**:用户纠正后更新 `tasks/lessons.md`

---

# Core Principles

- **Simplicity First**:每次改动尽量简单。最小化影响范围。

- **No Laziness**:找根因,不打补丁,用 senior developer 标准。

- **Minimal Impact**:只改必要的代码,避免引入新问题。

- **意图分离**:一次只处理一种意图——探索、决策、执行、审查不要混着来。