其他
交付或合并 UI 前需要做出 READY/NOT…
当用户要 ship、merge 或 finalize 一个 UI 表面并需要提交前结论时,运行 ui-craft 的 finalize 检查,只产出 findings 和判定,不改代码。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 39/100 ×0.15
适用场景
交付或合并 UI 前需要做出 READY特定
解决思路
- 确认 finalize 是 ui-craft 的一个镜头;若已安装 ui-craft,先读其 SKILL.md 的 Discovery + Anti-Slop + Craft Test,再应用本特定镜头。
- 加载 ui-craft 技能;本命令只产出 findings,不要编辑代码。
- Step 1 Brief check(门禁):查找 .ui-craft/brief.md。
- 若 .ui-craft/brief.md 不存在:停止,输出“No brief found. Run `/brief` first. `/finalize` requires a design brief to distinguish intentional decisions from findings.”,不要继续。
- 若 brief 存在:加载它,提取编号原则(按冲突解决顺序),作为 Step 4–5 的 override registry。
- Step 2 Detector:在 `$ARGUMENTS`(若无参数则当前工作表面)上运行 `npx ui-craft-detect`。
- 捕获 detector 全部输出;每个 Critical detector finding 直接映射为报告中的 block-ship finding。
- 保留 detector 来源标签。
- Step 3 Token check:做三个问题的快速审计,无需深读。
- 检查是否三层 token 都存在:primitives → semantic → component。
- 检查 light 和 dark 模式是否都显式编写,而不是 invert 得来。
- 检查七类 token 是否都有代表:color、spacing、radius、shadow、typography、motion、z-index。
- 任一 Token check 问题为“否”:标记为 Major;不要 block ship;追加建议:“Run `/tokens` to close the gap at [category].”
- Step 3b Craft-intent check:仅适用于完整 surface(dashboard、landing、auth、settings shell、portfolio);单组件跳过。
- 检查 signature bet 是否存在:扫描 `references/craft-intent.md` §3(product / auth / marketing 列表)中恰好一个 memorable decision。
- 若 signature bet 为零:标记 Major,理由“no signature — surface is competent but anonymous; run `/bolder` or `/polish`”。
- 若 signature bet 有两个或更多竞争:标记 Major,理由“signature bets stack — keep the strongest, cut the rest”。
- 检查 variance 是否匹配 surface:布局风险是否与 surface 的 DESIGN_VARIANCE 默认值明显不一致(例如 auth form 上实验性不对称,或 landing 是一个居中对称列);除非 brief 或 spec 记录该偏差,否则标记 Major。
- 检查 Craft Read 是否记录:若 `.ui-craft/spec.md` 某节或 session 声明了 Craft Read,验证已构建 surface 与其一致(theme、variance、signature);不一致则标记 Major 并给出具体 delta。
- Step 3b 的 findings 是 Major,绝不能是 Critical;它们 gate NOT READY,不 gate BLOCKED。
- Step 3c Copy self-audit + mechanical counts:仅适用于营销 surface(landing、portfolio、campaign pages);product shells 跳过。
- 加载 `references/recipe-landing.md`,对已构建 surface 运行其 Acceptance-bar mechanical checks;阈值(eyebrow count、layout-family budget、hero discipline)在该文件中,不在本步骤中;本步骤只命名适用检查及违规落在哪一级。
- Copy self-audit:读取每个可见字符串(headlines、eyebrows、buttons、captions、alt text、footer)。语法破损文案、指代不清、强行机灵标签(如 testimonials 上写“Field notes”、写“Quietly trusted by”)、无来源的假精确数字:按 `references/copy.md` Copy Self-Audit 每条标记 Major。
- Eyebrow count(mechanical):按 `references/recipe-landing.md` Eyebrow budget;超预算标记 Major(“eyebrow flood — delete labels until the count passes”)。
- Layout-family count(mechanical):按 `references/recipe-landing.md` Layout-family budget;任何 repeat 或 consecutive-split 超限标记 Major。
- CTA intent(mechanical):按 `references/copy.md` CTAs & Buttons;每个 intent 一个 label,CTA 在桌面端适配一行;违规标记 Major。
- Hero discipline:按 `references/recipe-landing.md` Hero discipline;超预算标记 Major。
- Step 4 Finish bar:加载 `references/finish-bar.md`;按文档顺序运行全部 10 个 pass;不要重排序。
- 应用 knob 行为:当 `CRAFT_LEVEL ≤ 6` 且用户未显式调用 `/finalize` 时,只运行 Pass 1、6、8;其余标记 N/A(knob-gated)。
- 应用 knob 行为:当 `CRAFT_LEVEL ≥ 7` 或用户显式调用 `/finalize` 时,运行全部 10 个 pass。
- 应用 knob 行为:当 `MOTION_INTENSITY ≤ 3` 时,Pass 7 只做 motion-gap audit;不要因缺少入场动画而失败。
- 应用 knob 行为:当 `VISUAL_DENSITY ≥ 8` 且 brief 记录了 compressed rhythm 时,Pass 4 接受 compressed spacing values。
- 每个 pass:收集 findings。
- 每个 pass:按 `finish-bar.md` 的 severity map 分配严重度(Critical / Major / Minor)。
- 若某 finding 与 `brief.md` 中记录的原则冲突:降级为“Deferred per brief”,并引用确切原则。
- 若无 brief 原则覆盖该 finding:无论冲突如何,它仍保留为 finding。
- 记录 file:line(如可用)。
- Step 5 Feedback hierarchy filter:加载 `references/review.md` 的 Feedback Hierarchy 节。
- 将所有 findings(detector + token + finish-bar)归入三层:Value(surface 是否解决 brief 定义的问题)、Ease of Use(用户能否完成主要任务)、Delight(是否精致)。
- 若存在任何 Value findings:在报告中首先呈现它们,并追加长期建议:在 Value findings 解决前推迟所有 Delight findings,避免打磨工作掩盖功能损坏。
- Step 6 Output:打印报告;不要添加前言。
- 报告格式包含:`## Finalize report — <surface name>`。
- 报告格式包含:`**Ship verdict:** READY / NOT READY / BLOCKED`。
- 判定规则:BLOCKED = 存在任何 Critical finding;NOT READY = 存在任何 Major finding 且无 Critical;READY = 零 Critical、零 Major(Minor 被显式接受)。
- 报告包含 `### 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`,按顺序列出,最多 3–5 项。
- 若某个 tier 没有 findings,完全省略该 section header。
- Step 6b Convergence mode:仅在用户显式说“run in convergence mode”、“converge until the bar passes”或使用 `--converge` flag 时激活。
- 模糊的“keep going”、“fix it”、“make it pass”不会触发 convergence;默认仍为 findings-only,Step 7 hard-stop 适用。
- 当显式触发时:加载 `skills/ui-craft/references/loops.md`,运行 preset `visual-anti-slop`。
- Convergence mode 使用 loops.md 定义的默认 loop budget,硬上限 5。
- Convergence mode 在 iteration 1 前发出 pre-flight cost notice。
- 每次只做一个最高影响修复后,重新运行 finalize 的 Step 2–6(本命令自己的步骤),直到 READY 或预算耗尽。
- 注意:finalize 的 findings-only hard-stop(Step 7)仅在 convergence mode 内解除;迭代期间会应用修复。
- Step 7 Hard stops:不要编辑任何文件。
- Step 7 Hard stops:不要在报告内联提出代码修改。
- Step 7 Hard stops:verdict 就是输出;若用户读报告后要求修复,将其作为单独请求回应。
- Next step:Ship。若 gate 为红,findings 会指出要重新运行的 pass:`/polish`、`/harden` 或 `/clarify`。
适用边界 · 注意事项
- 缺少 `.ui-craft/brief.md` 时不要运行;必须先运行 `/brief`,否则无法区分有意决策与 findings。
- 未安装 ui-craft/无法使用 `npx ui-craft-detect` 等依赖时,不适用;这是依赖特定技能与命令的门禁流程。
- 默认只适用于获取 findings/verdict;除非显式进入 convergence mode,否则不要用它直接改代码,也不要用于单组件的完整 surface 检查或非营销表面的营销检查。