@haaaiawd/anws 2.1.2 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,10 +21,11 @@ description: "按照架构文档和任务清单将设计锻造为代码。适用
21
21
  - **绝不**添加文档未定义的功能或依赖
22
22
  - **绝不**在有疑问时猜测——必须停下来确认
23
23
 
24
- **核心原则**:
25
- - 📖 **文档即合约** — 规范文档是不可违反的权威
26
- - 🌊 **波次执行** — 每波 2-5 个任务,加载→编码→验证→提交
27
- - 🛑 **遇疑则停** — 发现问题立即停止,不猜不赶
24
+ **核心原则**:
25
+ - 📖 **文档即合约** — 规范文档是不可违反的权威
26
+ - 🌊 **波次执行** — 每波 2-5 个任务,加载→编码→验证→提交
27
+ - 🛑 **遇疑则停** — 发现问题立即停止,不猜不赶
28
+ - ✍ **签名机制** — 每次波次开始都要经过检查点;普通模式由用户签名,`/forge自动` 模式记为 `AUTO`
28
29
 
29
30
  **与用户的关系**:
30
31
  你是用户的**忠实执行者**,不是自由发挥的创造者。
@@ -75,14 +76,15 @@ description: "按照架构文档和任务清单将设计锻造为代码。适用
75
76
  >
76
77
  > | 冲突类型 | 处理方式 |
77
78
  > |---------|---------|
78
- > | 文档之间互相矛盾 | 🛑 停止 → 列出矛盾点 → 用户通过 `/change` 修复 |
79
- > | 任务描述模糊/不完整 | 🛑 停止 → 列出疑问 → 用户确认或通过 `/change` 补充 |
80
- > | 依赖的前置任务产物与预期不符 | 🛑 停止 → 报告差异 → 用户决定 |
81
- > | 发现设计不可实现 | 🛑 停止 → 记录原因 → 建议用户运行 `/challenge` |
82
- > | 需要 ADR 未批准的新依赖 | 🛑 停止 → 说明理由 → 用户决定是否创建新 ADR |
83
- > | 需要的系统设计文档不存在 | 🛑 停止 → 引导用户运行 `/design-system` |
84
- >
85
- > **核心原则: 宁可停下来问,也不要猜测。**
79
+ > | 文档之间互相矛盾 | 🛑 停止 → 列出矛盾点 → 用户通过 `/change` 修复 |
80
+ > | 任务描述模糊/不完整 | 🛑 停止 → 列出疑问 → 用户确认或通过 `/change` 补充 |
81
+ > | 依赖的前置任务产物与预期不符 | 🛑 停止 → 报告差异 → 用户决定 |
82
+ > | 发现设计不可实现 | 🛑 停止 → 记录原因 → 建议用户运行 `/challenge` |
83
+ > | 需要 ADR 未批准的新依赖 | 🛑 停止 → 说明理由 → 用户决定是否创建新 ADR |
84
+ > | 需要的系统设计文档不存在 | 🛑 停止 → 引导用户运行 `/design-system` |
85
+ > | **发现未定义但必须新增/修改的公共契约** | 🛑 停止 → 生成回流说明 → 跳转 `/change` |
86
+ >
87
+ > **核心原则: 宁可停下来问,也不要猜测。**
86
88
 
87
89
  ---
88
90
 
@@ -105,23 +107,40 @@ description: "按照架构文档和任务清单将设计锻造为代码。适用
105
107
  - [ ] `{TARGET_DIR}/04_SYSTEM_DESIGN/` 存在且非空
106
108
  - 如缺失: "⚠️ 建议先运行 `/design-system`。缺少详细设计可能导致实现质量下降。"
107
109
 
108
- 5. **如果必需文件缺失**: 报错并提示运行 `/genesis` + `/blueprint`。
109
-
110
- 6. **断点续做判定**:
111
- - 读取 `AGENTS.md` 的 `🌊 Wave` 块
112
- - 如果存在波次信息:
113
- - 查看波次任务列表,对照 `05_TASKS.md` 中的 checkbox
114
- - 如有未完成任务**断点续做** → 跳入 Step 3 继续未完成的任务
115
- - 如全部完成 → **新波次** → 继续 Step 1
116
- - 如果不存在 → **新开始** → 继续 Step 1
117
-
118
- 7. **Git 上下文检查**:
119
- - 读取当前 branch
120
- - 如当前在 `main` 且本次不是单文件小修先创建并切换到 `feature/{topic-slug}`
121
- - 如当前已在 `feature/*` 且本波次仍属于同一交付主题继续在当前 branch 上推进
122
- - 如当前已在 `feature/*` 但本波次目标已切换为另一独立主题新建并切换到新的 `feature/{topic-slug}`
123
- - 同一交付目标下的多波次,默认持续使用同一个 `feature/*` branch,直到 Step 5 完成里程碑结算
124
- - 如本波次属于高风险改造(跨系统 / 预计改动 > 5 文件 / 涉及公共接口)→ 在当前工作 branch 上先创建 checkpoint commit:`checkpoint: before {topic}`
110
+ 5. **如果必需文件缺失**: 报错并提示运行 `/genesis` + `/blueprint`。
111
+
112
+ 6. **Challenge 门禁检查**:
113
+ - 如果 `{TARGET_DIR}/07_CHALLENGE_REPORT.md` 存在,必须先读取最新审查结果
114
+ - 如存在**未处理 Critical** → **立即阻塞**,不得进入 `/forge`
115
+ - 如存在**未处理 High** 仅允许用户显式签名放行;AUTO 模式不得自动通过
116
+ - 如无未处理高严重度问题继续
117
+
118
+ 7. **断点续做判定**:
119
+ - 读取 `AGENTS.md` 的 `🌊 Wave` 块
120
+ - 如果存在波次信息:
121
+ - 查看波次任务列表,对照 `05_TASKS.md` 中的 checkbox
122
+ - 如有未完成任务 **断点续做**跳入 Step 3 继续未完成的任务
123
+ - 如全部完成 **新波次**继续 Step 1
124
+ - 如果不存在 **新开始**继续 Step 1
125
+
126
+ 8. **模式判定**:
127
+ - 如用户输入 `/forge自动` 或明确要求自动连续推进 → 进入 **AUTO 模式**
128
+ - 否则 → 默认 **普通模式**
129
+
130
+ 9. **Git 上下文检查**:
131
+ - 读取当前 branch
132
+ - 仓库只认两类分支:`main` 和 `feature/*`
133
+ - `main` 只保存已验证通过、可视为稳定的状态
134
+ - 所有正常开发默认都在 `feature/*` 上完成;只要不是单文件小修,就不要直接在 `main` 上改
135
+ - 如当前在 `main` 且本次不是单文件小修 → 创建并切换到 `feature/{topic-slug}`
136
+ - 如当前已在 `feature/*` 且仍属于同一交付主题 → 继续在当前 branch 上推进,不因补任务、补契约、补测试而反复新开分支
137
+ - 如当前已在 `feature/*` 且主题未变,即使经历 `/change` 回流,也继续使用同一条分支
138
+ - 只有 `/genesis` 触发、版本前提变化时,旧 `feature/*` 才冻结;新版本应从最新 `main` 重新开一条新的 `feature/*`
139
+ - 如进入 `/change` 前需要保护点,可先在当前 `feature/*` 上创建 checkpoint commit:`checkpoint: before {topic}`
140
+
141
+ > [!IMPORTANT]
142
+ > **Git 判断口诀**:
143
+ > 同主题就不换分支,`/change` 不换分支,`/genesis` 才换分支;开发都在 `feature/*`,稳定结果才进 `main`,tag 只打 `main`。
125
144
 
126
145
  ---
127
146
 
@@ -129,10 +148,10 @@ description: "按照架构文档和任务清单将设计锻造为代码。适用
129
148
 
130
149
  **目标**: 从任务清单中挑选一组可执行的任务,组成一个"波次"。
131
150
 
132
- > [!IMPORTANT]
133
- > **你不能自己决定波次内容,必须建议后由用户确认。**
134
- >
135
- > **为什么?** 用户对项目优先级和进度节奏有最终决定权。
151
+ > [!IMPORTANT]
152
+ > **你不能自己决定波次内容,必须在检查点获得签名后再开始。**
153
+ >
154
+ > **为什么?** 用户对项目优先级和进度节奏有最终决定权;`/forge自动` 只是把签名从用户改为 `AUTO`,不是删除检查点。
136
155
 
137
156
  ### 1.1 扫描可执行任务
138
157
 
@@ -168,14 +187,18 @@ description: "按照架构文档和任务清单将设计锻造为代码。适用
168
187
  确认此波次?或调整任务组合?
169
188
  ```
170
189
 
171
- **人类检查点** ⚠️: 用户确认后,将确认的波次写入 `AGENTS.md` 的 `🌊 Wave` 块:
190
+ **签名检查点** ⚠️: 获得签名后,将确认的波次写入 `AGENTS.md` 的 `🌊 Wave` 块:
172
191
 
173
192
  ```markdown
174
193
  ### 🌊 Wave {N} — {波次目标简述}
175
194
  T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
176
195
  ```
177
196
 
178
- 然后进入 Step 2。
197
+ 然后进入 Step 2。
198
+
199
+ 签名规则:
200
+ - 普通模式 → 等待用户签名
201
+ - AUTO 模式 → 保留波次展示,并将签名记为 `AUTO` 后继续执行
179
202
 
180
203
  ---
181
204
 
@@ -267,15 +290,26 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
267
290
 
268
291
  ---
269
292
 
270
- ### 3.3 编码实现
293
+ ### 3.3 编码实现
271
294
 
272
295
  > [!IMPORTANT]
273
296
  > **严格按设计文档和验收标准编码,不多不少。**
274
297
 
275
- - 代码结构遵循 `02_ARCHITECTURE_OVERVIEW.md` 定义的目录结构
276
- - 接口签名遵循 `04_SYSTEM_DESIGN/{system}.md` 的定义
277
- - 具体实现遵循任务描述和验收标准
278
- - Lint 通过(如有配置)
298
+ - 代码结构遵循 `02_ARCHITECTURE_OVERVIEW.md` 定义的目录结构
299
+ - 接口签名遵循 `04_SYSTEM_DESIGN/{system}.md` 的定义
300
+ - 具体实现遵循任务描述和验收标准
301
+ - Lint 通过(如有配置)
302
+
303
+ > [!IMPORTANT]
304
+ > **契约回流规则(CRITICAL)**:
305
+ >
306
+ > 如果实现过程中发现需要新增或修改以下任一“对外可观察契约”,而该契约未在当前任务或设计文档中显式定义:
307
+ > - API / CLI 参数语义
308
+ > - 配置结构 / 文件格式 / 状态格式
309
+ > - 错误语义 / 返回结构
310
+ > - 跨系统接口 / 持久化结构
311
+ >
312
+ > 则必须停止编码,生成最小回流说明,并跳转 `/change`。不得在 `/forge` 中偷偷补写这些契约。
279
313
 
280
314
  ---
281
315
 
@@ -283,28 +317,30 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
283
317
 
284
318
  **根据任务的验证类型执行相应验证**,并按类型分类证据:
285
319
 
286
- > [!IMPORTANT]
287
- > **验证类型决定验证方式和证据要求**:
288
- >
289
- > | 验证类型 | 验证方式 | 证据要求 | 标记 |
290
- > |---------|---------|---------|:----:|
291
- > | **单元测试** | 运行 `npm test` 或等效命令 | 终端输出:`X passed, 0 failed` | ✅/❌ |
292
- > | **集成测试** | 运行集成测试脚本 | 终端输出或日志 | ✅/❌ |
293
- > | **E2E测试** | 运行 E2E 测试脚本 | 测试报告或截图 | ✅/❌ |
294
- > | **编译检查** | 运行 `npm run build` 或等效命令 | 终端输出:`Build succeeded` | ✅/❌ |
295
- > | **Lint检查** | 运行 `npm run lint` 或等效命令 | 终端输出:`0 problems` | ✅/❌ |
296
- > | **手动验证** | 人工检查 | 用户确认 | |
320
+ > [!IMPORTANT]
321
+ > **验证类型决定验证方式和证据要求**:
322
+ >
323
+ > | 验证类型 | 验证方式 | 证据要求 | 标记 |
324
+ > |---------|---------|---------|:----:|
325
+ > | **单元测试** | 运行 `npm test` 或等效命令 | 终端输出:`X passed, 0 failed` | ✅/❌ |
326
+ > | **集成测试** | 运行集成测试脚本 | 终端输出或日志 | ✅/❌ |
327
+ > | **E2E测试** | 运行 E2E 测试脚本 | 测试报告或截图 | ✅/❌ |
328
+ > | **冒烟测试** | 运行最小真实路径检查 | 关键路径日志、截图或终端输出 | ✅/❌ |
329
+ > | **回归测试** | 运行受影响能力的最小回归测试集 | 明确列出复验范围 + 测试输出 | ✅/❌ |
330
+ > | **编译检查** | 运行 `npm run build` 或等效命令 | 终端输出:`Build succeeded` | ✅/❌ |
331
+ > | **Lint检查** | 运行 `npm run lint` 或等效命令 | 终端输出:`0 problems` | ✅/❌ |
332
+ > | **手动验证** | 人工检查 | 用户确认 | ⏳ |
297
333
 
298
334
  ```markdown
299
335
  ### ✅ 验证报告: T{X.Y.Z}
300
336
 
301
- **验证类型**: [单元测试 | 集成测试 | E2E测试 | 编译检查 | Lint检查 | 手动验证]
302
-
303
- **自动验证** (单元测试/集成测试/E2E/编译/Lint):
304
- | 验收标准 | 命令 | 输出摘要 | 状态 |
305
- | -------- | ---- | -------- | :--: |
306
- | 测试通过 | `npm test` | 12 passed, 0 failed | ✅ |
307
- | 构建成功 | `npm run build` | Build succeeded | ✅ |
337
+ **验证类型**: [单元测试 | 集成测试 | E2E测试 | 冒烟测试 | 回归测试 | 编译检查 | Lint检查 | 手动验证]
338
+
339
+ **自动验证** (单元测试/集成测试/E2E/冒烟/回归/编译/Lint):
340
+ | 验收标准 | 命令 | 输出摘要 | 状态 |
341
+ | -------- | ---- | -------- | :--: |
342
+ | 测试通过 | `npm test` | 12 passed, 0 failed | ✅ |
343
+ | 构建成功 | `npm run build` | Build succeeded | ✅ |
308
344
 
309
345
  **手动验证**:
310
346
  | 验收标准 | 说明 | 状态 |
@@ -312,15 +348,39 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
312
348
  | 页面显示正确 | 需要打开浏览器确认渲染效果 | ⏳ |
313
349
  ```
314
350
 
315
- 按任务的 `**验证类型**` 和 `**验证说明**` 字段执行检查。
316
-
317
- - 自动验证类型全部 ✅ 且无手动验证项 → 继续 3.5
318
- - 自动验证类型全部 ✅ 但有手动验证项 → 继续 3.5(手动项随后确认)
319
- - 自动验证类型有 ❌ → **修复后重新验证**,不得跳过
320
-
321
- ---
322
-
323
- ### 3.5 遵从性检查 (Compliance Check)
351
+ 按任务的 `**验证类型**` 和 `**验证说明**` 字段执行检查。
352
+
353
+ > [!IMPORTANT]
354
+ > **冒烟测试与回归测试执行规则**:
355
+ > - 冒烟测试必须验证少量真实关键路径是否可运行,不得退化成“跑一下已有脚本就算过”
356
+ > - 回归测试必须显式写出本次复验覆盖了哪些既有能力,避免泛化成“随便跑点测试”
357
+ > - 若任务声明了冒烟测试或回归测试,但 `验证说明` 无法指导执行,应视为验证定义不完整,先修任务定义或回流 `/change`
358
+
359
+ - 自动验证类型全部 ✅ 且无手动验证项 → 继续 3.5
360
+ - 自动验证类型全部 ✅ 但有手动验证项 → 先进入 **3.4.5 静态忠实度审查**,再继续 3.5(手动项随后确认)
361
+ - 自动验证类型有 ❌ → **修复后重新验证**,不得跳过
362
+
363
+ ---
364
+
365
+ ### 3.4.5 静态忠实度审查 (Code Fidelity Check)
366
+
367
+ **目标**: 在请求用户进行手动验证前,先用纯静态方式检查实现是否已经偏离契约与任务承诺。
368
+
369
+ > [!IMPORTANT]
370
+ > 当任务存在手动验证项,或本波次触及公共契约 / 基础共享逻辑 / 高风险变更时,应先运行 `code-reviewer`。
371
+ >
372
+ > **为什么?** 手动验证适合确认最终体验,但不该替代“实现是否忠于契约”的静态检查。AUTO 模式下尤其不能把这一步省掉。
373
+
374
+ 执行规则:
375
+ - 调用 `code-reviewer`,输入当前工作目录 `src/` 与 `{TARGET_DIR}` 下的 PRD / Architecture / ADR / System Design / TASKS
376
+ - 如 `code-reviewer` 发现 **Critical / High**:
377
+ - 若问题属于当前版本内可收敛的契约 / 任务 / 测试 / 回流缺口 → 停止并进入 `/change`
378
+ - 若问题已经触及需求前提 / 架构前提 / ADR 核心前提 → 停止并升级 `/genesis`
379
+ - 如无高严重度阻塞 → 继续后续遵从性检查与手动验证交接
380
+
381
+ ---
382
+
383
+ ### 3.5 遵从性检查 (Compliance Check)
324
384
 
325
385
  **检查清单** (每条都要回答):
326
386
 
@@ -330,9 +390,9 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
330
390
  | 2 | 未引入 ADR 未批准的依赖? | ✅/❌ |
331
391
  | 3 | 未添加任务范围外的功能? | ✅/❌ |
332
392
  | 4 | 代码风格与项目一致,lint 通过? | ✅/❌ |
333
- | 5 | 所有验收标准已验证通过? | ✅/❌ |
334
- | 6 | 所有可执行验收标准有终端输出证据? | ✅/❌ |
335
- | 7 | 需人工确认的验收标准已标记 ⏳? | ✅/❌ |
393
+ | 5 | 所有验收标准已验证通过? | ✅/❌ |
394
+ | 6 | 所有可执行验收标准有足够证据(终端/日志/截图)? | ✅/❌ |
395
+ | 7 | 需人工确认的验收标准已标记 ⏳? | ✅/❌ |
336
396
 
337
397
  - 全部 ✅ → 继续 3.6
338
398
  - 有 ❌ → **修复**
@@ -341,10 +401,10 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
341
401
 
342
402
  ### 3.6 提交 (Commit)
343
403
 
344
- 1. **Git commit**:
345
- - Task commit 一律落在**当前工作 branch** 上
346
- - 默认当前工作 branch 为本次交付对应的 `feature/*`;只有 Step 0 明确判定为单文件小修时才允许留在 `main`
347
- - 消息格式: `{type}({scope}): T{X.Y.Z} — 任务标题`
404
+ 1. **Git commit**:
405
+ - Task commit 一律落在**当前工作 branch** 上
406
+ - 默认当前工作 branch 为本次交付对应的 `feature/*`;只有 Step 0 明确判定为单文件小修时才允许留在 `main`
407
+ - 消息格式: `{type}({scope}): T{X.Y.Z} — 任务标题`
348
408
  - `type` ∈ `feat | fix | refactor | docs | test | chore`
349
409
  - `scope` 默认使用 `system-id`;workflow/skill 改动可用对应名称
350
410
  - 例: `feat(core): T2.1.1 — 地形与资源数据模型`
@@ -396,10 +456,11 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
396
456
  **阻塞项** (如有): ...
397
457
  ```
398
458
 
399
- ### 4.3 Git commit 状态更新
400
-
401
- - Wave settlement commit 与本波次 task commits 一样,落在当前工作 branch 上
402
- - 如下一波仍属于同一交付主题,默认继续沿用当前 `feature/*` branch
459
+ ### 4.3 Git commit 状态更新
460
+
461
+ - Wave settlement commit 与本波次 task commits 一样,落在当前工作 branch 上
462
+ - 如下一波仍属于同一交付主题,默认继续沿用当前 `feature/*` branch
463
+ - `/change` 回流后恢复编码时,继续沿用当前 `feature/*` branch
403
464
 
404
465
  ```markdown
405
466
  chore(wave): settle wave {N} progress
@@ -407,11 +468,19 @@ chore(wave): settle wave {N} progress
407
468
 
408
469
  ### 4.4 下一步判定
409
470
 
410
- **人类检查点** ⚠️:
411
-
412
- - 还有未完成任务 → 询问用户:"继续下一波?" → 回到 **Step 1**
413
- - 当前 Sprint 所有任务完成 → 进入 **Step 5**
414
- - 有阻塞问题 → 引导用户运行相应工作流修复
471
+ **签名检查点** ⚠️:
472
+
473
+ - 还有未完成任务 → 询问:"继续下一波?";普通模式等待用户签名,AUTO 模式以 `AUTO` 签名继续 → 回到 **Step 1**
474
+ - 当前 Sprint 所有任务完成 → 进入 **Step 5**
475
+ - 有阻塞问题 → 引导用户运行相应工作流修复
476
+
477
+ > [!IMPORTANT]
478
+ > **AUTO 模式的停止条件**:
479
+ > - 命中手动验证且需要用户最终确认
480
+ > - `/change` 评估后发现必须升级到 `/genesis`
481
+ > - 其他工作流要求用户作出新的版本级决定
482
+ >
483
+ > 命中以上任一条件,AUTO 必须立即停止,等待用户批准。
415
484
 
416
485
  ---
417
486
 
@@ -423,14 +492,14 @@ chore(wave): settle wave {N} progress
423
492
 
424
493
  1. **集成验证**: 运行集成测试(如有),确保跨系统功能正常
425
494
  2. **更新 AGENTS.md**: 清除"当前波次"信息,更新已完成的 Sprint/Phase
426
- 3. **Git 里程碑锚点**:
427
- - Sprint/Phase 完成 `milestone: {name} complete`
428
- - 对应版本发布 `release: vX.Y.Z`
429
- - 如存在明确版本号,可打 tag:`vX.Y.Z`
430
- - 以上里程碑 commit / tag 默认创建在当前工作 branch 上
431
- 4. **合流主线**:
432
- - 当前 feature branch 达到可验收里程碑后,合并回 `main`
433
- - 合并策略遵循仓库既有规范(merge / squash / rebase),但 `main` 最终应指向该里程碑的稳定状态
495
+ 3. **Git 里程碑锚点**:
496
+ - `feature/*` 上可创建里程碑 settlement commit,用于标记该分支已达到可验收状态
497
+ - 版本 tag 与正式 release **只允许创建在 `main` 上**,不得提前打在 `feature/*` 分支上
498
+ 4. **合流主线**:
499
+ - 只有当当前 `feature/*` 分支已经达到可验收里程碑、相关验证已经通过,并且用户明确确认可以合流时,才允许合并回 `main`
500
+ - 合流策略统一固定为 **merge commit**
501
+ - 不使用 squash merge rebase merge 作为主线合流方式
502
+ - `main` 最终只保存已验证通过、可视为稳定的状态
434
503
  5. **汇报用户**: 列出已完成的 Sprint/Phase 概要
435
504
 
436
505
  ---
@@ -10,11 +10,12 @@ description: "从 0 到代码的项目启动全流程。适用于新项目立项
10
10
  **你的核心使命**:
11
11
  将用户模糊的想法转化为**清晰的文档基础**,完成从0到文档的全流程设计。
12
12
 
13
- **核心原则**:
14
- - **版本化架构** - 架构文档必须版本化 (`.anws/v1`, `.anws/v2`...)
15
- - **文档先行** - 代码是文档的实现,而非相反
16
- - **产品优先** - 先PRD后技术,先需求后方案
17
- - **系统拆解** - 识别独立系统,关注点分离
13
+ **核心原则**:
14
+ - **版本化架构** - 架构文档必须版本化 (`.anws/v1`, `.anws/v2`...)
15
+ - **文档先行** - 代码是文档的实现,而非相反
16
+ - **产品优先** - 先PRD后技术,先需求后方案
17
+ - **系统拆解** - 识别独立系统,关注点分离
18
+ - **Git 分支换轨** - `/genesis` 代表版本前提变化;旧 `feature/*` 应冻结,新版本应从最新 `main` 重新开一条新的 `feature/*`
18
19
 
19
20
  **Output Goal (Versioned)**:
20
21
  - `.anws/v{N}/00_MANIFEST.md` ← 版本元数据
@@ -26,9 +27,13 @@ description: "从 0 到代码的项目启动全流程。适用于新项目立项
26
27
 
27
28
  ---
28
29
 
29
- ## 🚀 Pre-Check: 自动初始化 (Auto-Init)
30
-
31
- > **目的**: 确保项目已正确初始化,无 AGENTS.md 则自动创建。
30
+ ## 🚀 Pre-Check: 自动初始化 (Auto-Init)
31
+
32
+ > **目的**: 确保项目已正确初始化,无 AGENTS.md 则自动创建。
33
+
34
+ > [!IMPORTANT]
35
+ > **Git 换轨前置规则**:
36
+ > 如果 `/genesis` 是从一个正在开发中的 `feature/*` 分支升级而来,先冻结旧分支;必要时创建 checkpoint / freeze commit。随后从最新 `main` 重新开一条新的 `feature/*` 承接新版本,不要把旧分支上的实现和新版本文档混在一起。
32
37
 
33
38
  ### 自动检测流程
34
39