@agile-team/wl-skills-kit 2.10.0 → 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.
- package/CHANGELOG.md +35 -0
- package/README.md +7 -7
- package/bin/wl-skills.js +418 -29
- package/files/.github/copilot-instructions.md +24 -369
- package/files/.wl-skills/copilot-instructions-full.md +233 -0
- package/files/{docs → .wl-skills/docs}/jh-pagination.md +2 -2
- package/files/{docs → .wl-skills/docs}/page-query-hook-best-practices.md +3 -3
- package/files/{.github → .wl-skills}/guides/README.md +1 -1
- package/files/{.github → .wl-skills}/guides/architecture.md +5 -5
- package/files/{.github → .wl-skills}/guides/mcp-setup.md +1 -1
- package/files/{.github → .wl-skills}/guides/usage.md +8 -8
- package/files/{.github → .wl-skills}/reports/SYS_MENU_INFO.md +1 -1
- package/files/{.github → .wl-skills}/reports/SYS_PERMISSION_INFO.md +1 -1
- 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
- package/files/{.github → .wl-skills}/skills/_best-practices.md +20 -7
- package/files/{.github → .wl-skills}/skills/_compat/README.md +1 -1
- package/files/{.github → .wl-skills}/skills/_compat/editors.json +1 -1
- package/files/{.github → .wl-skills}/skills/_compat/headers/cursor-mdc.txt +1 -1
- package/files/{.github → .wl-skills}/skills/_compat/headers/kiro.txt +1 -1
- package/files/{.github → .wl-skills}/skills/_compat/headers/trae.txt +1 -1
- package/files/{.github → .wl-skills}/skills/_pipeline.md +23 -11
- package/files/{.github → .wl-skills}/skills/_registry.md +10 -4
- package/files/{.github → .wl-skills}/skills/core/business-doc-extract/SKILL.md +27 -27
- package/files/{.github → .wl-skills}/skills/core/business-doc-extract/USAGE.md +22 -22
- package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/business-index.md +1 -1
- package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/business-open-questions.md +1 -1
- package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-dictionary.md +1 -1
- package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-field.md +1 -1
- package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-index.md +2 -2
- package/files/{.github → .wl-skills}/skills/core/business-doc-extract/templates/module-requirement.md +2 -2
- package/files/{.github → .wl-skills}/skills/core/convention-audit/SKILL.md +52 -7
- package/files/{.github → .wl-skills}/skills/core/convention-audit/USAGE.md +1 -1
- package/files/{.github → .wl-skills}/skills/core/page-codegen/SKILL.md +33 -13
- package/files/{.github → .wl-skills}/skills/core/page-codegen/USAGE.md +1 -1
- package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-DETAIL-TABS.md +7 -7
- package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-DRIVEN.md +5 -5
- package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-FORM-ROUTE.md +2 -2
- package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-RECORD-FORM.md +1 -1
- package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-TREE-LIST.md +1 -1
- package/files/{.github → .wl-skills}/skills/core/prototype-scan/SKILL.md +11 -11
- package/files/{.github → .wl-skills}/skills/core/prototype-scan/USAGE.md +3 -3
- package/files/{.github → .wl-skills}/skills/core/spec-doc-parse/SKILL.md +9 -9
- package/files/{.github → .wl-skills}/skills/core/spec-doc-parse/USAGE.md +6 -6
- package/files/{.github → .wl-skills}/skills/core/template-extract/SKILL.md +1 -1
- package/files/{.github → .wl-skills}/skills/core/template-extract/USAGE.md +1 -1
- package/files/{.github → .wl-skills}/skills/ops/code-fix/SKILL.md +135 -96
- package/files/{.github → .wl-skills}/skills/sync/_mcp-guardrail.md +3 -3
- package/files/{.github → .wl-skills}/skills/sync/dict-sync/SKILL.md +5 -5
- package/files/{.github → .wl-skills}/skills/sync/dict-sync/USAGE.md +2 -2
- package/files/{.github → .wl-skills}/skills/sync/menu-sync/SKILL.md +6 -6
- package/files/{.github → .wl-skills}/skills/sync/menu-sync/USAGE.md +3 -3
- package/files/{.github → .wl-skills}/skills/sync/menu-sync/env/guide.md +2 -2
- package/files/{.github → .wl-skills}/skills/sync/permission-sync/SKILL.md +3 -3
- package/files/{.github → .wl-skills}/skills/sync/permission-sync/USAGE.md +1 -1
- package/files/{src → .wl-skills/src}/components/global/C_Splitter/index.vue +2 -2
- package/files/{src → .wl-skills/src}/components/local/c_formModal/README.md +1 -1
- package/files/{src → .wl-skills/src}/components/local/c_formSections/README.md +2 -2
- package/files/{src → .wl-skills/src}/components/remote/BaseForm/README.md +2 -2
- package/files/{src → .wl-skills/src}/components/remote/BaseQuery/README.md +4 -4
- package/files/{src → .wl-skills/src}/components/remote/BaseTable/README.md +2 -2
- package/files/{src → .wl-skills/src}/components/remote/BaseToolbar/README.md +1 -1
- package/files/{.github → .wl-skills}/standards/02-code-structure.md +1 -1
- package/files/{.github → .wl-skills}/standards/08-git.md +1 -1
- package/files/{.github → .wl-skills}/standards/11-form-validation.md +1 -1
- package/files/{.github → .wl-skills}/standards/13-platform-components.md +15 -15
- package/files/{.github → .wl-skills}/standards/14-layout-containers.md +4 -4
- package/files/{.github → .wl-skills}/standards/index.md +1 -1
- package/files/{demo → .wl-skills/templates}/README.md +3 -3
- package/files/eslint.config.wl-skills.cjs +123 -0
- package/lib/ast-rules.js +769 -0
- package/lib/vite-plugin-wl-skills.js +97 -0
- package/mcp/tools/projectTools.js +17 -1
- package/package.json +19 -2
- /package/files/{docs → .wl-skills/docs}/jh-date-range.md +0 -0
- /package/files/{docs → .wl-skills/docs}/jh-date.md +0 -0
- /package/files/{docs → .wl-skills/docs}/jh-dept-picker.md +0 -0
- /package/files/{docs → .wl-skills/docs}/jh-drag-row.md +0 -0
- /package/files/{docs → .wl-skills/docs}/jh-file-upload.md +0 -0
- /package/files/{docs → .wl-skills/docs}/jh-picker.md +0 -0
- /package/files/{docs → .wl-skills/docs}/jh-select.md +0 -0
- /package/files/{docs → .wl-skills/docs}/jh-text.md +0 -0
- /package/files/{docs → .wl-skills/docs}/jh-textarea.md +0 -0
- /package/files/{docs → .wl-skills/docs}/jh-user-picker.md +0 -0
- /package/files/{docs → .wl-skills/docs}/mock-architecture.md +0 -0
- /package/files/{docs → .wl-skills/docs}/request.md +0 -0
- /package/files/{.github → .wl-skills}/reports/README.md +0 -0
- /package/files/{.github → .wl-skills}/reports/SYS_DICT_INFO.md +0 -0
- /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
- /package/files/{.github → .wl-skills}/skills/_compat/headers/agents.txt +0 -0
- /package/files/{.github → .wl-skills}/skills/_compat/headers/claude-code.txt +0 -0
- /package/files/{.github → .wl-skills}/skills/_compat/headers/cline.txt +0 -0
- /package/files/{.github → .wl-skills}/skills/_compat/headers/cursor-rules.txt +0 -0
- /package/files/{.github → .wl-skills}/skills/_compat/headers/github-copilot.txt +0 -0
- /package/files/{.github → .wl-skills}/skills/_compat/headers/qoder.txt +0 -0
- /package/files/{.github → .wl-skills}/skills/_compat/headers/windsurf.txt +0 -0
- /package/files/{.github → .wl-skills}/skills/core/api-contract/SKILL.md +0 -0
- /package/files/{.github → .wl-skills}/skills/core/api-contract/USAGE.md +0 -0
- /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/_index.md +0 -0
- /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/domains/_CONTRIBUTING.md +0 -0
- /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/domains/produce/TPL-OPERATION-STATION.md +0 -0
- /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/domains/sale/README.md +0 -0
- /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-CHANGE-HISTORY.md +0 -0
- /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-LIST.md +0 -0
- /package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-MASTER-DETAIL.md +0 -0
- /package/files/{.github → .wl-skills}/skills/domain/README.md +0 -0
- /package/files/{.github → .wl-skills}/skills/ops/code-fix/USAGE.md +0 -0
- /package/files/{.github → .wl-skills}/skills/sync/env.local.json +0 -0
- /package/files/{.github → .wl-skills}/skills/sync/menu-sync/env/env.local.json +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_ParentView/index.vue +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_RightToolbar/data.ts +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_RightToolbar/index.scss +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_RightToolbar/index.vue +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_Splitter/index.scss +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_SvgIcon/index.scss +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_SvgIcon/index.vue +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_SvgIcon/svgicon.js +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/README.md +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/config.ts +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/index.scss +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/index.vue +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_TagStatus/types.ts +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_Tree/README.md +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_Tree/data.ts +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_Tree/index.scss +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_Tree/index.vue +0 -0
- /package/files/{src → .wl-skills/src}/components/global/C_Tree/types.ts +0 -0
- /package/files/{src → .wl-skills/src}/components/local/c_formModal/data.ts +0 -0
- /package/files/{src → .wl-skills/src}/components/local/c_formModal/index.scss +0 -0
- /package/files/{src → .wl-skills/src}/components/local/c_formModal/index.vue +0 -0
- /package/files/{src → .wl-skills/src}/components/local/c_formSections/data.ts +0 -0
- /package/files/{src → .wl-skills/src}/components/local/c_formSections/index.scss +0 -0
- /package/files/{src → .wl-skills/src}/components/local/c_formSections/index.vue +0 -0
- /package/files/{src → .wl-skills/src}/components/local/c_listModal/data.ts +0 -0
- /package/files/{src → .wl-skills/src}/components/local/c_listModal/index.scss +0 -0
- /package/files/{src → .wl-skills/src}/components/local/c_listModal/index.vue +0 -0
- /package/files/{src → .wl-skills/src}/components/local/c_spliterTitle/index.scss +0 -0
- /package/files/{src → .wl-skills/src}/components/local/c_spliterTitle/index.vue +0 -0
- /package/files/{src → .wl-skills/src}/components/remote/AGGrid/README.md +0 -0
- /package/files/{src → .wl-skills/src}/types/page.ts +0 -0
- /package/files/{.github → .wl-skills}/standards/01-toolchain.md +0 -0
- /package/files/{.github → .wl-skills}/standards/03-comments.md +0 -0
- /package/files/{.github → .wl-skills}/standards/04-coding-basics.md +0 -0
- /package/files/{.github → .wl-skills}/standards/05-logging.md +0 -0
- /package/files/{.github → .wl-skills}/standards/06-security.md +0 -0
- /package/files/{.github → .wl-skills}/standards/07-config.md +0 -0
- /package/files/{.github → .wl-skills}/standards/09-typescript.md +0 -0
- /package/files/{.github → .wl-skills}/standards/10-pinia.md +0 -0
- /package/files/{.github → .wl-skills}/standards/12-base-table.md +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/api.md +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-form/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-form/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-form/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-history/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-history/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-history/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/api.md +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/api.md +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-detail/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/api.md +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/add-demo/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/add-demo/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/add-demo/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/billet-flame-cut-plan/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/billet-flame-cut-plan/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/billet-flame-cut-plan/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/domestic-trade-order/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/domestic-trade-order/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/domestic-trade-order/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/index.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/heat-batch-return/meltDialog.vue +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/metallurgical-spec/data.ts +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/metallurgical-spec/index.scss +0 -0
- /package/files/{demo → .wl-skills/templates}/sale/demo/metallurgical-spec/index.vue +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prototype-scan
|
|
3
|
-
description: "Use when: analyzing Axure exported HTML prototype files to extract page inventory, classify interaction patterns, identify reusable components, and produce a structured page checklist for Vue development. Also supports NON-standard detailed design documents (free-form MD/Word) or natural language descriptions as input. DO NOT use for standard requirement-spec documents produced by wl-skills-design (path contains docs/spec/, has function codes like PMMB001, IPO tables, flow five-elements) — route those to spec-doc-parse instead. Triggers on: prototype analysis, axure scan, page inventory, 原型解析, 页面清单, axure转vue, 口述需求, 自然语言建页面, natural language page request, 建个页面, 写个页面, 口头描述页面."
|
|
3
|
+
description: "Use when: analyzing Axure exported HTML prototype files to extract page inventory, classify interaction patterns, identify reusable components, and produce a structured page checklist for Vue development. Also supports NON-standard detailed design documents (free-form MD/Word) or natural language descriptions as input. DO NOT use for standard requirement-spec documents produced by wl-skills-design (path contains .wl-skills/docs/spec/, has function codes like PMMB001, IPO tables, flow five-elements) — route those to spec-doc-parse instead. Triggers on: prototype analysis, axure scan, page inventory, 原型解析, 页面清单, axure转vue, 口述需求, 自然语言建页面, natural language page request, 建个页面, 写个页面, 口头描述页面."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Skill: 原型解析(prototype-scan)
|
|
@@ -17,7 +17,7 @@ description: "Use when: analyzing Axure exported HTML prototype files to extract
|
|
|
17
17
|
| **模式 A(Axure)** | Axure HTML 文件包目录 | 已有原型设计,AI 全量扫描 HTML |
|
|
18
18
|
| **模式 B(非规范详设)** | MD/Word/表格格式的零散详细设计 | 已有非规范详设文档,AI 解析结构化字段 |
|
|
19
19
|
|
|
20
|
-
> ⚠️ **双线隔离(必读)**:本 Skill 走「原型线」。若输入是 wl-skills-design 产出的**标准需求设计说明书**(路径含
|
|
20
|
+
> ⚠️ **双线隔离(必读)**:本 Skill 走「原型线」。若输入是 wl-skills-design 产出的**标准需求设计说明书**(路径含 `.wl-skills/docs/spec/`、含功能编码 `/[A-Z]{2,6}[0-9]{3}/`、含 IPO 表「处理逻辑」、含流程五要素),属于「规范线」,**禁止本 Skill 接管**,必须路由到 `core/spec-doc-parse/SKILL.md`。两线各自解析,最终都汇聚到同一份 page-spec JSON,下游 `api-contract` / `page-codegen` 无感知来源。
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
@@ -188,7 +188,7 @@ AI 根据提取的信息,内部构建 page-spec JSON(**不输出给用户**
|
|
|
188
188
|
|
|
189
189
|
### 4. 组件匹配
|
|
190
190
|
|
|
191
|
-
对照平台已有组件(详细 API 见
|
|
191
|
+
对照平台已有组件(详细 API 见 `.wl-skills/docs/jh-*.md`):
|
|
192
192
|
|
|
193
193
|
| 功能区 | 组件 | 说明 |
|
|
194
194
|
| -------- | ----------------------- | ------------------------------------ |
|
|
@@ -200,15 +200,15 @@ AI 根据提取的信息,内部构建 page-spec JSON(**不输出给用户**
|
|
|
200
200
|
| 左右分割 | jh-drag-col | 树形+列表必备,设 `:leftWidth` + #left/#right slot |
|
|
201
201
|
| 树形面板 | C_Tree | 含搜索+Tab 切换 |
|
|
202
202
|
| 下拉选择 | jh-select | dict 属性自动加载字典数据 |
|
|
203
|
-
| 日期选择 | jh-date / jh-date-range | 参见
|
|
204
|
-
| 用户选择 | jh-user-picker | 参见
|
|
205
|
-
| 部门选择 | jh-dept-picker | 参见
|
|
206
|
-
| 文件上传 | jh-file-upload | 参见
|
|
203
|
+
| 日期选择 | jh-date / jh-date-range | 参见 `.wl-skills/docs/jh-date.md` |
|
|
204
|
+
| 用户选择 | jh-user-picker | 参见 `.wl-skills/docs/jh-user-picker.md` |
|
|
205
|
+
| 部门选择 | jh-dept-picker | 参见 `.wl-skills/docs/jh-dept-picker.md` |
|
|
206
|
+
| 文件上传 | jh-file-upload | 参见 `.wl-skills/docs/jh-file-upload.md` |
|
|
207
207
|
|
|
208
208
|
**新建组件判断:**
|
|
209
209
|
|
|
210
|
-
- 3+ 页面相同逻辑 →
|
|
211
|
-
- 同模块 2 页面共用 →
|
|
210
|
+
- 3+ 页面相同逻辑 → `.wl-skills/src/components/global/C_PascalCase/`
|
|
211
|
+
- 同模块 2 页面共用 → `.wl-skills/src/components/local/c_camelCase/`
|
|
212
212
|
- 业务强耦合 → 页面 `components/` 目录下
|
|
213
213
|
|
|
214
214
|
### 5. pages.ts 注册名推断
|
|
@@ -236,7 +236,7 @@ AI 根据提取的信息,内部构建 page-spec JSON(**不输出给用户**
|
|
|
236
236
|
"pageName": "客户档案", // 中文名
|
|
237
237
|
"kebabName": "customer-archive", // kebab-case 目录名
|
|
238
238
|
"pattern": "LIST", // LIST | MASTER_DETAIL | TREE_LIST | DETAIL_TABS | FORM_ROUTE | CHANGE_HISTORY | RECORD_FORM | OPERATION_STATION | TEMPLATE_DRIVEN
|
|
239
|
-
"path": "views/sale/
|
|
239
|
+
"path": "views/sale/.wl-skills/templates/khda/customer-archive/",
|
|
240
240
|
"pagesTs": ["customer-archive", "客户档案"], // pages.ts 注册项
|
|
241
241
|
"platformComponents": ["BaseQuery", "BaseTable", "jh-pagination"],
|
|
242
242
|
"newComponents": [], // 需要新建的组件名(空数组=不需要新建)
|
|
@@ -407,7 +407,7 @@ const [模块名]Module = gProd("[base-path]", {
|
|
|
407
407
|
|
|
408
408
|
## 输入模式 B:非规范详细设计文档
|
|
409
409
|
|
|
410
|
-
> ⚠️ **模式 B 排除范围**:若文档路径含
|
|
410
|
+
> ⚠️ **模式 B 排除范围**:若文档路径含 `.wl-skills/docs/spec/`,或文档内含 `§四 功能设计详细规范` / IPO 表格(含「处理逻辑」二级标题)/ 功能编码(正则 `/[A-Z]{2,6}[0-9]{3}/`)/ 流程说明五要素,
|
|
411
411
|
> **表明这是 wl-skills-design 的标准产出,不触发本模式**,应转发 `core/spec-doc-parse/SKILL.md`。
|
|
412
412
|
> 本模式只处理**非规范、零散的**详设(本来就不规范的输入,AI 自由发挥是帮助);面对高精度规范文档时,专属解析才能保证零损耗。
|
|
413
413
|
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
### 示例 1:HTML 原型扫描
|
|
32
32
|
|
|
33
33
|
```
|
|
34
|
-
你:扫描 docs/prototypes/客户管理/ 下的所有原型,生成页面清单。
|
|
34
|
+
你:扫描 .wl-skills/docs/prototypes/客户管理/ 下的所有原型,生成页面清单。
|
|
35
35
|
AI:[读取 SKILL.md → 输出 Pre-flight 声明]
|
|
36
36
|
Pre-flight:
|
|
37
|
-
├─
|
|
37
|
+
├─ 来源:.wl-skills/docs/prototypes/客户管理/ 共 7 个 HTML
|
|
38
38
|
├─ 输出:reports/PROTOTYPE_SCAN_客户管理_20260426.md
|
|
39
39
|
└─ 不会生成代码
|
|
40
40
|
[扫描中... 3 分钟]
|
|
@@ -64,7 +64,7 @@ AI:[输出 Pre-flight]
|
|
|
64
64
|
|
|
65
65
|
## 输出物
|
|
66
66
|
|
|
67
|
-
`.
|
|
67
|
+
`.wl-skills/reports/PROTOTYPE_SCAN_<模块>_<YYYYMMDD>.md` —— 包含:
|
|
68
68
|
|
|
69
69
|
- 页面清单表格(页面英文名 / 中文名 / 类型 / 路由 / 字段概要)
|
|
70
70
|
- 各页面查询条件、表格列、表单字段的初步定义
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spec-doc-parse
|
|
3
|
-
description: "Use when: parsing STANDARD requirement-design specification documents produced by wl-skills-design (path contains docs/spec/, files like ch1-3.md / 4.x-{module}.md / 4.N-data-report.md, with function codes like PMMB001, IPO tables containing 处理逻辑, and flow descriptions with five-elements) into the SAME page-spec JSON consumed by page-codegen. This is the 规范线 (spec line) counterpart to prototype-scan (原型线). Self-validating, self-correcting, report-producing. Triggers on: 解析说明书, 解析需求文档, 解析详设, 规范文档转页面, 根据说明书生成, spec doc parse, IPO 转页面, docs/spec, 功能编码, 需求设计说明书."
|
|
3
|
+
description: "Use when: parsing STANDARD requirement-design specification documents produced by wl-skills-design (path contains .wl-skills/docs/spec/, files like ch1-3.md / 4.x-{module}.md / 4.N-data-report.md, with function codes like PMMB001, IPO tables containing 处理逻辑, and flow descriptions with five-elements) into the SAME page-spec JSON consumed by page-codegen. This is the 规范线 (spec line) counterpart to prototype-scan (原型线). Self-validating, self-correcting, report-producing. Triggers on: 解析说明书, 解析需求文档, 解析详设, 规范文档转页面, 根据说明书生成, spec doc parse, IPO 转页面, .wl-skills/docs/spec, 功能编码, 需求设计说明书."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Skill: 规范文档解构(spec-doc-parse)
|
|
7
7
|
|
|
8
|
-
将 **wl-skills-design
|
|
8
|
+
将 **wl-skills-design 产出的标准《需求设计说明书》**(`.wl-skills/docs/spec/{项目代号}/` 下的 `ch1-3.md` + `4.x-{子模块}.md` + `4.N-data-report.md`)解构为与 `prototype-scan` **完全相同格式的 page-spec JSON**,作为 `api-contract` / `page-codegen` 的输入。
|
|
9
9
|
|
|
10
10
|
> **双线汇聚原则**:原型线(prototype-scan)和规范线(本 Skill)是两条独立的输入线,但**汇聚点只有一个 —— page-spec JSON + api.md**。下游 `page-codegen` 不感知来源,两线代码完全共享。
|
|
11
11
|
> **职责边界**:design 负责「生成标准」,kit 负责「解构标准、完整读取」。本 Skill 是 kit 侧解构能力的承载者。
|
|
@@ -17,9 +17,9 @@ description: "Use when: parsing STANDARD requirement-design specification docume
|
|
|
17
17
|
| 维度 | prototype-scan(原型线) | spec-doc-parse(规范线) |
|
|
18
18
|
|------|--------------------------|--------------------------|
|
|
19
19
|
| 输入 | Axure HTML / 截图 / 口述 / **非规范**详设 | **wl-skills-design 标准说明书** |
|
|
20
|
-
| 识别特征 | 视觉原型、自由格式文档 |
|
|
20
|
+
| 识别特征 | 视觉原型、自由格式文档 | `.wl-skills/docs/spec/` 路径 / 功能编码 `/[A-Z]{2,6}[0-9]{3}/` / IPO 表「处理逻辑」/ 流程五要素 |
|
|
21
21
|
| 解析方式 | 视觉/语义推断(精度 70-95%) | 规范结构精确映射(精度 95-100%) |
|
|
22
|
-
| 禁区 | **不得处理**
|
|
22
|
+
| 禁区 | **不得处理** `.wl-skills/docs/spec/` 标准文档 | **不接受** Axure HTML / 截图 |
|
|
23
23
|
|
|
24
24
|
> 当用户输入命中规范线特征时,**强制走本 Skill**,禁止 prototype-scan 接管(见 `_registry.md` 调度规则「优先级 0」)。
|
|
25
25
|
|
|
@@ -33,7 +33,7 @@ description: "Use when: parsing STANDARD requirement-design specification docume
|
|
|
33
33
|
✅ 已读取 core/prototype-scan/SKILL.md → page-spec JSON 结构定义(统一汇聚格式)
|
|
34
34
|
✅ 已读取 standards/12-base-table.md → AGGrid 列定义约束(供下游 page-codegen)
|
|
35
35
|
✅ 已识别文档结构:{doc-skeleton 5 文件 / 单卷 / 单子模块}
|
|
36
|
-
✅ 来源文件:{docs/spec/{项目代号}/...}
|
|
36
|
+
✅ 来源文件:{.wl-skills/docs/spec/{项目代号}/...}
|
|
37
37
|
✅ 输出:reports/SPEC_PARSE_{模块}_{日期}.md(page-spec JSON + 解析报告)
|
|
38
38
|
✅ 不会生成代码(解析 + 报告,代码生成由 page-codegen 承接)
|
|
39
39
|
```
|
|
@@ -52,7 +52,7 @@ description: "Use when: parsing STANDARD requirement-design specification docume
|
|
|
52
52
|
## 前置检查
|
|
53
53
|
|
|
54
54
|
```
|
|
55
|
-
□
|
|
55
|
+
□ 文档来源路径:.wl-skills/docs/spec/{项目代号}/
|
|
56
56
|
□ 文件清单:ch1-3.md(概述)+ 4.x-{子模块}.md(详细设计)[+ 4.N-data-report.md]
|
|
57
57
|
□ 目标项目路径:src/views/[域]/[模块]/[子模块]/
|
|
58
58
|
□ 服务缩写:从功能编码前缀推断(pm / mmwr / mmsm / sale / hrms / base)
|
|
@@ -82,7 +82,7 @@ Step 9 自验证+报告 Parse Validation 五项检查 + 自动修复 + 解析
|
|
|
82
82
|
依据 `wl-skills-design` 的 `doc-skeleton.md` 5 文件结构识别:
|
|
83
83
|
|
|
84
84
|
```
|
|
85
|
-
docs/spec/{项目代号}/
|
|
85
|
+
.wl-skills/docs/spec/{项目代号}/
|
|
86
86
|
├── ch1-3.md ← 第 1~3 章(总体概述、术语、范围)
|
|
87
87
|
├── 4.1-{子模块名}.md ← 子模块详细设计(流程 + IPO)
|
|
88
88
|
├── 4.2-{子模块名}.md
|
|
@@ -231,7 +231,7 @@ PMMB-A-01-M-03(修改目标) → permission:pmmb:target:edit
|
|
|
231
231
|
|
|
232
232
|
```jsonc
|
|
233
233
|
"notes": [
|
|
234
|
-
"[规范线]
|
|
234
|
+
"[规范线] 来源:.wl-skills/docs/spec/huaxin/4.1-target.md §4.1.4.1 PMMB001",
|
|
235
235
|
"[规范线] 权限码候选:permission:pmmb:target:list / :add / :edit",
|
|
236
236
|
"[规范线] 触发事件:提交后写入 bom_ratio 表并触发重算(见处理逻辑)",
|
|
237
237
|
"[待确认] status 字段 dictCode 推断为 target_status,需后端确认"
|
|
@@ -270,7 +270,7 @@ PMMB-A-01-M-03(修改目标) → permission:pmmb:target:edit
|
|
|
270
270
|
```markdown
|
|
271
271
|
# Spec-Doc Parse 报告
|
|
272
272
|
- 生成时间:{YYYY-MM-DD HH:mm}
|
|
273
|
-
-
|
|
273
|
+
- 来源文件:.wl-skills/docs/spec/{项目代号}/4.x-{子模块}.md
|
|
274
274
|
- 解析范围:{整卷 / 子模块 / 功能编码}
|
|
275
275
|
|
|
276
276
|
## 解析摘要
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
## 这个 Skill 解决什么问题
|
|
9
9
|
|
|
10
|
-
把 **wl-skills-design
|
|
10
|
+
把 **wl-skills-design 产出的标准《需求设计说明书》**(`.wl-skills/docs/spec/` 下的 IPO 表、功能编码、流程五要素)**完整解构**为一份《页面清单》(page-spec JSON),作为后续 `api-contract` 和 `page-codegen` 的输入。
|
|
11
11
|
|
|
12
12
|
一句话:**design 负责「写标准文档」,spec-doc-parse 负责「读懂标准文档、转成可生成代码的结构」。**
|
|
13
13
|
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
| 线 | Skill | 输入 | 何时用 |
|
|
21
21
|
|----|-------|------|--------|
|
|
22
22
|
| **原型线** | `prototype-scan` | Axure 原型 / 截图 / 口述 / 零散详设 | 只有原型、没有规范文档时 |
|
|
23
|
-
| **规范线** | `spec-doc-parse`(本 Skill) | wl-skills-design 标准说明书 | 已有
|
|
23
|
+
| **规范线** | `spec-doc-parse`(本 Skill) | wl-skills-design 标准说明书 | 已有 `.wl-skills/docs/spec/` 标准文档时 |
|
|
24
24
|
|
|
25
25
|
> 两条线最终都汇聚到**同一份 page-spec JSON**,下游代码生成完全一样。
|
|
26
26
|
> 所以:**有标准说明书就走规范线,精度最高(95-100%);只有原型走原型线。**
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
|
|
30
30
|
## 何时使用
|
|
31
31
|
|
|
32
|
-
- 拿到 wl-skills-design 生成的
|
|
32
|
+
- 拿到 wl-skills-design 生成的 `.wl-skills/docs/spec/{项目代号}/4.x-xxx.md`,要把它变成页面
|
|
33
33
|
- 说明书里有功能编码(如 PMMB001)、IPO 表、流程图说明
|
|
34
34
|
- 想把整卷说明书一次性解构成页面清单,再批量生成代码
|
|
35
35
|
|
|
@@ -46,11 +46,11 @@
|
|
|
46
46
|
### 示例 1:解析单个子模块
|
|
47
47
|
|
|
48
48
|
```
|
|
49
|
-
你:解析 docs/spec/huaxin/4.1-target.md,生成页面清单。
|
|
49
|
+
你:解析 .wl-skills/docs/spec/huaxin/4.1-target.md,生成页面清单。
|
|
50
50
|
AI:[读取 SKILL.md → 输出 Pre-flight]
|
|
51
51
|
Pre-flight:
|
|
52
52
|
├─ 识别结构:doc-skeleton 单子模块(4.1 目标管理)
|
|
53
|
-
├─
|
|
53
|
+
├─ 来源:.wl-skills/docs/spec/huaxin/4.1-target.md
|
|
54
54
|
├─ 输出:reports/SPEC_PARSE_target_20260531.md
|
|
55
55
|
└─ 不会生成代码
|
|
56
56
|
[解析中...]
|
|
@@ -62,7 +62,7 @@ AI:[读取 SKILL.md → 输出 Pre-flight]
|
|
|
62
62
|
### 示例 2:误用原型线的自动纠偏
|
|
63
63
|
|
|
64
64
|
```
|
|
65
|
-
你:扫描 docs/spec/huaxin/4.1-target.md 生成页面。
|
|
65
|
+
你:扫描 .wl-skills/docs/spec/huaxin/4.1-target.md 生成页面。
|
|
66
66
|
AI:检测到输入是 wl-skills-design 标准说明书(含功能编码 + IPO 表)。
|
|
67
67
|
→ 这属于「规范线」,已自动切换到 spec-doc-parse(精度更高)。
|
|
68
68
|
[继续按规范线解析]
|
|
@@ -5,7 +5,7 @@ description: "Use when: extracting domain-specific page templates from existing
|
|
|
5
5
|
|
|
6
6
|
# Skill: 模板提取(template-extract)
|
|
7
7
|
|
|
8
|
-
从现有项目的成熟页面提取领域模板,沉淀到 `.
|
|
8
|
+
从现有项目的成熟页面提取领域模板,沉淀到 `.wl-skills/skills/core/page-codegen/templates/domains/`,扩充团队 AI 模板库。
|
|
9
9
|
|
|
10
10
|
> **核心理念**:模板贡献门槛极低 — 开发者只需说出一个页面目录路径,AI 完成 90% 的分析和写作。
|
|
11
11
|
|
|
@@ -90,4 +90,4 @@ A:建议至少同事 review 一下 meta.json + 是否真有复用价值。直
|
|
|
90
90
|
A:贡献者维护一段时间,稳定后由 kit 维护者接管。模板里要写 author + lastUpdate。
|
|
91
91
|
|
|
92
92
|
**Q:能否私有领域只抽到本仓库不发布?**
|
|
93
|
-
A:可以。`templates/domains/` 在 `.
|
|
93
|
+
A:可以。`templates/domains/` 在 `.wl-skills/skills/` 下,跟着业务项目走。kit 包不强制收集。
|
|
@@ -1,96 +1,135 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: code-fix
|
|
3
|
-
description: "Use when: fixing code convention issues found in convention-audit reports. Triggers on: 自动修复, 整改偏差, 修复报告, 规范整改, 修复偏差, code fix, 整改规范."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Skill: 受控自动修复(code-fix)
|
|
7
|
-
|
|
8
|
-
读取 `reports/规范审查报告.md` 中的偏差条目,在用户确认 diff 后执行单条或分组修复。
|
|
9
|
-
|
|
10
|
-
> **前置**:必须先运行 `convention-audit` 生成审计报告,code-fix 依赖其输出。
|
|
11
|
-
> **范围**:仅修复 🟡 / 🟢 等级偏差;🔴 严重偏差必须人工或 page-codegen 重新生成。
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## 工作流
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
reports/规范审查报告.md(convention-audit 输出)
|
|
19
|
-
│
|
|
20
|
-
▼
|
|
21
|
-
[1] 用户从报告挑选 issueId(或 issueGroup),或说"列出可修复项"
|
|
22
|
-
│
|
|
23
|
-
▼
|
|
24
|
-
[2] 解析 issue → 定位文件 + 行号 + 偏差类型
|
|
25
|
-
│
|
|
26
|
-
▼
|
|
27
|
-
[3] 选择修复策略:
|
|
28
|
-
├─ rule-based(如缺 :scoped、缺 cid 等)→ 直接按规则生成 patch
|
|
29
|
-
└─ ai-based(语义性偏差)→ AI 生成 patch
|
|
30
|
-
│
|
|
31
|
-
▼
|
|
32
|
-
[4] Pre-flight 输出 diff 预览(人读,必须等待确认)
|
|
33
|
-
│
|
|
34
|
-
▼
|
|
35
|
-
[5] 用户 yes → 写入文件 + 在报告中标记该条目为 ✅ 已修复
|
|
36
|
-
用户 no → 跳过该 issue,回到挑选界面
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
##
|
|
91
|
-
|
|
92
|
-
|
|
|
93
|
-
| --- | --- |
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
1
|
+
---
|
|
2
|
+
name: code-fix
|
|
3
|
+
description: "Use when: fixing code convention issues found in convention-audit reports. Triggers on: 自动修复, 整改偏差, 修复报告, 规范整改, 修复偏差, code fix, 整改规范."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill: 受控自动修复(code-fix)
|
|
7
|
+
|
|
8
|
+
读取 `reports/规范审查报告.md` 中的偏差条目,在用户确认 diff 后执行单条或分组修复。
|
|
9
|
+
|
|
10
|
+
> **前置**:必须先运行 `convention-audit` 生成审计报告,code-fix 依赖其输出。
|
|
11
|
+
> **范围**:仅修复 🟡 / 🟢 等级偏差;🔴 严重偏差必须人工或 page-codegen 重新生成。
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 工作流
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
reports/规范审查报告.md(convention-audit 输出)
|
|
19
|
+
│
|
|
20
|
+
▼
|
|
21
|
+
[1] 用户从报告挑选 issueId(或 issueGroup),或说"列出可修复项"
|
|
22
|
+
│
|
|
23
|
+
▼
|
|
24
|
+
[2] 解析 issue → 定位文件 + 行号 + 偏差类型
|
|
25
|
+
│
|
|
26
|
+
▼
|
|
27
|
+
[3] 选择修复策略:
|
|
28
|
+
├─ rule-based(如缺 :scoped、缺 cid 等)→ 直接按规则生成 patch
|
|
29
|
+
└─ ai-based(语义性偏差)→ AI 生成 patch
|
|
30
|
+
│
|
|
31
|
+
▼
|
|
32
|
+
[4] Pre-flight 输出 diff 预览(人读,必须等待确认)
|
|
33
|
+
│
|
|
34
|
+
▼
|
|
35
|
+
[5] 用户 yes → 写入文件 + 在报告中标记该条目为 ✅ 已修复
|
|
36
|
+
用户 no → 跳过该 issue,回到挑选界面
|
|
37
|
+
│
|
|
38
|
+
▼
|
|
39
|
+
[6] ★ 强制复扫验证(闭环关键步骤,不可跳过)
|
|
40
|
+
├─ 本轮修复完成后,自动执行 wl-skills validate 检测修复结果
|
|
41
|
+
├─ 如仍有 error → 提示未完全修复,建议继续处理
|
|
42
|
+
└─ 全部通过 → 输出 ✔ 闭环完成,可安全提交
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 强制复扫验证(v2.11+ 闭环保障)
|
|
48
|
+
|
|
49
|
+
> **闭环原则**:code-fix 修复后必须验证修复效果,不允许"改完就走"。
|
|
50
|
+
|
|
51
|
+
AI 在完成**本轮全部修复**后(单条或批量),**必须自动执行**:
|
|
52
|
+
|
|
53
|
+
1. 调用 `wl-skills validate`(或 MCP `wls_validate_page`)对修复文件检测
|
|
54
|
+
2. 检测通过(0 error)→ 输出 "✔ 复扫通过,闭环完成"
|
|
55
|
+
3. 检测仍有 error → 输出残余问题清单,建议继续修复或标记人工
|
|
56
|
+
4. 完成摘要中记录复扫结果
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
## 完成摘要
|
|
60
|
+
- 修复项:{N} 条(rule-based {N} / ai-based {N})
|
|
61
|
+
- 复扫结果:✔ 通过 / ✖ 残余 {N} 个 error
|
|
62
|
+
- 涉及文件:{file list}
|
|
63
|
+
|
|
64
|
+
## 复扫验证
|
|
65
|
+
- 执行:wl-skills validate
|
|
66
|
+
- error: 0 / warn: {N}
|
|
67
|
+
- 结论:可安全提交 / 需继续处理
|
|
68
|
+
|
|
69
|
+
## 建议下一步
|
|
70
|
+
- next_suggest:git add + git commit(复扫通过时)
|
|
71
|
+
- next_suggest:继续 code-fix 或人工处理(复扫未通过时)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**不可跳过**:即使用户说"不用验证了",AI 也必须执行复扫。这是闭环完整性的硬性约束。
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 受控原则(严格执行,不可绕过)
|
|
79
|
+
|
|
80
|
+
| 原则 | 说明 |
|
|
81
|
+
| --- | --- |
|
|
82
|
+
| **不修 🔴** | 严重偏差必须人工或 page-codegen 处理,code-fix 不介入 |
|
|
83
|
+
| **不破坏功能** | 只改报告点名的行,不顺手"重构"周边代码 |
|
|
84
|
+
| **不批量盲改** | 每个文件都先 diff 预览,禁止跳过用户确认 |
|
|
85
|
+
| **不生成新逻辑** | 只修偏差,不做功能补全(那是 page-codegen 的职责) |
|
|
86
|
+
| **范围明确** | 若用户引导修改业务逻辑,必须拒绝并说明原因 |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 偏差类型 → 修复策略
|
|
91
|
+
|
|
92
|
+
| 偏差类型 | 来源 standards | 策略 |
|
|
93
|
+
| --- | --- | --- |
|
|
94
|
+
| EColumn 缺 cid | standards/12-base-table.md | rule-based |
|
|
95
|
+
| 列级 cid 只用缩写前缀(如 `mca-steelCode`) | standards/12-base-table.md | rule-based |
|
|
96
|
+
| scss 文件缺 `:scoped` 包裹 | standards/02-code-structure.md | rule-based |
|
|
97
|
+
| import 路径不规范 | standards/04-coding-basics.md | rule-based |
|
|
98
|
+
| `any` 滥用(> 3 处/页) | standards/09-typescript.md | ai-based |
|
|
99
|
+
| API_CONFIG URL 命名偏差 | api-contract.md | ai-based |
|
|
100
|
+
| 表格列定义与 api.md 字段不一致 | api-contract + data-ts | ai-based |
|
|
101
|
+
| 业务语义偏差(流程不对)| 多 standards 综合 | **不修复,标记人工** |
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 触发命令形态
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
"修复 reports/规范审查报告.md 中的 issue#3" → 单条修复
|
|
109
|
+
"修复 reports/规范审查报告.md 中所有 scss 偏差" → 分组修复
|
|
110
|
+
"修复全部 rule-based 偏差,跳过 ai-based" → 受控批量
|
|
111
|
+
"列出可修复的 issue" → 仅列清单,不动任何文件
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Pre-flight 声明示例
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
🚀 已触发技能 ops/code-fix/SKILL.md → 受控自动修复偏差
|
|
120
|
+
✅ 已读取 reports/规范审查报告.md → 找到 12 条偏差(rule-based 8 条,ai-based 4 条)
|
|
121
|
+
✅ 当前目标:issue#3(EColumn 缺 cid)→ 文件 src/views/sale/order/data.ts L42
|
|
122
|
+
⚠️ 以下操作会修改文件,请在 diff 预览后确认
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 与其他 Skill 的关系
|
|
128
|
+
|
|
129
|
+
| Skill | 关系 |
|
|
130
|
+
| --- | --- |
|
|
131
|
+
| convention-audit | **前置**:必须先有审计报告,code-fix 才有输入 |
|
|
132
|
+
| wl-skills validate | **后置**:修复完成后必须复扫验证(闭环保障) |
|
|
133
|
+
| convention-audit(复扫) | **后置可选**:大规模修复后可触发 --quick 模式复扫 |
|
|
134
|
+
| page-codegen | 互斥:生成新页面用 codegen,不用 fix |
|
|
135
|
+
| template-extract | 无直接关系 |
|
|
@@ -49,12 +49,12 @@ AI 调用 MCP 工具后,按返回内容判定属于哪一类,并按对应剧
|
|
|
49
49
|
|
|
50
50
|
如果工具返回类似:
|
|
51
51
|
- `请在 env.local.json 中填写真实的 gatewayPath(当前为占位值)`
|
|
52
|
-
- `请在 .
|
|
52
|
+
- `请在 .wl-skills/skills/sync/env.local.json 填写 menu.domainId`
|
|
53
53
|
- `配置文件不存在: .../env.local.json`
|
|
54
54
|
|
|
55
55
|
AI **立即转入引导模式**:
|
|
56
56
|
|
|
57
|
-
1. `read_file` 加载 `.
|
|
57
|
+
1. `read_file` 加载 `.wl-skills/skills/sync/menu-sync/env/guide.md`(统一配置说明)
|
|
58
58
|
2. 告诉用户具体哪个字段缺失、获取方式(如 token 抓包、domainId Network 查询)
|
|
59
59
|
3. 等待用户填好 `env.local.json` 后**自动重试同一个 MCP 工具调用**
|
|
60
60
|
4. 直到配置完整、调用成功为止 → 完成闭环
|
|
@@ -95,7 +95,7 @@ AI **立即转入引导模式**:
|
|
|
95
95
|
```
|
|
96
96
|
🚀 已触发技能 {skill-name}/SKILL.md → {一句话用途}
|
|
97
97
|
✅ MCP 工具检查:{要用到的 wls_* 全部列出,✓/✗}
|
|
98
|
-
✅ 已读取 .
|
|
98
|
+
✅ 已读取 .wl-skills/skills/sync/env.local.json → gatewayPath/token/sysAppNo/{其他必填}
|
|
99
99
|
✅ 已读取 {本 Skill 的 SYS_*_INFO.md 基线}
|
|
100
100
|
✅ 操作模式:{pull / push / audit / ...}
|
|
101
101
|
```
|
|
@@ -21,7 +21,7 @@ description: "Use when: syncing data dictionary entries to the backend, pulling
|
|
|
21
21
|
|
|
22
22
|
## 配置(统一配置文件)
|
|
23
23
|
|
|
24
|
-
读取 `.
|
|
24
|
+
读取 `.wl-skills/skills/sync/env.local.json`(已在 `.gitignore`,不入 git):
|
|
25
25
|
|
|
26
26
|
```json
|
|
27
27
|
{
|
|
@@ -50,8 +50,8 @@ description: "Use when: syncing data dictionary entries to the backend, pulling
|
|
|
50
50
|
```
|
|
51
51
|
🚀 已触发技能 dict-sync/SKILL.md → 字典同步
|
|
52
52
|
✅ MCP 工具检查:wls_dict_query / wls_dict_upsert 均可用
|
|
53
|
-
✅ 已读取 .
|
|
54
|
-
✅ 已读取 .
|
|
53
|
+
✅ 已读取 .wl-skills/skills/sync/env.local.json → 网关 + token + sysAppNo + dict.moduleId
|
|
54
|
+
✅ 已读取 .wl-skills/reports/SYS_DICT_INFO.md → 本地字典基线
|
|
55
55
|
✅ 操作模式:{pull / push / audit}
|
|
56
56
|
✅ 目标字典码:{用户指定 / data.ts 扫描结果}
|
|
57
57
|
```
|
|
@@ -142,7 +142,7 @@ logicType: BusLogicDataType.dict, logicValue: "DICT_CODE"
|
|
|
142
142
|
| SALES_COMPANY | 销售公司 | 3 | ✅ created |
|
|
143
143
|
| PRODUCT_SEGMENT | 产品板块 | - | ⏭️ skipped(线上已有) |
|
|
144
144
|
|
|
145
|
-
执行完成后,将新建字典追加写入 `.
|
|
145
|
+
执行完成后,将新建字典追加写入 `.wl-skills/reports/SYS_DICT_INFO.md`。
|
|
146
146
|
|
|
147
147
|
---
|
|
148
148
|
|
|
@@ -165,7 +165,7 @@ logicType: BusLogicDataType.dict, logicValue: "DICT_CODE"
|
|
|
165
165
|
|
|
166
166
|
## SYS_DICT_INFO.md — 本地基线格式
|
|
167
167
|
|
|
168
|
-
路径:`.
|
|
168
|
+
路径:`.wl-skills/reports/SYS_DICT_INFO.md`
|
|
169
169
|
|
|
170
170
|
```markdown
|
|
171
171
|
## ORDER_STATUS(订单状态)
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
|
|
35
35
|
## 前置条件
|
|
36
36
|
|
|
37
|
-
`.
|
|
37
|
+
`.wl-skills/skills/sync/env.local.json`(已 gitignore,每个开发者本地填自己的 token):
|
|
38
38
|
|
|
39
39
|
```json
|
|
40
40
|
{
|
|
@@ -84,7 +84,7 @@ AI:[Pre-flight]
|
|
|
84
84
|
| 维度 | `business-doc-extract` | `dict-sync` |
|
|
85
85
|
|---|---|---|
|
|
86
86
|
| 职责 | 业务理解 / 设计意图 | 线上事实 / 数据落地 |
|
|
87
|
-
| 输出 |
|
|
87
|
+
| 输出 | `.wl-skills/docs/business/0X-xx/dictionary.md`(人读) | 后端字典表(系统读) |
|
|
88
88
|
| 时机 | 项目/模块沉淀阶段 | 联调前 / 上线前 |
|
|
89
89
|
|
|
90
90
|
两者**互不替代**:业务文档说的是"应该有什么字典",dict-sync 解决"线上有没有"。建议顺序:`business-doc-extract` 整理出 dictionary.md 草案 → 评审 → `dict-sync` 落地。
|
|
@@ -9,7 +9,7 @@ description: "Use when: creating system menus for newly generated pages, batch r
|
|
|
9
9
|
|
|
10
10
|
> **背景**:本项目是 Module Federation 子应用,页面在 `pages.ts` 注册后,
|
|
11
11
|
> 还需要在后端菜单表中创建对应记录,系统才能路由到该页面。
|
|
12
|
-
> 设计文档:`.
|
|
12
|
+
> 设计文档:`.wl-skills/guides/architecture.md`
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -19,14 +19,14 @@ description: "Use when: creating system menus for newly generated pages, batch r
|
|
|
19
19
|
|
|
20
20
|
| 数据 | 来源 | 说明 |
|
|
21
21
|
| ------------------------------------------------ | -------------------------- | --------------------------------------- |
|
|
22
|
-
| 菜单名称、路径、组件、权限、隐藏、排序、应用编码 | `.
|
|
22
|
+
| 菜单名称、路径、组件、权限、隐藏、排序、应用编码 | `.wl-skills/reports/SYS_MENU_INFO*.md` | 由 page-codegen 追加写入,AI 直接读取 |
|
|
23
23
|
| `parentMenuNameCode` | `wls_menu_query` 查询菜单树 | 从父级节点获取,无需手填 |
|
|
24
24
|
| **gatewayPath、parentMenuId、sysAppNo、token** | `env.local.json` | 可通过 token/接口辅助提取 |
|
|
25
25
|
| **domainId** | 用户确认 / 菜单后台 Network | 当前权限下无法总是自动获取,需确认 |
|
|
26
26
|
|
|
27
27
|
### 配置文件(统一维护,菜单/字典/权限共用)
|
|
28
28
|
|
|
29
|
-
优先读取 `.
|
|
29
|
+
优先读取 `.wl-skills/skills/sync/env.local.json`(v2.1.5+ 统一配置):
|
|
30
30
|
|
|
31
31
|
```json
|
|
32
32
|
{
|
|
@@ -49,7 +49,7 @@ menu-sync 读取规则:`parentMenuId` 优先从 `menu.parentMenuId` 读取,
|
|
|
49
49
|
|
|
50
50
|
1. **首次**:按 `env/guide.md` 填写 `skills/sync/env.local.json` 的字段
|
|
51
51
|
2. **之后**:直接对 AI 说「帮我创建菜单」/「同步菜单」/「补菜单」
|
|
52
|
-
3. AI 自动执行:读 `.
|
|
52
|
+
3. AI 自动执行:读 `.wl-skills/reports/SYS_MENU_INFO*.md` → 读 `env.local.json` → 优先调用 `wls_menu_sync_from_report` 一步完成确定性同步;如需手动拆分,则 `wls_menu_query` 查 domain 菜单树 → 先 upsert 一级目录 → 用返回 id upsert 二级页面菜单 → 输出 created/updated/skipped 结果表
|
|
53
53
|
4. **全程无需手动执行任何命令**
|
|
54
54
|
|
|
55
55
|
SYS_MENU_INFO.md 是 menu-sync Skill 的输入数据源:
|
|
@@ -81,7 +81,7 @@ SYS_MENU_INFO.md 是 menu-sync Skill 的输入数据源:
|
|
|
81
81
|
### 前置条件
|
|
82
82
|
|
|
83
83
|
1. MCP 已连接(工具列表中可见 `wls_menu_sync_from_report`)
|
|
84
|
-
2. `.
|
|
84
|
+
2. `.wl-skills/skills/sync/env.local.json` 已填写 `token`(纯 JWT,不含 `bearer ` 前缀)、`gatewayPath`、`sysAppNo`、`menu.parentMenuId`、`menu.domainId`
|
|
85
85
|
|
|
86
86
|
### 输入
|
|
87
87
|
|
|
@@ -253,7 +253,7 @@ POST /system/menu/batchPush
|
|
|
253
253
|
- 按 `componentPath` 做 upsert(存在则更新结构字段,不存在则新增)
|
|
254
254
|
- **不删除**后端多余的菜单
|
|
255
255
|
- **不碰**权限/角色绑定字段
|
|
256
|
-
- 详见 `.
|
|
256
|
+
- 详见 `.wl-skills/guides/architecture.md`
|
|
257
257
|
|
|
258
258
|
### pages.ts 扩展
|
|
259
259
|
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
|
|
32
32
|
## 前置条件
|
|
33
33
|
|
|
34
|
-
`.
|
|
34
|
+
`.wl-skills/skills/sync/env.local.json`(首次使用先填写,已加入 `.gitignore`):
|
|
35
35
|
|
|
36
36
|
```json
|
|
37
37
|
{
|
|
@@ -70,8 +70,8 @@ AI:[Pre-flight]
|
|
|
70
70
|
|
|
71
71
|
## 输出物
|
|
72
72
|
|
|
73
|
-
1. **基线文件**:`.
|
|
74
|
-
2. **同步报告**:`.
|
|
73
|
+
1. **基线文件**:`.wl-skills/reports/SYS_MENU_INFO.md` —— 线上菜单的本地基线(团队 review 用)
|
|
74
|
+
2. **同步报告**:`.wl-skills/reports/MENU_SYNC_<YYYYMMDD>.md` —— 本次新增/更新了哪些菜单
|
|
75
75
|
3. **回滚 SQL**:报告里附带 DELETE SQL,用于回退
|
|
76
76
|
|
|
77
77
|
---
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
## 配置文件位置(优先使用新统一路径)
|
|
8
8
|
|
|
9
|
-
**新路径(v2.1.5+ 推荐)**:`.
|
|
10
|
-
**兼容路径(老版)**:`.
|
|
9
|
+
**新路径(v2.1.5+ 推荐)**:`.wl-skills/skills/sync/env.local.json`
|
|
10
|
+
**兼容路径(老版)**:`.wl-skills/skills/sync/menu-sync/env/env.local.json`
|
|
11
11
|
|
|
12
12
|
AI 优先读新路径,如不存在自动回落到兼容路径。
|
|
13
13
|
|