diff --git a/README.md b/README.md index 0f99c5b..ef18cfb 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Claude Code 插件:ERP / 后端管理系统全流程开发框架。 **前端阶段(frontend-start 内,自带前置门禁)**: - 步骤 1:prototype/ 门禁(≥ 1 个 *.html,缺失则 AskUserQuestion 提示用户补齐 → 停下) - - 步骤 2:准备 FE 清单(无审阅断点)。§ 三 占位则 AI 扫 prototype + docs/01 + docs/05 自主推导 FE 业务功能清单写入 § 三(每个 FE 标注关联 REQ + 关联原型;FE 数与 HTML 文件数无关);§ 三 已有则直接加载 + - 步骤 2:准备 FE 清单(无审阅断点)。§ 三 占位则 AI 扫 prototype + docs/01 + docs/05 + docs/06 § 三 自主推导写入 § 三:**必产 `FE-00 应用壳·导航·首页`(关联 REQ 为 `—`,置首)承载主界面壳/导航/路由/首页仪表盘**,业务 FE 从 FE-01 起(每个标注关联 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/'` 判定。 diff --git a/skills/coding/fe-feature-brainstorm/SKILL.md b/skills/coding/fe-feature-brainstorm/SKILL.md index 3924c72..474f500 100644 --- a/skills/coding/fe-feature-brainstorm/SKILL.md +++ b/skills/coding/fe-feature-brainstorm/SKILL.md @@ -15,6 +15,17 @@ allowed-tools: Read Write Skill AskUserQuestion Glob Grep 一个 FE 是**业务功能**粒度,可能关联多个 prototype 文件区域和多个 REQ。 +## 应用壳 FE(FE-00 应用壳·导航·首页)特例 + +当 `frontend-start` 派发的 FE `associated_reqs[]` 为空(即 FE-00 应用壳),它不对应单个业务 REQ,而是「主界面」可用性的载体。此时按下列方式收集证据、写 spec,**其余流程(自决/Q&A/自审/链 plan)完全不变**: + +- **导航与路由权威 = `docs/06-UI交互规范.md § 三 页面清单`**:逐页取 `route` + `入口菜单`,构建导航菜单树与统一路由表(`frontend/src/routes`,路径从 docs/09 § 前端目录结构取),保证点菜单能真实跳到对应业务页面(业务页面组件由后续 FE 落地,路由先注册占位)。 +- **布局权威 = prototype 的布局/导航区域**(`associated_prototypes[]`);prototype 无独立布局区域时,按 docs/06 § 一~二 通用规则 + UI 库(docs/04 § 零 `frontend.ui_lib`)默认推导标准壳(header + 侧/顶菜单 + 内容区 outlet)。 +- **首页/仪表盘要真实功能,禁止纯静态占位**:模块快捷入口卡片(真实路由跳转)+ 关键指标。指标优先调 `docs/05-API接口契约.md` 中真实的列表/计数/统计端点(如各模块总数、最近记录);契约确无统计端点时,至少做模块入口卡片 + 一个真实列表概览。 +- **组件树**:`App → Header / Nav(递归菜单树) / MainContent(router-outlet) + Home(Dashboard)`。 +- **状态机**:菜单加载中 / 正常 / 鉴权失效,叠加首页 loading / empty / error / 正常。 +- **业务规则前端复刻清单**:壳层无业务表单校验时,此节填导航/权限可见性规则(如「仅渲染当前用户有权限的菜单项,权限由后端菜单/鉴权接口决定」),**不得留空节**。 + ## 占位符规则 本 skill 写的 spec 是 CC 内部推理产物,不是用户审阅文档。**不允许** `【人工填写:...】` 占位符——A 阶段标记。需要具体值时: diff --git a/skills/coding/frontend-start/SKILL.md b/skills/coding/frontend-start/SKILL.md index 62f61c5..f54bc79 100644 --- a/skills/coding/frontend-start/SKILL.md +++ b/skills/coding/frontend-start/SKILL.md @@ -19,17 +19,24 @@ allowed-tools: Read Write Edit Skill Glob Grep AskUserQuestion Bash(git branch * 读 docs/08 § 三 "功能:" 项: -- 已有 `- [ ] FE-NN ...` 或 `- [x] FE-NN ...` 行 → **加载**:逐行解析得 `fe_list[]`,每项 `{ fe_id, name, status, associated_reqs[], associated_prototypes[] }`。行格式不符 → 硬停打印问题行 `[ERP-HALT]` +- 已有 `- [ ] FE-NN ...` 或 `- [x] FE-NN ...` 行 → **加载**:逐行解析得 `fe_list[]`,每项 `{ fe_id, name, status, associated_reqs[], associated_prototypes[] }`(`关联 REQ:—` 解析为空数组——FE-00 应用壳即此情形)。行格式不符 → 硬停打印问题行 `[ERP-HALT]` - 仅有 HTML 注释占位(无 FE bullet)→ **推导**: - 1. 读 `prototype/**/*.html` + `docs/01-需求清单/**/*.md` + `docs/05-API接口契约.md` - 2. 以**业务功能**为单位拆分(同流程多屏可合 1 FE;一 HTML 多功能可拆多 FE;无 UI 的 REQ 不产生 FE)。每个 FE:`{ fe_id: FE-NN, name, associated_reqs[], associated_prototypes[] }`,prototype 路径可带 anchor 区分文件内多区域 - 3. **写入 § 三 "功能:" 项**(替换占位 HTML 注释),行格式: + 1. 读 `prototype/**/*.html` + `docs/01-需求清单/**/*.md` + `docs/05-API接口契约.md` + `docs/06-UI交互规范.md § 三 页面清单`(downstream-gen 产出,含每页 route / 入口菜单,是导航与路由的权威) + 2. **先产基础设施 FE(必产,置于清单最前)**:无论 prototype 是否单列布局区域,都生成一条 FE-00——它是「主界面」可用性的载体,**不依赖任何 REQ,故关联 REQ 填 `—`**: + + ``` + - [ ] FE-00 应用壳·导航·首页 | 关联 REQ:— | 关联原型: + ``` + + 它负责:全局布局壳(header + 侧/顶导航菜单)、把 docs/06 § 三 每个业务页面接入的**统一路由表**(点菜单真实跳转)、**首页/仪表盘落地页**(模块入口卡片 + 调真实后端端点的关键指标)。 + 3. 再以**业务功能**为单位拆分业务 FE(同流程多屏可合 1 FE;一 HTML 多功能可拆多 FE;无 UI 的 REQ 不产生 FE),**从 FE-01 起编号**。每个 FE:`{ fe_id: FE-NN, name, associated_reqs[], associated_prototypes[] }`,prototype 路径可带 anchor 区分文件内多区域 + 4. **写入 § 三 "功能:" 项**(替换占位 HTML 注释),FE-00 在最前、业务 FE 随后,行格式: ``` - [ ] FE-NN 功能名 | 关联 REQ:REQ-A, REQ-B | 关联原型:prototype/.html ``` - 保留 `- 整体里程碑: —` 不动;写入后解析得 `fe_list[]`,继续步骤 3 + (FE-00 的「关联 REQ」为 `—`)保留 `- 整体里程碑: —` 不动;写入后解析得 `fe_list[]`,继续步骤 3 ### 步骤 3:检查前端里程碑状态 diff --git a/skills/plan/project-init/templates/CLAUDE-template.md b/skills/plan/project-init/templates/CLAUDE-template.md index 0e6937e..099b49a 100644 --- a/skills/plan/project-init/templates/CLAUDE-template.md +++ b/skills/plan/project-init/templates/CLAUDE-template.md @@ -40,7 +40,7 @@ B 阶段分两段,**全部固化到 skills**。入口:`/erp-workflow:coding- ### 前端阶段(整体一个里程碑 tag,所有后端模块打里程碑后启动) -- **FE 清单(AI 自主推导,无审阅断点)**:`frontend-start` 进入时扫 prototype + docs/01 + docs/05 → AI 自主推导 FE 业务功能清单写入 `docs/08 § 三`(已有则加载)。**FE 是业务功能粒度,与 prototype HTML 文件数无关**——一个 HTML 可拆多个 FE,多个 HTML 也可合成一个 FE。FE 清单的合理性由 fe-feature-review / milestone-tag 在整体里程碑标记时一并校核(全程无人工介入)。 +- **FE 清单(AI 自主推导,无审阅断点)**:`frontend-start` 进入时扫 prototype + docs/01 + docs/05 + docs/06 § 三 → AI 自主推导 FE 业务功能清单写入 `docs/08 § 三`(已有则加载)。**必产 `FE-00 应用壳·导航·首页`(关联 REQ 为 `—`,置于清单最前)**——它承载「主界面」可用性:全局布局壳 + 把各业务页面接入的统一路由(点菜单真跳转)+ 首页仪表盘(模块入口 + 真实后端端点指标)。其余 **FE 是业务功能粒度,与 prototype HTML 文件数无关**——一个 HTML 可拆多个 FE,多个 HTML 也可合成一个 FE。FE 清单的合理性由 fe-feature-review / milestone-tag 在整体里程碑标记时一并校核(全程无人工介入)。 - **FE 循环(外)**:`frontend-start` → fe-feature 循环 → `test-gate(phase=frontend)` → `module-report(phase=frontend)` → `milestone-tag`(分支 `frontend-phase`,docs/08 § 三 整体里程碑)。 - **FE 功能循环(内,每个 FE-NN 一遍)**:`fe-feature-brainstorm` → `fe-feature-plan` → `fe-feature-tdd` → `fe-feature-verify` → `fe-feature-review`(专用 `fe-code-reviewer` agent,硬编码 7 维 review checklist) - 前端阶段任务严格落在 `frontend/` 路径下;布局以 `prototype/` 为权威。 diff --git a/skills/plan/project-init/templates/docs-08-initial-template.md b/skills/plan/project-init/templates/docs-08-initial-template.md index 092902c..da568d0 100644 --- a/skills/plan/project-init/templates/docs-08-initial-template.md +++ b/skills/plan/project-init/templates/docs-08-initial-template.md @@ -57,7 +57,7 @@ ## 三、Coding 阶段(前端整体) -(`frontend-start` 进入时扫 prototype/ + docs/01 + docs/05 → AI 自主推导 FE 业务功能清单写到下方"功能:"项(无人工审阅断点;合理性由整体里程碑标记时统一校核)。已有清单则直接加载。整个前端阶段 1 个里程碑 tag,分支 `frontend-phase`。) +(`frontend-start` 进入时扫 prototype/ + docs/01 + docs/05 + docs/06 § 三 → AI 自主推导 FE 业务功能清单写到下方"功能:"项(无人工审阅断点;合理性由整体里程碑标记时统一校核)。**首条必为 `FE-00 应用壳·导航·首页`(关联 REQ 为 `—`),承载主界面壳/导航/路由/首页仪表盘**,业务 FE 从 FE-01 起。已有清单则直接加载。整个前端阶段 1 个里程碑 tag,分支 `frontend-phase`。) - 整体里程碑: — - 功能: