Commit 2b6da392fe590d6c117c4127adb442aa443c4a89
1 parent
304fb9fb
docs(lite): rewrite README for lite, verify CLAUDE template index, final consistency sweep
- README fully rewritten: reflects 11-skill lite structure, unified feature loop, 2-agent roster, no hooks, accurate templates/scripts/banners lists, corrected prerequisite and design-principle sections - CLAUDE-template index verified correct (11 skills, 5 docs, two-phase model) - Sweep fixes: rename module-reports path in milestone SKILL.md to milestone-reports; update stale skill name refs (scope-lock→lite-init, skeleton-gen→lite-design, db-design-gen→lite-design, downstream-gen→lite-build-db, test-gate→milestone) in templates, scripts, and SKILL.md files; fix fe-code-reviewer docs/06/docs/09 refs to docs/04; remove docs/02 negation ref in phase-driver; strip historical project-init+scope-lock mention from lite-init description
Showing
13 changed files
with
132 additions
and
243 deletions
README.md
| 1 | -# erp-workflow | 1 | +# erp-workflow(lite) |
| 2 | 2 | ||
| 3 | -Claude Code 插件:ERP / 后端管理系统全流程开发框架。 | 3 | +Claude Code 插件:ERP / 后端管理系统全流程开发框架(精简版)。 |
| 4 | 4 | ||
| 5 | -把"从零到 N 个模块上线 + 前端整体阶段"的整个流程固化成 **25 个 skill + 2 个 agent + 1 个 hook + 41 份模板**,让 CC 在 schema 演化用 Flyway migration、需求可追溯、纯本地 git 的前提下推进编码。后端按模块循环依次打里程碑 tag,所有后端模块打里程碑后进入前端整体阶段(以项目根 `prototype/` 静态 HTML mockup 为页面权威)。 | 5 | +把"从零到 N 个后端模块上线 + 前端整体阶段"的整个流程固化成 **11 个 skill + 2 个 agent + 27 份模板**,让 CC 在 schema 演化用 Flyway migration、需求可追溯、纯本地 git 的前提下推进编码。后端按模块循环依次打里程碑 tag,所有后端模块打里程碑后进入前端整体阶段(以项目根 `prototype/` 静态 HTML mockup 为页面权威)。两阶段共用同一套功能循环 skill,由 `phase` 参数区分。 |
| 6 | 6 | ||
| 7 | ## 这个插件做什么 | 7 | ## 这个插件做什么 |
| 8 | 8 | ||
| 9 | ``` | 9 | ``` |
| 10 | -📋 阶段 A:规划(一次性,入口 /erp-workflow:plan-start) | ||
| 11 | - | ||
| 12 | - A0 初始化项目 → A1 锁范围(生成 REQ 卡片) | ||
| 13 | - ↓ | ||
| 14 | - ⏸ 审阅 REQ → 重新运行 /plan-start | ||
| 15 | - ↓ | ||
| 16 | - A2 生成骨架 → A3 生成 DB 设计(REQ → docs/03 + 回填依赖表) | ||
| 17 | - ↓ | ||
| 18 | - ⏸ 审阅 docs/03 → 重新运行 /plan-start | ||
| 19 | - ↓ | ||
| 20 | - A4 初始化 DB(docs/03 → V1 migration → 自动 apply 到本地 MySQL) | ||
| 21 | - ↓ | ||
| 22 | - A5 生成下游文档(docs/02 / docs/05 / docs/06 § 三 / docs/10) | ||
| 23 | - ↓ | ||
| 24 | - 用户显式 /erp-workflow:coding-start | ||
| 25 | - | ||
| 26 | -🔁 阶段 B:编码(入口 /erp-workflow:coding-start) | ||
| 27 | - | ||
| 28 | - B-后端(按模块循环) | ||
| 29 | - 功能循环:Brainstorm → Plan → TDD → Verify → Review | ||
| 30 | - 模块循环:本地测试闸门 → 写模块报告 → 本地 merge 进默认分支 + 打 milestone/<id> tag → 自动回 coding-start → 下一模块 | ||
| 31 | - | ||
| 32 | - ↓ 后端全部打里程碑后 | ||
| 33 | - | ||
| 34 | - B-前端(整体阶段,1 个里程碑 tag) | ||
| 35 | - 入口门禁:检查项目根 prototype/ 至少含 1 个 *.html mockup(缺失则 AskUserQuestion 提示用户补齐) | ||
| 36 | - FE 拆分:AI 自主推导功能清单(业务功能粒度,与 HTML 文件数无关)写入 docs/08 § 三;已有则加载——无人工审阅断点(全程无人工介入) | ||
| 37 | - FE 循环(每个 FE-NN):fe-feature-brainstorm → -plan → -tdd → -verify → -review | ||
| 38 | - 收尾:test-gate(phase=frontend) → module-report(phase=frontend) → milestone-tag(分支 frontend-phase)→ 全部完成 | ||
| 39 | - | ||
| 40 | -⚙️ 后台守门:占位符未填 / 中断触发 / 跨模块改动未记录 | 10 | +┌────────────────────────────────────────────────────────┐ |
| 11 | +│ erp-workflow-lite │ | ||
| 12 | +│ │ | ||
| 13 | +│ 计划(/plan-start,一次性,2 个审阅断点) │ | ||
| 14 | +│ ① lite-init 初始化 + REQ 卡片 ⏸ 审阅 REQ │ | ||
| 15 | +│ ② lite-design 脚手架 + docs/03 ⏸ 审阅 schema │ | ||
| 16 | +│ ③ lite-build-db V1+apply + docs/05/08 │ | ||
| 17 | +│ │ | ||
| 18 | +│ 编码(/coding-start,统一功能循环) │ | ||
| 19 | +│ 后端模块循环 ┐ │ | ||
| 20 | +│ 前端整体阶段 ┘→ phase-driver │ | ||
| 21 | +│ feature-spec → feature-tdd → feature-review │ | ||
| 22 | +│ 全 approve → milestone(test→报告→merge+tag) │ | ||
| 23 | +└────────────────────────────────────────────────────────┘ | ||
| 41 | ``` | 24 | ``` |
| 42 | 25 | ||
| 43 | ## 首次使用 | 26 | ## 首次使用 |
| @@ -54,13 +37,11 @@ Claude Code 插件:ERP / 后端管理系统全流程开发框架。 | @@ -54,13 +37,11 @@ Claude Code 插件:ERP / 后端管理系统全流程开发框架。 | ||
| 54 | ``` | 37 | ``` |
| 55 | Plan 阶段**三段式**执行,中间有两个人工审阅断点: | 38 | Plan 阶段**三段式**执行,中间有两个人工审阅断点: |
| 56 | 39 | ||
| 57 | - - **第一段(首次运行)**:执行 **A0 → A1**(创建骨架 / 锁技术栈 / 填需求 / 生成 REQ 卡片骨架)后**停下**,等你审阅并补全 `docs/01-需求清单/<module>/REQ-*.md`(CC 已起草 req_id / title / goal / rules / constraints / acceptance;输入 / 输出 各含一句简述 + N 张示例字段表,模板原样复制由你按业务编辑;依赖表 / 依赖接口保留 `TBD(A3/A5 自动补)` 由后续 skill 回填——Plan 阶段第一个人工关口:业务范围) | ||
| 58 | - - **第二段(REQ 审阅完重新运行)**:继续 **A2 → A3**(生成骨架 / 从 REQ 正向设计 `docs/03-数据库设计文档.md` 并回填 REQ 依赖表)后再次**停下**,等你审阅 docs/03 的表 / 字段 / 索引 / 外键(第二个人工关口:数据库 schema —— A4 会基于它翻译 DDL 并 apply 到 MySQL,所以这关口与 REQ 审阅同等重要) | ||
| 59 | - - **第三段(docs/03 审阅完重新运行)**:执行 **A4 → A5**(解析 docs/03 → 生成 V1 migration → 自动 `DROP+CREATE` 本地 schema 并 apply → 生成下游文档),Plan 完成后再次**停下** | 40 | + - **第一段(首次运行)**:执行 `lite-init`(依赖检查 / git init / 初始化 docs + CLAUDE.md / 引导填技术栈 + 需求索引 / 生成 REQ 卡片骨架)后**停下**,等你审阅并补全 `docs/01-需求清单/<module>/REQ-*.md`(第一个人工关口:业务范围) |
| 41 | + - **第二段(REQ 审阅完重新运行)**:执行 `lite-design`(生成 docs/04 架构规范 / scripts / .env.local / 从 REQ 正向设计 `docs/03-数据库设计文档.md`)后再次**停下**,等你审阅 docs/03 的表 / 字段 / 索引 / 外键(第二个人工关口:database schema) | ||
| 42 | + - **第三段(docs/03 审阅完重新运行)**:执行 `lite-build-db`(解析 docs/03 → 生成 V1 migration → DROP+CREATE 本地 schema 并 apply → 生成 docs/05 API 契约 + 追加 docs/08 § 二 模块清单),Plan 完成后**停下** | ||
| 60 | 43 | ||
| 61 | - 每次运行都会自动接上次停下的地方继续;中途可以随时关闭 CC,下次运行同样的命令即可恢复。Plan 完成后**不会自动进入编码**,需要你手动运行 `/erp-workflow:coding-start`。 | ||
| 62 | - | ||
| 63 | - > 两个审阅断点的处理方式一致:A1 / A3 完成时 skill 已自动勾选 `docs/08-模块任务管理.md § 一` 该阶段的全部子项 + 顶层;审阅是隐式的——你看完 REQ 卡片 / docs/03 后直接重新运行 `/plan-start`,下次入口就会派发到下一阶段。如果审阅时发现需要修订,直接编辑 docs/01 / docs/03 即可,不依赖 docs/08 的勾选状态。 | 44 | + 每次运行都会自动接上次停下的地方继续。Plan 完成后**不会自动进入编码**,需要你手动运行 `/erp-workflow:coding-start`。 |
| 64 | 45 | ||
| 65 | 3. **Coding 阶段入口**(后端模块循环 → 前端整体阶段): | 46 | 3. **Coding 阶段入口**(后端模块循环 → 前端整体阶段): |
| 66 | ``` | 47 | ``` |
| @@ -72,21 +53,21 @@ Claude Code 插件:ERP / 后端管理系统全流程开发框架。 | @@ -72,21 +53,21 @@ Claude Code 插件:ERP / 后端管理系统全流程开发框架。 | ||
| 72 | 53 | ||
| 73 | | `backend_done` | `frontend_done` | coding-start 派发 | | 54 | | `backend_done` | `frontend_done` | coding-start 派发 | |
| 74 | |---|---|---| | 55 | |---|---|---| |
| 75 | - | `false` | 任意 | `module-start`(写后端) | | ||
| 76 | - | `true` | `false` | `frontend-start`(写前端) | | 56 | + | `false` | 任意 | `phase-driver(phase=backend)`(写后端) | |
| 57 | + | `true` | `false` | `phase-driver(phase=frontend)`(写前端) | | ||
| 77 | | `true` | `true` | 打印"所有阶段已完成",停下 | | 58 | | `true` | `true` | 打印"所有阶段已完成",停下 | |
| 78 | 59 | ||
| 79 | - docs/08 里程碑字段与 `git tag -l` 不一致(字段填了但 tag 不存在,或反之)→ 停下报错(绝不静默假设完成状态)。 | ||
| 80 | - | ||
| 81 | - **后端阶段(module-start 内,单一职责)**: | ||
| 82 | - - 切到 `module-<id>` 分支,跑功能循环(feature-brainstorm → ... → feature-review)→ 全 approve → test-gate → module-report → milestone-tag(本地 merge + 打 tag)→ 自动回 coding-start 再次路由 | 60 | + docs/08 里程碑字段与 `git tag -l` 不一致 → 停下报错(绝不静默假设完成状态)。 |
| 83 | 61 | ||
| 84 | - **前端阶段(frontend-start 内,自带前置门禁)**: | ||
| 85 | - - 步骤 1:prototype/ 门禁(≥ 1 个 *.html,缺失则 AskUserQuestion 提示用户补齐 → 停下) | ||
| 86 | - - 步骤 2:准备 FE 清单(无审阅断点)。§ 三 占位则 AI 扫 prototype + docs/01 + docs/05 自主推导 FE 业务功能清单写入 § 三(每个 FE 标注关联 REQ + 关联原型;FE 数与 HTML 文件数无关);§ 三 已有则直接加载 | ||
| 87 | - - 步骤 3-7:里程碑 tag 判定 → 切 `frontend-phase` 分支 → 跑 fe-feature 循环(fe-feature-brainstorm → ... → fe-feature-review,专用 `fe-code-reviewer` agent 做 7 维 review)→ 全 approve → test-gate(frontend) → module-report(frontend) → milestone-tag(docs/08 § 三 整体里程碑)→ 自动回 coding-start → 全部完成 | 62 | + **后端阶段(phase-driver phase=backend)**: |
| 63 | + - 切到 `module-<id>` 分支,对每个未完成 REQ:`feature-spec → feature-tdd → feature-review` | ||
| 64 | + - 全 approve → `milestone`(内置测试闸门 + 完成报告 + 本地 merge + 打 `milestone/<id>` tag)→ 自动回 `coding-start` 再次路由 | ||
| 88 | 65 | ||
| 89 | - `docs/08 § 二` 每后端模块占一行 bullet,`§ 三` 是前端阶段整体段,完成信号统一由本地 `git tag -l 'milestone/<id>'` 判定。 | 66 | + **前端阶段(phase-driver phase=frontend,自带前置门禁)**: |
| 67 | + - prototype/ 门禁(≥ 1 个 *.html,缺失则 AskUserQuestion 提示用户补齐 → 停下) | ||
| 68 | + - 准备 FE 清单(无审阅断点):§ 三 占位则 AI 扫 prototype + docs/01 + docs/05 推导写入;§ 三 已有则加载 | ||
| 69 | + - 切 `frontend-phase` 分支,对每个未完成 FE:`feature-spec → feature-tdd → feature-review`(`fe-code-reviewer` agent 做 7 维 review) | ||
| 70 | + - 全 approve → `milestone`(内置测试闸门 vitest + Playwright + 完成报告 + merge + tag)→ 自动回 `coding-start` → 全部完成 | ||
| 90 | 71 | ||
| 91 | 4. **中途恢复**:任何时候运行对应入口命令——根据 Plan § 一 checkbox、§ 二 各后端模块里程碑 tag、§ 三 前端整体里程碑 tag 跳到当前该做的事。 | 72 | 4. **中途恢复**:任何时候运行对应入口命令——根据 Plan § 一 checkbox、§ 二 各后端模块里程碑 tag、§ 三 前端整体里程碑 tag 跳到当前该做的事。 |
| 92 | 73 | ||
| @@ -95,214 +76,122 @@ Claude Code 插件:ERP / 后端管理系统全流程开发框架。 | @@ -95,214 +76,122 @@ Claude Code 插件:ERP / 后端管理系统全流程开发框架。 | ||
| 95 | ``` | 76 | ``` |
| 96 | erp-workflow-plugin/ | 77 | erp-workflow-plugin/ |
| 97 | ├── .claude-plugin/ | 78 | ├── .claude-plugin/ |
| 98 | -│ └── plugin.json # 插件清单,声明 skills 四个子目录 | 79 | +│ └── plugin.json # 插件清单,声明 skills 三个子目录 |
| 99 | ├── README.md # 本文档 | 80 | ├── README.md # 本文档 |
| 100 | -├── hooks/ | ||
| 101 | -│ ├── hooks.json # hook 注册表(1 个 hook) | ||
| 102 | -│ └── scripts/*.sh # 1 个 hook 脚本 | ||
| 103 | ├── agents/ | 81 | ├── agents/ |
| 104 | -│ ├── superpower-code-reviewer.md # 后端 code-reviewer agent(feature-review 调用) | ||
| 105 | -│ └── fe-code-reviewer.md # 前端专用 reviewer(fe-feature-review 调用,硬编码 7 维 review) | 82 | +│ ├── superpower-code-reviewer.md # 后端 code-reviewer agent(feature-review 后端阶段调用) |
| 83 | +│ └── fe-code-reviewer.md # 前端专用 reviewer(feature-review 前端阶段调用,7 维 review) | ||
| 106 | └── skills/ | 84 | └── skills/ |
| 107 | - ├── plan/ # 阶段 A:6 个一次性规划 skill | ||
| 108 | - ├── coding/ # 阶段 B:15 个 skill = 9 个后端模块/功能循环 + frontend-start + 5 个 fe-feature-* | ||
| 109 | - └── crosscut/ # 横切:2 个入口 + 1 中断守门 + 1 留痕 skill | 85 | + ├── plan/ # 计划阶段:3 个一次性规划 skill |
| 86 | + │ ├── lite-init/ | ||
| 87 | + │ ├── lite-design/ | ||
| 88 | + │ └── lite-build-db/ | ||
| 89 | + ├── coding/ # 编码阶段:5 个 skill(两阶段共用统一功能循环) | ||
| 90 | + │ ├── phase-driver/ | ||
| 91 | + │ ├── feature-spec/ | ||
| 92 | + │ ├── feature-tdd/ | ||
| 93 | + │ ├── feature-review/ | ||
| 94 | + │ └── milestone/ | ||
| 95 | + └── crosscut/ # 横切:3 个 skill(2 个入口 + 1 个中断守门) | ||
| 96 | + ├── plan-start/ | ||
| 97 | + ├── coding-start/ | ||
| 98 | + └── interrupt-check/ | ||
| 110 | ``` | 99 | ``` |
| 111 | 100 | ||
| 112 | -## Hook 清单(1 个,在 hooks/hooks.json 注册) | 101 | +## Hook 清单 |
| 113 | 102 | ||
| 114 | -| Hook | 脚本 | 事件 | 触发条件 | 作用 | | ||
| 115 | -|---|---|---|---|---| | ||
| 116 | -| 跨模块改动留痕 | `log-cross-module.sh` | PostToolUse / Edit \| Write | 当前处于 `module-*` 分支 且 编辑目标路径落在 `docs/08 § 二` 中**非当前模块**的 path 范围内(无论目标模块是否已打里程碑) | 把改动追加为 `TBD(CC 补)` 存根到 `<current_module>-cross-module.md`;通过 `additionalContext` 软提示 CC 调 `cross-module-log` skill **自主推断**补「原因 / 影响评估」两列。即时性由 CC 自己决定;**最迟在 `module-report` § ⑦ 硬闸门处**(TBD 未清空会阻断模块完成报告),保证模块完成前所有 TBD 必被 CC 填实 | | 103 | +lite 版本**无 Hook**——跨模块改动留痕已移除。跨模块改动须在 `milestone` 完成报告的「偏离与取舍」节人工记录。 |
| 117 | 104 | ||
| 118 | -## Skill 清单(25 个) | 105 | +## Skill 清单(11 个) |
| 119 | 106 | ||
| 120 | -### Plan 阶段(6 个,`skills/plan/`) | 107 | +### 入口(`skills/crosscut/`) |
| 121 | 108 | ||
| 122 | -| # | Skill | 作用 | 流程中谁调用 | | ||
| 123 | -|---|---|---|---| | ||
| 124 | -| A0 | `project-init` | • 依赖检查(`mysql` 在 PATH,缺失则尝试自动安装)<br>• 空目录初始化:`cp` 模板创建 CLAUDE.md / docs/01/index.md / docs/08<br>• `git init` | `plan-start` | | ||
| 125 | -| A1 | `scope-lock` | • 引导填项目概述 / 技术栈 / 需求索引<br>• 按 `docs/01-需求清单/<module>/{_module.md, REQ-*.md}` 子目录结构生成 REQ 卡片骨架(CC 起草 req_id / title / goal / rules / constraints / acceptance;输入 / 输出 各含一句简述 + N 张示例字段表(输入 8 列 / 输出 3 列),全部原样复制自模板,由人工按业务编辑;`依赖表 / 依赖接口` 留 `TBD(A3/A5 自动补)`)<br>• **停下**等人工审阅 + 改输入 / 输出,审阅完毕用 `/plan-start` 恢复续进 A2 | A0 | | ||
| 126 | -| A2 | `skeleton-gen` | • 生成架构文档:docs/04 § 一+ / docs/06 / docs/07 / docs/09<br>• 生成工具脚本:scripts/*.sh、.env.local<br>• 创建 `sql/migrations/` 空目录(Flyway 准备)<br>• 合并 .gitignore(逐行判重) | `plan-start` | | ||
| 127 | -| A3 | `db-design-gen` | • 从 docs/01 REQ 卡片正向设计 `docs/03-数据库设计文档.md`(schema SSoT)<br>• 回填 REQ 卡片依赖表(`TBD(A3 自动补)` → 实际表名)<br>• **停下**等人工审阅 docs/03,审阅完毕用 `/plan-start` 恢复续进 A4 | A2 | | ||
| 128 | -| A4 | `db-init` | • LLM 解析 docs/03 → `sql/migrations/V1__initial_schema.sql`(DDL only)<br>• **5 维度全量校验** DDL ↔ docs/03(表名 / 列名+列序 / 类型+nullable+默认值 / 索引名 / FK 名),fail-closed<br>• 验证 MySQL 连接<br>• 调 `scripts/setup-test-db.sh` 复用三层防护(与 B 阶段 test.sh 共用)→ DROP+CREATE 空库<br>• apply V1 + `SHOW TABLES` 行数自检 | A3 | | ||
| 129 | -| A5 | `downstream-gen` | • 一次性生成 docs/02 / docs/05 / docs/06 § 三 / docs/10<br>• 回填 REQ 卡片依赖接口(`TBD(A5 自动补)` → 实际 endpoint)<br>• 追加模块清单到 docs/08 § 二<br>• 最终占位符扫描(TBD 自动补 + `【人工填写:】` QA 循环)<br>• 打印 Plan 完成横幅并**停下**(不自动进 B) | A4 | | ||
| 130 | - | ||
| 131 | -### Coding 阶段(15 个,`skills/coding/`) | 109 | +| Skill | 作用 | 流程中谁调用 | |
| 110 | +|---|---|---| | ||
| 111 | +| `plan-start` | **A 阶段入口**。读取 docs/08 § 一找第一个未勾计划段(①②③)→ 派发对应 plan skill;全部完成时提示运行 coding-start | **用户手动**运行 `/erp-workflow:plan-start` | | ||
| 112 | +| `coding-start` | **B 阶段入口 + 阶段分发器(只做分发)**。① 校验 Plan 已完成(docs/08 § 一 ①②③ 全勾)② 后端完成性检查(§ 二 + git tag)③ 前端完成性检查(§ 三 + tag)④ 真值表派发到 phase-driver | **用户手动**运行 `/erp-workflow:coding-start`;`milestone` 每阶段完成后自动回调 | | ||
| 113 | +| `interrupt-check` | 检查 CLAUDE.md 的 3 项中断清单;触发则追加 Blocker 到 spec 文件并停下 | 功能循环各步骤和生成重要制品前自动调用 | | ||
| 132 | 114 | ||
| 133 | -**触发与顺序**(`coding-start` 是唯一由用户手动触发的入口,下面所有 skill 都由 skill 链自动调用): | 115 | +### 计划阶段(`skills/plan/`) |
| 134 | 116 | ||
| 135 | -``` | ||
| 136 | -/erp-workflow:coding-start ← 用户每次手动触发;阶段分发器(只做分发) | ||
| 137 | - │ | ||
| 138 | - │ ① Plan 完成校验(docs/08 § 一 A0~A5) | ||
| 139 | - │ ② 后端完成性检查(§ 二 + git tag) | ||
| 140 | - │ ├ 未完成 → 立即派发 module-start,结束 | ||
| 141 | - │ └ 已完成 → 继续 ③ | ||
| 142 | - │ ③ 前端完成性检查(§ 三 整体里程碑 + tag) | ||
| 143 | - │ ├ 已完成 → 打印"所有阶段已完成",结束 | ||
| 144 | - │ └ 未完成 → 派发 frontend-start,结束 | ||
| 145 | - │ | ||
| 146 | - ├─ 后端未完成 → 派发 module-start(写后端) | ||
| 147 | - │ │ | ||
| 148 | - │ │ 切 module-<id> 分支,对每个未完成 REQ: | ||
| 149 | - │ │ feature-brainstorm → -plan → -tdd → -verify → -review | ||
| 150 | - │ │ | ||
| 151 | - │ │ review approve → 回 module-start(下一 REQ) | ||
| 152 | - │ │ request-changes (<5) → fix → 回 feature-verify | ||
| 153 | - │ │ request-changes (=5) → 停下(升级给人) | ||
| 154 | - │ │ | ||
| 155 | - │ │ 本模块所有 REQ approve: | ||
| 156 | - │ │ test-gate(phase=backend) → module-report → milestone-tag | ||
| 157 | - │ │ (本地 merge 进默认分支 + 打 milestone/<id>,写 docs/08 § 二) | ||
| 158 | - │ │ | ||
| 159 | - │ └─ 自动回 coding-start → 再次路由(无人工介入) | ||
| 160 | - │ | ||
| 161 | - ├─ 后端完成 & 前端完成 → 打印"所有阶段已完成",停下 | ||
| 162 | - │ | ||
| 163 | - └─ 后端完成 & 前端未完成 → 派发 frontend-start(写前端) | ||
| 164 | - │ | ||
| 165 | - │ frontend-start 自带前置门禁(coding-start 不做): | ||
| 166 | - │ ① prototype/ 门禁(≥ 1 个 *.html,缺失则 AskUserQuestion) | ||
| 167 | - │ ② 准备 FE 清单(无审阅断点): | ||
| 168 | - │ § 三 已有 FE bullet → 加载 | ||
| 169 | - │ § 三 仅占位 → AI 推导写入 | ||
| 170 | - │ ③ 切 frontend-phase 分支 | ||
| 171 | - │ | ||
| 172 | - │ | ||
| 173 | - │ 准备 FE 清单(无审阅断点): | ||
| 174 | - │ § 三 占位 → 扫 prototype + docs/01 + docs/05 | ||
| 175 | - │ → AI 自主推导 FE 业务功能清单写入 § 三 | ||
| 176 | - │ (含 fe_id / 功能名 / 关联 REQ / 关联原型) | ||
| 177 | - │ § 三 已有 FE bullet → 直接加载 | ||
| 178 | - │ | ||
| 179 | - │ 切 frontend-phase 分支 | ||
| 180 | - │ FE 是业务功能粒度(与 HTML 文件数无关, | ||
| 181 | - │ 一个 HTML 可拆多个 FE / 多 HTML 可合一个 FE) | ||
| 182 | - │ | ||
| 183 | - │ 对每个未完成 FE: | ||
| 184 | - │ fe-feature-brainstorm → -plan → -tdd → -verify → -review | ||
| 185 | - │ (review 委托 fe-code-reviewer agent,硬编码 7 维 checklist) | ||
| 186 | - │ | ||
| 187 | - │ review approve → 回 frontend-start(下一 FE) | ||
| 188 | - │ request-changes (<5) → fix → 回 fe-feature-verify | ||
| 189 | - │ request-changes (=5) → 停下 | ||
| 190 | - │ | ||
| 191 | - │ 全部 FE approve: | ||
| 192 | - │ test-gate(phase=frontend)(vitest + playwright,子会话跑) | ||
| 193 | - │ → module-report(phase=frontend) | ||
| 194 | - │ → milestone-tag(docs/08 § 三 整体里程碑) | ||
| 195 | - │ | ||
| 196 | - └─ 自动回 coding-start → "所有阶段已完成"(无人工介入) | ||
| 197 | -``` | ||
| 198 | - | ||
| 199 | -| Skill | 做什么 | 谁触发它 | | 117 | +| Skill | 作用 | 流程中谁调用 | |
| 200 | |---|---|---| | 118 | |---|---|---| |
| 201 | -| `module-start` | **后端模块循环单一职责**(不感知前端阶段)。切 `module-<id>` 分支,扫 `docs/superpowers/reviews/*.md` 的 `verdict=approve` 计算已完成 REQ,推进第一个未完成 REQ;本模块全 approve → `test-gate`。**幂等可重入** | `coding-start` 派发(仅当后端有未打里程碑模块时);`feature-review` approve 后回调 | | ||
| 202 | -| `feature-brainstorm` | 功能循环步骤 1:交互 brainstorm → 生成 `docs/superpowers/specs/*.md` | `module-start` 推进 REQ 时调用 | | ||
| 203 | -| `feature-plan` | 功能循环步骤 2:spec → 任务级 plan(文件路径 + API 签名 + 测试意图 + 完成判据,代码由 TDD 阶段产出),输出 `docs/superpowers/plans/*.md` | `feature-brainstorm` 链式调用 | | ||
| 204 | -| `feature-tdd` | 功能循环步骤 3:红绿循环(写失败测试 → 实现 → 子会话验证通过 → commit 到 `module-<id>` 分支);路径硬护栏:`impl_file` 落 `frontend/` 前缀 → 硬停(UI 推迟到前端阶段) | `feature-plan` 链式调用 | | ||
| 205 | -| `feature-verify` | 功能循环步骤 4:将全量测试派发到子会话执行一次,用模板渲染 evidence | `feature-tdd` 链式调用;`feature-review` 在 request-changes 修复后重新调用 | | ||
| 206 | -| `feature-review` | 功能循环步骤 5:AI 自审,写 `docs/superpowers/reviews/*.md`。approve → 回 `module-start`;request-changes → 逐项 Edit + fix commit → 回 `feature-verify` 重新执行(最多 5 轮,第 5 轮仍 request-changes 则停下) | `feature-verify` 链式调用 | | ||
| 207 | -| `test-gate` | 里程碑 tag 前硬闸门。按当前分支推 phase:`module-*` → 跑 `scripts/test.sh`(drop+create 空库、Flyway apply、测试);`frontend-phase` → 跑 vitest + playwright(命令取自 docs/04 § 零)。通过 → 写 `<phase_id>-test-gate.md` 并 commit 到当前分支;失败停下 | `module-start`(后端 REQ 全 approve 后)/ `frontend-start`(FE 全 approve 后) | | ||
| 208 | -| `module-report` | 中断检查 → 生成 12 节完成报告 `docs/superpowers/module-reports/<date>-<phase_id>.md`(前端阶段 § ④/§ ⑥ 写 N/A)→ commit 到当前分支(后端:module-* 分支;前端:frontend-phase 分支) | `test-gate` 链式调用 | | ||
| 209 | -| `milestone-tag` | 验证当前分支 = `module-<id>` 或 `frontend-phase` 且 `git status --porcelain` worktree 干净 → 探测本地默认分支 → `git merge --no-ff` 本地集成进默认分支 → 把 docs/08 § 二 该模块的 `里程碑: —`(后端) / § 三 `整体里程碑: —`(前端) 回写为 `milestone/<id>` 并 commit → `git tag -a milestone/<id>` 打里程碑 → 追加 tag 名到报告并 commit → **自动回调 coding-start 推进下一阶段(无人工介入)**。完成由本地 `git tag -l` 判定 | `module-report` 链式调用 | | ||
| 210 | -| `frontend-start` | 写前端阶段单一职责。步骤 1 自带 prototype/ 门禁(≥ 1 个 *.html,缺失则 AskUserQuestion)。步骤 2 准备 FE 清单(无审阅断点):§ 三 占位则 AI 自主推导写入;§ 三 已有则加载。后续切 `frontend-phase` 分支 + 计算未完成 FE + 推进第一个 FE 的 fe-feature 循环;全 approve → `test-gate(phase=frontend)` | `coding-start` 派发(仅当 `backend_done=true && frontend_done=false`);`fe-feature-review` approve 后回调 | | ||
| 211 | -| `fe-feature-brainstorm` | 前端功能循环步骤 1:基于 FE 关联的 `associated_prototypes[]` + `associated_reqs[]` + docs/05 + docs/06 § 二 + docs/04 § 零前端 → spec | `frontend-start` 推进 FE 时调用,传 `{ fe_id, name, associated_reqs[], associated_prototypes[] }` | | ||
| 212 | -| `fe-feature-plan` | 前端功能循环步骤 2:spec → 任务级计划(组件/路由/hook/API client,`impl_file` 必须 `frontend/` 前缀) | `fe-feature-brainstorm` 链式调用 | | ||
| 213 | -| `fe-feature-tdd` | 前端功能循环步骤 3:jsdom 组件测试 + Playwright E2E(E2E 派子会话);commit trailer `REQ_ID: FE-NN`;路径硬护栏 `frontend/` | `fe-feature-plan` 链式调用 | | ||
| 214 | -| `fe-feature-verify` | 前端功能循环步骤 4:派子会话跑 vitest + playwright,按模板渲染证据 | `fe-feature-tdd` 链式调用;`fe-feature-review` request-changes 修复后重调 | | ||
| 215 | -| `fe-feature-review` | 前端功能循环步骤 5:委托 `fe-code-reviewer` agent 做 7 维 review。approve → 回 `frontend-start`;request-changes 5 轮上限 | `fe-feature-verify` 链式调用 | | ||
| 216 | - | ||
| 217 | -### Crosscut(4 个,`skills/crosscut/`) | 119 | +| `lite-init` | 计划 ①:依赖检查 / git init / 创建 CLAUDE.md + docs/01/index.md + docs/04 § 零 + docs/08;引导填项目概述 / 技术栈 / 需求索引;按模块生成 REQ 卡片骨架;**停下**等人工审阅 REQ | `plan-start` | |
| 120 | +| `lite-design` | 计划 ②:生成 docs/04 架构规范大纲 + scripts(test.sh / setup-test-db.sh)+ .env.local + .gitignore 合并;从 docs/01 REQ 正向设计 `docs/03-数据库设计文档.md`(schema SSoT);**停下**等人工审阅 docs/03 | `plan-start` | | ||
| 121 | +| `lite-build-db` | 计划 ③:解析 docs/03 → `sql/migrations/V1__initial_schema.sql`(5 维度校验 DDL ↔ docs/03)→ DROP+CREATE 本地 schema 并 apply V1;生成 docs/05 API 契约 + 回填 REQ 依赖接口;追加模块清单到 docs/08 § 二;打印 Plan 完成横幅并**停下** | `plan-start` | | ||
| 122 | + | ||
| 123 | +### 编码阶段(`skills/coding/`) | ||
| 218 | 124 | ||
| 219 | | Skill | 作用 | 流程中谁调用 | | 125 | | Skill | 作用 | 流程中谁调用 | |
| 220 | |---|---|---| | 126 | |---|---|---| |
| 221 | -| `plan-start` | **A 阶段入口**。读取 docs/08 § 一 找第一个未勾 A 子项 → 派发对应 A skill;A 全部完成时提示运行 coding-start | **用户手动**运行 `/erp-workflow:plan-start` | | ||
| 222 | -| `coding-start` | **B 阶段入口 + 阶段分发器(只做分发)**。① 验证 Plan 已完成(docs/08 § 一 A0~A5 全勾选)② 后端完成性检查(§ 二 + git tag)③ 前端完成性检查(§ 三 整体里程碑 + tag)④ 真值表派发:`backend=false` → `module-start`;`backend=true & frontend=false` → `frontend-start`;都 done → "全部完成"。前端阶段的 prototype/ 门禁由 `frontend-start` 自带,不在此处 | **用户手动**运行 `/erp-workflow:coding-start`;`milestone-tag` 每模块完成后自动回调 | | ||
| 223 | -| `interrupt-check` | 检查 CLAUDE.md 的 3 项中断清单;触发则追加 Blocker 到计划文件并停下 | 功能循环各步骤和生成重要制品前自动调用 | | ||
| 224 | -| `cross-module-log` | 给 `log-cross-module.sh` 追加的跨模块改动存根批量补「原因 / 影响评估」 | `module-report` § ⑦ 硬验收时一次性调用(CC 编辑中途不主动调);`module-start` 初始化日志文件时也会用其模板 | | 127 | +| `phase-driver` | 阶段驱动(`phase` 参数区分)。**backend**:切 `module-<id>` 分支,扫 docs/08 § 二 计算未完成 REQ,推进第一个未完成 REQ;本模块全 approve → `milestone`。**frontend**:prototype/ 门禁 → FE 清单准备(§ 三 占位则推导写入,§ 三 已有则加载)→ 切 `frontend-phase` 分支,推进未完成 FE;全 approve → `milestone`。**幂等可重入** | `coding-start` 派发;`feature-review` approve 后回调 | |
| 128 | +| `feature-spec` | 功能规格(两阶段共用):为 REQ(后端)/ FE(前端)生成"规格 + 任务级计划"合并文档(`docs/superpowers/specs/*.md`);路径护栏按 phase 区分 | `phase-driver` 推进单元时调用 | | ||
| 129 | +| `feature-tdd` | TDD 实现(两阶段共用):按 spec/plan 写失败测试 → 实现 → Agent 子会话验证通过 → commit(后端:controller/service/repository/DTO/migration;前端:`frontend/` 下组件/路由/API client) | `feature-spec` 链式调用 | | ||
| 130 | +| `feature-review` | 验证 + AI 自审(两阶段共用):子会话跑全量测试 → 委托 reviewer agent(后端:`superpower-code-reviewer`;前端:`fe-code-reviewer`)。approve → 勾选 docs/08 对应子项 + 回 `phase-driver`;request-changes → fix → 重跑(最多 5 轮,第 5 轮仍 request-changes 则停下) | `feature-tdd` 链式调用 | | ||
| 131 | +| `milestone` | 里程碑(phase 由当前分支推断):内置测试闸门(Agent 子会话:后端 `scripts/test.sh`;前端 vitest + Playwright)→ 6 节完成报告 → 本地 `git merge --no-ff` 进默认分支 → 回写 docs/08 `里程碑:` 字段 → `git tag -a milestone/<id>` → **自动回调 coding-start**(无人工介入)。完成由本地 `git tag -l` 判定 | `phase-driver`(本阶段全部单元 approve 后)| | ||
| 225 | 132 | ||
| 226 | ## Agent 清单(2 个) | 133 | ## Agent 清单(2 个) |
| 227 | 134 | ||
| 228 | -| Agent | 源 | 用途 | 谁调用 | | ||
| 229 | -|---|---|---|---| | ||
| 230 | -| `superpower-code-reviewer` | `superpowers:code-reviewer` 5.0.7 agent,仅改 name | 对后端 REQ diff 做 AI 自审,产出 `must_fix[]` / `nice_to_have[]` / `gaps` | `feature-review` 步骤 1:`Agent(subagent_type=superpower-code-reviewer)` | | ||
| 231 | -| `fe-code-reviewer` | 自写(前端专用) | 对前端 FE-NN diff 做 7 维 AI 自审:prototype 一致性 / Design Tokens / 无障碍 / 响应式 / 业务校验前端复刻 / API 一致性 / 状态机覆盖。明确禁止给后端建议 | `fe-feature-review` 步骤 1:`Agent(subagent_type=fe-code-reviewer)` | | 135 | +| Agent | 用途 | 谁调用 | |
| 136 | +|---|---|---| | ||
| 137 | +| `superpower-code-reviewer` | 对后端 REQ diff 做 AI 自审,产出 `must_fix[]` / `nice_to_have[]` / `gaps` | `feature-review`(phase=backend):`Agent(subagent_type=superpower-code-reviewer)` | | ||
| 138 | +| `fe-code-reviewer` | 对前端 FE-NN diff 做 7 维 AI 自审:prototype 一致性 / Design Tokens / 无障碍 / 响应式 / 业务校验前端复刻 / API 一致性 / 状态机覆盖 | `feature-review`(phase=frontend):`Agent(subagent_type=fe-code-reviewer)` | | ||
| 232 | 139 | ||
| 233 | -## Banners 清单(7 份,`bash cat` 直接输出,绕开 LLM 复读) | 140 | +## Banners 清单(2 份) |
| 234 | 141 | ||
| 235 | -step 0 流程图被抽到独立 `.txt` 文件,SKILL.md 步骤 0 改为 `bash cat` 输出——保证 ASCII 边框对齐不被 LLM 复读破坏 + 减少 LLM 输出 token。 | 142 | +流程图抽到独立 `.txt` 文件,SKILL.md 步骤 0 用 `bash cat` 输出——保证 ASCII 边框对齐不被 LLM 复读破坏。 |
| 236 | 143 | ||
| 237 | | 所属 Skill | Banner 文件 | 用途 | | 144 | | 所属 Skill | Banner 文件 | 用途 | |
| 238 | |---|---|---| | 145 | |---|---|---| |
| 239 | -| project-init | `banners/flow.txt` | A 阶段流程图(▶ 标在 A0) | | ||
| 240 | -| scope-lock | `banners/flow.txt` | A 阶段流程图(▶ 标在 A1) | | ||
| 241 | -| skeleton-gen | `banners/flow.txt` | A 阶段流程图(▶ 标在 A2) | | ||
| 242 | -| db-design-gen | `banners/flow.txt` | A 阶段流程图(▶ 标在 A3) | | ||
| 243 | -| db-init | `banners/flow.txt` | A 阶段流程图(▶ 标在 A4) | | ||
| 244 | -| downstream-gen | `banners/flow.txt` | A 阶段流程图(▶ 标在 A5) | | ||
| 245 | -| plan-start | `banners/flow-done.txt` | A 阶段流程图(▶ 标在"规划阶段到此结束",仅 2.1 Plan 完成分支) | | ||
| 246 | - | ||
| 247 | -**字节对齐保证**:每个文件 17 行,每行 visible width = 58 cell(内宽 56 + 2 个 `│` 边框)。改动需重新校准。 | 146 | +| `plan-start` | `banners/flow-lite.txt` | 整体流程图(▶ 标在 plan-start 分发横幅前) | |
| 147 | +| `coding-start` | `banners/flow-lite.txt` | 整体流程图(▶ 标在 coding-start 分发横幅前) | | ||
| 248 | 148 | ||
| 249 | -## Templates 清单(41 份) | 149 | +## Templates 清单(27 份) |
| 250 | 150 | ||
| 251 | | 所属 Skill | 模板文件 | 用途 | | 151 | | 所属 Skill | 模板文件 | 用途 | |
| 252 | |---|---|---| | 152 | |---|---|---| |
| 253 | -| project-init | `CLAUDE-template.md` | 项目根的 CLAUDE.md(4 条通用准则 + ERP 专属约定) | | ||
| 254 | -| project-init | `docs-01-index-template.md` | 需求清单索引骨架,等用户填模块表 | | ||
| 255 | -| project-init | `docs-08-initial-template.md` | 工作流进度文件骨架(Plan A0~A5 checkbox) | | ||
| 256 | -| project-init | `docs-04-stack-template.md` | docs/04 § 零 默认技术栈总览(零槽位,cp 即可) | | ||
| 257 | -| scope-lock | `req-card-template.md` | 单张 REQ-XXX-NNN 卡片骨架(6 个 `{{...}}` 占位符由 CC 替换;输入 / 输出 各含一句简述 + N 张示例字段表,模板原样复制由人工编辑) | | ||
| 258 | -| scope-lock | `_module-template.md` | 模块子目录的 `_module.md` 模块头(4 行:模块代码-名 / 简述 / 依赖模块 TBD / 涉及表 TBD) | | ||
| 259 | -| skeleton-gen | `docs-04-skeleton-template.md` | docs/04 § 一+ 编码规范大纲(HTML 注释引导 LLM) | | ||
| 260 | -| skeleton-gen | `docs-06-static-template.md` | docs/06 § 一~二 大纲(通用交互 + Design Tokens;布局以 prototype/ 为权威) | | ||
| 261 | -| skeleton-gen | `docs-07-env-template.md` | docs/07 环境配置大纲 | | ||
| 262 | -| skeleton-gen | `docs-09-structure-template.md` | docs/09 目录结构大纲 | | ||
| 263 | -| skeleton-gen | `scripts-setup-test-db-template.sh` | 运行时 drop + create 空库脚本(0 槽位);schema apply 交给 Flyway | | ||
| 264 | -| skeleton-gen | `scripts-test-template.sh` | test.sh 骨架(4 个命令槽位:{{build_cmd}} / {{lint_cmd}} / {{test_cmd}} / {{e2e_cmd}},由 skeleton-gen 按技术栈推断填充) | | ||
| 265 | -| skeleton-gen | `env-local-template` | 6 字段凭据模板(DB_* + JWT_SECRET) | | ||
| 266 | -| skeleton-gen | `gitignore-append-template` | 插件推荐忽略项(`.env.local`、`.tmp/`、构建产物等) | | ||
| 267 | -| db-design-gen | `docs-03-header-template.md` | docs/03 数据库设计头部 | | ||
| 268 | -| db-design-gen | `docs-03-table-template.md` | docs/03 单表小节模板 | | ||
| 269 | -| downstream-gen | `docs-02-template.md` | docs/02 开发计划 | | ||
| 270 | -| downstream-gen | `docs-05-header-template.md` | docs/05 API 契约头部 | | ||
| 271 | -| downstream-gen | `docs-05-endpoint-template.md` | docs/05 单接口小节 | | ||
| 272 | -| downstream-gen | `docs-06-module-pagelist-template.md` | docs/06 § 三 单模块页面清单 | | ||
| 273 | -| downstream-gen | `docs-08-module-row-template.md` | docs/08 § 二 单模块 bullet 行 | | ||
| 274 | -| downstream-gen | `docs-10-header-template.md` | docs/10 验收清单(项目级 SOP,零槽位 + 引用指针) | | ||
| 275 | -| module-start | `module-start-banner-template.md` | 模块启动横幅 | | ||
| 276 | -| feature-brainstorm | `feature-spec-template.md` | 功能 spec 结构 | | ||
| 277 | -| feature-plan | `feature-plan-template.md` | 功能 plan 结构 | | ||
| 278 | -| feature-tdd | `commit-message-template.md` | TDD 每步 commit 信息 | | ||
| 279 | -| feature-verify | `feature-verify-evidence-template.md` | 验证证据渲染模板 | | ||
| 280 | -| feature-review | `feature-review-template.md` | 自审报告结构 | | ||
| 281 | -| test-gate | `test-gate-result-template.md` | 闸门结果渲染 | | ||
| 282 | -| module-report | `module-report-template.md` | 12 节模块报告 | | ||
| 283 | -| interrupt-check | `interrupt-block-template.md` | Blocker 节追加模板 | | ||
| 284 | -| cross-module-log | `cross-module-log-template.md` | cross-module 日志头(由 hook log-cross-module.sh 在首次跨模块改动时渲染创建;skill 自身不再读取) | | ||
| 285 | -| cross-module-log | `cross-module-log-row-template.md` | 单条改动行模板 | | ||
| 286 | -| frontend-start | `frontend-start-banner-template.md` | 前端阶段启动横幅 | | ||
| 287 | -| fe-feature-brainstorm | `fe-feature-spec-template.md` | 前端功能规格结构(组件树 / 状态机 / API / 业务校验复刻 / token 引用) | | ||
| 288 | -| fe-feature-plan | `fe-feature-plan-template.md` | 前端功能计划结构(组件 / 路由 / hook / API client,`impl_file` 必须 `frontend/`) | | ||
| 289 | -| fe-feature-tdd | `commit-message-template.md` | 前端 TDD commit 信息(与后端共用格式,但 `req_id` = FE-NN) | | ||
| 290 | -| fe-feature-verify | `fe-feature-verify-evidence-template.md` | 前端验证证据(vitest + playwright 双段) | | ||
| 291 | -| fe-feature-review | `fe-feature-review-template.md` | 前端自审报告结构(含 7 维核查表) | | ||
| 292 | -| fe-feature-review | `commit-message-template.md` | 前端 review fix commit 信息 | | 153 | +| `lite-init` | `CLAUDE-template.md` | 项目根的 CLAUDE.md(4 条通用准则 + ERP 专属约定 + skill 索引) | |
| 154 | +| `lite-init` | `docs-01-index-template.md` | 需求清单索引骨架 | | ||
| 155 | +| `lite-init` | `docs-08-initial-template.md` | 工作流进度文件骨架(Plan ①②③ checkbox) | | ||
| 156 | +| `lite-init` | `docs-04-stack-template.md` | docs/04 § 零 默认技术栈总览(零槽位,cp 即可) | | ||
| 157 | +| `lite-init` | `req-card-template.md` | 单张 REQ-XXX-NNN 卡片骨架(6 个 `{{...}}` 占位符由 CC 替换) | | ||
| 158 | +| `lite-init` | `_module-template.md` | 模块子目录的 `_module.md` 模块头 | | ||
| 159 | +| `lite-design` | `docs-04-skeleton-template.md` | docs/04 § 一+ 编码规范大纲 | | ||
| 160 | +| `lite-design` | `docs-03-header-template.md` | docs/03 数据库设计头部 | | ||
| 161 | +| `lite-design` | `docs-03-table-template.md` | docs/03 单表小节模板 | | ||
| 162 | +| `lite-design` | `scripts-setup-test-db-template.sh` | drop + create 空库脚本(0 槽位) | | ||
| 163 | +| `lite-design` | `scripts-test-template.sh` | test.sh 骨架(多个命令槽位,由 lite-design 按技术栈推断填充) | | ||
| 164 | +| `lite-design` | `env-local-template` | 6 字段凭据模板(DB_* + JWT_SECRET) | | ||
| 165 | +| `lite-design` | `gitignore-append-template` | 插件推荐忽略项(`.env.local`、`.tmp/`、构建产物等) | | ||
| 166 | +| `lite-build-db` | `docs-05-header-template.md` | docs/05 API 契约头部 | | ||
| 167 | +| `lite-build-db` | `docs-05-endpoint-template.md` | docs/05 单接口小节 | | ||
| 168 | +| `lite-build-db` | `docs-08-module-row-template.md` | docs/08 § 二 单模块 bullet 行 | | ||
| 169 | +| `feature-spec` | `feature-spec-plan-template.md` | 功能规格 + 任务级计划合并文档 | | ||
| 170 | +| `feature-review` | `feature-review-template.md` | 自审报告结构 | | ||
| 171 | +| `feature-review` | `commit-message-template.md` | review fix commit 信息 | | ||
| 172 | +| `feature-tdd` | `commit-message-template.md` | TDD 每步 commit 信息 | | ||
| 173 | +| `milestone` | `milestone-report-template.md` | 完成报告模板(6 节) | | ||
| 174 | +| `interrupt-check` | `interrupt-block-template.md` | Blocker 节追加模板 | | ||
| 175 | + | ||
| 176 | +**Scripts 清单(2 份)**: | ||
| 177 | + | ||
| 178 | +| 所属 Skill | 脚本文件 | 用途 | | ||
| 179 | +|---|---|---| | ||
| 180 | +| `lite-init` | `scripts/render.sh` | 渲染单个 `_module.md` 或 `REQ-*.md`(替换 6 个占位符) | | ||
| 181 | +| `lite-design` | `scripts/merge-gitignore.sh` | 合并 .gitignore(逐行判重) | | ||
| 293 | 182 | ||
| 294 | **流程使用情况**:所有模板都被对应 skill 的 `SKILL.md` 引用,没有孤儿模板。 | 183 | **流程使用情况**:所有模板都被对应 skill 的 `SKILL.md` 引用,没有孤儿模板。 |
| 295 | 184 | ||
| 296 | ## 前置依赖 | 185 | ## 前置依赖 |
| 297 | 186 | ||
| 298 | -- **MySQL 8.x** 实例已就绪(推荐本地 / `*.local` host;A4 `db-init` 的安全守护要求 host 在白名单且 schema 名含 `test`/`dev`/`local`,避免误删生产库) | ||
| 299 | -- **`mysql` 命令行**:A4 `db-init` 验证连接 + 自动 `DROP+CREATE` schema 后 apply V1;`scripts/setup-test-db.sh` 在测试闸门前后 drop+create 空库 | 187 | +- **MySQL 8.x** 实例已就绪(推荐本地 / `*.local` host;`lite-build-db` 的安全守护要求 host 在白名单且 schema 名含 `test`/`dev`/`local`,避免误删生产库) |
| 188 | +- **`mysql` 命令行**:`lite-build-db` 验证连接 + 自动 `DROP+CREATE` schema 后 apply V1;`scripts/setup-test-db.sh` 在测试闸门前后 drop+create 空库 | ||
| 300 | - **Spring Boot + Flyway**(**必需**):pom.xml 声明 `flyway-core` + `flyway-mysql`;Spring 启动时自动 apply `sql/migrations/V*.sql`。本插件生成的 `setup-test-db.sh` 只清库,schema 必须由 Flyway 应用 | 189 | - **Spring Boot + Flyway**(**必需**):pom.xml 声明 `flyway-core` + `flyway-mysql`;Spring 启动时自动 apply `sql/migrations/V*.sql`。本插件生成的 `setup-test-db.sh` 只清库,schema 必须由 Flyway 应用 |
| 301 | -- **本地 git 仓库**(纯本地,无需远程):A0 `project-init` 执行 `git init`;B 阶段每模块由 `milestone-tag` 本地 `git merge --no-ff` 进默认分支并 `git tag -a milestone/<id>`,完成信号由 `git tag -l` 判定。**不依赖任何远程仓库 / push / GitLab** | ||
| 302 | -- **本地可运行 `mvn test` / `pnpm test`**:测试闸门 `scripts/test.sh` 由 `skeleton-gen` 生成 | 190 | +- **本地 git 仓库**(纯本地,**无需远程 / push / GitLab**):`lite-init` 执行 `git init`;编码阶段每模块由 `milestone` 本地 `git merge --no-ff` 进默认分支并 `git tag -a milestone/<id>`,完成信号由 `git tag -l` 判定 |
| 191 | +- **本地可运行 `mvn test` / `pnpm test`**:测试闸门 `scripts/test.sh` 由 `lite-design` 生成 | ||
| 303 | 192 | ||
| 304 | ## 设计原则 | 193 | ## 设计原则 |
| 305 | 194 | ||
| 306 | -参见 `project-init/templates/CLAUDE-template.md` 末尾的「🧭 通用工作准则」4 条:① Think Before Coding ② Simplicity First ③ Surgical Changes ④ Goal-Driven Execution。 | 195 | +参见 `lite-init/templates/CLAUDE-template.md` 末尾的「通用工作准则」4 条:① Think Before Coding ② Simplicity First ③ Surgical Changes ④ Goal-Driven Execution。 |
| 307 | 196 | ||
| 308 | 最关键的 1 条:"**所有测试与验证派发到全新子会话执行,主会话只接收结构化结论**"——避免主会话被测试输出污染,并让测试结果作为独立证据存档。 | 197 | 最关键的 1 条:"**所有测试与验证派发到全新子会话执行,主会话只接收结构化结论**"——避免主会话被测试输出污染,并让测试结果作为独立证据存档。 |
agents/fe-code-reviewer.md
| 1 | --- | 1 | --- |
| 2 | name: fe-code-reviewer | 2 | name: fe-code-reviewer |
| 3 | description: | | 3 | description: | |
| 4 | - Use this agent when fe-feature-review delegates a frontend code review for a single FE-NN business feature (which may span multiple prototype HTML files / regions). Specializes in React/Vue components, styling, accessibility, prototype fidelity, and Design Tokens. Does NOT review SQL/migration/controller/service — those are the backend reviewer's domain. | 4 | + Use this agent when feature-review (phase=frontend) delegates a frontend code review for a single FE-NN business feature (which may span multiple prototype HTML files / regions). Specializes in React/Vue components, styling, accessibility, prototype fidelity, and Design Tokens. Does NOT review SQL/migration/controller/service — those are the backend reviewer's domain. |
| 5 | model: inherit | 5 | model: inherit |
| 6 | --- | 6 | --- |
| 7 | 7 | ||
| @@ -9,7 +9,7 @@ You are a Senior Frontend Code Reviewer with deep expertise in component archite | @@ -9,7 +9,7 @@ You are a Senior Frontend Code Reviewer with deep expertise in component archite | ||
| 9 | 9 | ||
| 10 | **Strict scope rules**: | 10 | **Strict scope rules**: |
| 11 | 11 | ||
| 12 | -- Review ONLY frontend code (under `frontend/` or the project's frontend root per `docs/09-项目目录结构.md`). | 12 | +- Review ONLY frontend code (under `frontend/` or the project's frontend root). |
| 13 | - Do NOT propose SQL, migration, controller, service, repository, transaction, or DTO suggestions. If the diff contains backend files, flag this as a path violation and return `request-changes` with a single must-fix entry pointing the reviewee back to `feature-tdd` (backend phase). | 13 | - Do NOT propose SQL, migration, controller, service, repository, transaction, or DTO suggestions. If the diff contains backend files, flag this as a path violation and return `request-changes` with a single must-fix entry pointing the reviewee back to `feature-tdd` (backend phase). |
| 14 | - Do NOT recommend backend architectural changes; the backend phase is already merged. | 14 | - Do NOT recommend backend architectural changes; the backend phase is already merged. |
| 15 | 15 | ||
| @@ -24,9 +24,9 @@ When reviewing, you will evaluate the following 7 dimensions in order. For each | @@ -24,9 +24,9 @@ When reviewing, you will evaluate the following 7 dimensions in order. For each | ||
| 24 | 24 | ||
| 25 | ## 2. Design Tokens | 25 | ## 2. Design Tokens |
| 26 | 26 | ||
| 27 | -- All color values MUST use `var(--color-*)` per `docs/06 § 二`. | 27 | +- All color values MUST use `var(--color-*)` per `docs/04` Design Tokens section. |
| 28 | - Hard-coded hex / rgb values → `request-changes` with file:line. | 28 | - Hard-coded hex / rgb values → `request-changes` with file:line. |
| 29 | -- New tokens introduced in code without registration in `docs/06 § 二` and `tokens.css` → `request-changes`. | 29 | +- New tokens introduced in code without registration in `docs/04` Design Tokens section and `tokens.css` → `request-changes`. |
| 30 | 30 | ||
| 31 | ## 3. 无障碍 (Accessibility) | 31 | ## 3. 无障碍 (Accessibility) |
| 32 | 32 | ||
| @@ -37,7 +37,7 @@ When reviewing, you will evaluate the following 7 dimensions in order. For each | @@ -37,7 +37,7 @@ When reviewing, you will evaluate the following 7 dimensions in order. For each | ||
| 37 | 37 | ||
| 38 | ## 4. 响应式 (Responsive) | 38 | ## 4. 响应式 (Responsive) |
| 39 | 39 | ||
| 40 | -- At the minimum resolution declared in `docs/06 § 一通用交互规则`, no horizontal scrollbar. | 40 | +- At the minimum resolution declared in `docs/04` 前端交互规则, no horizontal scrollbar. |
| 41 | - Critical operations do not depend on hover-only interactions (must work on touch). | 41 | - Critical operations do not depend on hover-only interactions (must work on touch). |
| 42 | 42 | ||
| 43 | ## 5. 业务校验前端复刻 | 43 | ## 5. 业务校验前端复刻 |
skills/coding/milestone/SKILL.md
| @@ -106,10 +106,10 @@ allowed-tools: Read Write Edit Skill Agent Bash(git *) | @@ -106,10 +106,10 @@ allowed-tools: Read Write Edit Skill Agent Bash(git *) | ||
| 106 | 106 | ||
| 107 | 按 `${CLAUDE_SKILL_DIR}/templates/milestone-report-template.md` 渲染 6 节。`{{milestone_tag}}` 先填占位符 `{{milestone_tag}}`(阶段 3 步骤 6 回写)。 | 107 | 按 `${CLAUDE_SKILL_DIR}/templates/milestone-report-template.md` 渲染 6 节。`{{milestone_tag}}` 先填占位符 `{{milestone_tag}}`(阶段 3 步骤 6 回写)。 |
| 108 | 108 | ||
| 109 | -写入 `docs/superpowers/module-reports/<YYYY-MM-DD>-<phase_id>.md`。 | 109 | +写入 `docs/superpowers/milestone-reports/<YYYY-MM-DD>-<phase_id>.md`。 |
| 110 | 110 | ||
| 111 | ```bash | 111 | ```bash |
| 112 | -git add docs/superpowers/module-reports/<YYYY-MM-DD>-<phase_id>.md | 112 | +git add docs/superpowers/milestone-reports/<YYYY-MM-DD>-<phase_id>.md |
| 113 | git commit -m "docs(<phase_id>): add completion report" | 113 | git commit -m "docs(<phase_id>): add completion report" |
| 114 | ``` | 114 | ``` |
| 115 | 115 | ||
| @@ -174,10 +174,10 @@ tag 已存在(重跑场景)→ 跳过,不重复打。 | @@ -174,10 +174,10 @@ tag 已存在(重跑场景)→ 跳过,不重复打。 | ||
| 174 | 174 | ||
| 175 | ### 3.6 追加 tag 到报告 §⑥ 并 commit | 175 | ### 3.6 追加 tag 到报告 §⑥ 并 commit |
| 176 | 176 | ||
| 177 | -`Edit docs/superpowers/module-reports/<YYYY-MM-DD>-<phase_id>.md`,把 `{{milestone_tag}}` 替换为 `milestone/<phase_id>`(已替换则跳过)。 | 177 | +`Edit docs/superpowers/milestone-reports/<YYYY-MM-DD>-<phase_id>.md`,把 `{{milestone_tag}}` 替换为 `milestone/<phase_id>`(已替换则跳过)。 |
| 178 | 178 | ||
| 179 | ```bash | 179 | ```bash |
| 180 | -git add docs/superpowers/module-reports/<YYYY-MM-DD>-<phase_id>.md | 180 | +git add docs/superpowers/milestone-reports/<YYYY-MM-DD>-<phase_id>.md |
| 181 | git commit -m "docs(<phase_id>): record milestone/<phase_id> in completion report" | 181 | git commit -m "docs(<phase_id>): record milestone/<phase_id> in completion report" |
| 182 | ``` | 182 | ``` |
| 183 | 183 |
skills/coding/phase-driver/SKILL.md
| @@ -27,7 +27,7 @@ allowed-tools: Read Write Edit Skill Glob Grep AskUserQuestion Bash(git branch * | @@ -27,7 +27,7 @@ allowed-tools: Read Write Edit Skill Glob Grep AskUserQuestion Bash(git branch * | ||
| 27 | 27 | ||
| 28 | 二者任一缺失 → 视为未完成。 | 28 | 二者任一缺失 → 视为未完成。 |
| 29 | 29 | ||
| 30 | -找到 `current_module` 后,从 `docs/08 § 二` 该模块条目下的 REQ 子项中,按列出顺序提取 `req_list[]`(docs/08 § 二 是 REQ 顺序权威,不读 docs/02)。 | 30 | +找到 `current_module` 后,从 `docs/08 § 二` 该模块条目下的 REQ 子项中,按列出顺序提取 `req_list[]`(docs/08 § 二 是 REQ 顺序权威)。 |
| 31 | 31 | ||
| 32 | 约束: | 32 | 约束: |
| 33 | - 任何文件读取或解析失败 → 打印错误并停止 | 33 | - 任何文件读取或解析失败 → 打印错误并停止 |
skills/plan/lite-build-db/templates/docs-05-header-template.md
skills/plan/lite-design/scripts/merge-gitignore.sh
| @@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
| 5 | # - 若已存在 → 逐行判重,只追加模板里缺失的规则行(跳过注释/空行) | 5 | # - 若已存在 → 逐行判重,只追加模板里缺失的规则行(跳过注释/空行) |
| 6 | # | 6 | # |
| 7 | # 用法:merge-gitignore.sh <template_path> [<target_gitignore_path>] | 7 | # 用法:merge-gitignore.sh <template_path> [<target_gitignore_path>] |
| 8 | -# template_path 模板文件绝对路径(由 skeleton-gen skill 传入) | 8 | +# template_path 模板文件绝对路径(由 lite-design skill 传入) |
| 9 | # target_gitignore_path 目标 .gitignore 路径,默认为当前工作目录下的 .gitignore | 9 | # target_gitignore_path 目标 .gitignore 路径,默认为当前工作目录下的 .gitignore |
| 10 | # | 10 | # |
| 11 | # 判重:grep -xF 整行精确匹配 + 字面字符串(非正则),避免 .env 误匹配 .env.local, | 11 | # 判重:grep -xF 整行精确匹配 + 字面字符串(非正则),避免 .env 误匹配 .env.local, |
skills/plan/lite-design/templates/docs-03-header-template.md
| @@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
| 2 | 2 | ||
| 3 | - **Schema**: `{{schema_name}}` | 3 | - **Schema**: `{{schema_name}}` |
| 4 | - **Migration 清单**: `sql/migrations/V*.sql`(由 Flyway 顺序 apply) | 4 | - **Migration 清单**: `sql/migrations/V*.sql`(由 Flyway 顺序 apply) |
| 5 | -- **生成方式**: 由 A3 `db-design-gen` 基于 `docs/01-需求清单/<module>/REQ-*.md` REQ 卡片正向设计生成(schema SSoT)。 | 5 | +- **生成方式**: 由计划 ② `lite-design` 基于 `docs/01-需求清单/<module>/REQ-*.md` REQ 卡片正向设计生成(schema SSoT)。 |
| 6 | 6 | ||
| 7 | ## 项目标准列约定 | 7 | ## 项目标准列约定 |
| 8 | 8 |
skills/plan/lite-design/templates/gitignore-append-template
skills/plan/lite-design/templates/scripts-test-template.sh
| 1 | #!/usr/bin/env bash | 1 | #!/usr/bin/env bash |
| 2 | # scripts/test.sh —— 合并到默认分支(main / master)前的测试闸门。 | 2 | # scripts/test.sh —— 合并到默认分支(main / master)前的测试闸门。 |
| 3 | # 顺序:detect → setup-db → build → lint → unit+integration → e2e → reset-db | 3 | # 顺序:detect → setup-db → build → lint → unit+integration → e2e → reset-db |
| 4 | -# 由 test-gate skill(通过子会话)调用。 | 4 | +# 由 milestone skill(通过子会话)调用。 |
| 5 | 5 | ||
| 6 | set -euo pipefail | 6 | set -euo pipefail |
| 7 | 7 |
skills/plan/lite-init/SKILL.md
| @@ -7,7 +7,7 @@ allowed-tools: Glob Read Edit Grep Skill AskUserQuestion Bash(mkdir *) Bash(cp * | @@ -7,7 +7,7 @@ allowed-tools: Glob Read Edit Grep Skill AskUserQuestion Bash(mkdir *) Bash(cp * | ||
| 7 | 7 | ||
| 8 | **所有输出必须使用中文。** | 8 | **所有输出必须使用中文。** |
| 9 | 9 | ||
| 10 | -你负责完成计划第 ① 段:项目初始化 + 范围锁定。合并了原 project-init + scope-lock 的全部逻辑。 | 10 | +你负责完成计划第 ① 段:项目初始化 + 范围锁定。 |
| 11 | 11 | ||
| 12 | ## 执行步骤 | 12 | ## 执行步骤 |
| 13 | 13 |
skills/plan/lite-init/scripts/render.sh
| 1 | #!/usr/bin/env bash | 1 | #!/usr/bin/env bash |
| 2 | -# render.sh — scope-lock 步骤 D 渲染单个 _module.md 或 REQ-*.md | 2 | +# render.sh — lite-init 渲染单个 _module.md 或 REQ-*.md |
| 3 | # | 3 | # |
| 4 | # 用法: | 4 | # 用法: |
| 5 | # bash render.sh module <out_path> <module_code> <module_name> <module_brief> | 5 | # bash render.sh module <out_path> <module_code> <module_name> <module_brief> |
skills/plan/lite-init/templates/docs-04-stack-template.md
| @@ -29,4 +29,4 @@ | @@ -29,4 +29,4 @@ | ||
| 29 | | 对象映射工具 | MapStruct | 最新稳定版 | DTO / VO / Entity 转换 | | 29 | | 对象映射工具 | MapStruct | 最新稳定版 | DTO / VO / Entity 转换 | |
| 30 | | 工具类库 | Hutool / Apache Commons | 最新稳定版 | 常用工具方法支持 | | 30 | | 工具类库 | Hutool / Apache Commons | 最新稳定版 | 常用工具方法支持 | |
| 31 | 31 | ||
| 32 | -> 本表由 scope-lock 锁定。后续所有规范基于此表推导。 | 32 | +> 本表由 lite-init 锁定。后续所有规范基于此表推导。 |
skills/plan/lite-init/templates/req-card-template.md
| 1 | <!-- | 1 | <!-- |
| 2 | req-card-template:单张 REQ 卡片骨架。每张卡片是 docs/01-需求清单/<module>/REQ-XXX-NNN.md 一个独立文件。 | 2 | req-card-template:单张 REQ 卡片骨架。每张卡片是 docs/01-需求清单/<module>/REQ-XXX-NNN.md 一个独立文件。 |
| 3 | 渲染约定: | 3 | 渲染约定: |
| 4 | -1) scope-lock 渲染时**只替换 6 个占位符**:{{req_id}} / {{title}} / {{goal}} / {{rules}} / {{constraints}} / {{acceptance}} | 4 | +1) lite-init 渲染时**只替换 6 个占位符**:{{req_id}} / {{title}} / {{goal}} / {{rules}} / {{constraints}} / {{acceptance}} |
| 5 | 这 6 项由 CC 根据 docs/01-需求清单/index.md 的「核心功能点」推断起草: | 5 | 这 6 项由 CC 根据 docs/01-需求清单/index.md 的「核心功能点」推断起草: |
| 6 | - req_id / title:从核心功能点拆分命名得来 | 6 | - req_id / title:从核心功能点拆分命名得来 |
| 7 | - goal:用一句话展开 title | 7 | - goal:用一句话展开 title |