← ClaudeAtlas

ui-craftlisted

Lifecycle for user-facing surfaces — revise a shipped surface in the running app, lock a greenfield visual spec, build to a lock, critique/audit/polish a UI, or re-settle a locked term. Use for any request to design, review, or verify rendered UI (screens, dashboards, flows, components). Not for backend-only work or module/API design ("interface" in the code sense — use codebase-design for that).
ConnorGriffin/skills · ★ 18 · Web & Frontend · score 64
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