Agent skill

Finalize

by educlopez in educlopez/ui-craft

Pre-ship gate — runs detector, verifies brief and tokens, applies the 10-pass finish bar, ranks findings by feedback hierarchy.

MITAuto-check passedFrontend & Design

Install Finalize

skills CLI
$ npx skills add educlopez/ui-craft --skill finalize -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install educlopez/ui-craft finalize --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/educlopez/ui-craft.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/finalize .claude/skills/finalize && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
finalize
GitHub stars
371
Token cost
~1.9k tokens
SKILL.md length
899 words
Files
1
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Pre-ship gate — runs detector, verifies brief and tokens, applies the 10-pass finish bar, ranks findings by feedback hierarchy.

  • Works in 7 steps: Brief check (gate) → Detector → Token check → …
  • The user wants to ship
  • SKILL.md covers Step 1 — Brief check (gate), Step 2 — Detector, Step 3 — Token check and Step 3b — Craft-intent check…, plus 6 more sections
  • Calls npx

What it does

Finalize is an agent skill from educlopez/ui-craft. Pre-ship gate — runs detector, verifies brief and tokens, applies the 10-pass finish bar, ranks findings by feedback hierarchy. Use when the user wants to ship, merge, or finalize a surface and needs a verdict (READY / NOT READY / BLOCKED) before committing. Invoke when the user asks for finalize on their UI, or mentions 'finalize' alongside design / UI / frontend work.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design. The repository describes itself as: Design engineering system for AI coding agents — ship UI with craft-level quality. Install as an agent skill. The licence is MIT.

When your agent uses it

  • The user wants to ship
  • Finalize a surface and needs a verdict (READY / NOT READY / BLOCKED) before committing
  • Asks for finalize on their UI
  • Mentions finalize alongside design / UI / frontend work

Example prompts

  • “finalize”
  • “/finalize”

Requirements

  • Node.js

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Brief check (gate)
  2. Detector
  3. Token check
  4. Finish bar
  5. Feedback hierarchy filter
  6. Output
  7. Hard stops

What it can do on your machine

Read from SKILL.md and the folder at commit ceecc8e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Finalize loads about 1.9k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 899 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~95
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from educlopez/ui-craft at commit ceecc8e, republished under its MIT licence (© educlopez). 899 words, ~1,945 tokens.

Download SKILL.mdSave it as .claude/skills/finalize/SKILL.md (or your agent's skills folder).
name
finalize
description
Pre-ship gate — runs detector, verifies brief and tokens, applies the 10-pass finish bar, ranks findings by feedback hierarchy. Use when the user wants to ship, merge, or finalize a surface and needs a verdict (READY / NOT READY / BLOCKED) before committing. Invoke when the user asks for finalize on their UI, or mentions 'finalize' alongside design / UI / frontend work.
<!-- HARNESS MIRROR — do not edit here. Canonical source: skills/ or commands/. After editing source, copy into cli/assets/<harness>/ and repo-root harness mirrors. -->

Context: this sub-skill is one lens of the broader ui-craft skill. If the ui-craft skill is also installed, read its SKILL.md first for Discovery + Anti-Slop + Craft Test, then apply the specific lens below.

Load the ui-craft skill. This command produces findings only — do NOT edit code.


Step 1 — Brief check (gate)

Look for .ui-craft/brief.md.

  • Absent: STOP. Output: "No brief found. Run /brief first. /finalize requires a design brief to distinguish intentional decisions from findings." Do not proceed.
  • Present: load it. Extract principles (numbered, in conflict-resolution order). These are the override registry for Steps 4–5.

Step 2 — Detector

Run npx ui-craft-detect on $ARGUMENTS (or current working surface if no argument).

Capture all output. Every Critical detector finding maps directly to a block-ship finding in the report. Preserve detector source labels.


Step 3 — Token check

Quick three-question audit (no deep read required):

  1. Are all three token layers present (primitives → semantic → component)?
  2. Are both light and dark modes explicitly authored (not inverted)?
  3. Are all seven token categories represented (color, spacing, radius, shadow, typography, motion, z-index)?

Any "no": flag as Major. Do not block ship. Append a recommendation: "Run /tokens to close the gap at [category]."


Step 3b — Craft-intent check (full surfaces only)

Applies only when the target is a complete surface (dashboard, landing, auth, settings shell, portfolio) — skip for single components.

  1. Signature bet present? Scan for exactly one memorable decision from references/craft-intent.md §3 (product / auth / marketing lists). Zero → Major ("no signature — surface is competent but anonymous; run /bolder or /polish"). Two or more competing → Major ("signature bets stack — keep the strongest, cut the rest").
  2. Variance matches surface? Layout risk visibly inconsistent with the surface's DESIGN_VARIANCE default (e.g. experimental asymmetry on an auth form, or a landing that is one centered symmetric column) → Major, unless the brief or spec records the deviation.
  3. Craft Read recorded? If a .ui-craft/spec.md section or session declared a Craft Read, verify the built surface matches it (theme, variance, signature). Mismatch → Major with the specific delta.

These findings are Major, never Critical — they gate NOT READY, not BLOCKED.


Step 3c — Copy self-audit + mechanical counts (marketing surfaces only)

Applies to landings, portfolios, and campaign pages — skip for product shells.

Load references/recipe-landing.md and run its Acceptance-bar mechanical checks against the built surface — thresholds (eyebrow count, layout-family budget, hero discipline) live there, not here; this step only names which checks apply and where a violation lands.

  1. Copy self-audit. Read every visible string (headlines, eyebrows, buttons, captions, alt text, footer). Grammatically broken copy, unclear referents, forced-clever labels ("Field notes" over testimonials, "Quietly trusted by"), or fake-precise numbers with no source → Major per references/copy.md Copy Self-Audit.
  2. Eyebrow count (mechanical) — per references/recipe-landing.md Eyebrow budget. Over budget → Major ("eyebrow flood — delete labels until the count passes").
  3. Layout-family count (mechanical) — per references/recipe-landing.md Layout-family budget. Any repeat or consecutive-split overrun → Major.
  4. CTA intent (mechanical) — per references/copy.md CTAs & Buttons (one label per intent; CTA fits one line at desktop). Violation → Major.
  5. Hero discipline — per references/recipe-landing.md Hero discipline. Over budget → Major.

Show full SKILL.md (398 more words)Show less

Step 4 — Finish bar

Load references/finish-bar.md. Run all 10 passes in document order. Do not reorder.

Knob behavior (apply before running):

  • CRAFT_LEVEL ≤ 6 AND user did not explicitly invoke /finalize: run Passes 1, 6, 8 only; mark remaining as N/A (knob-gated).
  • CRAFT_LEVEL ≥ 7 OR user explicitly invoked /finalize: run all 10 passes.
  • MOTION_INTENSITY ≤ 3: Pass 7 = motion-gap audit only; do not fail on absent entrance animations.
  • VISUAL_DENSITY ≥ 8 AND brief documents compressed rhythm: Pass 4 accepts compressed spacing values.

For each pass:

  • Collect findings.
  • Assign severity per the severity map in finish-bar.md (Critical / Major / Minor).
  • If a finding conflicts with a recorded principle in brief.md: downgrade to "Deferred per brief" and cite the exact principle. If no brief principle covers it, it remains a finding regardless.
  • Record file:line when available.

Step 5 — Feedback hierarchy filter

Load references/review.md Feedback Hierarchy section.

Group all findings (detector + token + finish-bar) into three tiers:

  • Value — does the surface solve the problem the brief defines?
  • Ease of Use — can the user accomplish the primary task?
  • Delight — is it polished?

If any Value findings exist: surface them first in the report and add a standing recommendation to defer all Delight findings until Value findings are resolved. This prevents polish work masking broken functionality.


Step 6 — Output

Print this report. Do not add preamble.

## 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]

If a tier has no findings, omit the section header entirely.


Step 6b — Convergence mode (explicit opt-in only)

Convergence mode activates ONLY when the user explicitly says "run in convergence mode", "converge until the bar passes", or uses a --converge flag. A vague "keep going", "fix it", or "make it pass" does NOT trigger convergence — the default remains findings-only (Step 7 hard-stop applies).

When explicitly triggered: load skills/ui-craft/references/loops.md and run preset visual-anti-slop (budget the default loop budget defined in loops.md, hard cap 5). Emit the pre-flight cost notice before iteration 1. After each single highest-impact fix, re-run finalize Steps 2–6 (this command's own steps) until READY or budget exhausted. Note: finalize's findings-only hard-stop (Step 7) is lifted ONLY inside convergence mode — fixes are applied during iteration.


Step 7 — Hard stops

Do not edit any file. Do not propose code changes inline. The verdict is the output. If the user asks for fixes after reading the report, respond to that as a separate request.

Next step: Ship. If the gate is red, the findings name the pass to re-run — /polish, /harden or /clarify.

© educlopez, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .codex/skills/finalize of educlopez/ui-craft.

Open the folder on GitHubat commit ceecc8e

Compare with similar skills

Finalize next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Finalize compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Finalize this skilleduclopez/ui-craft371—~1.9kAutomated safety check: PassMIT
Web Artifacts Builderanthropics/skills180k41 repos~769Automated safety check: PassApache-2.0
React Doctormakeplane/plane61k12 repos~657Automated safety check: PassAGPL-3.0
Impeccablebestofjs/bestofjs3.1k27 repos~2.6kAutomated safety check: PassMIT
Figma Design System Builderwarpdotdev/warp65k2 repos~4.4kAutomated safety check: PassAGPL-3.0
Web Interface Guidelines Reviewervercel-labs/openreview1.7k98 repos~308Automated safety check: PassNone

Similar skills

  • Web Artifacts Builder

    anthropics/skills

    Official

    Builds multi-component claude.ai HTML artifacts as a small React, TypeScript and Tailwind project, then bundles it into one shareable HTML file.

    180k GitHub starsUsed in 41 repos~769 tokens
    Frontend & DesignAuto-check passed
  • React Doctor

    makeplane/plane

    Scans React code for lint, accessibility, bundle size and architecture issues, reports a health score and checks that changes do not lower it.

    61k GitHub starsUsed in 12 repos~657 tokens
    Frontend & DesignAuto-check passed
  • Impeccable

    bestofjs/bestofjs

    A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…

    3.1k GitHub starsUsed in 27 repos~2.6k tokens
    Frontend & DesignAuto-check passed
  • Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.

    65k GitHub starsUsed in 2 repos~4.4k tokens
    Frontend & DesignAuto-check passed
  • Web Interface Guidelines Reviewer

    vercel-labs/openreview

    Official

    Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my…

    1.7k GitHub starsUsed in 98 repos~308 tokens
    Frontend & DesignAuto-check passed
  • Tailwindcss Development

    anonaddy/anonaddy

    Always invoke when the user's message includes 'tailwind' in any form.

    4.9k GitHub starsUsed in 10 repos~865 tokens
    Frontend & DesignAuto-check passed

More from educlopez/ui-craft

All 13 skills in this repo
  • Friction Log

    educlopez/ui-craft

    File contributor or agent papercuts as GitHub issues labeled friction, or investigate those issues as the daily friction-log Cloud Agent.

    371 GitHub stars~1.6k tokensUpdated 1 mo ago
    Auto-check passed
  • Remember

    educlopez/ui-craft

    Record a learned design constraint from a correction into the project brief.

    371 GitHub stars~585 tokensUpdated 1 mo ago
    Auto-check passed
  • Sddesign

    educlopez/ui-craft

    Full spec-driven pipeline — walks brief → tokens → shape (spec) → craft (build) → converge → ship in one guided run.

    371 GitHub stars~1.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Start

    educlopez/ui-craft

    Front door. An agent skill from educlopez/ui-craft.

    371 GitHub stars~1.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Tokens

    educlopez/ui-craft

    Audit or establish the project's 3-layer token spine. An agent skill from educlopez/ui-craft.

    371 GitHub stars~1.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Shape

    educlopez/ui-craft

    Wireframe-first pass — outputs an ASCII layout + state list + content inventory + question list before any code.

    371 GitHub stars~1.6k tokensUpdated 1 mo ago
    Auto-check passed

Questions about Finalize

What does Finalize do?

Pre-ship gate — runs detector, verifies brief and tokens, applies the 10-pass finish bar, ranks findings by feedback hierarchy. Finalize is an agent skill from educlopez/ui-craft. Pre-ship gate — runs detector, verifies brief and tokens, applies the 10-pass finish bar, ranks findings by feedback hierarchy.

When should I use Finalize?

Finalize fits situations like: the user wants to ship; finalize a surface and needs a verdict (READY / NOT READY / BLOCKED) before committing; asks for finalize on their UI; mentions finalize alongside design / UI / frontend work.

How do I install Finalize in Claude Code?

Run `npx skills add educlopez/ui-craft --skill finalize -a claude-code`. Or copy the skill folder (.codex/skills/finalize in educlopez/ui-craft) into .claude/skills/finalize in your project. Claude Code loads it when a task matches its description.

How do I install Finalize in Codex?

Run `npx skills add educlopez/ui-craft --skill finalize -a codex`. Or copy the skill folder (.codex/skills/finalize in educlopez/ui-craft) into .agents/skills/finalize in your project. Codex loads it when a task matches its description.

Can I use Finalize in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add educlopez/ui-craft --skill finalize -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/finalize, .gemini/skills/finalize, .github/skills/finalize and .opencode/skills/finalize in your project.

What does Finalize need to run?

Going by SKILL.md and its folder, Finalize needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does Finalize access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Finalize safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Finalize use?

Finalize is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Finalize use?

About 1.9k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Finalize?

Skills that share tags, products or a category with Finalize: Web Artifacts Builder (anthropics/skills, 180k stars), React Doctor (makeplane/plane, 61k stars), Impeccable (bestofjs/bestofjs, 3.1k stars) and Figma Design System Builder (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Finalize?

educlopez (a GitHub user) maintains it in educlopez/ui-craft, which has 371 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on September 3, 2026.

Source: educlopez/ui-craft on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.