From f7306acf18ceccd35a1786b2b90a293e9115acc5 Mon Sep 17 00:00:00 2001 From: zichun Date: Thu, 28 May 2026 15:51:42 +0800 Subject: [PATCH] skill(plan-start): collapse body restatements; defer git-state checks to coding-start --- skills/plan/plan-start/SKILL.md | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/skills/plan/plan-start/SKILL.md b/skills/plan/plan-start/SKILL.md index 719bbff..8458f24 100644 --- a/skills/plan/plan-start/SKILL.md +++ b/skills/plan/plan-start/SKILL.md @@ -1,18 +1,14 @@ --- name: plan-start -description: A 阶段(Plan)入口与分发器。根据 docs/08 § 一 的 checkbox 状态派发到 A0~A6 对应 skill。Plan 全部完成(A6 已勾)后,本 skill 先校验全部前移闸门(真实数据/secrets/命令/评审/前端 scope),全过才提示用户运行 /erp-workflow:coding-start 进入 B 阶段,任一未过则列出缺口拦截。 +description: A 阶段入口 + Plan 终结硬闸 user-invocable: true allowed-tools: Skill Read Glob Grep --- **所有输出必须使用中文。** -你是 ERP 项目**规划阶段的编排器**。你**只派发 A 阶段(A0~A6)的 skill**;docs/08 § 一 全部勾选后,你**不立即放行**——先执行 §2.1 的 Plan 终结硬闸(逐项校验全部前移闸门),全部通过才提示用户显式运行 `/erp-workflow:coding-start` 进入 B 阶段,任一未过则拦截并列出缺口。你不直接生成任何文件。 - ## 第一步:读取 docs/08 + 决定分发目标 -docs/08 § 一 是**Plan 阶段进度追踪**(A0~A6 的 checkbox)。§ 二的模块元数据由 coding-start 读写,本 skill 不读。 - ### 分发判定 1. **docs/08 是否存在** @@ -22,7 +18,7 @@ docs/08 § 一 是**Plan 阶段进度追踪**(A0~A6 的 checkbox)。§ 二 2. **根据 § 一 找到当前进度** **判定算法(务必按此执行,不要凭"表里含 Axx"判断;docs/08 § 一 模板始终列出 A0~A6 全部行,"含"恒为真)**: - - 用 Read / Grep 把 `docs/08-模块任务管理.md § 一` 全文读出,按文件顺序自上而下扫描,找到**第一个 `- [ ]` 未勾子项**(仅看 § 一,§ 二 / § 三 不参与判定)。 + - 用 Read / Grep 把 `docs/08-模块任务管理.md § 一` 全文读出,按文件顺序自上而下扫描,找到**第一个 `- [ ]` 未勾子项**(仅扫 § 一)。 - 该子项归属的父项 `Axx`(A0~A6)即为当前阶段,按下表派发到对应 skill。 - 若 § 一 所有 `[ ]` 都已变成 `[x]`(含父项与全部子项)→ 进入 §2.1 Plan 终结闸。 @@ -42,7 +38,7 @@ docs/08 § 一 是**Plan 阶段进度追踪**(A0~A6 的 checkbox)。§ 二 ### 2.1 Plan 已完成 — 终结硬闸(HARD GATE) -A 阶段所有 checkbox 均 `[x]` 时**不代表可以进 B 阶段**。Coding 阶段为全自动静默 Workflow(子代理无法弹窗问人),因此**所有需求/配置必须在 Plan 期锁死**。本步骤是**硬闸**:先逐项校验下列全部前移闸门,**全部通过**才提示用户运行 `coding-start`;**任一未过**则**不提示进 B 阶段**,转而列出缺口并指明回填位置。 +A 阶段 checkbox 全部 `[x]` 后先跑下面 5 项前移闸门; 全过才放行, 任一未过则拦截. #### 第 1 步:逐项校验前移闸门(用 Read / Glob / Grep,禁止跳过任何一项) @@ -64,10 +60,10 @@ A 阶段所有 checkbox 均 `[x]` 时**不代表可以进 B 阶段**。Coding 4. **docs/05 + docs/02 已评审**(来自 A5 downstream-gen 的评审闸) - `Read` `docs/05-API接口契约.md` 与 `docs/02-开发计划.md`。 - - 校验:(a) docs/05 每个端点都有请求/响应 schema、无 `【人工填写`/`TBD`;(b) docs/02 每个 REQ 都在构建顺序 DAG 中、cycle-breaking 顺序有 `note` 说明。缺任一即缺口。(A5 父项已勾本身即蕴含 downstream-gen 评审闸已过——downstream-gen 在用户未确认时禁止勾 A5,故无需独立的「已评审」标记。) + - 校验:(a) docs/05 每个端点都有请求/响应 schema、无 `【人工填写`/`TBD`;(b) docs/02 每个 REQ 都在构建顺序 DAG 中、cycle-breaking 顺序有 `note` 说明。缺任一即缺口。 5. **A6 前端 scope 已锁**(来自 A6 frontend-scope-lock) - - **无前端项目分支**:先 `Read` `docs/08-模块任务管理.md` § 一 A6 父项行,若行尾含 `(无前端,A6 跳过)` 标注(frontend-scope-lock 步骤 1 的跳过路径写入)→ 本项直接判 通过,**跳过下面的 docs/06 校验**(无前端项目不会有 FE 决策表 / prototype,强读 docs/06 会与跳过语义冲突)。 + - 若 A6 父项行尾含「无前端, A6 跳过」标注 → 本项直接通过, 不再读 docs/06. - 否则(有前端):`Read` `docs/06-UI交互规范.md`,校验项目级 UI 约定 / Design Tokens / 组件库选型已确认;每个 FE-NN 的设计决策表非占位;prototype 闸门已过(docs/08 § 一 A6 勾选即代表此项已由 A6 skill 锁定,但仍核对 docs/06 无 `【人工填写`/`TBD` 残留)。缺任一即缺口。 #### 第 2 步(A):全部通过 → 放行 @@ -85,17 +81,7 @@ A 阶段所有 checkbox 均 `[x]` 时**不代表可以进 B 阶段**。Coding ✓ docs/05 API 契约 + docs/02 构建顺序已评审 ✓ A6 前端 scope(UI 约定 / tokens / 组件库)已锁 - ⚠️ 进入 B 阶段前必须完成: - 1. 人工通读 docs/* + CLAUDE.md + sql/migrations/V1 + 各 scripts/* - - 2. 把全部 Plan 产物 commit 到本地默认分支(main / master): - git add -A && git commit -m "chore: plan phase A0~A6 done" - - 3. B 阶段全程纯本地(无需远程仓库 / push / MR): - 每个模块由 coding.mjs 的 milestone stage 本地 merge 进默认分支并打 milestone/ tag。 - 确认当前已在本地默认分支(main / master)上即可。 - - 4. 运行 /erp-workflow:coding-start 进入 B 阶段 + 运行 /erp-workflow:coding-start 进入 B 阶段 (coding-start 会校验 git 状态). ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` -- libgit2 0.22.2