关于 finalize
finalize 是 ui-craft 的子技能,用于审查设计界面并输出发布评估报告,不修改代码。它检查检测器结果、设计令牌、完成标准及问题严重级别。
主要功能
- 01以设计简报为审查门槛
- 02检测界面问题
- 03审查令牌层级与模式
- 04按十项标准检查完成度
- 05依据严重级别给出发布结论
- 06仅输出问题,不改代码
适用场景
- 01发布前检查界面
- 02发现令牌系统缺口
- 03按优先级整理设计问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ educlopez/ ui-craft --skill finalize安装后在 Claude Code 中输入/finalize确认已加载。
详细介绍
**上下文:**该子技能是 ui-craft 技能的一个审查视角。如果也安装了 ui-craft 技能,请先阅读其 SKILL.md,了解 Discovery、Anti-Slop 和 Craft Test,然后再应用以下具体视角。
加载 ui-craft 技能。此命令仅生成问题发现——请勿编辑代码。
步骤 1 — 简要检查(关卡)
查找 .ui-craft/brief.md。
- 不存在:停止。输出:“未找到设计简报。请先运行
/brief。/finalize需要设计简报,以区分有意为之的决策与问题发现。”请勿继续。 - 存在:加载该文件。提取原则(按编号排列,依冲突解决顺序排序)。这些原则是步骤 4–5 的覆盖规则清单。
步骤 2 — 检测器
对 $ARGUMENTS 运行 npx ui-craft-detect(如果未提供参数,则检测当前工作界面)。
捕获所有输出。检测器中的每项 Critical 问题发现都直接对应报告中的一项阻止发布问题发现。保留检测器的来源标签。
步骤 3 — 令牌检查
进行三项快速审查(无需深入阅读):
- 是否具备全部三层令牌(原始 → 语义 → 组件)?
- 是否明确编写了浅色和深色模式(而非反转生成)?
- 是否涵盖全部七类令牌(颜色、间距、圆角、阴影、排版、动效、z-index)?
任何一项为“否”:标记为 Major。不要阻止发布。附加建议:“运行 /tokens,补齐 [category] 类别。”
步骤 3b — 设计意图检查(仅适用于完整界面)
仅适用于完整界面(仪表板、落地页、身份验证、设置外壳、作品集)——单个组件则跳过。
- 是否有标志性设计? 对照
references/craft-intent.md§3 中的列表(产品/身份验证/营销),检查是否恰好有一项令人印象深刻的设计决策。没有 → Major(“没有标志性设计——界面虽然合格,却缺乏辨识度;运行/bolder或/polish”)。有两项或更多相互竞争 → Major(“标志性设计堆叠过多——保留最强的一项,删除其余部分”)。 - 变化程度是否符合界面类型? 如果布局的风险程度与界面的 DESIGN_VARIANCE 默认值明显不符(例如,身份验证表单采用实验性不对称布局,或落地页只有居中的对称单栏布局),则标记为 Major,除非设计简报或规范记录了这种偏差。
- 是否记录了设计审查结论? 如果
.ui-craft/spec.md中有章节或会话声明了 Craft Read,请验证构建的界面是否符合该结论(主题、变化程度、标志性设计)。不符 → 标记为 Major,并指出具体差异。
这些问题发现属于 Major,绝不属于 Critical——它们会导致状态为 NOT READY,而非 BLOCKED。
步骤 3c — 文案自查与机械计数(仅适用于营销界面)
适用于落地页、作品集和活动页面——产品外壳则跳过。
加载 references/recipe-landing.md,并针对已构建界面执行其中的验收门槛机械检查——检查阈值(眉题数量、布局类型预算、主视觉规范)以该文件中的规定为准;此步骤只指定适用的检查项及违规后的处理方式。
- 文案自查。 阅读所有可见文本(标题、眉题、按钮、说明文字、替代文本、页脚)。语法错误、指代不清、刻意卖弄机灵的标签(如 testimonials 上方使用 “Field notes” 或 “Quietly trusted by”),或没有来源却声称精确的数字 → 按
references/copy.md中的文案自查规则标记为 Major。 - 眉题数量(机械检查)——依据
references/recipe-landing.md的眉题预算。超过预算 → Major(“眉题泛滥——删除标签,直到数量达标”)。 - 布局类型数量(机械检查)——依据
references/recipe-landing.md的布局类型预算。任何重复或连续分割超出预算 → Major。 - CTA 意图(机械检查)——依据
references/copy.md中的 CTA 与按钮规则(每种意图使用一个标签;CTA 在桌面端须能显示为一行)。违规 → Major。 - 主视觉规范——依据
references/recipe-landing.md的主视觉规范。超过预算 → Major。
步骤 4 — 完成度门槛
加载 references/finish-bar.md。按文档顺序运行全部 10 项检查。不得调整顺序。
旋钮行为(运行前应用):
CRAFT_LEVEL ≤ 6且用户未明确调用/finalize:仅运行第 1、6、8 项检查;其余标记为 N/A(受旋钮限制)。CRAFT_LEVEL ≥ 7或用户明确调用了/finalize:运行全部 10 项检查。MOTION_INTENSITY ≤ 3:第 7 项检查仅审查动效缺失;不得因缺少入场动画而判定失败。VISUAL_DENSITY ≥ 8且简报说明了紧凑节奏:第 4 项检查接受紧凑的间距值。
每项检查:
- 收集发现项。
- 按
finish-bar.md中的严重程度映射分配严重级别(Critical / Major / Minor)。 - 如果某项发现与
brief.md中记录的原则冲突:降级为“根据简报暂缓”,并引用确切原则。如果简报中没有相关原则,则该项仍为发现项。
步骤 5 — 反馈层级筛选
加载 references/review.md 中的 Feedback Hierarchy 部分。
将所有发现项(检测器 + 令牌 + 完成度门槛)分为三个层级:
- 价值 — 界面是否解决了简报所定义的问题?
- 易用性 — 用户能否完成主要任务?
- 愉悦感 — 界面是否精致?
如果存在任何价值层级的发现项:在报告中优先列出,并添加一条持续建议:在解决所有价值层级发现项之前,暂缓处理所有愉悦感层级发现项。这可以避免润色工作掩盖功能缺陷。
步骤 6 — 输出
打印此报告。不要添加前言。
## Finalize report — <surface name>
**Ship verdict:** READY / NOT READY / BLOCKED
> BLOCKED = any Critical finding present.
> NOT READY = any Major finding present, no Critical.
> READY = zero Critical, zero Major (Minor explicitly accepted).
### Block-ship findings (must fix before merge)
- [Pass / detector source] — [finding] — [file:line if available]
### Major findings (fix or defer with recorded reason)
- [...]
### Minor findings (polish; ship-okay if explicitly accepted)
- [...]
### Deferred per brief
- [finding] — [principle from brief.md that defers it]
### Recommended next actions
- [ordered, 3–5 items max]
如果某个层级没有发现项,则省略该层级的标题。
步骤 6b — 收敛模式(仅限明确选择启用)
仅当用户明确说“run in convergence mode”、“converge until the bar passes”或使用 --converge 标志时,才会启用收敛模式。含糊的“继续”、“修复它”或“让它通过”不会触发收敛模式——默认仍为仅报告发现项(步骤 7 的硬性停止规则适用)。
明确触发时:加载 skills/ui-craft/references/loops.md,并运行预设 visual-anti-slop(使用 loops.md 中定义的默认循环预算,硬上限为 5)。在第 1 次迭代前输出预运行成本提示。每次只应用一项影响最大的修复后,重新运行 finalize 的步骤 2–6(即此命令自身的步骤),直到 READY 或预算耗尽。注意: finalize 的仅报告发现项硬性停止规则(步骤 7)仅在收敛模式内解除——迭代期间会应用修复。
步骤 7 — 硬性停止规则
不要编辑任何文件。不要在行内提出代码更改。结论即为输出。用户阅读报告后若要求修复,请作为单独请求处理。
下一步: 发布。如果门槛未通过,发现项会指出需要重新运行的检查——/polish、/harden 或 /clarify。