@agile-team/wl-skills-kit 2.3.4 → 2.3.6
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 +44 -0
- package/README.md +16 -10
- package/files/.cursor/mcp.json +8 -8
- package/files/.github/guides/README.md +13 -13
- package/files/.github/guides/architecture.md +555 -555
- package/files/.github/guides/mcp-setup.md +109 -109
- package/files/.github/guides/usage.md +184 -184
- package/files/.github/reports/README.md +65 -65
- package/files/.github/reports/SYS_DICT_INFO.md +50 -50
- package/files/.github/reports/SYS_MENU_INFO.md +247 -247
- package/files/.github/reports/SYS_PERMISSION_INFO.md +20 -20
- package/files/.github/reports//347/273/204/344/273/266/346/217/220/345/217/226/345/273/272/350/256/256.md +33 -33
- package/files/.github/reports//350/247/204/350/214/203/345/256/241/346/237/245/346/212/245/345/221/212.md +44 -44
- package/files/.github/skills/_compat/README.md +108 -108
- package/files/.github/skills/_compat/headers/agents.txt +8 -8
- package/files/.github/skills/_compat/headers/claude-code.txt +7 -7
- package/files/.github/skills/_compat/headers/cline.txt +7 -7
- package/files/.github/skills/_compat/headers/cursor-mdc.txt +16 -16
- package/files/.github/skills/_compat/headers/cursor-rules.txt +7 -7
- package/files/.github/skills/_compat/headers/github-copilot.txt +1 -1
- package/files/.github/skills/_compat/headers/kiro.txt +10 -10
- package/files/.github/skills/_compat/headers/qoder.txt +8 -8
- package/files/.github/skills/_compat/headers/trae.txt +11 -11
- package/files/.github/skills/_compat/headers/windsurf.txt +7 -7
- package/files/.github/skills/_registry.md +81 -81
- package/files/.github/skills/core/api-contract/SKILL.md +344 -344
- package/files/.github/skills/core/api-contract/USAGE.md +110 -110
- package/files/.github/skills/core/convention-audit/SKILL.md +189 -189
- package/files/.github/skills/core/convention-audit/USAGE.md +99 -99
- package/files/.github/skills/core/page-codegen/SKILL.md +973 -973
- package/files/.github/skills/core/page-codegen/USAGE.md +102 -102
- package/files/.github/skills/core/page-codegen/templates/_index.md +46 -46
- package/files/.github/skills/core/page-codegen/templates/domains/_CONTRIBUTING.md +107 -107
- package/files/.github/skills/core/page-codegen/templates/domains/produce/TPL-OPERATION-STATION.md +442 -442
- package/files/.github/skills/core/page-codegen/templates/domains/sale/README.md +26 -26
- package/files/.github/skills/core/page-codegen/templates/universal/TPL-CHANGE-HISTORY.md +276 -276
- package/files/.github/skills/core/page-codegen/templates/universal/TPL-DETAIL-TABS.md +1145 -1145
- package/files/.github/skills/core/page-codegen/templates/universal/TPL-DRIVEN.md +309 -309
- package/files/.github/skills/core/page-codegen/templates/universal/TPL-FORM-ROUTE.md +436 -436
- package/files/.github/skills/core/page-codegen/templates/universal/TPL-LIST.md +191 -191
- package/files/.github/skills/core/page-codegen/templates/universal/TPL-MASTER-DETAIL.md +148 -148
- package/files/.github/skills/core/page-codegen/templates/universal/TPL-RECORD-FORM.md +376 -376
- package/files/.github/skills/core/page-codegen/templates/universal/TPL-TREE-LIST.md +186 -186
- package/files/.github/skills/core/prototype-scan/SKILL.md +498 -498
- package/files/.github/skills/core/prototype-scan/USAGE.md +95 -95
- package/files/.github/skills/core/template-extract/SKILL.md +139 -139
- package/files/.github/skills/core/template-extract/USAGE.md +93 -93
- package/files/.github/skills/domain/README.md +51 -51
- package/files/.github/skills/sync/env.local.json +0 -5
- package/files/.github/skills/sync/menu-sync/SKILL.md +263 -263
- package/files/.github/skills/sync/menu-sync/USAGE.md +104 -104
- package/files/.github/skills/sync/menu-sync/env/env.local.json +7 -7
- package/files/.github/skills/sync/menu-sync/env/guide.md +99 -99
- package/files/.github/skills/sync/permission-sync/SKILL.md +239 -0
- package/files/.github/skills/sync/permission-sync/USAGE.md +93 -0
- package/files/.github/standards/01-toolchain.md +57 -57
- package/files/.github/standards/02-code-structure.md +111 -111
- package/files/.github/standards/03-comments.md +53 -53
- package/files/.github/standards/04-coding-basics.md +33 -33
- package/files/.github/standards/05-logging.md +38 -38
- package/files/.github/standards/06-security.md +44 -44
- package/files/.github/standards/07-config.md +52 -52
- package/files/.github/standards/08-git.md +60 -60
- package/files/.github/standards/09-typescript.md +71 -71
- package/files/.github/standards/10-pinia.md +57 -57
- package/files/.github/standards/11-form-validation.md +81 -81
- package/files/.github/standards/12-base-table.md +153 -153
- package/files/.github/standards/13-platform-components.md +123 -123
- package/files/.github/standards/index.md +89 -89
- package/files/.kiro/settings/mcp.json +8 -8
- package/files/.mcp.json +8 -8
- package/files/.vscode/mcp.json +9 -9
- package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/data.ts +196 -196
- package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/index.scss +150 -150
- package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/index.vue +79 -79
- package/files/docs/jh-date-range.md +257 -257
- package/files/docs/jh-date.md +222 -222
- package/files/docs/jh-dept-picker.md +190 -190
- package/files/docs/jh-drag-row.md +590 -590
- package/files/docs/jh-file-upload.md +216 -216
- package/files/docs/jh-picker.md +218 -218
- package/files/docs/jh-select.md +148 -148
- package/files/docs/jh-text.md +248 -248
- package/files/docs/jh-user-picker.md +197 -197
- package/files/src/components/global/C_RightToolbar/data.ts +228 -228
- package/files/src/components/global/C_RightToolbar/index.scss +44 -44
- package/files/src/components/global/C_Splitter/index.scss +61 -61
- package/files/src/components/global/C_SvgIcon/index.scss +15 -15
- package/files/src/components/global/C_TagStatus/index.scss +20 -20
- package/files/src/components/global/C_Tree/data.ts +61 -61
- package/files/src/components/local/c_listModal/index.scss +4 -4
- package/mcp/api/roleApi.js +60 -0
- package/mcp/server.js +125 -5
- package/mcp/tools/permissionSync.js +321 -0
- package/package.json +1 -1
- package/files/.github/skills/sync/permission-sync/SKILL.draft.md +0 -91
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
# 13 — 平台组件合规规范(核心 AI 质量门控)
|
|
2
|
-
|
|
3
|
-
> **强制度**:🔴 必遵 + 阻断式。
|
|
4
|
-
> 这是防止 AI 绕过平台封装、自由发挥使用 `el-*` 原生组件的核心规则。
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 总原则
|
|
9
|
-
|
|
10
|
-
> **优先使用平台封装组件;无对应封装时才允许使用 `el-*` 原生组件;
|
|
11
|
-
> 跨 3+ 页面相同 `el-*` 模式 → convention-audit 输出"组件提取建议"到 `reports/`,由人工评审决定是否封装。**
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## 组件强制对照表
|
|
16
|
-
|
|
17
|
-
| 场景 | 优先使用(有则必用) | 替代方案 |
|
|
18
|
-
| ------------------- | --------------------------------------------- | ---------------------------- |
|
|
19
|
-
| 查询栏 | `BaseQuery` | ❌ el-form 手写查询区 |
|
|
20
|
-
| 工具栏 / 操作按钮行 | `BaseToolbar` | ❌ 自定义按钮排列 |
|
|
21
|
-
| 列表 / 表格 | `BaseTable` (`render-type="agGrid"`) | ❌ el-table |
|
|
22
|
-
| 表单弹窗 | `c_formModal` | ❌ el-dialog + el-form 手写 |
|
|
23
|
-
| 列表选择弹窗 | `c_listModal` | ❌ el-dialog + el-table 手写 |
|
|
24
|
-
| 表单内容分区 | `c_formSections` | ❌ 裸分组 |
|
|
25
|
-
| 分割标题 | `c_spliterTitle` | ❌ el-divider |
|
|
26
|
-
| 复杂路由表单页 | FORM-ROUTE 模板 | ❌ 完全手写 |
|
|
27
|
-
| 日期 / 日期范围 | `jh-date` / `jh-date-range` | ❌ el-date-picker |
|
|
28
|
-
| 文件上传 | `jh-file-upload` | ❌ el-upload |
|
|
29
|
-
| 用户选择 | `jh-user-picker` | ❌ 自定义弹窗选人 |
|
|
30
|
-
| 部门选择 | `jh-dept-picker` | ❌ 同上 |
|
|
31
|
-
| 下拉 / 选择器 | `jh-select` / `jh-picker` | ❌ el-select 手写 options |
|
|
32
|
-
| 只读文本展示 | `jh-text` | ❌ span/div 直接渲染 |
|
|
33
|
-
| 分页 | `jh-pagination` | ❌ el-pagination |
|
|
34
|
-
| 上下分栏 | `jh-drag-row` | ❌ 手动 flex/grid |
|
|
35
|
-
| 左右分割 | `C_Splitter` | ❌ 手动 flex/grid |
|
|
36
|
-
| 树形面板 | `C_Tree` | ❌ el-tree 手写 |
|
|
37
|
-
| 状态标签 | `C_TagStatus` | ❌ el-tag + 颜色映射 |
|
|
38
|
-
| HTTP 请求 | `getAction/postAction/putAction/deleteAction` | ❌ axios / fetch 直接调用 |
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## 组件在 template 中的书写顺序
|
|
43
|
-
|
|
44
|
-
当页面同时存在多个区块时,**有则按下列顺序排列**(**全部可选,不强制必须存在**):
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
BaseQuery → BaseToolbar → BaseTable → jh-pagination
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
✅ 仅有 BaseTable 的页面:直接写 BaseTable,没问题
|
|
51
|
-
✅ 仅 BaseQuery + BaseToolbar 的录入型页面:按此顺序,后接表单区即可
|
|
52
|
-
❌ 顺序颠倒:BaseToolbar 写在 BaseQuery 之前
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## docs/ 文档前置读取清单
|
|
57
|
-
|
|
58
|
-
生成涉及以下场景的代码时,AI 必须先读取对应文档(按需,不全读):
|
|
59
|
-
|
|
60
|
-
| 涉及组件 / 模式 | 必读文档 |
|
|
61
|
-
| --------------------------- | --------------------------------------------- |
|
|
62
|
-
| `jh-date` / `jh-date-range` | `docs/jh-date.md` / `docs/jh-date-range.md` |
|
|
63
|
-
| `jh-file-upload` | `docs/jh-file-upload.md` |
|
|
64
|
-
| `jh-user-picker` | `docs/jh-user-picker.md` |
|
|
65
|
-
| `jh-dept-picker` | `docs/jh-dept-picker.md` |
|
|
66
|
-
| `jh-select` | `docs/jh-select.md` |
|
|
67
|
-
| `jh-picker` | `docs/jh-picker.md` |
|
|
68
|
-
| `jh-text` | `docs/jh-text.md` |
|
|
69
|
-
| `jh-pagination` | `docs/jh-pagination.md` |
|
|
70
|
-
| `jh-drag-row` | `docs/jh-drag-row.md` |
|
|
71
|
-
| HTTP 请求方式 | `docs/request.md` |
|
|
72
|
-
| 页面 Hook 模式 | `docs/page-query-hook-best-practices.md` |
|
|
73
|
-
| BaseQuery / BaseTable 等 | `src/components/remote/{Component}/README.md` |
|
|
74
|
-
| c_formModal / c_listModal | `src/components/local/{component}/README.md` |
|
|
75
|
-
|
|
76
|
-
> AI 在 Pre-flight 声明中明确列出已读文档。
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## AbstractPageQueryHook(强制)
|
|
81
|
-
|
|
82
|
-
所有页面 `data.ts` **必须** `extends AbstractPageQueryHook`:
|
|
83
|
-
|
|
84
|
-
```typescript
|
|
85
|
-
import { AbstractPageQueryHook } from '@jhlc/common-core/src/page-hooks/page-query-hook.ts'
|
|
86
|
-
|
|
87
|
-
export function createPage() {
|
|
88
|
-
let Page = new (class extends AbstractPageQueryHook {
|
|
89
|
-
constructor() { super({ url: { list: '...' } }) }
|
|
90
|
-
queryDef() { return [...] }
|
|
91
|
-
toolbarDef() { return [...] }
|
|
92
|
-
columnsDef() { return [...] }
|
|
93
|
-
})()
|
|
94
|
-
return Page.create() as any
|
|
95
|
-
}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## 提取建议触发规则
|
|
101
|
-
|
|
102
|
-
`convention-audit` 扫描发现 **3+ 个页面**出现相同的未封装 `el-*` 模式时,输出到 `reports/组件提取建议.md`:
|
|
103
|
-
|
|
104
|
-
```markdown
|
|
105
|
-
| 建议组件名 | 出现次数 | 页面路径 | 菜单位置(来自文件头) | 模式描述 |
|
|
106
|
-
| ------------- | -------- | ------------------------------- | ----------------------- | ---------------- |
|
|
107
|
-
| c_statusBadge | 5 处 | src/views/sale/.../index.vue 等 | 销售管理 > 国内贸易订单 | 状态枚举彩色标签 |
|
|
108
|
-
| c_priceFormat | 4 处 | ... | ... | 千分位金额显示 |
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
> ⚠️ AI **不自动提取**。人工确认后,触发 template-extract 或手动封装。
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## AI 检查清单(每次代码生成前自查)
|
|
116
|
-
|
|
117
|
-
- [ ] 查询区使用了 BaseQuery,没有自己写 el-form?
|
|
118
|
-
- [ ] 表格使用了 BaseTable + agGrid + cid,没有用 el-table?
|
|
119
|
-
- [ ] 弹窗使用了 c_formModal / c_listModal,没有手写 el-dialog?
|
|
120
|
-
- [ ] 日期组件用了 jh-date 系列,没有用 el-date-picker?
|
|
121
|
-
- [ ] HTTP 请求都走 `this.getAction / postAction`,没有 import axios?
|
|
122
|
-
- [ ] data.ts 继承了 AbstractPageQueryHook?
|
|
123
|
-
- [ ] 涉及 jh-_ 组件时已读取对应 docs/jh-_.md?
|
|
1
|
+
# 13 — 平台组件合规规范(核心 AI 质量门控)
|
|
2
|
+
|
|
3
|
+
> **强制度**:🔴 必遵 + 阻断式。
|
|
4
|
+
> 这是防止 AI 绕过平台封装、自由发挥使用 `el-*` 原生组件的核心规则。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 总原则
|
|
9
|
+
|
|
10
|
+
> **优先使用平台封装组件;无对应封装时才允许使用 `el-*` 原生组件;
|
|
11
|
+
> 跨 3+ 页面相同 `el-*` 模式 → convention-audit 输出"组件提取建议"到 `reports/`,由人工评审决定是否封装。**
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 组件强制对照表
|
|
16
|
+
|
|
17
|
+
| 场景 | 优先使用(有则必用) | 替代方案 |
|
|
18
|
+
| ------------------- | --------------------------------------------- | ---------------------------- |
|
|
19
|
+
| 查询栏 | `BaseQuery` | ❌ el-form 手写查询区 |
|
|
20
|
+
| 工具栏 / 操作按钮行 | `BaseToolbar` | ❌ 自定义按钮排列 |
|
|
21
|
+
| 列表 / 表格 | `BaseTable` (`render-type="agGrid"`) | ❌ el-table |
|
|
22
|
+
| 表单弹窗 | `c_formModal` | ❌ el-dialog + el-form 手写 |
|
|
23
|
+
| 列表选择弹窗 | `c_listModal` | ❌ el-dialog + el-table 手写 |
|
|
24
|
+
| 表单内容分区 | `c_formSections` | ❌ 裸分组 |
|
|
25
|
+
| 分割标题 | `c_spliterTitle` | ❌ el-divider |
|
|
26
|
+
| 复杂路由表单页 | FORM-ROUTE 模板 | ❌ 完全手写 |
|
|
27
|
+
| 日期 / 日期范围 | `jh-date` / `jh-date-range` | ❌ el-date-picker |
|
|
28
|
+
| 文件上传 | `jh-file-upload` | ❌ el-upload |
|
|
29
|
+
| 用户选择 | `jh-user-picker` | ❌ 自定义弹窗选人 |
|
|
30
|
+
| 部门选择 | `jh-dept-picker` | ❌ 同上 |
|
|
31
|
+
| 下拉 / 选择器 | `jh-select` / `jh-picker` | ❌ el-select 手写 options |
|
|
32
|
+
| 只读文本展示 | `jh-text` | ❌ span/div 直接渲染 |
|
|
33
|
+
| 分页 | `jh-pagination` | ❌ el-pagination |
|
|
34
|
+
| 上下分栏 | `jh-drag-row` | ❌ 手动 flex/grid |
|
|
35
|
+
| 左右分割 | `C_Splitter` | ❌ 手动 flex/grid |
|
|
36
|
+
| 树形面板 | `C_Tree` | ❌ el-tree 手写 |
|
|
37
|
+
| 状态标签 | `C_TagStatus` | ❌ el-tag + 颜色映射 |
|
|
38
|
+
| HTTP 请求 | `getAction/postAction/putAction/deleteAction` | ❌ axios / fetch 直接调用 |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 组件在 template 中的书写顺序
|
|
43
|
+
|
|
44
|
+
当页面同时存在多个区块时,**有则按下列顺序排列**(**全部可选,不强制必须存在**):
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
BaseQuery → BaseToolbar → BaseTable → jh-pagination
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
✅ 仅有 BaseTable 的页面:直接写 BaseTable,没问题
|
|
51
|
+
✅ 仅 BaseQuery + BaseToolbar 的录入型页面:按此顺序,后接表单区即可
|
|
52
|
+
❌ 顺序颠倒:BaseToolbar 写在 BaseQuery 之前
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## docs/ 文档前置读取清单
|
|
57
|
+
|
|
58
|
+
生成涉及以下场景的代码时,AI 必须先读取对应文档(按需,不全读):
|
|
59
|
+
|
|
60
|
+
| 涉及组件 / 模式 | 必读文档 |
|
|
61
|
+
| --------------------------- | --------------------------------------------- |
|
|
62
|
+
| `jh-date` / `jh-date-range` | `docs/jh-date.md` / `docs/jh-date-range.md` |
|
|
63
|
+
| `jh-file-upload` | `docs/jh-file-upload.md` |
|
|
64
|
+
| `jh-user-picker` | `docs/jh-user-picker.md` |
|
|
65
|
+
| `jh-dept-picker` | `docs/jh-dept-picker.md` |
|
|
66
|
+
| `jh-select` | `docs/jh-select.md` |
|
|
67
|
+
| `jh-picker` | `docs/jh-picker.md` |
|
|
68
|
+
| `jh-text` | `docs/jh-text.md` |
|
|
69
|
+
| `jh-pagination` | `docs/jh-pagination.md` |
|
|
70
|
+
| `jh-drag-row` | `docs/jh-drag-row.md` |
|
|
71
|
+
| HTTP 请求方式 | `docs/request.md` |
|
|
72
|
+
| 页面 Hook 模式 | `docs/page-query-hook-best-practices.md` |
|
|
73
|
+
| BaseQuery / BaseTable 等 | `src/components/remote/{Component}/README.md` |
|
|
74
|
+
| c_formModal / c_listModal | `src/components/local/{component}/README.md` |
|
|
75
|
+
|
|
76
|
+
> AI 在 Pre-flight 声明中明确列出已读文档。
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## AbstractPageQueryHook(强制)
|
|
81
|
+
|
|
82
|
+
所有页面 `data.ts` **必须** `extends AbstractPageQueryHook`:
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
import { AbstractPageQueryHook } from '@jhlc/common-core/src/page-hooks/page-query-hook.ts'
|
|
86
|
+
|
|
87
|
+
export function createPage() {
|
|
88
|
+
let Page = new (class extends AbstractPageQueryHook {
|
|
89
|
+
constructor() { super({ url: { list: '...' } }) }
|
|
90
|
+
queryDef() { return [...] }
|
|
91
|
+
toolbarDef() { return [...] }
|
|
92
|
+
columnsDef() { return [...] }
|
|
93
|
+
})()
|
|
94
|
+
return Page.create() as any
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 提取建议触发规则
|
|
101
|
+
|
|
102
|
+
`convention-audit` 扫描发现 **3+ 个页面**出现相同的未封装 `el-*` 模式时,输出到 `reports/组件提取建议.md`:
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
| 建议组件名 | 出现次数 | 页面路径 | 菜单位置(来自文件头) | 模式描述 |
|
|
106
|
+
| ------------- | -------- | ------------------------------- | ----------------------- | ---------------- |
|
|
107
|
+
| c_statusBadge | 5 处 | src/views/sale/.../index.vue 等 | 销售管理 > 国内贸易订单 | 状态枚举彩色标签 |
|
|
108
|
+
| c_priceFormat | 4 处 | ... | ... | 千分位金额显示 |
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
> ⚠️ AI **不自动提取**。人工确认后,触发 template-extract 或手动封装。
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## AI 检查清单(每次代码生成前自查)
|
|
116
|
+
|
|
117
|
+
- [ ] 查询区使用了 BaseQuery,没有自己写 el-form?
|
|
118
|
+
- [ ] 表格使用了 BaseTable + agGrid + cid,没有用 el-table?
|
|
119
|
+
- [ ] 弹窗使用了 c_formModal / c_listModal,没有手写 el-dialog?
|
|
120
|
+
- [ ] 日期组件用了 jh-date 系列,没有用 el-date-picker?
|
|
121
|
+
- [ ] HTTP 请求都走 `this.getAction / postAction`,没有 import axios?
|
|
122
|
+
- [ ] data.ts 继承了 AbstractPageQueryHook?
|
|
123
|
+
- [ ] 涉及 jh-_ 组件时已读取对应 docs/jh-_.md?
|
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
# Standards 规范门控(懒加载入口)
|
|
2
|
-
|
|
3
|
-
> **版本**:v1.0.0 **维护者**:CHENY (工号 409322)
|
|
4
|
-
> **加载策略**:AI 按当前任务类型,**只读取相关条目**,不全量加载。
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 13 条规范清单
|
|
9
|
-
|
|
10
|
-
| 编号 | 文件 | 主题 | 强制度 |
|
|
11
|
-
| ---- | --------------------------- | ---------------------- | -------------- |
|
|
12
|
-
| 01 | `01-toolchain.md` | 工具链前置检测 | 🔴 阻断 |
|
|
13
|
-
| 02 | `02-code-structure.md` | 代码结构与顺序 | 🔴 必遵 |
|
|
14
|
-
| 03 | `03-comments.md` | 注释规范 | 🟡 建议 |
|
|
15
|
-
| 04 | `04-coding-basics.md` | 基础编码(13 条) | 🔴 必遵 |
|
|
16
|
-
| 05 | `05-logging.md` | 日志输出 | 🔴 必遵 |
|
|
17
|
-
| 06 | `06-security.md` | 安全规范 | 🔴 必遵 |
|
|
18
|
-
| 07 | `07-config.md` | 配置管理 | 🔴 必遵 |
|
|
19
|
-
| 08 | `08-git.md` | Git 分支 & 提交 | 🔴 必遵 |
|
|
20
|
-
| 09 | `09-typescript.md` | TypeScript 类型 | 🟡 建议 |
|
|
21
|
-
| 10 | `10-pinia.md` | Pinia 状态管理 | 🔴 必遵 |
|
|
22
|
-
| 11 | `11-form-validation.md` | 表单与校验 | 🔴 必遵 |
|
|
23
|
-
| 12 | `12-base-table.md` | BaseTable + AGGrid cid | 🔴 必遵 |
|
|
24
|
-
| 13 | `13-platform-components.md` | 平台组件合规(核心) | 🔴 必遵 + 阻断 |
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## 任务类型 → 必读规范映射
|
|
29
|
-
|
|
30
|
-
> AI 按用户意图选取下方匹配的「任务类型」,**仅加载该类型对应的规范文件**。
|
|
31
|
-
|
|
32
|
-
### 任务类型 A:生成新页面(page-codegen)
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
必读:01 / 02 / 04 / 12 / 13
|
|
36
|
-
按需:09(TS 类型复杂时) / 10(涉及 Store) / 11(FORM_ROUTE 模板)
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### 任务类型 B:修改/重构既有页面
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
必读:02 / 04 / 13
|
|
43
|
-
按需:09 / 10 / 11
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 任务类型 C:规范审计(convention-audit)
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
必读:全部 13 条(审计需要完整对照)
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### 任务类型 D:模板提取(template-extract)
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
必读:02 / 13(模板必须遵循结构与组件合规规则)
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### 任务类型 E:菜单/字典/权限同步类
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
必读:07(环境变量与 API 地址不硬编码)
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### 任务类型 F:仅 Git 操作 / Commit
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
必读:08
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## 加载方式(Pre-flight 声明示例)
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
✅ 已读取 standards/index.md → 规范门控,匹配任务类型 A(生成新页面)
|
|
76
|
-
✅ 已读取 standards/02-code-structure.md → 4 文件原则 + 三段式 + script 9 段顺序
|
|
77
|
-
✅ 已读取 standards/12-base-table.md → AGGrid 必用 + cid 命名规范
|
|
78
|
-
✅ 已读取 standards/13-platform-components.md → 平台组件对照表
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
> **不要** 一次性读取全部 13 条。错误示范:`✅ 已读取 standards/01 ~ standards/13`(浪费 token,违反懒加载原则)。
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## 规范变更管理
|
|
86
|
-
|
|
87
|
-
- 新增规范条目:编号顺序追加,不复用废弃编号
|
|
88
|
-
- 修改既有规范:在文件末尾追加 `## 变更记录` 章节,登记日期 + 变更摘要
|
|
89
|
-
- 整体破坏性变更:升级本文件顶部 `version`,并在根 `CHANGELOG.md` 标注
|
|
1
|
+
# Standards 规范门控(懒加载入口)
|
|
2
|
+
|
|
3
|
+
> **版本**:v1.0.0 **维护者**:CHENY (工号 409322)
|
|
4
|
+
> **加载策略**:AI 按当前任务类型,**只读取相关条目**,不全量加载。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 13 条规范清单
|
|
9
|
+
|
|
10
|
+
| 编号 | 文件 | 主题 | 强制度 |
|
|
11
|
+
| ---- | --------------------------- | ---------------------- | -------------- |
|
|
12
|
+
| 01 | `01-toolchain.md` | 工具链前置检测 | 🔴 阻断 |
|
|
13
|
+
| 02 | `02-code-structure.md` | 代码结构与顺序 | 🔴 必遵 |
|
|
14
|
+
| 03 | `03-comments.md` | 注释规范 | 🟡 建议 |
|
|
15
|
+
| 04 | `04-coding-basics.md` | 基础编码(13 条) | 🔴 必遵 |
|
|
16
|
+
| 05 | `05-logging.md` | 日志输出 | 🔴 必遵 |
|
|
17
|
+
| 06 | `06-security.md` | 安全规范 | 🔴 必遵 |
|
|
18
|
+
| 07 | `07-config.md` | 配置管理 | 🔴 必遵 |
|
|
19
|
+
| 08 | `08-git.md` | Git 分支 & 提交 | 🔴 必遵 |
|
|
20
|
+
| 09 | `09-typescript.md` | TypeScript 类型 | 🟡 建议 |
|
|
21
|
+
| 10 | `10-pinia.md` | Pinia 状态管理 | 🔴 必遵 |
|
|
22
|
+
| 11 | `11-form-validation.md` | 表单与校验 | 🔴 必遵 |
|
|
23
|
+
| 12 | `12-base-table.md` | BaseTable + AGGrid cid | 🔴 必遵 |
|
|
24
|
+
| 13 | `13-platform-components.md` | 平台组件合规(核心) | 🔴 必遵 + 阻断 |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 任务类型 → 必读规范映射
|
|
29
|
+
|
|
30
|
+
> AI 按用户意图选取下方匹配的「任务类型」,**仅加载该类型对应的规范文件**。
|
|
31
|
+
|
|
32
|
+
### 任务类型 A:生成新页面(page-codegen)
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
必读:01 / 02 / 04 / 12 / 13
|
|
36
|
+
按需:09(TS 类型复杂时) / 10(涉及 Store) / 11(FORM_ROUTE 模板)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 任务类型 B:修改/重构既有页面
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
必读:02 / 04 / 13
|
|
43
|
+
按需:09 / 10 / 11
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 任务类型 C:规范审计(convention-audit)
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
必读:全部 13 条(审计需要完整对照)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 任务类型 D:模板提取(template-extract)
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
必读:02 / 13(模板必须遵循结构与组件合规规则)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 任务类型 E:菜单/字典/权限同步类
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
必读:07(环境变量与 API 地址不硬编码)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 任务类型 F:仅 Git 操作 / Commit
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
必读:08
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 加载方式(Pre-flight 声明示例)
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
✅ 已读取 standards/index.md → 规范门控,匹配任务类型 A(生成新页面)
|
|
76
|
+
✅ 已读取 standards/02-code-structure.md → 4 文件原则 + 三段式 + script 9 段顺序
|
|
77
|
+
✅ 已读取 standards/12-base-table.md → AGGrid 必用 + cid 命名规范
|
|
78
|
+
✅ 已读取 standards/13-platform-components.md → 平台组件对照表
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
> **不要** 一次性读取全部 13 条。错误示范:`✅ 已读取 standards/01 ~ standards/13`(浪费 token,违反懒加载原则)。
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 规范变更管理
|
|
86
|
+
|
|
87
|
+
- 新增规范条目:编号顺序追加,不复用废弃编号
|
|
88
|
+
- 修改既有规范:在文件末尾追加 `## 变更记录` 章节,登记日期 + 变更摘要
|
|
89
|
+
- 整体破坏性变更:升级本文件顶部 `version`,并在根 `CHANGELOG.md` 标注
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mcpServers": {
|
|
3
|
-
"wl-skills": {
|
|
4
|
-
"command": "node",
|
|
5
|
-
"args": ["node_modules/@agile-team/wl-skills-kit/mcp/server.js"]
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"wl-skills": {
|
|
4
|
+
"command": "node",
|
|
5
|
+
"args": ["node_modules/@agile-team/wl-skills-kit/mcp/server.js"]
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
}
|
package/files/.mcp.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mcpServers": {
|
|
3
|
-
"wl-skills": {
|
|
4
|
-
"command": "node",
|
|
5
|
-
"args": ["node_modules/@agile-team/wl-skills-kit/mcp/server.js"]
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"wl-skills": {
|
|
4
|
+
"command": "node",
|
|
5
|
+
"args": ["node_modules/@agile-team/wl-skills-kit/mcp/server.js"]
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
}
|
package/files/.vscode/mcp.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
{
|
|
2
|
-
"servers": {
|
|
3
|
-
"wl-skills": {
|
|
4
|
-
"type": "stdio",
|
|
5
|
-
"command": "node",
|
|
6
|
-
"args": ["node_modules/@agile-team/wl-skills-kit/mcp/server.js"]
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"servers": {
|
|
3
|
+
"wl-skills": {
|
|
4
|
+
"type": "stdio",
|
|
5
|
+
"command": "node",
|
|
6
|
+
"args": ["node_modules/@agile-team/wl-skills-kit/mcp/server.js"]
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
}
|