@agile-team/wl-skills-kit 2.9.3 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.10.0] - 2026-05-31
4
+
5
+ ### Added
6
+
7
+ - **新增 `spec-doc-parse` Skill(规范线)**:专门解构 wl-skills-design 产出的标准《需求设计说明书》(IPO 表 / 功能编码 / 流程五要素),输出与 `prototype-scan` 完全相同格式的 page-spec JSON,自带 Pre-flight 校验 + Parse Validation 五项检查 + 自动修复纠偏 + 解析报告(`SPEC_PARSE_*.md`)
8
+ - **`convention-audit` 新增 `--mode spec-align`(GAP 报告)**:比对 spec 定义字段 vs 代码实际字段,输出 `SPEC_GAP_*.md`,完成「说明书 → 代码」零损耗闭环验证
9
+
10
+ ### Changed
11
+
12
+ - **双线隔离(原型线 / 规范线)**:`_registry.md` 调度规则新增「优先级 0」——输入命中 `docs/spec/` / 功能编码 `/[A-Z]{2,6}[0-9]{3}/` / IPO 表特征时强制路由 `spec-doc-parse`,禁止 `prototype-scan` 接管;两线最终汇聚同一份 page-spec JSON,下游无感知
13
+ - **`prototype-scan` 模式 B 收敛**:由「详设文档」收敛为「非规范零散详设」,加入排除声明,避免与标准说明书混淆
14
+ - 同步更新 `_pipeline.md`(规范线分支 + I/O 契约)、`copilot-instructions.md`(Intent Router)、`kit-internal/architecture.md`(ADR-009)、`lint-skills.js`(spec-doc-parse 纳入写操作 Skill 校验)
15
+ - 启用 Skill 数 10 → 11
16
+
17
+ ## [2.9.4] - 2026-05-18
18
+
19
+ ### Fixed
20
+
21
+ - **规范条数 13→14 全面对齐**:`standards/index.md` 已升级至 14 条(新增 `14-layout-containers.md`),同步修复以下 7 个文件中残留的"13 条"引用:
22
+ - `copilot-instructions.md`、`convention-audit/SKILL.md`、`_best-practices.md`、`guides/usage.md`、`page-codegen/USAGE.md`
23
+ - **`copilot-instructions.md` 任务类型映射去重**:移除与 `standards/index.md` 重复且过期的映射副本,改为唯一指针引用
24
+ - **`copilot-instructions.md` 导入路径纠正**:代码示例中 `@jhlc/common-core/src/...` 深路径改为 `@/types/page` 桶文件导入,与 `page-codegen` 模板及 `standards/09` 规范一致
25
+ - **`prototype-scan` 交互模式枚举对齐**:`FORM_TAB` → `DETAIL_TABS`,补齐 `FORM_ROUTE / CHANGE_HISTORY / RECORD_FORM / OPERATION_STATION / TEMPLATE_DRIVEN` 5 种模式,与 `page-codegen` 模板完全一致
26
+ - **`page-codegen` Pre-flight 补齐 `standards/14`**:任务类型 A 必读规范已含 14,Pre-flight 声明同步补齐
27
+ - **`convention-audit` 审计维度表补齐 14 行**:审计维度表和覆盖矩阵模板各补一行 `14 布局容器`
28
+
3
29
  ## [2.9.3] - 2026-05-17
4
30
 
5
31
  ### Fixed
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @agile-team/wl-skills-kit
2
2
 
3
- **AI Skill 模板包 v2.9.3 ** — 一键将 13 条规范、10 个 AI Skill、17 个 MCP Tool、编辑器 MCP 配置、文档导入 Vue 3 项目。
3
+ **AI Skill 模板包 v2.10.0** — 一键将 14 条规范、11 个 AI Skill、17 个 MCP Tool、编辑器 MCP 配置、文档导入 Vue 3 项目。
4
4
 
5
5
  让 AI 编辑器(Copilot / Cursor / Windsurf / Claude Code / Cline / Kiro / Trae / Qoder / 通用 Agents)**真正理解项目规范**,从原型/详设到完整页面代码全流程自动化。
6
6
 
@@ -184,6 +184,7 @@ wl-skills-kit/ ← 你正看的这个仓库
184
184
  │ │ ├── _compat/ 多 AI 编辑器适配(配置 + headers)
185
185
  │ │ ├── core/ 核心通用 Skill
186
186
  │ │ │ ├── prototype-scan/ { SKILL.md, USAGE.md }
187
+ │ │ │ ├── spec-doc-parse/ { SKILL.md, USAGE.md }
187
188
  │ │ │ ├── api-contract/ { SKILL.md, USAGE.md }
188
189
  │ │ │ ├── page-codegen/ { SKILL.md, USAGE.md, templates/ }
189
190
  │ │ │ ├── convention-audit/ { SKILL.md, USAGE.md }
@@ -329,7 +330,8 @@ npx @agile-team/wl-skills-kit update
329
330
 
330
331
  | Skill | 状态 | 路径 | 核心用途 |
331
332
  | ------------------ | ------- | ------------------------------- | ------------------------------------------- |
332
- | `prototype-scan` | ✅ 启用 | `skills/core/prototype-scan/` | 原型/详设/口述 → 页面清单 |
333
+ | `prototype-scan` | ✅ 启用 | `skills/core/prototype-scan/` | 原型线:Axure/截图/口述/非规范详设 → 页面清单 |
334
+ | `spec-doc-parse` | ✅ 启用 | `skills/core/spec-doc-parse/` | 规范线:wl-skills-design 标准说明书 → 页面清单 |
333
335
  | `api-contract` | ✅ 启用 | `skills/core/api-contract/` | 生成 api.md 前后端契约 |
334
336
  | `page-codegen` | ✅ 启用 | `skills/core/page-codegen/` | 页面骨架生成 + 模板调度 |
335
337
  | `convention-audit` | ✅ 启用 | `skills/core/convention-audit/` | 13 条规范扫描 + 双报告 |
package/bin/wl-skills.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  /**
4
- * wl-skills-kit CLI v2.9.3
4
+ * wl-skills-kit CLI v2.10.0
5
5
  *
6
6
  * 命令:
7
7
  * init 全量安装(默认,向后兼容)
@@ -52,11 +52,13 @@ mock/
52
52
  > 基类内置 `getAction`/`postAction`/`putAction`/`deleteAction`/`actionBatch` 等 HTTP 方法(详见 `docs/request.md`),标准 CRUD 无需独立 API 文件。
53
53
 
54
54
  ```typescript
55
- import { AbstractPageQueryHook } from "@jhlc/common-core/src/page-hooks/page-query-hook.ts";
56
- import { BaseQueryItemDesc } from "@jhlc/common-core/src/components/form/base-query/type.ts";
57
- import { ActionButtonDesc } from "@jhlc/common-core/src/components/toolbar/type.ts";
58
- import { TableColumnDesc } from "@jhlc/common-core/src/components/table/base-table/type.ts";
59
- import { BusLogicDataType } from "@jhlc/types/src/logical-data";
55
+ import {
56
+ AbstractPageQueryHook,
57
+ BaseQueryItemDesc,
58
+ ActionButtonDesc,
59
+ TableColumnDesc,
60
+ BusLogicDataType
61
+ } from "@/types/page";
60
62
  import { getAction, postAction } from "@jhlc/common-core/src/api/action";
61
63
 
62
64
  export const API_CONFIG = {
@@ -230,16 +232,9 @@ onMounted(() => select());
230
232
 
231
233
  > ⚠️ 本节为**强制约定**,所有 AI 编辑器/模型都必须遵守。
232
234
 
233
- 完整 13 条编码规范拆分在 `.github/standards/01 ~ 13.md`,由 `standards/index.md` 提供任务类型 → 规范子集映射,**按需加载,不全量读取**。
235
+ 完整 14 条编码规范拆分在 `.github/standards/01 ~ 14.md`,由 `standards/index.md` 提供任务类型 → 规范子集映射,**按需加载,不全量读取**。
234
236
 
235
- | 任务类型 | 必读规范 |
236
- | --------------------- | ------------------------------------------------- |
237
- | A. 生成新页面 | 01, 02, 03, 04, 05, 06, 07, 09, 10, 11, 12, 13 |
238
- | B. 修改/重构现有代码 | 02, 04, 05, 06, 09, 10, 12, 13 |
239
- | C. 规范审计 | 全部 01 ~ 13 |
240
- | D. 模板提取 | 02, 03, 09, 12, 13 |
241
- | E. 数据同步(菜单等) | 04, 05, 07 |
242
- | F. Git/分支/提交 | 08 |
237
+ > 任务类型 → 必读规范映射以 `standards/index.md` 为**唯一数据源**,此处不再重复列表。执行前先 `read_file` 加载 `standards/index.md` 确认当前映射。
243
238
 
244
239
  **执行任何代码生成或改动前**:
245
240
  1. 先 `read_file` 加载 `standards/index.md` 确认任务类型
@@ -271,6 +266,7 @@ onMounted(() => select());
271
266
  | 用户自然表达 | 自动触发 |
272
267
  | ------------ | -------- |
273
268
  | 生成页面 / 做个页面 / 列表页 / 管理页 / 台账 / 根据原型 / 根据截图 / 补页面 | `page-codegen`,必要时先 `prototype-scan` + `api-contract` |
269
+ | 解析说明书 / 规范文档转页面 / 根据说明书生成 / IPO 转页面 / docs/spec 路径 / 功能编码(PMMB001) | `spec-doc-parse`(**规范线**,wl-skills-design 标准说明书专属,禁止 prototype-scan 接管) |
274
270
  | mock / 假数据 / 后端没好 / 先能跑 / 联调前 | `page-codegen` 的 mock-first 规则 |
275
271
  | 菜单 / 注册页面 / 点击进不来 / 同步菜单 / 补菜单 | `menu-sync` + `route-check` |
276
272
  | 风格 / 样式不生效 / skills-ui / 操作列 / 状态标签 / AGGrid | `page-codegen` + `wk-skills-ui runtime` + `doctor-ui` |
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **读者**:团队技术负责人 / wl-skills-kit 维护者 / 对体系设计感兴趣的团队成员
4
4
  > **更新方式**:重大架构变更后追加对应章节,旧章节原文保留(历史可溯)
5
- > **当前版本**:v2.9.3(2026-05-17
5
+ > **当前版本**:v2.10.0(2026-05-31
6
6
 
7
7
  ---
8
8
 
@@ -62,7 +62,7 @@ AI 会自动识别意图,触发对应的 Skill。
62
62
  | `page-codegen` | 生成页面 / 帮我生成 | 生成页面骨架 + 菜单注册 |
63
63
  | `menu-sync` | 创建菜单 / 同步菜单 | 菜单数据同步到后端(MCP 自动 / prompt 手动两种模式) |
64
64
  | `dict-sync` | 同步字典 / 创建字典 / 字典审计 | 字典基线同步到后端(MCP 自动 / prompt 手动两种模式) |
65
- | `convention-audit` | 规范审计 / 代码审计 | 13 条规范扫描 + 偏差报告 |
65
+ | `convention-audit` | 规范审计 / 代码审计 | 14 条规范扫描 + 偏差报告 |
66
66
  | `business-doc-extract` | 语义级智能触发(无关键词列表) | 原型/详设/字段/字典/现有页面 → docs/business 业务文档 |
67
67
  | `template-extract` | 提取模板 / 抄取模板 | 从现有页面沉淀领域专属模板 |
68
68
  | `permission-sync` | 创建角色 / 角色授权 / 同步权限 | 角色+授权+动作权限同步(MCP) |
@@ -130,7 +130,7 @@ wls_menu_sync_from_report ← MCP 工具,自动读报告 + 查菜单树 + 一
130
130
 
131
131
  ```
132
132
  wls_code_scan ← 概览:页面目录、API_CONFIG、文件完整性
133
- → convention-audit ← 13 条规范全量扫描,产出 AUDIT_*.md
133
+ → convention-audit ← 14 条规范全量扫描,产出 AUDIT_*.md
134
134
  → code-fix(可选) ← 自动修复可整改项
135
135
  ```
136
136
 
@@ -188,7 +188,7 @@ mock/
188
188
  | business-doc-extract | 模块级资料 → 业务文档沉淀 |
189
189
  | api-contract | 生成 `api.md` 接口约定 |
190
190
  | page-codegen | 生成 Vue 页面三件套 + api.md + SYS_MENU_INFO.md |
191
- | convention-audit | 13 条规范审计 |
191
+ | convention-audit | 14 条规范审计 |
192
192
  | code-fix | 按审计报告自动修复 |
193
193
  | menu-sync | 后端菜单同步(MCP)|
194
194
  | dict-sync | 后端字典同步(MCP)|
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "项目编码规范(13 条标准 + 10 个 Skill 自动调度,由 wl-skills-kit 自动生成)"
2
+ description: "项目编码规范(13 条标准 + 11 个 Skill 自动调度,由 wl-skills-kit 自动生成)"
3
3
  globs:
4
4
  - "**/*.vue"
5
5
  - "**/*.ts"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  inclusion: always
3
- description: 项目编码规范(13 条标准 + 10 个 Skill 自动调度)
3
+ description: 项目编码规范(13 条标准 + 11 个 Skill 自动调度)
4
4
  ---
5
5
 
6
6
  <!-- Kiro Steering 规则。由 @agile-team/wl-skills-kit 自动生成。-->
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "项目编码规范(13 条标准 + 10 个 Skill 自动调度,由 wl-skills-kit 自动生成)"
2
+ description: "项目编码规范(13 条标准 + 11 个 Skill 自动调度,由 wl-skills-kit 自动生成)"
3
3
  globs: ["**/*.vue", "**/*.ts", "**/*.tsx", "**/*.js", "**/*.scss"]
4
4
  alwaysApply: true
5
5
  ---
@@ -18,20 +18,24 @@
18
18
  ## 2. Pipeline 总览
19
19
 
20
20
  ```text
21
- prototype-scan
21
+ prototype-scan // 原型线:Axure / 截图 / 口述 / 非规范详设
22
+ spec-doc-parse // 规范线:wl-skills-design 标准说明书(二者二选一,汇聚同一 page-spec)
22
23
  → business-doc-extract(可选,资料达模块级时推荐)
23
24
  → api-contract
24
25
  → page-codegen
25
- → convention-audit
26
+ → convention-audit(规范线可追加 --mode spec-align 生成 GAP 报告)
26
27
  → code-fix(可选)
27
28
  → menu-sync / dict-sync / permission-sync(按页面需要选择)
28
29
  → template-extract(成熟页面沉淀,可选)
29
30
  ```
30
31
 
32
+ > **双线隔离**:`prototype-scan`(原型线)与 `spec-doc-parse`(规范线)是互斥的两个入口,按输入类型二选一(详见 `_registry.md` 调度规则优先级 0),输出格式完全相同,下游无感知。
33
+
31
34
  常见变体:
32
35
 
33
36
  ```text
34
37
  口述需求 → page-codegen → convention-audit // 碎片化,不走业务文档
38
+ 标准说明书 → spec-doc-parse → api-contract → page-codegen → convention-audit --mode spec-align // 规范线闭环
35
39
  存量项目反向梳理 → business-doc-extract → convention-audit
36
40
  原型/详设 → business-doc-extract → api-contract → page-codegen
37
41
  存量项目体检 → convention-audit → code-fix
@@ -48,11 +52,12 @@ prototype-scan
48
52
 
49
53
  | Skill | input_from | output_file | next_suggest |
50
54
  |---|---|---|---|
51
- | `prototype-scan` | 原型/详设/口述需求 | `.github/reports/PROTOTYPE_SCAN_*.md` | `business-doc-extract`(资料达模块级)或 `api-contract` |
55
+ | `prototype-scan` | 原型/非规范详设/口述需求 | `.github/reports/PROTOTYPE_SCAN_*.md` | `business-doc-extract`(资料达模块级)或 `api-contract` |
56
+ | `spec-doc-parse` | wl-skills-design 标准说明书(`docs/spec/{项目代号}/ch1-3.md` + `4.x-*.md` + `4.N-data-report.md`) | `.github/reports/SPEC_PARSE_*.md`(含 page-spec JSON + 解析报告) | `api-contract`(处理完阻断/待确认项后) |
52
57
  | `business-doc-extract` | 已发布原型目录 / 详设 / 字段实体 / 字典资料 / 现有页面 + `api.md` / `prototype-scan` 输出 | `docs/business/index.md` + `docs/business/open-questions.md` + `docs/business/0X-xx/{index,requirement,dictionary,field}.md` | `api-contract` 或 `page-codegen`(项目需求依据) |
53
- | `api-contract` | `prototype-scan` 输出、`docs/business/0X-xx/requirement.md` + `field.md` 或用户口述接口信息 | `src/views/**/api.md` | `page-codegen` |
58
+ | `api-contract` | `prototype-scan` 输出、`spec-doc-parse` 输出、`docs/business/0X-xx/requirement.md` + `field.md` 或用户口述接口信息 | `src/views/**/api.md` | `page-codegen` |
54
59
  | `page-codegen` | `api.md` / page-spec / 用户口述需求 | `src/views/**/{index.vue,data.ts,index.scss,api.md}` + `.github/reports/SYS_MENU_INFO.md` | `convention-audit`;如有菜单则 `menu-sync` |
55
- | `convention-audit` | 任意源码目录或文件 | `.github/reports/AUDIT_*.md` | 有可自动修复项时 `code-fix`;有菜单/字典/权限差异时对应 sync Skill |
60
+ | `convention-audit` | 任意源码目录或文件;`--mode spec-align` 时额外入 `spec-doc-parse` 的 page-spec / 说明书 | `.github/reports/AUDIT_*.md`;`--mode spec-align` 输出 `SPEC_GAP_*.md` | 有可自动修复项时 `code-fix`;有菜单/字典/权限差异时对应 sync Skill |
56
61
  | `code-fix` | `convention-audit` 报告 | 源码 diff / 修复摘要 | `convention-audit` 复扫 |
57
62
  | `menu-sync` | `.github/reports/SYS_MENU_INFO.md` | 后端菜单数据 + 同步摘要 | `permission-sync`(如需角色授权/动作) |
58
63
  | `dict-sync` | `.github/reports/SYS_DICT_INFO.md` | 后端字典数据 + 同步摘要 | `convention-audit` 复扫(如页面依赖字典) |
@@ -13,6 +13,7 @@ skills/
13
13
 
14
14
  ├── core/ 核心通用 Skill(任何前端业务项目通用)
15
15
  │ ├── prototype-scan/
16
+ │ ├── spec-doc-parse/
16
17
  │ ├── api-contract/
17
18
  │ ├── page-codegen/
18
19
  │ ├── convention-audit/
@@ -41,7 +42,8 @@ skills/
41
42
 
42
43
  | Skill 名 | 状态 | 路径 | MCP 工具依赖 | 触发关键词 |
43
44
  | ---------------- | ------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
44
- | prototype-scan | ✅ 启用 | `skills/core/prototype-scan/SKILL.md` | — | 扫描原型 / 解析原型 / 页面清单 / 详设文档 / 口述需求 / 建个页面 / 写个页面 / 根据截图 / 根据原型 |
45
+ | prototype-scan | ✅ 启用 | `skills/core/prototype-scan/SKILL.md` | — | 扫描原型 / 解析原型 / 页面清单 / 口述需求 / 建个页面 / 写个页面 / 根据截图 / 根据原型(**非规范零散详设**) |
46
+ | spec-doc-parse | ✅ 启用 | `skills/core/spec-doc-parse/SKILL.md` | — | 解析说明书 / 解析需求文档 / 规范文档转页面 / 根据说明书生成 / IPO 转页面 / 功能编码 / docs/spec(**wl-skills-design 标准说明书**) |
45
47
  | api-contract | ✅ 启用 | `skills/core/api-contract/SKILL.md` | — | 接口约定 / api.md / 字段定义 / 前后端对齐 / 接口设计 |
46
48
  | page-codegen | ✅ 启用 | `skills/core/page-codegen/SKILL.md` | `wls_validate_page` / `wls_doctor_ui` | 生成页面 / 创建页面 / 代码生成 / vue页面 / 按原型生成 / 帮我生成 / 列表页 / 管理页 / 台账 / mock / 假数据 / 先能跑 / AGGrid / skills-ui |
47
49
  | convention-audit | ✅ 启用 | `skills/core/convention-audit/SKILL.md` | `wls_code_scan` / `wls_audit_report_push` | 规范审计 / 代码审计 / 规范检查 / 对齐规范 / 规范偏差 / 接手新项目 / 存量代码分析 / 项目体检 |
@@ -58,6 +60,7 @@ skills/
58
60
 
59
61
  ## 调度规则
60
62
 
63
+ 0. **优先级 0(最高)— 双线隔离**:若用户输入路径含 `docs/spec/`,或文档含功能编码 `/[A-Z]{2,6}[0-9]{3}/` / IPO 表「处理逻辑」/ 流程五要素,**强制路由 `spec-doc-parse`(规范线)**,跳过 `prototype-scan` 的所有模式匹配。反之,Axure HTML / 截图 / 口述 / 非规范零散详设走 `prototype-scan`(原型线)。两线最终汇聚到同一份 page-spec JSON。
61
64
  1. **首先加载** `_best-practices.md`(场景索引,语义级路由依据),结合用户意图判断属于哪个场景
62
65
  2. 按场景指向的 Skill,`read_file` 加载对应 SKILL.md
63
66
  3. SKILL.md 中标注的 `必读 standards` 按 `standards/index.md` 任务类型映射加载
@@ -74,7 +77,7 @@ skills/
74
77
 
75
78
  当用户消息同时匹配多个 Skill 时(如"扫描原型并生成页面"):
76
79
 
77
- 1. 优先识别**完整流水线意图**:读取 `_pipeline.md`,按 `prototype-scan` `api-contract` → `page-codegen` → `convention-audit` → sync/ops 的顺序建议下一步
80
+ 1. 优先识别**完整流水线意图**:读取 `_pipeline.md`,按 `prototype-scan`(原型线)或 `spec-doc-parse`(规范线)→ `api-contract` → `page-codegen` → `convention-audit` → sync/ops 的顺序建议下一步
78
81
  2. 否则按**最具体的触发词**匹配单个 Skill
79
82
  3. 用户明确指定时(如"只扫描,不生成"),按用户指示
80
83
 
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: convention-audit
3
- description: "Use when: auditing project source code against the 13 modular standards in .github/standards/. Outputs deviation report and component-extraction suggestions to reports/. Triggers on: 规范审计, 规范检查, 代码审计, 对齐规范, 规范偏差, 接手新项目, 存量代码分析, 项目体检, audit code, check conventions, onboard project."
3
+ description: "Use when: auditing project source code against the 14 modular standards in .github/standards/. Outputs deviation report and component-extraction suggestions to reports/. Triggers on: 规范审计, 规范检查, 代码审计, 对齐规范, 规范偏差, 接手新项目, 存量代码分析, 项目体检, audit code, check conventions, onboard project."
4
4
  ---
5
5
 
6
6
  # Skill: 规范审计(convention-audit)v2
7
7
 
8
- 以 `.github/standards/` 13 条规范为唯一基线,扫描项目源码,输出**偏差报告**和**组件提取建议**到 `reports/` 目录。
8
+ 以 `.github/standards/` 14 条规范为唯一基线,扫描项目源码,输出**偏差报告**和**组件提取建议**到 `reports/` 目录。
9
9
 
10
10
  > **核心理念**:审查全覆盖、结果强量化、规则场景化、新增严格 + 存量渐进。
11
11
  > 本 Skill 只负责发现偏差并给出整改建议,**不自动修复**(修复由 code-fix Skill 完成)。
@@ -23,7 +23,7 @@ description: "Use when: auditing project source code against the 13 modular stan
23
23
  ```
24
24
  🚀 已触发技能 convention-audit/SKILL.md → 规范审计:扫描源码 + 偏差报告 + 提取建议
25
25
  ✅ 已读取 standards/index.md → 规范门控
26
- ✅ 已读取 standards/01 ~ 13 → 完整 13 条规范基线(审计场景需全量加载)
26
+ ✅ 已读取 standards/01 ~ 14 → 完整 14 条规范基线(审计场景需全量加载)
27
27
  ✅ 已读取 reports/规范审查报告.md → 现有报告(用于追加,不覆盖)
28
28
  ✅ 审计范围:{用户指定的目录或单文件}
29
29
  ✅ 工具链检测:ESLint {状态} / tsc {状态} / Husky {状态}
@@ -45,7 +45,7 @@ description: "Use when: auditing project source code against the 13 modular stan
45
45
 
46
46
  ---
47
47
 
48
- ## 审计范围(13 条规范全覆盖)
48
+ ## 审计范围(14 条规范全覆盖)
49
49
 
50
50
  ### 审计方式分层
51
51
 
@@ -55,7 +55,7 @@ description: "Use when: auditing project source code against the 13 modular stan
55
55
  | **工具链委托** | ESLint / tsc --noEmit / Git 命令(高可信度,不浪费 AI 算力) |
56
56
  | **AI 场景判断** | 页面类型识别、豁免判定(中可信度,需人工确认) |
57
57
 
58
- ### 13 条规范审计维度
58
+ ### 14 条规范审计维度
59
59
 
60
60
  | 编号 | 审计维度 | 审计方式 | 严重度判定 |
61
61
  | ---- | -------- | -------- | ---------- |
@@ -72,6 +72,7 @@ description: "Use when: auditing project source code against the 13 modular stan
72
72
  | 11 | 表单校验 | AI 场景判断 | FORM_ROUTE 缺 validate / resetFields → 🔴 |
73
73
  | 12 | BaseTable + cid | 静态 + 场景判断 | 主列表用 el-table → 🔴;cid 缺失/重复 → 🔴;弹窗小表格见豁免规则 |
74
74
  | 13 | 平台组件合规 | 静态扫描 | 业务页面用 el-form/el-table/el-date-picker 替代封装 → 🔴;封装组件内部 → ⚠️ 待确认;3+ 复用 → 提取建议 |
75
+ | 14 | 布局容器 | 静态扫描 | 业务代码用 `C_Splitter` → 🔴(必须替换为 `jh-drag-row`/`jh-drag-col`) |
75
76
 
76
77
  ---
77
78
 
@@ -159,7 +160,7 @@ description: "Use when: auditing project source code against the 13 modular stan
159
160
  | 当前分支 | {分支名} — {符合规范 / 不符合规范} |
160
161
  | 最近提交规范性 | {N}/{总数} 条符合 type(scope): 格式 |
161
162
 
162
- ### 3. 13 条规范覆盖矩阵
163
+ ### 3. 14 条规范覆盖矩阵
163
164
 
164
165
  | 规范 | 审查方式 | 结果 | 🔴 | 🟡 | 🟢 |
165
166
  |---|---|---|---:|---:|---:|
@@ -176,6 +177,7 @@ description: "Use when: auditing project source code against the 13 modular stan
176
177
  | 11 表单校验 | 场景扫描 | {结果} | {N} | {N} | {N} |
177
178
  | 12 BaseTable | 静态+场景 | {结果} | {N} | {N} | {N} |
178
179
  | 13 平台组件 | 静态扫描 | {结果} | {N} | {N} | {N} |
180
+ | 14 布局容器 | 静态扫描 | {结果} | {N} | {N} | {N} |
179
181
 
180
182
  ### 4. 🔴 严重偏差(必须整改)
181
183
 
@@ -364,15 +366,67 @@ description: "Use when: auditing project source code against the 13 modular stan
364
366
  | **page-codegen** | 审计发现偏差后,可调用 page-codegen 重新生成合规代码 |
365
367
  | **template-extract** | 审计输出的"组件提取建议",确认后可触发 template-extract |
366
368
  | **code-fix** | 审计报告中 ✅/⚠️ 标记项作为修复输入 |
369
+ | **spec-doc-parse** | 提供 spec 对齐模式的基准:用规范线解析出的 page-spec 与生成代码比对,输出 GAP 报告 |
367
370
  | **CI/CD** | 审计可作为 PR 检查项,不合规 PR 阻断合并 |
368
371
 
369
372
  ---
370
373
 
371
374
  ## 注意事项
372
375
 
373
- 1. **规范基线唯一**:以 `standards/index.md` 加载的 13 条文件为准,**不接受**"旧代码一直这么写"的辩解
376
+ 1. **规范基线唯一**:以 `standards/index.md` 加载的 14 条文件为准,**不接受**"旧代码一直这么写"的辩解
374
377
  2. **追加不覆盖**:每次审计追加新章节到报告,**不删除历史**,便于追溯整改进度
375
378
  3. **菜单位置解析**:依赖 koroFileHeader 文件头注释,缺失文件头时标记 `菜单位置:未知`
376
379
  4. **AI 自我审计**:page-codegen 生成代码后,建议立即跑一次单页审计验证合规
377
380
  5. **工具链优先**:TS 类型 / ESLint 规则优先借助工具链扫描,AI 负责监督验证和归类,不浪费算力逐文件做语义分析
378
381
  6. **场景化判定**:`data.ts` / `api.md` / AGGrid 均按场景规则判定,不机械检查文件数量
382
+
383
+ ---
384
+
385
+ ## spec 对齐扫描(GAP 报告)
386
+
387
+ > 闭环能力:与 `core/spec-doc-parse` 联动。当页面代码来自「规范线」(wl-skills-design 说明书 → spec-doc-parse → page-codegen)时,本模式把 **原始 spec 定义的字段** 与 **代码中实际存在的字段** 逐项比对,生成 GAP 报告,验证「说明书 → 代码」是否零损耗。
388
+
389
+ ### 触发
390
+
391
+ ```
392
+ 审计 {页面目录} --mode spec-align --spec docs/spec/{项目代号}/4.x-{子模块}.md
393
+ ```
394
+ 或自然语言:「检查 {页面} 是否跟说明书对齐」。
395
+
396
+ ### 比对维度
397
+
398
+ | 维度 | 检查点 | 偏差判定 |
399
+ |------|--------|---------|
400
+ | 查询字段 | spec `query[]` vs 代码 `queryDef()` | spec 有代码缺 → 🔴 漏字段;代码多出 → 🟡 超出 spec |
401
+ | 表格列 | spec `columns[]` vs 代码 `columnsDef()` | 同上,且顺序不一致 → 🟡 |
402
+ | 工具栏 | spec `toolbar[]` vs 代码 `toolbarDef()` | 按钮缺失/多出 → 🔴/🟡 |
403
+ | 表单字段 | spec `formSections[].fields[]` vs 弹窗组件 | 必填字段缺失 → 🔴 |
404
+ | 接口 URL | spec 推算 URL vs 代码 `API_CONFIG` | 路径不一致 → 🟡 待确认 |
405
+ | 权限码 | spec notes 权限码候选 vs 代码 v-permission | 未挂载 → 🟡,建议 permission-sync |
406
+
407
+ ### GAP 报告(reports/SPEC_GAP_{模块}_{日期}.md)
408
+
409
+ ```markdown
410
+ # Spec 对齐 GAP 报告
411
+ - 生成时间:{YYYY-MM-DD HH:mm}
412
+ - spec 来源:docs/spec/{项目代号}/4.x-{子模块}.md
413
+ - 代码范围:src/views/.../{页面}/
414
+
415
+ ## GAP 摘要
416
+ - spec 字段总数:N 代码实现:N 漏:N 多:N 顺序不一致:N
417
+
418
+ ## 漏字段(spec 有、代码无 → 🔴)
419
+ | # | 类型 | spec 字段 | 所在功能 | 建议 |
420
+ |---|------|----------|---------|------|
421
+ | 1 | query | customerType | PMMB001 | 补入查询项 |
422
+
423
+ ## 多余字段(代码有、spec 未定义 → 🟡)
424
+ | # | 类型 | 代码字段 | 建议 |
425
+ |---|------|----------|------|
426
+ | 1 | column | remark | 确认是否需要,否则反馈 design 补 spec |
427
+
428
+ ## 下一步
429
+ → 漏字段交 code-fix / page-codegen 补齐;多余字段反馈上游 design 补 spec。
430
+ ```
431
+
432
+ > spec 对齐模式**只对规范线生成的页面生效**;原型线(prototype-scan)生成的页面无 spec 基准,跳过本模式。
@@ -19,6 +19,7 @@ description: "Use when: generating complete Vue 3 page code (index.vue + data.ts
19
19
  ✅ 已读取 standards/02-code-structure.md → 三文件分离+接口契约 + 三段式 + script 9段顺序
20
20
  ✅ 已读取 standards/12-base-table.md → AGGrid必用 + cid命名规范
21
21
  ✅ 已读取 standards/13-platform-components.md → 平台组件对照表 + docs前置读取清单
22
+ ✅ 已读取 standards/14-layout-containers.md → 布局容器(禁用 C_Splitter,必须用 jh-drag-row/jh-drag-col)
22
23
  ✅ 已读取 docs/{涉及的jh-*文档} → 当前页涉及组件的使用规范
23
24
  ✅ 工具链检测:.prettierrc.js ✓ eslint.config.ts ✓ .husky/ ✓ [全部就绪]
24
25
  ✅ cid 已生成:{value}({首字母缩写说明})
@@ -114,7 +114,7 @@ wl-skills doctor-ui
114
114
  ## FAQ
115
115
 
116
116
  **Q:生成完了但 build 报错?**
117
- A:跑一下 `convention-audit` Skill,会扫出 13 条规范偏差并给出修复建议。
117
+ A:跑一下 `convention-audit` Skill,会扫出 14 条规范偏差并给出修复建议。
118
118
 
119
119
  **Q:能否只生成 data.ts 不生成 index.vue?**
120
120
  A:可以,告诉 AI"只生成 data.ts"。但通常一起生成,因为它们字段必须对齐。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: prototype-scan
3
- description: "Use when: analyzing Axure exported HTML prototype files to extract page inventory, classify interaction patterns, identify reusable components, and produce a structured page checklist for Vue development. Also supports detailed design documents (MD/Word) or natural language descriptions as input. Triggers on: prototype analysis, axure scan, page inventory, 原型解析, 页面清单, axure转vue, 详设文档, design doc, 详细设计, 口述需求, 自然语言建页面, natural language page request, 建个页面, 写个页面, 口头描述页面."
3
+ description: "Use when: analyzing Axure exported HTML prototype files to extract page inventory, classify interaction patterns, identify reusable components, and produce a structured page checklist for Vue development. Also supports NON-standard detailed design documents (free-form MD/Word) or natural language descriptions as input. DO NOT use for standard requirement-spec documents produced by wl-skills-design (path contains docs/spec/, has function codes like PMMB001, IPO tables, flow five-elements) — route those to spec-doc-parse instead. Triggers on: prototype analysis, axure scan, page inventory, 原型解析, 页面清单, axure转vue, 口述需求, 自然语言建页面, natural language page request, 建个页面, 写个页面, 口头描述页面."
4
4
  ---
5
5
 
6
6
  # Skill: 原型解析(prototype-scan)
@@ -15,7 +15,9 @@ description: "Use when: analyzing Axure exported HTML prototype files to extract
15
15
  |------|------|----------|
16
16
  | **模式 0(自然语言)** | 用户口述需求,无文件 | 日常对话:"帮我建一个客户管理页面,有XX字段" |
17
17
  | **模式 A(Axure)** | Axure HTML 文件包目录 | 已有原型设计,AI 全量扫描 HTML |
18
- | **模式 B(详设文档)** | MD/Word/表格格式的详细设计文档 | 已有详细设计文档,AI 解析结构化字段 |
18
+ | **模式 B(非规范详设)** | MD/Word/表格格式的零散详细设计 | 已有非规范详设文档,AI 解析结构化字段 |
19
+
20
+ > ⚠️ **双线隔离(必读)**:本 Skill 走「原型线」。若输入是 wl-skills-design 产出的**标准需求设计说明书**(路径含 `docs/spec/`、含功能编码 `/[A-Z]{2,6}[0-9]{3}/`、含 IPO 表「处理逻辑」、含流程五要素),属于「规范线」,**禁止本 Skill 接管**,必须路由到 `core/spec-doc-parse/SKILL.md`。两线各自解析,最终都汇聚到同一份 page-spec JSON,下游 `api-contract` / `page-codegen` 无感知来源。
19
21
 
20
22
  ---
21
23
 
@@ -233,7 +235,7 @@ AI 根据提取的信息,内部构建 page-spec JSON(**不输出给用户**
233
235
  // ===== 页面基本信息 =====
234
236
  "pageName": "客户档案", // 中文名
235
237
  "kebabName": "customer-archive", // kebab-case 目录名
236
- "pattern": "LIST", // LIST | MASTER_DETAIL | TREE_LIST | FORM_TAB | COMPOSITE
238
+ "pattern": "LIST", // LIST | MASTER_DETAIL | TREE_LIST | DETAIL_TABS | FORM_ROUTE | CHANGE_HISTORY | RECORD_FORM | OPERATION_STATION | TEMPLATE_DRIVEN
237
239
  "path": "views/sale/demo/khda/customer-archive/",
238
240
  "pagesTs": ["customer-archive", "客户档案"], // pages.ts 注册项
239
241
  "platformComponents": ["BaseQuery", "BaseTable", "jh-pagination"],
@@ -285,7 +287,7 @@ AI 根据提取的信息,内部构建 page-spec JSON(**不输出给用户**
285
287
  }
286
288
  ],
287
289
 
288
- // ===== 表单字段(FORM_TAB / 弹窗 页面使用) =====
290
+ // ===== 表单字段(DETAIL_TABS / FORM_ROUTE / 弹窗 页面使用) =====
289
291
  "formSections": [
290
292
  {
291
293
  "name": "basicInfo",
@@ -403,9 +405,13 @@ const [模块名]Module = gProd("[base-path]", {
403
405
 
404
406
  ---
405
407
 
406
- ## 输入模式 B:详细设计文档
408
+ ## 输入模式 B:非规范详细设计文档
409
+
410
+ > ⚠️ **模式 B 排除范围**:若文档路径含 `docs/spec/`,或文档内含 `§四 功能设计详细规范` / IPO 表格(含「处理逻辑」二级标题)/ 功能编码(正则 `/[A-Z]{2,6}[0-9]{3}/`)/ 流程说明五要素,
411
+ > **表明这是 wl-skills-design 的标准产出,不触发本模式**,应转发 `core/spec-doc-parse/SKILL.md`。
412
+ > 本模式只处理**非规范、零散的**详设(本来就不规范的输入,AI 自由发挥是帮助);面对高精度规范文档时,专属解析才能保证零损耗。
407
413
 
408
- > 详设文档输入比 Axure HTML **精度更高(95-100%)**,因为字段名和类型是明确写出的,不需要从视觉推断。
414
+ > 非规范详设输入比 Axure HTML **精度更高(95-100%)**,因为字段名和类型是明确写出的,不需要从视觉推断。
409
415
  > 输出格式与模式 A 完全一致(page-spec JSON),page-codegen 无感知。
410
416
 
411
417
  ### 为什么详设比 Axure 更精确
@@ -428,7 +434,7 @@ const [模块名]Module = gProd("[base-path]", {
428
434
  ## [页面名称]
429
435
 
430
436
  **基本信息**
431
- - 交互模式:LIST / MASTER_DETAIL / TREE_LIST / FORM_TAB
437
+ - 交互模式:LIST / MASTER_DETAIL / TREE_LIST / DETAIL_TABS / FORM_ROUTE / CHANGE_HISTORY / RECORD_FORM / OPERATION_STATION / TEMPLATE_DRIVEN
432
438
  - 目录名:kebab-case(如 customer-archive)
433
439
  - 服务缩写:sale(如 pm / mmwr / sale / hrms / base)
434
440
  - 是否隐藏菜单:否