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