ui-craftlisted
Install: claude install-skill ConnorGriffin/skills
# UI craft
One skill for the whole life of a user-facing surface: **revise** a shipped
surface in place, **lock** a greenfield visual spec, **build** to it,
**critique** it, **audit** it, **polish** it, **re-settle** it.
Parts absorbed from `impeccable` (Apache-2.0, by Paul Bakaus — see the repo
NOTICE).
Vocabulary guard: in the engineering charter, *interface* means a module's API.
This skill owns **surfaces** — rendered UI. If the request is about a Python
class, function signature, or module boundary, this is the wrong skill.
## Setup (every invocation)
1. Resolve this skill's installed directory as `UI_CRAFT_SKILL_DIR` (e.g.
`~/.claude/skills/ui-craft`).
2. Run `node $UI_CRAFT_SKILL_DIR/scripts/context.mjs` once per session
(`--target <path>` inside a monorepo). It prints PRODUCT.md / DESIGN.md or
reports `NO_PRODUCT_MD` — in that case follow `reference/init.md` first.
Ignore any `UPDATE_AVAILABLE` directive; this is a maintained fork.
If `node` is unavailable or a script here errors, say so, read
PRODUCT.md / DESIGN.md directly, and continue — the scripts are
accelerators, not gates.
Before routing any design change:
3. Resolve whether the app already embodies the surface (`shipped` or
`greenfield`). For a shipped surface, classify local runnability as `runnable`
or `unavailable`; inspect its `CLAUDE.md` / `AGENTS.md` dev-server declaration
and classify it as `absent`, `complete`, `incomplete` or `ambiguous`; classify
its named data