@agile-team/wl-skills-kit 2.1.1 → 2.1.3

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.
Files changed (80) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +6 -5
  3. package/bin/wl-skills.js +35 -1
  4. package/files/.github/guides/README.md +13 -13
  5. package/files/.github/guides/architecture.md +555 -555
  6. package/files/.github/guides/usage.md +166 -166
  7. package/files/.github/reports/README.md +65 -65
  8. package/files/.github/reports/SYS_DICT_INFO.md +19 -19
  9. package/files/.github/reports/SYS_MENU_INFO.md +247 -247
  10. package/files/.github/reports/SYS_PERMISSION_INFO.md +20 -20
  11. package/files/.github/reports//347/273/204/344/273/266/346/217/220/345/217/226/345/273/272/350/256/256.md +33 -33
  12. package/files/.github/reports//350/247/204/350/214/203/345/256/241/346/237/245/346/212/245/345/221/212.md +44 -44
  13. package/files/.github/skills/_compat/README.md +108 -108
  14. package/files/.github/skills/_compat/headers/agents.txt +8 -8
  15. package/files/.github/skills/_compat/headers/claude-code.txt +7 -7
  16. package/files/.github/skills/_compat/headers/cline.txt +7 -7
  17. package/files/.github/skills/_compat/headers/cursor-mdc.txt +16 -16
  18. package/files/.github/skills/_compat/headers/cursor-rules.txt +7 -7
  19. package/files/.github/skills/_compat/headers/github-copilot.txt +1 -1
  20. package/files/.github/skills/_compat/headers/kiro.txt +10 -10
  21. package/files/.github/skills/_compat/headers/trae.txt +11 -11
  22. package/files/.github/skills/_compat/headers/windsurf.txt +7 -7
  23. package/files/.github/skills/_registry.md +81 -81
  24. package/files/.github/skills/core/api-contract/SKILL.md +344 -344
  25. package/files/.github/skills/core/api-contract/USAGE.md +110 -110
  26. package/files/.github/skills/core/convention-audit/SKILL.md +189 -189
  27. package/files/.github/skills/core/convention-audit/USAGE.md +99 -99
  28. package/files/.github/skills/core/page-codegen/SKILL.md +973 -973
  29. package/files/.github/skills/core/page-codegen/USAGE.md +102 -102
  30. package/files/.github/skills/core/page-codegen/templates/_index.md +46 -46
  31. package/files/.github/skills/core/page-codegen/templates/domains/_CONTRIBUTING.md +107 -107
  32. package/files/.github/skills/core/page-codegen/templates/domains/produce/TPL-OPERATION-STATION.md +442 -442
  33. package/files/.github/skills/core/page-codegen/templates/domains/sale/README.md +26 -26
  34. package/files/.github/skills/core/page-codegen/templates/universal/TPL-CHANGE-HISTORY.md +276 -276
  35. package/files/.github/skills/core/page-codegen/templates/universal/TPL-DETAIL-TABS.md +1145 -1145
  36. package/files/.github/skills/core/page-codegen/templates/universal/TPL-DRIVEN.md +124 -124
  37. package/files/.github/skills/core/page-codegen/templates/universal/TPL-FORM-ROUTE.md +436 -436
  38. package/files/.github/skills/core/page-codegen/templates/universal/TPL-LIST.md +191 -191
  39. package/files/.github/skills/core/page-codegen/templates/universal/TPL-MASTER-DETAIL.md +148 -148
  40. package/files/.github/skills/core/page-codegen/templates/universal/TPL-RECORD-FORM.md +371 -371
  41. package/files/.github/skills/core/page-codegen/templates/universal/TPL-TREE-LIST.md +186 -186
  42. package/files/.github/skills/core/prototype-scan/SKILL.md +498 -498
  43. package/files/.github/skills/core/prototype-scan/USAGE.md +95 -95
  44. package/files/.github/skills/core/template-extract/SKILL.md +139 -139
  45. package/files/.github/skills/core/template-extract/USAGE.md +93 -93
  46. package/files/.github/skills/domain/README.md +51 -51
  47. package/files/.github/skills/ops/code-fix/SKILL.draft.md +108 -108
  48. package/files/.github/skills/sync/dict-sync/SKILL.draft.md +100 -100
  49. package/files/.github/skills/sync/menu-sync/SKILL.md +258 -258
  50. package/files/.github/skills/sync/menu-sync/USAGE.md +104 -104
  51. package/files/.github/skills/sync/menu-sync/env/env.local.json +6 -6
  52. package/files/.github/skills/sync/menu-sync/env/guide.md +83 -83
  53. package/files/.github/skills/sync/permission-sync/SKILL.draft.md +91 -91
  54. package/files/.github/standards/01-toolchain.md +57 -57
  55. package/files/.github/standards/02-code-structure.md +111 -111
  56. package/files/.github/standards/03-comments.md +53 -53
  57. package/files/.github/standards/04-coding-basics.md +33 -33
  58. package/files/.github/standards/05-logging.md +38 -38
  59. package/files/.github/standards/06-security.md +44 -44
  60. package/files/.github/standards/07-config.md +52 -52
  61. package/files/.github/standards/08-git.md +60 -60
  62. package/files/.github/standards/09-typescript.md +71 -71
  63. package/files/.github/standards/10-pinia.md +57 -57
  64. package/files/.github/standards/11-form-validation.md +81 -81
  65. package/files/.github/standards/12-base-table.md +116 -116
  66. package/files/.github/standards/13-platform-components.md +123 -123
  67. package/files/.github/standards/index.md +89 -89
  68. package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/data.ts +196 -196
  69. package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/index.scss +150 -150
  70. package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/index.vue +79 -79
  71. package/files/docs/jh-date-range.md +257 -257
  72. package/files/docs/jh-date.md +222 -222
  73. package/files/docs/jh-dept-picker.md +190 -190
  74. package/files/docs/jh-drag-row.md +590 -590
  75. package/files/docs/jh-file-upload.md +216 -216
  76. package/files/docs/jh-picker.md +218 -218
  77. package/files/docs/jh-select.md +148 -148
  78. package/files/docs/jh-text.md +248 -248
  79. package/files/docs/jh-user-picker.md +197 -197
  80. package/package.json +3 -5
@@ -1,102 +1,102 @@
1
- # 使用指南:page-codegen(页面代码生成)
2
-
3
- > **谁读这个文档**:团队成员(主要前端)
4
- > **AI 触发文件**:同目录 `SKILL.md`
5
-
6
- ---
7
-
8
- ## 这个 Skill 解决什么问题
9
-
10
- 基于《页面清单》+ `api.md`,**自动生成符合项目规范的 Vue 页面**(4 文件骨架:data.ts / index.vue / index.scss / api.md),并跑一遍内部规范自检(Pre-flight + 完成摘要)。
11
-
12
- 生成出来的代码**满足 13 条 standards**,无需手工改语法/命名。
13
-
14
- ---
15
-
16
- ## 何时使用
17
-
18
- - 已完成 prototype-scan + api-contract,需要批量生成页面代码
19
- - 复用相同模板做新页面(基于 templates/domains/)
20
- - 教新人时希望"按一键就能看到合规示例"
21
-
22
- ---
23
-
24
- ## 触发关键词
25
-
26
- `生成页面` / `创建页面` / `代码生成` / `vue 页面` / `按原型生成` / `帮我生成`
27
-
28
- ---
29
-
30
- ## 标准对话示例
31
-
32
- ```
33
- 你:基于 reports/PROTOTYPE_SCAN_客户管理_20260426.md 和各页面的 api.md,生成全部 7 个页面代码
34
- AI:[Pre-flight]
35
- 将创建 7 个目录到 src/views/produce/aiflow/
36
- 每个目录包含:data.ts / index.vue / index.scss / api.md(已存在则跳过)
37
- 模板基线:templates/domains/produce/customer/
38
- 13 条 standards 自检通过项预估:
39
- ✓ AbstractPageQueryHook 正确继承
40
- ✓ EColumn 元数据完备
41
- ✓ pageRef 命名规范
42
- ✓ scoped scss
43
- ⚠ 待确认:customerStatus 字典 logicValue 名
44
- [生成中... 8 分钟]
45
- 完成摘要:
46
- - 新建 7 个页面共 28 个文件
47
- - 5 处需要人工 review(详见报告)
48
- - 输出报告:reports/PAGE_CODEGEN_客户管理_20260426.md
49
- ```
50
-
51
- ---
52
-
53
- ## 输出物
54
-
55
- 每个页面目录:
56
-
57
- ```
58
- src/views/<域>/<模块>/<子模块>/<page-name>/
59
- ├── data.ts EColumn 定义、API_CONFIG、Hook 类
60
- ├── index.vue template + script + import data.ts
61
- ├── index.scss 页面专属样式(已 :deep / scoped 包好)
62
- └── api.md (由 api-contract 生成,codegen 不覆盖)
63
- ```
64
-
65
- 外加生成报告:`.github/reports/PAGE_CODEGEN_<模块>_<YYYYMMDD>.md`
66
-
67
- ---
68
-
69
- ## 模板复用机制
70
-
71
- `page-codegen` 读取 `templates/` 下两个层级:
72
-
73
- - **`templates/universal/`**:跨业务通用骨架(LIST / MASTER_DETAIL / TREE_LIST)
74
- - **`templates/domains/<域>/<场景>/`**:领域专属(如 produce/customer/、sale/order/)
75
-
76
- **优先级**:domain 命中则用 domain,未命中回落 universal。
77
-
78
- > 想沉淀新模板?用 `template-extract` Skill 从已有页面抽取。
79
-
80
- ---
81
-
82
- ## 常见踩坑
83
-
84
- | 现象 | 原因 | 解法 |
85
- | ----------------------------------- | -------------------------------------- | --------------------------------------------------- |
86
- | 生成出来的页面 console 报字典查不到 | 字典还没在 reports/SYS_DICT_INFO.md 中 | 先跑 `dict-sync` 拉取,或手动补 dict |
87
- | 表单弹窗未加 v-loading | api.md 没标记 save/update 为耗时操作 | 在 api.md 接口清单中加 `**预计耗时:> 2s**` 标记 |
88
- | `EColumn` 字段缺 `width` | 模板默认不指定 width | 模板里手动加,或选用 `templates/domains/` 下的成品 |
89
- | AGGrid cid 重复 | 多页面同时生成时随机数撞了 | cid 已用 `{首字母缩写}-{Unix秒后6位}`,理论极低概率 |
90
-
91
- ---
92
-
93
- ## FAQ
94
-
95
- **Q:生成完了但 build 报错?**
96
- A:跑一下 `convention-audit` Skill,会扫出 13 条规范偏差并给出修复建议。
97
-
98
- **Q:能否只生成 data.ts 不生成 index.vue?**
99
- A:可以,告诉 AI"只生成 data.ts"。但通常一起生成,因为它们字段必须对齐。
100
-
101
- **Q:能否覆盖已有页面?**
102
- A:默认不覆盖。需要明确说"覆盖现有 src/views/xxx/" + AI 会让你二次确认。
1
+ # 使用指南:page-codegen(页面代码生成)
2
+
3
+ > **谁读这个文档**:团队成员(主要前端)
4
+ > **AI 触发文件**:同目录 `SKILL.md`
5
+
6
+ ---
7
+
8
+ ## 这个 Skill 解决什么问题
9
+
10
+ 基于《页面清单》+ `api.md`,**自动生成符合项目规范的 Vue 页面**(4 文件骨架:data.ts / index.vue / index.scss / api.md),并跑一遍内部规范自检(Pre-flight + 完成摘要)。
11
+
12
+ 生成出来的代码**满足 13 条 standards**,无需手工改语法/命名。
13
+
14
+ ---
15
+
16
+ ## 何时使用
17
+
18
+ - 已完成 prototype-scan + api-contract,需要批量生成页面代码
19
+ - 复用相同模板做新页面(基于 templates/domains/)
20
+ - 教新人时希望"按一键就能看到合规示例"
21
+
22
+ ---
23
+
24
+ ## 触发关键词
25
+
26
+ `生成页面` / `创建页面` / `代码生成` / `vue 页面` / `按原型生成` / `帮我生成`
27
+
28
+ ---
29
+
30
+ ## 标准对话示例
31
+
32
+ ```
33
+ 你:基于 reports/PROTOTYPE_SCAN_客户管理_20260426.md 和各页面的 api.md,生成全部 7 个页面代码
34
+ AI:[Pre-flight]
35
+ 将创建 7 个目录到 src/views/produce/aiflow/
36
+ 每个目录包含:data.ts / index.vue / index.scss / api.md(已存在则跳过)
37
+ 模板基线:templates/domains/produce/customer/
38
+ 13 条 standards 自检通过项预估:
39
+ ✓ AbstractPageQueryHook 正确继承
40
+ ✓ EColumn 元数据完备
41
+ ✓ pageRef 命名规范
42
+ ✓ scoped scss
43
+ ⚠ 待确认:customerStatus 字典 logicValue 名
44
+ [生成中... 8 分钟]
45
+ 完成摘要:
46
+ - 新建 7 个页面共 28 个文件
47
+ - 5 处需要人工 review(详见报告)
48
+ - 输出报告:reports/PAGE_CODEGEN_客户管理_20260426.md
49
+ ```
50
+
51
+ ---
52
+
53
+ ## 输出物
54
+
55
+ 每个页面目录:
56
+
57
+ ```
58
+ src/views/<域>/<模块>/<子模块>/<page-name>/
59
+ ├── data.ts EColumn 定义、API_CONFIG、Hook 类
60
+ ├── index.vue template + script + import data.ts
61
+ ├── index.scss 页面专属样式(已 :deep / scoped 包好)
62
+ └── api.md (由 api-contract 生成,codegen 不覆盖)
63
+ ```
64
+
65
+ 外加生成报告:`.github/reports/PAGE_CODEGEN_<模块>_<YYYYMMDD>.md`
66
+
67
+ ---
68
+
69
+ ## 模板复用机制
70
+
71
+ `page-codegen` 读取 `templates/` 下两个层级:
72
+
73
+ - **`templates/universal/`**:跨业务通用骨架(LIST / MASTER_DETAIL / TREE_LIST)
74
+ - **`templates/domains/<域>/<场景>/`**:领域专属(如 produce/customer/、sale/order/)
75
+
76
+ **优先级**:domain 命中则用 domain,未命中回落 universal。
77
+
78
+ > 想沉淀新模板?用 `template-extract` Skill 从已有页面抽取。
79
+
80
+ ---
81
+
82
+ ## 常见踩坑
83
+
84
+ | 现象 | 原因 | 解法 |
85
+ | ----------------------------------- | -------------------------------------- | --------------------------------------------------- |
86
+ | 生成出来的页面 console 报字典查不到 | 字典还没在 reports/SYS_DICT_INFO.md 中 | 先跑 `dict-sync` 拉取,或手动补 dict |
87
+ | 表单弹窗未加 v-loading | api.md 没标记 save/update 为耗时操作 | 在 api.md 接口清单中加 `**预计耗时:> 2s**` 标记 |
88
+ | `EColumn` 字段缺 `width` | 模板默认不指定 width | 模板里手动加,或选用 `templates/domains/` 下的成品 |
89
+ | AGGrid cid 重复 | 多页面同时生成时随机数撞了 | cid 已用 `{首字母缩写}-{Unix秒后6位}`,理论极低概率 |
90
+
91
+ ---
92
+
93
+ ## FAQ
94
+
95
+ **Q:生成完了但 build 报错?**
96
+ A:跑一下 `convention-audit` Skill,会扫出 13 条规范偏差并给出修复建议。
97
+
98
+ **Q:能否只生成 data.ts 不生成 index.vue?**
99
+ A:可以,告诉 AI"只生成 data.ts"。但通常一起生成,因为它们字段必须对齐。
100
+
101
+ **Q:能否覆盖已有页面?**
102
+ A:默认不覆盖。需要明确说"覆盖现有 src/views/xxx/" + AI 会让你二次确认。
@@ -1,46 +1,46 @@
1
- # 模板注册表(page-codegen 模板单一数据源)
2
-
3
- > AI 在生成页面前,**先读取本文件**,定位匹配的 TPL 路径,再读取该 TPL。
4
-
5
- ---
6
-
7
- ## 通用模板(与业务域无关)
8
-
9
- | 交互模式 | TPL 路径 | 适用场景 |
10
- | --------------- | ------------------------------------------- | --------------------------------------- |
11
- | LIST | `templates/universal/TPL-LIST.md` | 标准列表页(查询+工具栏+表格+分页) |
12
- | FORM_ROUTE | `templates/universal/TPL-FORM-ROUTE.md` | 复杂表单独立路由页(多 Tab / 多子表) |
13
- | MASTER_DETAIL | `templates/universal/TPL-MASTER-DETAIL.md` | 主从表页(jh-drag-row 上下分栏) |
14
- | TREE_LIST | `templates/universal/TPL-TREE-LIST.md` | 左树右列表页(C_Splitter 布局) |
15
- | DETAIL_TABS | `templates/universal/TPL-DETAIL-TABS.md` | 详情 Tab 页(上方表单 + 下方 Tab 子表) |
16
- | CHANGE_HISTORY | `templates/universal/TPL-CHANGE-HISTORY.md` | 变更历史比对页(时间线 + 字段差异) |
17
- | RECORD_FORM | `templates/universal/TPL-RECORD-FORM.md` | 录入型实绩页(无分页,查询 + 内联表单) |
18
- | TEMPLATE_DRIVEN | `templates/universal/TPL-DRIVEN.md` | 配置驱动识别参考(非代码生成模板) |
19
-
20
- ---
21
-
22
- ## 领域专属模板
23
-
24
- ### produce(生产域)
25
-
26
- | 模板 | TPL 路径 | 适用场景 |
27
- | ----------------- | ---------------------------------------------------- | ----------------------------------- |
28
- | OPERATION_STATION | `templates/domains/produce/TPL-OPERATION-STATION.md` | 工序操作站(双清单联动 + 内联表单) |
29
-
30
- ### sale(销售域)
31
-
32
- > 暂无领域专属模板。可通过 `template-extract` Skill 从现有页面提取并贡献。
33
-
34
- ---
35
-
36
- ## 选择规则
37
-
38
- 1. AI 优先匹配通用模板(universal/)
39
- 2. 若用户明确指定领域且通用模板不适用,匹配 `domains/{domain}/`
40
- 3. 若都不匹配,反问用户描述更详细的交互模式,或建议使用 template-extract 先提取标杆页面
41
-
42
- ---
43
-
44
- ## 贡献新模板
45
-
46
- 使用 `template-extract` Skill 从现有项目页面自动提取,详见 `templates/domains/_CONTRIBUTING.md`。
1
+ # 模板注册表(page-codegen 模板单一数据源)
2
+
3
+ > AI 在生成页面前,**先读取本文件**,定位匹配的 TPL 路径,再读取该 TPL。
4
+
5
+ ---
6
+
7
+ ## 通用模板(与业务域无关)
8
+
9
+ | 交互模式 | TPL 路径 | 适用场景 |
10
+ | --------------- | ------------------------------------------- | --------------------------------------- |
11
+ | LIST | `templates/universal/TPL-LIST.md` | 标准列表页(查询+工具栏+表格+分页) |
12
+ | FORM_ROUTE | `templates/universal/TPL-FORM-ROUTE.md` | 复杂表单独立路由页(多 Tab / 多子表) |
13
+ | MASTER_DETAIL | `templates/universal/TPL-MASTER-DETAIL.md` | 主从表页(jh-drag-row 上下分栏) |
14
+ | TREE_LIST | `templates/universal/TPL-TREE-LIST.md` | 左树右列表页(C_Splitter 布局) |
15
+ | DETAIL_TABS | `templates/universal/TPL-DETAIL-TABS.md` | 详情 Tab 页(上方表单 + 下方 Tab 子表) |
16
+ | CHANGE_HISTORY | `templates/universal/TPL-CHANGE-HISTORY.md` | 变更历史比对页(时间线 + 字段差异) |
17
+ | RECORD_FORM | `templates/universal/TPL-RECORD-FORM.md` | 录入型实绩页(无分页,查询 + 内联表单) |
18
+ | TEMPLATE_DRIVEN | `templates/universal/TPL-DRIVEN.md` | 配置驱动识别参考(非代码生成模板) |
19
+
20
+ ---
21
+
22
+ ## 领域专属模板
23
+
24
+ ### produce(生产域)
25
+
26
+ | 模板 | TPL 路径 | 适用场景 |
27
+ | ----------------- | ---------------------------------------------------- | ----------------------------------- |
28
+ | OPERATION_STATION | `templates/domains/produce/TPL-OPERATION-STATION.md` | 工序操作站(双清单联动 + 内联表单) |
29
+
30
+ ### sale(销售域)
31
+
32
+ > 暂无领域专属模板。可通过 `template-extract` Skill 从现有页面提取并贡献。
33
+
34
+ ---
35
+
36
+ ## 选择规则
37
+
38
+ 1. AI 优先匹配通用模板(universal/)
39
+ 2. 若用户明确指定领域且通用模板不适用,匹配 `domains/{domain}/`
40
+ 3. 若都不匹配,反问用户描述更详细的交互模式,或建议使用 template-extract 先提取标杆页面
41
+
42
+ ---
43
+
44
+ ## 贡献新模板
45
+
46
+ 使用 `template-extract` Skill 从现有项目页面自动提取,详见 `templates/domains/_CONTRIBUTING.md`。
@@ -1,107 +1,107 @@
1
- # 领域模板贡献规范
2
-
3
- > 如何向 `domains/` 贡献领域专属模板。
4
-
5
- ---
6
-
7
- ## 何时贡献领域模板
8
-
9
- ✅ **建议提取**的场景:
10
-
11
- - 同一业务域内 **3+ 个页面**遵循相同的非标准交互模式
12
- - 该模式无法通过通用模板(`universal/`)覆盖
13
- - 标杆页面已稳定运行,业务字段已成熟
14
-
15
- ❌ **不建议提取**的场景:
16
-
17
- - 该模式未来 6 个月可能频繁变化
18
- - 仅 1~2 个页面使用
19
- - 通用模板稍加配置即可满足
20
-
21
- ---
22
-
23
- ## 推荐方式:使用 template-extract Skill
24
-
25
- 最低门槛,**全 AI 辅助**:
26
-
27
- ```
28
- 开发者:触发模板提取,目标页:src/views/produce/.../mmwr-rolling-management/
29
-
30
- AI: 1. 读取目标页 4 文件(index.vue + data.ts + index.scss + api.md)
31
- 2. 自动识别交互模式,对比已有 TPL,输出识别结论
32
- 3. 反问 3 个问题:领域归属 / 模板命名 / 脱敏需求
33
- 4. 生成标准 TPL 文件
34
- 5. 写入 domains/{domain}/
35
- 6. 自动更新 templates/_index.md
36
- 7. 输出后续提交步骤
37
- ```
38
-
39
- 详见 `skills/core/template-extract/SKILL.md`。
40
-
41
- ---
42
-
43
- ## TPL 文件格式规范
44
-
45
- 每个领域模板必须包含以下章节:
46
-
47
- ```markdown
48
- # {TPL_NAME}:{中文名}
49
-
50
- > **适用场景**:(一句话场景描述)
51
- > **识别特征**:(原型/详设中如何识别本模式)
52
- > **布局核心**:(关键组件 / 布局方式)
53
- > **⚠️ 重要约束**:(与通用模板的核心区别)
54
- > **参考标杆**:`src/views/.../{kebab-page-name}/`
55
-
56
- ---
57
-
58
- ## 识别规则
59
-
60
- (5 条以内的明确判定条件)
61
-
62
- ---
63
-
64
- ## 代码模板
65
-
66
- ### index.vue
67
-
68
- (完整可运行代码,使用占位符 `[资源名]` `[服务缩写]`)
69
-
70
- ### data.ts
71
-
72
- (同上)
73
-
74
- ### index.scss
75
-
76
- ---
77
-
78
- ## 注意事项
79
-
80
- (陷阱 / 易错点 / 性能提示)
81
- ```
82
-
83
- ---
84
-
85
- ## 命名规范
86
-
87
- - TPL 文件名:`TPL-{ALL-CAPS-KEBAB}.md`
88
- 示例:`TPL-OPERATION-STATION.md`、`TPL-BATCH-INSPECT.md`
89
- - 模板标识符:与文件名一致,全大写下划线
90
- 示例:`OPERATION_STATION`、`BATCH_INSPECT`
91
-
92
- ---
93
-
94
- ## 提交流程
95
-
96
- 1. 通过 `template-extract` Skill 生成 TPL 文件
97
- 2. 人工 review 生成的内容(脱敏 / 占位符 / 注意事项)
98
- 3. 提交 PR:`feat(template): 新增领域模板 TPL-XXX`
99
- 4. CHENY 评审合入
100
-
101
- ---
102
-
103
- ## 模板维护
104
-
105
- - 标杆页面变更 → 同步更新 TPL(保持模板与实际代码一致)
106
- - 模板使用频率低于预期 → 评估是否归档或合并到通用模板
107
- - 通过 `convention-audit` 定期对比各 TPL 标杆页面与最新规范的一致性
1
+ # 领域模板贡献规范
2
+
3
+ > 如何向 `domains/` 贡献领域专属模板。
4
+
5
+ ---
6
+
7
+ ## 何时贡献领域模板
8
+
9
+ ✅ **建议提取**的场景:
10
+
11
+ - 同一业务域内 **3+ 个页面**遵循相同的非标准交互模式
12
+ - 该模式无法通过通用模板(`universal/`)覆盖
13
+ - 标杆页面已稳定运行,业务字段已成熟
14
+
15
+ ❌ **不建议提取**的场景:
16
+
17
+ - 该模式未来 6 个月可能频繁变化
18
+ - 仅 1~2 个页面使用
19
+ - 通用模板稍加配置即可满足
20
+
21
+ ---
22
+
23
+ ## 推荐方式:使用 template-extract Skill
24
+
25
+ 最低门槛,**全 AI 辅助**:
26
+
27
+ ```
28
+ 开发者:触发模板提取,目标页:src/views/produce/.../mmwr-rolling-management/
29
+
30
+ AI: 1. 读取目标页 4 文件(index.vue + data.ts + index.scss + api.md)
31
+ 2. 自动识别交互模式,对比已有 TPL,输出识别结论
32
+ 3. 反问 3 个问题:领域归属 / 模板命名 / 脱敏需求
33
+ 4. 生成标准 TPL 文件
34
+ 5. 写入 domains/{domain}/
35
+ 6. 自动更新 templates/_index.md
36
+ 7. 输出后续提交步骤
37
+ ```
38
+
39
+ 详见 `skills/core/template-extract/SKILL.md`。
40
+
41
+ ---
42
+
43
+ ## TPL 文件格式规范
44
+
45
+ 每个领域模板必须包含以下章节:
46
+
47
+ ```markdown
48
+ # {TPL_NAME}:{中文名}
49
+
50
+ > **适用场景**:(一句话场景描述)
51
+ > **识别特征**:(原型/详设中如何识别本模式)
52
+ > **布局核心**:(关键组件 / 布局方式)
53
+ > **⚠️ 重要约束**:(与通用模板的核心区别)
54
+ > **参考标杆**:`src/views/.../{kebab-page-name}/`
55
+
56
+ ---
57
+
58
+ ## 识别规则
59
+
60
+ (5 条以内的明确判定条件)
61
+
62
+ ---
63
+
64
+ ## 代码模板
65
+
66
+ ### index.vue
67
+
68
+ (完整可运行代码,使用占位符 `[资源名]` `[服务缩写]`)
69
+
70
+ ### data.ts
71
+
72
+ (同上)
73
+
74
+ ### index.scss
75
+
76
+ ---
77
+
78
+ ## 注意事项
79
+
80
+ (陷阱 / 易错点 / 性能提示)
81
+ ```
82
+
83
+ ---
84
+
85
+ ## 命名规范
86
+
87
+ - TPL 文件名:`TPL-{ALL-CAPS-KEBAB}.md`
88
+ 示例:`TPL-OPERATION-STATION.md`、`TPL-BATCH-INSPECT.md`
89
+ - 模板标识符:与文件名一致,全大写下划线
90
+ 示例:`OPERATION_STATION`、`BATCH_INSPECT`
91
+
92
+ ---
93
+
94
+ ## 提交流程
95
+
96
+ 1. 通过 `template-extract` Skill 生成 TPL 文件
97
+ 2. 人工 review 生成的内容(脱敏 / 占位符 / 注意事项)
98
+ 3. 提交 PR:`feat(template): 新增领域模板 TPL-XXX`
99
+ 4. CHENY 评审合入
100
+
101
+ ---
102
+
103
+ ## 模板维护
104
+
105
+ - 标杆页面变更 → 同步更新 TPL(保持模板与实际代码一致)
106
+ - 模板使用频率低于预期 → 评估是否归档或合并到通用模板
107
+ - 通过 `convention-audit` 定期对比各 TPL 标杆页面与最新规范的一致性