SKILL.md 4.21 KB

name: module-start description: 后端模块循环入口。定位当前未 merged 模块与未完成 REQ,派发 feature-brainstorm 或 test-gate;幂等可重入。阶段路由由 coding-start 负责,本 skill 不感知前端阶段。 user-invocable: false

allowed-tools: Read Write Skill Glob Grep Bash(git branch *) Bash(git checkout *) Bash(git rev-parse *) Bash(git pull *) Bash(git status *) Bash(git symbolic-ref *) Bash(curl *) Bash(jq *)

所有输出必须使用中文。

module-start

职责说明

本 skill 单一职责:推进后端模块循环coding-start 已在派发前确认存在未 merged 后端模块;本 skill 不再做"后端是否全完"的判定,也不感知前端阶段。

执行步骤

步骤 1:定位当前模块与本模块 REQ 列表

docs/02 § 二 开发顺序清单 的 REQ 顺序扫描,找到第一个所属模块尚未 merged 的模块作为 current_module,并抽取本模块 REQ 序列。

模块状态判定(MR: 字段 × GitLab API state 三种组合的语义和应对动作)参见 CLAUDE.md § ✅ 阶段完成判定规则 § 状态语义

找到 current_module 后,从 docs/02 § 二 的 REQ 列表里取出所有 module_id == current_module 的项,按原序得 req_list[](A5 约束保证同模块 REQ 连续)。模块名、需求卡目录等其它字段由后续步骤按需从 docs/08 § 二docs/01-需求清单/ 取,不在本步骤预读。

约束:

  • GitLab 凭据从 .env.local 读取(GITLAB_API_URL / GITLAB_TOKEN / GITLAB_PROJECT_ID
  • API 异常(HTTP 非 2xx / 找不到 MR / state 非合法值)一律硬停,禁止静默假设未 merged,向用户打印诊断信息,引导核查上述凭据与 docs/08 的 iid
  • 任何文件读取或解析失败 → 打印错误并停止

步骤 2:找不到未 merged 后端模块的处理

如果步骤 1 没找到任何未 merged 的后端模块——理论上不应触达此分支(coding-start 步骤 3 已确认存在未 merged 模块才会派发到本 skill),属于异常调用:

  • 打印诊断:"module-start 未发现未 merged 后端模块。请通过 /erp-workflow:coding-start 入口重新驱动——coding-start 会按 docs/08 § 二/§ 三 自动路由到正确阶段(后端 / 前端 / 全部完成)。"
  • 结束本 skill,不派发下游

步骤 3:确保处于模块分支

确保工作树位于 target_branch = module-<module_id>(例 module-module_sys)。

  • 已在该分支 → 继续步骤 4
  • 该分支已存在但当前不在 → checkout 过去
  • 该分支不存在 → 先把工作树切到远程默认分支(main 或 master)并 fast-forward 同步,作为新分支的干净 base,再 git checkout -b 创建模块分支

任何错误(定位不到默认分支 / 切换前工作树脏 / 不能 fast-forward / checkout 失败)一律停下并打印诊断信息,不自动 stash、不强制覆盖。

步骤 4:计算已完成 REQ 集合 done_reqs[]

req_list[] 中每个 REQ,检查 docs/superpowers/reviews/ 下是否存在该 REQ 的 review 文件、且其 verdict 字段为 approve。两条件都满足 → 收入 done_reqs[],步骤 6 推进时跳过这些 REQ。

每次进入本 skill 都重新计算(不缓存),保证中断/重跑后能从最新进度继续。

步骤 5:渲染并打印模块横幅

${CLAUDE_SKILL_DIR}/templates/module-start-banner-template.md 渲染输出。

步骤 6:派发

  • 还有未完成 REQ → 调用 Skill(feature-brainstorm) 启动该 REQ 的功能循环
  • 本模块 REQ 全部完成 → 调用 Skill(test-gate) 进入模块测试闸门

参考

  • docs/02-开发计划.md § 二 开发顺序清单(分发权威)
  • docs/08-模块任务管理.md § 二(后端模块元数据,含 MR: 字段;完成判定以 MR state 为准)
  • docs/superpowers/reviews/*.md(REQ 级进度事实——verdict=approve 即完成)
  • ${CLAUDE_SKILL_DIR}/templates/module-start-banner-template.md
  • 下游:
    • feature-brainstorm(每个未完成 REQ)
    • test-gate(本模块全部 REQ approve 后;phase=backend 由分支推断)
  • 上游:coding-start(步骤 3 派发到此;后端模块全 merged 时不会派发到此)