@qilitt-mickey/vue3-temp-skill 1.2.6 → 1.2.7
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 +51 -115
- package/SKILL.md +41 -159
- package/bin/cli.js +297 -657
- package/package.json +5 -2
- package/references/adapters/_new-adapter.md +17 -82
- package/references/adapters/vue-antdv.md +21 -107
- package/references/adapters/vue-element-plus.md +36 -179
- package/references/code-quality.md +52 -168
- package/references/core-kernel.md +12 -3
- package/references/crud-pages.md +10 -11
- package/references/data-screen.md +8 -9
- package/references/design-apply.md +57 -358
- package/references/layout-theme.md +6 -4
- package/references/visual-verification.md +48 -0
- package/scripts/check-landing.mjs +234 -47
- package/scripts/generate-css.mjs +17 -397
- package/scripts/match.py +30 -11
- package/scripts/modules.json +3 -3
- package/scripts/verify-render.mjs +17 -524
- package/scripts/generate-page.mjs +0 -734
package/README.md
CHANGED
|
@@ -1,146 +1,82 @@
|
|
|
1
1
|
# vue3-temp-skill
|
|
2
2
|
|
|
3
|
-
Vue 3
|
|
3
|
+
面向 **vue3-web-temp 及其派生 Vue 3 项目**的工程技能。支持常规功能开发,也支持与通用设计技能 `project-ui-design` 同轮协作:按原稿调整真实项目的页面、布局和组件表现,保留项目业务与工程约束。
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- **视觉契约落地** —— 读设计侧契约,照抄生成三份 CSS
|
|
5
|
+
## 双技能使用
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## 这是什么
|
|
11
|
-
|
|
12
|
-
### 链路一 · 常规开发
|
|
13
|
-
|
|
14
|
-
```text
|
|
15
|
-
/vue3-temp-skill <自然语言需求>
|
|
16
|
-
→ 项目探查(package.json / 路由 / Re* / Hooks / API)
|
|
17
|
-
→ 能力路由(match.py "需求" --json,按 load_files 读)
|
|
18
|
-
→ 业务闭环实现(页面 + 路由 + API + 类型 + mock)
|
|
19
|
-
→ code-quality 清单 + lint / type-check
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### 链路二 · 视觉契约落地
|
|
7
|
+
在目标项目中附上设计图、设计文件路径或已确定的 Demo:
|
|
23
8
|
|
|
24
9
|
```text
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
→ ② 读契约(唯一输入,只读一次)
|
|
28
|
-
→ ③ 选 adapter(按 package.json 判定所用组件库)
|
|
29
|
-
→ ④ 生成 ui-tokens.css(:root 变量)
|
|
30
|
-
→ ⑤ 生成 ui-roles.css(.role-* 规则)
|
|
31
|
-
→ ⑥ 生成 ui-layout.css(.ui-page 网格)
|
|
32
|
-
→ ⑦ 挂载(.ui-page / .ui-region-* / .role-*)
|
|
33
|
-
→ ⑧ 重跑自检确认六项全过 → 目视对照
|
|
10
|
+
/project-ui-design 按照设计效果进行还原落地到项目中
|
|
11
|
+
/vue3-temp-skill 代码规范按照此要求
|
|
34
12
|
```
|
|
35
13
|
|
|
36
|
-
|
|
14
|
+
两行先后顺序不影响职责顺序;不需要人工搬运 JSON 或另开会话。不支持 Slash 的编辑器可直接读取两个 `SKILL.md` 及其相对资源。缺少原稿时明确补充来源,不把内置示例当成用户选定设计。
|
|
37
15
|
|
|
38
|
-
|
|
16
|
+
## 执行链路
|
|
39
17
|
|
|
40
|
-
|
|
41
|
-
|---|---|
|
|
42
|
-
| `contract-found` | `.design/` 下没有契约 → 设计侧没落盘 |
|
|
43
|
-
| `contract-valid` | 契约字段缺失 |
|
|
44
|
-
| `css-generated` | 三份 CSS 未生成 |
|
|
45
|
-
| `css-imported` | **生成了但没被 import** → 浏览器不加载 |
|
|
46
|
-
| `roles-mounted` | **CSS 有规则但模板没挂类** → 死样式,只有个别角色生效 |
|
|
47
|
-
| `layout-mounted` | 没挂 `.ui-page` → 骨架仍是项目原样 |
|
|
48
|
-
|
|
49
|
-
**任何一项断掉都会表现为「CSS 写了但页面没变化」。先跑自检定位断点,不要目视猜。**
|
|
50
|
-
|
|
51
|
-
## 视觉契约的核心机制
|
|
18
|
+
**设计还原**:项目探查 → 固定原稿与视觉交接 → 保存业务基线 → 调整真实视图 → 工程检查、业务回归与原稿对照 → 修正差异。
|
|
52
19
|
|
|
53
|
-
|
|
54
|
-
|---|---|
|
|
55
|
-
| **照抄不判断** | 不判断落点层级、不合并声明、不补角色库没有的角色、不改契约值 |
|
|
56
|
-
| **布局由 CSS 网格决定** | 项目布局组件退化为占位容器(只提供插槽);设计布局与项目布局不一致时,差异只体现在 `ui-layout.css` 的取值上 |
|
|
57
|
-
| **角色类独立命名空间** | `role-` 前缀独立类 + 独立文件,天然不与组件库同类规则竞争;确需提权走 adapter 唯一通道 |
|
|
58
|
-
| **令牌全站联动** | 契约令牌编译为 CSS 变量;改一个令牌值,全站引用它的地方同步变化 |
|
|
59
|
-
| **契约不含技术栈信息** | 只有 CSS 属性、令牌引用、区域与角色;组件库差异(深度选择器语法、穿透前缀、落点文件)全在 adapter |
|
|
20
|
+
**常规开发**:项目探查 → `scripts/match.py` 按需路由 → 复用项目组件、Hooks、HTTP 和类型 → 完成行为闭环 → 工程与功能检查。
|
|
60
21
|
|
|
61
|
-
|
|
22
|
+
原稿决定视觉,项目源码和用户明确需求决定业务,模板规范决定工程实现。
|
|
62
23
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
| `README.md`(本文件) | 维护者 / 开发者 | 安装、命令、扩展、新增 adapter、与模板的关系 |
|
|
67
|
-
| `references/*.md` | AI | 40+ 专项能力 reference(业务开发用) |
|
|
68
|
-
| `references/design-apply.md` | AI | **视觉契约落地协议**:六步流程 + 三列映射表 + 翻译规则 |
|
|
69
|
-
| `references/adapters/*.md` | AI | Vue 组件库适配:深度选择器语法 / 穿透前缀 / 落点文件 |
|
|
70
|
-
| `mapping/<场景>.json` | AI + 维护者 | 区域名 ↔ 项目现状对照(scope / var / fallback 三列) |
|
|
24
|
+
- 可调整页面模板、壳层布局、视觉容器、CSS 及项目自有 `Re*` 组件的表现层;不限于加 class 或生成三份 CSS。
|
|
25
|
+
- 保留项目的字段、菜单、列、筛选、按钮、枚举、API、权限、校验、状态和业务顺序;不复制 Demo 业务凑截图。
|
|
26
|
+
- 保留组件公开接口、`useTableSearch` 定高与滚动链、`ReTableBar`、`RePagination`、`ReTableOperate` 和详情返回链;共享改动检查所有受影响调用处。
|
|
71
27
|
|
|
72
|
-
##
|
|
28
|
+
## 原稿与证据
|
|
73
29
|
|
|
74
|
-
|
|
30
|
+
新交接格式为 `ui.design-handoff/1.0`。同一任务保存于 `<项目根>/.design/<任务名>/`:
|
|
75
31
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
npx @qilitt-mickey/vue3-temp-skill@latest install cursor
|
|
84
|
-
npx @qilitt-mickey/vue3-temp-skill@latest install all --project ./my-app
|
|
85
|
-
npx @qilitt-mickey/vue3-temp-skill@latest update
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
| 目标 | 级别 |
|
|
89
|
-
|------|------|
|
|
90
|
-
| cursor / qoder / claude / universal / windsurf / trae | 全局(个人目录) |
|
|
91
|
-
| copilot / gemini | 项目级(需 `--project <dir>`) |
|
|
92
|
-
|
|
93
|
-
安装器复制运行时文件:`references/`(含 `adapters/`)、`scripts/`(`match.py` + `modules.json`)、`mapping/`、`SKILL.md`、`README.md`。`release.js` 留在技能包仓库供维护使用。
|
|
94
|
-
|
|
95
|
-
开发期调试可直接从源码目录安装:`node bin/cli.js install claude`。
|
|
32
|
+
| 产物 | 责任 |
|
|
33
|
+
|---|---|
|
|
34
|
+
| `handoff.json`、原稿、参考图、素材 | 设计侧提供通用视觉规格与来源证据 |
|
|
35
|
+
| `business-baseline.json` | 项目侧记录实施前业务与当前工作区基线 |
|
|
36
|
+
| `implementation.json` | 项目侧记录原稿区域到目标文件、路由、实例的映射 |
|
|
37
|
+
| `verification.json`、结果图 | 项目侧记录逐项对照、差异、业务及工程结果 |
|
|
96
38
|
|
|
97
|
-
|
|
39
|
+
原稿始终可重新打开。逐区域、逐实例、逐状态、逐视口检查;必需元素缺失不能记为跳过。只在已验证的可比范围内报告结果,不把业务内容差异改成 Demo 数据,不用“CSS 存在”或脚本退出成功替代视觉证据。
|
|
98
40
|
|
|
99
|
-
|
|
100
|
-
|------|------|
|
|
101
|
-
| `node bin/cli.js install <target>` | 安装器统一入口:`install` / `update` / `uninstall` / `list` |
|
|
102
|
-
| `npm run check:landing` | **契约落地自检**(六项):判断「契约 → 样式 → 挂载」断在哪一环 |
|
|
103
|
-
| `python scripts/match.py "需求" --json` | 能力路由:按需求返回应加载的 reference 清单 |
|
|
104
|
-
| `npm run release`(`:minor` / `:major`) | 结构检查 → 升版本 → 提交 → 发布 npm |
|
|
41
|
+
## 旧格式兼容
|
|
105
42
|
|
|
106
|
-
|
|
43
|
+
已有 `ui.visual-contract/1.0` 仍可读取:保留原文件,找回其设计来源,复用可信规格并补新交接。旧 adapter、mapping 和角色规则仅作为排查线索,不覆盖原稿值。
|
|
107
44
|
|
|
108
|
-
|
|
109
|
-
|---|---|---|
|
|
110
|
-
| 新业务能力 | 在 `references/` 加一份专项 md + 在 `scripts/modules.json` 登记 | 其余全部 |
|
|
111
|
-
| 新组件库适配 | 照 `references/adapters/_new-adapter.md` 写一份 Vue 组件库 adapter | 契约、`design-apply.md`、其他 adapter |
|
|
112
|
-
| 新场景的变量映射 | 加 `mapping/<场景>.json` | adapter 与契约 |
|
|
113
|
-
| 项目自身能力 | 写进 `references/project-inventory.md` | 全部 |
|
|
45
|
+
旧 `generate-css.mjs` 与 `verify-render.mjs` 已停止执行,调用会给出迁移提示。旧 `check-landing.mjs` 只有显式 `--legacy-diagnostics` 才运行文本诊断,始终标记视觉未验证并非零退出;它不是当前验收入口。
|
|
114
46
|
|
|
115
|
-
|
|
47
|
+
## 主要规范
|
|
116
48
|
|
|
117
|
-
|
|
49
|
+
| 文件 | 用途 |
|
|
50
|
+
|---|---|
|
|
51
|
+
| `SKILL.md` | 分支、职责、实施和完成条件 |
|
|
52
|
+
| `references/core-kernel.md` | 模板工程硬约束 |
|
|
53
|
+
| `references/design-apply.md` | 原稿接入、业务保护、视图实施 |
|
|
54
|
+
| `references/visual-verification.md` | 视觉、状态、视口与业务验收 |
|
|
55
|
+
| `references/code-quality.md` | 工程质量及交付检查 |
|
|
56
|
+
| `references/adapters/vue-element-plus.md` | 实际组件 DOM 与样式落点检查 |
|
|
57
|
+
| `scripts/modules.json`、`scripts/match.py` | 常规需求的按需规范路由 |
|
|
118
58
|
|
|
119
|
-
##
|
|
59
|
+
## 安装与测试
|
|
120
60
|
|
|
121
|
-
|
|
122
|
-
|------|------|
|
|
123
|
-
| 视觉契约 | 设计侧唯一交付物,协议 `ui.visual-contract/1.0`;只有 CSS 属性、令牌引用、区域与角色 |
|
|
124
|
-
| 落点路径 | 设计侧写 `<项目根>/.design/`,本技能从同一路径读——目录通用,与 AI 工具无关 |
|
|
125
|
-
| 三列映射表 | 本技能侧的 `mapping/<场景>.json`,把契约的区域名对到项目现状的承载类名 |
|
|
126
|
-
| adapter | 承接组件库差异,本技能侧维护;设计侧不感知 |
|
|
61
|
+
要求 Node.js >= 22.12.0;能力路由需要 Python 3,无 Python 时按技能入口表加载规范。本轮改动尚未发布到 npm,先从本源码目录安装到选定编辑器:
|
|
127
62
|
|
|
128
|
-
|
|
63
|
+
```bash
|
|
64
|
+
node bin/cli.js --help
|
|
65
|
+
node bin/cli.js install qoder
|
|
66
|
+
node bin/cli.js install copilot --project /path/to/project
|
|
67
|
+
node bin/cli.js list
|
|
68
|
+
npm test
|
|
69
|
+
python scripts/match.py --batch
|
|
70
|
+
```
|
|
129
71
|
|
|
130
|
-
|
|
72
|
+
安装器携带运行时资源;项目级说明使用独立托管区块,避免覆盖用户说明及另一套技能。安装目标和参数以 `--help` 为准。旧版本冲突按提示处理,勿直接覆盖未知文件。
|
|
131
73
|
|
|
132
|
-
|
|
133
|
-
|------|------|------|
|
|
134
|
-
| 模板 `README.md` | 人类开发者 | 安装、配置、命令、与 AI 协同入口 |
|
|
135
|
-
| 模板 `AGENTS.md` | AI 助手 | 仓库事实、硬性约定摘要、Skill 路由 |
|
|
136
|
-
| 本包 `references/` | AI + 开发者 | **标准样板**、专项细则、addon 安装表 |
|
|
137
|
-
| 本包 `addon-enable.md` | AI + 开发者 | **出厂已删依赖的逐文件恢复代码** |
|
|
74
|
+
`npx @qilitt-mickey/vue3-temp-skill@latest` 仍指向已发布版本;新版发布前不会包含本轮修改。源码检查通过不代表所有编辑器已经实机验证。
|
|
138
75
|
|
|
139
|
-
##
|
|
76
|
+
## 与模板及设计侧的边界
|
|
140
77
|
|
|
141
|
-
|
|
78
|
+
模板 `AGENTS.md` 提供当前项目事实与入口;本包维护 Vue 模板的工程流程和适配;设计侧保持通用,不维护模板路径、组件名、CSS 选择器或业务映射。
|
|
142
79
|
|
|
143
|
-
|
|
80
|
+
新增业务能力时增加按需 reference 并登记路由;新增 Vue 组件库时增加适配规范并验证实际 DOM。其他框架使用各自项目技能,通用设计交接无需修改。
|
|
144
81
|
|
|
145
|
-
|
|
146
|
-
- 用户侧:发布后经 `npx @qilitt-mickey/vue3-temp-skill@latest update` 更新已安装目标
|
|
82
|
+
发布入口保留在 `package.json`;提交、发布和安装到用户环境均需明确授权。本次源码更新不等于已经发布或更新了机器上的已安装技能。
|
package/SKILL.md
CHANGED
|
@@ -1,174 +1,56 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description:
|
|
4
|
-
scope: project
|
|
5
|
-
agent_created: true
|
|
6
|
-
tags: [vue3, typescript, element-plus, pinia, vite, unocss, crud, demo, code-quality, visual-contract]
|
|
2
|
+
name: vue3-temp-skill
|
|
3
|
+
description: 在 vue3-web-temp 及其派生 Vue 3 项目开发功能、修复代码或落地设计。与 project-ui-design 同轮使用时,保留项目业务,按模板规范调整视图、布局、组件样式并逐区域验证视觉效果。
|
|
7
4
|
---
|
|
8
5
|
|
|
9
|
-
#
|
|
6
|
+
# 执行
|
|
10
7
|
|
|
11
|
-
|
|
8
|
+
先判断用户是否要求修改项目。仅要求设计或预览时,由 `project-ui-design` 完成设计与交接;本技能只提供已要求的工程约束,不修改项目代码,不进入以下实施步骤。明确要求落地、功能开发或修复时再执行以下流程。
|
|
12
9
|
|
|
13
|
-
|
|
10
|
+
## 1. 确认项目与任务
|
|
14
11
|
|
|
15
|
-
|
|
12
|
+
- 使用用户指定的项目根或当前已打开的目标项目;读取项目协同说明、`package.json`、锁文件及 Git 状态,保留已有未提交改动。
|
|
13
|
+
- 读取 `references/core-kernel.md`;以当前源码核对组件、依赖、路由、接口、主题和布局,不把模板清单当成当前项目事实。
|
|
14
|
+
- 用户要求设计还原、UI 改版、按图落地,或同轮调用 `project-ui-design` 时,直接进入 `references/design-apply.md`;有原稿但无 JSON 时在同轮调用或读取设计技能,完成提取后继续实施。
|
|
15
|
+
- 只有业务功能需求时运行 `python <本技能>/scripts/match.py "<需求>" --json`,按 `load_files` 加载专项规范;无 Python 时按下表选取。
|
|
16
|
+
- 同时有业务增量和视觉需求时,分别列出用户授权的业务变更与视觉变更;Demo 不提供新增业务需求。
|
|
17
|
+
- 完成条件:项目根、目标范围、任务类型和实际可用规范已确定;不在技能仓库中写目标业务代码。
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
/vue3-temp-skill <自然语言需求>
|
|
19
|
-
```
|
|
19
|
+
## 2. 分配职责
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
- `project-ui-design` 提供原稿、视觉规格、素材与对照依据;本技能决定目标文件、组件组合、实际样式落点和业务回归。
|
|
22
|
+
- 按「项目探查 → 设计提取 → 业务映射 → 视图实施 → 视觉与功能验证」执行;两行 Slash 的先后顺序不改变流程。
|
|
23
|
+
- 原稿控制视觉;目标项目及明确的业务需求控制数据和行为;模板规范控制工程实现。发生视觉与默认样板差异时调整样板视图,保留硬性代码规范。
|
|
24
|
+
- 宿主没有 Slash 或技能调用工具时直接读取两个技能入口及相对资源;不依赖特定编辑器、浏览器插件或多代理机制。
|
|
25
|
+
- 完成条件:每项修改都有视觉依据或明确业务授权,不把设计技能绑定到本模板。
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
- 做一个订单仪表盘,含统计卡片和趋势图
|
|
25
|
-
- 给现有 Demo 增加附件上传、导出或审批流
|
|
26
|
-
- 把一个页面从 mock 改成真实 API
|
|
27
|
-
- 「按这份设计契约改造全系统」(用户可能是小白,只会给文件路径或拖入文件;见 §3b)
|
|
27
|
+
## 3. 实施
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
- 视觉任务按 `references/design-apply.md` 完成全部步骤,允许修改页面模板、布局和项目自有组件的表现层;不限定只生成 CSS 或只加 class。
|
|
30
|
+
- 常规功能任务复用现有 `Re*`、Hooks、HTTP、类型、权限与路由;按命中模块完成页面和行为闭环。
|
|
31
|
+
- 列表保留 `useTableSearch`、`ReTableBar`、`RePagination`、`ReTableOperate` 及其数据和事件契约;HTTP 经 `@/utils/http`,类型按实际 `Result<T>`。
|
|
32
|
+
- 新增依赖、改变权限规则、发送外部消息、发布或破坏性操作按用户授权执行;不得以视觉需求替代这些授权。
|
|
33
|
+
- 完成条件:目标视图已接入真实项目路径与原有业务,样式已在运行页面生效,功能未被静态演示内容替换。
|
|
30
34
|
|
|
31
|
-
|
|
32
|
-
2. **能力路由**:运行 `scripts/match.py "需求" --json`,**仅**按输出中的 `load_files` 阅读 reference;禁止自行展开全部 `references/`。无 Python 时按下方能力组表手动匹配。
|
|
33
|
-
3. **视觉契约落地**:输入是设计侧的视觉契约 JSON 时,走 `design-apply` 协议——**先跑落地自检,再照抄生成三份样式文件与页面骨架 SFC**,见 §3 输入分流。
|
|
35
|
+
## 4. 验证交付
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
- 重读 `references/code-quality.md`,检查实际改动;执行项目已有 lint、类型检查及相关构建/测试命令。
|
|
38
|
+
- 视觉任务读取 `references/visual-verification.md`,对原稿与真实目标页面逐区域、逐状态、逐视口核验,修复后重测。
|
|
39
|
+
- 独立检查业务保持与视觉还原;不以脚本 exit 0、class 出现、CSS 已生成、类型通过或截图已保存替代视觉及功能验收。
|
|
40
|
+
- 返回修改范围、原稿与目标页面、实际检查结果、差异和产物路径。浏览器或业务环境不可用时明确列出未验证项,不宣称完成还原。
|
|
41
|
+
- 完成条件:请求范围无未解释差异,工程与业务回归通过,参考图、结果图和逐项结果可读取;否则保持未完成并说明具体阻塞。
|
|
38
42
|
|
|
39
|
-
|
|
40
|
-
**任何一项断掉,都会出现「CSS 写了但页面没变化」——先修断点,不要目视猜。**
|
|
43
|
+
## 按需规范
|
|
41
44
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
| 能力组 | 覆盖内容 | 主要参考文件 |
|
|
45
|
-
|---|---|---|
|
|
46
|
-
| `page-crud` | 常规列表、筛选、分页、表格操作 | `crud-pages.md` |
|
|
47
|
-
| `page-detail` | 独立详情/编辑页、顶部标签、路由 meta | `detail-page.md` |
|
|
48
|
-
| `data-service` | HTTP、API、类型、mock、联调 | `http-api.md`、`api-check.md` |
|
|
49
|
-
| `forms` | 表单、弹窗、远程选择、回显、字典、反馈 | `form-advanced.md`、`data-writeback.md`、`base-code-dict.md`、`feedback-loading.md` |
|
|
50
|
-
| `access` | 权限、认证页面 | `permission-auth.md`、`auth-pages.md` |
|
|
51
|
-
| `theme-layout` | 布局、主题色、暗黑模式、侧栏配色、令牌 | `layout-theme.md` |
|
|
52
|
-
| `shared-ui` | Re*、图标、通用展示和指令 | `ui-components.md`、`icons.md`、`feedback-ui.md`、`directives-advanced.md` |
|
|
53
|
-
| `table-advanced` | 树表、VXE 表格 | `tree-table.md`、`table-vxe.md` |
|
|
54
|
-
| `visualization` | 图表、大屏、关系图谱 | `chart-echarts.md`、`data-screen.md`、`graph-relation.md` |
|
|
55
|
-
| `workflow` | BPMN、G6 流程图、字段映射 | `workflow-bpmn.md`、`flowchart-g6.md`、`data-mapping.md` |
|
|
56
|
-
| `files-and-editors` | 附件、预览、下载、富文本、二维码 | `file-management.md`、`download-export.md`、`rich-text.md`、`qrcode-barcode.md` |
|
|
57
|
-
| `realtime-and-mobile` | WebSocket、移动端、微信、验证码、动效 | 对应专项 reference |
|
|
58
|
-
| `data-compare` | 编辑页变更对比和汇总 | `data-compare.md` |
|
|
59
|
-
| `design-apply` | **视觉契约落地**:落地自检 → 读契约 → 选 adapter → **`scripts/generate-css.mjs` 确定性生成三份 CSS** → **`scripts/generate-page.mjs` 确定性生成页面骨架 SFC(不手写骨架)** → 挂载 → **`scripts/verify-render.mjs` computed style 逐点比对** → 差异清零。**主入口 `design-apply.md`,adapter 见 `adapters/`(做到哪一步读哪一份)** | `design-apply.md`、`adapters/`、`mapping/`、`scripts/check-landing.mjs`、`scripts/generate-css.mjs`、`scripts/generate-page.mjs`、`scripts/verify-render.mjs` |
|
|
60
|
-
|
|
61
|
-
## 工作流
|
|
62
|
-
|
|
63
|
-
### 1. 识别目标和范围
|
|
64
|
-
|
|
65
|
-
- 确认目标项目根目录;没有明确目标时先询问,不在技能仓库里写业务代码。
|
|
66
|
-
- 判断是 Demo 验证、功能增量还是正式业务开发。
|
|
67
|
-
- 保留目标项目当前初始化视觉,不让开发技能自行设计。
|
|
68
|
-
|
|
69
|
-
### 2. 读取事实
|
|
70
|
-
|
|
71
|
-
- 先读 `references/core-kernel.md`。
|
|
72
|
-
- 运行 `scripts/match.py "需求" --json`,按 `load_files` 阅读。
|
|
73
|
-
- 读取目标项目当前 `package.json` 和锁文件;不要根据"core/addon"标签猜依赖是否存在。
|
|
74
|
-
- 扫描已有 `Re*`、Hooks、`src/api`、路由和相关页面;已有封装优先于技能示例。
|
|
75
|
-
|
|
76
|
-
### 3. 实现闭环
|
|
77
|
-
|
|
78
|
-
- 页面、路由、API、类型、mock 和共享组件按一个业务闭环实现。
|
|
79
|
-
- 列表使用 `useTableSearch`、`ReTableBar`、`RePagination`;有独立详情时同步完成 `useDetail` 与路由 meta。
|
|
80
|
-
- HTTP 只经过 `@/utils/http`,响应按项目实际 `Result<T>` 约定处理。
|
|
81
|
-
- Demo 可以最小化数据和接口,但目录、类型、命名和组件边界要能承接后续开发。
|
|
82
|
-
- 新依赖先检查目标项目;缺失时说明精确版本、原因和构建接线,确认后再安装。
|
|
83
|
-
- 只有目标项目确实存在排除项、占位插件或缺失接线时,才读取 `addon-enable.md` 恢复配置。
|
|
84
|
-
|
|
85
|
-
**输入分流**:
|
|
86
|
-
|
|
87
|
-
| 输入 | 走哪条链路 |
|
|
88
|
-
|---|---|
|
|
89
|
-
| 自然语言需求(业务功能) | 常规闭环(见上) |
|
|
90
|
-
| **设计侧的视觉契约 JSON**(`ui.visual-contract/1.0`,落盘在 `.design/`) | **`design-apply.md` 协议** —— 照抄生成 `ui-tokens.css` / `ui-roles.css` / `ui-layout.css` |
|
|
91
|
-
|
|
92
|
-
### 3b. 小白用户执行纪律(design-apply 场景)
|
|
93
|
-
|
|
94
|
-
使用者默认**不懂设计也不懂代码**,交互遵守四条:
|
|
95
|
-
|
|
96
|
-
1. **全自动默认**:识别为视觉契约后**直接开始执行全流程**(落地自检 → 读契约 → 选 adapter → 生成三份 CSS → 生成页面骨架 → 挂载 → 验证 → 视觉验收),不等用户逐步确认。
|
|
97
|
-
2. **契约缺失 = 硬阻断,不允许"边猜边改"**:`check-landing.mjs` 报 `contract-found FAIL` 时**必须停下**,用大白话报告「还没拿到设计文件」并给出下一步。**严禁在契约缺失的情况下凭理解直接改项目样式**——那是旧体系的失败模式:改了一堆 CSS 却没有任何东西对应,最后只有个别地方碰巧变了。
|
|
98
|
-
3. **契约存在但 `roles-mounted` 未 100% = 不算完成**:角色类没挂满,页面上就只会有个别角色生效(常见症状:只有菜单颜色变了)。必须按 adapter 的「角色类挂载方式」补齐后重跑自检。
|
|
99
|
-
4. **术语不对用户出现**:对用户不说"契约 / 角色 / 令牌 / adapter / 区域 / 自检"——说"设计文件 / 样式规则 / 全局变量 / 组件适配 / 页面区域 / 检查"。这些词只出现在内部文档与交付说明里。
|
|
100
|
-
5. **无文件时的引导**:用户说"全系统改成 XX 风格"但没给设计文件 → 提示一句话:"请先在设计助手(project-ui-design 技能)里说『我要 XX 风格的全系统设计』拿到设计文件,再回来发给我"。如果本机同时装有设计技能,可直接引导用户回到设计会话完成设计,再回本项目落地。
|
|
101
|
-
6. **交付话术**:完成后用大白话总结(改了哪些页面 / 哪些地方变了 / 怎么验收),不输出施工坐标等技术细节;验收引导统一为"运行 `pnpm dev` 打开页面对照看效果,哪里不满意直接说"。
|
|
102
|
-
|
|
103
|
-
### 4. 验证与交付
|
|
104
|
-
|
|
105
|
-
- 对照 `references/code-quality.md` 检查类型、组件复用、API、路由、权限、安全、异常反馈、响应式和可演进性。
|
|
106
|
-
- 在目标项目执行 `pnpm lint:fix`、`pnpm type-check`;改动构建配置时再执行 `pnpm build`。
|
|
107
|
-
- **设计契约落地时追加视觉验收**:用无头浏览器对契约每条声明做 `getComputedStyle` 逐点比对(期望源就是契约 JSON 本身);差异定位顺序「挂载遗漏 → 穿透/选择器通道错 → 提权被盖 → 契约值本身错」,前三者修落地侧,最后一种 **改契约 → 重新生成 CSS**(改契约远比改代码便宜)。全部命中后截图与 `meta.source.mockup` 并排留档;不建期望值文件、不跑采集脚本、不做长期 diff 报告。
|
|
108
|
-
- 最终说明:命中能力组、修改文件、功能验证、命令结果、未解决问题和下一步。
|
|
109
|
-
|
|
110
|
-
## 视觉契约落地(design-apply 架构要点)
|
|
111
|
-
|
|
112
|
-
契约是设计侧产出的**项目完整视觉事实源**,协议 `ui.visual-contract/1.0`。
|
|
113
|
-
|
|
114
|
-
| 原则 | 含义 |
|
|
45
|
+
| 需求 | 读取 |
|
|
115
46
|
|---|---|
|
|
116
|
-
|
|
|
117
|
-
|
|
|
118
|
-
|
|
|
119
|
-
|
|
|
120
|
-
|
|
|
121
|
-
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
|
126
|
-
|---|---|---|
|
|
127
|
-
| 页面私有样式 | 常规开发 | 页面 scoped 样式 |
|
|
128
|
-
| `role-` | 视觉契约落地 | `src/styles/ui-roles.css` |
|
|
129
|
-
| `ui-` | 视觉契约落地 | `src/styles/ui-tokens.css` + `src/styles/ui-layout.css` |
|
|
130
|
-
|
|
131
|
-
## 项目事实优先级
|
|
132
|
-
|
|
133
|
-
`目标项目当前源码` > `目标项目 package.json / 锁文件` > `本 Skill reference` > `通用 Vue 习惯`。
|
|
134
|
-
|
|
135
|
-
## 工具中立(不可越)
|
|
136
|
-
|
|
137
|
-
本技能包**与任何 AI 工具无关**,可被任意工具识别与调用。
|
|
138
|
-
|
|
139
|
-
| 约束 | 说明 |
|
|
140
|
-
|---|---|
|
|
141
|
-
| **技能内容零工具痕迹** | `references/` / `scripts/` / `mapping/` / `SKILL.md` 内不出现任何特定 AI 工具的名称、专有目录、专有文件格式 |
|
|
142
|
-
| **路径约定用通用目录** | 读契约:`<项目根>/.design/`;写样式:`src/styles/`。都是通用项目目录 |
|
|
143
|
-
| **分发靠 CLI 多目标** | `bin/cli.js` 的多工具安装能力是**分发特性,不是内容绑定**;工具清单可增删,不影响技能内容 |
|
|
144
|
-
| **触发用 Slash Command** | `/vue3-temp-skill`,各工具通用约定 |
|
|
145
|
-
|
|
146
|
-
**判据**:把本包放进任何一个支持 Markdown + JSON + Python 的 AI 环境,不改任何一行内容就能用。
|
|
147
|
-
|
|
148
|
-
## 默认禁止
|
|
149
|
-
|
|
150
|
-
- 不在页面内直接使用 `axios` / `fetch`,不虚构 API 前缀。
|
|
151
|
-
- 不二次挂载 `Layout`,不把模板演示页原样当业务页面。
|
|
152
|
-
- 不使用裸 `v-if` 代替权限指令,不使用不可信 `v-html`。
|
|
153
|
-
- 不为了视觉效果引入未经确认的新 UI 框架或图表库。
|
|
154
|
-
- 不把 lint 通过当成业务闭环完成。
|
|
155
|
-
- **不改组件库源码**;样式调整只经 `ui-*.css` 三份文件与项目自身样式层。
|
|
156
|
-
- **不直接改生成出来的 `ui-*.css`**——要改改契约或改 adapter,然后重新生成。直接改会被下次生成覆盖,且不留痕迹。
|
|
157
|
-
- **不在角色类里整条加 `!important`**——层叠问题走 adapter 的唯一提权通道。
|
|
158
|
-
- **不为契约新增技术栈字段**——组件库差异进 adapter,契约保持中立。
|
|
159
|
-
|
|
160
|
-
## 最终回复格式
|
|
161
|
-
|
|
162
|
-
```markdown
|
|
163
|
-
## 命中能力组
|
|
164
|
-
- page-crud / data-service / ...
|
|
165
|
-
|
|
166
|
-
## 变更说明
|
|
167
|
-
- `src/...`:...
|
|
168
|
-
|
|
169
|
-
## 验证结果
|
|
170
|
-
- 功能:...
|
|
171
|
-
- `pnpm lint:fix`:通过 | 失败(原因)
|
|
172
|
-
- `pnpm type-check`:通过 | 失败(原因)
|
|
173
|
-
- 视觉契约落地(本轮有契约输入时必填,无则 N/A):八项自检全过 → 视觉验收 computed style 比对差异 N 处(已改契约重新生成 / 待确认)→ 截图已留档
|
|
174
|
-
```
|
|
47
|
+
| 设计还原 / 外观改版 | `references/design-apply.md` → `references/visual-verification.md` |
|
|
48
|
+
| 列表与详情 | `references/crud-pages.md`、`references/detail-page.md` |
|
|
49
|
+
| 数据接口 | `references/http-api.md`、`references/api-check.md` |
|
|
50
|
+
| 表单与回显 | `references/form-advanced.md`、`references/data-writeback.md`、`references/base-code-dict.md` |
|
|
51
|
+
| 权限与登录 | `references/permission-auth.md`、`references/auth-pages.md` |
|
|
52
|
+
| 主题与壳层 | `references/layout-theme.md` |
|
|
53
|
+
| 通用组件与图标 | `references/ui-components.md`、`references/icons.md` |
|
|
54
|
+
| 高级表格、图表、流程、文件、移动端 | 按 `scripts/modules.json` 中的能力组加载对应 reference |
|
|
55
|
+
| 缺失依赖与 addon | `references/project-inventory.md`、`references/addon-enable.md` |
|
|
56
|
+
| 交付检查 | `references/code-quality.md` |
|