@agile-team/wl-skills-kit 2.10.1 → 2.11.1

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 (196) hide show
  1. package/CHANGELOG.md +51 -8
  2. package/README.md +47 -29
  3. package/bin/wl-skills.js +156 -53
  4. package/docs/agent-pipeline-runbook.md +3 -3
  5. package/docs//345/205/250/347/233/230/345/210/206/346/236/220/344/270/216/346/231/272/350/203/275/344/275/223/346/220/255/345/273/272/346/214/207/345/215/227.md +4 -4
  6. package/files/.github/copilot-instructions.md +23 -465
  7. package/files/.wl-skills/copilot-instructions-full.md +233 -0
  8. package/files/{docs → .wl-skills/docs}/jh-pagination.md +2 -2
  9. package/files/{docs → .wl-skills/docs}/page-query-hook-best-practices.md +3 -3
  10. package/files/.wl-skills/docs/page-spec-schema.md +109 -0
  11. package/files/{.github → .wl-skills}/guides/README.md +1 -1
  12. package/files/{.github → .wl-skills}/guides/architecture.md +5 -5
  13. package/files/{.github → .wl-skills}/guides/mcp-setup.md +1 -1
  14. package/files/{.github → .wl-skills}/guides/usage.md +8 -8
  15. package/files/{.github → .wl-skills}/reports/SYS_MENU_INFO.md +1 -1
  16. package/files/{.github → .wl-skills}/reports/SYS_PERMISSION_INFO.md +1 -1
  17. package/files/{.github → .wl-skills}/reports//347/273/204/344/273/266/346/217/220/345/217/226/345/273/272/350/256/256.md +1 -1
  18. package/files/{.github → .wl-skills}/skills/_best-practices.md +5 -5
  19. package/files/{.github → .wl-skills}/skills/_compat/README.md +1 -1
  20. package/files/{.github → .wl-skills}/skills/_compat/editors.json +1 -1
  21. package/files/{.github → .wl-skills}/skills/_pipeline.md +9 -9
  22. package/files/{.github → .wl-skills}/skills/_registry.md +3 -3
  23. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/SKILL.md +27 -27
  24. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/USAGE.md +22 -22
  25. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/business-index.md +1 -1
  26. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/business-open-questions.md +1 -1
  27. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-dictionary.md +1 -1
  28. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-field.md +1 -1
  29. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-index.md +2 -2
  30. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-requirement.md +2 -2
  31. package/files/{.github → .wl-skills}/skills/core/convention-audit/SKILL.md +6 -6
  32. package/files/{.github → .wl-skills}/skills/core/convention-audit/USAGE.md +1 -1
  33. package/files/{.github → .wl-skills}/skills/core/page-codegen/SKILL.md +20 -14
  34. package/files/{.github → .wl-skills}/skills/core/page-codegen/USAGE.md +1 -1
  35. package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-DETAIL-TABS.md +7 -7
  36. package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-DRIVEN.md +5 -5
  37. package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-FORM-ROUTE.md +2 -2
  38. package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-RECORD-FORM.md +1 -1
  39. package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-TREE-LIST.md +1 -1
  40. package/files/{.github → .wl-skills}/skills/core/prototype-scan/SKILL.md +11 -11
  41. package/files/{.github → .wl-skills}/skills/core/prototype-scan/USAGE.md +3 -3
  42. package/files/{.github → .wl-skills}/skills/core/spec-doc-parse/SKILL.md +9 -9
  43. package/files/{.github → .wl-skills}/skills/core/spec-doc-parse/USAGE.md +6 -6
  44. package/files/{.github → .wl-skills}/skills/core/template-extract/SKILL.md +1 -1
  45. package/files/{.github → .wl-skills}/skills/core/template-extract/USAGE.md +1 -1
  46. package/files/{.github → .wl-skills}/skills/sync/_mcp-guardrail.md +3 -3
  47. package/files/{.github → .wl-skills}/skills/sync/dict-sync/SKILL.md +5 -5
  48. package/files/{.github → .wl-skills}/skills/sync/dict-sync/USAGE.md +2 -2
  49. package/files/{.github → .wl-skills}/skills/sync/menu-sync/SKILL.md +6 -6
  50. package/files/{.github → .wl-skills}/skills/sync/menu-sync/USAGE.md +3 -3
  51. package/files/{.github → .wl-skills}/skills/sync/menu-sync/env/guide.md +2 -2
  52. package/files/{.github → .wl-skills}/skills/sync/permission-sync/SKILL.md +3 -3
  53. package/files/{.github → .wl-skills}/skills/sync/permission-sync/USAGE.md +1 -1
  54. package/files/{src → .wl-skills/src}/components/local/c_formModal/README.md +1 -1
  55. package/files/{src → .wl-skills/src}/components/local/c_formSections/README.md +2 -2
  56. package/files/{src → .wl-skills/src}/components/remote/BaseForm/README.md +2 -2
  57. package/files/{src → .wl-skills/src}/components/remote/BaseQuery/README.md +4 -4
  58. package/files/{src → .wl-skills/src}/components/remote/BaseTable/README.md +2 -2
  59. package/files/{src → .wl-skills/src}/components/remote/BaseToolbar/README.md +1 -1
  60. package/files/{.github → .wl-skills}/standards/02-code-structure.md +1 -1
  61. package/files/{.github → .wl-skills}/standards/08-git.md +1 -1
  62. package/files/{.github → .wl-skills}/standards/11-form-validation.md +1 -1
  63. package/files/{.github → .wl-skills}/standards/13-platform-components.md +15 -15
  64. package/files/{.github → .wl-skills}/standards/14-layout-containers.md +9 -9
  65. package/files/{demo → .wl-skills/templates}/README.md +3 -3
  66. package/lib/page-spec.js +588 -0
  67. package/lib/safe-fix.js +115 -0
  68. package/lib/vite-plugin-wl-skills.js +97 -0
  69. package/mcp/config.js +3 -3
  70. package/mcp/tools/projectTools.js +10 -0
  71. package/package.json +16 -11
  72. package/files/src/components/global/C_Splitter/index.scss +0 -61
  73. package/files/src/components/global/C_Splitter/index.vue +0 -149
  74. /package/files/{docs → .wl-skills/docs}/jh-date-range.md +0 -0
  75. /package/files/{docs → .wl-skills/docs}/jh-date.md +0 -0
  76. /package/files/{docs → .wl-skills/docs}/jh-dept-picker.md +0 -0
  77. /package/files/{docs → .wl-skills/docs}/jh-drag-row.md +0 -0
  78. /package/files/{docs → .wl-skills/docs}/jh-file-upload.md +0 -0
  79. /package/files/{docs → .wl-skills/docs}/jh-picker.md +0 -0
  80. /package/files/{docs → .wl-skills/docs}/jh-select.md +0 -0
  81. /package/files/{docs → .wl-skills/docs}/jh-text.md +0 -0
  82. /package/files/{docs → .wl-skills/docs}/jh-textarea.md +0 -0
  83. /package/files/{docs → .wl-skills/docs}/jh-user-picker.md +0 -0
  84. /package/files/{docs → .wl-skills/docs}/mock-architecture.md +0 -0
  85. /package/files/{docs → .wl-skills/docs}/request.md +0 -0
  86. /package/files/{.github → .wl-skills}/reports/README.md +0 -0
  87. /package/files/{.github → .wl-skills}/reports/SYS_DICT_INFO.md +0 -0
  88. /package/files/{.github → .wl-skills}/reports//350/247/204/350/214/203/345/256/241/346/237/245/346/212/245/345/221/212.md" +0 -0
  89. /package/files/{.github → .wl-skills}/skills/_compat/headers/agents.txt +0 -0
  90. /package/files/{.github → .wl-skills}/skills/_compat/headers/claude-code.txt +0 -0
  91. /package/files/{.github → .wl-skills}/skills/_compat/headers/cline.txt +0 -0
  92. /package/files/{.github → .wl-skills}/skills/_compat/headers/cursor-mdc.txt +0 -0
  93. /package/files/{.github → .wl-skills}/skills/_compat/headers/cursor-rules.txt +0 -0
  94. /package/files/{.github → .wl-skills}/skills/_compat/headers/github-copilot.txt +0 -0
  95. /package/files/{.github → .wl-skills}/skills/_compat/headers/kiro.txt +0 -0
  96. /package/files/{.github → .wl-skills}/skills/_compat/headers/qoder.txt +0 -0
  97. /package/files/{.github → .wl-skills}/skills/_compat/headers/trae.txt +0 -0
  98. /package/files/{.github → .wl-skills}/skills/_compat/headers/windsurf.txt +0 -0
  99. /package/files/{.github → .wl-skills}/skills/core/api-contract/SKILL.md +0 -0
  100. /package/files/{.github → .wl-skills}/skills/core/api-contract/USAGE.md +0 -0
  101. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/_index.md +0 -0
  102. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/domains/_CONTRIBUTING.md +0 -0
  103. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/domains/produce/TPL-OPERATION-STATION.md +0 -0
  104. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/domains/sale/README.md +0 -0
  105. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-CHANGE-HISTORY.md +0 -0
  106. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-LIST.md +0 -0
  107. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-MASTER-DETAIL.md +0 -0
  108. /package/files/{.github → .wl-skills}/skills/domain/README.md +0 -0
  109. /package/files/{.github → .wl-skills}/skills/ops/code-fix/SKILL.md +0 -0
  110. /package/files/{.github → .wl-skills}/skills/ops/code-fix/USAGE.md +0 -0
  111. /package/files/{.github → .wl-skills}/skills/sync/env.local.json +0 -0
  112. /package/files/{.github → .wl-skills}/skills/sync/menu-sync/env/env.local.json +0 -0
  113. /package/files/{src → .wl-skills/src}/components/global/C_ParentView/index.vue +0 -0
  114. /package/files/{src → .wl-skills/src}/components/global/C_RightToolbar/data.ts +0 -0
  115. /package/files/{src → .wl-skills/src}/components/global/C_RightToolbar/index.scss +0 -0
  116. /package/files/{src → .wl-skills/src}/components/global/C_RightToolbar/index.vue +0 -0
  117. /package/files/{src → .wl-skills/src}/components/global/C_SvgIcon/index.scss +0 -0
  118. /package/files/{src → .wl-skills/src}/components/global/C_SvgIcon/index.vue +0 -0
  119. /package/files/{src → .wl-skills/src}/components/global/C_SvgIcon/svgicon.js +0 -0
  120. /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/README.md +0 -0
  121. /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/config.ts +0 -0
  122. /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/index.scss +0 -0
  123. /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/index.vue +0 -0
  124. /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/types.ts +0 -0
  125. /package/files/{src → .wl-skills/src}/components/global/C_Tree/README.md +0 -0
  126. /package/files/{src → .wl-skills/src}/components/global/C_Tree/data.ts +0 -0
  127. /package/files/{src → .wl-skills/src}/components/global/C_Tree/index.scss +0 -0
  128. /package/files/{src → .wl-skills/src}/components/global/C_Tree/index.vue +0 -0
  129. /package/files/{src → .wl-skills/src}/components/global/C_Tree/types.ts +0 -0
  130. /package/files/{src → .wl-skills/src}/components/local/c_formModal/data.ts +0 -0
  131. /package/files/{src → .wl-skills/src}/components/local/c_formModal/index.scss +0 -0
  132. /package/files/{src → .wl-skills/src}/components/local/c_formModal/index.vue +0 -0
  133. /package/files/{src → .wl-skills/src}/components/local/c_formSections/data.ts +0 -0
  134. /package/files/{src → .wl-skills/src}/components/local/c_formSections/index.scss +0 -0
  135. /package/files/{src → .wl-skills/src}/components/local/c_formSections/index.vue +0 -0
  136. /package/files/{src → .wl-skills/src}/components/local/c_listModal/data.ts +0 -0
  137. /package/files/{src → .wl-skills/src}/components/local/c_listModal/index.scss +0 -0
  138. /package/files/{src → .wl-skills/src}/components/local/c_listModal/index.vue +0 -0
  139. /package/files/{src → .wl-skills/src}/components/local/c_spliterTitle/index.scss +0 -0
  140. /package/files/{src → .wl-skills/src}/components/local/c_spliterTitle/index.vue +0 -0
  141. /package/files/{src → .wl-skills/src}/components/remote/AGGrid/README.md +0 -0
  142. /package/files/{src → .wl-skills/src}/types/page.ts +0 -0
  143. /package/files/{.github → .wl-skills}/standards/01-toolchain.md +0 -0
  144. /package/files/{.github → .wl-skills}/standards/03-comments.md +0 -0
  145. /package/files/{.github → .wl-skills}/standards/04-coding-basics.md +0 -0
  146. /package/files/{.github → .wl-skills}/standards/05-logging.md +0 -0
  147. /package/files/{.github → .wl-skills}/standards/06-security.md +0 -0
  148. /package/files/{.github → .wl-skills}/standards/07-config.md +0 -0
  149. /package/files/{.github → .wl-skills}/standards/09-typescript.md +0 -0
  150. /package/files/{.github → .wl-skills}/standards/10-pinia.md +0 -0
  151. /package/files/{.github → .wl-skills}/standards/12-base-table.md +0 -0
  152. /package/files/{.github → .wl-skills}/standards/index.md +0 -0
  153. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/api.md +0 -0
  154. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/data.ts +0 -0
  155. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/index.scss +0 -0
  156. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/index.vue +0 -0
  157. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/data.ts +0 -0
  158. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/index.scss +0 -0
  159. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/index.vue +0 -0
  160. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/data.ts +0 -0
  161. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/index.scss +0 -0
  162. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/index.vue +0 -0
  163. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-form/data.ts +0 -0
  164. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-form/index.scss +0 -0
  165. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-form/index.vue +0 -0
  166. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-history/data.ts +0 -0
  167. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-history/index.scss +0 -0
  168. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-history/index.vue +0 -0
  169. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/api.md +0 -0
  170. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/data.ts +0 -0
  171. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/index.scss +0 -0
  172. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/index.vue +0 -0
  173. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/api.md +0 -0
  174. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/data.ts +0 -0
  175. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/index.scss +0 -0
  176. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/index.vue +0 -0
  177. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/api.md +0 -0
  178. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/data.ts +0 -0
  179. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/index.scss +0 -0
  180. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/index.vue +0 -0
  181. /package/files/{demo → .wl-skills/templates}/sale/demo/add-demo/data.ts +0 -0
  182. /package/files/{demo → .wl-skills/templates}/sale/demo/add-demo/index.scss +0 -0
  183. /package/files/{demo → .wl-skills/templates}/sale/demo/add-demo/index.vue +0 -0
  184. /package/files/{demo → .wl-skills/templates}/sale/demo/billet-flame-cut-plan/data.ts +0 -0
  185. /package/files/{demo → .wl-skills/templates}/sale/demo/billet-flame-cut-plan/index.scss +0 -0
  186. /package/files/{demo → .wl-skills/templates}/sale/demo/billet-flame-cut-plan/index.vue +0 -0
  187. /package/files/{demo → .wl-skills/templates}/sale/demo/domestic-trade-order/data.ts +0 -0
  188. /package/files/{demo → .wl-skills/templates}/sale/demo/domestic-trade-order/index.scss +0 -0
  189. /package/files/{demo → .wl-skills/templates}/sale/demo/domestic-trade-order/index.vue +0 -0
  190. /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/data.ts +0 -0
  191. /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/index.scss +0 -0
  192. /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/index.vue +0 -0
  193. /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/meltDialog.vue +0 -0
  194. /package/files/{demo → .wl-skills/templates}/sale/demo/metallurgical-spec/data.ts +0 -0
  195. /package/files/{demo → .wl-skills/templates}/sale/demo/metallurgical-spec/index.scss +0 -0
  196. /package/files/{demo → .wl-skills/templates}/sale/demo/metallurgical-spec/index.vue +0 -0
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: business-doc-extract
3
- description: "Use when: 用户提供原型目录(如已发布的 Axure HTML 文件夹)、详设/需求文档、字段或字典资料、已有页面目录等业务资料,并希望沉淀业务理解、对齐产品/后端、维护字段字典或维护待确认事项。Skill 不依赖固定关键词,依据资料源 + 用户意图 + 范围完整度智能判断;碎片化问答、单截图、小修小改默认不触发。Triggers on (语义级,仅作示例): 业务梳理 / 业务文档 / docs/business / 模块大纲 / 字段字典整理 / 待确认事项 / 产品确认 / 业务全景 / 原型转业务文档 / 详设转业务文档 / 业务闭环。"
3
+ description: "Use when: 用户提供原型目录(如已发布的 Axure HTML 文件夹)、详设/需求文档、字段或字典资料、已有页面目录等业务资料,并希望沉淀业务理解、对齐产品/后端、维护字段字典或维护待确认事项。Skill 不依赖固定关键词,依据资料源 + 用户意图 + 范围完整度智能判断;碎片化问答、单截图、小修小改默认不触发。Triggers on (语义级,仅作示例): 业务梳理 / 业务文档 / .wl-skills/docs/business / 模块大纲 / 字段字典整理 / 待确认事项 / 产品确认 / 业务全景 / 原型转业务文档 / 详设转业务文档 / 业务闭环。"
4
4
  ---
5
5
 
6
6
  # Skill: 业务文档抽取(business-doc-extract)
7
7
 
8
- 把 **原型 / 详设 / 字段字典 / 现有代码 / api.md / mock** 等业务资料沉淀为 **`docs/business`** 下的业务理解文档,作为 `api-contract` 和 `page-codegen` 的高质量输入,同时支撑产品/后端/前端的业务确认闭环。
8
+ 把 **原型 / 详设 / 字段字典 / 现有代码 / api.md / mock** 等业务资料沉淀为 **`.wl-skills/docs/business`** 下的业务理解文档,作为 `api-contract` 和 `page-codegen` 的高质量输入,同时支撑产品/后端/前端的业务确认闭环。
9
9
 
10
10
  > **核心理念**:固化但不僵化。本 Skill 不依赖死关键词;只在用户给出可识别的业务资料源、且范围达到模块/项目级时才会建议生成;碎片化任务默认不污染业务文档。
11
11
 
@@ -27,18 +27,18 @@ description: "Use when: 用户提供原型目录(如已发布的 Axure HTML
27
27
  - 在生成代码前先和产品/后端确认
28
28
  3. **范围识别**:资料覆盖范围是否达到模块级或项目级。
29
29
 
30
- 满足“资料源 + 意图 + 范围”三者,才进入本 Skill 的生成态。否则只输出对话级的业务理解片段,**不写入 `docs/business`**。
30
+ 满足“资料源 + 意图 + 范围”三者,才进入本 Skill 的生成态。否则只输出对话级的业务理解片段,**不写入 `.wl-skills/docs/business`**。
31
31
 
32
32
  ---
33
33
 
34
34
  ## 2. 决策矩阵
35
35
 
36
- | 场景 | 默认行为 | 是否写入 `docs/business` |
36
+ | 场景 | 默认行为 | 是否写入 `.wl-skills/docs/business` |
37
37
  |---|---|---|
38
38
  | 用户明确说“生成业务文档 / 梳理业务 / 沉淀模块” | 进入生成态,给出计划,确认后写入 | 是(需确认) |
39
39
  | 提供完整原型目录、完整详设、模块级页面集 | 建议生成 + 给出计划 | 否,先建议;用户确认后再写 |
40
40
  | 提供字段表 / 字典表,目标是更新字段字典 | 进入增量更新态 | 是(仅更新对应模块的 `field.md` / `dictionary.md`,其他不动) |
41
- | 已有 `docs/business`,用户提交新增需求 | 进入增量维护态 | 是(仅追加/更新涉及模块) |
41
+ | 已有 `.wl-skills/docs/business`,用户提交新增需求 | 进入增量维护态 | 是(仅追加/更新涉及模块) |
42
42
  | 单页面口述需求 / 单截图 | 不触发本 Skill | 否(仅输出页面理解、`api.md` 草案、必要时 preview) |
43
43
  | 小修小改、报错调试、样式调整 | 不触发本 Skill | 否 |
44
44
  | 用户要求 “先 mock 能跑” | 不阻塞 page-codegen | 否(保持轻量路径) |
@@ -52,7 +52,7 @@ description: "Use when: 用户提供原型目录(如已发布的 Axure HTML
52
52
  ### 3.1 模块级(推荐,最常用)
53
53
 
54
54
  ```text
55
- docs/business/
55
+ .wl-skills/docs/business/
56
56
  ├── index.md # 业务全景 + 模块索引 + 实现状态
57
57
  ├── open-questions.md # 全局待确认问题汇总
58
58
  └── 0X-<module-kebab>/
@@ -68,8 +68,8 @@ docs/business/
68
68
 
69
69
  | 文件 | 职责 | 不放什么 |
70
70
  |---|---|---|
71
- | `docs/business/index.md` | 项目业务定位、一级模块总览、产品目录 ↔ 代码目录映射、整体实现状态、链接 | 详细需求、字段、字典 |
72
- | `docs/business/open-questions.md` | 跨模块待确认问题汇总表 | 模块内详细规则 |
71
+ | `.wl-skills/docs/business/index.md` | 项目业务定位、一级模块总览、产品目录 ↔ 代码目录映射、整体实现状态、链接 | 详细需求、字段、字典 |
72
+ | `.wl-skills/docs/business/open-questions.md` | 跨模块待确认问题汇总表 | 模块内详细规则 |
73
73
  | `0X-xx/index.md` | 模块定位、子功能清单、页面与 `api.md` 链接、模块链路摘要 | 详细需求与字段 |
74
74
  | `0X-xx/requirement.md` | 需求来源、业务目标、角色、功能范围、流程图、页面清单、业务规则、异常规则、**模块待确认** | 字典/字段大表 |
75
75
  | `0X-xx/dictionary.md` | 模块涉及字典 / 枚举 / 状态 | 与字典无关的字段 |
@@ -89,7 +89,7 @@ docs/business/
89
89
  |---|---|---|
90
90
  | `preview` | 仅在对话中输出业务理解、待确认点、推荐结构 | 否 |
91
91
  | `module` | 生成或增量更新单个 `0X-xx/` 模块文档 | 是(需用户确认) |
92
- | `project` | 生成或刷新 `docs/business/index.md` + `open-questions.md` 全局总览 | 是(需用户确认) |
92
+ | `project` | 生成或刷新 `.wl-skills/docs/business/index.md` + `open-questions.md` 全局总览 | 是(需用户确认) |
93
93
  | `incremental` | 基于字段表 / 字典表 / 新需求局部增量更新已有模块文档 | 是(需用户确认) |
94
94
 
95
95
  > Skill 不要求显式传入模式;AI 应根据资料源和意图自动判断,并在 Pre-flight 中说明。
@@ -104,7 +104,7 @@ docs/business/
104
104
  ✅ 已判断范围:{preview / module / project / incremental}
105
105
  ✅ 已读取 standards/index.md → 任务类型 D(参考结构与组件合规)
106
106
  ✅ 已读取 _pipeline.md → 与 prototype-scan / api-contract / page-codegen 的衔接关系
107
- ✅ 计划落盘:{是/否},目标路径:{docs/business/...}
107
+ ✅ 计划落盘:{是/否},目标路径:{.wl-skills/docs/business/...}
108
108
  ⚠ 涉及写文件:是/否;需要用户确认:是/否
109
109
  ```
110
110
 
@@ -134,25 +134,25 @@ docs/business/
134
134
  - `requirement.md`
135
135
  - `dictionary.md`
136
136
  - `field.md`
137
- 4. 更新 `docs/business/index.md`:补充模块行、状态、链接。
138
- 5. 更新 `docs/business/open-questions.md`:把模块 `requirement.md` 底部的待确认事项汇总到全局表,标注来源文件。
137
+ 4. 更新 `.wl-skills/docs/business/index.md`:补充模块行、状态、链接。
138
+ 5. 更新 `.wl-skills/docs/business/open-questions.md`:把模块 `requirement.md` 底部的待确认事项汇总到全局表,标注来源文件。
139
139
  6. 输出完成摘要 + `next_suggest`。
140
140
 
141
141
  ### 6.2 增量更新
142
142
 
143
- 1. 检测 `docs/business` 已存在哪些模块。
143
+ 1. 检测 `.wl-skills/docs/business` 已存在哪些模块。
144
144
  2. 对应模块若已存在 `dictionary.md` / `field.md`:
145
145
  - 仅追加新增项,并标注 `新增` 或 `更新`。
146
146
  - 已废弃项标 `已废弃`,不直接删除。
147
147
  3. 对应模块若不存在:
148
148
  - 询问归属,确认后再创建模块目录。
149
- 4. 同步刷新 `docs/business/index.md` 与 `open-questions.md`。
149
+ 4. 同步刷新 `.wl-skills/docs/business/index.md` 与 `open-questions.md`。
150
150
 
151
151
  ### 6.3 项目级刷新
152
152
 
153
- 1. 重新扫描 `docs/business/0X-*`,重建:
154
- - `docs/business/index.md` 模块表
155
- - `docs/business/open-questions.md` 汇总表
153
+ 1. 重新扫描 `.wl-skills/docs/business/0X-*`,重建:
154
+ - `.wl-skills/docs/business/index.md` 模块表
155
+ - `.wl-skills/docs/business/open-questions.md` 汇总表
156
156
  2. 不删除模块文件本身。
157
157
  3. 给出本次新增 / 状态变更 / 已废弃模块清单。
158
158
 
@@ -164,8 +164,8 @@ docs/business/
164
164
 
165
165
  | 模板 | 路径 | 适用 |
166
166
  |---|---|---|
167
- | 项目业务全景 | `templates/business-index.md` | `docs/business/index.md` |
168
- | 全局待确认 | `templates/business-open-questions.md` | `docs/business/open-questions.md` |
167
+ | 项目业务全景 | `templates/business-index.md` | `.wl-skills/docs/business/index.md` |
168
+ | 全局待确认 | `templates/business-open-questions.md` | `.wl-skills/docs/business/open-questions.md` |
169
169
  | 模块全景 | `templates/module-index.md` | `0X-xx/index.md` |
170
170
  | 模块需求理解 | `templates/module-requirement.md` | `0X-xx/requirement.md` |
171
171
  | 模块字典 | `templates/module-dictionary.md` | `0X-xx/dictionary.md` |
@@ -199,12 +199,12 @@ docs/business/
199
199
  - 模式:preview / module / project / incremental
200
200
  - 资料源:{文件或目录列表}
201
201
  - 输出:
202
- - docs/business/index.md(更新行:N)
203
- - docs/business/open-questions.md(新增问题:N)
204
- - docs/business/0X-xx/index.md
205
- - docs/business/0X-xx/requirement.md
206
- - docs/business/0X-xx/dictionary.md
207
- - docs/business/0X-xx/field.md
202
+ - .wl-skills/docs/business/index.md(更新行:N)
203
+ - .wl-skills/docs/business/open-questions.md(新增问题:N)
204
+ - .wl-skills/docs/business/0X-xx/index.md
205
+ - .wl-skills/docs/business/0X-xx/requirement.md
206
+ - .wl-skills/docs/business/0X-xx/dictionary.md
207
+ - .wl-skills/docs/business/0X-xx/field.md
208
208
  - 风险:{产品需确认 N 项 / 后端需确认 N 项}
209
209
 
210
210
  ## 建议下一步
@@ -218,10 +218,10 @@ docs/business/
218
218
  ## 10. 边界与约束
219
219
 
220
220
  - **不替代页面级 `api.md`**:详细接口契约仍写在页面目录的 `api.md`,模块 `index.md` 只放链接。
221
- - **不写非业务文档**:本 Skill 不维护 `README.md`、`docs/agent-pipeline-runbook.md`、`docs/mcp-tool-risk-matrix.md`、`docs/全盘分析与智能体搭建指南.md`。
221
+ - **不写非业务文档**:本 Skill 不维护 `README.md`、`.wl-skills/docs/agent-pipeline-runbook.md`、`.wl-skills/docs/mcp-tool-risk-matrix.md`、`.wl-skills/docs/全盘分析与智能体搭建指南.md`。
222
222
  - **不自动确认产品 / 后端问题**:所有 “待确认事项” 必须保留并汇总到 `open-questions.md`。
223
223
  - **不删除既有事实条目**:仅做追加 / 标注 `已废弃`。
224
- - **不污染碎片场景**:单截图、小修小改、口述简单页面默认不写 `docs/business`。
224
+ - **不污染碎片场景**:单截图、小修小改、口述简单页面默认不写 `.wl-skills/docs/business`。
225
225
  - **不引入新关键词列表**:触发完全依赖资料源 + 意图 + 范围;不要在外部文件维护“关键词清单 → 触发”表。
226
226
 
227
227
  ---
@@ -10,7 +10,7 @@
10
10
  把零散的业务资料(已发布原型、详设、字段表、字典表、现有页面)沉淀为:
11
11
 
12
12
  ```text
13
- docs/business/
13
+ .wl-skills/docs/business/
14
14
  ├── index.md # 项目业务全景 + 模块索引
15
15
  ├── open-questions.md # 全局待确认问题汇总
16
16
  └── 01-xxx/ # 模块文档
@@ -41,7 +41,7 @@ docs/business/
41
41
  2. 资料范围达到模块或项目级(不是单页面/单截图)。
42
42
  3. 你的目标是“梳理业务 / 沉淀文档 / 整理字段字典 / 确认待确认事项”。
43
43
 
44
- > 单页面口述、单截图、改样式、修 bug 等碎片化任务,**默认不会写 `docs/business`**,避免污染。
44
+ > 单页面口述、单截图、改样式、修 bug 等碎片化任务,**默认不会写 `.wl-skills/docs/business`**,避免污染。
45
45
 
46
46
  ---
47
47
 
@@ -50,10 +50,10 @@ docs/business/
50
50
  下面这些自然表达 AI 会自动判断走 business-doc-extract:
51
51
 
52
52
  ```
53
- 帮我梳理 docs/prototypes/客户管理 这个原型,按业务文档结构沉淀。
54
- 基于 docs/spec/主数据需求.md 把模块文档生成出来,再聊页面。
55
- 我把字段实体放在 字段/ 目录,帮我把模块字典和字段同步进 docs/business。
56
- 现有 src/views/mdata 已经写完了,回过头帮我生成 docs/business 业务文档。
53
+ 帮我梳理 .wl-skills/docs/prototypes/客户管理 这个原型,按业务文档结构沉淀。
54
+ 基于 .wl-skills/docs/spec/主数据需求.md 把模块文档生成出来,再聊页面。
55
+ 我把字段实体放在 字段/ 目录,帮我把模块字典和字段同步进 .wl-skills/docs/business。
56
+ 现有 src/views/mdata 已经写完了,回过头帮我生成 .wl-skills/docs/business 业务文档。
57
57
  ```
58
58
 
59
59
  下面这些不会触发:
@@ -72,8 +72,8 @@ docs/business/
72
72
 
73
73
  ```
74
74
  你:
75
- docs/prototypes/客户管理/ 已发布的 Axure 原型在这里,
76
- 请按业务文档最佳实践沉淀,目标是 docs/business/01-customer。
75
+ .wl-skills/docs/prototypes/客户管理/ 已发布的 Axure 原型在这里,
76
+ 请按业务文档最佳实践沉淀,目标是 .wl-skills/docs/business/01-customer。
77
77
 
78
78
  AI:
79
79
  [识别资料源 → 输出 Pre-flight → 给出生成计划 → 等待你确认]
@@ -82,12 +82,12 @@ AI:
82
82
  确认后产物:
83
83
 
84
84
  ```text
85
- docs/business/index.md
86
- docs/business/open-questions.md
87
- docs/business/01-customer/index.md
88
- docs/business/01-customer/requirement.md
89
- docs/business/01-customer/dictionary.md
90
- docs/business/01-customer/field.md
85
+ .wl-skills/docs/business/index.md
86
+ .wl-skills/docs/business/open-questions.md
87
+ .wl-skills/docs/business/01-customer/index.md
88
+ .wl-skills/docs/business/01-customer/requirement.md
89
+ .wl-skills/docs/business/01-customer/dictionary.md
90
+ .wl-skills/docs/business/01-customer/field.md
91
91
  ```
92
92
 
93
93
  ### 4.2 增量补字段或字典
@@ -95,7 +95,7 @@ docs/business/01-customer/field.md
95
95
  ```
96
96
  你:
97
97
  后端补了 6 个字段,资料在 字段/MdmModelAttribute.md,
98
- 帮我合并进 docs/business/01-model/field.md。
98
+ 帮我合并进 .wl-skills/docs/business/01-model/field.md。
99
99
 
100
100
  AI:
101
101
  [读取字段表 → 仅更新 field.md,新增标注“新增”或“更新”]
@@ -108,7 +108,7 @@ AI:
108
108
  ```
109
109
  你:
110
110
  src/views/mdata 已经全部写完了,但没有业务文档,
111
- 帮我反向沉淀 docs/business 模块文档,标出待确认事项。
111
+ 帮我反向沉淀 .wl-skills/docs/business 模块文档,标出待确认事项。
112
112
 
113
113
  AI:
114
114
  [扫描 src/views + api.md + mock + 字段资料]
@@ -133,7 +133,7 @@ src/views/mdata/model/mdata-model-config/api.md
133
133
  | 主数据模型配置 | src/views/mdata/model/mdata-model-config | src/views/mdata/model/mdata-model-config/api.md |
134
134
  ```
135
135
 
136
- 不在 `docs/business` 里重复维护接口字段。
136
+ 不在 `.wl-skills/docs/business` 里重复维护接口字段。
137
137
 
138
138
  ---
139
139
 
@@ -141,8 +141,8 @@ src/views/mdata/model/mdata-model-config/api.md
141
141
 
142
142
  | 文件 | 给谁看 | 何时更新 |
143
143
  |---|---|---|
144
- | `docs/business/index.md` | 产品 / 项目经理 / 新成员 | 模块新增 / 状态变化时 |
145
- | `docs/business/open-questions.md` | 产品 / 后端 / 前端联调会 | 每次发现待确认事项 |
144
+ | `.wl-skills/docs/business/index.md` | 产品 / 项目经理 / 新成员 | 模块新增 / 状态变化时 |
145
+ | `.wl-skills/docs/business/open-questions.md` | 产品 / 后端 / 前端联调会 | 每次发现待确认事项 |
146
146
  | `0X-xx/index.md` | 模块 owner | 模块结构有调整时 |
147
147
  | `0X-xx/requirement.md` | 业务侧 + 实施侧 | 需求确认 / 流程调整 |
148
148
  | `0X-xx/dictionary.md` | 后端字典 + 前端 dict | 字典 code 确认 / 新增 |
@@ -154,7 +154,7 @@ src/views/mdata/model/mdata-model-config/api.md
154
154
 
155
155
  | 现象 | 原因 | 解法 |
156
156
  |---|---|---|
157
- | AI 把单页面口述写进了 `docs/business` | 资料源不足却被强制走 | 检查是否提供了模块级资料;只是做单页时直接走 page-codegen |
157
+ | AI 把单页面口述写进了 `.wl-skills/docs/business` | 资料源不足却被强制走 | 检查是否提供了模块级资料;只是做单页时直接走 page-codegen |
158
158
  | 生成的字段表里有“推断字段”污染真实事实 | 资料缺失 | 让 AI 把推断字段全部标注 `待确认`,不要直接合并到 field.md 主表 |
159
159
  | open-questions 越来越多 | 没有定期与产品对齐 | 周会上集中确认后,把已确认项移除并在 requirement.md 落地业务规则 |
160
160
  | 模块目录命名混乱 | 没有按 `0X-` 顺序前缀 | 强制要求 `01-`、`02-`,与产品一级目录一致 |
@@ -163,8 +163,8 @@ src/views/mdata/model/mdata-model-config/api.md
163
163
 
164
164
  ## 8. FAQ
165
165
 
166
- **Q:小项目也要 `docs/business` 吗?**
167
- A:不强求。小项目可以把业务全景写在 README,不需要拆成 `docs/business`。本 Skill 不会主动给小项目写。
166
+ **Q:小项目也要 `.wl-skills/docs/business` 吗?**
167
+ A:不强求。小项目可以把业务全景写在 README,不需要拆成 `.wl-skills/docs/business`。本 Skill 不会主动给小项目写。
168
168
 
169
169
  **Q:原型目录必须发布成 HTML 吗?**
170
170
  A:推荐已发布的 Axure HTML,AI 可以读取具体页面。其他形式(pdf / docx / 截图集)也支持,但识别精度下降。
@@ -1,5 +1,5 @@
1
1
  <!--
2
- 模板:docs/business/index.md(项目业务全景)
2
+ 模板:.wl-skills/docs/business/index.md(项目业务全景)
3
3
  使用:business-doc-extract Skill 在 project / module 模式下生成或刷新此文件。
4
4
  约束:表格中的页面数量 / 状态需基于真实资料填充,禁止凭空推断。
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  <!--
2
- 模板:docs/business/open-questions.md(全局待确认事项汇总)
2
+ 模板:.wl-skills/docs/business/open-questions.md(全局待确认事项汇总)
3
3
  使用:business-doc-extract Skill 在每次生成或更新模块 requirement.md 后,把模块底部的待确认事项汇总到本文件。
4
4
  约束:仅做汇总和索引;模块内详细规则不在此处展开。
5
5
  -->
@@ -1,5 +1,5 @@
1
1
  <!--
2
- 模板:docs/business/0X-xxx/dictionary.md(模块字典枚举)
2
+ 模板:.wl-skills/docs/business/0X-xxx/dictionary.md(模块字典枚举)
3
3
  使用:business-doc-extract Skill 在 module / incremental 模式下生成或更新。
4
4
  约束:仅维护本模块涉及的字典 / 枚举 / 状态;跨模块共享的字典需在备注列说明。
5
5
  字典 code 推断未确认时,必须在 `状态` 列标 `待确认`,确认前不写入业务代码。
@@ -1,5 +1,5 @@
1
1
  <!--
2
- 模板:docs/business/0X-xxx/field.md(模块字段清单)
2
+ 模板:.wl-skills/docs/business/0X-xxx/field.md(模块字段清单)
3
3
  使用:business-doc-extract Skill 在 module / incremental 模式下生成或更新。
4
4
  约束:以业务字段为主,配合后端实体、前端 data.ts、api.md 多端对齐。
5
5
  字段类型未确认时必须标 `待确认`,禁止凭推断写入。
@@ -1,5 +1,5 @@
1
1
  <!--
2
- 模板:docs/business/0X-xxx/index.md(模块全景)
2
+ 模板:.wl-skills/docs/business/0X-xxx/index.md(模块全景)
3
3
  使用:business-doc-extract Skill 在 module 模式下生成或刷新。
4
4
  约束:仅放“模块定位 + 子功能清单 + 页面/API 索引 + 模块链路摘要”。
5
5
  详细需求 / 字段 / 字典放在 requirement.md / field.md / dictionary.md。
@@ -8,7 +8,7 @@
8
8
  # {{ModuleName}}
9
9
 
10
10
  > **代码目录**:`src/views/{{module-path}}`
11
- > **文档目录**:`docs/business/0X-{{module-kebab}}/`
11
+ > **文档目录**:`.wl-skills/docs/business/0X-{{module-kebab}}/`
12
12
  > **最近更新**:{{UpdatedAt}}
13
13
 
14
14
  ---
@@ -1,5 +1,5 @@
1
1
  <!--
2
- 模板:docs/business/0X-xxx/requirement.md(模块需求理解)
2
+ 模板:.wl-skills/docs/business/0X-xxx/requirement.md(模块需求理解)
3
3
  使用:business-doc-extract Skill 在 module / incremental 模式下生成或更新。
4
4
  约束:流程图、页面清单、模块待确认事项都放在本文件,不再单独建 flow.md / pages.md / open-questions.md。
5
5
  全局 open-questions.md 由 Skill 汇总,不在本文件维护汇总表。
@@ -86,7 +86,7 @@ flowchart TD
86
86
 
87
87
  ## 9. 模块待确认事项
88
88
 
89
- > 仅维护本模块的待确认事项;全局视图见 `docs/business/open-questions.md`。
89
+ > 仅维护本模块的待确认事项;全局视图见 `.wl-skills/docs/business/open-questions.md`。
90
90
 
91
91
  | 编号 | 问题 | 影响 | 建议确认人 | 优先级 | 状态 |
92
92
  |---|---|---|---|---|---|
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: convention-audit
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."
3
+ description: "Use when: auditing project source code against the 14 modular standards in .wl-skills/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/` 14 条规范为唯一基线,扫描项目源码,输出**偏差报告**和**组件提取建议**到 `reports/` 目录。
8
+ 以 `.wl-skills/standards/` 14 条规范为唯一基线,扫描项目源码,输出**偏差报告**和**组件提取建议**到 `reports/` 目录。
9
9
 
10
10
  > **核心理念**:审查全覆盖、结果强量化、规则场景化、新增严格 + 存量渐进。
11
11
  > 本 Skill 只负责发现偏差并给出整改建议,**不自动修复**(修复由 code-fix Skill 完成)。
@@ -128,8 +128,8 @@ description: "Use when: auditing project source code against the 14 modular stan
128
128
  | 目录 | 规则强度 | 说明 |
129
129
  |---|---|---|
130
130
  | `src/views/**` | 最严格 | 业务页面,全规范覆盖 |
131
- | `src/components/local/**` | 中等 | 业务封装组件,检查复用性和命名 |
132
- | `src/components/**`(基础/历史) | 宽松 | 不套页面三文件原则;内部使用 el-* 需单独评审 |
131
+ | `.wl-skills/src/components/local/**` | 中等 | 业务封装组件,检查复用性和命名 |
132
+ | `.wl-skills/src/components/**`(基础/历史) | 宽松 | 不套页面三文件原则;内部使用 el-* 需单独评审 |
133
133
 
134
134
  ---
135
135
 
@@ -434,7 +434,7 @@ description: "Use when: auditing project source code against the 14 modular stan
434
434
  ### 触发
435
435
 
436
436
  ```
437
- 审计 {页面目录} --mode spec-align --spec docs/spec/{项目代号}/4.x-{子模块}.md
437
+ 审计 {页面目录} --mode spec-align --spec .wl-skills/docs/spec/{项目代号}/4.x-{子模块}.md
438
438
  ```
439
439
  或自然语言:「检查 {页面} 是否跟说明书对齐」。
440
440
 
@@ -454,7 +454,7 @@ description: "Use when: auditing project source code against the 14 modular stan
454
454
  ```markdown
455
455
  # Spec 对齐 GAP 报告
456
456
  - 生成时间:{YYYY-MM-DD HH:mm}
457
- - spec 来源:docs/spec/{项目代号}/4.x-{子模块}.md
457
+ - spec 来源:.wl-skills/docs/spec/{项目代号}/4.x-{子模块}.md
458
458
  - 代码范围:src/views/.../{页面}/
459
459
 
460
460
  ## GAP 摘要
@@ -96,4 +96,4 @@ A:单个偏差可以让 AI 修,但**不要让它批量自动改**。建议
96
96
  A:AI 报告冗长(含每行修复建议),人读摘要简洁(只看趋势/优先级)。两者读者不同。
97
97
 
98
98
  **Q:自定义规范怎么加?**
99
- A:往 `.github/standards/` 加一份 `*.md`,更新 `standards/index.md`,convention-audit 自动 pickup。
99
+ A:往 `.wl-skills/standards/` 加一份 `*.md`,更新 `standards/index.md`,convention-audit 自动 pickup。
@@ -20,7 +20,7 @@ description: "Use when: generating complete Vue 3 page code (index.vue + data.ts
20
20
  ✅ 已读取 standards/12-base-table.md → AGGrid必用 + cid命名规范
21
21
  ✅ 已读取 standards/13-platform-components.md → 平台组件对照表 + docs前置读取清单
22
22
  ✅ 已读取 standards/14-layout-containers.md → 布局容器(禁用 C_Splitter,必须用 jh-drag-row/jh-drag-col)
23
- ✅ 已读取 docs/{涉及的jh-*文档} → 当前页涉及组件的使用规范
23
+ ✅ 已读取 .wl-skills/docs/{涉及的jh-*文档} → 当前页涉及组件的使用规范
24
24
  ✅ 工具链检测:.prettierrc.js ✓ eslint.config.ts ✓ .husky/ ✓ [全部就绪]
25
25
  ✅ cid 已生成:{value}({首字母缩写说明})
26
26
  ```
@@ -43,10 +43,12 @@ description: "Use when: generating complete Vue 3 page code (index.vue + data.ts
43
43
  ✅ src/views/.../{页面}/data.ts
44
44
  ✅ src/views/.../{页面}/index.scss
45
45
  ✅ src/views/.../{页面}/api.md
46
+ ✅ src/views/.../{页面}/page-spec.json → 约定真值(供 S1~S5 比对)
46
47
  ✅ reports/SYS_MENU_INFO.md → 已追加菜单条目
47
48
  ────────────────────────────────────────────────
48
49
  🔍 强制自检(不可跳过):
49
50
  wl-skills validate src/views/{生成的页面目录}
51
+ → 同时执行 R1~R12(AST 语义)+ S1~S5(page-spec 比对)
50
52
  → 结果:{0 error / N warn} 或列出 error 待修复
51
53
  ────────────────────────────────────────────────
52
54
  📌 后续步骤:
@@ -98,22 +100,25 @@ description: "Use when: generating complete Vue 3 page code (index.vue + data.ts
98
100
 
99
101
  ```
100
102
  src/views/[域]/[模块]/[子模块]/[kebab-case-目录名]/
101
- ├── index.vue ← 页面入口(纯模板 + 解构)
102
- ├── data.ts ← 业务逻辑(AbstractPageQueryHook 类 / 直接导出 ref+函数)
103
- ├── index.scss ← 页面样式
104
- └── api.md ← 接口约定(按 api-contract Skill 模板生成)
103
+ ├── index.vue ← 页面入口(纯模板 + 解构)
104
+ ├── data.ts ← 业务逻辑(AbstractPageQueryHook 类 / 直接导出 ref+函数)
105
+ ├── index.scss ← 页面样式
106
+ ├── api.md ← 接口约定(按 api-contract Skill 模板生成)
107
+ └── page-spec.json ← ★ 原型约定真值(查询/列/按钮/操作列 顺序+颜色),供 validate S1~S5 确定性比对
105
108
  ```
106
109
 
110
+ > **page-spec.json 是"精准实现"的真值锚点**:把 page-spec(查询字段顺序、列顺序、按钮顺序与颜色、操作列)固化到页面目录,`wl-skills validate` 据此比对 data.ts 实际实现,偏差即报(详见 `.wl-skills/docs/page-spec-schema.md`)。**不可省略**——没有它,"按约定实现"无法被验证,只能靠 AI 自觉。
111
+
107
112
  弹窗组件处理策略:
108
113
 
109
- - **通用弹窗**(新增/编辑表单,2+ 页面可复用)→ 提取到 `src/components/local/c_xxxModal/`
114
+ - **通用弹窗**(新增/编辑表单,2+ 页面可复用)→ 提取到 `.wl-skills/src/components/local/c_xxxModal/`
110
115
  - **极个性弹窗**(仅单页面使用,c_modal 无法满足)→ 放在页面 `components/xxxModal.vue`
111
116
 
112
117
  附加输出:
113
118
 
114
119
  - `pages.ts` 注册片段
115
120
  - **`reports/SYS_MENU_INFO.md`** — 集中式菜单配置,**追加写入**(见下方 §SYS_MENU_INFO 生成规则)
116
- - `mock/[业务域]/[模块].ts`(项目根目录 `mock/` 下按域分目录,`vite-plugin-mock` 自动加载,与 api.md 的 URL 和字段完全一致;详见 `docs/mock-architecture.md`)
121
+ - `mock/[业务域]/[模块].ts`(项目根目录 `mock/` 下按域分目录,`vite-plugin-mock` 自动加载,与 api.md 的 URL 和字段完全一致;详见 `.wl-skills/docs/mock-architecture.md`)
117
122
 
118
123
  ---
119
124
 
@@ -150,10 +155,11 @@ src/views/[域]/[模块]/[子模块]/[kebab-case-目录名]/
150
155
  27. **BaseTable 强制 AGGrid**:所有业务主列表/台账/主从表/树表/详情子表的 `BaseTable` 必须显式写 `render-type="agGrid"`,并绑定全局唯一 `cid`。弹窗小表格可豁免,但必须在生成摘要中说明理由。
151
156
  28. **cid 必须可追踪**:每个页面导出 `TABLE_CID = "{pageAbbr}-{base36Timestamp}"`;多表页面使用 `BOTTOM_TABLE_CID` / `ITEM_TABLE_CID`,列级 `cid` 必须使用 `${TABLE_CID}-fieldName` 前缀。
152
157
  29. **skills-ui 只能融合,不可生搬硬套**:不得照搬 `wk-skills-ui/templates/list-page` 中的原生 `el-form/usePageHook/el-pagination` 通用写法;本项目必须保留 `AbstractPageQueryHook + BaseQuery + BaseToolbar + BaseTable + jh-pagination` 平台骨架,只融合 `defineColumns/renderOps/tokens/preset`。
158
+ 30. **必须落盘 page-spec.json**:生成页面时,把 page-spec(`page` 中文名 + `query` + `columns` + `toolbar` + `operations`)按 `.wl-skills/docs/page-spec-schema.md` 写入页面目录的 `page-spec.json`。字段 `name`/`label`/顺序必须与 data.ts 生成内容、与原型严格一致——这是 `validate` 做 S1~S5 比对的真值。生成后自检若出现 S2/S3/S4 error,说明 data.ts 与 spec 不一致,必须修正到 0 error。
153
159
 
154
160
  ### 禁止事项(严格遵守)
155
161
 
156
- 1. **❌ 禁止手写弹窗**:不可在页面 `components/` 下用 `el-dialog` + `el-form` + `el-row/col` 手写弹窗。必须使用 `c_formModal`(`src/components/local/c_formModal/`),通过 `modalConfig` 配置驱动。**例外**:纯只读详情弹窗(`jh-dialog` + `BaseForm :disabled="true"`)可不用 `c_formModal`,如工艺参数查看(参考 mmwr-process-parameters)
162
+ 1. **❌ 禁止手写弹窗**:不可在页面 `components/` 下用 `el-dialog` + `el-form` + `el-row/col` 手写弹窗。必须使用 `c_formModal`(`.wl-skills/src/components/local/c_formModal/`),通过 `modalConfig` 配置驱动。**例外**:纯只读详情弹窗(`jh-dialog` + `BaseForm :disabled="true"`)可不用 `c_formModal`,如工艺参数查看(参考 mmwr-process-parameters)
157
163
  2. **❌ 禁止在弹窗中使用原生 Element Plus 组件**:不可使用 `el-select`、`el-input`、`el-date-picker` 等原生组件,必须使用 `jh-select`、`jh-date`、`jh-user-picker` 等平台组件(通过 `BaseFormItemDesc` 的 `component` 属性配置)
158
164
  3. **❌ 禁止在 BaseToolbar 内使用 slot**:`BaseToolbar` 组件**不支持任何 slot**(源码中无 `<slot>` 标签),放入的内容会被丢弃不渲染。Tab/视角切换等额外 UI 必须放在 BaseToolbar **外部**
159
165
  4. **❌ 禁止用 el-radio-group 做 Tab/视角切换**:所有 Tab 式切换(视角切换、数据过滤 Tab、功能 Tab)**必须使用 `el-tabs`**(参考 `mmwr-steel-stripping-operations`)。不可用 `el-radio-group` + 手动 `handleViewChange` / `handleTabChange`
@@ -166,7 +172,7 @@ src/views/[域]/[模块]/[子模块]/[kebab-case-目录名]/
166
172
  11. **❌ 禁止表单控件宽度不统一**:`jh-select`、`jh-date`、`el-input-number`、`jh-file-upload` 默认宽度可能与 `el-input` 不一致,必须在 scoped style 中用 `:deep()` 统一设为 `width: 100%`(详见 §表单页 UI 细节规范)
167
173
  12. **❌ 禁止表单页无滚动**:独立路由表单页内容超出视口时必须可滚动,`.app-page-container` 须设 `overflow-y: auto`(**不要加 `height: 100%`,全局已有 `height: calc(100vh - 100px)`,叠加会导致双滚动条**)
168
174
  13. **❌ 禁止内联 style 散落**:所有页面/组件样式统一写在 `index.scss` 中(便于复用和移动),不可在 template 中大量使用内联 `style="..."`
169
- 14. **❌ 禁止生成无 mock 的页面**:只写 `API_CONFIG` 但不写 `mock/[业务域]/*.ts` 属于生成失败。mock 文件必须按域分目录、import `_utils` 共享工具(详见 `docs/mock-architecture.md`)。
175
+ 14. **❌ 禁止生成无 mock 的页面**:只写 `API_CONFIG` 但不写 `mock/[业务域]/*.ts` 属于生成失败。mock 文件必须按域分目录、import `_utils` 共享工具(详见 `.wl-skills/docs/mock-architecture.md`)。
170
176
  15. **❌ 禁止生成空 onClick**:`onClick: () => {}` 属于生成失败;未知逻辑也必须用 `ElMessage.info(...)` 明示。
171
177
  16. **❌ 禁止忽略 wk-skills-ui**:项目已安装 `@agile-team/wk-skills-ui` 时,不使用 `defineColumns/renderOps` 属于生成失败。
172
178
  17. **❌ 禁止 BaseTable 非 AGGrid**:业务列表中 `<BaseTable>` 未写 `render-type="agGrid"` 或缺少 `cid/:cid` 属于生成失败。
@@ -174,13 +180,13 @@ src/views/[域]/[模块]/[子模块]/[kebab-case-目录名]/
174
180
 
175
181
  ### c_formModal 使用规范
176
182
 
177
- > 项目已有 `src/components/local/c_formModal/` 通用表单弹窗组件,支持 add/edit/view 三模式。
183
+ > 项目已有 `.wl-skills/src/components/local/c_formModal/` 通用表单弹窗组件,支持 add/edit/view 三模式。
178
184
  > 所有标准 CRUD 弹窗**必须使用此组件**,不可重复编写。
179
185
 
180
186
  **data.ts 中定义 modalConfig:**
181
187
 
182
188
  ```typescript
183
- import type { BaseFormItemDesc } from "@jhlc/common-core/src/components/form/common/type";
189
+ import type { BaseFormItemDesc } from "@jhlc/common-core/.wl-skills/src/components/form/common/type";
184
190
 
185
191
  export const modalConfig = {
186
192
  titlePrefix: "客户", // 标题前缀:新增客户 / 编辑客户 / 查看客户
@@ -915,7 +921,7 @@ import {
915
921
 
916
922
  // ❌ 错误:直接从 common-core 深层路径导入
917
923
  import { AbstractPageQueryHook } from "@jhlc/common-core/src/page-hooks/page-query-hook.ts";
918
- import { BaseQueryItemDesc } from "@jhlc/common-core/src/components/form/base-query/type.ts";
924
+ import { BaseQueryItemDesc } from "@jhlc/common-core/.wl-skills/src/components/form/base-query/type.ts";
919
925
  ```
920
926
 
921
927
  | 导出名 | 说明 |
@@ -927,7 +933,7 @@ import { BaseQueryItemDesc } from "@jhlc/common-core/src/components/form/base-qu
927
933
  | `BusLogicDataType` | 业务逻辑类型枚举(如 dict)|
928
934
 
929
935
  > **例外**:`BaseFormItemDesc`(弹窗表单字段类型)仍直接从 common-core 导入:
930
- > `import type { BaseFormItemDesc } from "@jhlc/common-core/src/components/form/common/type";`
936
+ > `import type { BaseFormItemDesc } from "@jhlc/common-core/.wl-skills/src/components/form/common/type";`
931
937
  > 因为 `src/types/page.ts` 当前未导出该类型。
932
938
 
933
939
  ---
@@ -1003,7 +1009,7 @@ export default list;
1003
1009
  # 系统菜单配置 — [项目名] [业务模块]
1004
1010
 
1005
1011
  > **module 命名**:`[module]`
1006
- > **父级菜单**:来自 `.github/skills/sync/env.local.json` 的 `menu.parentMenuId`
1012
+ > **父级菜单**:来自 `.wl-skills/skills/sync/env.local.json` 的 `menu.parentMenuId`
1007
1013
 
1008
1014
  ## 一级目录(type=M)
1009
1015
 
@@ -66,7 +66,7 @@ src/views/<域>/<模块>/<子模块>/<page-name>/
66
66
  └── mock/*.ts mock-first 场景下生成,端点与 API_CONFIG 对齐
67
67
  ```
68
68
 
69
- 外加生成报告:`.github/reports/PAGE_CODEGEN_<模块>_<YYYYMMDD>.md`
69
+ 外加生成报告:`.wl-skills/reports/PAGE_CODEGEN_<模块>_<YYYYMMDD>.md`
70
70
 
71
71
  ---
72
72
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  > 适用场景:编辑/维护页面,上半区为多 Tab 表单(基本信息/客户信息/其他信息),下半区为子项表格。
6
6
  > **布局核心**:`jh-drag-row :topHeight="..."` 垂直分割上下区域(严禁 `C_Splitter`,详 standards/14-layout-containers.md)。
7
- > **参考标杆**:`src/views/sale/demo/add-demo/`、`src/views/sale/demo/domestic-trade-order-mainten/`
7
+ > **参考标杆**:`src/views/sale/.wl-skills/templates/add-.wl-skills/templates/`、`src/views/sale/.wl-skills/templates/domestic-trade-order-mainten/`
8
8
 
9
9
  #### index.vue
10
10
 
@@ -337,7 +337,7 @@ export async function initPage() {
337
337
 
338
338
  仅在“极个性弹窗”场景生成(c_modal 无法满足时),放在页面 `components/editModal.vue`:
339
339
 
340
- 通用新增/编辑弹窗应优先使用 `src/components/local/c_modal/` 局部公共组件。
340
+ 通用新增/编辑弹窗应优先使用 `.wl-skills/src/components/local/c_modal/` 局部公共组件。
341
341
 
342
342
  ```vue
343
343
  <template>
@@ -526,9 +526,9 @@ onMounted(() => select());
526
526
  | 用户选择 | `component: () => ({ tag: "jh-user-picker" })` |
527
527
  | 部门选择 | `component: () => ({ tag: "jh-dept-picker" })` |
528
528
 
529
- 详细组件 API:`docs/jh-date.md`、`docs/jh-select.md`、`docs/jh-user-picker.md`、`docs/jh-dept-picker.md`
530
- 页面 Hook 最佳实践:`docs/page-query-hook-best-practices.md`
531
- HTTP 方法参考:`docs/request.md`
529
+ 详细组件 API:`.wl-skills/docs/jh-date.md`、`.wl-skills/docs/jh-select.md`、`.wl-skills/docs/jh-user-picker.md`、`.wl-skills/docs/jh-dept-picker.md`
530
+ 页面 Hook 最佳实践:`.wl-skills/docs/page-query-hook-best-practices.md`
531
+ HTTP 方法参考:`.wl-skills/docs/request.md`
532
532
 
533
533
  ---
534
534
 
@@ -743,7 +743,7 @@ function genRecord() {
743
743
  - 「菜单路径」字段(camelCase)才是真正的路由 path 段
744
744
  2. **隐藏菜单 hidden: true**:独立表单/详情页**必须设为隐藏**,避免菜单栏多出无意义入口
745
745
  3. **pages.ts 变更需重启** dev server(fullImportPlugin 只在首次 transform 时读取)
746
- 4. **local 组件必须显式 import**:`src/components/local/` 下的组件不会自动全局注册
746
+ 4. **local 组件必须显式 import**:`.wl-skills/src/components/local/` 下的组件不会自动全局注册
747
747
 
748
748
  ### FORM_ROUTE 格式
749
749
 
@@ -1065,7 +1065,7 @@ spec.features.hiddenMenu === true:
1065
1065
 
1066
1066
  ### 菜单配置
1067
1067
 
1068
- > 菜单配置统一生成到 `.github/reports/SYS_MENU_INFO.md`(集中式),生成规则见 SKILL.md 主文件的「SYS_MENU_INFO 生成规则」章节。
1068
+ > 菜单配置统一生成到 `.wl-skills/reports/SYS_MENU_INFO.md`(集中式),生成规则见 SKILL.md 主文件的「SYS_MENU_INFO 生成规则」章节。
1069
1069
 
1070
1070
  ---
1071
1071
 
@@ -28,7 +28,7 @@ index.scss → 空文件或极少样式(模板组件内部已处理样式)
28
28
  生成 config 对象前,必须先读取该模板的类型定义文件:
29
29
 
30
30
  ```
31
- src/components/template/{XxxTemplate}/types.ts
31
+ .wl-skills/src/components/template/{XxxTemplate}/types.ts
32
32
  ```
33
33
 
34
34
  `data.ts` 的 config 对象结构必须完全遵循 `types.ts` 的 interface 定义,不得猜测字段。
@@ -97,7 +97,7 @@ import { [camelPageName]Config } from "./data";
97
97
 
98
98
  **必须同时满足以下两个条件**:
99
99
 
100
- 1. 项目 `src/components/template/` 目录下已存在可复用的 Template 组件
100
+ 1. 项目 `.wl-skills/src/components/template/` 目录下已存在可复用的 Template 组件
101
101
  2. 当前页面与该模板的交互骨架**完全一致**(查询/操作/表格结构均与模板期望的 config 结构匹配)
102
102
 
103
103
  **不确定时的决策**:
@@ -113,7 +113,7 @@ import { [camelPageName]Config } from "./data";
113
113
  ## 已知配置驱动模板一览(cx-ui-produce 项目特定)
114
114
 
115
115
  > ⚠️ 以下是 cx-ui-produce 项目已有的 Template 组件,仅在该项目中适用。
116
- > 其他项目需根据自己项目的 `src/components/template/` 目录确认。
116
+ > 其他项目需根据自己项目的 `.wl-skills/src/components/template/` 目录确认。
117
117
 
118
118
  ### 1. ResultQueryTemplate(轧钢实绩查询类)
119
119
 
@@ -177,7 +177,7 @@ import { [pageName]Config } from "./data";
177
177
  - 有固定的查询区 + 实绩录入 + 汇总数据结构
178
178
  - 字段结构高度统一(同一套模板 7 个页面共用)
179
179
 
180
- **生成规则**:读 `src/components/template/FinishingAchievementTemplate/types.ts`,按 `FinishingAchievementConfig` interface 生成 config 对象。
180
+ **生成规则**:读 `.wl-skills/src/components/template/FinishingAchievementTemplate/types.ts`,按 `FinishingAchievementConfig` interface 生成 config 对象。
181
181
 
182
182
  ---
183
183
 
@@ -278,7 +278,7 @@ import { [pageName]Config } from "./data";
278
278
  - 有固定的查询区 + 实绩录入 + 汇总数据结构
279
279
  - 字段结构高度统一(同一套模板 7 个页面共用)
280
280
 
281
- **生成规则**:参考 `src/components/template/FinishingAchievementTemplate/` 内的 `types.ts` 定义,只生成对应的 config 配置。
281
+ **生成规则**:参考 `.wl-skills/src/components/template/FinishingAchievementTemplate/` 内的 `types.ts` 定义,只生成对应的 config 配置。
282
282
 
283
283
  ---
284
284