@agile-team/wl-skills-kit 2.3.4 → 2.3.6

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 (96) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +16 -10
  3. package/files/.cursor/mcp.json +8 -8
  4. package/files/.github/guides/README.md +13 -13
  5. package/files/.github/guides/architecture.md +555 -555
  6. package/files/.github/guides/mcp-setup.md +109 -109
  7. package/files/.github/guides/usage.md +184 -184
  8. package/files/.github/reports/README.md +65 -65
  9. package/files/.github/reports/SYS_DICT_INFO.md +50 -50
  10. package/files/.github/reports/SYS_MENU_INFO.md +247 -247
  11. package/files/.github/reports/SYS_PERMISSION_INFO.md +20 -20
  12. 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
  13. 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
  14. package/files/.github/skills/_compat/README.md +108 -108
  15. package/files/.github/skills/_compat/headers/agents.txt +8 -8
  16. package/files/.github/skills/_compat/headers/claude-code.txt +7 -7
  17. package/files/.github/skills/_compat/headers/cline.txt +7 -7
  18. package/files/.github/skills/_compat/headers/cursor-mdc.txt +16 -16
  19. package/files/.github/skills/_compat/headers/cursor-rules.txt +7 -7
  20. package/files/.github/skills/_compat/headers/github-copilot.txt +1 -1
  21. package/files/.github/skills/_compat/headers/kiro.txt +10 -10
  22. package/files/.github/skills/_compat/headers/qoder.txt +8 -8
  23. package/files/.github/skills/_compat/headers/trae.txt +11 -11
  24. package/files/.github/skills/_compat/headers/windsurf.txt +7 -7
  25. package/files/.github/skills/_registry.md +81 -81
  26. package/files/.github/skills/core/api-contract/SKILL.md +344 -344
  27. package/files/.github/skills/core/api-contract/USAGE.md +110 -110
  28. package/files/.github/skills/core/convention-audit/SKILL.md +189 -189
  29. package/files/.github/skills/core/convention-audit/USAGE.md +99 -99
  30. package/files/.github/skills/core/page-codegen/SKILL.md +973 -973
  31. package/files/.github/skills/core/page-codegen/USAGE.md +102 -102
  32. package/files/.github/skills/core/page-codegen/templates/_index.md +46 -46
  33. package/files/.github/skills/core/page-codegen/templates/domains/_CONTRIBUTING.md +107 -107
  34. package/files/.github/skills/core/page-codegen/templates/domains/produce/TPL-OPERATION-STATION.md +442 -442
  35. package/files/.github/skills/core/page-codegen/templates/domains/sale/README.md +26 -26
  36. package/files/.github/skills/core/page-codegen/templates/universal/TPL-CHANGE-HISTORY.md +276 -276
  37. package/files/.github/skills/core/page-codegen/templates/universal/TPL-DETAIL-TABS.md +1145 -1145
  38. package/files/.github/skills/core/page-codegen/templates/universal/TPL-DRIVEN.md +309 -309
  39. package/files/.github/skills/core/page-codegen/templates/universal/TPL-FORM-ROUTE.md +436 -436
  40. package/files/.github/skills/core/page-codegen/templates/universal/TPL-LIST.md +191 -191
  41. package/files/.github/skills/core/page-codegen/templates/universal/TPL-MASTER-DETAIL.md +148 -148
  42. package/files/.github/skills/core/page-codegen/templates/universal/TPL-RECORD-FORM.md +376 -376
  43. package/files/.github/skills/core/page-codegen/templates/universal/TPL-TREE-LIST.md +186 -186
  44. package/files/.github/skills/core/prototype-scan/SKILL.md +498 -498
  45. package/files/.github/skills/core/prototype-scan/USAGE.md +95 -95
  46. package/files/.github/skills/core/template-extract/SKILL.md +139 -139
  47. package/files/.github/skills/core/template-extract/USAGE.md +93 -93
  48. package/files/.github/skills/domain/README.md +51 -51
  49. package/files/.github/skills/sync/env.local.json +0 -5
  50. package/files/.github/skills/sync/menu-sync/SKILL.md +263 -263
  51. package/files/.github/skills/sync/menu-sync/USAGE.md +104 -104
  52. package/files/.github/skills/sync/menu-sync/env/env.local.json +7 -7
  53. package/files/.github/skills/sync/menu-sync/env/guide.md +99 -99
  54. package/files/.github/skills/sync/permission-sync/SKILL.md +239 -0
  55. package/files/.github/skills/sync/permission-sync/USAGE.md +93 -0
  56. package/files/.github/standards/01-toolchain.md +57 -57
  57. package/files/.github/standards/02-code-structure.md +111 -111
  58. package/files/.github/standards/03-comments.md +53 -53
  59. package/files/.github/standards/04-coding-basics.md +33 -33
  60. package/files/.github/standards/05-logging.md +38 -38
  61. package/files/.github/standards/06-security.md +44 -44
  62. package/files/.github/standards/07-config.md +52 -52
  63. package/files/.github/standards/08-git.md +60 -60
  64. package/files/.github/standards/09-typescript.md +71 -71
  65. package/files/.github/standards/10-pinia.md +57 -57
  66. package/files/.github/standards/11-form-validation.md +81 -81
  67. package/files/.github/standards/12-base-table.md +153 -153
  68. package/files/.github/standards/13-platform-components.md +123 -123
  69. package/files/.github/standards/index.md +89 -89
  70. package/files/.kiro/settings/mcp.json +8 -8
  71. package/files/.mcp.json +8 -8
  72. package/files/.vscode/mcp.json +9 -9
  73. package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/data.ts +196 -196
  74. package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/index.scss +150 -150
  75. package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/index.vue +79 -79
  76. package/files/docs/jh-date-range.md +257 -257
  77. package/files/docs/jh-date.md +222 -222
  78. package/files/docs/jh-dept-picker.md +190 -190
  79. package/files/docs/jh-drag-row.md +590 -590
  80. package/files/docs/jh-file-upload.md +216 -216
  81. package/files/docs/jh-picker.md +218 -218
  82. package/files/docs/jh-select.md +148 -148
  83. package/files/docs/jh-text.md +248 -248
  84. package/files/docs/jh-user-picker.md +197 -197
  85. package/files/src/components/global/C_RightToolbar/data.ts +228 -228
  86. package/files/src/components/global/C_RightToolbar/index.scss +44 -44
  87. package/files/src/components/global/C_Splitter/index.scss +61 -61
  88. package/files/src/components/global/C_SvgIcon/index.scss +15 -15
  89. package/files/src/components/global/C_TagStatus/index.scss +20 -20
  90. package/files/src/components/global/C_Tree/data.ts +61 -61
  91. package/files/src/components/local/c_listModal/index.scss +4 -4
  92. package/mcp/api/roleApi.js +60 -0
  93. package/mcp/server.js +125 -5
  94. package/mcp/tools/permissionSync.js +321 -0
  95. package/package.json +1 -1
  96. package/files/.github/skills/sync/permission-sync/SKILL.draft.md +0 -91
@@ -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` | 配置驱动页面(项目已有 Template 组件,data.ts 只需 config 对象,index.vue 3~5 行) |
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` | 配置驱动页面(项目已有 Template 组件,data.ts 只需 config 对象,index.vue 3~5 行) |
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 标杆页面与最新规范的一致性