SKILL.md
7.18 KB
name: scope-lock
description: A1 计划范围锁定——引导用户填写项目概述 + 技术栈 + 需求索引,并自动扩展 REQ 卡片待人工评审(依赖表 / 依赖接口两字段由模板写死 TBD(...) 占位,A3/A5 后续回填)。
user-invocable: false
allowed-tools: Read Write Edit Grep Skill AskUserQuestion
所有输出必须使用中文。
scope-lock
执行步骤
步骤 0:打印当前位置流程图
向用户展示当前在 A 阶段流程中的位置:
┌──────────────────────────────────────────────────────┐
│ 📋 阶段 A:规划(一次性) │
│ │
│ A0 初始化项目 → ▶ A1 锁范围(REQ 卡片) │
│ ↓ │
│ ⏸ 等你审阅 REQ,重新运行 /plan-start 继续 │
│ ↓ │
│ A2 生成骨架 → A3 生成 DB 设计 → A4 初始化 DB → A5 生成下游文档│
│ ↓ │
│ 规划阶段到此结束 │
└──────────────────────────────────────────────────────┘
A. 提示用户填写项目概述并等待
向用户输出:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[scope-lock] 请填写项目概述
📄 文件位置: ./CLAUDE.md
📌 编辑位置: § 🎯 项目概述
请将以下占位符替换为实际值:
- 项目名称
- 项目简述
- 目标用户
- 部署方式
改完后回来选择「继续」。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
用 AskUserQuestion 询问:
-
question:
项目概述填写完毕了吗?- 用户选择「继续」→ 用
Grep在CLAUDE.md搜索【人工填写:(限定 § 🎯 项目概述 节)。命中 → 打印残留行 + 路径,重新弹出同样的 AskUserQuestion;0 命中 → 勾选并进入步骤 B。 - 用户选择「有疑问想先沟通」→ 回答用户问题后,再次弹出同样的 QA。
- 用户选择「继续」→ 用
0 命中后,用 Edit 在 docs/08-模块任务管理.md 中勾选:
- [ ] 项目概述已填写(CLAUDE.md § 🎯 项目概述)
B. 提示用户检查默认技术栈并等待
docs/04-技术规范.md 已由 A0 project-init 用模板复制(默认技术栈,见 project-init/templates/docs-04-stack-template.md)。本步骤让用户检查 / 调整 § 零。
向用户输出:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[scope-lock] 技术栈已保存
📄 文件位置: ./docs/04-技术规范.md(由 A0 模板生成)
📌 编辑位置: § 零、技术栈总览
请检查技术栈表:
- 不需要的行直接删除(如纯后端项目删前端行)
- 需要替换的技术直接改
- 需要新增的条目直接加行
改完后回来选择「继续」。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
用 AskUserQuestion 询问:
-
question:
技术栈检查完毕了吗?- 用户选择「继续」→ 进入步骤 C。
- 用户选择「有疑问想先沟通」→ 回答用户问题后,再次弹出同样的 QA。
完成后,用 Edit 在 docs/08-模块任务管理.md 中勾选:
- [ ] 技术栈已确认(docs/04 § 零)
C. 提示用户填写需求清单并等待
docs/01-需求清单/index.md 已由 project-init 写入占位符模板,这里让用户补齐模块清单。
向用户输出:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[scope-lock] 请填写需求清单模块索引
📄 文件位置: ./docs/01-需求清单/index.md
📌 编辑位置: § 模块索引(表格)
请按业务列出所有模块:
- 每行一个模块(如 SYS 系统管理 / PUR 采购 / SAL 销售)
- 「核心功能点」只需关键词,CC 会扩展为完整 REQ 卡片
改完后回来选择「继续」。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
用 AskUserQuestion 询问:
-
question:
需求清单模块索引填写完毕了吗?- 用户选择「继续」→ 进入步骤 D。
- 用户选择「有疑问想先沟通」→ 回答用户问题后,再次弹出同样的 QA。
完成后,用 Edit 在 docs/08-模块任务管理.md 中勾选:
- [ ] 需求清单索引已填写(docs/01-需求清单/index.md)
D. 生成 REQ 卡片并停下等人工审阅
- 用
Grep校验docs/01-需求清单/index.md无【人工填写:残留;有则回步骤 C。 - 用
Read读index.md解析模块索引。 - 对每个模块:
- 基于「核心功能点」扩展若干 REQ-XXX-NNN 卡片
- 用
${CLAUDE_SKILL_DIR}/templates/req-card-template.md渲染每张(渲染约定见模板顶部 HTML 注释)。 - 用
${CLAUDE_SKILL_DIR}/templates/docs-01-module-template.md包装卡片列表,用Write写入docs/01-需求清单/<module_code>-<module_name>.md。
- 用
Edit在docs/08-模块任务管理.md勾选(A1 子项 + A1 顶层):- [ ] REQ 卡片已生成(docs/01-需求清单/*.md,schema/api 字段标记为 TBD)- [ ] A1 范围锁定 — scope-lock
- 打印停下横幅并停止:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[scope-lock] ✅ A1 范围锁定完成
产出:
✓ CLAUDE.md § 🎯 项目概述
✓ docs/04 § 零 技术栈
✓ docs/01-需求清单/index.md 模块索引
✓ docs/01-需求清单/<module>-*.md REQ 卡片
⏸ 现在请你审阅每张 REQ 卡片(路径:`docs/01-需求清单/<module_code>-<module_name>.md`)
审阅是 Plan 阶段的关键人工关口,请认真逐张过一遍。
审阅完成后,运行以下命令继续进入 A2:
/erp-workflow:plan-start
(入口会读取 docs/08 进度,自动派发到 A2 skeleton-gen)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
参考
-
CLAUDE.md§ 🎯 项目概述(写入目标) -
docs/04-技术规范.md(技术栈输出,供 skeleton-gen 读取使用) -
docs/01-需求清单/index.md(模块索引输入) -
docs/01-需求清单/<module>-*.md(REQ 卡片输出,A3 db-design-gen 会回填 TBD 字段) ${CLAUDE_SKILL_DIR}/templates/req-card-template.md${CLAUDE_SKILL_DIR}/templates/docs-01-module-template.md