name: erp-plan-start description: A 阶段(Plan)入口与分发器。根据 docs/08 § 一 的 checkbox 状态派发到 A0~A5 对应 skill(§ 二是 B 阶段模块元数据,本 skill 不读)。Plan 全部完成(A5 已勾)时打印提示让用户运行 /erp-workflow:erp-coding-start 进入 B 阶段。 user-invocable: true
allowed-tools: Skill Read Glob Grep
所有输出必须使用中文。 用户是中文用户,所有对话、横幅、提示、报告一律用中文。
你是 ERP 项目规划阶段的编排器。你只派发 A 阶段(A0~A5)的 skill;docs/08 § 一 全部勾选后即停下,提示用户显式运行 /erp-workflow:erp-coding-start 进入 B 阶段,不直接派发任何 B 阶段 skill。你不直接生成任何文件。
第一步:读取 docs/08 + 决定分发目标 + mark_line
docs/08 § 一 是Plan 阶段进度权威(A0~A5 的 checkbox)。不做其他文件存在性检查——文件在不等于做完,只有 checkbox 是做完的证据。§ 二的模块元数据由 erp-coding-start 消费,本 skill 不读。
分发判定
-
docs/08 是否存在 用
Glob检查docs/08-模块任务管理.md。- 不存在 →
target=erp-project-init、mark_line=A0、unchecked_line=""(流程开始)。
- 不存在 →
找 § 一 第一个未勾的 A 子项 用
Grep(pattern^[[:space:]]*- \[ \].*A[0-5],-n)在docs/08-模块任务管理.md的 § 一 Plan 段搜索,取最小行号那一行作为unchecked_line。 注:§ 二 的模块行是纯 bullet(形如- module_id ...),不会被此 pattern 匹配。把
unchecked_line映射到target_skill+mark_line:
unchecked_line 特征 |
target_skill |
mark_line |
|---|---|---|
| 无 docs/08 | erp-project-init |
A0 |
含 A0 / A0 子项 |
erp-project-init |
A0 |
含 A1 / A1 子项 |
erp-scope-lock |
A1 |
含 A2 / A2 子项 |
erp-skeleton-gen |
A2 |
含 A3 / A3 子项 |
erp-db-init |
A3 |
含 A4 / A4 子项 |
erp-db-design-gen |
A4 |
含 A5 / A5 子项 |
erp-downstream-gen |
A5 |
| 无命中(A 全勾,Plan 阶段结束) | 无分发 | plan-done |
项目完成状态(B 阶段所有模块 MR merged)由 erp-coding-start 扫描 MR state 判定并打印,本 skill 不处理。
第二步:分发通知 + 调用目标 skill
本入口不画完整流程图——目标 A skill 会在自己的步骤 0 打印带 ▶ 当前位置的流程图。本步骤只做分发决策与通知。
2.1 Plan 已完成(mark_line=plan-done)
A 阶段所有 checkbox 均 [x]。因无下游 A skill 接手,本步骤自行打印流程图(▶ 标在"规划阶段到此结束")并给出提示,然后停下;项目整体完成状态由 erp-coding-start 扫描 MR state 判定,本 skill 不负责:
┌──────────────────────────────────────────────────────┐
│ 📋 阶段 A:规划(一次性) │
│ │
│ A0 初始化项目 → A1 锁范围(REQ 卡片) │
│ ↓ │
│ ⏸ 等你审阅 REQ,重新运行 /erp-plan-start 继续 │
│ ↓ │
│ A2 生成骨架 → A3 初始化 DB → A4 生成 DB 设计 → A5 生成下游文档│
│ ↓ │
│ ▶ 规划阶段到此结束 │
└──────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[erp-plan-start] ✅ Plan 阶段全部完成
⚠️ 进入 B 阶段前必须完成:
1. 人工通读 docs/01~10 + CLAUDE.md + sql/migrations/V1 + 各 scripts/*
2. 把全部 Plan 产物 commit:
git add -A && git commit -m "chore: plan phase A0~A5 done"
3. 推到远程:
git remote add origin <gitlab-url> # 若尚未添加
git push --no-verify -u origin master
# 首次 push 用 --no-verify 跳过 pre-push 的 test.sh;
# 本地 DB 尚未就位、scripts/test.sh 此时必然失败,属正常
# push 完成后到 GitLab UI 把 master(或 main)设为 protected
4. main(或 master)就绪后,再运行 /erp-workflow:erp-coding-start
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
不调任何下游 skill。
2.2 正常派发(target_skill 非空)
打印简短分发通知:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[erp-plan-start] → 派发到 <target_skill>
未勾项:<docs/08 中第一个 - [ ] 行内容>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
立即用 Skill 工具调用 target_skill。
参考
-
docs/08-模块任务管理.md(唯一进度权威) -
CLAUDE.md(项目指令) - 下游 skills(通过
Skill工具按名称调用)