接活:先分诊,再决定干什么
1. 分诊(别一进来就拷模板)
看当前代码根有没有 CONTEXT.md:
- 有 → 老项目,跳到第 3 步「启动」。
- 没有 → 按下表定类别:
| 类别 | 判据 | 走法 |
|---|---|---|
| ① 全新从零 | 还没有可用代码 | 初始化 → /wf:req |
| ② 已有代码首次接入 | 代码在、没本系统文档 | 初始化 → 增量盘点(第 4 步),不重做需求 |
| ③ 一次性任务 | 回答问题 / 跑个脚本 / 看眼代码 | 不初始化、不进流水线,干完即走 |
| ④ 说不清 | — | 问用户 |
2. 初始化(仅 ①②)
⛔ 代码根目录和项目名只能来自用户明确指定(RULES.md Tier 1 第 2 条)。拿到之前一个字都不许写,不许从路径反推项目名。
拿到后跑:install.bat <代码根目录> [项目名](Windows)或 ./install.sh <代码根目录> [项目名]。
脚本把 templates/ 的 CONTEXT.md / design.md / USAGE.md / tasks/ 拷到代码根,并生成薄 CLAUDE.md。
⚠️ 只建空骨架,禁止凭记忆、旧会话或先验知识预填任何内容。之后在 CONTEXT.md 只填「代码根目录」和「目标锚定」两项。
目标锚定必须当场问、当场写——不许留给用户自己去开文件:
- 问一句「这个项目最终要达成什么?一句话」→ 我写进
CONTEXT.md的- **大目标**: - 问一句「这几轮先推进到哪?」→ 我写进
- **当前阶段目标**: - 两句都拿到才算初始化完成。
这两行是每轮开场注入和回复开头三句的唯一来源,空着 = 每轮锚定失真。
3. 启动
- 读代码根
CONTEXT.md(通常已被项目CLAUDE.md自动加载)。 - 按「文档索引」按需读
design.md/tasks/。 - 执行「当前任务」;为空则依据「当前进度」+
tasks/progress.md自行判断,判断不了就问用户。 - 读「当前任务」的
建议档位,与当前不符时按RULES.md调度行提一句。
4. 已有代码增量盘点(仅 ②)
不要通读整个代码库。
- 只在当前任务真正需要时,读相关模块的文件。
- 读懂后把该模块现状补进
design.md第二章(标「现状」,不是理想需求),在tasks/progress.md登记,必要时补USAGE.md。 - 没碰到的模块先不管,文档边做边长出来。
- pytest / mypy / ruff 门禁只对今后改动的部分生效,不给历史代码一次性补测(要还债单独建
tasks/补测.md)。 - 顺手确认有没有 git / pytest / mypy / ruff 配置,缺什么先报给用户。