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