@agile-team/wl-skills-kit 2.11.1 → 2.11.3
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 +25 -0
- package/README.md +38 -21
- package/bin/wl-skills.js +27 -3
- package/files/.wl-skills/docs/jh-pagination.md +505 -505
- package/files/.wl-skills/docs/request.md +940 -940
- package/files/.wl-skills/docs/validate-exempt.md +113 -0
- package/files/.wl-skills/guides/architecture.md +1 -1
- package/files/.wl-skills/skills/_compat/headers/cursor-mdc.txt +1 -1
- package/files/.wl-skills/skills/_compat/headers/kiro.txt +1 -1
- package/files/.wl-skills/skills/_compat/headers/trae.txt +1 -1
- package/files/.wl-skills/skills/core/convention-audit/SKILL.md +3 -3
- package/files/.wl-skills/skills/core/spec-doc-parse/SKILL.md +332 -332
- package/files/.wl-skills/skills/core/spec-doc-parse/USAGE.md +97 -97
- package/files/.wl-skills/skills/sync/permission-sync/USAGE.md +107 -107
- package/files/.wl-skills/src/components/global/C_ParentView/index.vue +3 -3
- package/files/.wl-skills/src/components/global/C_RightToolbar/index.vue +157 -157
- package/files/.wl-skills/src/components/global/C_SvgIcon/index.vue +31 -31
- package/files/.wl-skills/src/components/global/C_SvgIcon/svgicon.js +10 -10
- package/files/.wl-skills/src/components/global/C_TagStatus/README.md +264 -264
- package/files/.wl-skills/src/components/global/C_TagStatus/config.ts +192 -192
- package/files/.wl-skills/src/components/global/C_TagStatus/index.vue +106 -106
- package/files/.wl-skills/src/components/global/C_TagStatus/types.ts +64 -64
- package/files/.wl-skills/src/components/global/C_Tree/README.md +153 -153
- package/files/.wl-skills/src/components/global/C_Tree/index.scss +42 -42
- package/files/.wl-skills/src/components/global/C_Tree/index.vue +78 -78
- package/files/.wl-skills/src/components/global/C_Tree/types.ts +59 -59
- package/files/.wl-skills/src/components/local/c_formModal/README.md +235 -235
- package/files/.wl-skills/src/components/local/c_formModal/data.ts +95 -95
- package/files/.wl-skills/src/components/local/c_formModal/index.scss +8 -8
- package/files/.wl-skills/src/components/local/c_formModal/index.vue +107 -107
- package/files/.wl-skills/src/components/local/c_formSections/data.ts +175 -175
- package/files/.wl-skills/src/components/local/c_formSections/index.scss +280 -280
- package/files/.wl-skills/src/components/local/c_formSections/index.vue +429 -429
- package/files/.wl-skills/src/components/local/c_listModal/data.ts +41 -41
- package/files/.wl-skills/src/components/local/c_listModal/index.vue +136 -136
- package/files/.wl-skills/src/components/local/c_spliterTitle/index.scss +25 -25
- package/files/.wl-skills/src/components/local/c_spliterTitle/index.vue +21 -21
- package/files/.wl-skills/src/components/remote/AGGrid/README.md +530 -530
- package/files/.wl-skills/src/components/remote/BaseForm/README.md +508 -508
- package/files/.wl-skills/src/components/remote/BaseQuery/README.md +865 -865
- package/files/.wl-skills/src/components/remote/BaseTable/README.md +941 -941
- package/files/.wl-skills/src/components/remote/BaseToolbar/README.md +496 -496
- package/files/.wl-skills/src/types/page.ts +24 -24
- package/files/.wl-skills/standards/04-coding-basics.md +39 -1
- package/files/.wl-skills/standards/09-typescript.md +26 -3
- package/files/.wl-skills/standards/12-base-table.md +56 -4
- package/files/.wl-skills/standards/13-platform-components.md +1 -0
- package/files/.wl-skills/standards/index.md +2 -2
- package/files/.wl-skills/templates/README.md +44 -44
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add/api.md +54 -54
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add/data.ts +346 -346
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add/index.scss +1 -1
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add/index.vue +28 -28
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add-form/data.ts +115 -115
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add-form/index.scss +44 -44
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-add-form/index.vue +43 -43
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change/data.ts +338 -338
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change/index.scss +1 -1
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change/index.vue +28 -28
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change-form/data.ts +115 -115
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change-form/index.scss +44 -44
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-apply-change-form/index.vue +43 -43
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-archive/api.md +88 -88
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-archive/data.ts +601 -601
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-archive/index.scss +1 -1
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-archive/index.vue +64 -64
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-detail/api.md +67 -67
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-detail/data.ts +286 -286
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-detail/index.scss +139 -139
- package/files/.wl-skills/templates/produce/aiflow/mmwr-customer-detail/index.vue +318 -318
- package/files/.wl-skills/templates/produce/aiflow/mmwr-temp-customer-archive/api.md +98 -98
- package/files/.wl-skills/templates/produce/aiflow/mmwr-temp-customer-archive/data.ts +543 -543
- package/files/.wl-skills/templates/produce/aiflow/mmwr-temp-customer-archive/index.scss +1 -1
- package/files/.wl-skills/templates/produce/aiflow/mmwr-temp-customer-archive/index.vue +52 -52
- package/files/.wl-skills/templates/sale/demo/add-demo/data.ts +518 -518
- package/files/.wl-skills/templates/sale/demo/billet-flame-cut-plan/data.ts +524 -524
- package/files/.wl-skills/templates/sale/demo/billet-flame-cut-plan/index.scss +154 -154
- package/files/.wl-skills/templates/sale/demo/billet-flame-cut-plan/index.vue +117 -117
- package/files/.wl-skills/templates/sale/demo/domestic-trade-order/data.ts +308 -308
- package/files/.wl-skills/templates/sale/demo/domestic-trade-order/index.scss +99 -99
- package/files/.wl-skills/templates/sale/demo/domestic-trade-order/index.vue +77 -77
- package/files/.wl-skills/templates/sale/demo/heat-batch-return/data.ts +367 -367
- package/files/.wl-skills/templates/sale/demo/heat-batch-return/index.scss +100 -100
- package/files/.wl-skills/templates/sale/demo/heat-batch-return/index.vue +170 -170
- package/files/.wl-skills/templates/sale/demo/heat-batch-return/meltDialog.vue +320 -320
- package/files/.wl-skills/templates/sale/demo/metallurgical-spec/data.ts +824 -824
- package/lib/ast-rules.js +395 -12
- package/mcp/config.js +46 -46
- package/mcp/registry.js +6 -1
- package/mcp/tools/projectTools.js +9 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.11.3] - 2026-06-21
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **validate 项目级豁免配置(零功能影响)**:业务项目根可放 `.wl-skills-validate.json`,对表单设计器/行内编辑明细表等 BaseTable 受限场景批量豁免 `R3`/`R10`,kit 不主动创建、不存在时行为完全不变。新增 `lib/ast-rules.js` 的 `loadExemptions`,`runAstRules` 内部加载(CLI/MCP 自动一致);与单文件注释豁免(`wl-skills:ignore R3`)互补。配置 schema 详见 `.wl-skills/docs/validate-exempt.md`
|
|
8
|
+
- **standards/12 豁免规则重写**:明确"标准列表强制 BaseTable+AGGrid / BaseTable 可胜任仍优先 BaseTable / BaseTable 受限特殊场景可降级 el-table"三层优先级,两层豁免机制(单文件注释 + 项目级配置),不再一棍子拍死
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **README/脚本系统性滞后修正**:v2.11.0 目录从 `.github/` 迁移到 `.wl-skills/` 后,README 大量路径残留未同步;`sync-version.js`/`verify-version.js` 仍硬编码"13 条"(规范已升 14 条),导致 verify-version 的 headers 校验**静默失效**、`npm version` 触发 sync-version 会把"14 条"**回写成 13 条**。全部修正为 14 条 + `.wl-skills/` 路径,校验链路恢复
|
|
13
|
+
- `_compat/headers/{cursor-mdc,trae,kiro}.txt` 源文件注释 `.github/copilot-instructions.md` → `.wl-skills/copilot-instructions-full.md`
|
|
14
|
+
|
|
15
|
+
## [2.11.2] - 2026-06-21
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- **R13 圈复杂度执行器(standard 04,阻断级)**:新增 `lib/ast-rules.js` 的 R13,对 `index.vue`/`data.ts` 的每个函数计算 McCabe 圈复杂度(与 ESLint `complexity` 规则定义一致),`> 10` 报 error 阻断提交。补齐 standard 04 第 14 条核心约定 + 降复杂度手法示例(提前 return / 查表驱动 / 抽子函数)
|
|
20
|
+
- **R14 类型错误零容忍执行器(standard 09,阻断级)**:新增 `runTypeCheck`,委托 `vue-tsc --noEmit`(回退 `tsc`)解析 TS error;无 `tsconfig`/checker 时优雅降级 warn。CLI 新增 `--typecheck`、MCP `wls_validate_page` 新增 `typecheck` 入参双通道一致。CI 应固定 `validate --typecheck --strict`
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- **standard 09 由 🟡建议 升级为 🔴必遵 + 阻断**:`vue-tsc --noEmit` 必须 0 error,职责分离——ESLint 管风格,R14 管类型正确性
|
|
25
|
+
- `rule-coverage.md` 执行器图例 R1~R12 → R1~R14,登记 R13/R14 两条阻断约定;`convention-audit` 维度 09 改为 R14 委托
|
|
26
|
+
- `eslint.config.ts` 复杂度 `warn 60` 修正为 `warn 10`(项目级硬阻断由 R13 兜底,此处仅作 kit 自身开发提示)
|
|
27
|
+
|
|
3
28
|
## [2.11.1] - 2026-06-15
|
|
4
29
|
|
|
5
30
|
### Added
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @agile-team/wl-skills-kit
|
|
2
2
|
|
|
3
|
-
**AI Skill 模板包 v2.11.
|
|
3
|
+
**AI Skill 模板包 v2.11.3** — 一键将 14 条规范、11 个 AI Skill、17 个 MCP Tool、编辑器 MCP 配置、文档导入 Vue 3 项目。
|
|
4
4
|
|
|
5
5
|
让 AI 编辑器(Copilot / Cursor / Windsurf / Claude Code / Cline / Kiro / Trae / Qoder / 通用 Agents)**真正理解项目规范**,从原型/详设到完整页面代码全流程自动化。
|
|
6
6
|
|
|
@@ -25,7 +25,13 @@ pnpm standards:init # 本包维护/业务项目均可
|
|
|
25
25
|
|
|
26
26
|
## 版本亮点
|
|
27
27
|
|
|
28
|
-
**v2.11.
|
|
28
|
+
**v2.11.3**:确定性闭环再加固 —— 编码最佳实践从"文档约定"接线到执行器,特殊场景豁免可配置。
|
|
29
|
+
|
|
30
|
+
- **新增 R13 圈复杂度执行器(standard 04)**:对每个函数计 McCabe 圈复杂度(与 ESLint `complexity` 一致),`>10` 报 error 阻断;补"降复杂度手法"示例
|
|
31
|
+
- **新增 R14 类型错误零容忍(standard 09 升级为 🔴必遵)**:委托 `vue-tsc/tsc --noEmit` 解析 TS error,`validate --typecheck` / MCP `typecheck:true` 触发,无 checker 优雅降级;ESLint 管风格、R14 管正确性,职责分离
|
|
32
|
+
- **新增 validate 项目级豁免配置**:`.wl-skills-validate.json` 对表单设计器/行内编辑明细表等 BaseTable 受限场景批量豁免 R3/R10,零功能影响(kit 不主动创建);与单文件注释豁免互补
|
|
33
|
+
|
|
34
|
+
**v2.11.1**:精准卡控闭环 —— 把"约定"接线到确定性执行器,生成即精准。
|
|
29
35
|
|
|
30
36
|
- **新增 page-spec 落盘 + spec-align 确定性比对(S1~S5)**:`page-codegen` 生成页面时同步写出 `page-spec.json`(原型约定真值),`validate` 用 AST 解析 `data.ts` 的 `queryDef/columnsDef/toolbarDef` 与之逐项比对——查询字段顺序、表格列顺序、工具栏按钮顺序与颜色、操作列按钮集合、label 文字保真。过去只靠 AI 自觉的 6 条"精准实现"约定,现在变成可阻断的硬卡控
|
|
31
37
|
- **新增 `wl-skills fix` 确定性机械修复**:对幂等、零语义判断的偏差(BaseTable 补 `render-type`、`::v-deep`→`:deep()`、行尾空白、文件末尾换行)做确定性自动修复,AI 只处理需语义判断的部分;`--dry-run` 预览
|
|
@@ -115,7 +121,7 @@ docs/business/0X-xx/{index,requirement,dictionary,field}.md
|
|
|
115
121
|
api.md(页面级前后端契约)
|
|
116
122
|
│
|
|
117
123
|
▼ [Skill: page-codegen]
|
|
118
|
-
data.ts + index.vue + index.scss(
|
|
124
|
+
data.ts + index.vue + index.scss(14 条 standards 自动满足)
|
|
119
125
|
│
|
|
120
126
|
▼ [Skill: convention-audit] ← 也可对存量代码单独触发
|
|
121
127
|
reports/AUDIT_AI_*.md + AUDIT_HUMAN_*.md
|
|
@@ -147,9 +153,9 @@ wl-skills-kit/ ← 你正看的这个仓库
|
|
|
147
153
|
│ └── wl-skills.js CLI 实现(init / update / clean / check / diff / validate / validate-page / fix / doctor-ui / export / mock-clean)
|
|
148
154
|
│
|
|
149
155
|
├── files/ ★★★ 真正会被打包并复制到业务项目的内容 ★★★
|
|
150
|
-
│ ├── .
|
|
151
|
-
│ │ ├── copilot-instructions.md
|
|
152
|
-
│ │ ├── standards/
|
|
156
|
+
│ ├── .wl-skills/ 统一隔离目录(所有 Skill/规范/指南/报告/模板)
|
|
157
|
+
│ │ ├── copilot-instructions-full.md AI 主入口完整指令(业务项目根另有薄壳)
|
|
158
|
+
│ │ ├── standards/ 14 条规范
|
|
153
159
|
│ │ ├── skills/ Skill 目录(含 _compat/ 多编辑器适配源)
|
|
154
160
|
│ │ ├── guides/ 人读指南
|
|
155
161
|
│ │ └── reports/ 领域基线模板(菜单/字典/权限)
|
|
@@ -182,14 +188,14 @@ wl-skills-kit/ ← 你正看的这个仓库
|
|
|
182
188
|
```
|
|
183
189
|
你的业务项目/
|
|
184
190
|
│
|
|
185
|
-
├── .
|
|
186
|
-
│ ├── copilot-instructions.md
|
|
187
|
-
│ ├── standards/
|
|
191
|
+
├── .wl-skills/ ← 来自本包 files/.wl-skills/(统一隔离)
|
|
192
|
+
│ ├── copilot-instructions-full.md Copilot 完整指令
|
|
193
|
+
│ ├── standards/ 14 条模块化规范 + index.md 门控
|
|
188
194
|
│ │ ├── 01-toolchain.md
|
|
189
195
|
│ │ ├── 02-code-structure.md
|
|
190
|
-
│ │ ├── ... (共
|
|
191
|
-
│ │ └──
|
|
192
|
-
│ ├── skills/
|
|
196
|
+
│ │ ├── ... (共 14 条)
|
|
197
|
+
│ │ └── 14-layout-containers.md
|
|
198
|
+
│ ├── skills/ 11 个启用 Skill(全部激活)
|
|
193
199
|
│ │ ├── _registry.md ★ 触发词 → SKILL 路径单一数据源
|
|
194
200
|
│ │ ├── _compat/ 多 AI 编辑器适配(配置 + headers)
|
|
195
201
|
│ │ ├── core/ 核心通用 Skill
|
|
@@ -208,6 +214,7 @@ wl-skills-kit/ ← 你正看的这个仓库
|
|
|
208
214
|
│ │ │ └── code-fix/ { SKILL.md } 已启用
|
|
209
215
|
│ │ └── domain/ 领域专属(按需创建)
|
|
210
216
|
│ ├── guides/ 人读指南(usage.md / architecture.md)
|
|
217
|
+
│ ├── docs/ 组件 API 文档 + validate 豁免配置说明
|
|
211
218
|
│ └── reports/ AI 生成报告(追加不覆盖)
|
|
212
219
|
│ ├── SYS_MENU_INFO.md 线上菜单基线
|
|
213
220
|
│ ├── SYS_DICT_INFO.md 线上字典基线
|
|
@@ -225,12 +232,13 @@ wl-skills-kit/ ← 你正看的这个仓库
|
|
|
225
232
|
├── .trae/rules/conventions.md Trae(含 alwaysApply frontmatter)
|
|
226
233
|
├── .qoder/rules/conventions.md Qoder
|
|
227
234
|
│
|
|
235
|
+
├── .wl-skills-validate.json ← 可选:validate 项目级豁免配置(kit 不创建)
|
|
228
236
|
├── mock/ ← 来自本包 files/mock/(init 自动写入)
|
|
229
237
|
│ ├── _utils.ts 共享工具(pageResult / ok / paginate / nowStr / pick)
|
|
230
238
|
│ └── [业务域]/[模块].ts 按域分目录,page-codegen 自动生成
|
|
231
239
|
│
|
|
232
|
-
├── docs/
|
|
233
|
-
├── demo/
|
|
240
|
+
├── docs/ 组件 API 文档 + mock-architecture.md
|
|
241
|
+
├── demo/ 领域样例
|
|
234
242
|
└── src/
|
|
235
243
|
├── components/ 全局/局部/远程组件
|
|
236
244
|
└── types/ 类型桶文件
|
|
@@ -238,7 +246,7 @@ wl-skills-kit/ ← 你正看的这个仓库
|
|
|
238
246
|
|
|
239
247
|
> **业务项目方准则**:
|
|
240
248
|
>
|
|
241
|
-
> - 主入口是 `.
|
|
249
|
+
> - 主入口是 `.wl-skills/copilot-instructions-full.md`(Copilot 用),业务项目根的薄壳文件指向它;**其他根配置文件是它的拷贝 + 各自特化 frontmatter**
|
|
242
250
|
> - 修改规范 → **不要**改业务项目里的副本,**升级 wl-skills-kit 包 + `update`** 才不会被覆盖
|
|
243
251
|
> - reports/ 里的内容是团队累积数据,`update` 不会覆盖,可放心 commit
|
|
244
252
|
|
|
@@ -262,11 +270,19 @@ pnpm dlx @agile-team/wl-skills-kit check
|
|
|
262
270
|
pnpm dlx @agile-team/wl-skills-kit diff
|
|
263
271
|
|
|
264
272
|
# 静态检查 src/views 页面文件完整性 + AGGrid/cid/skills-ui/mock
|
|
273
|
+
# 内含 AST 语义级检测 R1~R14(正则覆盖不到的语义约束)
|
|
274
|
+
# R13 圈复杂度 / R14 类型错误需 --typecheck 开启
|
|
265
275
|
pnpm dlx @agile-team/wl-skills-kit validate
|
|
266
276
|
|
|
277
|
+
# 含类型检查 R14(vue-tsc/tsc --noEmit,CI / 发版前用)
|
|
278
|
+
pnpm dlx @agile-team/wl-skills-kit validate --typecheck --strict
|
|
279
|
+
|
|
267
280
|
# 单页/指定目录校验
|
|
268
281
|
pnpm dlx @agile-team/wl-skills-kit validate-page src/views/mdata/model/mdata-model-config
|
|
269
282
|
|
|
283
|
+
# 特殊场景(表单设计器/行内编辑明细表等 BaseTable 受限)批量豁免 R3/R10:
|
|
284
|
+
# 在项目根创建 .wl-skills-validate.json(详见 .wl-skills/docs/validate-exempt.md)
|
|
285
|
+
|
|
270
286
|
# spec-align:页面目录存在 page-spec.json 时,确定性比对"约定 vs 代码"
|
|
271
287
|
# (查询字段/表格列顺序、工具栏按钮顺序与颜色、操作列严格对应、label 保真)
|
|
272
288
|
# 已内置于 validate,无需额外参数
|
|
@@ -340,7 +356,7 @@ pnpm dlx @agile-team/wl-skills-kit update
|
|
|
340
356
|
2. **迁移清理** — 检测并移除旧版遗留文件(如 `skills/prototype-scan/`、`docs/menu-sync-design.md` 等),避免新旧路径并存产生歧义
|
|
341
357
|
3. **保护累积数据** — `reports/*.md` 已存在则跳过,团队累积的菜单/字典数据不丢失
|
|
342
358
|
|
|
343
|
-
> **注意**:如果项目在旧的 `.
|
|
359
|
+
> **注意**:如果项目在旧的 `.wl-skills/skills/menu-sync/env/env.local.json` 中有自定义配置,`update` 会将其迁移位置。**请在 `update` 前备份** 或 `update` 后手动迁移到 `.wl-skills/skills/sync/menu-sync/env/env.local.json`。
|
|
344
360
|
|
|
345
361
|
---
|
|
346
362
|
|
|
@@ -352,7 +368,7 @@ pnpm dlx @agile-team/wl-skills-kit update
|
|
|
352
368
|
| `spec-doc-parse` | ✅ 启用 | `skills/core/spec-doc-parse/` | 规范线:wl-skills-design 标准说明书 → 页面清单 |
|
|
353
369
|
| `api-contract` | ✅ 启用 | `skills/core/api-contract/` | 生成 api.md 前后端契约 |
|
|
354
370
|
| `page-codegen` | ✅ 启用 | `skills/core/page-codegen/` | 页面骨架生成 + 模板调度 |
|
|
355
|
-
| `convention-audit` | ✅ 启用 | `skills/core/convention-audit/` |
|
|
371
|
+
| `convention-audit` | ✅ 启用 | `skills/core/convention-audit/` | 14 条规范扫描 + 双报告 |
|
|
356
372
|
| `business-doc-extract` | ✅ 启用 | `skills/core/business-doc-extract/` | 语义触发,业务文档抽取与维护 |
|
|
357
373
|
| `template-extract` | ✅ 启用 | `skills/core/template-extract/` | 现有页面 → 领域模板 |
|
|
358
374
|
| `menu-sync` | ✅ 启用 | `skills/sync/menu-sync/` | 菜单基线 ↔ 后端接口 |
|
|
@@ -389,9 +405,9 @@ pnpm dlx @agile-team/wl-skills-kit update
|
|
|
389
405
|
|
|
390
406
|
| 命令 | 保护路径 | 说明 |
|
|
391
407
|
| ---------------------- | -------------------------------- | ------------------------ |
|
|
392
|
-
| `init` / `update` | `.
|
|
408
|
+
| `init` / `update` | `.wl-skills/reports/*.md` | 已存在则跳过,不覆盖累积 |
|
|
393
409
|
| `clean`(默认) | `src/components/` + `src/types/` | 业务代码必需,永不删除 |
|
|
394
|
-
| `clean --keep-reports` | + `.
|
|
410
|
+
| `clean --keep-reports` | + `.wl-skills/reports/` | 保留菜单/字典/权限基线 |
|
|
395
411
|
|
|
396
412
|
---
|
|
397
413
|
|
|
@@ -424,8 +440,9 @@ AbstractPageQueryHook + BaseQuery + BaseToolbar + BaseTable(render-type="agGrid"
|
|
|
424
440
|
- 🔁 Agent Pipeline 运行手册:[docs/agent-pipeline-runbook.md](docs/agent-pipeline-runbook.md)
|
|
425
441
|
- 🛡️ MCP Tool 风险矩阵:[docs/mcp-tool-risk-matrix.md](docs/mcp-tool-risk-matrix.md)
|
|
426
442
|
- 📝 业务文档抽取 Skill:[files/.wl-skills/skills/core/business-doc-extract/USAGE.md](files/.wl-skills/skills/core/business-doc-extract/USAGE.md)
|
|
427
|
-
- 📚 业务方使用指南:`.
|
|
428
|
-
- 🏗️ 架构与决策:`.
|
|
443
|
+
- 📚 业务方使用指南:`.wl-skills/guides/usage.md`(业务项目内)
|
|
444
|
+
- 🏗️ 架构与决策:`.wl-skills/guides/architecture.md`(业务项目内)
|
|
445
|
+
- 🛡️ validate 豁免配置:[files/.wl-skills/docs/validate-exempt.md](files/.wl-skills/docs/validate-exempt.md)
|
|
429
446
|
- 🔧 维护者文档:[kit-internal/README.md](kit-internal/README.md)(仅本仓库)
|
|
430
447
|
- 🤖 多编辑器适配机制:[files/.wl-skills/skills/\_compat/README.md](files/.wl-skills/skills/_compat/README.md)
|
|
431
448
|
- 🛠️ Jenkins 流水线参考:[kit-internal/jenkins-pipeline.md](kit-internal/jenkins-pipeline.md)
|
package/bin/wl-skills.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* wl-skills-kit CLI v2.11.
|
|
4
|
+
* wl-skills-kit CLI v2.11.3
|
|
5
5
|
*
|
|
6
6
|
* 命令:
|
|
7
7
|
* init 全量安装(默认,向后兼容)
|
|
@@ -27,6 +27,7 @@ const {
|
|
|
27
27
|
runAstRules,
|
|
28
28
|
getStagedFiles,
|
|
29
29
|
hasAstAvailable,
|
|
30
|
+
runTypeCheck,
|
|
30
31
|
} = require("../lib/ast-rules");
|
|
31
32
|
|
|
32
33
|
// ─── page-spec 比对引擎(v2.11.1+,"约定 vs 代码"确定性核对)────────────
|
|
@@ -66,6 +67,7 @@ const KNOWN_FLAGS = new Set([
|
|
|
66
67
|
"--all",
|
|
67
68
|
"--pre-commit",
|
|
68
69
|
"--strict",
|
|
70
|
+
"--typecheck",
|
|
69
71
|
]);
|
|
70
72
|
|
|
71
73
|
const dryRun = args.includes("--dry-run");
|
|
@@ -74,6 +76,7 @@ const keepReports = args.includes("--keep-reports");
|
|
|
74
76
|
const force = args.includes("--force");
|
|
75
77
|
const preCommit = args.includes("--pre-commit");
|
|
76
78
|
const strict = args.includes("--strict");
|
|
79
|
+
const typeCheck = args.includes("--typecheck");
|
|
77
80
|
|
|
78
81
|
// 校验所有 flag 是否已知(--help 优先,跳过校验直接显示帮助)
|
|
79
82
|
if (!showHelp) {
|
|
@@ -118,7 +121,8 @@ if (showHelp) {
|
|
|
118
121
|
check 环境预检(Node / 工具链 / MCP 配置 / manifest)
|
|
119
122
|
diff 对比已安装文件与当前 kit 版本的差异
|
|
120
123
|
validate 静态检查 src/views 页面文件、AGGrid、skills-ui runtime、mock
|
|
121
|
-
v2.10.1+ 集成 AST 语义级检测(R1~
|
|
124
|
+
v2.10.1+ 集成 AST 语义级检测(R1~R14),覆盖正则无法检测的规则
|
|
125
|
+
R13 圈复杂度 / R14 类型错误(R14 需 --typecheck 开启)
|
|
122
126
|
validate-page validate 的别名,适用于单页/目录检查
|
|
123
127
|
doctor-ui 检查 @agile-team/wk-skills-ui 接入完整性
|
|
124
128
|
export 导出 reports/SYS_* 数据为 xlsx
|
|
@@ -133,6 +137,8 @@ if (showHelp) {
|
|
|
133
137
|
--all mock-clean 清理全部 mock(保留 _utils.ts)
|
|
134
138
|
--pre-commit validate 仅检测 git staged 文件,error 阻断提交,warn 仅提示
|
|
135
139
|
--strict validate 的 error 和 warn 都导致退出码 1(CI 用)
|
|
140
|
+
--typecheck validate 额外执行 vue-tsc/tsc --noEmit(R14 类型错误零容忍)
|
|
141
|
+
体积较大,CI / pre-push 必跑,pre-commit 不建议开启
|
|
136
142
|
--help 显示帮助
|
|
137
143
|
|
|
138
144
|
示例:
|
|
@@ -142,6 +148,7 @@ if (showHelp) {
|
|
|
142
148
|
pnpm dlx @agile-team/wl-skills-kit check 检查本地环境
|
|
143
149
|
pnpm dlx @agile-team/wl-skills-kit diff 查看当前项目与最新 kit 差异
|
|
144
150
|
pnpm dlx @agile-team/wl-skills-kit validate 检查 src/views 页面文件
|
|
151
|
+
pnpm dlx @agile-team/wl-skills-kit validate --typecheck 含类型检查 R14(CI 用)
|
|
145
152
|
pnpm dlx @agile-team/wl-skills-kit validate-page src/views/mdata/model/demo
|
|
146
153
|
pnpm dlx @agile-team/wl-skills-kit doctor-ui 检查 wk-skills-ui 接入
|
|
147
154
|
pnpm dlx @agile-team/wl-skills-kit export 导出菜单/字典/权限 xlsx
|
|
@@ -1272,12 +1279,27 @@ function runValidate() {
|
|
|
1272
1279
|
issues.push(...specIssues);
|
|
1273
1280
|
}
|
|
1274
1281
|
|
|
1282
|
+
// ── 类型检查 R14(v2.11.2+,vue-tsc/tsc 委托,仅 --typecheck 触发)───
|
|
1283
|
+
// 体积较大(整项目编译),validate 默认不跑;pre-commit 不建议开启,CI 必跑。
|
|
1284
|
+
// 无 tsconfig / 无 checker → 优雅降级为 warn,不阻断。
|
|
1285
|
+
let tcRan = false;
|
|
1286
|
+
let tcErrors = 0;
|
|
1287
|
+
if (typeCheck) {
|
|
1288
|
+
const tc = runTypeCheck(TARGET_DIR);
|
|
1289
|
+
tcRan = tc.ran;
|
|
1290
|
+
tcErrors = tc.errorCount || 0;
|
|
1291
|
+
issues.push(...tc.issues);
|
|
1292
|
+
}
|
|
1293
|
+
|
|
1275
1294
|
// ── 输出 ───────────────────────────────────────────────────────────
|
|
1276
1295
|
console.log(
|
|
1277
1296
|
" 页面目录: " +
|
|
1278
1297
|
pages.length +
|
|
1279
1298
|
(astResult.pages ? "(AST 扫描 " + astResult.pages + ")" : "") +
|
|
1280
|
-
(specAlignedPages ? "(spec-align " + specAlignedPages + ")" : "")
|
|
1299
|
+
(specAlignedPages ? "(spec-align " + specAlignedPages + ")" : "") +
|
|
1300
|
+
(typeCheck
|
|
1301
|
+
? "(类型检查 " + (tcRan ? "已执行 " + tcErrors + " error" : "已跳过") + ")"
|
|
1302
|
+
: ""),
|
|
1281
1303
|
);
|
|
1282
1304
|
console.log(" 提示项: " + issues.length);
|
|
1283
1305
|
console.log("");
|
|
@@ -1384,6 +1406,8 @@ const AST_FIX_SUGGESTIONS = {
|
|
|
1384
1406
|
R10: { fix: '\u66ff\u6362\u539f\u751f el-* \u7ec4\u4ef6\u4e3a\u5e73\u53f0\u5c01\u88c5\uff08jh-select/jh-date/jh-pagination \u7b49\uff09', ref: 'standards/13-platform-components.md', auto: true },
|
|
1385
1407
|
R11: { fix: '\u4ece data.ts \u4e2d\u79fb\u9664 Pinia Store import\uff0cStore \u5e94\u5728\u7ec4\u4ef6\u5c42\u4f7f\u7528', ref: 'standards/10-pinia.md', auto: true },
|
|
1386
1408
|
R12: { fix: '\u5c06\u786c\u7f16\u7801 IP/URL \u79fb\u81f3 .env.* \u73af\u5883\u53d8\u91cf', ref: 'standards/07-config.md', auto: true },
|
|
1409
|
+
R13: { fix: '\u62c6\u5206\u9ad8\u590d\u6742\u5ea6\u51fd\u6570\uff1a\u6309\u804c\u8d23\u62bd\u53d6\u5b50\u51fd\u6570\u3001\u7528\u63d0\u524d return \u4ee3\u66ff\u5d4c\u5957 if\u3001\u67e5\u8868\u9a71\u52a8\u53d6\u4ee3 if-else \u94fe\u3001\u7b56\u7565\u6a21\u5f0f\u6d88\u9664\u591a\u5206\u652f', ref: 'standards/04-coding-basics.md', auto: false },
|
|
1410
|
+
R14: { fix: '\u6309 TS \u9519\u8bef\u4fee\u590d\u7c7b\u578b\uff08\u8865\u7c7b\u578b\u6807\u6ce8 / \u4fee\u6b63\u8c03\u7528\u53c2\u6570 / \u8865 any \u8fb9\u754c\u6ce8\u91ca\uff09\uff1b\u672a\u88c5 vue-tsc \u65f6\u5b89\u88c5\u540e\u7eb3\u5165 CI', ref: 'standards/09-typescript.md', auto: false },
|
|
1387
1411
|
// S 系列:page-spec 约定 vs 代码确定性核对(v2.11.1+)
|
|
1388
1412
|
S0: { fix: '\u4fee\u6b63 page-spec.json \u7ed3\u6784\uff08page/query/columns/toolbar/operations\uff09', ref: '.wl-skills/skills/core/page-codegen/SKILL.md', auto: false },
|
|
1389
1413
|
S1: { fix: '\u8c03\u6574 queryDef() \u67e5\u8be2\u5b57\u6bb5\u987a\u5e8f\u4e0e page-spec.json query \u4e25\u683c\u4e00\u81f4', ref: '.wl-skills/skills/core/page-codegen/SKILL.md', auto: true },
|