From 87ba268f624988d5c3ddc4e0dbab5b4364b89285 Mon Sep 17 00:00:00 2001 From: zichun Date: Thu, 28 May 2026 16:06:04 +0800 Subject: [PATCH] skill(plan A3-A5): hoist 'tick docs/08 after step' boilerplate to a single global note --- skills/plan/db-design-gen/SKILL.md | 11 +++++------ skills/plan/db-init/SKILL.md | 12 ++++++------ skills/plan/downstream-gen/SKILL.md | 23 +++++++++-------------- 3 files changed, 20 insertions(+), 26 deletions(-) diff --git a/skills/plan/db-design-gen/SKILL.md b/skills/plan/db-design-gen/SKILL.md index 91d8615..ea01120 100644 --- a/skills/plan/db-design-gen/SKILL.md +++ b/skills/plan/db-design-gen/SKILL.md @@ -9,6 +9,8 @@ allowed-tools: Read Write Edit Grep Glob AskUserQuestion # db-design-gen +每步骤完成后用 `Edit` 在 `docs/08-模块任务管理.md` § 一 勾选对应子项。 + ## 执行步骤 ### 步骤 A0:确认 ERP schema 约定(一次性) @@ -49,8 +51,7 @@ allowed-tools: Read Write Edit Grep Glob AskUserQuestion 2. 渲染「表清单」:对每张表:读取并填充 `${CLAUDE_SKILL_DIR}/templates/docs-03-table-template.md`,其中标准列区块用步骤 A0 确认的 `{{PK_CONVENTION}}` / `{{TENANT_COLS}}` 展开(`TENANT_COLS` = 「无」时不输出租户列行)。 3. 写入 `docs/03-数据库设计文档.md`。 -完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: -- ` - [ ] docs/03-数据库设计文档.md 已生成` +勾选:` - [ ] docs/03-数据库设计文档.md 已生成` ### D. 回填模块头 + REQ 卡片的 TBD 字段 @@ -58,13 +59,11 @@ allowed-tools: Read Write Edit Grep Glob AskUserQuestion 2. 在这些文件中搜索 `TBD(A3 自动补)` 的并回填。 不动 `TBD(A5 自动补)` 3. 打印回填统计:`A3 回填 处模块"涉及表" + 处 REQ"依赖表"`。 -完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: -- ` - [ ] docs/01 各 REQ 卡片"依赖表" + 模块头"涉及表" 已回填` +勾选:` - [ ] docs/01 各 REQ 卡片"依赖表" + 模块头"涉及表" 已回填` ### E. 勾选 A3 顶层 + 停下等人工审阅 -1. 完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选 A3 顶层(A3 两个子项已在 C / D 步骤分别勾选): - - `- [ ] A3 DB 设计 + REQ 回填 — db-design-gen` +1. 勾选 A3 顶层(A3 两个子项已在 C / D 步骤分别勾选):`- [ ] A3 DB 设计 + REQ 回填 — db-design-gen` 2. 打印停下横幅并**停下**,不调用任何下游 skill: diff --git a/skills/plan/db-init/SKILL.md b/skills/plan/db-init/SKILL.md index 00e9224..cfb242d 100644 --- a/skills/plan/db-init/SKILL.md +++ b/skills/plan/db-init/SKILL.md @@ -9,6 +9,8 @@ allowed-tools: Read Write Edit Glob Skill Bash(node *) Bash(mysql *) # db-init +每步骤完成后用 `Edit` 在 `docs/08-模块任务管理.md` § 一 勾选对应子项。 + ## 执行步骤 ### A. DDL 生成(不依赖数据库连接) @@ -48,7 +50,7 @@ node "${CLAUDE_PLUGIN_ROOT}/lib/validate-ddl.mjs" \ 3. 退出 0 → 进入 B;退出 1 且本轮 < 3 → 回步骤 1;本轮 ≥ 3 仍失败 → 停下,打印最终残留差异 + 已尝试的 3 轮修正摘要,让用户介入 - `2` → 用法错(docs/03 / V1 路径找不到),打印路径并停下 -完成后(V1 写入并通过 `validate-ddl.mjs` 校验),用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: +完成后(V1 写入并通过 `validate-ddl.mjs` 校验),勾选: - ` - [ ] sql/migrations/V1__initial_schema.sql 已生成` - ` - [ ] DDL 与 docs/03 全量一致` @@ -64,8 +66,7 @@ mysql -h -P -u -p -e "SELECT 1;" 成功 → 进入步骤 C;失败 → 打印具体错误(认证 / 主机不可达 / 端口拒接)并停下。 -完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: -- ` - [ ] .env.local 凭据已验证(mysql -e "SELECT 1" OK)` +勾选:` - [ ] .env.local 凭据已验证(mysql -e "SELECT 1" OK)` ### C. 自动导入 MySQL @@ -88,12 +89,11 @@ node "${CLAUDE_PLUGIN_ROOT}/lib/apply-ddl.mjs" .env.local sql/migrations/V1__ini - `1` → 失败:打印 stderr 并停下 - `2` → 用法错(路径找不到),打印路径并停下 -完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: -- ` - [ ] setup-test-db.mjs 防护通过 + DROP+CREATE + apply V1 已执行` +勾选:` - [ ] setup-test-db.mjs 防护通过 + DROP+CREATE + apply V1 已执行` ### D. 勾选 docs/08 进度 + 进入 A5 -1. 完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选(A4 子项 + A4 顶层;DDL ↔ docs/03 5 维一致已由 A.3 校验过,V1 文件自此未变): +1. 勾选(A4 子项 + A4 顶层;DDL ↔ docs/03 5 维一致已由 A.3 校验过,V1 文件自此未变): - ` - [ ] DDL ↔ docs/03 apply 后 5 维一致(validate-ddl.mjs)` - `- [ ] A4 DB 初始化 — db-init` diff --git a/skills/plan/downstream-gen/SKILL.md b/skills/plan/downstream-gen/SKILL.md index 3131f87..aacc133 100644 --- a/skills/plan/downstream-gen/SKILL.md +++ b/skills/plan/downstream-gen/SKILL.md @@ -9,6 +9,8 @@ allowed-tools: Read Write Edit Glob Grep Skill AskUserQuestion # downstream-gen +每步骤完成后用 `Edit` 在 `docs/08-模块任务管理.md` § 一 勾选对应子项。 + ## 执行步骤 ### A. docs/02 — 开发计划(含 REQ 级开发顺序清单) @@ -19,45 +21,39 @@ allowed-tools: Read Write Edit Glob Grep Skill AskUserQuestion 2. 为每项生成 `index`(从 1)/ `req_id` / `module_id` / `rationale`(依赖驱动短描述)/ `note`。 3. 读取并填充 `${CLAUDE_SKILL_DIR}/templates/docs-02-template.md`,写入 `docs/02-开发计划.md`。 -完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: -- ` - [ ] docs/02 开发计划已生成` +勾选:` - [ ] docs/02 开发计划已生成` ### B. docs/05 — API 接口契约 1. 读取 `${CLAUDE_SKILL_DIR}/templates/docs-05-header-template.md`,写入 `docs/05-API接口契约.md` 头部。 2. 对所有模块的每个 REQ:读取并推断 `${CLAUDE_SKILL_DIR}/templates/docs-05-endpoint-template.md`,追加到 docs/05。 -完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: -- ` - [ ] docs/05 API 契约已生成` +勾选:` - [ ] docs/05 API 契约已生成` ### B2. 回填模块头 + REQ 卡片的 TBD(A5) 字段 1. 在`docs/01-需求清单/*/_module.md`(模块头)和 `docs/01-需求清单/*/REQ-*.md`(REQ 卡片)中搜索并回填 `TBD(A5 自动补)` 2. 打印回填统计:`A5 回填 处模块"依赖模块" + 处 REQ"依赖接口"`。 -完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: -- ` - [ ] REQ 卡片依赖接口已回填` +勾选:` - [ ] REQ 卡片依赖接口已回填` ### C. docs/06 — 页面清单 对每个有前端页面的模块:读取并填充 `${CLAUDE_SKILL_DIR}/templates/docs-06-module-pagelist-template.md`,追加到 `docs/06-UI交互规范.md` § 三。 -完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: -- ` - [ ] docs/06 § 三 页面清单已填入` +勾选:` - [ ] docs/06 § 三 页面清单已填入` ### D. docs/08 — 追加模块清单 读 `${CLAUDE_SKILL_DIR}/templates/docs-08-module-row-template.md`,按 `module_id` 字母序为每个模块渲染 bullet(模块元数据 + REQ 子项清单,REQ 序保持步骤 A 模块内顺序),追加到 docs/08。 -完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: -- ` - [ ] 下方模块列表已填入` +勾选:` - [ ] 下方模块列表已填入` ### E. docs/10 — 验收清单(项目级 SOP) 用 `Read` 读取 `${CLAUDE_SKILL_DIR}/templates/docs-10-header-template.md`,用 `Write` 原样写到 `docs/10-验收检查清单.md`(跨平台,不用 `cp`)。 -完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: -- ` - [ ] docs/10 验收清单已生成` +勾选:` - [ ] docs/10 验收清单已生成` ### F. 验证 + 勾选 docs/08 进度 + 结束 Plan @@ -71,8 +67,7 @@ allowed-tools: Read Write Edit Glob Grep Skill AskUserQuestion 2. **docs/05 + docs/02 人工评审闸**(未确认不得勾选 A5):摘要展示 docs/05 全部端点(`METHOD PATH — REQ-ID`,标注「由 A5 自动推断」的项)+ docs/02 `req_order[]`(特别标 `note ≠ —` 的环依赖打破项)。`AskUserQuestion` 多问题表单同时问两项:「docs/05 端点/字段无误」+「docs/02 构建顺序可接受」,各二选一 `确认` / `需要修改`。任一需修改 → 收集修改点就地修订并重跑本闸,直到两项均 `确认`;否则禁止勾选 A5、禁止打印横幅。 -3. 用 `Edit` 在 `docs/08-模块任务管理.md` 勾选 A5 父项: - - `- [ ] A5 下游文档生成 — downstream-gen` +3. 勾选 A5 父项:`- [ ] A5 下游文档生成 — downstream-gen` 4. 打印 A5 完成横幅并**停下**: -- libgit2 0.22.2