@qilitt-mickey/vue3-temp-skill 1.1.72 → 1.1.74

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.
Files changed (84) hide show
  1. package/SKILL.md +137 -137
  2. package/bin/cli.js +1 -1
  3. package/dist/theme-vars.js +1 -1
  4. package/dist/theme.css +1 -1
  5. package/mapping/basic/color.json +35 -35
  6. package/mapping/basic/radius.json +17 -17
  7. package/mapping/basic/semantic-values.json +72 -72
  8. package/mapping/basic/spacing.json +21 -21
  9. package/mapping/basic/typography.json +21 -21
  10. package/mapping/component/button.json +90 -90
  11. package/mapping/component/card.json +31 -31
  12. package/mapping/component/input.json +42 -42
  13. package/mapping/component/overlay.json +79 -79
  14. package/mapping/component/pagination.json +34 -34
  15. package/mapping/component/table.json +42 -42
  16. package/mapping/component/tag.json +48 -48
  17. package/mapping/layout/breakpoint.json +20 -20
  18. package/mapping/layout/shell-geometry.json +26 -26
  19. package/mapping/scenes/admin/content.json +494 -494
  20. package/mapping/scenes/admin/layout.json +574 -574
  21. package/package.json +1 -1
  22. package/parser/fixtures/changeset-fullpage-restore.json +259 -138
  23. package/parser/fixtures/changeset-gap-block.json +24 -0
  24. package/parser/fixtures/changeset-legacy.json +11 -11
  25. package/parser/fixtures/changeset-neg1.json +8 -8
  26. package/parser/fixtures/changeset-neg2.json +10 -10
  27. package/parser/fixtures/changeset-neg3.json +22 -22
  28. package/parser/fixtures/changeset-neg4-g8.json +15 -15
  29. package/parser/fixtures/changeset-neg5-g8-stub.json +26 -26
  30. package/parser/fixtures/changeset-neg6-g9-identity.json +39 -39
  31. package/parser/fixtures/changeset-neg7-g10-dims.json +57 -57
  32. package/parser/fixtures/changeset-neg8-g11-oracle.json +57 -57
  33. package/parser/fixtures/changeset-pos-theme-neutral.json +264 -264
  34. package/parser/fixtures/changeset-pos-theme-nometa.json +260 -260
  35. package/parser/fixtures/changeset-pos.json +50 -43
  36. package/parser/fixtures/changeset-registry-gap.json +29 -29
  37. package/parser/fixtures/changeset-v32-fields.json +71 -63
  38. package/parser/fixtures/fake-project/src/styles/app.scss +5 -5
  39. package/parser/fixtures/fake-project/src/views/list.vue +13 -13
  40. package/parser/fixtures/registry-bad.json +11 -11
  41. package/parser/fixtures/registry-sample.json +15 -15
  42. package/parser/fixtures/verify/actual-clean.json +35 -35
  43. package/parser/fixtures/verify/actual.json +33 -33
  44. package/parser/fixtures/verify/mockup-baseline-admin-list.html +27 -0
  45. package/parser/fixtures/verify/mockup-neutral.html +26 -26
  46. package/parser/fixtures/verify/mockup-nometa.html +26 -26
  47. package/parser/fixtures/verify/oracle.json +37 -37
  48. package/parser/fixtures/verify/snapshot-latest.json +102 -102
  49. package/parser/generator.js +178 -178
  50. package/parser/index.js +2675 -2648
  51. package/parser/loader.js +66 -66
  52. package/parser/override.js +119 -119
  53. package/parser/regression.js +301 -293
  54. package/parser/validator.js +206 -206
  55. package/parser/watch.js +103 -103
  56. package/references/auth-pages.md +217 -217
  57. package/references/base-code-dict.md +56 -56
  58. package/references/data-compare.md +509 -509
  59. package/references/data-writeback.md +124 -124
  60. package/references/design-apply.md +167 -167
  61. package/references/detail-page.md +119 -119
  62. package/references/download-export.md +97 -97
  63. package/references/feedback-loading.md +104 -104
  64. package/references/feedback-ui.md +134 -134
  65. package/references/i18n-localization.md +230 -230
  66. package/references/project-inventory.md +438 -438
  67. package/references/rich-text.md +94 -94
  68. package/references/seamless-scroll.md +47 -47
  69. package/references/steps/maintenance.md +31 -31
  70. package/references/steps/regression.md +49 -49
  71. package/references/steps/step0-preflight.md +58 -58
  72. package/references/steps/step1-match.md +64 -64
  73. package/references/steps/step1b-audit.md +23 -23
  74. package/references/steps/step1c-registry.md +29 -29
  75. package/references/steps/step2-structure.md +73 -73
  76. package/references/steps/step3-style.md +33 -33
  77. package/references/steps/step3b-shell.md +61 -61
  78. package/references/steps/step3c-priority.md +26 -26
  79. package/references/steps/step4-l3.md +14 -14
  80. package/references/steps/step5-gates.md +63 -63
  81. package/references/steps/step6-verify.md +77 -77
  82. package/references/verify-captcha.md +119 -119
  83. package/scripts/apply-final-gate.mjs +170 -170
  84. package/scripts/design-audit.mjs +1502 -1502
package/SKILL.md CHANGED
@@ -1,137 +1,137 @@
1
- ---
2
- name: "vue3-temp-skill"
3
- description: "Vue 3 企业级项目开发技能。面向 vue3-web-temp 及其派生项目,帮助产品经理和前端快速把点子做成可演示、可验证、可继续演进的 Demo;同时约束真实模板复用和代码质量。"
4
- scope: project
5
- agent_created: true
6
- tags: [vue3, typescript, element-plus, pinia, vite, unocss, crud, demo, code-quality]
7
- ---
8
-
9
- # Vue 3 项目开发技能
10
-
11
- > **体系版本:1.0.0**(双 Skill 唯一版本声明点之一;设计侧 project-ui-design 同版)。版本恒定策略:双侧始终同版,不随内容修改递增,仅协议破坏性变更时双侧同步升版。mapping/*.json 的 `meta.version` 与变更集校验均恒为 `1.0.0`,不单独演进。
12
-
13
- ## 目标
14
-
15
- 把产品点子快速落到真实 Vue 3 项目中,先形成客户可看的完整 Demo,再保留后续正式开发所需的代码边界。页面可以使用 mock 和最小数据,但不得使用模板演示噪音、虚构项目能力或堆叠无法维护的代码。
16
-
17
- ## 触发方式
18
-
19
- ```text
20
- /vue3-temp-skill <自然语言需求>
21
- ```
22
-
23
- 典型需求:
24
-
25
- - 开发客户管理列表,支持搜索、分页、编辑和详情
26
- - 做一个订单仪表盘,含统计卡片和趋势图
27
- - 给现有 Demo 增加附件上传、导出或审批流
28
- - 把一个页面从 mock 改成真实 API
29
- - 「按这份设计方案改造全系统」/ 落地设计技能产出的设计文件(用户可能是小白,只会给文件路径或拖入文件;见 §3b)
30
-
31
- ## 运行时只保留三件事
32
-
33
- 1. **项目探查**:读取目标项目的 `package.json`、路由、页面、`Re*` 组件、Hooks、API 和样式;以源码事实为准。
34
- 2. **能力路由**:运行 `scripts/match.py "需求" --json`,**仅**按输出中的 `load_files` 阅读 reference;禁止自行展开全部 `references/`。无 Python 时按下方能力组表手动匹配。
35
- 3. **质量闸门**:代码完成后读取 `references/code-quality.md`,执行清单和项目命令。设计变更集落地后追加**设计层闭环审计**:`node scripts/design-audit.mjs --project <落地项目> --container-width <内容区实际宽>`(ERROR 必须清零;无落地项目时自动跳过)。**会话结束前必须跑通终态凭证闸**:`node scripts/apply-final-gate.mjs --project <落地项目> --container-width <内容区实际宽>`(串联 changeset-selfcheck → parser match → parser audit → design-audit 四闸,`FINAL-GATE: PASS` 才算交付完成,凭证写入 `.design/ledger.json`)。
36
-
37
- ## 能力组路由
38
-
39
- | 能力组 | 覆盖内容 | 主要参考文件 |
40
- |---|---|---|
41
- | `page-crud` | 常规列表、筛选、分页、表格操作 | `crud-pages.md` |
42
- | `page-detail` | 独立详情/编辑页、顶部标签、路由 meta | `detail-page.md` |
43
- | `data-service` | HTTP、API、类型、mock、联调 | `http-api.md`、`api-check.md` |
44
- | `forms` | 表单、弹窗、远程选择、回显、字典、反馈 | `form-advanced.md`、`data-writeback.md`、`base-code-dict.md`、`feedback-loading.md` |
45
- | `access` | 权限、认证页面 | `permission-auth.md`、`auth-pages.md` |
46
- | `theme-layout` | 布局、主题色、暗黑模式、侧栏配色、令牌 | `layout-theme.md` |
47
- | `shared-ui` | Re*、图标、通用展示和指令 | `ui-components.md`、`icons.md`、`feedback-ui.md`、`directives-advanced.md` |
48
- | `table-advanced` | 树表、VXE 表格 | `tree-table.md`、`table-vxe.md` |
49
- | `visualization` | 图表、大屏、关系图谱 | `chart-echarts.md`、`data-screen.md`、`graph-relation.md` |
50
- | `workflow` | BPMN、G6 流程图、字段映射 | `workflow-bpmn.md`、`flowchart-g6.md`、`data-mapping.md` |
51
- | `files-and-editors` | 附件、预览、下载、富文本、二维码 | `file-management.md`、`download-export.md`、`rich-text.md`、`qrcode-barcode.md` |
52
- | `realtime-and-mobile` | WebSocket、移动端、微信、验证码、动效 | 对应专项 reference |
53
- | `data-compare` | 编辑页变更对比和汇总 | `data-compare.md` |
54
- | `design-apply` | 设计变更集落地:语义 ID 三级匹配、结构/形态/两层样式转换、锚点与结构施工、覆写提权、渲染态验收、合规闸门。**主入口 `design-apply.md`(红线+契约+步骤索引),各步骤明细见 `references/steps/`——做到哪一步读哪一份** | `design-apply.md`、`steps/`、`mapping/`、`parser/`、`scripts/design-audit.mjs`、`scripts/apply-final-gate.mjs` |
55
-
56
- ## 工作流
57
-
58
- ### 1. 识别目标和范围
59
-
60
- - 确认目标项目根目录;没有明确目标时先询问,不在技能仓库里写业务代码。
61
- - 判断是 Demo 验证、功能增量还是正式业务开发。
62
- - 保留目标项目当前初始化视觉,不让开发技能自行设计。
63
-
64
- ### 2. 读取事实
65
-
66
- - 先读 `references/core-kernel.md`。
67
- - 运行 `scripts/match.py "需求" --json`,按 `load_files` 阅读。
68
- - 读取目标项目当前 `package.json` 和锁文件;不要根据“core/addon”标签猜依赖是否存在。
69
- - 扫描已有 `Re*`、Hooks、`src/api`、路由和相关页面;已有封装优先于技能示例。
70
-
71
- ### 3. 实现闭环
72
-
73
- - 页面、路由、API、类型、mock 和共享组件按一个业务闭环实现。
74
- - 列表使用 `useTableSearch`、`ReTableBar`、`RePagination`;有独立详情时同步完成 `useDetail` 与路由 meta。
75
- - HTTP 只经过 `@/utils/http`,响应按项目实际 `Result<T>` 约定处理。
76
- - Demo 可以最小化数据和接口,但目录、类型、命名和组件边界要能承接后续开发。
77
- - 新依赖先检查目标项目;缺失时说明精确版本、原因和构建接线,确认后再安装。
78
- - 只有目标项目确实存在排除项、占位插件或缺失接线时,才读取 `addon-enable.md` 恢复配置。
79
- - **输入为设计文件时**:用户给出设计技能(project-ui-design)产出的 JSON 文件(无论叫"设计方案/设计文件/变更集")→ 不走常规闭环,改走 `design-apply.md` 协议——先跑 `node parser/index.js audit` 复核锚点(挂载点/死通道),再按「结构先行(`structure_ops`)、样式两层转换、必要时覆写提权(`priority`)」落地,最后过变更集合规闸门。变更集新增三类声明维度:`apply_via`(落点通道)/ `layer`(`host` 宿主盒 / `inner` 内层文本盒)/ `structure_ops`(数据·结构驱动点位的结构操作);词典条目对应新增 `anchors` / `preconditions` / `priority`。
80
-
81
- ### 3b. 小白用户执行纪律(design-apply 场景)
82
-
83
- 使用者默认**不懂设计也不懂代码**,交互遵守四条:
84
-
85
- 1. **全自动默认**:识别为设计文件落地后**直接开始执行 parser match → 结构 → 样式 → 闸门全流程**,不等用户逐步确认,不询问"是否继续";唯一停顿点是文件缺失/版本不匹配/parser 报错——此时用大白话报告并给选择题。
86
- **禁止以「待确认」搁置可落地项**:词典缺 ID / 缺字段枚举 / 缺 form 属**能力缺口**,当场补临时映射并落地(出厂文件仅在补通道时可动,交付说明单列申报);只有「设计侧没给值」才是**意图缺口**,去向是回流设计侧补齐,不是问用户要不要做。
87
- 2. **术语不对用户出现**:对用户不说"变更集/语义 ID/三级匹配/pending/令牌"——说"设计方案/设计点位/自动适配/新增点位/全局样式"。这些词只出现在内部文档与交付说明里。
88
- 3. **无文件时的引导**:用户说"全系统改成 XX 风格"但没给设计文件 → 提示一句话:"请先在设计助手(project-ui-design 技能)里说『我要 XX 风格的全系统设计』拿到设计文件,再回来发给我"。如果本机同时装有设计技能,可直接引导用户回到设计会话完成设计,再回本项目落地。
89
- 4. **交付话术**:完成后用大白话总结(改了哪些页面/哪些地方变了/怎么验收),不输出施工坐标等技术细节;验收引导统一为"运行 `pnpm dev` 打开页面对照看效果,哪里不满意直接说"。
90
-
91
- ### 4. 验证与交付
92
-
93
- - 对照 `references/code-quality.md` 检查类型、组件复用、API、路由、权限、安全、异常反馈、响应式和可演进性。
94
- - 在目标项目执行 `pnpm lint:fix`、`pnpm type-check`;改动构建配置时再执行 `pnpm build`。**本轮产出或修改设计变更集时,这两条不含还原度检查——必须按 code-quality 协议 3 同链追加终态闸 `apply-final-gate`(串联 selfcheck → match → audit → design-audit,取得 FINAL-GATE: PASS),禁止只跑 lint 链就报「全部质量闸门通过」。**
95
- - **设计文件落地时追加渲染态验收**:变更集含 `oracle`(或效果图带 `data-sid`)时,跑 `node parser/index.js verify`——抽取项目同名 `data-sid` 元素的 computed style,与效果图期望值逐点 diff;缺口按四类归因(选择器落空 / 权重被压 / 语境错位 / **存在性缺口 G12**:`oracle.absent` 点位仍可见)修正,禁止用 `!important` 掩盖。多轮迭代场景每轮动工前先 `--snapshot` 导快照、交付前 `--baseline` 比对——上轮命中本轮退步 = 基线漂移,先回归上轮修法。申报过的固有残差(`oracle.residual_accepted`)不计缺口。
96
- - **设计文件落地时核对登记表覆盖率**:变更集带登记表(`coverage.registry` 或 `--registry`)时,跑 `node parser/index.js match <cs.json> --registry <restore-registry.json>`——`C = A` 且无缺口才可交付;parser **当场以登记表为权威重算**,设计侧自报的 `coverage` 数字不参与。单独核验登记表对词典的通道就绪度用 `node parser/index.js registry <restore-registry.json>`(硬缺口 exit 1、通道缺口列出待补字段)。
97
- - 最终说明:命中能力组、修改文件、功能验证、命令结果、未解决问题和下一步。
98
-
99
- ## 出厂中性 · 变更集驱动(design-apply 架构红线)
100
-
101
- 目标项目源码 = **中性初始化**,只提供能力通道(CSS 变量的消费者挂载点、form 枚举、DOM/属性钩子、正确的层叠优先级),**不预置任何具体设计的结论**(某个颜色、某句问候语、某个方位的指示条、某个硬编码尺寸)。
102
-
103
- - 一切设计决策由设计变更集驱动,经 `design-apply` 动态落到「设计层文件 `src/styles/design-shell.scss` / 页面级 scoped 样式 / DOM 属性与配置」,不落到出厂样式文件与出厂组件里。
104
- - **效果图页面 = 设计角色坐标系,不是页面增量(G13 页面绑定闸)**:效果图页面(如「运单管理」)是设计侧为承载设计语言虚构的演示标题,**默认映射到项目已有页面**——落地动作恒为「在已有页面上同步结构与样式」,**禁止因效果图新增页面 / 路由 / 菜单项**;唯一例外是变更集 `page_bindings` 显式声明 `target:"new"` 且在 `notes` 申报。判据:换一张效果图不需要改项目的页面/路由/菜单清单 ⇒ 架构正确;需要新增页面才能换 ⇒ 设计演示页被误当业务增量,必须回退。
105
- - **演示占位内容 = 效果的角色承载,不是还原目标(演示内容等价)**:项目演示页上为展示"此处可放控件"而写的占位说明文字 / 演示按钮,既不是效果图的角色、也不是设计意图。落地时必须把落在效果图对应角色上的演示占位**替换为设计对应内容**,或对效果图没有该位置的点位**收口隐藏**——**还原后的页面不得残留模板演示说明性文字与占位按钮**。判据:残留演示文案说明「效果 vs 内容」混淆——把模板演示内容当成设计还原,必须回退(详见 design-apply 第 2 步「出厂演示占位内容等价」)。
106
- - 判据:换一张效果图只需换变更集、不必改源码 ⇒ 架构正确;需要改源码才能换 ⇒ 设计结论被烧进源码,必须回退为通道。
107
- - 出厂文件仅在「通道缺失」时可动(补变量消费者 / 补 form 枚举 / 修层叠优先级),且必须在交付说明中单列「补通道」条目写明缺失点。
108
-
109
- ## 项目事实优先级
110
-
111
- `目标项目当前源码` > `目标项目 package.json / 锁文件` > `本 Skill reference` > `通用 Vue 习惯`。
112
-
113
- ## 默认禁止
114
-
115
- - 不在页面内直接使用 `axios` / `fetch`,不虚构 API 前缀。
116
- - 不二次挂载 `Layout`,不把模板演示页原样当业务页面。
117
- - 不使用裸 `v-if` 代替权限指令,不使用不可信 `v-html`。
118
- - 不为了视觉效果引入未经确认的新 UI 框架或图表库。
119
- - 不把 lint 通过当成业务闭环完成。
120
-
121
- ## 最终回复格式
122
-
123
- ```markdown
124
- ## 命中能力组
125
- - page-crud / data-service / ...
126
-
127
- ## 变更说明
128
- - `src/...`:...
129
-
130
- ## 验证结果
131
- - 功能:...
132
- - `pnpm lint:fix`:通过 | 失败(原因)
133
- - `pnpm type-check`:通过 | 失败(原因)
134
- - 设计闸(本轮有设计变更集时必填,无则 N/A):`apply-final-gate` → FINAL-GATE: PASS ✅(凭证已写入 ledger.json)
135
- - 设计验收:无 oracle 时 N/A | 逐点 diff 结果(命中 N / 缺口 M,归因与修正)
136
- - 缺口回流:无 | 仅限「设计侧未给值」的维度(列出维度名,注明已回流设计侧补齐)
137
- ```
1
+ ---
2
+ name: "vue3-temp-skill"
3
+ description: "Vue 3 企业级项目开发技能。面向 vue3-web-temp 及其派生项目,帮助产品经理和前端快速把点子做成可演示、可验证、可继续演进的 Demo;同时约束真实模板复用和代码质量。"
4
+ scope: project
5
+ agent_created: true
6
+ tags: [vue3, typescript, element-plus, pinia, vite, unocss, crud, demo, code-quality]
7
+ ---
8
+
9
+ # Vue 3 项目开发技能
10
+
11
+ > **体系版本:1.0.0**(双 Skill 唯一版本声明点之一;设计侧 project-ui-design 同版)。版本恒定策略:双侧始终同版,不随内容修改递增,仅协议破坏性变更时双侧同步升版。mapping/*.json 的 `meta.version` 与变更集校验均恒为 `1.0.0`,不单独演进。
12
+
13
+ ## 目标
14
+
15
+ 把产品点子快速落到真实 Vue 3 项目中,先形成客户可看的完整 Demo,再保留后续正式开发所需的代码边界。页面可以使用 mock 和最小数据,但不得使用模板演示噪音、虚构项目能力或堆叠无法维护的代码。
16
+
17
+ ## 触发方式
18
+
19
+ ```text
20
+ /vue3-temp-skill <自然语言需求>
21
+ ```
22
+
23
+ 典型需求:
24
+
25
+ - 开发客户管理列表,支持搜索、分页、编辑和详情
26
+ - 做一个订单仪表盘,含统计卡片和趋势图
27
+ - 给现有 Demo 增加附件上传、导出或审批流
28
+ - 把一个页面从 mock 改成真实 API
29
+ - 「按这份设计方案改造全系统」/ 落地设计技能产出的设计文件(用户可能是小白,只会给文件路径或拖入文件;见 §3b)
30
+
31
+ ## 运行时只保留三件事
32
+
33
+ 1. **项目探查**:读取目标项目的 `package.json`、路由、页面、`Re*` 组件、Hooks、API 和样式;以源码事实为准。
34
+ 2. **能力路由**:运行 `scripts/match.py "需求" --json`,**仅**按输出中的 `load_files` 阅读 reference;禁止自行展开全部 `references/`。无 Python 时按下方能力组表手动匹配。
35
+ 3. **质量闸门**:代码完成后读取 `references/code-quality.md`,执行清单和项目命令。设计变更集落地后追加**设计层闭环审计**:`node scripts/design-audit.mjs --project <落地项目> --container-width <内容区实际宽>`(ERROR 必须清零;无落地项目时自动跳过)。**会话结束前必须跑通终态凭证闸**:`node scripts/apply-final-gate.mjs --project <落地项目> --container-width <内容区实际宽>`(串联 changeset-selfcheck → parser match → parser audit → design-audit 四闸,`FINAL-GATE: PASS` 才算交付完成,凭证写入 `.design/ledger.json`)。
36
+
37
+ ## 能力组路由
38
+
39
+ | 能力组 | 覆盖内容 | 主要参考文件 |
40
+ |---|---|---|
41
+ | `page-crud` | 常规列表、筛选、分页、表格操作 | `crud-pages.md` |
42
+ | `page-detail` | 独立详情/编辑页、顶部标签、路由 meta | `detail-page.md` |
43
+ | `data-service` | HTTP、API、类型、mock、联调 | `http-api.md`、`api-check.md` |
44
+ | `forms` | 表单、弹窗、远程选择、回显、字典、反馈 | `form-advanced.md`、`data-writeback.md`、`base-code-dict.md`、`feedback-loading.md` |
45
+ | `access` | 权限、认证页面 | `permission-auth.md`、`auth-pages.md` |
46
+ | `theme-layout` | 布局、主题色、暗黑模式、侧栏配色、令牌 | `layout-theme.md` |
47
+ | `shared-ui` | Re*、图标、通用展示和指令 | `ui-components.md`、`icons.md`、`feedback-ui.md`、`directives-advanced.md` |
48
+ | `table-advanced` | 树表、VXE 表格 | `tree-table.md`、`table-vxe.md` |
49
+ | `visualization` | 图表、大屏、关系图谱 | `chart-echarts.md`、`data-screen.md`、`graph-relation.md` |
50
+ | `workflow` | BPMN、G6 流程图、字段映射 | `workflow-bpmn.md`、`flowchart-g6.md`、`data-mapping.md` |
51
+ | `files-and-editors` | 附件、预览、下载、富文本、二维码 | `file-management.md`、`download-export.md`、`rich-text.md`、`qrcode-barcode.md` |
52
+ | `realtime-and-mobile` | WebSocket、移动端、微信、验证码、动效 | 对应专项 reference |
53
+ | `data-compare` | 编辑页变更对比和汇总 | `data-compare.md` |
54
+ | `design-apply` | 设计变更集落地:语义 ID 三级匹配、结构/形态/两层样式转换、锚点与结构施工、覆写提权、渲染态验收、合规闸门。**主入口 `design-apply.md`(红线+契约+步骤索引),各步骤明细见 `references/steps/`——做到哪一步读哪一份** | `design-apply.md`、`steps/`、`mapping/`、`parser/`、`scripts/design-audit.mjs`、`scripts/apply-final-gate.mjs` |
55
+
56
+ ## 工作流
57
+
58
+ ### 1. 识别目标和范围
59
+
60
+ - 确认目标项目根目录;没有明确目标时先询问,不在技能仓库里写业务代码。
61
+ - 判断是 Demo 验证、功能增量还是正式业务开发。
62
+ - 保留目标项目当前初始化视觉,不让开发技能自行设计。
63
+
64
+ ### 2. 读取事实
65
+
66
+ - 先读 `references/core-kernel.md`。
67
+ - 运行 `scripts/match.py "需求" --json`,按 `load_files` 阅读。
68
+ - 读取目标项目当前 `package.json` 和锁文件;不要根据“core/addon”标签猜依赖是否存在。
69
+ - 扫描已有 `Re*`、Hooks、`src/api`、路由和相关页面;已有封装优先于技能示例。
70
+
71
+ ### 3. 实现闭环
72
+
73
+ - 页面、路由、API、类型、mock 和共享组件按一个业务闭环实现。
74
+ - 列表使用 `useTableSearch`、`ReTableBar`、`RePagination`;有独立详情时同步完成 `useDetail` 与路由 meta。
75
+ - HTTP 只经过 `@/utils/http`,响应按项目实际 `Result<T>` 约定处理。
76
+ - Demo 可以最小化数据和接口,但目录、类型、命名和组件边界要能承接后续开发。
77
+ - 新依赖先检查目标项目;缺失时说明精确版本、原因和构建接线,确认后再安装。
78
+ - 只有目标项目确实存在排除项、占位插件或缺失接线时,才读取 `addon-enable.md` 恢复配置。
79
+ - **输入为设计文件时**:用户给出设计技能(project-ui-design)产出的 JSON 文件(无论叫"设计方案/设计文件/变更集")→ 不走常规闭环,改走 `design-apply.md` 协议——先跑 `node parser/index.js audit` 复核锚点(挂载点/死通道),再按「结构先行(`structure_ops`)、样式两层转换、必要时覆写提权(`priority`)」落地,最后过变更集合规闸门。变更集新增三类声明维度:`apply_via`(落点通道)/ `layer`(`host` 宿主盒 / `inner` 内层文本盒)/ `structure_ops`(数据·结构驱动点位的结构操作);词典条目对应新增 `anchors` / `preconditions` / `priority`。
80
+
81
+ ### 3b. 小白用户执行纪律(design-apply 场景)
82
+
83
+ 使用者默认**不懂设计也不懂代码**,交互遵守四条:
84
+
85
+ 1. **全自动默认**:识别为设计文件落地后**直接开始执行 parser match → 结构 → 样式 → 闸门全流程**,不等用户逐步确认,不询问"是否继续";唯一停顿点是文件缺失/版本不匹配/parser 报错——此时用大白话报告并给选择题。
86
+ **禁止以「待确认」搁置可落地项**:词典缺 ID / 缺字段枚举 / 缺 form 属**能力缺口**,当场补临时映射并落地(出厂文件仅在补通道时可动,交付说明单列申报);只有「设计侧没给值」才是**意图缺口**,去向是回流设计侧补齐,不是问用户要不要做。
87
+ 2. **术语不对用户出现**:对用户不说"变更集/语义 ID/三级匹配/pending/令牌"——说"设计方案/设计点位/自动适配/新增点位/全局样式"。这些词只出现在内部文档与交付说明里。
88
+ 3. **无文件时的引导**:用户说"全系统改成 XX 风格"但没给设计文件 → 提示一句话:"请先在设计助手(project-ui-design 技能)里说『我要 XX 风格的全系统设计』拿到设计文件,再回来发给我"。如果本机同时装有设计技能,可直接引导用户回到设计会话完成设计,再回本项目落地。
89
+ 4. **交付话术**:完成后用大白话总结(改了哪些页面/哪些地方变了/怎么验收),不输出施工坐标等技术细节;验收引导统一为"运行 `pnpm dev` 打开页面对照看效果,哪里不满意直接说"。
90
+
91
+ ### 4. 验证与交付
92
+
93
+ - 对照 `references/code-quality.md` 检查类型、组件复用、API、路由、权限、安全、异常反馈、响应式和可演进性。
94
+ - 在目标项目执行 `pnpm lint:fix`、`pnpm type-check`;改动构建配置时再执行 `pnpm build`。**本轮产出或修改设计变更集时,这两条不含还原度检查——必须按 code-quality 协议 3 同链追加终态闸 `apply-final-gate`(串联 selfcheck → match → audit → design-audit,取得 FINAL-GATE: PASS),禁止只跑 lint 链就报「全部质量闸门通过」。**
95
+ - **设计文件落地时追加渲染态验收**:变更集含 `oracle`(或效果图带 `data-sid`)时,跑 `node parser/index.js verify`——抽取项目同名 `data-sid` 元素的 computed style,与效果图期望值逐点 diff;缺口按四类归因(选择器落空 / 权重被压 / 语境错位 / **存在性缺口 G12**:`oracle.absent` 点位仍可见)修正,禁止用 `!important` 掩盖。多轮迭代场景每轮动工前先 `--snapshot` 导快照、交付前 `--baseline` 比对——上轮命中本轮退步 = 基线漂移,先回归上轮修法。申报过的固有残差(`oracle.residual_accepted`)不计缺口。
96
+ - **设计文件落地时核对登记表覆盖率**:变更集带登记表(`coverage.registry` 或 `--registry`)时,跑 `node parser/index.js match <cs.json> --registry <restore-registry.json>`——`C = A` 且无缺口才可交付;parser **当场以登记表为权威重算**,设计侧自报的 `coverage` 数字不参与。单独核验登记表对词典的通道就绪度用 `node parser/index.js registry <restore-registry.json>`(硬缺口 exit 1、通道缺口列出待补字段)。
97
+ - 最终说明:命中能力组、修改文件、功能验证、命令结果、未解决问题和下一步。
98
+
99
+ ## 出厂中性 · 变更集驱动(design-apply 架构红线)
100
+
101
+ 目标项目源码 = **中性初始化**,只提供能力通道(CSS 变量的消费者挂载点、form 枚举、DOM/属性钩子、正确的层叠优先级),**不预置任何具体设计的结论**(某个颜色、某句问候语、某个方位的指示条、某个硬编码尺寸)。
102
+
103
+ - 一切设计决策由设计变更集驱动,经 `design-apply` 动态落到「设计层文件 `src/styles/design-shell.scss` / 页面级 scoped 样式 / DOM 属性与配置」,不落到出厂样式文件与出厂组件里。
104
+ - **效果图页面 = 设计角色坐标系,不是页面增量(G13 页面绑定闸)**:效果图页面(如「运单管理」)是设计侧为承载设计语言虚构的演示标题,**默认映射到项目已有页面**——落地动作恒为「在已有页面上同步结构与样式」,**禁止因效果图新增页面 / 路由 / 菜单项**;唯一例外是变更集 `page_bindings` 显式声明 `target:"new"` 且在 `notes` 申报。判据:换一张效果图不需要改项目的页面/路由/菜单清单 ⇒ 架构正确;需要新增页面才能换 ⇒ 设计演示页被误当业务增量,必须回退。
105
+ - **演示占位内容 = 效果的角色承载,不是还原目标(演示内容等价)**:项目演示页上为展示"此处可放控件"而写的占位说明文字 / 演示按钮,既不是效果图的角色、也不是设计意图。落地时必须把落在效果图对应角色上的演示占位**替换为设计对应内容**,或对效果图没有该位置的点位**收口隐藏**——**还原后的页面不得残留模板演示说明性文字与占位按钮**。判据:残留演示文案说明「效果 vs 内容」混淆——把模板演示内容当成设计还原,必须回退(详见 design-apply 第 2 步「出厂演示占位内容等价」)。
106
+ - 判据:换一张效果图只需换变更集、不必改源码 ⇒ 架构正确;需要改源码才能换 ⇒ 设计结论被烧进源码,必须回退为通道。
107
+ - 出厂文件仅在「通道缺失」时可动(补变量消费者 / 补 form 枚举 / 修层叠优先级),且必须在交付说明中单列「补通道」条目写明缺失点。
108
+
109
+ ## 项目事实优先级
110
+
111
+ `目标项目当前源码` > `目标项目 package.json / 锁文件` > `本 Skill reference` > `通用 Vue 习惯`。
112
+
113
+ ## 默认禁止
114
+
115
+ - 不在页面内直接使用 `axios` / `fetch`,不虚构 API 前缀。
116
+ - 不二次挂载 `Layout`,不把模板演示页原样当业务页面。
117
+ - 不使用裸 `v-if` 代替权限指令,不使用不可信 `v-html`。
118
+ - 不为了视觉效果引入未经确认的新 UI 框架或图表库。
119
+ - 不把 lint 通过当成业务闭环完成。
120
+
121
+ ## 最终回复格式
122
+
123
+ ```markdown
124
+ ## 命中能力组
125
+ - page-crud / data-service / ...
126
+
127
+ ## 变更说明
128
+ - `src/...`:...
129
+
130
+ ## 验证结果
131
+ - 功能:...
132
+ - `pnpm lint:fix`:通过 | 失败(原因)
133
+ - `pnpm type-check`:通过 | 失败(原因)
134
+ - 设计闸(本轮有设计变更集时必填,无则 N/A):`apply-final-gate` → FINAL-GATE: PASS ✅(凭证已写入 ledger.json)
135
+ - 设计验收:无 oracle 时 N/A | 逐点 diff 结果(命中 N / 缺口 M,归因与修正)
136
+ - 缺口回流:无 | 仅限「设计侧未给值」的维度(列出维度名,注明已回流设计侧补齐)
137
+ ```
package/bin/cli.js CHANGED
@@ -34,7 +34,7 @@ const TRACK_FILE = path.join(HOME, ".vue3-temp-skill.json");
34
34
  // design-audit.mjs / check.mjs / apply-final-gate.mjs 必须随包分发:E11 交付完整性 / E12 设计层
35
35
  // 累积性(ledger 台账)/ 终态机读凭证(四闸串联,FINAL-GATE: PASS)是落地会话的运行时闸——
36
36
  // 缺了它们「只挑主题令牌落地 + 覆盖历史成果 + 以自述结束会话」无法被静态拦截
37
- // (实证:2026-09-24 孔雀绿轮,运行时副本无审计闸,残缺口变更集一路绿灯)。
37
+ // (失效模式:运行时副本缺审计闸时,残缺口变更集会一路绿灯)。
38
38
  const RUNTIME_SCRIPT_FILES = ["match.py", "modules.json", "design-audit.mjs", "check.mjs", "apply-final-gate.mjs"];
39
39
  const PKG_VERSION = JSON.parse(fs.readFileSync(path.join(SKILL_DIR, "package.json"), "utf-8")).version;
40
40
 
@@ -1,5 +1,5 @@
1
1
  // AUTO-GENERATED by vue3-temp-skill parser/generator.js — DO NOT EDIT
2
- // 链路 A 运行时入口:themeVars + overrideMapping(业务级覆写,V3.1 §3.4.4.3)
2
+ // 链路 A 运行时入口:themeVars + overrideMapping(业务级覆写)
3
3
  // 用法:import { themeVars, overrideMapping } from '@qilitt-mickey/vue3-temp-skill/dist/theme-vars.js';
4
4
  // const custom = overrideMapping(themeVars, { color: { brandPrimary: '#ff6600' } });
5
5
  export const themeVars = {
package/dist/theme.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /* AUTO-GENERATED by vue3-temp-skill parser/generator.js — DO NOT EDIT */
2
- /* 链路 A(基线注入)产物:全局令牌变量基线(V3.1 §4.5.3)。
2
+ /* 链路 A(基线注入)产物:全局令牌变量基线。
3
3
  * 仅空白新项目从零接入 Skill 主题体系时在样式入口引入一次;
4
4
  * 成熟模板项目(自有 design-tokens.scss 权威令牌源)不得引入,避免双令牌源冲突。 */
5
5
  :root {
@@ -1,35 +1,35 @@
1
- {
2
- "$comment": "全局原子层 · 基础色彩令牌映射。abstract_field 为设计侧抽象样式字段名(纯视觉语义);token 为项目侧实现令牌(design-tokens.scss :root 或 EP 官方变量);design_range 为设计侧可选值域说明。由 vue3-temp-skill mapping 体系维护,禁止业务项目修改。",
3
- "meta": {
4
- "layer": "basic",
5
- "domain": "color",
6
- "version": "1.0.0",
7
- "scene": "global",
8
- "tech_stack": "vue3 + element-plus + vue3-web-temp"
9
- },
10
- "tokens": {
11
- "brand_primary": { "token": "--brand-primary", "type": "color", "desc": "品牌主色" },
12
- "brand_hover": { "token": "--brand-hover", "type": "color", "desc": "品牌悬停色" },
13
- "brand_active": { "token": "--brand-active", "type": "color", "desc": "品牌激活色" },
14
- "sidebar_bg": { "token": "--sidebar-bg", "type": "color", "desc": "侧栏底色(经 theme.scss data-theme=default → --vts-theme-menu-bg 链生效;浅色侧栏主题勿用此字段)" },
15
- "success_color": { "token": "--success-color", "type": "color", "desc": "成功功能色" },
16
- "warning_color": { "token": "--warning-color", "type": "color", "desc": "警告功能色" },
17
- "error_color": { "token": "--error-color", "type": "color", "desc": "错误功能色" },
18
- "text_primary": { "token": "--text-primary", "type": "color", "desc": "主文字色" },
19
- "text_secondary": { "token": "--text-secondary", "type": "color", "desc": "次文字色" },
20
- "text_tertiary": { "token": "--text-tertiary", "type": "color", "desc": "三级文字色" },
21
- "text_disabled": { "token": "--text-disabled", "type": "color", "desc": "禁用文字色" },
22
- "border_color": { "token": "--border-color", "type": "color", "desc": "主边框色" },
23
- "border_color_secondary": { "token": "--border-color-secondary", "type": "color", "desc": "次边框色" },
24
- "component_bg": { "token": "--component-bg", "type": "color", "desc": "组件面background(卡片/弹层底色)" },
25
- "layout_bg": { "token": "--layout-bg", "type": "color", "desc": "页面布局背景" },
26
- "primary_bg": { "token": "--primary-bg", "type": "color", "desc": "主色浅底(自动 color-mix 派生,一般不直改)" }
27
- },
28
- "el_bridge": {
29
- "$comment": "EP 官方变量桥接关系(只读说明):--brand-primary 等经 design-tokens.scss 自动桥接至 --el-color-primary/--el-bg-color/--el-text-color-* 等,设计侧无需输出 --el-* 字段。",
30
- "brand_primary_to_el": "--el-color-primary",
31
- "component_bg_to_el": "--el-bg-color",
32
- "layout_bg_to_el": "--el-bg-color-page",
33
- "text_primary_to_el": "--el-text-color-primary"
34
- }
35
- }
1
+ {
2
+ "$comment": "全局原子层 · 基础色彩令牌映射。abstract_field 为设计侧抽象样式字段名(纯视觉语义);token 为项目侧实现令牌(design-tokens.scss :root 或 EP 官方变量);design_range 为设计侧可选值域说明。由 vue3-temp-skill mapping 体系维护,禁止业务项目修改。",
3
+ "meta": {
4
+ "layer": "basic",
5
+ "domain": "color",
6
+ "version": "1.0.0",
7
+ "scene": "global",
8
+ "tech_stack": "vue3 + element-plus + vue3-web-temp"
9
+ },
10
+ "tokens": {
11
+ "brand_primary": { "token": "--brand-primary", "type": "color", "desc": "品牌主色" },
12
+ "brand_hover": { "token": "--brand-hover", "type": "color", "desc": "品牌悬停色" },
13
+ "brand_active": { "token": "--brand-active", "type": "color", "desc": "品牌激活色" },
14
+ "sidebar_bg": { "token": "--sidebar-bg", "type": "color", "desc": "侧栏底色(经 theme.scss data-theme=default → --vts-theme-menu-bg 链生效;浅色侧栏主题勿用此字段)" },
15
+ "success_color": { "token": "--success-color", "type": "color", "desc": "成功功能色" },
16
+ "warning_color": { "token": "--warning-color", "type": "color", "desc": "警告功能色" },
17
+ "error_color": { "token": "--error-color", "type": "color", "desc": "错误功能色" },
18
+ "text_primary": { "token": "--text-primary", "type": "color", "desc": "主文字色" },
19
+ "text_secondary": { "token": "--text-secondary", "type": "color", "desc": "次文字色" },
20
+ "text_tertiary": { "token": "--text-tertiary", "type": "color", "desc": "三级文字色" },
21
+ "text_disabled": { "token": "--text-disabled", "type": "color", "desc": "禁用文字色" },
22
+ "border_color": { "token": "--border-color", "type": "color", "desc": "主边框色" },
23
+ "border_color_secondary": { "token": "--border-color-secondary", "type": "color", "desc": "次边框色" },
24
+ "component_bg": { "token": "--component-bg", "type": "color", "desc": "组件面background(卡片/弹层底色)" },
25
+ "layout_bg": { "token": "--layout-bg", "type": "color", "desc": "页面布局背景" },
26
+ "primary_bg": { "token": "--primary-bg", "type": "color", "desc": "主色浅底(自动 color-mix 派生,一般不直改)" }
27
+ },
28
+ "el_bridge": {
29
+ "$comment": "EP 官方变量桥接关系(只读说明):--brand-primary 等经 design-tokens.scss 自动桥接至 --el-color-primary/--el-bg-color/--el-text-color-* 等,设计侧无需输出 --el-* 字段。",
30
+ "brand_primary_to_el": "--el-color-primary",
31
+ "component_bg_to_el": "--el-bg-color",
32
+ "layout_bg_to_el": "--el-bg-color-page",
33
+ "text_primary_to_el": "--el-text-color-primary"
34
+ }
35
+ }
@@ -1,17 +1,17 @@
1
- {
2
- "$comment": "全局原子层 · 圆角令牌映射。radius 为设计侧抽象字段;token 为项目实现令牌(design-tokens.scss :root,并桥接 EP --el-border-radius-*)。",
3
- "meta": {
4
- "layer": "basic",
5
- "domain": "radius",
6
- "version": "1.0.0",
7
- "scene": "global",
8
- "tech_stack": "vue3 + element-plus + vue3-web-temp"
9
- },
10
- "tokens": {
11
- "radius_sm": { "token": "--radius-sm → --border-radius-sm", "type": "size", "default": "4px", "desc": "小控件圆角(Tag/小按钮)", "el_bridge": "--el-border-radius-small" },
12
- "radius_base": { "token": "--radius-base → --border-radius-base", "type": "size", "default": "6px", "desc": "标准控件圆角(按钮/输入框)", "el_bridge": "--el-border-radius-base" },
13
- "radius_lg": { "token": "--radius-lg → --border-radius-lg", "type": "size", "default": "8px", "desc": "卡片级圆角", "el_bridge": null },
14
- "dialog_radius": { "token": "--dialog-border-radius", "type": "size", "default": "10px", "desc": "弹窗圆角(出厂 ReDialog 观感)", "el_bridge": null },
15
- "switch_radius": { "token": "--switch-border-radius", "type": "size", "default": "10px", "desc": "开关圆角", "el_bridge": null }
16
- }
17
- }
1
+ {
2
+ "$comment": "全局原子层 · 圆角令牌映射。radius 为设计侧抽象字段;token 为项目实现令牌(design-tokens.scss :root,并桥接 EP --el-border-radius-*)。",
3
+ "meta": {
4
+ "layer": "basic",
5
+ "domain": "radius",
6
+ "version": "1.0.0",
7
+ "scene": "global",
8
+ "tech_stack": "vue3 + element-plus + vue3-web-temp"
9
+ },
10
+ "tokens": {
11
+ "radius_sm": { "token": "--radius-sm → --border-radius-sm", "type": "size", "default": "4px", "desc": "小控件圆角(Tag/小按钮)", "el_bridge": "--el-border-radius-small" },
12
+ "radius_base": { "token": "--radius-base → --border-radius-base", "type": "size", "default": "6px", "desc": "标准控件圆角(按钮/输入框)", "el_bridge": "--el-border-radius-base" },
13
+ "radius_lg": { "token": "--radius-lg → --border-radius-lg", "type": "size", "default": "8px", "desc": "卡片级圆角", "el_bridge": null },
14
+ "dialog_radius": { "token": "--dialog-border-radius", "type": "size", "default": "10px", "desc": "弹窗圆角(出厂 ReDialog 观感)", "el_bridge": null },
15
+ "switch_radius": { "token": "--switch-border-radius", "type": "size", "default": "10px", "desc": "开关圆角", "el_bridge": null }
16
+ }
17
+ }
@@ -1,72 +1,72 @@
1
- {
2
- "$comment": "全局原子层 · 语义值译表(设计侧语义值 → 精确值)。设计侧 style/global 的值用语义名(如 钴蓝-5)时,parser 与 AI 施工按本表翻译为精确值。aliases 同时收录中文名(规范输出)与英文 token 名(cobalt-5,兼容拼写),两种写法等价。数据源:设计侧 skill page-specs/design-tokens.md §2-§5b(v1.0 对齐)。功能色五套主题同值,各主题各列一份便于按主题整体切换。",
3
- "meta": {
4
- "layer": "basic",
5
- "domain": "semantic_values",
6
- "version": "1.0.0",
7
- "scene": "global",
8
- "tech_stack": "vue3 + element-plus + vue3-web-temp"
9
- },
10
- "themes": {
11
- "$comment": "每套主题的语义值全集。level 1-10 为主色渐变(5 = 品牌主色)。",
12
- "cobalt": {
13
- "label": "钴蓝",
14
- "values": {
15
- "钴蓝-1": "#E8F0FF", "钴蓝-2": "#C5D5FF", "钴蓝-3": "#8FB0FF", "钴蓝-4": "#407BFF",
16
- "钴蓝-5": "#245BFF", "钴蓝-6": "#1546E0", "钴蓝-7": "#1546C9", "钴蓝-8": "#1239A8",
17
- "钴蓝-9": "#0D2A7F", "钴蓝-10": "#081952",
18
- "成功色": "#52C41A", "错误色": "#FF4D4F", "警告色": "#FAAD14", "信息色": "#245BFF", "链接色": "#245BFF"
19
- }
20
- },
21
- "emerald": {
22
- "label": "翠蓝",
23
- "values": {
24
- "翠蓝-1": "#E6FFFC", "翠蓝-2": "#B3F5EF", "翠蓝-3": "#7FE8E0", "翠蓝-4": "#33CFCE",
25
- "翠蓝-5": "#00A8B5", "翠蓝-6": "#008F9C", "翠蓝-7": "#007A89", "翠蓝-8": "#005A6E",
26
- "翠蓝-9": "#003F55", "翠蓝-10": "#002838",
27
- "成功色": "#52C41A", "错误色": "#FF4D4F", "警告色": "#FAAD14", "信息色": "#00A8B5", "链接色": "#00A8B5"
28
- }
29
- },
30
- "peacock": {
31
- "label": "孔雀绿",
32
- "values": {
33
- "孔雀绿-1": "#E6FFF8", "孔雀绿-2": "#B3F5E3", "孔雀绿-3": "#7FE8CC", "孔雀绿-4": "#33D4A8",
34
- "孔雀绿-5": "#009A7A", "孔雀绿-6": "#008566", "孔雀绿-7": "#006E55", "孔雀绿-8": "#005240",
35
- "孔雀绿-9": "#003A2E", "孔雀绿-10": "#00261E",
36
- "成功色": "#52C41A", "错误色": "#FF4D4F", "警告色": "#FAAD14", "信息色": "#009A7A", "链接色": "#009A7A"
37
- }
38
- },
39
- "tangerine": {
40
- "label": "橘橙",
41
- "values": {
42
- "橘橙-1": "#FFF3E6", "橘橙-2": "#FFDFC0", "橘橙-3": "#FFC080", "橘橙-4": "#FF9333",
43
- "橘橙-5": "#FF6A00", "橘橙-6": "#E55A00", "橘橙-7": "#C44E00", "橘橙-8": "#9A3D00",
44
- "橘橙-9": "#7A3000", "橘橙-10": "#522000",
45
- "成功色": "#52C41A", "错误色": "#FF4D4F", "警告色": "#FAAD14", "信息色": "#FF6A00", "链接色": "#FF6A00"
46
- }
47
- },
48
- "dawn": {
49
- "label": "拂晓蓝",
50
- "values": {
51
- "拂晓蓝-1": "#E6F7FF", "拂晓蓝-2": "#BAE7FF", "拂晓蓝-3": "#91D5FF", "拂晓蓝-4": "#69C0FF",
52
- "拂晓蓝-5": "#40A9FF", "拂晓蓝-6": "#1890FF", "拂晓蓝-7": "#096DD9", "拂晓蓝-8": "#0050B3",
53
- "拂晓蓝-9": "#003A8C", "拂晓蓝-10": "#002766",
54
- "成功色": "#52C41A", "错误色": "#FF4D4F", "警告色": "#FAAD14", "信息色": "#1890FF", "链接色": "#1890FF"
55
- },
56
- "$note": "拂晓蓝品牌主色为 L6 #1890FF(Ant Design 原生),与其他主题 L5=主色不同;输出 拂晓蓝-6 或 品牌主色 均可命中"
57
- }
58
- },
59
- "neutral_aliases": {
60
- "$comment": "主题无关的通用语义值(不属任何一套主题,任意主题下等值)。",
61
- "values": {
62
- "品牌主色": "$theme.5",
63
- "品牌悬停色": "$theme.4",
64
- "品牌点击色": "$theme.6"
65
- },
66
- "$note": "$theme.N 为占位:多套主题混用时 parser 无法消歧——AI 施工前须确认当次变更集的主題(global.brand_primary 或 notes 申报);单主题变更集按其主题取 N 级值(拂晓蓝取 N+1,主色在 6)"
67
- },
68
- "usage": {
69
- "parser": "match 时对 style/global 值做查表:命中本表 → 输出精确值;hex(#开头)→ 透传;未命中且非 hex → 记入字段级待补充并提示「非法定义语义值」",
70
- "design_side": "官方 5 套主题一律语义值(中文名规范,如 钴蓝-5;英文 cobalt-5 兼容);库外颜色走临时主题 hex + notes 申报"
71
- }
72
- }
1
+ {
2
+ "$comment": "全局原子层 · 语义值译表(设计侧语义值 → 精确值)。设计侧 style/global 的值用语义名(如 钴蓝-5)时,parser 与 AI 施工按本表翻译为精确值。aliases 同时收录中文名(规范输出)与英文 token 名(cobalt-5,兼容拼写),两种写法等价。数据源:设计侧 skill page-specs/design-tokens.md §2-§5b(v1.0 对齐)。功能色五套主题同值,各主题各列一份便于按主题整体切换。",
3
+ "meta": {
4
+ "layer": "basic",
5
+ "domain": "semantic_values",
6
+ "version": "1.0.0",
7
+ "scene": "global",
8
+ "tech_stack": "vue3 + element-plus + vue3-web-temp"
9
+ },
10
+ "themes": {
11
+ "$comment": "每套主题的语义值全集。level 1-10 为主色渐变(5 = 品牌主色)。",
12
+ "cobalt": {
13
+ "label": "钴蓝",
14
+ "values": {
15
+ "钴蓝-1": "#E8F0FF", "钴蓝-2": "#C5D5FF", "钴蓝-3": "#8FB0FF", "钴蓝-4": "#407BFF",
16
+ "钴蓝-5": "#245BFF", "钴蓝-6": "#1546E0", "钴蓝-7": "#1546C9", "钴蓝-8": "#1239A8",
17
+ "钴蓝-9": "#0D2A7F", "钴蓝-10": "#081952",
18
+ "成功色": "#52C41A", "错误色": "#FF4D4F", "警告色": "#FAAD14", "信息色": "#245BFF", "链接色": "#245BFF"
19
+ }
20
+ },
21
+ "emerald": {
22
+ "label": "翠蓝",
23
+ "values": {
24
+ "翠蓝-1": "#E6FFFC", "翠蓝-2": "#B3F5EF", "翠蓝-3": "#7FE8E0", "翠蓝-4": "#33CFCE",
25
+ "翠蓝-5": "#00A8B5", "翠蓝-6": "#008F9C", "翠蓝-7": "#007A89", "翠蓝-8": "#005A6E",
26
+ "翠蓝-9": "#003F55", "翠蓝-10": "#002838",
27
+ "成功色": "#52C41A", "错误色": "#FF4D4F", "警告色": "#FAAD14", "信息色": "#00A8B5", "链接色": "#00A8B5"
28
+ }
29
+ },
30
+ "peacock": {
31
+ "label": "孔雀绿",
32
+ "values": {
33
+ "孔雀绿-1": "#E6FFF8", "孔雀绿-2": "#B3F5E3", "孔雀绿-3": "#7FE8CC", "孔雀绿-4": "#33D4A8",
34
+ "孔雀绿-5": "#009A7A", "孔雀绿-6": "#008566", "孔雀绿-7": "#006E55", "孔雀绿-8": "#005240",
35
+ "孔雀绿-9": "#003A2E", "孔雀绿-10": "#00261E",
36
+ "成功色": "#52C41A", "错误色": "#FF4D4F", "警告色": "#FAAD14", "信息色": "#009A7A", "链接色": "#009A7A"
37
+ }
38
+ },
39
+ "tangerine": {
40
+ "label": "橘橙",
41
+ "values": {
42
+ "橘橙-1": "#FFF3E6", "橘橙-2": "#FFDFC0", "橘橙-3": "#FFC080", "橘橙-4": "#FF9333",
43
+ "橘橙-5": "#FF6A00", "橘橙-6": "#E55A00", "橘橙-7": "#C44E00", "橘橙-8": "#9A3D00",
44
+ "橘橙-9": "#7A3000", "橘橙-10": "#522000",
45
+ "成功色": "#52C41A", "错误色": "#FF4D4F", "警告色": "#FAAD14", "信息色": "#FF6A00", "链接色": "#FF6A00"
46
+ }
47
+ },
48
+ "dawn": {
49
+ "label": "拂晓蓝",
50
+ "values": {
51
+ "拂晓蓝-1": "#E6F7FF", "拂晓蓝-2": "#BAE7FF", "拂晓蓝-3": "#91D5FF", "拂晓蓝-4": "#69C0FF",
52
+ "拂晓蓝-5": "#40A9FF", "拂晓蓝-6": "#1890FF", "拂晓蓝-7": "#096DD9", "拂晓蓝-8": "#0050B3",
53
+ "拂晓蓝-9": "#003A8C", "拂晓蓝-10": "#002766",
54
+ "成功色": "#52C41A", "错误色": "#FF4D4F", "警告色": "#FAAD14", "信息色": "#1890FF", "链接色": "#1890FF"
55
+ },
56
+ "$note": "拂晓蓝品牌主色为 L6 #1890FF(Ant Design 原生),与其他主题 L5=主色不同;输出 拂晓蓝-6 或 品牌主色 均可命中"
57
+ }
58
+ },
59
+ "neutral_aliases": {
60
+ "$comment": "主题无关的通用语义值(不属任何一套主题,任意主题下等值)。",
61
+ "values": {
62
+ "品牌主色": "$theme.5",
63
+ "品牌悬停色": "$theme.4",
64
+ "品牌点击色": "$theme.6"
65
+ },
66
+ "$note": "$theme.N 为占位:多套主题混用时 parser 无法消歧——AI 施工前须确认当次变更集的主題(global.brand_primary 或 notes 申报);单主题变更集按其主题取 N 级值(拂晓蓝取 N+1,主色在 6)"
67
+ },
68
+ "usage": {
69
+ "parser": "match 时对 style/global 值做查表:命中本表 → 输出精确值;hex(#开头)→ 透传;未命中且非 hex → 记入字段级待补充并提示「非法定义语义值」",
70
+ "design_side": "官方 5 套主题一律语义值(中文名规范,如 钴蓝-5;英文 cobalt-5 兼容);库外颜色走临时主题 hex + notes 申报"
71
+ }
72
+ }