@qilitt-mickey/vue3-temp-skill 1.1.29 → 1.1.32
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/README.md +29 -7
- package/SKILL.md +29 -27
- package/bin/cli.js +52 -2
- package/package.json +3 -1
- package/references/code-quality.md +40 -23
- package/references/core-kernel.md +2 -12
- package/references/design-handoff.md +806 -939
- package/references/design-system.md +1 -1
- package/references/design-verify.md +444 -0
- package/references/handoff-governance.md +74 -0
- package/references/layout-theme.md +1 -1
- package/scripts/analyze-deps.mjs +1 -1
- package/scripts/cli.mjs +10 -0
- package/scripts/generate-index.mjs +2 -2
- package/scripts/handoff-governance.mjs +77 -0
- package/scripts/handoff-lib.mjs +128 -0
- package/scripts/handoff-session-init.mjs +71 -0
- package/scripts/handoff-spec-check.mjs +195 -0
- package/scripts/handoff-step-check.mjs +81 -0
- package/scripts/modules.json +11 -1
- package/scripts/validate.mjs +3 -3
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ Vue 3 企业级中后台项目开发规范技能包 — 按团队规范生成代
|
|
|
33
33
|
| 始终 | core-kernel |
|
|
34
34
|
| 闸门 | code-quality |
|
|
35
35
|
| 按需资产 | project-inventory、**addon-enable** |
|
|
36
|
-
| 标准业务 | http-api、crud-pages、detail-page、data-writeback、permission-auth、layout-theme、design-system、design-handoff、icons、feedback-loading、base-code-dict、api-check、ui-components |
|
|
36
|
+
| 标准业务 | http-api、crud-pages、detail-page、data-writeback、permission-auth、layout-theme、design-system、design-handoff、design-verify、icons、feedback-loading、base-code-dict、api-check、ui-components |
|
|
37
37
|
| 专项 | form-advanced、table-vxe、tree-table、chart-echarts、file-management、download-export、rich-text、graph-relation、workflow-bpmn、flowchart-g6、data-mapping、websocket-realtime、mobile-h5、wechat-js、verify-captcha、qrcode-barcode、feedback-ui、seamless-scroll、particles、data-compare、data-screen、directives-advanced |
|
|
38
38
|
|
|
39
39
|
## 安装
|
|
@@ -44,11 +44,33 @@ Node.js >= 22.12.0
|
|
|
44
44
|
npx @qilitt-mickey/vue3-temp-skill@latest install all
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
### 设计落地管控(在业务项目根目录)
|
|
48
|
+
|
|
49
|
+
业务项目内写入 `.handoff/handoff.json` 后:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# 初始化 session(记录 git baseline)
|
|
53
|
+
npx @qilitt-mickey/vue3-temp-skill handoff init --project ./my-vue-app --file .handoff/handoff.json
|
|
54
|
+
|
|
55
|
+
# 落地完成后机器闸门(步骤 + JSON 规格)
|
|
56
|
+
npx @qilitt-mickey/vue3-temp-skill handoff check --project ./my-vue-app --require-session
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
源码开发时可直接:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
node scripts/handoff-session-init.mjs --project <业务项目> --file .handoff/handoff.json
|
|
63
|
+
node scripts/handoff-governance.mjs --project <业务项目> --require-session
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
详见 `references/handoff-governance.md`。
|
|
67
|
+
|
|
68
|
+
| 目标 | 说明 |
|
|
69
|
+
|------|------|
|
|
70
|
+
| 个人 Skill 目录 | 安装器写入当前 AI 环境支持的 Skill 目录 |
|
|
71
|
+
| 项目级说明 | 部分环境支持写入项目内说明文件 |
|
|
72
|
+
|
|
73
|
+
具体路径因 AI 环境而异,安装完成后以安装器输出为准。
|
|
52
74
|
|
|
53
75
|
## 生成工作流(AI)
|
|
54
76
|
|
|
@@ -73,4 +95,4 @@ npx @qilitt-mickey/vue3-temp-skill@latest install all
|
|
|
73
95
|
- **标准样板**:在本包 `references/`,不在模板 `views/`
|
|
74
96
|
- 壳层以当前项目源码为准;规范与安装表以本包为准
|
|
75
97
|
- HTTP:`axios@1.19.0` 固定版本,仅经 `@/utils/http`
|
|
76
|
-
-
|
|
98
|
+
- **设计协同**:定制 UI 由**设计技能**出稿(含 `design-handoff/v1` JSON)→ 本 Skill 工程落地;不引入其他设计 Skill
|
package/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: vue3-temp-skill
|
|
3
|
-
description: Vue 3 企业级中后台项目开发规范技能包。用户通过 /vue3-temp-skill 命令描述需求,AI 自动匹配对应规范模块生成代码,并在生成后自动执行代码质量审查。
|
|
2
|
+
name: "vue3-temp-skill"
|
|
3
|
+
description: "Vue 3 企业级中后台项目开发规范技能包。用户通过 /vue3-temp-skill 命令描述需求,AI 自动匹配对应规范模块生成代码,并在生成后自动执行代码质量审查。"
|
|
4
4
|
scope: project
|
|
5
5
|
tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, component, api, permission, mobile, code-review, compare]
|
|
6
6
|
---
|
|
@@ -17,7 +17,10 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
17
17
|
|------|------|
|
|
18
18
|
| `python scripts/match.py "<需求>"` | **运行时匹配器**(AI 调用):输出命中模块、同批加载、闸门项、文件清单 |
|
|
19
19
|
| `python scripts/match.py --batch` | 批量测试 15 个典型场景 |
|
|
20
|
-
| `npm run check` | **发布前全量检查**(5
|
|
20
|
+
| `npm run check` | **发布前全量检查**(skill 包结构,5 项) |
|
|
21
|
+
| `node scripts/handoff-governance.mjs --project <业务项目>` | **设计落地管控闸门**(步骤 + JSON 规格) |
|
|
22
|
+
| `vue3-temp-skill handoff init --project <业务项目> --file .handoff/handoff.json` | 初始化 `.handoff/session.json`(npm/npx 入口) |
|
|
23
|
+
| `vue3-temp-skill handoff check --project <业务项目> --require-session` | 设计落地完成前必跑 |
|
|
21
24
|
| `npm run validate` | 结构校验:frontmatter、路由表一致性、孤立模块、交叉引用 |
|
|
22
25
|
| `npm run audit` | 命中精度审计:关键词重叠、盲区、模块评分、边界冲突 |
|
|
23
26
|
| `npm run content` | 内容可用性审计:样板完整性、Must-do 清单 |
|
|
@@ -44,11 +47,11 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
44
47
|
|
|
45
48
|
- 面向由 **vue3-web-temp** 脚手架搭出的业务项目(目录名/安装路径因人而异,以当前工作区为准)
|
|
46
49
|
- **文档分工**:人类读模板 `README.md`;AI 读模板 `AGENTS.md` + 本 Skill;样板与细则在本包 `references/`
|
|
47
|
-
-
|
|
50
|
+
- **设计协同**:定制 UI 由**设计技能**出稿(含 `design-handoff/v1` JSON)→ 本 Skill 工程落地;不引入其他设计 Skill
|
|
48
51
|
- **精简出厂**:模板 `views/` 仅保留登录/首页等壳页面;**业务标准样板**在本包 `references/`(如 `crud-pages`、`detail-page`)
|
|
49
52
|
- **依赖分层**:`package.json` 仅 **core**;**addon** 默认不装;缺包时装依赖后须按 `addon-enable.md` **逐文件恢复配置**(非自动)
|
|
50
53
|
- 壳层行为(顶部 tag / 侧栏 / keep-alive / `useDetail`)以**当前项目**已有实现为准
|
|
51
|
-
- **双轨**:无设计 handoff → 保持模版出厂;有设计落地 → 读 `design-handoff.md` 逐文件修改清单(含 1:1 还原要求 F1-F14 / P1-P7
|
|
54
|
+
- **双轨**:无设计 handoff → 保持模版出厂;有设计落地 → 读 `design-handoff.md` 逐文件修改清单(含 1:1 还原要求 F1-F14 / P1-P7)+ `design-verify.md` 还原度验证
|
|
52
55
|
- **设计优先级**:当设计技能产出(`design-handoff/v1` JSON)存在时,视觉层面(布局/间距/圆角/阴影/色彩/组件结构)以设计技能产出为准,本技能出厂默认值按设计产出替换。详见下方「设计优先级与 handoff 强制执行」段
|
|
53
56
|
|
|
54
57
|
## 使用方式
|
|
@@ -65,7 +68,6 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
65
68
|
4. 无对应能力 → 标注「待确认」,未经同意不引入新依赖
|
|
66
69
|
5. 权威性优先级:`仓库已有封装` > `本 Skill 示例` > 通用 Vue 习惯
|
|
67
70
|
6. 命中 addon / 缺依赖:读 `project-inventory` 第九/十节 + **`addon-enable.md`**(逐文件恢复代码);精确版本安装,禁止 `@latest`
|
|
68
|
-
7. **`docs/**` 不参与业务落盘**:模板 `docs/` 为静态文档/演示说明,禁止随 `src/` 等业务改动同步修改;仅用户明确要求维护文档时才改
|
|
69
71
|
|
|
70
72
|
## 完整性守则(全模块强制)
|
|
71
73
|
|
|
@@ -78,7 +80,7 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
78
80
|
|
|
79
81
|
## 设计落地(handoff)
|
|
80
82
|
|
|
81
|
-
|
|
83
|
+
设计技能每次产出时**始终自动附加 `design-handoff/v1` JSON**(含 **`structureRequirements` + `interactionSpecs`**)。本技能检测到 JSON 后**强制加载** `design-handoff.md` + `handoff-governance.md`,按 C/T/F/Co/S/P 执行。完成后执行 design-verify,并运行 **`vue3-temp-skill handoff check --project <业务项目> --require-session`**(或 `node scripts/handoff-governance.mjs --project <业务项目> --require-session`)。**lint 通过 ≠ 设计落地完成**。
|
|
82
84
|
|
|
83
85
|
### 项目级模式 vs 单页模式
|
|
84
86
|
|
|
@@ -100,17 +102,14 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
100
102
|
|
|
101
103
|
设计 skill 定义了"表格工具栏""操作列""导航栏"等设计概念,本技能通过映射表自动找到项目中对应的组件进行修改。映射表见 `design-handoff.md` 第八章(共享组件级落地)。共享组件在 Co 步骤(F 步骤之后、S 步骤之前)统一修改,**一处修改,全局生效**,不需要在每个页面重复处理。
|
|
102
104
|
|
|
103
|
-
###
|
|
105
|
+
### 设计产出落盘范围
|
|
104
106
|
|
|
105
|
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
- ❌
|
|
109
|
-
- ✅ 设计修改只落在 `src/`、`public/`、`platform-config.json` 等业务代码中
|
|
110
|
-
- ✅ 设计规范直接读取设计 skill 的 references 文件,不另存
|
|
111
|
-
- ✅ 设计产出 HTML 仅在对话中作为参考对照,不写入项目
|
|
107
|
+
设计落地时,所有修改只落在 `src/`、`public/`、`platform-config.json` 等业务代码中:
|
|
108
|
+
- ✅ 设计规范读取**设计技能**的 `references/` 文件,不另存到项目
|
|
109
|
+
- ✅ 设计产出 HTML 仅在对话中作为参考对照,**不写入项目文件**
|
|
110
|
+
- ❌ 不得把设计 HTML / 规范文档写入项目内非业务目录
|
|
112
111
|
|
|
113
|
-
|
|
112
|
+
违反此规则即硬失败。
|
|
114
113
|
|
|
115
114
|
## 模块路由表
|
|
116
115
|
|
|
@@ -127,7 +126,7 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
127
126
|
| addon / 查 Re* 名 / 装依赖 | `references/project-inventory.md` |
|
|
128
127
|
| **启用精简模板已删的 addon(装包 + 改配置)** | `references/addon-enable.md`(与功能模块同读) |
|
|
129
128
|
| 写完代码后(闸门,非功能命中) | `references/code-quality.md` |
|
|
130
|
-
| 设计交接块 / **design-handoff/v1 JSON** / 上游令牌产出落地 | `references/design-handoff.md
|
|
129
|
+
| 设计交接块 / **design-handoff/v1 JSON** / 上游令牌产出落地 | `references/design-handoff.md` + `references/handoff-governance.md` + `design-verify.md` + `design-system.md` |
|
|
131
130
|
| **设计模式**(设计 Skill 产出存在时触发) | `crud-pages.md` 设计模式样板 + `design-handoff.md` 1:1 还原要求(F1-F14 / P1-P7) |
|
|
132
131
|
|
|
133
132
|
### 标准业务面
|
|
@@ -181,7 +180,7 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
181
180
|
1. 单模块 → 该模块 + `core-kernel`;结束后执行 `code-quality`
|
|
182
181
|
2. 多模块 → 同时加载(例:客户列表 = `crud-pages` + `permission-auth` + `http-api`)
|
|
183
182
|
3. 未命中模块 → 仅 `core-kernel`,向用户确认是否专项
|
|
184
|
-
4. 默认不改 `vite.config.ts` / `build
|
|
183
|
+
4. 默认不改 `vite.config.ts` / `build/**`;**例外**:按 `addon-enable.md` 恢复 FileViewer / VantResolver / Vconsole 等占位插件时允许改 `build/plugins/*`
|
|
185
184
|
5. 效果匹配:
|
|
186
185
|
- 启用 echarts / vant / file-viewer / 富文本等已删 addon → 功能模块 + **`addon-enable`**
|
|
187
186
|
- 弹窗、对话框、抽屉 → `form-advanced`
|
|
@@ -203,7 +202,7 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
203
202
|
- 批量操作、表格排序 → `crud-pages`
|
|
204
203
|
- 趋势图、地图、甘特图 → `chart-echarts`
|
|
205
204
|
- 附件上传、断点续传 → `file-management`
|
|
206
|
-
- 按 XX / UI 规范适配、设计交接块、整站风格重构 → `design-system`(项目设计系统说明)+ `layout-theme`;有令牌/交接产出时加读 `design-handoff.md`(逐文件修改清单,含 C/T/F/Co/S/P 全流程 + 共享组件映射 +
|
|
205
|
+
- 按 XX / UI 规范适配、设计交接块、整站风格重构 → `design-system`(项目设计系统说明)+ `layout-theme`;有令牌/交接产出时加读 `design-handoff.md`(逐文件修改清单,含 C/T/F/Co/S/P 全流程 + 共享组件映射 + 项目级模式)+ `design-verify.md`(还原度验证)
|
|
207
206
|
- 列表→独立详情/编辑页 → `crud-pages` + `detail-page`
|
|
208
207
|
- 图表(折线/柱状/饼图) → `chart-echarts`
|
|
209
208
|
- 数据大屏、看板 → `data-screen`
|
|
@@ -227,8 +226,9 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
227
226
|
## 工作流
|
|
228
227
|
|
|
229
228
|
1. **需求分析**:列出功能模块 ID(不含 `code-quality`)
|
|
230
|
-
2. **加载**:`core-kernel` + 命中模块;addon/缺包时加读 `project-inventory` + **`addon-enable`**;**检测 design-handoff/v1 JSON
|
|
231
|
-
3.
|
|
229
|
+
2. **加载**:`core-kernel` + 命中模块;addon/缺包时加读 `project-inventory` + **`addon-enable`**;**检测 design-handoff/v1 JSON** — 若存在,强制加载 `design-handoff` + **`handoff-governance`** + `design-verify` + `design-system.md`
|
|
230
|
+
3. **handoff 初始化**:有 JSON 时 → `vue3-temp-skill handoff init --project <业务项目>` → 输出规范识别回执
|
|
231
|
+
4. **模式判断**:有 handoff JSON 时,读取 `meta.transformScope`:
|
|
232
232
|
- `project` → 进入**项目级模式**:先扫描 `src/router/modules/` 构建页面清单,输出「待改造页面清单」供用户确认
|
|
233
233
|
- `single-page` 或未设置 → 单页模式,仅处理当前页面
|
|
234
234
|
4. **依赖**:缺包按 inventory 第九节精确版本,确认后安装;**再按 `addon-enable` 对应章节改配置**
|
|
@@ -237,11 +237,11 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
237
237
|
- 单页模式:C/T/F/Co/S + 当前页面 P 步骤
|
|
238
238
|
- 项目级模式:C/T/F/Co/S(全局一次) + 逐页面执行 P 步骤,标记完成状态
|
|
239
239
|
- **有 handoff JSON 时,页面结构以设计输出为准,保留业务逻辑**
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
240
|
+
7. **设计还原度验证**:有 handoff 时必须执行 design-verify,落盘 `.handoff/verify-report.json`
|
|
241
|
+
8. **handoff 管控闸门**:`vue3-temp-skill handoff check --project <业务项目> --require-session` **必须 exit 0**
|
|
242
|
+
9. **功能完整性核查**:有 handoff 时按 design-handoff 第十一章
|
|
243
|
+
10. **code-quality**:lint + type-check + 硬失败表
|
|
244
|
+
11. **输出**:变更说明 + verify 报告 + **handoff 管控结果**
|
|
245
245
|
|
|
246
246
|
### 最终回复结构
|
|
247
247
|
|
|
@@ -253,7 +253,9 @@ tags: [vue3, typescript, element-plus, vant, pinia, vite, unocss, crud, componen
|
|
|
253
253
|
- 闸门:已执行 code-quality(生成后)
|
|
254
254
|
- 清单:选型 / 类型 / 组件 / API / 安全 / 业务 / 列表→详情(如适用) / 列表布局(如适用) / 风格 / addon启用(如适用) → 通过 | 已修正:…
|
|
255
255
|
- 硬失败:无 | 已拦截并修正:…
|
|
256
|
-
- handoff 落地(如有 JSON):C/T/F/S/P
|
|
256
|
+
- handoff 落地(如有 JSON):C/T/F/Co/S/P 全流程 → 通过 | 未完成项:…
|
|
257
|
+
- handoff 管控:`vue3-temp-skill handoff check` → 通过 | 失败:…
|
|
258
|
+
- 还原度验证(如有 JSON):design-verify + verify-report.json → 通过 | 偏差项:…
|
|
257
259
|
- 命令:`pnpm lint:fix` → …;`pnpm type-check` → …
|
|
258
260
|
- 待确认:…
|
|
259
261
|
|
package/bin/cli.js
CHANGED
|
@@ -251,6 +251,11 @@ function installSkills(targetKey, projectDir) {
|
|
|
251
251
|
copyDir(refsSrc, path.join(dest, "references"));
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
+
const scriptsSrc = path.join(SKILL_DIR, "scripts");
|
|
255
|
+
if (fs.existsSync(scriptsSrc)) {
|
|
256
|
+
copyDir(scriptsSrc, path.join(dest, "scripts"));
|
|
257
|
+
}
|
|
258
|
+
|
|
254
259
|
// Cursor:清理旧版 rules/*.mdc,避免与 skills 重复
|
|
255
260
|
if (cfg.legacyRulesFile) {
|
|
256
261
|
const legacy = cfg.legacyRulesFile(projectDir);
|
|
@@ -337,6 +342,8 @@ ${bold("命令:")}
|
|
|
337
342
|
update [target] 更新已安装的技能(默认更新全部已安装目标)
|
|
338
343
|
uninstall [target] 卸载技能(默认卸载全部已安装目标)
|
|
339
344
|
list 查看已安装的目标和版本
|
|
345
|
+
handoff init 初始化业务项目 .handoff/session.json
|
|
346
|
+
handoff check 设计落地管控闸门(步骤 + JSON 规格)
|
|
340
347
|
|
|
341
348
|
${bold("目标 (target):")}
|
|
342
349
|
cursor → Cursor ~/.cursor/skills/
|
|
@@ -370,8 +377,9 @@ ${bold("示例:")}
|
|
|
370
377
|
${dim("# 查看已安装情况")}
|
|
371
378
|
npx @qilitt-mickey/vue3-temp-skill list
|
|
372
379
|
|
|
373
|
-
${dim("#
|
|
374
|
-
npx @qilitt-mickey/vue3-temp-skill
|
|
380
|
+
${dim("# 设计落地管控(在业务项目根目录执行)")}
|
|
381
|
+
npx @qilitt-mickey/vue3-temp-skill handoff init --project ./my-app --file .handoff/handoff.json
|
|
382
|
+
npx @qilitt-mickey/vue3-temp-skill handoff check --project ./my-app --require-session
|
|
375
383
|
`);
|
|
376
384
|
}
|
|
377
385
|
|
|
@@ -591,6 +599,45 @@ function cmdList() {
|
|
|
591
599
|
}
|
|
592
600
|
}
|
|
593
601
|
|
|
602
|
+
function cmdHandoff(sub, args, projectDir) {
|
|
603
|
+
const proj = projectDir || process.cwd();
|
|
604
|
+
const fileIdx = args.indexOf("--file");
|
|
605
|
+
const handoffFile =
|
|
606
|
+
fileIdx !== -1 ? path.resolve(proj, args[fileIdx + 1]) : path.join(proj, ".handoff", "handoff.json");
|
|
607
|
+
const requireSession = args.includes("--require-session");
|
|
608
|
+
const scriptDir = path.join(SKILL_DIR, "scripts");
|
|
609
|
+
|
|
610
|
+
if (sub === "init") {
|
|
611
|
+
const script = path.join(scriptDir, "handoff-session-init.mjs");
|
|
612
|
+
try {
|
|
613
|
+
execSync(`"${process.execPath}" "${script}" --project "${proj}" --file "${handoffFile}"`, {
|
|
614
|
+
stdio: "inherit",
|
|
615
|
+
});
|
|
616
|
+
} catch (e) {
|
|
617
|
+
process.exit(e.status ?? 1);
|
|
618
|
+
}
|
|
619
|
+
return;
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
if (sub === "check") {
|
|
623
|
+
const script = path.join(scriptDir, "handoff-governance.mjs");
|
|
624
|
+
const extra = requireSession ? " --require-session" : "";
|
|
625
|
+
try {
|
|
626
|
+
execSync(`"${process.execPath}" "${script}" --project "${proj}"${extra}`, {
|
|
627
|
+
stdio: "inherit",
|
|
628
|
+
});
|
|
629
|
+
} catch (e) {
|
|
630
|
+
process.exit(e.status ?? 1);
|
|
631
|
+
}
|
|
632
|
+
return;
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
console.error(red("✗ handoff 子命令: init | check"));
|
|
636
|
+
console.error(dim(" handoff init --project <dir> [--file .handoff/handoff.json]"));
|
|
637
|
+
console.error(dim(" handoff check --project <dir> [--require-session]"));
|
|
638
|
+
process.exit(1);
|
|
639
|
+
}
|
|
640
|
+
|
|
594
641
|
// ============================================================
|
|
595
642
|
// 入口
|
|
596
643
|
// ============================================================
|
|
@@ -626,6 +673,9 @@ function main() {
|
|
|
626
673
|
case "list":
|
|
627
674
|
cmdList();
|
|
628
675
|
break;
|
|
676
|
+
case "handoff":
|
|
677
|
+
cmdHandoff(target, args.slice(2), projectDir);
|
|
678
|
+
break;
|
|
629
679
|
default:
|
|
630
680
|
// 兼容旧用法:直接传 target 名当作 install
|
|
631
681
|
if (TARGETS[command] || command === "all") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qilitt-mickey/vue3-temp-skill",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.32",
|
|
4
4
|
"description": "Vue 3 企业级中后台项目开发规范技能包 — core-kernel 架构、按需功能模块",
|
|
5
5
|
"bin": {
|
|
6
6
|
"vue3-temp-skill": "./bin/cli.js"
|
|
@@ -36,6 +36,8 @@
|
|
|
36
36
|
"gen:index": "node scripts/generate-index.mjs",
|
|
37
37
|
"gen:index:write": "node scripts/generate-index.mjs --write",
|
|
38
38
|
"scaffold": "node scripts/scaffold-module.mjs",
|
|
39
|
+
"handoff:init": "node scripts/handoff-session-init.mjs",
|
|
40
|
+
"handoff:check": "node scripts/handoff-governance.mjs",
|
|
39
41
|
"postpublish": "echo 'Published @qilitt-mickey/vue3-temp-skill to npmjs.org'"
|
|
40
42
|
},
|
|
41
43
|
"keywords": [
|
|
@@ -13,9 +13,10 @@ tags: [code-review, quality, checklist, lint, typescript, vue3, security, perfor
|
|
|
13
13
|
|
|
14
14
|
1. 重读本文件
|
|
15
15
|
2. 列出本轮改动路径,对照下方清单;**硬失败表命中则先改代码再继续**
|
|
16
|
-
3.
|
|
17
|
-
4.
|
|
18
|
-
5.
|
|
16
|
+
3. **有 handoff session 时**(`.handoff/session.json` 存在):必跑 `vue3-temp-skill handoff check --project <业务项目> --require-session` → **exit 0 才能声称设计落地完成**(见 `handoff-governance.md`)
|
|
17
|
+
4. 业务项目根目录必跑:`pnpm lint:fix` → `pnpm type-check`
|
|
18
|
+
5. 失败则修代码并重跑,直至通过或写明阻塞
|
|
19
|
+
6. 最终回复追加:
|
|
19
20
|
|
|
20
21
|
```markdown
|
|
21
22
|
## 代码质量审查
|
|
@@ -23,6 +24,7 @@ tags: [code-review, quality, checklist, lint, typescript, vue3, security, perfor
|
|
|
23
24
|
- 改动文件:`path/a`、`path/b`、…
|
|
24
25
|
- 清单:选型 ✅ / 类型 ✅ / 组件 ✅ / API ✅ / 安全 ✅ / 业务 ✅ / 列表→详情 ✅或N/A / 列表布局 ✅或N/A / 风格 ✅
|
|
25
26
|
- 硬失败:无 | 已拦截并修正:…
|
|
27
|
+
- handoff 管控(如有 session):`vue3-temp-skill handoff check` → 通过 | 失败项:…
|
|
26
28
|
- 已修正:…(无则写「无」)
|
|
27
29
|
- 命令:`pnpm lint:fix` → …;`pnpm type-check` → …
|
|
28
30
|
- 待确认:…
|
|
@@ -126,26 +128,41 @@ lint / type-check **过了也不能放过**下列项。发现即改代码,禁
|
|
|
126
128
|
- [ ] 框架组件(navbar/sidebar/tabs/app-main)已全局修改
|
|
127
129
|
- [ ] 元素隐藏清单已逐项检查并处理(顶栏/侧栏/列表/共享组件 四类)
|
|
128
130
|
- [ ] 无遗漏页面(对照路由清单逐一核对)
|
|
129
|
-
- [ ] 所有页面的多余元素(「展示列表」「左侧按钮...」等)均已清除
|
|
130
|
-
|
|
131
|
-
####
|
|
132
|
-
|
|
133
|
-
>
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
- [ ]
|
|
138
|
-
- [ ]
|
|
139
|
-
- [ ]
|
|
140
|
-
- [ ]
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
131
|
+
- [ ] 所有页面的多余元素(「展示列表」「左侧按钮...」等)均已清除
|
|
132
|
+
|
|
133
|
+
#### 设计落地管控(有 `.handoff/session.json` 时必须执行)
|
|
134
|
+
|
|
135
|
+
> 详见 `references/handoff-governance.md`。lint/type-check **不能**代替本段。
|
|
136
|
+
|
|
137
|
+
- [ ] 动手前已 `handoff-session-init`,`.handoff/session.json` 含完整 handoff + baseline
|
|
138
|
+
- [ ] handoff JSON 含 `structureRequirements` + `interactionSpecs`
|
|
139
|
+
- [ ] C/T/F/Co/S/P 全流程已执行(`handoff-step-check` 通过)
|
|
140
|
+
- [ ] 代码与当次 JSON 一致(`handoff-spec-check` 通过)
|
|
141
|
+
- [ ] 已落盘 `.handoff/verify-report.json`(`overallPass: true`)
|
|
142
|
+
- [ ] **`vue3-temp-skill handoff check --project <业务项目> --require-session` → exit 0**
|
|
143
|
+
|
|
144
|
+
#### 设计还原度验证(有 handoff JSON 时必须执行)
|
|
145
|
+
|
|
146
|
+
> 验证依据:设计 skill 的规范文件(design-tokens.md / unified-framework.md / list-page.md / component-spec.md)
|
|
147
|
+
> 验证方法:代码级对照——读取设计规范预期值 → 检查项目代码实际值 → 比对是否一致
|
|
148
|
+
> 验证顺序:框架层 → 页面层 → 共享组件层 → 细节项 → 元素清理
|
|
149
|
+
|
|
150
|
+
- [ ] **框架层还原度**:顶栏高度/元素/折叠位置、侧栏宽度/背景/激活态、页签高度/激活态、内容区背景/padding,共 10 项已逐项对照
|
|
151
|
+
- [ ] **页面层还原度**:卡片阴影圆角、标题区字号/padding、筛选区背景/分隔线、工具栏布局/按钮、表格表头/行高/hover、操作列样式、分页布局、模块分割线/间距,共 12 项已逐项对照
|
|
152
|
+
- [ ] **共享组件还原度**:ReTableBar(按钮样式/布局/分页集成)、ReTableOperate(文字链接/分隔线/更多箭头/折叠逻辑)、RePagination(样式/布局),共 10 项已逐项对照
|
|
153
|
+
- [ ] **核心组件还原度**:按钮(高度/圆角/主色三态)、输入框(高度/圆角/focus 光环)、Tag(5 种状态色)、下拉菜单、空状态,已逐项对照
|
|
154
|
+
- [ ] **细节项还原度**:图标大小 16px、分隔线 #F0F0F0、hover 文字加深不变浅、行高正确、字重正确、圆角统一、阴影自然、更多按钮有箭头、操作列有竖分隔线、页签下划线居中、操作列 sticky、选择列 48px、状态标签颜色对应、卡片有阴影,共 15 项已逐项检查
|
|
155
|
+
- [ ] **令牌溯源检查**:颜色/尺寸/间距均通过 CSS 变量传递,变量值与 design-tokens.md 一致,无裸 hex/px 值
|
|
156
|
+
- [ ] **元素清理检查**:设置按钮、展示列表标题、示例按钮、操作列多余图标等已全部移除
|
|
157
|
+
- [ ] **已输出「设计还原度验证报告」**(格式见 `design-verify.md` 10.7),包含整体还原度、各层通过率、偏差项及修正方案
|
|
158
|
+
- [ ] **CSS 冲突检测已执行**(`design-verify.md` 10.7.5):选择器重复扫描完成,无意冲突已消除,导入顺序已验证,新增 CSS 文件已注册
|
|
159
|
+
- [ ] **已输出「CSS 冲突检测报告」**(格式见 `design-verify.md` 10.7.5.5),包含扫描范围、重复选择器明细、导入顺序验证结果
|
|
160
|
+
- [ ] **逐属性 CSS 校验已执行**(`design-verify.md` 10.8):从设计源文件提取 CSS 属性清单,逐条比对项目代码,不一致项已修正并回读校验通过
|
|
161
|
+
- [ ] **已输出「逐属性 CSS 校验报告」**(格式见 `design-verify.md` 10.8.5),包含校验范围、偏差明细、待确认项
|
|
162
|
+
- [ ] **设计落盘范围**:设计产出 HTML 未写入项目文件,设计规范未另存到非业务目录,所有修改只在 src/ 等业务代码中
|
|
163
|
+
- [ ] **功能完整性核查**:样式改造后原有功能全部正常(框架层/共享组件层/页面层均已逐项核查,无按钮失效、事件丢失、数据绑定断裂等功能回归问题)
|
|
164
|
+
- [ ] **已输出「功能完整性核查报告」**(格式见 design-handoff.md 第十一章 11.7),包含整体通过率、各层核查结果、发现的问题及修正方案
|
|
165
|
+
|
|
149
166
|
> ⚠️ 硬约束:设计还原度验证未通过的项,必须修正后重新验证,直至全部通过。禁止带着未修正的偏差项进入后续环节。
|
|
150
167
|
|
|
151
168
|
## 选型与硬约束
|
|
@@ -27,7 +27,6 @@ tags: [vue3, kernel, conventions, layout, router, http, crud, inventory]
|
|
|
27
27
|
| 12 | 列表布局按 **`crud-pages` 标准样板**(`el-card.vts-page-card`+`content`、无 `100vh` 减顶栏定高、`tableHeight`、`otherRef`、分页在 ReTableBar 内;仅表格体内滚动) |
|
|
28
28
|
| 13 | addon 按 `project-inventory` 第九节精确版本安装;禁止 `@latest` |
|
|
29
29
|
| 14 | 样式契约见下文「样式契约」 |
|
|
30
|
-
| 15 | **`docs/**` 禁止随业务改动**:模板 `docs/` 为静态文档/演示(如 `style-templates/`),不参与业务落盘;除非用户明确要求维护文档,否则不得修改、同步或「对齐」其中文件 |
|
|
31
30
|
|
|
32
31
|
## 二、应用壳
|
|
33
32
|
|
|
@@ -157,16 +156,7 @@ export function getCustomerList(data: CustomerQuery, url: string) {
|
|
|
157
156
|
| addon 构建 | FileViewer / vConsole 等在精简模板中为占位;安装后按对应模块恢复 `build/plugins/*` |
|
|
158
157
|
| addon 类型检查 | 未装 addon 时相关路径在 `tsconfig exclude`;**装包后须手动移除**对应项 → 见 `project-inventory` **第十节**(非自动) |
|
|
159
158
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
### docs/ 目录(只读)
|
|
163
|
-
|
|
164
|
-
| 项 | 说明 |
|
|
165
|
-
|----|------|
|
|
166
|
-
| 用途 | 人类可读文档、UI 风格演示页(`docs/style-templates/`)等 |
|
|
167
|
-
| 与业务关系 | **不参与**业务开发落盘;其中示例代码**不跟随** `src/` 等业务实现同步修改 |
|
|
168
|
-
| AI 行为 | 默认**不读、不改、不引用为落盘目标**;仅用户明确要求更新文档本身时可改 |
|
|
169
|
-
| 参考方式 | 风格选型可**只读浏览**演示页后与用户沟通;中后台功能页仍按 Skill 标准样板在 `src/` 实现 |
|
|
159
|
+
非用户要求,不改 `vite.config.ts` / `build/**`。
|
|
170
160
|
|
|
171
161
|
## 八、环境变量
|
|
172
162
|
|
|
@@ -180,6 +170,6 @@ export function getCustomerList(data: CustomerQuery, url: string) {
|
|
|
180
170
|
| 列表/表单 CRUD | `crud-pages` |
|
|
181
171
|
| 详情跳转 | `detail-page` |
|
|
182
172
|
| 主题布局 | `layout-theme` |
|
|
183
|
-
| 设计规范适配 | `design-system` + 有产出时 `design-handoff` |
|
|
173
|
+
| 设计规范适配 | `design-system` + 有产出时 `design-handoff` + `design-verify` |
|
|
184
174
|
| 版本/安装 | `project-inventory` |
|
|
185
175
|
| 生成后审查 | `code-quality` |
|