--- name: coding-start description: B 阶段(Coding)入口与阶段分发器。验证 Plan 完成后做后端 + 前端的完成性检查,每段检查后立即派发:后端未完成 → module-start(写后端);后端已完成 + 前端未完成 → frontend-start(写前端);都完成 → 全部完成。本 skill 只做分发,不做 prototype/ 门禁。 user-invocable: true allowed-tools: Skill Read Glob Grep Bash(cat *) Bash(git tag *) --- **所有输出必须使用中文。** B 阶段(Coding)的入口分发器。**`module-start` 写后端,`frontend-start` 写前端**——coding-start 在每次入口时按"先后端、再前端"的次序检查并立即派发。本 skill **只做分发,不做 prototype/ 门禁**——前端阶段的前置检查由 `frontend-start` 内部承担。 `module-start` 与 `frontend-start` 互不感知对方。 ## 执行步骤 ### 步骤 0:打印 B 阶段整体流程图 ```bash cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/coding-start/banners/flow-overview.txt" ``` ### 步骤 1:确认 docs/08 存在 检查 `docs/08-模块任务管理.md` 存在。 - 不存在 → 打印"⚠️ 项目尚未初始化,请先运行 `/erp-workflow:plan-start`"并停下。 ### 步骤 2:Plan 完成性检查 读取 `docs/08-模块任务管理.md § 一`,判断 A0~A5 是否全部勾选(含子项)。 - 任一未勾选 → 提示用户先运行 `/erp-workflow:plan-start` 完成 A 阶段,并停下 - 全部勾选 → 进入步骤 3 ### 步骤 3:后端完成性检查 + 派发 读 `docs/08 § 二`,对每个后端模块的 `里程碑:` 字段(并用 `git tag -l 'milestone/'` 校验 tag 真实存在): - **任一模块 `里程碑: —` 或对应 `milestone/` tag 不存在** → 后端未完成,打印 `[coding-start] 后端未完成 → 派发 module-start(写后端)`,立即用 Skill 工具调用 module-start(直接调用,**不要**先输出"已完成 / 接下来 / 请检查 / 等你确认"之类桥接叙述——会被解读为 turn 结束信号、害用户手敲 continue),本 skill 结束,不进入步骤 4。 - **所有模块 `里程碑: milestone/` 且 tag 存在** → 后端已完成,进入步骤 4。 ### 步骤 4:前端完成性检查 + 派发 读 `docs/08 § 三 整体里程碑:` 字段(并用 `git tag -l 'milestone/frontend-phase'` 校验): - **`整体里程碑: milestone/frontend-phase` 且 tag 存在** → 前端已完成,打印 `所有阶段已完成(后端模块 + 前端阶段里程碑均已标记)`,结束本 skill。 - **`整体里程碑: —` 或 tag 不存在** → 前端未完成,打印 `[coding-start] 后端已完成、前端未完成 → 派发 frontend-start(写前端)`,立即用 Skill 工具调用 frontend-start(直接调用,**不要**先输出"已完成 / 接下来 / 请检查 / 等你确认"之类桥接叙述——会被解读为 turn 结束信号、害用户手敲 continue),本 skill 结束。 ## 参考 - `docs/08-模块任务管理.md § 一`(A0~A5 进度勾选,步骤 2 读取) - `docs/08-模块任务管理.md § 二`(后端模块元数据 + 里程碑字段,步骤 3 读取) - `docs/08-模块任务管理.md § 三`(前端阶段整体里程碑,步骤 4 读取) - 下游: - `module-start`(写后端:步骤 3 派发) - `frontend-start`(写前端:步骤 4 派发) - `plan-start`(姊妹入口,A 阶段) - `CLAUDE.md`(项目指令)