From 12b0d6d48f0bcc611d2349e29d4a9d562604107b Mon Sep 17 00:00:00 2001 From: zichun <26684461+reporkey@users.noreply.github.com> Date: Tue, 9 Jun 2026 10:50:23 +0800 Subject: [PATCH] cleanup: 清理历史包袱并修复历史遗留的失效引用 --- README.md | 8 ++++---- skills/coding/coding-start/SKILL.md | 2 +- skills/plan/downstream-gen/SKILL.md | 2 +- skills/plan/plan-start/SKILL.md | 2 +- skills/plan/project-init/templates/CLAUDE-template.md | 2 +- skills/plan/skeleton-gen/SKILL.md | 7 +------ 6 files changed, 9 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index da74465..3f83abf 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,7 @@ erp-workflow-plugin/ | Skill | 作用 | 谁调用 | |---|---|---| | `plan-start` | **A 阶段入口 + Plan 终结硬闸**。读 docs/08 § 一 找第一个未勾 A 子项 → 派发对应 A skill;A 全部完成时校验 4 项前移闸门(REQ 真实数据、`config-vars.yaml` 全部配置(含 DB 凭据 / 密钥)全锁、docs/04 § 零 命令齐、docs/05+02 已评审),全过才提示运行 `/erp-workflow:coding-start`,否则指出缺口不放行 | **用户手动** `/erp-workflow:plan-start` | -| `coding-start` | **B 阶段瘦入口**(`allowed-tools: Read Glob Workflow Bash(git ...)`)。校验 Plan 完成态 + git 就绪(docs/08 § 一 全勾、git 在默认分支或自动切回 halt 残留功能分支、工作树干净)→ 读 docs/08 § 二/§ 三 + `git tag -l 'milestone/*'` 概述阶段进度(Workflow Router 再用 `req-done/*` 判定功能级 resume)→ 调用 `Workflow({scriptPath:"${CLAUDE_PLUGIN_ROOT}/workflows/coding.mjs", args:{projectRoot}})` 启动整个编码阶段 → 告知"已在后台启动" | **用户手动** `/erp-workflow:coding-start` | +| `coding-start` | **B 阶段瘦入口**(`allowed-tools: Read Glob Workflow Bash(git ...)`)。校验 Plan 完成态(docs/08 § 一 全勾)+ 取得 projectRoot(git 就绪由 coding.mjs runBranchSetup 在运行时把守)→ 读 docs/08 § 二/§ 三 + `git tag -l 'milestone/*'` 概述阶段进度(Workflow Router 再用 `req-done/*` 判定功能级 resume)→ 调用 `Workflow({scriptPath:"${CLAUDE_PLUGIN_ROOT}/workflows/coding.mjs", args:{projectRoot}})` 启动整个编码阶段 → 告知"已在后台启动" | **用户手动** `/erp-workflow:coding-start` | ### Plan 阶段 A skill(A0~A5,共 6 个) @@ -149,11 +149,11 @@ erp-workflow-plugin/ |---|---|---| | `code-reviewer` | 统一 reviewer。`phase=backend` 跑通用代码审查维度;`phase=frontend` 附加前端 8 维 checklist(prototype 一致性 / design tokens / a11y / 响应式 / 业务校验前端复刻 / API 一致性 / 状态机覆盖 / 测试文件隔离,主观维度仅标记明显问题不触发 request-changes)。非交互,返回结构化 verdict,绝不弹窗 | `workflows/coding.mjs` 的 review stage:`agent(..., {agentType:'erp-workflow:code-reviewer'})`(必须带 `erp-workflow:` 插件命名空间——裸 `code-reviewer` 会与其它插件的同名 agent 歧义) | -## Templates 清单(26 份) +## Templates 清单(19 份) | 所属 Skill | 模板文件 | 用途 | |---|---|---| -| project-init | `CLAUDE-template.md` | 项目根的 CLAUDE.md(4 条通用准则 + ERP 专属约定) | +| project-init | `CLAUDE-template.md` | 项目根的 CLAUDE.md(ERP 专属编码约束 + Schema 演化 + Git 提交规范) | | project-init | `docs-01-index-template.md` | 需求清单索引骨架,等用户填子模块索引表(五列,一行一个子模块) | | project-init | `docs-04-stack-template.md` | docs/04 § 零 默认技术栈总览(零槽位,拷即可) | | project-init | `docs-08-initial-template.md` | 工作流进度文件骨架(Plan A0~A5 checkbox) | @@ -184,4 +184,4 @@ erp-workflow-plugin/ ## 设计原则 -参见 `skills/plan/project-init/templates/CLAUDE-template.md` 末尾的「🧭 通用工作准则」。 +参见 `skills/plan/project-init/templates/CLAUDE-template.md` 的「📐 编码行为约束」。 diff --git a/skills/coding/coding-start/SKILL.md b/skills/coding/coding-start/SKILL.md index cb92d75..e38c1e3 100644 --- a/skills/coding/coding-start/SKILL.md +++ b/skills/coding/coding-start/SKILL.md @@ -45,7 +45,7 @@ allowed-tools: Read Glob Workflow Bash(git rev-parse *) Bash(git tag *) > 注:REQ 真实数据 / config 全锁 / docs/04 命令齐 / docs/05+02 已评审等**内容闸**由 `plan-start` 终结硬闸把守;本步只校验「Plan 完成态(checkbox)」,不重复内容校验。 > -> 注:git 就绪(在默认分支 / 工作树干净 / 功能分支创建与合并)由 coding.mjs `runBranchSetup` 在运行时把守——分支已存在则 checkout、不存在则从默认分支新建(与当前所停分支无关),工作树不干净会立即 HALT;续跑点由 Router 从 `milestone/*` tag + docs/08 字段重算,与所在分支无关。故本入口不再做 git 就绪预检,只取 `projectRoot` 供步骤 4。 +> 注:git 就绪(在默认分支 / 工作树干净 / 功能分支创建与合并)由 coding.mjs `runBranchSetup` 在运行时把守——分支已存在则 checkout、不存在则从默认分支新建(与当前所停分支无关),工作树不干净会立即 HALT;续跑点由 Router 从 `milestone/*` tag + docs/08 字段重算,与所在分支无关。故本入口不做 git 就绪预检,只取 `projectRoot` 供步骤 4。 1. **docs/08 § 一 A0~A5 全部勾选** - 读 § 一 进度表,确认 A0/A1/A2/A3/A4/A5(含各自子项)均为 `[x]`。 diff --git a/skills/plan/downstream-gen/SKILL.md b/skills/plan/downstream-gen/SKILL.md index 1bc42ed..5add7d9 100644 --- a/skills/plan/downstream-gen/SKILL.md +++ b/skills/plan/downstream-gen/SKILL.md @@ -1,6 +1,6 @@ --- name: downstream-gen -description: A5 下游文档生成——基于 docs/01 和 docs/03 推导,一次性生成 docs/02 + docs/05,回填 REQ 卡片依赖接口,把模块清单追加到 docs/08 § 二,并由 prototype/ + docs/01 + docs/05 推导 FE 清单写入 docs/08 § 三。这是 Plan 阶段最后一个 A 步骤(A6 已并入此处)。 +description: A5 下游文档生成——基于 docs/01 和 docs/03 推导,一次性生成 docs/02 + docs/05,回填 REQ 卡片依赖接口,把模块清单追加到 docs/08 § 二,并由 prototype/ + docs/01 + docs/05 推导 FE 清单写入 docs/08 § 三。这是 Plan 阶段最后一个 A 步骤。 user-invocable: false allowed-tools: Read Write Edit Glob Grep AskUserQuestion --- diff --git a/skills/plan/plan-start/SKILL.md b/skills/plan/plan-start/SKILL.md index 83f7b6f..8549503 100644 --- a/skills/plan/plan-start/SKILL.md +++ b/skills/plan/plan-start/SKILL.md @@ -76,7 +76,7 @@ A 阶段 checkbox 全部 `[x]` 后先跑下面 4 项前移闸门; 全过才放 ✓ docs/04 §零 各栈 build/lint/unit/e2e 命令齐全 ✓ docs/05 API 契约 + docs/02 构建顺序已评审 - 运行 /erp-workflow:coding-start 进入 B 阶段 (coding-start 会校验 git 状态). + 运行 /erp-workflow:coding-start 进入 B 阶段. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` diff --git a/skills/plan/project-init/templates/CLAUDE-template.md b/skills/plan/project-init/templates/CLAUDE-template.md index 1260789..f436e08 100644 --- a/skills/plan/project-init/templates/CLAUDE-template.md +++ b/skills/plan/project-init/templates/CLAUDE-template.md @@ -32,7 +32,7 @@ 1. **文件命名**:`sql/migrations/V__.sql`,例:`V5__add_user_email_unique_index.sql` 2. **版本号分配**:建文件前 `ls sql/migrations/V*.sql` 查当前最大 n,新文件 `n_max + 1` 3. **Apply 方式**:Spring Boot 启动 / 测试启动时 Flyway 自动 apply(项目必须在 `build.gradle` 声明 `flyway-core` + `flyway-mysql` 依赖)。`scripts/setup-test-db.mjs` 只负责清空库,不做 apply -4. **已合并的 migration 永不修改**:发现错了写一个补救 migration(如 `V7__fix_V5_index_name.sql`),旧 `V_n.sql` +4. **已合并的 migration 永不修改**:如果发现错了,写一个补救 migration(如 `V7__fix_V5_index_name.sql`)修正,旧 `V_n.sql` 保持原样、永不回改 5. **临时调试 DDL**:临时在本地试字段/索引可手动 `mysql -e`,但不写 migration;下次 `setup-test-db.mjs` 会 drop+create 清掉 6. **A4 生成的 V1**:`V1__initial_schema.sql` 是 A 阶段由 `db-init` 从 `docs/03-数据库设计文档.md`(A3 正向设计的 schema SSoT)翻译生成的初始版本;后续 V2/V3/... 由 B 阶段每个 REQ 按需写入,**同时**反向同步更新 docs/03 对应表小节以保持 SSoT 一致 diff --git a/skills/plan/skeleton-gen/SKILL.md b/skills/plan/skeleton-gen/SKILL.md index 64c0b10..926e6ed 100644 --- a/skills/plan/skeleton-gen/SKILL.md +++ b/skills/plan/skeleton-gen/SKILL.md @@ -24,14 +24,9 @@ docs/04 已由 scope-lock 写入 § 零。本步骤追加 § 一 ~ 三: 1. 读取 `docs/04-技术规范.md`(现有 § 零 完整内容)。 2. 读取 `${CLAUDE_SKILL_DIR}/templates/docs-04-skeleton-template.md`。 -3. 基于技术栈,按大纲生成 § 一 ~ 三 的项目专属内容,剥掉 HTML 注释。**§ 1.2 分层结构 / § 2.1 目录约定要写清后端/前端的实际目录布局**(原 docs/09 内容并入此处,供 Coding 阶段落盘 + 跨模块判定参照)。 +3. 基于技术栈,按大纲生成 § 一 ~ 三 的项目专属内容,剥掉 HTML 注释。**§ 1.2 分层结构 / § 2.1 目录约定要写清后端/前端的实际目录布局**(供 Coding 阶段落盘 + 跨模块判定参照)。 4. 拼接原有内容和新生成内容,写回 `docs/04-技术规范.md`。 -> **A2 不再单独出 docs/06 / 07 / 09**——它们的内容各有归属: -> - 环境 / 配置值(含凭据) → `config-vars.yaml`(A1 产出);构建 / 测试命令 → docs/04 § 零。 -> - 项目目录布局 → docs/04 § 1.2 分层结构 / § 2.1 目录约定;跨模块「路径→模块」→ docs/08 § 二 模块行 `路径:`。 -> - 前端 UI / 交互 / 布局 → 项目根 `prototype/`(完整 demo,权威);Design Tokens → `src/styles/tokens.css`(**色值冲突时 tokens.css 优先于 prototype**);前端编码规范 → docs/04 § 二。 - 完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: - ` - [ ] 架构文档已生成(docs/04 § 一+)` -- libgit2 0.22.2