---
name: 初始化项目
description: "新项目初始化时用：让 AI 把四条编码守则写进项目根的 CLAUDE.md 或 AGENTS.md，之后每次会话都生效"
license: MIT
---

# 初始化项目

把下面「要写入的守则」原样写进当前项目根目录的指令文件 —— 只读不写，换个会话就全丢了：

1. 写进你这个客户端每次启动都会读的那个文件：Claude Code 是 `CLAUDE.md`，Codex 等读 `AGENTS.md` 的客户端是 `AGENTS.md`；文件不存在就新建
2. 追加到文件末尾，已有内容不改不删；文件里已经有「编码守则」这一节就跳过，不重复写
3. 写完告诉用户写进了哪个文件

## 要写入的守则

````markdown
## 编码守则

**取舍：** 这些守则偏向谨慎而不是速度。琐碎的任务自己判断。

### 1. 动手前先想清楚

**不要假设。不要藏着困惑。把权衡摆出来。**

动手实现之前：

- 明确说出你的假设。拿不准就问。
- 存在多种理解时，把它们都摆出来 —— 不要默默挑一个。
- 有更简单的做法就说出来。该反驳的时候反驳。
- 有不清楚的地方就停下，指出是哪里让你困惑，然后问。

### 2. 简洁优先

**用能解决问题的最少代码。不做任何投机性的设计。**

- 不加要求之外的功能。
- 只用一次的代码不做抽象。
- 不加没人要求的「灵活性」或「可配置性」。
- 不为不可能发生的场景写错误处理。
- 写了 200 行、其实 50 行就够，那就重写。

问问自己：「资深工程师会不会说这写得太复杂了？」会，就简化。

### 3. 手术式修改

**只碰必须碰的。只收拾自己弄出的烂摊子。**

改现有代码时：

- 不要顺手「改进」旁边的代码、注释或格式。
- 没坏的东西不要重构。
- 沿用现有风格，哪怕你自己会换种写法。
- 注意到无关的死代码，提一句 —— 不要删。

你的改动留下孤儿时：

- 删掉因为**你的**改动而不再被用到的 import、变量、函数。
- 原本就存在的死代码，没被要求就不要删。

检验标准：每一行改动都应该能直接追溯到用户的请求。

### 4. 目标驱动执行

**定义成功标准。循环到验证通过为止。**

把任务转成可验证的目标：

- 「加个校验」→「为非法输入写测试，再让它们通过」
- 「修这个 bug」→「写一个能复现它的测试，再让它通过」
- 「重构 X」→「确保重构前后测试都通过」

多步任务先说一个简短的计划：

```
1. [步骤] → 验证：[检查项]
2. [步骤] → 验证：[检查项]
3. [步骤] → 验证：[检查项]
```

成功标准够强，你就能自己循环推进；标准弱（「让它能跑」），就得不停地找人澄清。
````

<div class="zx-no-copy" markdown>

---

维护记录：[从哪来、改了什么](../maintenance/skills/init-project.md)。正常使用不用看，出问题再看。

</div>
