@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 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
- | cursor | `~/.cursor/skills/vue3-temp-skill/` |
50
- | claude | `~/.claude/skills/vue3-temp-skill/` |
51
- | universal | `~/.agents/skills/vue3-temp-skill/` |
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
- - **`docs/` 只读**:模板 `docs/**`(如风格演示页)为静态文档说明,**不随业务代码同步修改**;仅用户明确要求维护文档时才改动
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
- - **`docs/` 只读边界**:模板仓库 `docs/**`(如 `docs/style-templates/`)为**静态文档/演示说明**,仅供人类预览与沟通参考;**禁止**在业务开发、设计落地、重构、联调等场景中同步修改其中的文件。`docs/` 内示例代码**不跟随** `src/` 等业务代码联动更新;仅当用户**明确要求**维护文档本身时方可改动
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
- 设计技能(project-ui-design)每次产出时**始终自动附加 `design-handoff/v1` JSON**。本技能检测到 JSON 后**强制加载** `references/design-handoff.md`,按 C/T/F/Co/S/P 六步全流程执行(配置→令牌→框架→共享组件→样式→页面),**任一步跳过 = 硬失败**。设计产出优先级高于本技能出厂默认值,页面保留业务逻辑、重写视觉结构。用户无需提及「JSON」或「handoff」——这是两技能间的自动协议。完整规则与逐项清单见 `design-handoff.md`。
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
- ### ⚠️ 设计落地绝对禁止修改 docs/**
105
+ ### 设计产出落盘范围
104
106
 
105
- 设计落地场景下,`docs/` 目录为**只读**,绝对禁止修改:
106
- - 不得把设计产出的 HTML 保存到 `docs/`
107
- - 不得在 `docs/` 中生成设计规范文档
108
- - ❌ 不得修改 `docs/style-templates/` 的演示页
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
- 违反此规则即硬失败,必须立即撤销对 docs/ 的修改。
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`(逐文件修改清单)+ `design-system.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/**` / **`docs/**`**;**例外**:按 `addon-enable.md` 恢复 FileViewer / VantResolver / Vconsole 等占位插件时允许改 `build/plugins/*`;`docs/**` 无例外,须用户明确要求才改
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 是否存在** — 若存在,强制加载 `design-handoff`(逐文件修改清单,含 C/T/F/Co/S/P 全流程 + 共享组件映射 + 项目级模式)+ `design-system.md`,并按设计产出优先级执行
231
- 3. **模式判断**:有 handoff JSON 时,读取 `meta.transformScope`:
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
- - **禁止**同步修改 `docs/**`(除非用户明确要求维护文档)
241
- 7. **设计还原度验证**:有 handoff JSON 时必须执行,按 `design-handoff.md` 第十章逐区域逐元素对照设计规范验证,输出「设计还原度验证报告」,未通过项必须修正
242
- 8. **功能完整性核查**:有 handoff JSON 时必须执行,按 `design-handoff.md` 第十一章逐项核查功能是否正常(框架/共享组件/页面),样式改造不得破坏原有功能,发现问题立即修正
243
- 9. **code-quality**:按 `references/code-quality.md` 执行;**有 handoff JSON 时,额外执行 handoff 落地完整性校验**(项目级模式需校验全页面完成度 + 共享组件修改 + 设计还原度 + 功能完整性)
244
- 10. **输出**:变更说明(含已改配置文件列表)+ 设计还原度验证报告 + 功能完整性核查报告 + 待确认项;**项目级模式未全部完成时,输出进度 + 待改造页面清单 + 「继续」指令提示**
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 uninstall cursor
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.29",
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. 业务项目根目录必跑:`pnpm lint:fix` `pnpm type-check`(无脚本则 `pnpm lint` / `pnpm exec eslint . --fix`;`pnpm exec vue-tsc --noEmit`)
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
- #### 设计还原度验证(有 handoff JSON 时必须执行)
132
-
133
- > 验证依据:设计 skill 的规范文件(design-tokens.md / unified-framework.md / list-page.md / component-spec.md)
134
- > 验证方法:代码级对照——读取设计规范预期值 → 检查项目代码实际值 → 比对是否一致
135
- > 验证顺序:框架层 页面层 共享组件层 细节项 → 元素清理
136
-
137
- - [ ] **框架层还原度**:顶栏高度/元素/折叠位置、侧栏宽度/背景/激活态、页签高度/激活态、内容区背景/padding,共 10 项已逐项对照
138
- - [ ] **页面层还原度**:卡片阴影圆角、标题区字号/padding、筛选区背景/分隔线、工具栏布局/按钮、表格表头/行高/hover、操作列样式、分页布局、模块分割线/间距,共 12 项已逐项对照
139
- - [ ] **共享组件还原度**:ReTableBar(按钮样式/布局/分页集成)、ReTableOperate(文字链接/分隔线/更多箭头/折叠逻辑)、RePagination(样式/布局),共 10 项已逐项对照
140
- - [ ] **核心组件还原度**:按钮(高度/圆角/主色三态)、输入框(高度/圆角/focus 光环)、Tag(5 种状态色)、下拉菜单、空状态,已逐项对照
141
- - [ ] **细节项还原度**:图标大小 16px、分隔线 #F0F0F0、hover 文字加深不变浅、行高正确、字重正确、圆角统一、阴影自然、更多按钮有箭头、操作列有竖分隔线、页签下划线居中、操作列 sticky、选择列 48px、状态标签颜色对应、卡片有阴影,共 15 项已逐项检查
142
- - [ ] **令牌溯源检查**:颜色/尺寸/间距均通过 CSS 变量传递,变量值与 design-tokens.md 一致,无裸 hex/px 值
143
- - [ ] **元素清理检查**:设置按钮、展示列表标题、示例按钮、操作列多余图标等已全部移除
144
- - [ ] **已输出「设计还原度验证报告」**(格式见 design-handoff.md 第十章 10.7),包含整体还原度、各层通过率、偏差项及修正方案
145
- - [ ] **绝对禁止**:设计落地过程中未修改 `docs/**` 下任何文件(设计产出 HTML 不写入项目,设计规范不另存文档,所有修改只在 src/ 等业务代码中)
146
- - [ ] **功能完整性核查**:样式改造后原有功能全部正常(框架层/共享组件层/页面层均已逐项核查,无按钮失效、事件丢失、数据绑定断裂等功能回归问题)
147
- - [ ] **已输出「功能完整性核查报告」**(格式见 design-handoff.md 第十一章 11.7),包含整体通过率、各层核查结果、发现的问题及修正方案
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
- 非用户要求不改 `vite.config.ts` / `build/**` / **`docs/**`**。
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` |