@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.
- package/CHANGELOG.md +18 -0
- package/README.md +7 -7
- package/bin/wl-skills.js +49 -16
- package/files/.github/copilot-instructions.md +23 -465
- 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 +5 -5
- 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/_pipeline.md +9 -9
- package/files/{.github → .wl-skills}/skills/_registry.md +3 -3
- 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 +6 -6
- package/files/{.github → .wl-skills}/skills/core/convention-audit/USAGE.md +1 -1
- package/files/{.github → .wl-skills}/skills/core/page-codegen/SKILL.md +10 -10
- 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/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/{demo → .wl-skills/templates}/README.md +3 -3
- package/lib/vite-plugin-wl-skills.js +97 -0
- package/package.json +2 -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-mdc.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/kiro.txt +0 -0
- /package/files/{.github → .wl-skills}/skills/_compat/headers/qoder.txt +0 -0
- /package/files/{.github → .wl-skills}/skills/_compat/headers/trae.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/SKILL.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/{.github → .wl-skills}/standards/index.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
|
@@ -53,25 +53,25 @@ BaseQuery → BaseToolbar → BaseTable → jh-pagination
|
|
|
53
53
|
|
|
54
54
|
---
|
|
55
55
|
|
|
56
|
-
## docs/ 文档前置读取清单
|
|
56
|
+
## .wl-skills/docs/ 文档前置读取清单
|
|
57
57
|
|
|
58
58
|
生成涉及以下场景的代码时,AI 必须先读取对应文档(按需,不全读):
|
|
59
59
|
|
|
60
60
|
| 涉及组件 / 模式 | 必读文档 |
|
|
61
61
|
| --------------------------- | --------------------------------------------- |
|
|
62
|
-
| `jh-date` / `jh-date-range` |
|
|
63
|
-
| `jh-file-upload` |
|
|
64
|
-
| `jh-user-picker` |
|
|
65
|
-
| `jh-dept-picker` |
|
|
66
|
-
| `jh-select` |
|
|
67
|
-
| `jh-picker` |
|
|
68
|
-
| `jh-text` |
|
|
69
|
-
| `jh-pagination` |
|
|
70
|
-
| `jh-drag-row` |
|
|
71
|
-
| HTTP 请求方式 |
|
|
72
|
-
| 页面 Hook 模式 |
|
|
73
|
-
| BaseQuery / BaseTable 等 |
|
|
74
|
-
| c_formModal / c_listModal |
|
|
62
|
+
| `jh-date` / `jh-date-range` | `.wl-skills/docs/jh-date.md` / `.wl-skills/docs/jh-date-range.md` |
|
|
63
|
+
| `jh-file-upload` | `.wl-skills/docs/jh-file-upload.md` |
|
|
64
|
+
| `jh-user-picker` | `.wl-skills/docs/jh-user-picker.md` |
|
|
65
|
+
| `jh-dept-picker` | `.wl-skills/docs/jh-dept-picker.md` |
|
|
66
|
+
| `jh-select` | `.wl-skills/docs/jh-select.md` |
|
|
67
|
+
| `jh-picker` | `.wl-skills/docs/jh-picker.md` |
|
|
68
|
+
| `jh-text` | `.wl-skills/docs/jh-text.md` |
|
|
69
|
+
| `jh-pagination` | `.wl-skills/docs/jh-pagination.md` |
|
|
70
|
+
| `jh-drag-row` | `.wl-skills/docs/jh-drag-row.md` |
|
|
71
|
+
| HTTP 请求方式 | `.wl-skills/docs/request.md` |
|
|
72
|
+
| 页面 Hook 模式 | `.wl-skills/docs/page-query-hook-best-practices.md` |
|
|
73
|
+
| BaseQuery / BaseTable 等 | `.wl-skills/src/components/remote/{Component}/README.md` |
|
|
74
|
+
| c_formModal / c_listModal | `.wl-skills/src/components/local/{component}/README.md` |
|
|
75
75
|
|
|
76
76
|
> AI 在 Pre-flight 声明中明确列出已读文档。
|
|
77
77
|
|
|
@@ -120,4 +120,4 @@ export function createPage() {
|
|
|
120
120
|
- [ ] 日期组件用了 jh-date 系列,没有用 el-date-picker?
|
|
121
121
|
- [ ] HTTP 请求都走 `this.getAction / postAction`,没有 import axios?
|
|
122
122
|
- [ ] data.ts 继承了 AbstractPageQueryHook?
|
|
123
|
-
- [ ] 涉及 jh-_ 组件时已读取对应 docs/jh-_.md?
|
|
123
|
+
- [ ] 涉及 jh-_ 组件时已读取对应 .wl-skills/docs/jh-_.md?
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
## 2. C_Splitter 为什么必须废弃(根因)
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
`.wl-skills/src/components/global/C_Splitter/index.vue` 内部实现:
|
|
24
24
|
|
|
25
25
|
```js
|
|
26
26
|
onMounted(() => {
|
|
@@ -99,7 +99,7 @@ onMounted(() => {
|
|
|
99
99
|
若现存项目仍引用 `C_Splitter`:
|
|
100
100
|
|
|
101
101
|
1. **当前版本**:保留组件文件,在 `onMounted` 顶部加 `console.warn("[C_Splitter 已废弃] ...")` 提示
|
|
102
|
-
2. **下一版本**:删除
|
|
102
|
+
2. **下一版本**:删除 `.wl-skills/src/components/global/C_Splitter/`,全量替换为 `jh-drag-col/row`
|
|
103
103
|
3. **lint 规则**:`wl-skills validate` / `wl-skills doctor-ui` 命中 `import C_Splitter` 或 `<C_Splitter` 时报 ERROR
|
|
104
104
|
|
|
105
105
|
---
|
|
@@ -148,7 +148,7 @@ done
|
|
|
148
148
|
不会。`jh-drag-col` / `jh-drag-row` 都是直接 `<slot />`,没有 vnode 缓存或额外 watcher,嵌套层数与原生 div 等价。
|
|
149
149
|
|
|
150
150
|
**Q4:必须保留 `C_Splitter` 组件文件吗?**
|
|
151
|
-
保留一段过渡期(带 deprecation warning)即可。等仓库扫描 0 命中后,下一个大版本直接删除
|
|
151
|
+
保留一段过渡期(带 deprecation warning)即可。等仓库扫描 0 命中后,下一个大版本直接删除 `.wl-skills/src/components/global/C_Splitter/`。
|
|
152
152
|
|
|
153
153
|
---
|
|
154
154
|
|
|
@@ -156,4 +156,4 @@ done
|
|
|
156
156
|
|
|
157
157
|
- `12-base-table.md` — BaseTable 内部高度撑满依赖父容器有明确高度,jh-drag-col/row 已正确给子区设 `height: 100%`
|
|
158
158
|
- `13-platform-components.md` — 平台组件对照表已同步移除 C_Splitter
|
|
159
|
-
-
|
|
159
|
+
- 真实场景案例:`.wl-skills/templates/produce/aiflow/mmwr-customer-detail/`(master-detail 使用 jh-drag-row)
|
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
| `mmwr-customer-apply-change-history/` | CHANGE_HISTORY | 客户变更历史比对 |
|
|
19
19
|
| `mmwr-customer-detail/` | DETAIL_TABS | 客户详情(多 Tab) |
|
|
20
20
|
|
|
21
|
-
## sale/
|
|
21
|
+
## sale/.wl-skills/templates/ — 销售域(平台默认样例,5 个页面)
|
|
22
22
|
|
|
23
23
|
| 目录 | 模板类型 | 说明 |
|
|
24
24
|
| ------------------------ | ------------- | -------------------------------- |
|
|
25
25
|
| `domestic-trade-order/` | LIST | 标准内贸订单列表 |
|
|
26
26
|
| `metallurgical-spec/` | MASTER_DETAIL | 冶金规范(jh-drag-row 上下分栏) |
|
|
27
|
-
| `add-
|
|
27
|
+
| `add-.wl-skills/templates/` | FORM_ROUTE | 新增表单演示(c_formSections) |
|
|
28
28
|
| `billet-flame-cut-plan/` | LIST | 坯料火焰切割计划列表 |
|
|
29
29
|
| `heat-batch-return/` | LIST + Modal | 炉批退判(含自定义弹窗) |
|
|
30
30
|
|
|
@@ -41,4 +41,4 @@
|
|
|
41
41
|
|
|
42
42
|
## 贡献
|
|
43
43
|
|
|
44
|
-
新增样例请放在
|
|
44
|
+
新增样例请放在 `.wl-skills/templates/{domain}/{submodule}/{page-name}/`,提 PR 到 wl-skills-kit 仓库。
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* lib/vite-plugin-wl-skills.js — wl-skills-kit Vite 构建时约束插件
|
|
5
|
+
*
|
|
6
|
+
* 这是不依赖业务项目配置 CI 的"第五层防线":
|
|
7
|
+
* dev 模式 → 启动时扫描 src/views,在终端输出 warning
|
|
8
|
+
* build 模式 → 构建前全量扫描,有 error 级别违规时中断构建
|
|
9
|
+
*
|
|
10
|
+
* 使用方式(业务项目 vite.config.ts):
|
|
11
|
+
* import wlSkillsPlugin from "@agile-team/wl-skills-kit/lib/vite-plugin-wl-skills.js";
|
|
12
|
+
* export default defineConfig({
|
|
13
|
+
* plugins: [vue(), wlSkillsPlugin()],
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* 或在 init/update 时自动注入到 vite.config.ts 的 plugins 数组(可选)。
|
|
17
|
+
*
|
|
18
|
+
* 约束层级定位:
|
|
19
|
+
* ① AI 指令层(文字) → 可被忽略
|
|
20
|
+
* ② validate 检测层 → 手动调用
|
|
21
|
+
* ③ pre-commit 层 → --no-verify 可绕过
|
|
22
|
+
* ④ CI 层 → 业务项目需手动配置
|
|
23
|
+
* ⑤ Vite 插件层(本插件) → 构建时自动执行,无需额外配置 ← 不可绕开
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
const path = require("path");
|
|
27
|
+
|
|
28
|
+
let astRules = null;
|
|
29
|
+
try {
|
|
30
|
+
astRules = require("./ast-rules.js");
|
|
31
|
+
} catch {
|
|
32
|
+
astRules = null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function wlSkillsPlugin(options) {
|
|
36
|
+
options = options || {};
|
|
37
|
+
const scanRel = options.scanRel || "src/views";
|
|
38
|
+
const failOnWarn = options.failOnWarn || false; // build 模式下 warn 也中断(等同 --strict)
|
|
39
|
+
|
|
40
|
+
return {
|
|
41
|
+
name: "wl-skills-guard",
|
|
42
|
+
apply: "all", // serve + build 都生效
|
|
43
|
+
|
|
44
|
+
configResolved(config) {
|
|
45
|
+
// 只在业务项目运行,跳过 kit 自身
|
|
46
|
+
if (!astRules || !astRules.hasAstAvailable()) return;
|
|
47
|
+
|
|
48
|
+
const root = config.root || process.cwd();
|
|
49
|
+
const isBuild = config.command === "build";
|
|
50
|
+
|
|
51
|
+
const result = astRules.runAstRules(root, scanRel);
|
|
52
|
+
if (!result.astAvailable) return;
|
|
53
|
+
|
|
54
|
+
const errors = result.issues.filter((i) => i.level === "error");
|
|
55
|
+
const warns = result.issues.filter((i) => i.level === "warn");
|
|
56
|
+
|
|
57
|
+
if (result.issues.length === 0) {
|
|
58
|
+
if (isBuild) {
|
|
59
|
+
console.log("\n ✔ wl-skills-guard: 页面规范检查通过(" + result.pages + " 个页面)\n");
|
|
60
|
+
}
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// 输出所有问题
|
|
65
|
+
console.log("\n wl-skills-guard: 发现 " + result.issues.length + " 个规范偏差(" + result.pages + " 页面)");
|
|
66
|
+
for (const issue of result.issues.slice(0, 30)) {
|
|
67
|
+
const icon = issue.level === "error" ? "✖" : "⚠";
|
|
68
|
+
console.log(" " + icon + " [" + issue.rule + "] " + issue.dir + " — " + issue.text);
|
|
69
|
+
}
|
|
70
|
+
if (result.issues.length > 30) {
|
|
71
|
+
console.log(" ... 还有 " + (result.issues.length - 30) + " 条");
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// build 模式:error 中断构建
|
|
75
|
+
if (isBuild && errors.length > 0) {
|
|
76
|
+
console.log("\n ✖ wl-skills-guard: 构建中断 — " + errors.length + " 个 error 级规范违规");
|
|
77
|
+
console.log(" → 修复后重新构建,或使用 wl-skills:ignore 标记豁免");
|
|
78
|
+
throw new Error(
|
|
79
|
+
"wl-skills-guard: " + errors.length + " 个 error 级规范违规,构建已中断",
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// build 模式 + failOnWarn:warn 也中断
|
|
84
|
+
if (isBuild && failOnWarn && warns.length > 0) {
|
|
85
|
+
console.log("\n ✖ wl-skills-guard: 构建中断 — " + warns.length + " 个 warn 级规范违规(failOnWarn)");
|
|
86
|
+
throw new Error(
|
|
87
|
+
"wl-skills-guard: " + warns.length + " 个 warn 级违规(failOnWarn 模式)",
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
console.log("");
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
module.exports = wlSkillsPlugin;
|
|
97
|
+
module.exports.default = wlSkillsPlugin;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agile-team/wl-skills-kit",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "AI Skill 模板包 v2.
|
|
3
|
+
"version": "2.11.0",
|
|
4
|
+
"description": "AI Skill 模板包 v2.11.0 — 14 条编码规范 + 11 个 AI Skill + 17 个 MCP Tool,一条命令导入 Vue 3 项目(.wl-skills/ 统一隔离架构)",
|
|
5
5
|
"main": "./bin/wl-skills.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"wl-skills": "bin/wl-skills.js"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/domains/_CONTRIBUTING.md
RENAMED
|
File without changes
|
|
File without changes
|
/package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/domains/sale/README.md
RENAMED
|
File without changes
|
|
File without changes
|
/package/files/{.github → .wl-skills}/skills/core/page-codegen/templates/universal/TPL-LIST.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/index.scss
RENAMED
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add/index.vue
RENAMED
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/data.ts
RENAMED
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/index.scss
RENAMED
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-add-form/index.vue
RENAMED
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/data.ts
RENAMED
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/index.scss
RENAMED
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change/index.vue
RENAMED
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-apply-change-form/data.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-customer-archive/index.scss
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/api.md
RENAMED
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/data.ts
RENAMED
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/index.scss
RENAMED
|
File without changes
|
/package/files/{demo → .wl-skills/templates}/produce/aiflow/mmwr-temp-customer-archive/index.vue
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|