@agile-team/wl-skills-kit 2.10.1 → 2.11.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.
Files changed (189) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +7 -7
  3. package/bin/wl-skills.js +49 -16
  4. package/files/.github/copilot-instructions.md +23 -465
  5. package/files/.wl-skills/copilot-instructions-full.md +233 -0
  6. package/files/{docs → .wl-skills/docs}/jh-pagination.md +2 -2
  7. package/files/{docs → .wl-skills/docs}/page-query-hook-best-practices.md +3 -3
  8. package/files/{.github → .wl-skills}/guides/README.md +1 -1
  9. package/files/{.github → .wl-skills}/guides/architecture.md +5 -5
  10. package/files/{.github → .wl-skills}/guides/mcp-setup.md +1 -1
  11. package/files/{.github → .wl-skills}/guides/usage.md +8 -8
  12. package/files/{.github → .wl-skills}/reports/SYS_MENU_INFO.md +1 -1
  13. package/files/{.github → .wl-skills}/reports/SYS_PERMISSION_INFO.md +1 -1
  14. 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
  15. package/files/{.github → .wl-skills}/skills/_best-practices.md +5 -5
  16. package/files/{.github → .wl-skills}/skills/_compat/README.md +1 -1
  17. package/files/{.github → .wl-skills}/skills/_compat/editors.json +1 -1
  18. package/files/{.github → .wl-skills}/skills/_pipeline.md +9 -9
  19. package/files/{.github → .wl-skills}/skills/_registry.md +3 -3
  20. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/SKILL.md +27 -27
  21. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/USAGE.md +22 -22
  22. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/business-index.md +1 -1
  23. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/business-open-questions.md +1 -1
  24. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-dictionary.md +1 -1
  25. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-field.md +1 -1
  26. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-index.md +2 -2
  27. package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-requirement.md +2 -2
  28. package/files/{.github → .wl-skills}/skills/core/convention-audit/SKILL.md +6 -6
  29. package/files/{.github → .wl-skills}/skills/core/convention-audit/USAGE.md +1 -1
  30. package/files/{.github → .wl-skills}/skills/core/page-codegen/SKILL.md +10 -10
  31. package/files/{.github → .wl-skills}/skills/core/page-codegen/USAGE.md +1 -1
  32. package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-DETAIL-TABS.md +7 -7
  33. package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-DRIVEN.md +5 -5
  34. package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-FORM-ROUTE.md +2 -2
  35. package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-RECORD-FORM.md +1 -1
  36. package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-TREE-LIST.md +1 -1
  37. package/files/{.github → .wl-skills}/skills/core/prototype-scan/SKILL.md +11 -11
  38. package/files/{.github → .wl-skills}/skills/core/prototype-scan/USAGE.md +3 -3
  39. package/files/{.github → .wl-skills}/skills/core/spec-doc-parse/SKILL.md +9 -9
  40. package/files/{.github → .wl-skills}/skills/core/spec-doc-parse/USAGE.md +6 -6
  41. package/files/{.github → .wl-skills}/skills/core/template-extract/SKILL.md +1 -1
  42. package/files/{.github → .wl-skills}/skills/core/template-extract/USAGE.md +1 -1
  43. package/files/{.github → .wl-skills}/skills/sync/_mcp-guardrail.md +3 -3
  44. package/files/{.github → .wl-skills}/skills/sync/dict-sync/SKILL.md +5 -5
  45. package/files/{.github → .wl-skills}/skills/sync/dict-sync/USAGE.md +2 -2
  46. package/files/{.github → .wl-skills}/skills/sync/menu-sync/SKILL.md +6 -6
  47. package/files/{.github → .wl-skills}/skills/sync/menu-sync/USAGE.md +3 -3
  48. package/files/{.github → .wl-skills}/skills/sync/menu-sync/env/guide.md +2 -2
  49. package/files/{.github → .wl-skills}/skills/sync/permission-sync/SKILL.md +3 -3
  50. package/files/{.github → .wl-skills}/skills/sync/permission-sync/USAGE.md +1 -1
  51. package/files/{src → .wl-skills/src}/components/global/C_Splitter/index.vue +2 -2
  52. package/files/{src → .wl-skills/src}/components/local/c_formModal/README.md +1 -1
  53. package/files/{src → .wl-skills/src}/components/local/c_formSections/README.md +2 -2
  54. package/files/{src → .wl-skills/src}/components/remote/BaseForm/README.md +2 -2
  55. package/files/{src → .wl-skills/src}/components/remote/BaseQuery/README.md +4 -4
  56. package/files/{src → .wl-skills/src}/components/remote/BaseTable/README.md +2 -2
  57. package/files/{src → .wl-skills/src}/components/remote/BaseToolbar/README.md +1 -1
  58. package/files/{.github → .wl-skills}/standards/02-code-structure.md +1 -1
  59. package/files/{.github → .wl-skills}/standards/08-git.md +1 -1
  60. package/files/{.github → .wl-skills}/standards/11-form-validation.md +1 -1
  61. package/files/{.github → .wl-skills}/standards/13-platform-components.md +15 -15
  62. package/files/{.github → .wl-skills}/standards/14-layout-containers.md +4 -4
  63. package/files/{demo → .wl-skills/templates}/README.md +3 -3
  64. package/lib/vite-plugin-wl-skills.js +97 -0
  65. package/package.json +2 -2
  66. /package/files/{docs → .wl-skills/docs}/jh-date-range.md +0 -0
  67. /package/files/{docs → .wl-skills/docs}/jh-date.md +0 -0
  68. /package/files/{docs → .wl-skills/docs}/jh-dept-picker.md +0 -0
  69. /package/files/{docs → .wl-skills/docs}/jh-drag-row.md +0 -0
  70. /package/files/{docs → .wl-skills/docs}/jh-file-upload.md +0 -0
  71. /package/files/{docs → .wl-skills/docs}/jh-picker.md +0 -0
  72. /package/files/{docs → .wl-skills/docs}/jh-select.md +0 -0
  73. /package/files/{docs → .wl-skills/docs}/jh-text.md +0 -0
  74. /package/files/{docs → .wl-skills/docs}/jh-textarea.md +0 -0
  75. /package/files/{docs → .wl-skills/docs}/jh-user-picker.md +0 -0
  76. /package/files/{docs → .wl-skills/docs}/mock-architecture.md +0 -0
  77. /package/files/{docs → .wl-skills/docs}/request.md +0 -0
  78. /package/files/{.github → .wl-skills}/reports/README.md +0 -0
  79. /package/files/{.github → .wl-skills}/reports/SYS_DICT_INFO.md +0 -0
  80. /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
  81. /package/files/{.github → .wl-skills}/skills/_compat/headers/agents.txt +0 -0
  82. /package/files/{.github → .wl-skills}/skills/_compat/headers/claude-code.txt +0 -0
  83. /package/files/{.github → .wl-skills}/skills/_compat/headers/cline.txt +0 -0
  84. /package/files/{.github → .wl-skills}/skills/_compat/headers/cursor-mdc.txt +0 -0
  85. /package/files/{.github → .wl-skills}/skills/_compat/headers/cursor-rules.txt +0 -0
  86. /package/files/{.github → .wl-skills}/skills/_compat/headers/github-copilot.txt +0 -0
  87. /package/files/{.github → .wl-skills}/skills/_compat/headers/kiro.txt +0 -0
  88. /package/files/{.github → .wl-skills}/skills/_compat/headers/qoder.txt +0 -0
  89. /package/files/{.github → .wl-skills}/skills/_compat/headers/trae.txt +0 -0
  90. /package/files/{.github → .wl-skills}/skills/_compat/headers/windsurf.txt +0 -0
  91. /package/files/{.github → .wl-skills}/skills/core/api-contract/SKILL.md +0 -0
  92. /package/files/{.github → .wl-skills}/skills/core/api-contract/USAGE.md +0 -0
  93. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/_index.md +0 -0
  94. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/domains/_CONTRIBUTING.md +0 -0
  95. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/domains/produce/TPL-OPERATION-STATION.md +0 -0
  96. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/domains/sale/README.md +0 -0
  97. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-CHANGE-HISTORY.md +0 -0
  98. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-LIST.md +0 -0
  99. /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-MASTER-DETAIL.md +0 -0
  100. /package/files/{.github → .wl-skills}/skills/domain/README.md +0 -0
  101. /package/files/{.github → .wl-skills}/skills/ops/code-fix/SKILL.md +0 -0
  102. /package/files/{.github → .wl-skills}/skills/ops/code-fix/USAGE.md +0 -0
  103. /package/files/{.github → .wl-skills}/skills/sync/env.local.json +0 -0
  104. /package/files/{.github → .wl-skills}/skills/sync/menu-sync/env/env.local.json +0 -0
  105. /package/files/{src → .wl-skills/src}/components/global/C_ParentView/index.vue +0 -0
  106. /package/files/{src → .wl-skills/src}/components/global/C_RightToolbar/data.ts +0 -0
  107. /package/files/{src → .wl-skills/src}/components/global/C_RightToolbar/index.scss +0 -0
  108. /package/files/{src → .wl-skills/src}/components/global/C_RightToolbar/index.vue +0 -0
  109. /package/files/{src → .wl-skills/src}/components/global/C_Splitter/index.scss +0 -0
  110. /package/files/{src → .wl-skills/src}/components/global/C_SvgIcon/index.scss +0 -0
  111. /package/files/{src → .wl-skills/src}/components/global/C_SvgIcon/index.vue +0 -0
  112. /package/files/{src → .wl-skills/src}/components/global/C_SvgIcon/svgicon.js +0 -0
  113. /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/README.md +0 -0
  114. /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/config.ts +0 -0
  115. /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/index.scss +0 -0
  116. /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/index.vue +0 -0
  117. /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/types.ts +0 -0
  118. /package/files/{src → .wl-skills/src}/components/global/C_Tree/README.md +0 -0
  119. /package/files/{src → .wl-skills/src}/components/global/C_Tree/data.ts +0 -0
  120. /package/files/{src → .wl-skills/src}/components/global/C_Tree/index.scss +0 -0
  121. /package/files/{src → .wl-skills/src}/components/global/C_Tree/index.vue +0 -0
  122. /package/files/{src → .wl-skills/src}/components/global/C_Tree/types.ts +0 -0
  123. /package/files/{src → .wl-skills/src}/components/local/c_formModal/data.ts +0 -0
  124. /package/files/{src → .wl-skills/src}/components/local/c_formModal/index.scss +0 -0
  125. /package/files/{src → .wl-skills/src}/components/local/c_formModal/index.vue +0 -0
  126. /package/files/{src → .wl-skills/src}/components/local/c_formSections/data.ts +0 -0
  127. /package/files/{src → .wl-skills/src}/components/local/c_formSections/index.scss +0 -0
  128. /package/files/{src → .wl-skills/src}/components/local/c_formSections/index.vue +0 -0
  129. /package/files/{src → .wl-skills/src}/components/local/c_listModal/data.ts +0 -0
  130. /package/files/{src → .wl-skills/src}/components/local/c_listModal/index.scss +0 -0
  131. /package/files/{src → .wl-skills/src}/components/local/c_listModal/index.vue +0 -0
  132. /package/files/{src → .wl-skills/src}/components/local/c_spliterTitle/index.scss +0 -0
  133. /package/files/{src → .wl-skills/src}/components/local/c_spliterTitle/index.vue +0 -0
  134. /package/files/{src → .wl-skills/src}/components/remote/AGGrid/README.md +0 -0
  135. /package/files/{src → .wl-skills/src}/types/page.ts +0 -0
  136. /package/files/{.github → .wl-skills}/standards/01-toolchain.md +0 -0
  137. /package/files/{.github → .wl-skills}/standards/03-comments.md +0 -0
  138. /package/files/{.github → .wl-skills}/standards/04-coding-basics.md +0 -0
  139. /package/files/{.github → .wl-skills}/standards/05-logging.md +0 -0
  140. /package/files/{.github → .wl-skills}/standards/06-security.md +0 -0
  141. /package/files/{.github → .wl-skills}/standards/07-config.md +0 -0
  142. /package/files/{.github → .wl-skills}/standards/09-typescript.md +0 -0
  143. /package/files/{.github → .wl-skills}/standards/10-pinia.md +0 -0
  144. /package/files/{.github → .wl-skills}/standards/12-base-table.md +0 -0
  145. /package/files/{.github → .wl-skills}/standards/index.md +0 -0
  146. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/api.md +0 -0
  147. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/data.ts +0 -0
  148. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/index.scss +0 -0
  149. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/index.vue +0 -0
  150. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/data.ts +0 -0
  151. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/index.scss +0 -0
  152. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/index.vue +0 -0
  153. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/data.ts +0 -0
  154. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/index.scss +0 -0
  155. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/index.vue +0 -0
  156. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-form/data.ts +0 -0
  157. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-form/index.scss +0 -0
  158. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-form/index.vue +0 -0
  159. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-history/data.ts +0 -0
  160. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-history/index.scss +0 -0
  161. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-history/index.vue +0 -0
  162. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/api.md +0 -0
  163. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/data.ts +0 -0
  164. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/index.scss +0 -0
  165. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/index.vue +0 -0
  166. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/api.md +0 -0
  167. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/data.ts +0 -0
  168. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/index.scss +0 -0
  169. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/index.vue +0 -0
  170. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/api.md +0 -0
  171. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/data.ts +0 -0
  172. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/index.scss +0 -0
  173. /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/index.vue +0 -0
  174. /package/files/{demo → .wl-skills/templates}/sale/demo/add-demo/data.ts +0 -0
  175. /package/files/{demo → .wl-skills/templates}/sale/demo/add-demo/index.scss +0 -0
  176. /package/files/{demo → .wl-skills/templates}/sale/demo/add-demo/index.vue +0 -0
  177. /package/files/{demo → .wl-skills/templates}/sale/demo/billet-flame-cut-plan/data.ts +0 -0
  178. /package/files/{demo → .wl-skills/templates}/sale/demo/billet-flame-cut-plan/index.scss +0 -0
  179. /package/files/{demo → .wl-skills/templates}/sale/demo/billet-flame-cut-plan/index.vue +0 -0
  180. /package/files/{demo → .wl-skills/templates}/sale/demo/domestic-trade-order/data.ts +0 -0
  181. /package/files/{demo → .wl-skills/templates}/sale/demo/domestic-trade-order/index.scss +0 -0
  182. /package/files/{demo → .wl-skills/templates}/sale/demo/domestic-trade-order/index.vue +0 -0
  183. /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/data.ts +0 -0
  184. /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/index.scss +0 -0
  185. /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/index.vue +0 -0
  186. /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/meltDialog.vue +0 -0
  187. /package/files/{demo → .wl-skills/templates}/sale/demo/metallurgical-spec/data.ts +0 -0
  188. /package/files/{demo → .wl-skills/templates}/sale/demo/metallurgical-spec/index.scss +0 -0
  189. /package/files/{demo → .wl-skills/templates}/sale/demo/metallurgical-spec/index.vue +0 -0
@@ -0,0 +1,233 @@
1
+ # 产品化前端编码指令(完整地图)
2
+
3
+ > 本文件是 wl-skills-kit 的**完整自包含指令文件**。AI 读完本文件即可知道:系统有什么、怎么触发、核心规则是什么、执行时去哪取详细内容。
4
+ > **不需要追链读取其他文件来了解全貌。** 仅在执行具体 Skill 时才按路径读取详细定义。
5
+
6
+ ---
7
+
8
+ ## 一、架构
9
+
10
+ - Vue 3.2 + Vite + TypeScript(strict: false)
11
+ - Module Federation **子应用**,路由/权限/布局/Store 从主应用 `main` 远程加载
12
+ - UI:Element Plus + @jhlc/jh-ui + @jhlc/common-core
13
+ - 样式:Windi CSS + SCSS
14
+ - 状态:Pinia
15
+ - 页面注册:`vite/plugins/shared/pages.ts` 通过 `gProd()` / `gSale()` 声明
16
+ - 菜单路由配置:后端菜单表是唯一数据源。pages.ts 注册组件后,需在系统管理后台 → 菜单管理 → 新增菜单。批量新增页面时可用后端 batchImport 接口
17
+
18
+ ## 二、页面标准结构(三文件分离 + 接口契约)
19
+
20
+ ```
21
+ src/views/[域]/[模块]/[子模块]/[kebab-case目录]/
22
+ ├── index.vue ← 纯模板+解构,不写业务逻辑
23
+ ├── data.ts ← AbstractPageQueryHook 类 + API_CONFIG
24
+ ├── index.scss ← 页面样式(可为空)
25
+ └── api.md ← 接口约定(前端预留 + 后端出接口依据)
26
+ ```
27
+
28
+ 弹窗组件处理策略:
29
+
30
+ - **通用弹窗**(新增/编辑表单,2+ 页面可复用)→ 提取到 `.wl-skills/src/components/local/c_xxxModal/`
31
+ - **极个性弹窗**(仅单页面使用,c_modal 无法满足)→ 放在页面 `components/xxxModal.vue`
32
+
33
+ ## 三、data.ts 核心模式
34
+
35
+ - 继承 `AbstractPageQueryHook`,实现 `queryDef()` / `columnsDef()`
36
+ - `API_CONFIG` 定义接口路径,与 `api.md` 一一对应
37
+ - `API_CONFIG` 中禁止出现 `import axios`,只能用 `getAction` / `postAction`
38
+ - `data.ts` 中禁止 `import Store`(Pinia Store 在组件层使用)
39
+
40
+ ## 四、页面模板硬约束
41
+
42
+ 生成业务表格时,必须同时满足:
43
+
44
+ - 使用 `AbstractPageQueryHook + BaseQuery + BaseToolbar + BaseTable + jh-pagination`
45
+ - `BaseTable` 显式 `render-type="agGrid"`
46
+ - `BaseTable` 绑定全局唯一 `cid` / `:cid`
47
+ - 列定义使用 `@agile-team/wk-skills-ui/runtime` 的 `defineColumns()`
48
+ - 操作列使用 `renderOps()`,禁止 `operations: []`
49
+ - 保留 `common-core` 平台骨架,不得生搬硬套 `wk-skills-ui` 通用模板里的 `usePageHook/el-form/el-pagination`
50
+ - 生成后建议运行 `wl-skills validate-page <页面目录>` 和 `wl-skills doctor-ui`
51
+
52
+ ## 五、Mock 架构(与页面完全解耦)
53
+
54
+ - **开关**:`.env.dev` 中 `ENV_MOCK=true/false`
55
+ - **解耦**:mock 文件放在项目根 `mock/` 目录,不在 `src/views` 中 import 任何 mock
56
+ - **URL 对齐**:`API_CONFIG` 保持真实路径,mock 端点带 `/dev-api` 前缀,关闭 mock 后无需改页面代码
57
+ - **按模块自治**:删某业务 mock 只删对应文件,不影响其他模块
58
+ - **一键清理**:`wl-skills mock-clean --domain [域]` 或 `--all`
59
+
60
+ ---
61
+
62
+ ## 六、Skill 完整路由表
63
+
64
+ > 读完本表即知全部可用 Skill、触发词和读取路径。无需再去查其他文件。
65
+
66
+ | 触发词 | Skill 名 | 读取路径 |
67
+ |--------|---------|---------|
68
+ | 扫描原型 / 解析原型 / 页面清单 / 口述需求 / 建个页面 / 根据截图 / 根据原型(非规范零散详设) | prototype-scan | `.wl-skills/skills/core/prototype-scan/SKILL.md` |
69
+ | 解析说明书 / 规范文档转页面 / IPO 转页面 / 功能编码 / .wl-skills/docs/spec(wl-skills-design 标准说明书) | spec-doc-parse | `.wl-skills/skills/core/spec-doc-parse/SKILL.md` |
70
+ | 接口约定 / api.md / 字段定义 / 前后端对齐 | api-contract | `.wl-skills/skills/core/api-contract/SKILL.md` |
71
+ | 生成页面 / 创建页面 / 代码生成 / vue页面 / 列表页 / 管理页 / 台账 / mock / 假数据 | page-codegen | `.wl-skills/skills/core/page-codegen/SKILL.md` |
72
+ | 规范审计 / 代码审计 / 规范检查 / 对齐规范 / 接手新项目 / 项目体检 | convention-audit | `.wl-skills/skills/core/convention-audit/SKILL.md` |
73
+ | 用户提供原型/详设/字段资料,意图为业务梳理/模块沉淀 | business-doc-extract | `.wl-skills/skills/core/business-doc-extract/SKILL.md` |
74
+ | 提取模板 / 沉淀模板 | template-extract | `.wl-skills/skills/core/template-extract/SKILL.md` |
75
+ | 创建菜单 / 同步菜单 / 补菜单 / 页面点击进不来 | menu-sync | `.wl-skills/skills/sync/menu-sync/SKILL.md` |
76
+ | 同步字典 / 创建字典 / 字典对比 / 字典审计 | dict-sync | `.wl-skills/skills/sync/dict-sync/SKILL.md` |
77
+ | 创建角色 / 角色授权 / 挂动作 / 同步权限 / 权限码注册 | permission-sync | `.wl-skills/skills/sync/permission-sync/SKILL.md` |
78
+ | 自动修复 / 整改偏差 / 修复报告 / 规范整改 / code fix | code-fix | `.wl-skills/skills/ops/code-fix/SKILL.md` |
79
+
80
+ **执行规则**:
81
+ 1. 用户消息匹配上表触发词 → 用 `read_file` 加载对应 SKILL.md
82
+ 2. SKILL.md 中标注的"必读 standards"按本文件第七节映射加载
83
+ 3. 在 SKILL.md 指示下输出 **Pre-flight 声明**(强制)
84
+
85
+ ### 调度规则(强制)
86
+
87
+ 1. 首先匹配上表触发词,结合 `_best-practices.md` 场景索引判断用户意图
88
+ 2. 双线隔离:输入含 `.wl-skills/docs/spec/` / 功能编码 / IPO 表 → 强制路由 `spec-doc-parse`,禁止 `prototype-scan` 接管
89
+ 3. 匹配 2+ Skill 时必须列出候选并询问用户意图(误触发防护)
90
+ 4. `page-codegen` / `menu-sync` / `dict-sync` / `permission-sync` / `code-fix` 触发前二次确认
91
+ 5. `code-fix` 完成后必须自动 `wl-skills validate` 复扫(闭环强制)
92
+ 6. sync 类任务必须额外加载 `.wl-skills/skills/sync/_mcp-guardrail.md`
93
+
94
+ ---
95
+
96
+ ## 七、规范完整清单与路径
97
+
98
+ > 14 条编码规范。执行代码生成或修改前,按任务类型映射加载对应规范。
99
+
100
+ | 编号 | 规范名 | 读取路径 |
101
+ |------|--------|---------|
102
+ | 01 | 工具链就绪 | `.wl-skills/standards/01-toolchain.md` |
103
+ | 02 | 三文件分离 + 接口契约 | `.wl-skills/standards/02-code-structure.md` |
104
+ | 03 | 注释规范 | `.wl-skills/standards/03-comments.md` |
105
+ | 04 | 基础编码(13 条) | `.wl-skills/standards/04-coding-basics.md` |
106
+ | 05 | console 残留 | `.wl-skills/standards/05-logging.md` |
107
+ | 06 | 安全规范 | `.wl-skills/standards/06-security.md` |
108
+ | 07 | 配置管理 | `.wl-skills/standards/07-config.md` |
109
+ | 08 | Git 规范 | `.wl-skills/standards/08-git.md` |
110
+ | 09 | TypeScript | `.wl-skills/standards/09-typescript.md` |
111
+ | 10 | Pinia | `.wl-skills/standards/10-pinia.md` |
112
+ | 11 | 表单校验 | `.wl-skills/standards/11-form-validation.md` |
113
+ | 12 | BaseTable + cid | `.wl-skills/standards/12-base-table.md` |
114
+ | 13 | 平台组件合规 | `.wl-skills/standards/13-platform-components.md` |
115
+ | 14 | 布局容器 | `.wl-skills/standards/14-layout-containers.md` |
116
+
117
+ 任务类型 → 必读规范映射以 `.wl-skills/standards/index.md` 为唯一数据源。执行前先 `read_file` 加载确认。
118
+
119
+ ---
120
+
121
+ ## 八、场景速查
122
+
123
+ | # | 场景 | 推荐流程 |
124
+ |---|------|---------|
125
+ | 1 | 新建模块完整闭环 | prototype-scan → api-contract → page-codegen → menu-sync → convention-audit |
126
+ | 2 | 补菜单 | menu-sync(MCP: wls_menu_sync_from_report) |
127
+ | 3 | 补字典 | dict-sync |
128
+ | 4 | 角色授权 / 加动作 | permission-sync |
129
+ | 5 | 存量项目体检 | convention-audit → code-fix → validate 复扫 → 闭环确认 |
130
+ | 6 | mock 跑通 | page-codegen mock-first |
131
+ | 7 | 模板沉淀 | template-extract |
132
+ | 8 | 业务文档维护 | business-doc-extract |
133
+ | 9 | Git 提交 | pnpm cz / wl-skills validate |
134
+ | 10 | 规范线闭环 | spec-doc-parse → api-contract → page-codegen → convention-audit --mode spec-align |
135
+
136
+ ---
137
+
138
+ ## 九、文档与模板路径
139
+
140
+ | 类型 | 路径 |
141
+ |------|------|
142
+ | 平台组件文档(jh-select 等) | `.wl-skills/.wl-skills/docs/jh-{name}.md` |
143
+ | 组件 README(BaseTable 等) | `.wl-skills/.wl-skills/src/components/remote/{Name}/README.md` |
144
+ | 局部组件 README | `.wl-skills/.wl-skills/src/components/local/{c_xxx}/README.md` |
145
+ | 页面模板 | `.wl-skills/templates/` |
146
+ | 使用指南 | `.wl-skills/guides/usage.md` |
147
+ | 架构设计 | `.wl-skills/guides/architecture.md` |
148
+ | MCP 配置 | `.wl-skills/guides/mcp-setup.md` |
149
+ | 审计报告 | `.wl-skills/reports/` |
150
+ | 场景索引 | `.wl-skills/skills/_best-practices.md` |
151
+ | I/O 契约 | `.wl-skills/skills/_pipeline.md` |
152
+
153
+ ---
154
+
155
+ ## 十、绝对禁止规则
156
+
157
+ - ❌ index.vue 中写业务逻辑(逻辑全在 data.ts)
158
+ - ❌ 使用 Vuex(用 Pinia)
159
+ - ❌ `::v-deep` / `/deep/`(用 `:deep()`)
160
+ - ❌ 直接用 axios(用 getAction/postAction)
161
+ - ❌ 手写查询表单/工具栏/分页(用 BaseQuery/BaseToolbar/jh-pagination)
162
+ - ❌ 每个页面重复写弹窗组件(优先用 `c_modal` 等局部公共组件)
163
+ - ❌ 不在 index.vue 写业务逻辑 | 新加的方法/状态必须放在 data.ts
164
+ - ❌ 不直接用 axios / getAction / sessionStorage | 这些只能出现在 data.ts
165
+ - ❌ 不用 el-table / el-form 替代平台组件 | 用 BaseTable / BaseForm
166
+ - ❌ 不引入新依赖不经团队确认 | 需在 PR 中说明理由
167
+ - ✅ 改完即验证 | 触发 `wls_validate_page` 或 `wl-skills validate`
168
+ - ✅ git cz 提交 | pre-commit 会自动检测规范,error 级别阻断提交
169
+
170
+ **提交即验证**:`.husky/pre-commit` 自动运行 `wl-skills validate --pre-commit`,error 阻断提交。
171
+ **CI 兜底**:`wl-skills validate --strict` 会再次拦截,error 和 warn 都导致 CI 失败。
172
+
173
+ ### 豁免标记
174
+
175
+ ```vue
176
+ <!-- wl-skills:ignore R3 -->
177
+ <el-table :data="dialogData">...</el-table>
178
+ ```
179
+
180
+ - 必须带规则编号(R1~R12),精确豁免,不支持全局豁免
181
+ - CI `--strict` 模式下豁免标记仍然生效
182
+
183
+ ---
184
+
185
+ ## 十一、AI 执行护栏(强制约定)
186
+
187
+ 以下规则对所有 AI 助手在本项目中执行任务时**强制生效**,不可被用户口头覆盖。
188
+
189
+ ### 1. 闭环强制约定
190
+
191
+ | 触发场景 | 强制动作 | 不可跳过原因 |
192
+ |----------|----------|-------------|
193
+ | code-fix 执行完毕 | 自动执行 `wl-skills validate` 复扫 | 确保修复未引入新偏差 |
194
+ | 复扫发现新问题 | 继续修复 → 再次复扫,直到通过 | 闭环不允许断开 |
195
+ | 用户说"不用验证了" | **仍然执行**复扫,只是不再追问 | 规范高于口头指令 |
196
+
197
+ ### 2. 高风险 Skill 确认机制
198
+
199
+ 以下 Skill 触发前必须向用户**二次确认**,不可静默执行:
200
+
201
+ - `page-codegen`(生成整页代码,不可逆)
202
+ - `menu-sync` / `dict-sync` / `permission-sync`(跨系统同步,影响后端数据)
203
+ - `code-fix`(批量修改源码文件,需确认范围)
204
+
205
+ 确认话术:`即将执行 [Skill名称],影响范围:[文件列表 / 后端数据类型] 是否继续?(Y/n)`
206
+
207
+ ### 3. 误触发防护
208
+
209
+ | 情况 | 处理方式 |
210
+ |------|----------|
211
+ | 用户意图匹配 2+ Skill | 必须列出候选并询问用户意图 |
212
+ | 用户意图模糊无法映射 | 询问澄清,不猜测执行 |
213
+ | 仅匹配 1 个 Skill 且置信度高 | 直接执行,无需确认 |
214
+
215
+ ### 4. Pre-flight 声明完整性
216
+
217
+ AI 在执行任何 Skill 前必须输出:
218
+
219
+ ```
220
+ 📋 Pre-flight:
221
+ - Skill: [skill-name]
222
+ - 触发依据: [用户原话 / 管道上游输出]
223
+ - 影响文件: [文件列表]
224
+ - 预期结果: [一句话描述]
225
+ ```
226
+
227
+ ### 5. 修复建议输出规范
228
+
229
+ 当 `wl-skills validate` 阻断时,AI 必须:
230
+ 1. 完整展示阻断项(error + strict 模式下的 warn)
231
+ 2. 对每项给出**具体修复建议**(而非泛泛的"请修复")
232
+ 3. 标注是否可自动修复(auto: true/false)
233
+ 4. 引导用户触发修复流程:`规范审计 → 自动修复 → 复扫验证`
@@ -436,7 +436,7 @@ const { page, select } = Page;
436
436
 
437
437
  ### 示例 1:内贸订单列表页
438
438
 
439
- **路径**: `src/views/sale/demo/domestic-trade-order/index.vue`
439
+ **路径**: `src/views/sale/.wl-skills/templates/domestic-trade-order/index.vue`
440
440
 
441
441
  ```vue
442
442
  <jh-pagination
@@ -451,7 +451,7 @@ const { page, select } = Page;
451
451
 
452
452
  ### 示例 2:新增编辑页项次分页
453
453
 
454
- **路径**: `src/views/sale/demo/add-demo/index.vue`
454
+ **路径**: `src/views/sale/.wl-skills/templates/add-.wl-skills/templates/index.vue`
455
455
 
456
456
  ```vue
457
457
  <jh-pagination
@@ -163,9 +163,9 @@ class LadleUseQueryHook extends AbstractPageQueryHook {
163
163
  ```typescript
164
164
  import { AbstractPageQueryHook } from "@jhlc/common-core";
165
165
  import { BusLogicDataType } from "@jhlc/types/src/logical-data";
166
- import { BaseQueryItemDesc } from "@jhlc/common-core/src/components/form/base-query/type";
167
- import { TableColumnDesc } from "@jhlc/common-core/src/components/table/base-table/type";
168
- import { ActionButtonDesc } from "@jhlc/common-core/src/components/toolbar/type";
166
+ import { BaseQueryItemDesc } from "@jhlc/common-core/.wl-skills/src/components/form/base-query/type";
167
+ import { TableColumnDesc } from "@jhlc/common-core/.wl-skills/src/components/table/base-table/type";
168
+ import { ActionButtonDesc } from "@jhlc/common-core/.wl-skills/src/components/toolbar/type";
169
169
 
170
170
  const API_CONFIG = {
171
171
  list: "/mmsm/mmsmRsltLadleUse/list",
@@ -1,6 +1,6 @@
1
1
  # Guides 指南目录
2
2
 
3
- 本目录下文档由 `wl-skills-kit` 安装到业务项目的 `.github/guides/`,作为团队成员人工维护的指南类文档。
3
+ 本目录下文档由 `wl-skills-kit` 安装到业务项目的 `.wl-skills/guides/`,作为团队成员人工维护的指南类文档。
4
4
 
5
5
  | 文件 | 内容 |
6
6
  | ----------------- | ---------------------------------------------- |
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **读者**:团队技术负责人 / wl-skills-kit 维护者 / 对体系设计感兴趣的团队成员
4
4
  > **更新方式**:重大架构变更后追加对应章节,旧章节原文保留(历史可溯)
5
- > **当前版本**:v2.10.1(2026-06-14)
5
+ > **当前版本**:v2.11.0(2026-06-14)
6
6
 
7
7
  ---
8
8
 
@@ -135,16 +135,16 @@ AI 编辑器(Copilot / Cursor / Windsurf / Claude Code / Cline / Kiro / Trae
135
135
  │ - Pre-flight 输出要求
136
136
 
137
137
 
138
- .github/skills/_registry.md
138
+ .wl-skills/skills/_registry.md
139
139
  │ 触发词 → SKILL 路径映射
140
140
  │ "生成页面" → skills/core/page-codegen/SKILL.md
141
141
 
142
142
 
143
- .github/skills/core/page-codegen/SKILL.md
143
+ .wl-skills/skills/core/page-codegen/SKILL.md
144
144
  │ 声明:必读 standards 列表 + 完整生成流程 + 输出规范
145
145
 
146
146
 
147
- .github/standards/(按 index.md 门控,按需加载)
147
+ .wl-skills/standards/(按 index.md 门控,按需加载)
148
148
  │ page-codegen 需要:02/06/07/08/12/13 共 6 条
149
149
  │ convention-audit 需要:全部 13 条
150
150
 
@@ -153,7 +153,7 @@ AI 生成代码/报告/api.md
153
153
 
154
154
  └─ 写入到:
155
155
  src/views/<域>/<模块>/<子模块>/<page>/
156
- .github/reports/(追加写入)
156
+ .wl-skills/reports/(追加写入)
157
157
  ```
158
158
 
159
159
  ---
@@ -95,7 +95,7 @@
95
95
 
96
96
  ## 配置完成后
97
97
 
98
- 确保已在 `.github/skills/sync/env.local.json` 中填写:
98
+ 确保已在 `.wl-skills/skills/sync/env.local.json` 中填写:
99
99
 
100
100
  ```json
101
101
  {
@@ -63,12 +63,12 @@ AI 会自动识别意图,触发对应的 Skill。
63
63
  | `menu-sync` | 创建菜单 / 同步菜单 | 菜单数据同步到后端(MCP 自动 / prompt 手动两种模式) |
64
64
  | `dict-sync` | 同步字典 / 创建字典 / 字典审计 | 字典基线同步到后端(MCP 自动 / prompt 手动两种模式) |
65
65
  | `convention-audit` | 规范审计 / 代码审计 | 14 条规范扫描 + 偏差报告 |
66
- | `business-doc-extract` | 语义级智能触发(无关键词列表) | 原型/详设/字段/字典/现有页面 → docs/business 业务文档 |
66
+ | `business-doc-extract` | 语义级智能触发(无关键词列表) | 原型/详设/字段/字典/现有页面 → .wl-skills/docs/business 业务文档 |
67
67
  | `template-extract` | 提取模板 / 抄取模板 | 从现有页面沉淀领域专属模板 |
68
68
  | `permission-sync` | 创建角色 / 角色授权 / 同步权限 | 角色+授权+动作权限同步(MCP) |
69
69
  | `code-fix` | 自动修复 / 整改偏差 / 规范整改 | 受控自动修复审计报告中的偏差 |
70
70
 
71
- 完整调度规则见 `.github/skills/_registry.md`。
71
+ 完整调度规则见 `.wl-skills/skills/_registry.md`。
72
72
 
73
73
  ---
74
74
 
@@ -84,8 +84,8 @@ AI 会自动识别意图,触发对应的 Skill。
84
84
  │ ├── skills/ 10 个启用 Skill + 多编辑器适配
85
85
  │ ├── guides/ 使用指南 + 架构设计
86
86
  │ └── reports/ AI 生成报告(SYS_MENU_INFO 等)
87
- ├── docs/ 12 个组件 API 文档(jh-* / request 等)
88
- ├── demo/ 13 个领域样例(生产 + 销售)
87
+ ├── .wl-skills/docs/ 12 个组件 API 文档(jh-* / request 等)
88
+ ├── .wl-skills/templates/ 13 个领域样例(生产 + 销售)
89
89
  └── src/
90
90
  ├── components/ 全局/局部/远程组件
91
91
  └── types/
@@ -148,15 +148,15 @@ A: 不会。`bin/wl-skills.js` 已自动生成 9 种主流 AI 编辑器配置文
148
148
  **Q: MCP Server 是什么?需要额外配置吗?**
149
149
  A: `wl-skills init` 会自动为 **Cursor**(`.cursor/mcp.json`)、**Claude Code**(`.mcp.json`)、**VS Code / GitHub Copilot**(`.vscode/mcp.json`)、**Kiro**(`.kiro/settings/mcp.json`)生成项目级 MCP 配置文件。
150
150
 
151
- Windsurf、Cline、Trae、Qoder 仅支持全局配置,需手动操作一次,详见 `.github/guides/mcp-setup.md`。
151
+ Windsurf、Cline、Trae、Qoder 仅支持全局配置,需手动操作一次,详见 `.wl-skills/guides/mcp-setup.md`。
152
152
 
153
- 配置完成后在 `.github/skills/sync/env.local.json` 中填好 `token`、`gatewayPath`、`menu.domainId`,重启编辑器,对 AI 说「扩展菜单」或「加字典」,AI 会自动调用 MCP 工具完成同步,无需手动粘贴接口响应。
153
+ 配置完成后在 `.wl-skills/skills/sync/env.local.json` 中填好 `token`、`gatewayPath`、`menu.domainId`,重启编辑器,对 AI 说「扩展菜单」或「加字典」,AI 会自动调用 MCP 工具完成同步,无需手动粘贴接口响应。
154
154
 
155
155
  **Q: 如何和 wk-skills-ui 一起用?**
156
156
  A: 两个包不互相依赖。先用 `wl-skills-kit` 做页面生成、规范审计、菜单字典权限同步;如需统一 UI 风格或老系统化妆层,再单独安装 `@agile-team/wk-skills-ui` 并执行 `wk-ui init/update`。
157
157
 
158
158
  **Q: 部署到生产环境前如何清理 AI 文件?**
159
- A: 执行 `npx @agile-team/wl-skills-kit clean`。会移除所有 AI 辅助文件,保留 `src/components/` 和 `src/types/`。
159
+ A: 执行 `npx @agile-team/wl-skills-kit clean`。会移除所有 AI 辅助文件,保留 `.wl-skills/src/components/` 和 `src/types/`。
160
160
 
161
161
  ---
162
162
 
@@ -218,4 +218,4 @@ npx @agile-team/wl-skills-kit clean --dry-run
218
218
  ## 进一步阅读
219
219
 
220
220
  - 架构与决策记录:[architecture.md](architecture.md)
221
- - 编辑器适配说明:`.github/skills/_compat/README.md`
221
+ - 编辑器适配说明:`.wl-skills/skills/_compat/README.md`
@@ -241,7 +241,7 @@ aiflow: [
241
241
 
242
242
  - 客户档案详情通过页内 `c_formModal` 弹窗查看;临时客户详情通过路由跳转 `mmwrCustomerDetail` 查看
243
243
  - 新增/编辑弹窗复用平台 `c_formModal` 组件
244
- - 客户申请新增与客户申请变更共享 `src/components/local/c_applyDetailDialog/index.vue` 详情弹窗
244
+ - 客户申请新增与客户申请变更共享 `.wl-skills/src/components/local/c_applyDetailDialog/index.vue` 详情弹窗
245
245
  - 变更历史查询通过路由跳转 `mmwrCustomerApplyChangeHistory` 查看,入口在申请表单页工具栏
246
246
  - **显示排序**:目录排 `6`(接在实绩统计查询后面),菜单从 `1` 开始
247
247
  - **mmwr- 前缀**:生产棒线材模块下所有页面统一使用 `mmwr-` 前缀(kebab)/ `mmwr` 前缀(camelCase)
@@ -2,7 +2,7 @@
2
2
 
3
3
  > ⚠️ 本文件为 [PLANNED] 状态。等 `permission-sync` Skill 转正后启用。
4
4
  >
5
- > 设计草稿:`.github/skills/sync/permission-sync/SKILL.draft.md`
5
+ > 设计草稿:`.wl-skills/skills/sync/permission-sync/SKILL.draft.md`
6
6
 
7
7
  ---
8
8
 
@@ -21,7 +21,7 @@
21
21
 
22
22
  **评审建议**:
23
23
 
24
- - c_statusBadge:模式简单且高频,建议立即封装到 `src/components/local/c_statusBadge/`
24
+ - c_statusBadge:模式简单且高频,建议立即封装到 `.wl-skills/src/components/local/c_statusBadge/`
25
25
  - c_priceFormat:建议先评估是否可用现有 `jh-text` + 格式化指令实现
26
26
  - c_addressInput:业务耦合度高,建议保持现状,1 年后再评估
27
27
 
@@ -17,7 +17,7 @@
17
17
  | 2 | 涉及 **sync 类**(菜单/字典/权限)操作时,**必读** `skills/sync/_mcp-guardrail.md`,调用失败不绕开 MCP,按 guardrail §2 自愈剧本引导用户 |
18
18
  | 3 | 每个场景都允许「单步执行」或「流水线执行」两种方式,由用户决定 |
19
19
  | 4 | 写文件 / 调写接口 / 修改代码前,输出 Pre-flight 声明并等待用户确认 |
20
- | 5 | 报告类产物统一写入 `.github/reports/`,**追加不覆盖** |
20
+ | 5 | 报告类产物统一写入 `.wl-skills/reports/`,**追加不覆盖** |
21
21
 
22
22
  ---
23
23
 
@@ -45,7 +45,7 @@ prototype-scan
45
45
 
46
46
  **关键检查点**:
47
47
  - pages.ts 是否注册了新页面(否则路由不存在)
48
- - `.github/reports/SYS_MENU_INFO.md` 是否包含本次新增页面
48
+ - `.wl-skills/reports/SYS_MENU_INFO.md` 是否包含本次新增页面
49
49
  - 同步菜单后端 4004 / 401 → 走 guardrail 引导用户改 env.local.json
50
50
 
51
51
  ---
@@ -66,7 +66,7 @@ wls_menu_sync_from_report ← MCP 工具,自动读报告 + 查菜单树 + 一
66
66
  ```
67
67
 
68
68
  **前置**:
69
- - `.github/reports/SYS_MENU_INFO.md` 已生成(由 page-codegen 产出,或手工维护)
69
+ - `.wl-skills/reports/SYS_MENU_INFO.md` 已生成(由 page-codegen 产出,或手工维护)
70
70
  - `env.local.json` 配齐:gatewayPath / token(纯 JWT)/ sysAppNo / menu.parentMenuId / menu.domainId
71
71
 
72
72
  **典型故障 → 处理**:
@@ -91,7 +91,7 @@ wls_menu_sync_from_report ← MCP 工具,自动读报告 + 查菜单树 + 一
91
91
  2. 扫 data.ts 收集所有 logicValue(DICT_CODE)
92
92
  3. 差集 = 待新建 → 用户确认
93
93
  4. 逐个调 wls_dict_upsert(含 module + items)
94
- 5. 更新 .github/reports/SYS_DICT_INFO.md
94
+ 5. 更新 .wl-skills/reports/SYS_DICT_INFO.md
95
95
  ```
96
96
 
97
97
  **配置依赖**:env.local.json → `dict.moduleId`
@@ -153,7 +153,7 @@ wls_code_scan ← 概览:页面目录、API_CONFIG、文件完整性
153
153
 
154
154
  **用户典型话术**:"先 mock 一下"、"假数据"、"后端没好先能跑"
155
155
 
156
- **推荐**:`page-codegen` 的 mock-first 规则。Mock 架构详见 `docs/mock-architecture.md`。
156
+ **推荐**:`page-codegen` 的 mock-first 规则。Mock 架构详见 `.wl-skills/docs/mock-architecture.md`。
157
157
 
158
158
  ```
159
159
  mock/
@@ -107,4 +107,4 @@ bin/wl-skills.js (init/update)
107
107
  | 通用 Agent | `AGENTS.md` (root) | ❌ | 新兴跨平台规范 |
108
108
  | Qoder | `.qoder/rules/conventions.md` | ✅ | 项目规则文件 |
109
109
 
110
- > 所有这些编辑器在加载完根配置后,**都支持按指令读取项目内任意文件**(含 `.github/standards/`、`.github/skills/`、`.github/guides/`),所以本架构的"懒加载门控 + 子目录规范"对所有编辑器**有效**。
110
+ > 所有这些编辑器在加载完根配置后,**都支持按指令读取项目内任意文件**(含 `.wl-skills/standards/`、`.wl-skills/skills/`、`.wl-skills/guides/`),所以本架构的"懒加载门控 + 子目录规范"对所有编辑器**有效**。
@@ -7,7 +7,7 @@
7
7
  "headerFile": "github-copilot.txt",
8
8
  "outputPath": ".github/copilot-instructions.md",
9
9
  "enabled": true,
10
- "_note": "Copilot 唯一识别 .github/ 的编辑器。该文件实际就是 files/.github/copilot-instructions.md 直接复制,不加 header。"
10
+ "_note": "Copilot 唯一识别 .github/ 的编辑器。v2.11+ 薄壳入口,引导 AI 读取 .wl-skills/copilot-instructions-full.md 完整地图。"
11
11
  },
12
12
  {
13
13
  "name": "claude-code",
@@ -53,16 +53,16 @@ spec-doc-parse // 规范线:wl-skills-design 标准说
53
53
 
54
54
  | Skill | input_from | output_file | next_suggest |
55
55
  |---|---|---|---|
56
- | `prototype-scan` | 原型/非规范详设/口述需求 | `.github/reports/PROTOTYPE_SCAN_*.md` | `business-doc-extract`(资料达模块级)或 `api-contract` |
57
- | `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`(处理完阻断/待确认项后) |
58
- | `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`(项目需求依据) |
59
- | `api-contract` | `prototype-scan` 输出、`spec-doc-parse` 输出、`docs/business/0X-xx/requirement.md` + `field.md` 或用户口述接口信息 | `src/views/**/api.md` | `page-codegen` |
60
- | `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` |
61
- | `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
+ | `prototype-scan` | 原型/非规范详设/口述需求 | `.wl-skills/reports/PROTOTYPE_SCAN_*.md` | `business-doc-extract`(资料达模块级)或 `api-contract` |
57
+ | `spec-doc-parse` | wl-skills-design 标准说明书(`.wl-skills/docs/spec/{项目代号}/ch1-3.md` + `4.x-*.md` + `4.N-data-report.md`) | `.wl-skills/reports/SPEC_PARSE_*.md`(含 page-spec JSON + 解析报告) | `api-contract`(处理完阻断/待确认项后) |
58
+ | `business-doc-extract` | 已发布原型目录 / 详设 / 字段实体 / 字典资料 / 现有页面 + `api.md` / `prototype-scan` 输出 | `.wl-skills/docs/business/index.md` + `.wl-skills/docs/business/open-questions.md` + `.wl-skills/docs/business/0X-xx/{index,requirement,dictionary,field}.md` | `api-contract` 或 `page-codegen`(项目需求依据) |
59
+ | `api-contract` | `prototype-scan` 输出、`spec-doc-parse` 输出、`.wl-skills/docs/business/0X-xx/requirement.md` + `field.md` 或用户口述接口信息 | `src/views/**/api.md` | `page-codegen` |
60
+ | `page-codegen` | `api.md` / page-spec / 用户口述需求 | `src/views/**/{index.vue,data.ts,index.scss,api.md}` + `.wl-skills/reports/SYS_MENU_INFO.md` | `convention-audit`;如有菜单则 `menu-sync` |
61
+ | `convention-audit` | 任意源码目录或文件;`--mode spec-align` 时额外入 `spec-doc-parse` 的 page-spec / 说明书 | `.wl-skills/reports/AUDIT_*.md`;`--mode spec-align` 输出 `SPEC_GAP_*.md` | 有可自动修复项时 `code-fix`;有菜单/字典/权限差异时对应 sync Skill |
62
62
  | `code-fix` | `convention-audit` 报告 | 源码 diff / 修复摘要 | **强制** `wl-skills validate` 复扫(自动执行,不等确认);可选 `convention-audit --quick` |
63
- | `menu-sync` | `.github/reports/SYS_MENU_INFO.md` | 后端菜单数据 + 同步摘要 | `permission-sync`(如需角色授权/动作) |
64
- | `dict-sync` | `.github/reports/SYS_DICT_INFO.md` | 后端字典数据 + 同步摘要 | `convention-audit` 复扫(如页面依赖字典) |
65
- | `permission-sync` | `.github/reports/SYS_PERMISSION_INFO.md` 或用户口述权限需求 | 后端角色/授权/动作数据 + 同步摘要 | `convention-audit` 复扫权限码使用 |
63
+ | `menu-sync` | `.wl-skills/reports/SYS_MENU_INFO.md` | 后端菜单数据 + 同步摘要 | `permission-sync`(如需角色授权/动作) |
64
+ | `dict-sync` | `.wl-skills/reports/SYS_DICT_INFO.md` | 后端字典数据 + 同步摘要 | `convention-audit` 复扫(如页面依赖字典) |
65
+ | `permission-sync` | `.wl-skills/reports/SYS_PERMISSION_INFO.md` 或用户口述权限需求 | 后端角色/授权/动作数据 + 同步摘要 | `convention-audit` 复扫权限码使用 |
66
66
  | `template-extract` | 成熟页面目录 | `templates/domains/**/TPL-*.md` 或模板草案 | `page-codegen` 复用新模板 |
67
67
 
68
68
  ---
@@ -43,7 +43,7 @@ skills/
43
43
  | Skill 名 | 状态 | 路径 | MCP 工具依赖 | 触发关键词 |
44
44
  | ---------------- | ------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
45
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 标准说明书**) |
46
+ | spec-doc-parse | ✅ 启用 | `skills/core/spec-doc-parse/SKILL.md` | — | 解析说明书 / 解析需求文档 / 规范文档转页面 / 根据说明书生成 / IPO 转页面 / 功能编码 / .wl-skills/docs/spec(**wl-skills-design 标准说明书**) |
47
47
  | api-contract | ✅ 启用 | `skills/core/api-contract/SKILL.md` | — | 接口约定 / api.md / 字段定义 / 前后端对齐 / 接口设计 |
48
48
  | page-codegen | ✅ 启用 | `skills/core/page-codegen/SKILL.md` | `wls_validate_page` / `wls_doctor_ui` | 生成页面 / 创建页面 / 代码生成 / vue页面 / 按原型生成 / 帮我生成 / 列表页 / 管理页 / 台账 / mock / 假数据 / 先能跑 / AGGrid / skills-ui |
49
49
  | convention-audit | ✅ 启用 | `skills/core/convention-audit/SKILL.md` | `wls_code_scan` / `wls_audit_report_push` | 规范审计 / 代码审计 / 规范检查 / 对齐规范 / 规范偏差 / 接手新项目 / 存量代码分析 / 项目体检 |
@@ -60,7 +60,7 @@ skills/
60
60
 
61
61
  ## 调度规则
62
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。
63
+ 0. **优先级 0(最高)— 双线隔离**:若用户输入路径含 `.wl-skills/docs/spec/`,或文档含功能编码 `/[A-Z]{2,6}[0-9]{3}/` / IPO 表「处理逻辑」/ 流程五要素,**强制路由 `spec-doc-parse`(规范线)**,跳过 `prototype-scan` 的所有模式匹配。反之,Axure HTML / 截图 / 口述 / 非规范零散详设走 `prototype-scan`(原型线)。两线最终汇聚到同一份 page-spec JSON。
64
64
  1. **首先加载** `_best-practices.md`(场景索引,语义级路由依据),结合用户意图判断属于哪个场景
65
65
  2. 按场景指向的 Skill,`read_file` 加载对应 SKILL.md
66
66
  3. SKILL.md 中标注的 `必读 standards` 按 `standards/index.md` 任务类型映射加载
@@ -69,7 +69,7 @@ skills/
69
69
  6. 在 SKILL.md 指示下输出 **Pre-flight 声明**(强制约定式输出)
70
70
  7. 页面生成任务必须额外读取 `standards/12-base-table.md`,并执行 `BaseTable + render-type="agGrid" + cid + defineColumns + renderOps` 硬约束
71
71
  8. 若消息包含“风格 / skills-ui / 状态标签 / 操作列 / AGGrid”,同时建议运行 `wl-skills doctor-ui`
72
- 9. `business-doc-extract` 不依赖关键词匹配,AI 必须按 `资料源 + 意图 + 范围` 三因素自行判断;缺资料时先询问用户提供原型/详设/字段资料路径,不要凭推断写入 `docs/business`
72
+ 9. `business-doc-extract` 不依赖关键词匹配,AI 必须按 `资料源 + 意图 + 范围` 三因素自行判断;缺资料时先询问用户提供原型/详设/字段资料路径,不要凭推断写入 `.wl-skills/docs/business`
73
73
  10. **闭环强制约定**:code-fix 完成后必须自动执行 `wl-skills validate` 复扫,不等待用户确认
74
74
  11. **高风险 Skill 确认机制**:以下 Skill 触发前必须二次确认用户意图(输出“即将执行 XX,确认继续?”):
75
75
  - `page-codegen`(会创建/覆盖文件)