diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 95600f1..0f8d1ad 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "erp-workflow", - "description": "ERP/全栈项目精简流程框架(lite):计划三段(一次性)+ 编码统一功能循环(后端模块 / 前端阶段共用),保留 TDD、需求可追溯、DB-as-SSoT + Flyway、本地里程碑 tag。", - "version": "0.1.0-lite", + "description": "ERP/全栈项目全流程开发框架:计划三段(一次性)+ 编码统一功能循环(后端模块 / 前端阶段共用),保留 TDD、需求可追溯、DB-as-SSoT + Flyway、本地里程碑 tag。", + "version": "0.1.0", "skills": ["./skills/plan", "./skills/coding", "./skills/crosscut"] } diff --git a/README.md b/README.md index d52d64a..db26c9f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# erp-workflow(lite) +# erp-workflow -Claude Code 插件:ERP / 后端管理系统全流程开发框架(精简版)。 +Claude Code 插件:ERP / 后端管理系统全流程开发框架。 把"从零到 N 个后端模块上线 + 前端整体阶段"的整个流程固化成 **11 个 skill + 2 个 agent + 22 份模板 + 3 个脚本**,让 CC 在 schema 演化用 Flyway migration、需求可追溯、纯本地 git 的前提下推进编码。后端按模块循环依次打里程碑 tag,所有后端模块打里程碑后进入前端整体阶段(以项目根 `prototype/` 静态 HTML mockup 为页面权威)。两阶段共用同一套功能循环 skill,由 `phase` 参数区分。 @@ -8,12 +8,12 @@ Claude Code 插件:ERP / 后端管理系统全流程开发框架(精简版 ``` ┌────────────────────────────────────────────────────────┐ -│ erp-workflow-lite │ +│ erp-workflow │ │ │ │ 计划(/plan-start,一次性,2 个审阅断点) │ -│ ① lite-init 初始化 + REQ 卡片 ⏸ 审阅 REQ │ -│ ② lite-design 脚手架 + docs/03 ⏸ 审阅 schema │ -│ ③ lite-build-db V1+apply + docs/05/08 │ +│ ① init 初始化 + REQ 卡片 ⏸ 审阅 REQ │ +│ ② design 脚手架 + docs/03 ⏸ 审阅 schema │ +│ ③ build-db V1+apply + docs/05/08 │ │ │ │ 编码(/coding-start,统一功能循环) │ │ 后端模块循环 ┐ │ @@ -37,9 +37,9 @@ Claude Code 插件:ERP / 后端管理系统全流程开发框架(精简版 ``` Plan 阶段**三段式**执行,中间有两个人工审阅断点: - - **第一段(首次运行)**:执行 `lite-init`(依赖检查 / git init / 初始化 docs + CLAUDE.md / 引导填技术栈 + 需求索引 / 生成 REQ 卡片骨架)后**停下**,等你审阅并补全 `docs/01-需求清单//REQ-*.md`(第一个人工关口:业务范围) - - **第二段(REQ 审阅完重新运行)**:执行 `lite-design`(生成 docs/04 架构规范 / scripts / .env.local / 从 REQ 正向设计 `docs/03-数据库设计文档.md`)后再次**停下**,等你审阅 docs/03 的表 / 字段 / 索引 / 外键(第二个人工关口:database schema) - - **第三段(docs/03 审阅完重新运行)**:执行 `lite-build-db`(解析 docs/03 → 生成 V1 migration → DROP+CREATE 本地 schema 并 apply → 生成 docs/05 API 契约 + 追加 docs/08 § 二 模块清单),Plan 完成后**停下** + - **第一段(首次运行)**:执行 `init`(依赖检查 / git init / 初始化 docs + CLAUDE.md / 引导填技术栈 + 需求索引 / 生成 REQ 卡片骨架)后**停下**,等你审阅并补全 `docs/01-需求清单//REQ-*.md`(第一个人工关口:业务范围) + - **第二段(REQ 审阅完重新运行)**:执行 `design`(生成 docs/04 架构规范 / scripts / .env.local / 从 REQ 正向设计 `docs/03-数据库设计文档.md`)后再次**停下**,等你审阅 docs/03 的表 / 字段 / 索引 / 外键(第二个人工关口:database schema) + - **第三段(docs/03 审阅完重新运行)**:执行 `build-db`(解析 docs/03 → 生成 V1 migration → DROP+CREATE 本地 schema 并 apply → 生成 docs/05 API 契约 + 追加 docs/08 § 二 模块清单),Plan 完成后**停下** 每次运行都会自动接上次停下的地方继续。Plan 完成后**不会自动进入编码**,需要你手动运行 `/erp-workflow:coding-start`。 @@ -83,9 +83,9 @@ erp-workflow-plugin/ │ └── fe-code-reviewer.md # 前端专用 reviewer(feature-review 前端阶段调用,7 维 review) └── skills/ ├── plan/ # 计划阶段:3 个一次性规划 skill - │ ├── lite-init/ - │ ├── lite-design/ - │ └── lite-build-db/ + │ ├── init/ + │ ├── design/ + │ └── build-db/ ├── coding/ # 编码阶段:5 个 skill(两阶段共用统一功能循环) │ ├── phase-driver/ │ ├── feature-spec/ @@ -100,7 +100,7 @@ erp-workflow-plugin/ ## Hook 清单 -lite 版本**无 Hook**——跨模块改动留痕已移除。跨模块改动须在 `milestone` 完成报告的「偏离与取舍」节人工记录。 +本插件**无 Hook**——跨模块改动留痕已移除。跨模块改动须在 `milestone` 完成报告的「偏离与取舍」节人工记录。 ## Skill 清单(11 个) @@ -116,9 +116,9 @@ lite 版本**无 Hook**——跨模块改动留痕已移除。跨模块改动须 | Skill | 作用 | 流程中谁调用 | |---|---|---| -| `lite-init` | 计划 ①:依赖检查 / git init / 创建 CLAUDE.md + docs/01/index.md + docs/04 § 零 + docs/08;引导填项目概述 / 技术栈 / 需求索引;按模块生成 REQ 卡片骨架;**停下**等人工审阅 REQ | `plan-start` | -| `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` | -| `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` | +| `init` | 计划 ①:依赖检查 / git init / 创建 CLAUDE.md + docs/01/index.md + docs/04 § 零 + docs/08;引导填项目概述 / 技术栈 / 需求索引;按模块生成 REQ 卡片骨架;**停下**等人工审阅 REQ | `plan-start` | +| `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` | +| `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` | ### 编码阶段(`skills/coding/`) @@ -143,29 +143,29 @@ lite 版本**无 Hook**——跨模块改动留痕已移除。跨模块改动须 | 所属 Skill | Banner 文件 | 用途 | |---|---|---| -| `plan-start` | `banners/flow-lite.txt` | 整体流程图(▶ 标在 plan-start 分发横幅前) | -| `coding-start` | `banners/flow-lite.txt` | 整体流程图(▶ 标在 coding-start 分发横幅前) | +| `plan-start` | `banners/flow.txt` | 整体流程图(▶ 标在 plan-start 分发横幅前) | +| `coding-start` | `banners/flow.txt` | 整体流程图(▶ 标在 coding-start 分发横幅前) | ## Templates 清单(22 份模板文件,21 个不同名——`commit-message-template.md` 由 feature-tdd / feature-review 各持一份) | 所属 Skill | 模板文件 | 用途 | |---|---|---| -| `lite-init` | `CLAUDE-template.md` | 项目根的 CLAUDE.md(4 条通用准则 + ERP 专属约定 + skill 索引) | -| `lite-init` | `docs-01-index-template.md` | 需求清单索引骨架 | -| `lite-init` | `docs-08-initial-template.md` | 工作流进度文件骨架(Plan ①②③ checkbox) | -| `lite-init` | `docs-04-stack-template.md` | docs/04 § 零 默认技术栈总览(零槽位,cp 即可) | -| `lite-init` | `req-card-template.md` | 单张 REQ-XXX-NNN 卡片骨架(6 个 `{{...}}` 占位符由 CC 替换) | -| `lite-init` | `_module-template.md` | 模块子目录的 `_module.md` 模块头 | -| `lite-design` | `docs-04-skeleton-template.md` | docs/04 § 一+ 编码规范大纲 | -| `lite-design` | `docs-03-header-template.md` | docs/03 数据库设计头部 | -| `lite-design` | `docs-03-table-template.md` | docs/03 单表小节模板 | -| `lite-design` | `scripts-setup-test-db-template.sh` | drop + create 空库脚本(0 槽位) | -| `lite-design` | `scripts-test-template.sh` | test.sh 骨架(多个命令槽位,由 lite-design 按技术栈推断填充) | -| `lite-design` | `env-local-template` | 6 字段凭据模板(DB_* + JWT_SECRET) | -| `lite-design` | `gitignore-append-template` | 插件推荐忽略项(`.env.local`、`.tmp/`、构建产物等) | -| `lite-build-db` | `docs-05-header-template.md` | docs/05 API 契约头部 | -| `lite-build-db` | `docs-05-endpoint-template.md` | docs/05 单接口小节 | -| `lite-build-db` | `docs-08-module-row-template.md` | docs/08 § 二 单模块 bullet 行 | +| `init` | `CLAUDE-template.md` | 项目根的 CLAUDE.md(4 条通用准则 + ERP 专属约定 + skill 索引) | +| `init` | `docs-01-index-template.md` | 需求清单索引骨架 | +| `init` | `docs-08-initial-template.md` | 工作流进度文件骨架(Plan ①②③ checkbox) | +| `init` | `docs-04-stack-template.md` | docs/04 § 零 默认技术栈总览(零槽位,cp 即可) | +| `init` | `req-card-template.md` | 单张 REQ-XXX-NNN 卡片骨架(6 个 `{{...}}` 占位符由 CC 替换) | +| `init` | `_module-template.md` | 模块子目录的 `_module.md` 模块头 | +| `design` | `docs-04-skeleton-template.md` | docs/04 § 一+ 编码规范大纲 | +| `design` | `docs-03-header-template.md` | docs/03 数据库设计头部 | +| `design` | `docs-03-table-template.md` | docs/03 单表小节模板 | +| `design` | `scripts-setup-test-db-template.sh` | drop + create 空库脚本(0 槽位) | +| `design` | `scripts-test-template.sh` | test.sh 骨架(多个命令槽位,由 design 按技术栈推断填充) | +| `design` | `env-local-template` | 6 字段凭据模板(DB_* + JWT_SECRET) | +| `design` | `gitignore-append-template` | 插件推荐忽略项(`.env.local`、`.tmp/`、构建产物等) | +| `build-db` | `docs-05-header-template.md` | docs/05 API 契约头部 | +| `build-db` | `docs-05-endpoint-template.md` | docs/05 单接口小节 | +| `build-db` | `docs-08-module-row-template.md` | docs/08 § 二 单模块 bullet 行 | | `feature-spec` | `feature-spec-plan-template.md` | 功能规格 + 任务级计划合并文档 | | `feature-review` | `feature-review-template.md` | 自审报告结构 | | `feature-review` | `commit-message-template.md` | review fix commit 信息 | @@ -177,21 +177,21 @@ lite 版本**无 Hook**——跨模块改动留痕已移除。跨模块改动须 | 所属 Skill | 脚本文件 | 用途 | |---|---|---| -| `lite-init` | `scripts/render.sh` | 渲染单个 `_module.md` 或 `REQ-*.md`(替换 6 个占位符) | -| `lite-design` | `scripts/merge-gitignore.sh` | 合并 .gitignore(逐行判重) | +| `init` | `scripts/render.sh` | 渲染单个 `_module.md` 或 `REQ-*.md`(替换 6 个占位符) | +| `design` | `scripts/merge-gitignore.sh` | 合并 .gitignore(逐行判重) | **流程使用情况**:所有模板都被对应 skill 的 `SKILL.md` 引用,没有孤儿模板。 ## 前置依赖 -- **MySQL 8.x** 实例已就绪(推荐本地 / `*.local` host;`lite-build-db` 的安全守护要求 host 在白名单且 schema 名含 `test`/`dev`/`local`,避免误删生产库) -- **`mysql` 命令行**:`lite-build-db` 验证连接 + 自动 `DROP+CREATE` schema 后 apply V1;`scripts/setup-test-db.sh` 在测试闸门前后 drop+create 空库 +- **MySQL 8.x** 实例已就绪(推荐本地 / `*.local` host;`build-db` 的安全守护要求 host 在白名单且 schema 名含 `test`/`dev`/`local`,避免误删生产库) +- **`mysql` 命令行**:`build-db` 验证连接 + 自动 `DROP+CREATE` schema 后 apply V1;`scripts/setup-test-db.sh` 在测试闸门前后 drop+create 空库 - **Spring Boot + Flyway**(**必需**):pom.xml 声明 `flyway-core` + `flyway-mysql`;Spring 启动时自动 apply `sql/migrations/V*.sql`。本插件生成的 `setup-test-db.sh` 只清库,schema 必须由 Flyway 应用 -- **本地 git 仓库**(纯本地,**无需远程 / push / GitLab**):`lite-init` 执行 `git init`;编码阶段每模块由 `milestone` 本地 `git merge --no-ff` 进默认分支并 `git tag -a milestone/`,完成信号由 `git tag -l` 判定 -- **本地可运行 `mvn test` / `pnpm test`**:测试闸门 `scripts/test.sh` 由 `lite-design` 生成 +- **本地 git 仓库**(纯本地,**无需远程 / push / GitLab**):`init` 执行 `git init`;编码阶段每模块由 `milestone` 本地 `git merge --no-ff` 进默认分支并 `git tag -a milestone/`,完成信号由 `git tag -l` 判定 +- **本地可运行 `mvn test` / `pnpm test`**:测试闸门 `scripts/test.sh` 由 `design` 生成 ## 设计原则 -参见 `lite-init/templates/CLAUDE-template.md` 末尾的「通用工作准则」4 条:① Think Before Coding ② Simplicity First ③ Surgical Changes ④ Goal-Driven Execution。 +参见 `init/templates/CLAUDE-template.md` 末尾的「通用工作准则」4 条:① Think Before Coding ② Simplicity First ③ Surgical Changes ④ Goal-Driven Execution。 最关键的 1 条:"**所有测试与验证派发到全新子会话执行,主会话只接收结构化结论**"——避免主会话被测试输出污染,并让测试结果作为独立证据存档。 diff --git a/skills/coding/milestone/SKILL.md b/skills/coding/milestone/SKILL.md index 434fe35..ff51d73 100644 --- a/skills/coding/milestone/SKILL.md +++ b/skills/coding/milestone/SKILL.md @@ -1,6 +1,6 @@ --- name: milestone -description: 单元(后端模块 / 前端阶段)全部 approve 后的收尾闸门:子会话跑测试 → 写精简完成报告 → 本地 merge 进默认分支 + 打 milestone/ tag + 回写 docs/08 → 自动回调 coding-start。phase 由当前分支推断。 +description: 单元(后端模块 / 前端阶段)全部 approve 后的收尾闸门:子会话跑测试 → 写完成报告 → 本地 merge 进默认分支 + 打 milestone/ tag + 回写 docs/08 → 自动回调 coding-start。phase 由当前分支推断。 user-invocable: false allowed-tools: Read Write Edit Skill Agent Bash(git *) --- @@ -13,7 +13,7 @@ allowed-tools: Read Write Edit Skill Agent Bash(git *) 1. **推断 phase**(分支名 → backend / frontend) 2. **测试闸门**(子会话跑测试,绿才能继续) -3. **精简完成报告**(6 节,commit 到当前分支) +3. **完成报告**(6 节,commit 到当前分支) 4. **本地集成 + tag + 回写 docs/08 + 自动回调** ## 阶段 0:推断 phase 与关键变量 @@ -76,7 +76,7 @@ allowed-tools: Read Write Edit Skill Agent Bash(git *) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` -## 阶段 2:精简完成报告 +## 阶段 2:完成报告 > **核心约束:只收集 git 摘要,绝不把 diff 正文读入主会话上下文。** @@ -200,6 +200,6 @@ coding-start 重新检查后端 / 前端完成性(按 `里程碑:` 字段 + `g ## 参考 -- `${CLAUDE_SKILL_DIR}/templates/milestone-report-template.md`(6 节精简报告) +- `${CLAUDE_SKILL_DIR}/templates/milestone-report-template.md`(6 节完成报告) - 上游:`phase-driver`(后端所有 REQ / 前端所有 FE 全部 approve 后派发到此) - 下游:`coding-start`(自治回调,由其路由下一阶段) diff --git a/skills/crosscut/coding-start/SKILL.md b/skills/crosscut/coding-start/SKILL.md index 3a92bf6..2bdb415 100644 --- a/skills/crosscut/coding-start/SKILL.md +++ b/skills/crosscut/coding-start/SKILL.md @@ -13,10 +13,10 @@ allowed-tools: Skill Read Glob Grep Bash(cat *) Bash(git tag *) ### 步骤 0:打印流程图 -**第一件事**:打印 lite 整体流程图。 +**第一件事**:打印 整体流程图。 ```bash -cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/coding-start/banners/flow-lite.txt" +cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/coding-start/banners/flow.txt" ``` ### 步骤 1:确认 docs/08 存在 @@ -26,7 +26,7 @@ cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/coding-start/banners/flow-lite.txt" ### 步骤 2:计划完成性检查 -读取 `docs/08-模块任务管理.md § 一`,判断 ①②③ 三个 lite 计划阶段是否**全部勾选**(含各阶段子项)。 +读取 `docs/08-模块任务管理.md § 一`,判断 ①②③ 三个 计划阶段是否**全部勾选**(含各阶段子项)。 - 任一未勾选 → 提示用户先运行 `/erp-workflow:plan-start` 完成计划阶段,并停下。 - 全部勾选 → 进入步骤 3。 diff --git a/skills/crosscut/coding-start/banners/flow-lite.txt b/skills/crosscut/coding-start/banners/flow.txt index d82cdf3..06609c4 100644 --- a/skills/crosscut/coding-start/banners/flow-lite.txt +++ b/skills/crosscut/coding-start/banners/flow.txt @@ -1,10 +1,10 @@ ┌────────────────────────────────────────────────────────┐ -│ erp-workflow-lite │ +│ erp-workflow │ │ │ │ 计划(/plan-start,一次性,2 个审阅断点) │ -│ ① lite-init 初始化 + REQ 卡片 ⏸ 审阅 REQ │ -│ ② lite-design 脚手架 + docs/03 ⏸ 审阅 schema │ -│ ③ lite-build-db V1+apply + docs/05/08 │ +│ ① init 初始化 + REQ 卡片 ⏸ 审阅 REQ │ +│ ② design 脚手架 + docs/03 ⏸ 审阅 schema │ +│ ③ build-db V1+apply + docs/05/08 │ │ │ │ 编码(/coding-start,统一功能循环) │ │ 后端模块循环 ┐ │ diff --git a/skills/crosscut/plan-start/SKILL.md b/skills/crosscut/plan-start/SKILL.md index e91cdfd..a2356b6 100644 --- a/skills/crosscut/plan-start/SKILL.md +++ b/skills/crosscut/plan-start/SKILL.md @@ -1,6 +1,6 @@ --- name: plan-start -description: 计划阶段(Plan)入口与分发器。根据 docs/08 § 一 的 checkbox 状态派发到 ①②③ 对应的 lite 计划 skill。三阶段全部完成后打印提示让用户运行 /erp-workflow:coding-start 进入编码阶段。 +description: 计划阶段(Plan)入口与分发器。根据 docs/08 § 一 的 checkbox 状态派发到 ①②③ 对应的 计划 skill。三阶段全部完成后打印提示让用户运行 /erp-workflow:coding-start 进入编码阶段。 user-invocable: true allowed-tools: Skill Read Glob Grep Bash(cat *) --- @@ -11,10 +11,10 @@ allowed-tools: Skill Read Glob Grep Bash(cat *) ## 步骤 0:打印流程图 -**第一件事**:打印 lite 整体流程图。 +**第一件事**:打印 整体流程图。 ```bash -cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/plan-start/banners/flow-lite.txt" +cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/plan-start/banners/flow.txt" ``` ## 步骤 1:读取 docs/08 + 决定分发目标 @@ -22,15 +22,15 @@ cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/plan-start/banners/flow-lite.txt" docs/08 § 一 是**计划阶段进度追踪**(①②③ 的 checkbox)。 用 `Glob` 检查 `docs/08-模块任务管理.md` 是否存在: -- 不存在 → 后续 = `lite-init`(对应阶段 ①) +- 不存在 → 后续 = `init`(对应阶段 ①) -若存在,读取 `docs/08-模块任务管理.md § 一`,找到**第一个未勾选(`- [ ]`)的 lite 计划阶段**: +若存在,读取 `docs/08-模块任务管理.md § 一`,找到**第一个未勾选(`- [ ]`)的 计划阶段**: | 进度 | 后续 | |---|---| -| 无 docs/08,或 ① 未勾选 | `lite-init` | -| ① 已勾、② 未勾选 | `lite-design` | -| ①② 已勾、③ 未勾选 | `lite-build-db` | +| 无 docs/08,或 ① 未勾选 | `init` | +| ① 已勾、② 未勾选 | `design` | +| ①② 已勾、③ 未勾选 | `build-db` | | ①②③ 全部勾选 | **无分发**(计划阶段结束) | ## 步骤 2:分发通知 + 调用目标 skill @@ -68,12 +68,12 @@ docs/08 § 一 是**计划阶段进度追踪**(①②③ 的 checkbox)。 ``` 立即用 `Skill` 工具调用 `后续`: -- ① → `Skill(lite-init)` -- ② → `Skill(lite-design)` -- ③ → `Skill(lite-build-db)` +- ① → `Skill(init)` +- ② → `Skill(design)` +- ③ → `Skill(build-db)` ## 参考 - `docs/08-模块任务管理.md § 一`(计划阶段进度追踪,①②③ checkbox) - `CLAUDE.md`(项目指令) -- 后续 skills(通过 `Skill` 工具按名称调用):`lite-init`、`lite-design`、`lite-build-db` +- 后续 skills(通过 `Skill` 工具按名称调用):`init`、`design`、`build-db` diff --git a/skills/crosscut/plan-start/banners/flow-lite.txt b/skills/crosscut/plan-start/banners/flow.txt index d82cdf3..06609c4 100644 --- a/skills/crosscut/plan-start/banners/flow-lite.txt +++ b/skills/crosscut/plan-start/banners/flow.txt @@ -1,10 +1,10 @@ ┌────────────────────────────────────────────────────────┐ -│ erp-workflow-lite │ +│ erp-workflow │ │ │ │ 计划(/plan-start,一次性,2 个审阅断点) │ -│ ① lite-init 初始化 + REQ 卡片 ⏸ 审阅 REQ │ -│ ② lite-design 脚手架 + docs/03 ⏸ 审阅 schema │ -│ ③ lite-build-db V1+apply + docs/05/08 │ +│ ① init 初始化 + REQ 卡片 ⏸ 审阅 REQ │ +│ ② design 脚手架 + docs/03 ⏸ 审阅 schema │ +│ ③ build-db V1+apply + docs/05/08 │ │ │ │ 编码(/coding-start,统一功能循环) │ │ 后端模块循环 ┐ │ diff --git a/skills/plan/lite-build-db/SKILL.md b/skills/plan/build-db/SKILL.md index 7a51dc1..66c9211 100644 --- a/skills/plan/lite-build-db/SKILL.md +++ b/skills/plan/build-db/SKILL.md @@ -1,5 +1,5 @@ --- -name: lite-build-db +name: build-db description: 计划第 3 段——解析 docs/03 → V1 migration + validate.sh 校验 + apply 到本地 MySQL;生成 docs/05 API 契约 + 回填 REQ 依赖接口;计算模块/REQ 依赖顺序写入 docs/08 § 二(排序权威);最终占位符扫描后停下(计划完成)。 user-invocable: false allowed-tools: Read Write Edit Glob Grep Skill AskUserQuestion Bash(mkdir *) Bash(mysql *) Bash(set *) Bash(. .env.local) Bash(grep *) Bash(bash *) Bash(./scripts/setup-test-db.sh) Bash(cat *) Bash(cp *) @@ -7,7 +7,7 @@ allowed-tools: Read Write Edit Glob Grep Skill AskUserQuestion Bash(mkdir *) Bas **所有输出必须使用中文。** -# lite-build-db +# build-db ## 执行步骤 @@ -16,10 +16,10 @@ allowed-tools: Read Write Edit Glob Grep Skill AskUserQuestion Bash(mkdir *) Bas 用 `Bash` 执行以下命令(文件不存在时静默忽略,不报错): ```bash -cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/plan-start/banners/flow-lite.txt" 2>/dev/null || true +cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/plan-start/banners/flow.txt" 2>/dev/null || true ``` -打印横幅:`▶ 计划阶段 ③ — lite-build-db`。 +打印横幅:`▶ 计划阶段 ③ — build-db`。 ### A. DDL 生成(不依赖数据库连接) @@ -46,7 +46,7 @@ cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/plan-start/banners/flow-lite.txt" 2>/ 1. **头部注释**(6 行 SQL 注释): - `-- Flyway migration V1 — initial schema for `(从 `CLAUDE.md § 🎯 项目概述` 读) - `-- Generated: `(UTC ISO 8601 时间戳) - - `-- Source: 由计划 ③ lite-build-db 从 docs/03-数据库设计文档.md 翻译生成(schema SSoT 是 docs/03)` + - `-- Source: 由计划 ③ build-db 从 docs/03-数据库设计文档.md 翻译生成(schema SSoT 是 docs/03)` - `-- This is the FIRST migration; subsequent schema changes must be written as new files sql/migrations/V2__.sql, V3__... etc.` - `-- Apply: Flyway runs this automatically at Spring Boot startup.` - `-- Do not hand-edit this file after it is committed; write a new migration instead.` @@ -78,7 +78,7 @@ bash "${CLAUDE_SKILL_DIR}/scripts/validate.sh" \ #### B.1 检查 .env.local 凭据 -用 `Glob` 检查 `.env.local` 是否存在;不存在 → 提示用户重新运行计划 ② `lite-design` 重建并停下。 +用 `Glob` 检查 `.env.local` 是否存在;不存在 → 提示用户重新运行计划 ② `design` 重建并停下。 用 `Bash` 加载并校验 5 个必填字段非空: @@ -147,10 +147,10 @@ EXPECTED=$(grep -c '^## `' docs/03-数据库设计文档.md) #### D.2 回填模块头 + REQ 卡片的 TBD 字段 -1. 在 `docs/01-需求清单/*/_module.md`(模块头)和 `docs/01-需求清单/*/REQ-*.md`(REQ 卡片)中搜索 `TBD(lite-build-db 自动补)` 并回填。**不动** `TBD(lite-design 自动补)`(应已由 lite-design 回填完毕)。 +1. 在 `docs/01-需求清单/*/_module.md`(模块头)和 `docs/01-需求清单/*/REQ-*.md`(REQ 卡片)中搜索 `TBD(build-db 自动补)` 并回填。**不动** `TBD(design 自动补)`(应已由 design 回填完毕)。 - `_module.md` 的 `依赖模块` 字段:填入该模块所依赖的其他模块 ID(逗号分隔,无则填 `—`) - `REQ-*.md` 的 `依赖接口` 字段:填入该 REQ 依赖的接口路径(逗号分隔,无则填 `—`) -2. 打印回填统计:`lite-build-db 回填 处模块"依赖模块" + 处 REQ"依赖接口"`。 +2. 打印回填统计:`build-db 回填 处模块"依赖模块" + 处 REQ"依赖接口"`。 完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: - ` - [ ] docs/05 API 契约已生成 + 回填 REQ 依赖接口` @@ -205,7 +205,7 @@ EXPECTED=$(grep -c '^## `' docs/03-数据库设计文档.md) #### F.2 最终占位符扫描 -a. **`TBD` → 自动补齐**:Grep 搜索 `TBD(lite-design 自动补)` 和 `TBD(lite-build-db 自动补)`。有命中则就地补填(lite-design 残留 → 查 docs/03 填 `依赖表`;lite-build-db 残留 → 查 docs/05 按 REQ-ID 填 `依赖接口`),再 Grep 确认 0 命中;仍残留报错停下。 +a. **`TBD` → 自动补齐**:Grep 搜索 `TBD(design 自动补)` 和 `TBD(build-db 自动补)`。有命中则就地补填(design 残留 → 查 docs/03 填 `依赖表`;build-db 残留 → 查 docs/05 按 REQ-ID 填 `依赖接口`),再 Grep 确认 0 命中;仍残留报错停下。 b. **`【人工填写:...】` → QA 循环等用户补**: @@ -218,13 +218,13 @@ b. **`【人工填写:...】` → QA 循环等用户补**: #### F.3 勾选 § 一 ③ 顶层 + 打印计划完成横幅 完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选 ③ 顶层: -- `- [ ] 计划 ③ DB 初始化 + 下游文档 — lite-build-db` +- `- [ ] 计划 ③ DB 初始化 + 下游文档 — build-db` 打印计划阶段终止横幅并**停下**(不自动进入 coding 阶段): ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - [lite-build-db] ✅ 计划阶段(①②③)全部完成 + [build-db] ✅ 计划阶段(①②③)全部完成 所有规划文档已就绪,docs/08 § 一 全部勾选。 diff --git a/skills/plan/lite-build-db/scripts/validate.sh b/skills/plan/build-db/scripts/validate.sh index bed28ad..bed28ad 100644 --- a/skills/plan/lite-build-db/scripts/validate.sh +++ b/skills/plan/build-db/scripts/validate.sh diff --git a/skills/plan/lite-build-db/templates/docs-05-endpoint-template.md b/skills/plan/build-db/templates/docs-05-endpoint-template.md index 91a1fda..91a1fda 100644 --- a/skills/plan/lite-build-db/templates/docs-05-endpoint-template.md +++ b/skills/plan/build-db/templates/docs-05-endpoint-template.md diff --git a/skills/plan/lite-build-db/templates/docs-05-header-template.md b/skills/plan/build-db/templates/docs-05-header-template.md index ff6df19..ca0b68e 100644 --- a/skills/plan/lite-build-db/templates/docs-05-header-template.md +++ b/skills/plan/build-db/templates/docs-05-header-template.md @@ -27,4 +27,4 @@ BasePath: `{{base_path}}` {{pagination_note}} ## 接口清单 -(各模块接口段落见下方,由 `lite-build-db` 按 REQ 填入) +(各模块接口段落见下方,由 `build-db` 按 REQ 填入) diff --git a/skills/plan/lite-build-db/templates/docs-08-module-row-template.md b/skills/plan/build-db/templates/docs-08-module-row-template.md index edd15f1..edd15f1 100644 --- a/skills/plan/lite-build-db/templates/docs-08-module-row-template.md +++ b/skills/plan/build-db/templates/docs-08-module-row-template.md diff --git a/skills/plan/lite-design/SKILL.md b/skills/plan/design/SKILL.md index 8729a64..52cb725 100644 --- a/skills/plan/lite-design/SKILL.md +++ b/skills/plan/design/SKILL.md @@ -1,5 +1,5 @@ --- -name: lite-design +name: design description: 计划第 2 段——生成架构文档(docs/04 § 一+,含前端 Design Tokens + 环境配置)+ 工具脚本 + .env.local + sql/migrations/,然后从 REQ 正向设计 docs/03 并回填 REQ 依赖表,停下等人工审阅 docs/03。 user-invocable: false allowed-tools: Read Write Edit Glob Grep Skill AskUserQuestion Bash(mkdir *) Bash(cp *) Bash(cat *) Bash(bash *) @@ -7,7 +7,7 @@ allowed-tools: Read Write Edit Glob Grep Skill AskUserQuestion Bash(mkdir *) Bas **所有输出必须使用中文。** -# lite-design +# design ## 执行步骤 @@ -16,10 +16,10 @@ allowed-tools: Read Write Edit Glob Grep Skill AskUserQuestion Bash(mkdir *) Bas 用 `Bash` 执行以下命令(文件不存在时静默忽略,不报错): ```bash -cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/plan-start/banners/flow-lite.txt" 2>/dev/null || true +cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/plan-start/banners/flow.txt" 2>/dev/null || true ``` -打印横幅:`▶ 计划阶段 ② — lite-design`。 +打印横幅:`▶ 计划阶段 ② — design`。 ### A. 读取锁定的输入 @@ -32,9 +32,9 @@ cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/plan-start/banners/flow-lite.txt" 2>/ ### B. 生成 docs/04 § 一+(保留 § 零 不覆盖) -docs/04 已由 lite-init 写入 § 零。本步骤追加 § 一 ~ 五。 +docs/04 已由 init 写入 § 零。本步骤追加 § 一 ~ 五。 -lite 版的 docs/04 承担三类内容(不再生成独立的前端规范文件或环境配置文件): +docs/04 承担三类内容(不再生成独立的前端规范文件或环境配置文件): - § 一~三:后端/前端/共同编码规范 - § 四:前端 Design Tokens + 交互约定 - § 五:环境配置 @@ -58,7 +58,7 @@ cp "${CLAUDE_SKILL_DIR}/templates/env-local-template" .env.local cp "${CLAUDE_SKILL_DIR}/templates/scripts-setup-test-db-template.sh" scripts/setup-test-db.sh ``` -注意:lite 版不生成 `src/styles/tokens.css`(前端 token 骨架由前端阶段处理)。 +注意:本阶段不生成 `src/styles/tokens.css`(前端 token 骨架由前端阶段处理)。 #### C.2 渲染 scripts/test.sh @@ -116,21 +116,21 @@ bash "${CLAUDE_SKILL_DIR}/scripts/merge-gitignore.sh" "${CLAUDE_SKILL_DIR}/templ ### F. 回填模块头 + REQ 卡片的 TBD 字段 1. 列出 `docs/01-需求清单/*/_module.md`(模块头)和 `docs/01-需求清单/*/REQ-*.md`(REQ 卡片)。 -2. 在这些文件中搜索 `TBD(lite-design 自动补)` 并回填为实际表名。**不动** `TBD(lite-build-db 自动补)`。 +2. 在这些文件中搜索 `TBD(design 自动补)` 并回填为实际表名。**不动** `TBD(build-db 自动补)`。 - `_module.md` 的 `涉及表` 字段:填入该模块涉及的所有表名(逗号分隔) - `REQ-*.md` 的 `依赖表` 字段:填入该 REQ 操作的表名(逗号分隔) -3. 打印回填统计:`lite-design 回填 处模块"涉及表" + 处 REQ"依赖表"`。 +3. 打印回填统计:`design 回填 处模块"涉及表" + 处 REQ"依赖表"`。 ### G. 勾选 § 一 ② 顶层 + 停下等人工审阅 1. 完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选 ② 顶层: - - `- [ ] 计划 ② 脚手架 + 数据库设计 — lite-design` + - `- [ ] 计划 ② 脚手架 + 数据库设计 — design` 2. 打印停下横幅并**停下**: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - [lite-design] ✅ 计划 ② 完成 + [design] ✅ 计划 ② 完成 产出: ✓ docs/04-技术规范.md(§ 一+ | § 四 Design Tokens | § 五 环境配置) diff --git a/skills/plan/lite-design/scripts/merge-gitignore.sh b/skills/plan/design/scripts/merge-gitignore.sh index 478182e..5beb4f6 100755 --- a/skills/plan/lite-design/scripts/merge-gitignore.sh +++ b/skills/plan/design/scripts/merge-gitignore.sh @@ -5,7 +5,7 @@ # - 若已存在 → 逐行判重,只追加模板里缺失的规则行(跳过注释/空行) # # 用法:merge-gitignore.sh [] -# template_path 模板文件绝对路径(由 lite-design skill 传入) +# template_path 模板文件绝对路径(由 design skill 传入) # target_gitignore_path 目标 .gitignore 路径,默认为当前工作目录下的 .gitignore # # 判重:grep -xF 整行精确匹配 + 字面字符串(非正则),避免 .env 误匹配 .env.local, diff --git a/skills/plan/lite-design/templates/docs-03-header-template.md b/skills/plan/design/templates/docs-03-header-template.md index 1fc6a44..0def776 100644 --- a/skills/plan/lite-design/templates/docs-03-header-template.md +++ b/skills/plan/design/templates/docs-03-header-template.md @@ -2,7 +2,7 @@ - **Schema**: `{{schema_name}}` - **Migration 清单**: `sql/migrations/V*.sql`(由 Flyway 顺序 apply) -- **生成方式**: 由计划 ② `lite-design` 基于 `docs/01-需求清单//REQ-*.md` REQ 卡片正向设计生成(schema SSoT)。 +- **生成方式**: 由计划 ② `design` 基于 `docs/01-需求清单//REQ-*.md` REQ 卡片正向设计生成(schema SSoT)。 ## 项目标准列约定 diff --git a/skills/plan/lite-design/templates/docs-03-table-template.md b/skills/plan/design/templates/docs-03-table-template.md index d05c5be..d05c5be 100644 --- a/skills/plan/lite-design/templates/docs-03-table-template.md +++ b/skills/plan/design/templates/docs-03-table-template.md diff --git a/skills/plan/lite-design/templates/docs-04-skeleton-template.md b/skills/plan/design/templates/docs-04-skeleton-template.md index 96d300f..e2e659c 100644 --- a/skills/plan/lite-design/templates/docs-04-skeleton-template.md +++ b/skills/plan/design/templates/docs-04-skeleton-template.md @@ -1,15 +1,15 @@ ## 一、后端规范 ### 1.1 规则 - + - 【人工填写:一条后端通用约定,按需复制本行新增更多;无则填「无」】 ### 1.2 分层结构 @@ -47,7 +47,7 @@ lite 版将前端 Design Tokens + 环境配置内容折叠到本文件 § 四 + ### 2.5 样式与主题 diff --git a/skills/plan/lite-design/templates/env-local-template b/skills/plan/design/templates/env-local-template index c16e67f..c16e67f 100644 --- a/skills/plan/lite-design/templates/env-local-template +++ b/skills/plan/design/templates/env-local-template diff --git a/skills/plan/lite-design/templates/gitignore-append-template b/skills/plan/design/templates/gitignore-append-template index c8635ec..4aba130 100644 --- a/skills/plan/lite-design/templates/gitignore-append-template +++ b/skills/plan/design/templates/gitignore-append-template @@ -1,4 +1,4 @@ -# ==== ERP 插件推荐忽略项(lite-design 追加) ==== +# ==== ERP 插件推荐忽略项(design 追加) ==== # 本地运行时配置(含真实凭据,严禁入库) .env.local .env.*.local diff --git a/skills/plan/lite-design/templates/scripts-setup-test-db-template.sh b/skills/plan/design/templates/scripts-setup-test-db-template.sh index 41a3970..41a3970 100644 --- a/skills/plan/lite-design/templates/scripts-setup-test-db-template.sh +++ b/skills/plan/design/templates/scripts-setup-test-db-template.sh diff --git a/skills/plan/lite-design/templates/scripts-test-template.sh b/skills/plan/design/templates/scripts-test-template.sh index 07d705d..07d705d 100644 --- a/skills/plan/lite-design/templates/scripts-test-template.sh +++ b/skills/plan/design/templates/scripts-test-template.sh diff --git a/skills/plan/lite-init/SKILL.md b/skills/plan/init/SKILL.md index ab1448c..7863637 100644 --- a/skills/plan/lite-init/SKILL.md +++ b/skills/plan/init/SKILL.md @@ -1,5 +1,5 @@ --- -name: lite-init +name: init description: 计划第 1 段——项目初始化 + 范围锁定。复制 CLAUDE.md/docs(01/04/08) 模板、依赖检查、git init,引导项目概述+技术栈+需求索引,生成 REQ 卡片骨架,停下等人工审阅 REQ。 user-invocable: false allowed-tools: Glob Read Edit Grep Skill AskUserQuestion Bash(mkdir *) Bash(cp *) Bash(sed *) Bash(bash *) Bash(cat *) Bash(git init) Bash(command -v *) Bash(uname *) Bash(brew *) Bash(apt *) Bash(apt-get *) Bash(yum *) Bash(apk *) Bash(export PATH=*) Bash(echo *) @@ -13,19 +13,19 @@ allowed-tools: Glob Read Edit Grep Skill AskUserQuestion Bash(mkdir *) Bash(cp * ### 步骤 0:打印计划流程图 -用 `Bash` 向用户展示 lite 流程图(▶ 位于"计划 ①"): +用 `Bash` 向用户展示整体流程图(▶ 位于"计划 ①"): ```bash -cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/plan-start/banners/flow-lite.txt" 2>/dev/null || true +cat "${CLAUDE_PLUGIN_ROOT}/skills/crosscut/plan-start/banners/flow.txt" 2>/dev/null || true ``` -> 注:`flow-lite.txt` 由 Task 7 创建,当前若文件不存在,命令静默忽略,不影响后续执行。 +> 注:`flow.txt` 由 Task 7 创建,当前若文件不存在,命令静默忽略,不影响后续执行。 打印分发横幅: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - [lite-init] 计划 ① 初始化 + 范围锁定 + [init] 计划 ① 初始化 + 范围锁定 ▶ 当前位置:计划 ① / 共 ③ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` @@ -54,7 +54,7 @@ cp -n "${CLAUDE_SKILL_DIR}/templates/docs-08-initial-template.md" docs/08-模块 全部通过后打印单行汇总再进入步骤 C: ``` -[lite-init] 依赖检查: git ✓ mysql ✓ +[init] 依赖检查: git ✓ mysql ✓ ``` 完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: @@ -73,7 +73,7 @@ cp -n "${CLAUDE_SKILL_DIR}/templates/docs-08-initial-template.md" docs/08-模块 ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - [lite-init] 项目初始化完成 + [init] 项目初始化完成 已创建: ✓ CLAUDE.md(从插件模板复制) @@ -92,7 +92,7 @@ cp -n "${CLAUDE_SKILL_DIR}/templates/docs-08-initial-template.md" docs/08-模块 ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - [lite-init] 请填写项目概述 + [init] 请填写项目概述 📄 文件位置: ./CLAUDE.md 📌 编辑位置: § 🎯 项目概述 @@ -122,7 +122,7 @@ cp -n "${CLAUDE_SKILL_DIR}/templates/docs-08-initial-template.md" docs/08-模块 ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - [lite-init] 技术栈已保存 + [init] 技术栈已保存 📄 文件位置: ./docs/04-技术规范.md(由模板生成) 📌 编辑位置: § 零、技术栈总览 @@ -151,7 +151,7 @@ cp -n "${CLAUDE_SKILL_DIR}/templates/docs-08-initial-template.md" docs/08-模块 ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - [lite-init] 请填写需求清单模块索引 + [init] 请填写需求清单模块索引 📄 文件位置: ./docs/01-需求清单/index.md 📌 编辑位置: § 模块索引(表格) @@ -192,13 +192,13 @@ cp -n "${CLAUDE_SKILL_DIR}/templates/docs-08-initial-template.md" docs/08-模块 4. 用 `Edit` 在 `docs/08-模块任务管理.md` 勾选(计划 ① 子项 + ① 顶层): - ` - [ ] REQ 卡片骨架已生成(docs/01-需求清单//REQ-*.md)` - - `- [ ] 计划 ① 初始化 + 范围锁定 — lite-init` + - `- [ ] 计划 ① 初始化 + 范围锁定 — init` -5. 打印停下横幅并**停止**,不自动派发 lite-design: +5. 打印停下横幅并**停止**,不自动派发 design: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - [lite-init] ✅ 计划 ① 完成 + [init] ✅ 计划 ① 完成 产出: ✓ CLAUDE.md § 🎯 项目概述 @@ -219,7 +219,7 @@ cp -n "${CLAUDE_SKILL_DIR}/templates/docs-08-initial-template.md" docs/08-模块 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` -> **STOP**:此处是人工审阅 REQ 的闸门。停止执行,等待用户运行 `/erp-workflow:plan-start` 后由 plan-start 派发 lite-design。 +> **STOP**:此处是人工审阅 REQ 的闸门。停止执行,等待用户运行 `/erp-workflow:plan-start` 后由 plan-start 派发 design。 ## 参考 @@ -230,4 +230,4 @@ cp -n "${CLAUDE_SKILL_DIR}/templates/docs-08-initial-template.md" docs/08-模块 - `${CLAUDE_SKILL_DIR}/templates/req-card-template.md`(REQ 卡片模板) - `${CLAUDE_SKILL_DIR}/templates/_module-template.md`(模块头模板) - `${CLAUDE_SKILL_DIR}/scripts/render.sh`(步骤 G 渲染助手,dispatch `module` / `req` 两种模式) -- 下游:人工审阅 REQ 后运行 `/erp-workflow:plan-start`,由 plan-start 派发 `lite-design`(计划 ②) +- 下游:人工审阅 REQ 后运行 `/erp-workflow:plan-start`,由 plan-start 派发 `design`(计划 ②) diff --git a/skills/plan/lite-init/scripts/render.sh b/skills/plan/init/scripts/render.sh index 2bf2182..b78e455 100644 --- a/skills/plan/lite-init/scripts/render.sh +++ b/skills/plan/init/scripts/render.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# render.sh — lite-init 渲染单个 _module.md 或 REQ-*.md +# render.sh — init 渲染单个 _module.md 或 REQ-*.md # # 用法: # bash render.sh module diff --git a/skills/plan/lite-init/templates/CLAUDE-template.md b/skills/plan/init/templates/CLAUDE-template.md index 8da923c..29feebb 100644 --- a/skills/plan/lite-init/templates/CLAUDE-template.md +++ b/skills/plan/init/templates/CLAUDE-template.md @@ -15,7 +15,7 @@ ## 🔄 编码开发流程(两阶段 + 统一功能循环) -编码阶段入口:`/erp-workflow:coding-start`。lite 保留**后端模块阶段**与**前端整体阶段**两段,但两段共用**同一套功能循环 skill**(`feature-spec → feature-tdd → feature-review`),由 `phase` 参数区分。 +编码阶段入口:`/erp-workflow:coding-start`。本插件保留**后端模块阶段**与**前端整体阶段**两段,但两段共用**同一套功能循环 skill**(`feature-spec → feature-tdd → feature-review`),由 `phase` 参数区分。 ### 阶段路由(coding-start 内,只做分发) @@ -88,7 +88,7 @@ | 格式 | 谁填 | 使用阶段 | 说明 | |------|-----|---------|------| | `【人工填写:<简短说明>】` | 人 | 仅计划阶段文档 | 密钥 / 账密 / 包名 / 命名约定 / 小版本号等人工才能决定的值;编码阶段 plan/spec 禁止出现,查不到真值时用 `AskUserQuestion` 问用户 | -| `TBD(<责任人>)` | CC 自动 | 计划或编码 | 后缀附带责任方(如 `TBD(lite-design 自动补)` / `TBD(lite-build-db 自动补)`);由对应 skill 就地补填 | +| `TBD(<责任人>)` | CC 自动 | 计划或编码 | 后缀附带责任方(如 `TBD(design 自动补)` / `TBD(build-db 自动补)`);由对应 skill 就地补填 | **HTML 注释 ``**:提示占位,是**插件内部大纲模板**里给 LLM 的**填空提示 / 章节引导**,指引 LLM 按结构填实际内容。skill 生成时会**剥除**这些注释,最终产物里注释不会保留。 @@ -116,7 +116,7 @@ 3. **Apply 方式**:Spring Boot 启动 / 测试启动时 Flyway 自动 apply(项目必须在 `pom.xml` 声明 `flyway-core` + `flyway-mysql` 依赖)。`scripts/setup-test-db.sh` 只负责清空库,不做 apply 4. **已合并的 migration 永不修改**:发现错了写一个补救 migration(如 `V7__fix_V5_index_name.sql`),旧 `V_n.sql` 不动 5. **临时调试 DDL**:临时在本地试字段/索引可手动 `mysql -e`,但不写 migration;下次 `setup-test-db.sh` 会 drop+create 清掉 -6. **计划 ③ 生成的 V1**:`V1__initial_schema.sql` 是计划阶段由 `lite-build-db` 从 `docs/03-数据库设计文档.md`(lite-design 正向设计的 schema SSoT)翻译生成的初始版本;后续 V2/V3/... 由编码阶段每个 REQ 按需写入,**同时**反向同步更新 docs/03 对应表小节以保持 SSoT 一致 +6. **计划 ③ 生成的 V1**:`V1__initial_schema.sql` 是计划阶段由 `build-db` 从 `docs/03-数据库设计文档.md`(design 正向设计的 schema SSoT)翻译生成的初始版本;后续 V2/V3/... 由编码阶段每个 REQ 按需写入,**同时**反向同步更新 docs/03 对应表小节以保持 SSoT 一致 --- @@ -172,7 +172,7 @@ | # | 软规则 | 允许动作 | 强制后续 | | - | ----- | ------- | ------- | | S1 | **技术栈外组件引入** | 用 `AskUserQuestion` 给用户三选一:接受引入 / 换方案 / 拒绝 | ① **接受** → 同会话直接在 `docs/04 § 零` 追加一行 → 继续流程 ② **换方案 / 拒绝** → 视为常规歧义澄清,继续 Q&A 收敛 ③ 不写 Blocker、不中断流程 | -| S2 | **跨模块改动** | **默认不改**,仅为当前模块实现所必需时允许修改 | 在该模块 `milestone` 完成报告的「⑤ 偏离与取舍」节如实记录改了哪个非当前模块的文件 + 原因(lite 无自动留痕 hook,靠报告人工记录) | +| S2 | **跨模块改动** | **默认不改**,仅为当前模块实现所必需时允许修改 | 在该模块 `milestone` 完成报告的「⑤ 偏离与取舍」节如实记录改了哪个非当前模块的文件 + 原因(本插件无自动留痕 hook,靠报告人工记录) | --- @@ -236,7 +236,7 @@ Strong success criteria let you loop independently. Weak criteria ("make it work --- -## 🗺️ Skill 索引(erp-workflow-lite,共 11 个) +## 🗺️ Skill 索引(erp-workflow,共 11 个) ### 入口 @@ -249,9 +249,9 @@ Strong success criteria let you loop independently. Weak criteria ("make it work | Skill | 描述 | |-------|------| -| `lite-init` | 计划 ①——项目初始化 + 范围锁定(模板复制、依赖检查、git init、项目概述+技术栈+需求索引、REQ 卡片生成,停下等人工审阅) | -| `lite-design` | 计划 ②——脚手架 + 数据库设计(docs/04 § 一+、scripts、.env.local、docs/03 DB 设计,停下等人工审阅) | -| `lite-build-db` | 计划 ③——DB 初始化 + 下游文档(V1 migration apply、docs/05 API 契约、docs/08 § 二模块清单,计划阶段结束) | +| `init` | 计划 ①——项目初始化 + 范围锁定(模板复制、依赖检查、git init、项目概述+技术栈+需求索引、REQ 卡片生成,停下等人工审阅) | +| `design` | 计划 ②——脚手架 + 数据库设计(docs/04 § 一+、scripts、.env.local、docs/03 DB 设计,停下等人工审阅) | +| `build-db` | 计划 ③——DB 初始化 + 下游文档(V1 migration apply、docs/05 API 契约、docs/08 § 二模块清单,计划阶段结束) | ### 编码阶段 @@ -274,7 +274,7 @@ Strong success criteria let you loop independently. Weak criteria ("make it work | 文档 | 职责 | |------|------| | `docs/01-需求清单/` | REQ 卡片目录(模块子目录 + index.md) | -| `docs/03-数据库设计文档.md` | 表/字段/索引/外键 SSoT(lite-design 生成,编码阶段同步更新) | -| `docs/04-技术规范.md` | 技术栈总览(§ 零)+ 架构规范 + 前端 Design Tokens / 交互约定 + 环境变量说明(含 .env.local 密钥字段)——lite 把原 UI 规范与环境配置并入此文件 | -| `docs/05-API接口契约.md` | 所有后端接口契约(lite-build-db 生成,feature-spec 按需追加) | +| `docs/03-数据库设计文档.md` | 表/字段/索引/外键 SSoT(design 生成,编码阶段同步更新) | +| `docs/04-技术规范.md` | 技术栈总览(§ 零)+ 架构规范 + 前端 Design Tokens / 交互约定 + 环境变量说明(含 .env.local 密钥字段)——已把原 UI 规范与环境配置并入此文件 | +| `docs/05-API接口契约.md` | 所有后端接口契约(build-db 生成,feature-spec 按需追加) | | `docs/08-模块任务管理.md` | 全流程进度跟踪(§ 一计划 / § 二后端模块 / § 三前端整体) | diff --git a/skills/plan/lite-init/templates/_module-template.md b/skills/plan/init/templates/_module-template.md index b7b2b75..d9927fe 100644 --- a/skills/plan/lite-init/templates/_module-template.md +++ b/skills/plan/init/templates/_module-template.md @@ -1,5 +1,5 @@ # {{module_code}}-{{module_name}} - **模块简述**: {{module_brief}} -- **依赖模块**: TBD(lite-build-db 自动补) -- **涉及表**: TBD(lite-design 自动补) +- **依赖模块**: TBD(build-db 自动补) +- **涉及表**: TBD(design 自动补) diff --git a/skills/plan/lite-init/templates/docs-01-index-template.md b/skills/plan/init/templates/docs-01-index-template.md index 08e326a..08e326a 100644 --- a/skills/plan/lite-init/templates/docs-01-index-template.md +++ b/skills/plan/init/templates/docs-01-index-template.md diff --git a/skills/plan/lite-init/templates/docs-04-stack-template.md b/skills/plan/init/templates/docs-04-stack-template.md index f63e037..463d61b 100644 --- a/skills/plan/lite-init/templates/docs-04-stack-template.md +++ b/skills/plan/init/templates/docs-04-stack-template.md @@ -29,4 +29,4 @@ | 对象映射工具 | MapStruct | 最新稳定版 | DTO / VO / Entity 转换 | | 工具类库 | Hutool / Apache Commons | 最新稳定版 | 常用工具方法支持 | -> 本表由 lite-init 锁定。后续所有规范基于此表推导。 +> 本表由 init 锁定。后续所有规范基于此表推导。 diff --git a/skills/plan/lite-init/templates/docs-08-initial-template.md b/skills/plan/init/templates/docs-08-initial-template.md index af432ad..3bd6a04 100644 --- a/skills/plan/lite-init/templates/docs-08-initial-template.md +++ b/skills/plan/init/templates/docs-08-initial-template.md @@ -2,12 +2,12 @@ > 全流程进度跟踪。CC 每完成一项产出就勾选一项。 > - **§ 一 计划阶段**:`plan-start` 找第一个未勾的计划段(①②③)分发到对应 skill -> - **§ 二 Coding(后端模块)**:`coding-start` 扫描 docs/08 § 二 的 `里程碑:` 字段 + 本地 `git tag -l 'milestone/'`,找第一个未打里程碑模块,派发 `phase-driver`(phase=backend)。本 § 二 行序即 REQ 开发顺序(lite-build-db 按依赖拓扑写入),是 phase-driver 的排序权威 +> - **§ 二 Coding(后端模块)**:`coding-start` 扫描 docs/08 § 二 的 `里程碑:` 字段 + 本地 `git tag -l 'milestone/'`,找第一个未打里程碑模块,派发 `phase-driver`(phase=backend)。本 § 二 行序即 REQ 开发顺序(build-db 按依赖拓扑写入),是 phase-driver 的排序权威 > - **§ 三 Coding(前端整体)**:后端全部打里程碑后,`coding-start` 读 § 三 `整体里程碑:` + `git tag -l 'milestone/frontend-phase'`,未完成则派发 `phase-driver`(phase=frontend) ## 一、计划阶段进度 -- [ ] 计划 ① 初始化 + 范围锁定 — lite-init +- [ ] 计划 ① 初始化 + 范围锁定 — init - [ ] 项目文件骨架已创建(CLAUDE.md + docs/01 index + docs/04 + docs/08) - [ ] 依赖检查通过(git / mysql) - [ ] Git 已初始化 @@ -15,19 +15,19 @@ - [ ] 技术栈已确认(docs/04 § 零) - [ ] 需求清单索引已填写(docs/01-需求清单/index.md) - [ ] REQ 卡片骨架已生成(docs/01-需求清单//REQ-*.md) -- [ ] 计划 ② 脚手架 + 数据库设计 — lite-design +- [ ] 计划 ② 脚手架 + 数据库设计 — design - [ ] 架构文档已生成(docs/04 § 一+ | scripts/*.sh | .env.local | sql/migrations/) - [ ] docs/03 数据库设计已生成(REQ → 表/字段/索引/外键,回填 REQ 依赖表) -- [ ] 计划 ③ DB 初始化 + 下游文档 — lite-build-db +- [ ] 计划 ③ DB 初始化 + 下游文档 — build-db - [ ] V1 migration 已生成并校验 + apply 到本地 MySQL - [ ] docs/05 API 契约已生成 + 回填 REQ 依赖接口 - [ ] docs/08 § 二 模块清单(含 REQ 顺序)已生成 ## 二、Coding 阶段(模块循环) -(lite-build-db 填入后,每行一个后端模块。每个模块的 `里程碑:` 字段在 `—` 和 `milestone/` 之间变化,完成由本地 `git tag -l` 判定。`coding-start` 每次扫每模块的里程碑 tag 决定派发。所有模块打里程碑后整体完成。) +(build-db 填入后,每行一个后端模块。每个模块的 `里程碑:` 字段在 `—` 和 `milestone/` 之间变化,完成由本地 `git tag -l` 判定。`coding-start` 每次扫每模块的里程碑 tag 决定派发。所有模块打里程碑后整体完成。) - ### {{req_id}} {{title}} @@ -59,5 +59,5 @@ req-card-template:单张 REQ 卡片骨架。每张卡片是 docs/01-需求清 - **跨字段规则**: {{rules}} - **边界**: {{constraints}} - **验收**: {{acceptance}} -- **依赖表**: TBD(lite-design 自动补) -- **依赖接口**: TBD(lite-build-db 自动补) +- **依赖表**: TBD(design 自动补) +- **依赖接口**: TBD(build-db 自动补)