Name Last Update
.claude-plugin Loading commit data...
agents Loading commit data...
hooks Loading commit data...
lib Loading commit data...
skills Loading commit data...
workflows Loading commit data...
.gitignore Loading commit data...
README.md Loading commit data...

README.md

erp-workflow

Claude Code 插件:ERP / 后端管理系统全流程开发框架。

把"从零到 N 个模块上线 + 前端整体阶段"的整个流程固化成 25 个 skill + 2 个 agent + 1 个 hook + 41 份模板,让 CC 在 schema 演化用 Flyway migration、需求可追溯、纯本地 git 的前提下推进编码。后端按模块循环依次打里程碑 tag,所有后端模块打里程碑后进入前端整体阶段(以项目根 prototype/ 静态 HTML mockup 为页面权威)。

这个插件做什么

📋 阶段 A:规划(一次性,入口 /erp-workflow:plan-start)

   A0 初始化项目 → A1 锁范围(生成 REQ 卡片)
                          ↓
              ⏸ 审阅 REQ → 重新运行 /plan-start
                          ↓
   A2 生成骨架 → A3 生成 DB 设计(REQ → docs/03 + 回填依赖表)
                          ↓
              ⏸ 审阅 docs/03 → 重新运行 /plan-start
                          ↓
   A4 初始化 DB(docs/03 → V1 migration → 自动 apply 到本地 MySQL)
                          ↓
   A5 生成下游文档(docs/02 / docs/05 / docs/06 § 三 / docs/10)
                          ↓
                  用户显式 /erp-workflow:coding-start

🔁 阶段 B:编码(入口 /erp-workflow:coding-start)

   B-后端(按模块循环)
     功能循环:Brainstorm → Plan → TDD → Verify → Review
     模块循环:本地测试闸门 → 写模块报告 → 本地 merge 进默认分支 + 打 milestone/<id> tag → 自动回 coding-start → 下一模块

   ↓ 后端全部打里程碑后

   B-前端(整体阶段,1 个里程碑 tag)
     入口门禁:检查项目根 prototype/ 至少含 1 个 *.html mockup(缺失则 AskUserQuestion 提示用户补齐)
     FE 拆分:AI 自主推导功能清单(业务功能粒度,与 HTML 文件数无关)写入 docs/08 § 三;已有则加载——无人工审阅断点(全程无人工介入)
     FE 循环(每个 FE-NN):fe-feature-brainstorm → -plan → -tdd → -verify → -review
     收尾:test-gate(phase=frontend) → module-report(phase=frontend) → milestone-tag(分支 frontend-phase)→ 全部完成

⚙️ 后台守门:占位符未填 / 中断触发 / 跨模块改动未记录

首次使用

  1. 进入空项目目录并启动 Claude Code

    mkdir my-erp && cd my-erp
    claude --plugin-dir /path/to/erp-workflow-plugin
    
  2. Plan 阶段入口(一次性规划):

    /erp-workflow:plan-start
    

    Plan 阶段三段式执行,中间有两个人工审阅断点:

  • 第一段(首次运行):执行 A0 → A1(创建骨架 / 锁技术栈 / 填需求 / 生成 REQ 卡片骨架)后停下,等你审阅并补全 docs/01-需求清单/<module>/REQ-*.md(CC 已起草 req_id / title / goal / rules / constraints / acceptance;输入 / 输出 各含一句简述 + N 张示例字段表,模板原样复制由你按业务编辑;依赖表 / 依赖接口保留 TBD(A3/A5 自动补) 由后续 skill 回填——Plan 阶段第一个人工关口:业务范围)
  • 第二段(REQ 审阅完重新运行):继续 A2 → A3(生成骨架 / 从 REQ 正向设计 docs/03-数据库设计文档.md 并回填 REQ 依赖表)后再次停下,等你审阅 docs/03 的表 / 字段 / 索引 / 外键(第二个人工关口:数据库 schema —— A4 会基于它翻译 DDL 并 apply 到 MySQL,所以这关口与 REQ 审阅同等重要)
  • 第三段(docs/03 审阅完重新运行):执行 A4 → A5(解析 docs/03 → 生成 V1 migration → 自动 DROP+CREATE 本地 schema 并 apply → 生成下游文档),Plan 完成后再次停下

每次运行都会自动接上次停下的地方继续;中途可以随时关闭 CC,下次运行同样的命令即可恢复。Plan 完成后不会自动进入编码,需要你手动运行 /erp-workflow:coding-start

两个审阅断点的处理方式一致:A1 / A3 完成时 skill 已自动勾选 docs/08-模块任务管理.md § 一 该阶段的全部子项 + 顶层;审阅是隐式的——你看完 REQ 卡片 / docs/03 后直接重新运行 /plan-start,下次入口就会派发到下一阶段。如果审阅时发现需要修订,直接编辑 docs/01 / docs/03 即可,不依赖 docs/08 的勾选状态。

  1. Coding 阶段入口(后端模块循环 → 前端整体阶段): /erp-workflow:coding-start Plan 全部完成后由你显式触发。coding-start 是阶段分发权威——每次入口都重新扫描 docs/08 § 二/§ 三 里程碑字段 + 本地 git tag,按当前进度决定派发:

路由规则(coding-start 真值表,只做分发)

| backend_done | frontend_done | coding-start 派发 | |---|---|---| | false | 任意 | module-start(写后端) | | true | false | frontend-start(写前端) | | true | true | 打印"所有阶段已完成",停下 |

docs/08 里程碑字段与 git tag -l 不一致(字段填了但 tag 不存在,或反之)→ 停下报错(绝不静默假设完成状态)。

后端阶段(module-start 内,单一职责)

  • 切到 module-<id> 分支,跑功能循环(feature-brainstorm → ... → feature-review)→ 全 approve → test-gate → module-report → milestone-tag(本地 merge + 打 tag)→ 自动回 coding-start 再次路由

前端阶段(frontend-start 内,自带前置门禁)

  • 步骤 1:prototype/ 门禁(≥ 1 个 *.html,缺失则 AskUserQuestion 提示用户补齐 → 停下)
  • 步骤 2:准备 FE 清单(无审阅断点)。§ 三 占位则 AI 扫 prototype + docs/01 + docs/05 自主推导 FE 业务功能清单写入 § 三(每个 FE 标注关联 REQ + 关联原型;FE 数与 HTML 文件数无关);§ 三 已有则直接加载
  • 步骤 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 → 全部完成

docs/08 § 二 每后端模块占一行 bullet,§ 三 是前端阶段整体段,完成信号统一由本地 git tag -l 'milestone/<id>' 判定。

  1. 中途恢复:任何时候运行对应入口命令——根据 Plan § 一 checkbox、§ 二 各后端模块里程碑 tag、§ 三 前端整体里程碑 tag 跳到当前该做的事。

目录结构

erp-workflow-plugin/
├── .claude-plugin/
│   └── plugin.json                  # 插件清单,声明 skills 四个子目录
├── README.md                        # 本文档
├── hooks/
│   ├── hooks.json                   # hook 注册表(1 个 hook)
│   └── scripts/*.sh                 # 1 个 hook 脚本
├── agents/
│   ├── superpower-code-reviewer.md  # 后端 code-reviewer agent(feature-review 调用)
│   └── fe-code-reviewer.md          # 前端专用 reviewer(fe-feature-review 调用,硬编码 7 维 review)
└── skills/
    ├── plan/                        # 阶段 A:6 个一次性规划 skill
    ├── coding/                      # 阶段 B:15 个 skill = 9 个后端模块/功能循环 + frontend-start + 5 个 fe-feature-*
    └── crosscut/                    # 横切:2 个入口 + 1 中断守门 + 1 留痕 skill

Hook 清单(1 个,在 hooks/hooks.json 注册)

Hook 脚本 事件 触发条件 作用
跨模块改动留痕 log-cross-module.sh PostToolUse / Edit \ Write 当前处于 module-* 分支 且 编辑目标路径落在 docs/08 § 二非当前模块的 path 范围内(无论目标模块是否已打里程碑)

Skill 清单(25 个)

Plan 阶段(6 个,skills/

# Skill 作用 流程中谁调用
A0 project-init • 依赖检查(mysql 在 PATH,缺失则尝试自动安装)
• 空目录初始化:cp 模板创建 CLAUDE.md / docs/01/index.md / docs/08
git init
plan-start
A1 scope-lock • 引导填项目概述 / 技术栈 / 需求索引
• 按 docs/01-需求清单/<module>/{_module.md, REQ-*.md} 子目录结构生成 REQ 卡片骨架(CC 起草 req_id / title / goal / rules / constraints / acceptance;输入 / 输出 各含一句简述 + N 张示例字段表(输入 8 列 / 输出 3 列),全部原样复制自模板,由人工按业务编辑;依赖表 / 依赖接口TBD(A3/A5 自动补)
停下等人工审阅 + 改输入 / 输出,审阅完毕用 /plan-start 恢复续进 A2
A0
A2 skeleton-gen • 生成架构文档:docs/04 § 一+ / docs/06 / docs/07 / docs/09
• 生成工具脚本:scripts/*.sh、.env.local
• 创建 sql/migrations/ 空目录(Flyway 准备)
• 合并 .gitignore(逐行判重)
plan-start
A3 db-design-gen • 从 docs/01 REQ 卡片正向设计 docs/03-数据库设计文档.md(schema SSoT)
• 回填 REQ 卡片依赖表(TBD(A3 自动补) → 实际表名)
停下等人工审阅 docs/03,审阅完毕用 /plan-start 恢复续进 A4
A2
A4 db-init • LLM 解析 docs/03 → sql/migrations/V1__initial_schema.sql(DDL only)
5 维度全量校验 DDL ↔ docs/03(表名 / 列名+列序 / 类型+nullable+默认值 / 索引名 / FK 名),fail-closed
• 验证 MySQL 连接
• 调 scripts/setup-test-db.sh 复用三层防护(与 B 阶段 test.sh 共用)→ DROP+CREATE 空库
• apply V1 + SHOW TABLES 行数自检
A3
A5 downstream-gen • 一次性生成 docs/02 / docs/05 / docs/06 § 三 / docs/10
• 回填 REQ 卡片依赖接口(TBD(A5 自动补) → 实际 endpoint)
• 追加模块清单到 docs/08 § 二
• 最终占位符扫描(TBD 自动补 + 【人工填写:】 QA 循环)
• 打印 Plan 完成横幅并停下(不自动进 B)
A4

Coding 阶段(15 个,skills/coding/

触发与顺序coding-start 是唯一由用户手动触发的入口,下面所有 skill 都由 skill 链自动调用):

/erp-workflow:coding-start          ← 用户每次手动触发;阶段分发器(只做分发)
        │
        │  ① Plan 完成校验(docs/08 § 一 A0~A5)
        │  ② 后端完成性检查(§ 二 + git tag)
        │     ├ 未完成 → 立即派发 module-start,结束
        │     └ 已完成 → 继续 ③
        │  ③ 前端完成性检查(§ 三 整体里程碑 + tag)
        │     ├ 已完成 → 打印"所有阶段已完成",结束
        │     └ 未完成 → 派发 frontend-start,结束
        │
        ├─ 后端未完成                       → 派发 module-start(写后端)
        │       │
        │       │ 切 module-<id> 分支,对每个未完成 REQ:
        │       │   feature-brainstorm → -plan → -tdd → -verify → -review
        │       │
        │       │ review approve → 回 module-start(下一 REQ)
        │       │ request-changes (<5) → fix → 回 feature-verify
        │       │ request-changes (=5) → 停下(升级给人)
        │       │
        │       │ 本模块所有 REQ approve:
        │       │   test-gate(phase=backend) → module-report → milestone-tag
        │       │   (本地 merge 进默认分支 + 打 milestone/<id>,写 docs/08 § 二)
        │       │
        │       └─ 自动回 coding-start → 再次路由(无人工介入)
        │
        ├─ 后端完成 & 前端完成              → 打印"所有阶段已完成",停下
        │
        └─ 后端完成 & 前端未完成            → 派发 frontend-start(写前端)
              │
              │ frontend-start 自带前置门禁(coding-start 不做):
              │   ① prototype/ 门禁(≥ 1 个 *.html,缺失则 AskUserQuestion)
              │   ② 准备 FE 清单(无审阅断点):
              │      § 三 已有 FE bullet → 加载
              │      § 三 仅占位 → AI 推导写入
              │   ③ 切 frontend-phase 分支
              │
                          │
                          │ 准备 FE 清单(无审阅断点):
                          │   § 三 占位 → 扫 prototype + docs/01 + docs/05
                          │     → AI 自主推导 FE 业务功能清单写入 § 三
                          │     (含 fe_id / 功能名 / 关联 REQ / 关联原型)
                          │   § 三 已有 FE bullet → 直接加载
                          │
                          │ 切 frontend-phase 分支
                          │ FE 是业务功能粒度(与 HTML 文件数无关,
                          │ 一个 HTML 可拆多个 FE / 多 HTML 可合一个 FE)
                          │
                          │ 对每个未完成 FE:
                          │   fe-feature-brainstorm → -plan → -tdd → -verify → -review
                          │   (review 委托 fe-code-reviewer agent,硬编码 7 维 checklist)
                          │
                          │ review approve → 回 frontend-start(下一 FE)
                          │ request-changes (<5) → fix → 回 fe-feature-verify
                          │ request-changes (=5) → 停下
                          │
                          │ 全部 FE approve:
                          │   test-gate(phase=frontend)(vitest + playwright,子会话跑)
                          │   → module-report(phase=frontend)
                          │   → milestone-tag(docs/08 § 三 整体里程碑)
                          │
                          └─ 自动回 coding-start → "所有阶段已完成"(无人工介入)
Skill 做什么 谁触发它
module-start 后端模块循环单一职责(不感知前端阶段)。切 module-<id> 分支,扫 docs/superpowers/reviews/*.mdverdict=approve 计算已完成 REQ,推进第一个未完成 REQ;本模块全 approve → test-gate幂等可重入 coding-start 派发(仅当后端有未打里程碑模块时);feature-review approve 后回调
feature-brainstorm 功能循环步骤 1:交互 brainstorm → 生成 docs/superpowers/specs/*.md module-start 推进 REQ 时调用
feature-plan 功能循环步骤 2:spec → 任务级 plan(文件路径 + API 签名 + 测试意图 + 完成判据,代码由 TDD 阶段产出),输出 docs/superpowers/plans/*.md feature-brainstorm 链式调用
feature-tdd 功能循环步骤 3:红绿循环(写失败测试 → 实现 → 子会话验证通过 → commit 到 module-<id> 分支);路径硬护栏:impl_filefrontend/ 前缀 → 硬停(UI 推迟到前端阶段) feature-plan 链式调用
feature-verify 功能循环步骤 4:将全量测试派发到子会话执行一次,用模板渲染 evidence feature-tdd 链式调用;feature-review 在 request-changes 修复后重新调用
feature-review 功能循环步骤 5:AI 自审,写 docs/superpowers/reviews/*.md。approve → 回 module-start;request-changes → 逐项 Edit + fix commit → 回 feature-verify 重新执行(最多 5 轮,第 5 轮仍 request-changes 则停下) feature-verify 链式调用
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 后)
module-report 中断检查 → 生成 12 节完成报告 docs/superpowers/module-reports/<date>-<phase_id>.md(前端阶段 § ④/§ ⑥ 写 N/A)→ commit 到当前分支(后端:module-* 分支;前端:frontend-phase 分支) test-gate 链式调用
milestone-tag 验证当前分支 = module-<id>frontend-phasegit 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 链式调用
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 后回调
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[] }
fe-feature-plan 前端功能循环步骤 2:spec → 任务级计划(组件/路由/hook/API client,impl_file 必须 frontend/ 前缀) fe-feature-brainstorm 链式调用
fe-feature-tdd 前端功能循环步骤 3:jsdom 组件测试 + Playwright E2E(E2E 派子会话);commit trailer REQ_ID: FE-NN;路径硬护栏 frontend/ fe-feature-plan 链式调用
fe-feature-verify 前端功能循环步骤 4:派子会话跑 vitest + playwright,按模板渲染证据 fe-feature-tdd 链式调用;fe-feature-review request-changes 修复后重调
fe-feature-review 前端功能循环步骤 5:委托 fe-code-reviewer agent 做 7 维 review。approve → 回 frontend-start;request-changes 5 轮上限 fe-feature-verify 链式调用

Crosscut(4 个,skills/crosscut/

Skill 作用 流程中谁调用
plan-start A 阶段入口。读取 docs/08 § 一 找第一个未勾 A 子项 → 派发对应 A skill;A 全部完成时提示运行 coding-start 用户手动运行 /erp-workflow:plan-start
coding-start B 阶段入口 + 阶段分发器(只做分发)。① 验证 Plan 已完成(docs/08 § 一 A0~A5 全勾选)② 后端完成性检查(§ 二 + git tag)③ 前端完成性检查(§ 三 整体里程碑 + tag)④ 真值表派发:backend=falsemodule-startbackend=true & frontend=falsefrontend-start;都 done → "全部完成"。前端阶段的 prototype/ 门禁由 frontend-start 自带,不在此处 用户手动运行 /erp-workflow:coding-startmilestone-tag 每模块完成后自动回调
interrupt-check 检查 CLAUDE.md 的 3 项中断清单;触发则追加 Blocker 到计划文件并停下 功能循环各步骤和生成重要制品前自动调用
cross-module-log log-cross-module.sh 追加的跨模块改动存根批量补「原因 / 影响评估」 module-report § ⑦ 硬验收时一次性调用(CC 编辑中途不主动调);module-start 初始化日志文件时也会用其模板

Agent 清单(2 个)

Agent 用途 谁调用
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)
fe-code-reviewer 自写(前端专用) 对前端 FE-NN diff 做 7 维 AI 自审:prototype 一致性 / Design Tokens / 无障碍 / 响应式 / 业务校验前端复刻 / API 一致性 / 状态机覆盖。明确禁止给后端建议 fe-feature-review 步骤 1:Agent(subagent_type=fe-code-reviewer)

Banners 清单(7 份,bash cat 直接输出,绕开 LLM 复读)

step 0 流程图被抽到独立 .txt 文件,SKILL.md 步骤 0 改为 bash cat 输出——保证 ASCII 边框对齐不被 LLM 复读破坏 + 减少 LLM 输出 token。

所属 Skill Banner 文件 用途
project-init banners/flow.txt A 阶段流程图(▶ 标在 A0)
scope-lock banners/flow.txt A 阶段流程图(▶ 标在 A1)
skeleton-gen banners/flow.txt A 阶段流程图(▶ 标在 A2)
db-design-gen banners/flow.txt A 阶段流程图(▶ 标在 A3)
db-init banners/flow.txt A 阶段流程图(▶ 标在 A4)
downstream-gen banners/flow.txt A 阶段流程图(▶ 标在 A5)
plan-start banners/flow-done.txt A 阶段流程图(▶ 标在"规划阶段到此结束",仅 2.1 Plan 完成分支)

字节对齐保证:每个文件 17 行,每行 visible width = 58 cell(内宽 56 + 2 个 边框)。改动需重新校准。

Templates 清单(41 份)

所属 Skill 模板文件 用途
project-init CLAUDE-template.md 项目根的 CLAUDE.md(4 条通用准则 + ERP 专属约定)
project-init docs-01-index-template.md 需求清单索引骨架,等用户填模块表
project-init docs-08-initial-template.md 工作流进度文件骨架(Plan A0~A5 checkbox)
project-init docs-04-stack-template.md docs/04 § 零 默认技术栈总览(零槽位,cp 即可)
scope-lock req-card-template.md 单张 REQ-XXX-NNN 卡片骨架(6 个 {{...}} 占位符由 CC 替换;输入 / 输出 各含一句简述 + N 张示例字段表,模板原样复制由人工编辑)
scope-lock _module-template.md 模块子目录的 _module.md 模块头(4 行:模块代码-名 / 简述 / 依赖模块 TBD / 涉及表 TBD)
skeleton-gen docs-04-skeleton-template.md docs/04 § 一+ 编码规范大纲(HTML 注释引导 LLM)
skeleton-gen docs-06-static-template.md docs/06 § 一~二 大纲(通用交互 + Design Tokens;布局以 prototype/ 为权威)
skeleton-gen docs-07-env-template.md docs/07 环境配置大纲
skeleton-gen docs-09-structure-template.md docs/09 目录结构大纲
skeleton-gen scripts-setup-test-db-template.sh 运行时 drop + create 空库脚本(0 槽位);schema apply 交给 Flyway
skeleton-gen scripts-test-template.sh test.sh 骨架(4 个命令槽位:{{build_cmd}} / {{lint_cmd}} / {{test_cmd}} / {{e2e_cmd}},由 skeleton-gen 按技术栈推断填充)
skeleton-gen env-local-template 6 字段凭据模板(DB_* + JWT_SECRET)
skeleton-gen gitignore-append-template 插件推荐忽略项(.env.local.tmp/、构建产物等)
db-design-gen docs-03-header-template.md docs/03 数据库设计头部
db-design-gen docs-03-table-template.md docs/03 单表小节模板
downstream-gen docs-02-template.md docs/02 开发计划
downstream-gen docs-05-header-template.md docs/05 API 契约头部
downstream-gen docs-05-endpoint-template.md docs/05 单接口小节
downstream-gen docs-06-module-pagelist-template.md docs/06 § 三 单模块页面清单
downstream-gen docs-08-module-row-template.md docs/08 § 二 单模块 bullet 行
downstream-gen docs-10-header-template.md docs/10 验收清单(项目级 SOP,零槽位 + 引用指针)
module-start module-start-banner-template.md 模块启动横幅
feature-brainstorm feature-spec-template.md 功能 spec 结构
feature-plan feature-plan-template.md 功能 plan 结构
feature-tdd commit-message-template.md TDD 每步 commit 信息
feature-verify feature-verify-evidence-template.md 验证证据渲染模板
feature-review feature-review-template.md 自审报告结构
test-gate test-gate-result-template.md 闸门结果渲染
module-report module-report-template.md 12 节模块报告
interrupt-check interrupt-block-template.md Blocker 节追加模板
cross-module-log cross-module-log-template.md cross-module 日志头(由 hook log-cross-module.sh 在首次跨模块改动时渲染创建;skill 自身不再读取)
cross-module-log cross-module-log-row-template.md 单条改动行模板
frontend-start frontend-start-banner-template.md 前端阶段启动横幅
fe-feature-brainstorm fe-feature-spec-template.md 前端功能规格结构(组件树 / 状态机 / API / 业务校验复刻 / token 引用)
fe-feature-plan fe-feature-plan-template.md 前端功能计划结构(组件 / 路由 / hook / API client,impl_file 必须 frontend/
fe-feature-tdd commit-message-template.md 前端 TDD commit 信息(与后端共用格式,但 req_id = FE-NN)
fe-feature-verify fe-feature-verify-evidence-template.md 前端验证证据(vitest + playwright 双段)
fe-feature-review fe-feature-review-template.md 前端自审报告结构(含 7 维核查表)
fe-feature-review commit-message-template.md 前端 review fix commit 信息

流程使用情况:所有模板都被对应 skill 的 SKILL.md 引用,没有孤儿模板。

前置依赖

  • MySQL 8.x 实例已就绪(推荐本地 / *.local host;A4 db-init 的安全守护要求 host 在白名单且 schema 名含 test/dev/local,避免误删生产库)
  • mysql 命令行:A4 db-init 验证连接 + 自动 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 仓库(纯本地,无需远程):A0 project-init 执行 git init;B 阶段每模块由 milestone-tag 本地 git merge --no-ff 进默认分支并 git tag -a milestone/<id>,完成信号由 git tag -l 判定。不依赖任何远程仓库 / push / GitLab
  • 本地可运行 mvn test / pnpm test:测试闸门 scripts/test.shskeleton-gen 生成

设计原则

参见 project-init/templates/CLAUDE-template.md 末尾的「🧭 通用工作准则」4 条:① Think Before Coding ② Simplicity First ③ Surgical Changes ④ Goal-Driven Execution。

最关键的 1 条:"所有测试与验证派发到全新子会话执行,主会话只接收结构化结论"——避免主会话被测试输出污染,并让测试结果作为独立证据存档。