ultrahand: theme-review
审计项目对其主题的遵循程度:主题文件本身是否健全,以及设计和代码是否实际使用该主题。输出结果包括按优先级排序的问题列表以及建议的主题更改。审查者基于项目的主题进行审查;绝不会发明新主题。主题中的空白将成为theme技能建议的补充项,而非新调色板。
规则定义在shared/theme/rules.md(不可协商项NN-n、创意轴CR-n、演化规则EV-n);每项检查在references/checklist.md中,两者都引用shared/theme/sources.md。对于超出主题的UX问题(流程、标签、平台约定),请指向review技能。
以下脚本位于${CLAUDE_PLUGIN_ROOT}/shared/theme/。
1. 获取主题和目标
- 主题: 找到
design/THEME.md和令牌文件(按theme技能步骤1的方式搜索)。读取THEME.md:其个性、哪些决策已锁定、其组件清单和变更日志。这些是目标需遵循的依据。 - 尚无主题: 不要自行编造一个。运行
node scan.mjs <src dir>显示代码当前使用的值,并仅依据不可协商项进行审查。建议使用theme技能从中提取主题,并将扫描的主要聚类作为起点纳入报告。 - 目标: 代码(源文件夹、差异或PR)、图稿或截图。与
review一样,说明你拥有哪一种,并将每个发现标记为已确认(在代码、令牌文件或图稿中测量)或可能(凭图像判断)。对于差异,审查其更改的内容,并注明其引入的任何偏差。
2. 执行检查
- 主题文件:
node check.mjs design/theme.tokens.json --json。每个错误都是一个发现;读取两种方案下的对比度表。 - 代码中的令牌使用:
node scan.mjs <src dir> --theme design/theme.tokens.json。- 与令牌匹配的原始值:主题值的硬编码副本。当主题更改时,这些不会更新 [HIG-COLOR] [PRIMER-LINT]。
- 无对应令牌的值:偏离主题。每个要么是错误(将其对齐到显示的最接近令牌),要么是真实需求(建议添加令牌)。
- 没有任何文件提及的令牌:可能未使用。在建议移除前先确认;扫描按名称模式匹配。
- 近似重复的颜色和偏离网格的间距:每个聚类一个发现,而非每行一个。
还要搜索代码中直接使用的原始令牌(
primitive.或平台的等效项),这跳过了角色层(NN-1)。
- 在图稿或实时页面上: 读取被审查元素的计算样式。组合审计(
shared/composition/audit.mjs,通过shared/input/drive.mjs运行)报告每个部分的控件样式、类型大小和间距,可快速发现第二个按钮样式或异常类型大小。 - 按references/checklist.md中的步骤逐一执行:主题健康度、令牌使用、组件复用、跨屏一致性、两种方案以及特征。
脚本仅发现模式,而非确凿证据。每个线索需打开确认后才能成为发现。
3. 评级与报告
使用与review相同的0–4严重度评级(详见其清单的严重度指南),并依据本技能清单中的锚点。同一问题出现在多处算作一个发现,需注明计数和主要位置。
## 裁定
<主题版本和目标、证据、按严重度统计的计数、偏差的最大单一来源。>
## 发现
### T1 · 3 严重 · <简短标题>
- **位置:** <文件:行号、屏幕 › 元素或令牌路径>;×<计数>
- **证据:** 已确认 | 可能
- **问题:** <什么偏离了主题,以及其代价:用户可见的不一致,或无法跟随下次主题更改的值>
- **规则:** <NN-n / EV-n / CR-n> [<来源键>]
- **修复:** <具体:"在3处将#8e3f27替换为var(--color-primary)">
## 建议的主题更改
<供theme技能应用。每项:添加/弃用/锁定,令牌或决策,其作为别名的值,原因,以及哪些发现需要它。排除已由现有令牌覆盖的任何内容。>
## 运作良好的部分
## 未检查项
修复保持主题范围内:优先对齐到现有令牌,其次建议添加令牌,切勿建议违反不可协商项的值。提供应用代码修复的建议,以及为建议的更改运行theme技能的建议。