$npx -y skills add educlopez/ui-craft --skill startFront door. Reads the current project (framework, tokens, brief, spec, harness) and reports what ui-craft can do right now, then routes you to the right next step. Run this first if you're new or unsure where to begin. No code changes. Invoke when the user asks for start on their
| 1 | <!-- HARNESS MIRROR — do not edit here. Canonical source: skills/ or commands/. After editing source, copy into cli/assets/<harness>/ and repo-root harness mirrors. --> |
| 2 | |
| 3 | **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. |
| 4 | |
| 5 | Orient the user. Load the `ui-craft` skill, read the current project, and report what ui-craft can do **right now** for it. This is the front door — most people run it first. |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## ORCHESTRATE-ONLY RULE |
| 10 | |
| 11 | This command **detects state and routes**. It MUST NOT build, edit, audit, or re-implement any phase logic. It contributes only: |
| 12 | |
| 13 | 1. Project detection (read-only). |
| 14 | 2. A "what's available now" map across the three usage layers. |
| 15 | 3. One recommended next step + the command to run for it. |
| 16 | |
| 17 | When the user wants to act, hand off to the real command (`/brief`, `/tokens`, `/sddesign`, `/craft`, `/finalize`, the review agents, etc.). Do not inline their steps. |
| 18 | |
| 19 | --- |
| 20 | |
| 21 | ## Step 1 — Detect (read-only) |
| 22 | |
| 23 | Scan the project. Do not write anything. Gather: |
| 24 | |
| 25 | | Signal | How to detect | Used for | |
| 26 | |--------|---------------|----------| |
| 27 | | **Framework / styling** | package.json deps, config files, file extensions — Tailwind, CSS Modules, styled-components/Emotion, vanilla CSS, Vue/Svelte/Astro SFC | Confirm ui-craft adapts to this stack | |
| 28 | | **Token spine** | CSS vars (`--color-*`, `--accent-*`, `--font-*`), Tailwind `theme.extend`, a token file | Gate: is `/tokens` needed? | |
| 29 | | **Brief** | `.ui-craft/brief.md` exists? | Gate: is `/brief` needed? | |
| 30 | | **External design contract** | `DESIGN.md` or `design-tokens.json` at repo root (ecosystem convention some teams use) | Treat as brief + token input — read it, honor it, don't duplicate it | |
| 31 | | **Spec** | `.ui-craft/spec.md` exists? which surfaces? | Is there work in flight? | |
| 32 | | **Harness** | Claude Code (plugin/skill) vs `.codex`/`.cursor`/`.gemini`/`.opencode`/`.agents` mirror | Which layers are reachable (agents/MCP are Claude Code / MCP-client only) | |
| 33 | | **Existing UI** | are there components/pages already, or is this greenfield? | Build-new vs review/polish framing | |
| 34 | |
| 35 | Keep detection fast and quiet — a few reads, no deep traversal. Report findings as a short table. |
| 36 | |
| 37 | --- |
| 38 | |
| 39 | ## Step 2 — Report the three layers |
| 40 | |
| 41 | Print what's available now, mapped to how people actually use ui-craft. Mark each layer ● active / ○ available / – not reachable in this harness. |
| 42 | |
| 43 | ``` |
| 44 | ui-craft is a design engineering SYSTEM. You're set up for: |
| 45 | |
| 46 | ● Layer 1 — Just ask |
| 47 | Describe any UI and the agent designs with taste (anti-slop, system tokens, |
| 48 | real hierarchy). No command needed. This is the default and the point. |
| 49 | |
| 50 | ○ Layer 2 — Drive it |
| 51 | Slash commands for focused passes. Given THIS project: |
| 52 | <tailored list — see Step 3> |
| 53 | |
| 54 | ○ Layer 3 — Verify it |
| 55 | design-reviewer + a11y-auditor agents · ui-craft-mcp gates · UICraftScore · ui-craft-detect CLI. |
| 56 | <mark – if the harness can't reach agents/MCP, and say so> |
| 57 | ``` |
| 58 | |
| 59 | Tailor the bullets to the detected state — don't print the generic catalog. |
| 60 | |
| 61 | --- |
| 62 | |
| 63 | ## Step 3 — Recommend ONE next step |
| 64 | |
| 65 | Pick the single highest-value next action from detected state. Use this decision order: |
| 66 | |
| 67 | 1. **No brief, non-trivial project** → recommend `/brief` ("anchor every later decision to your product's principles — 5 min, writes `.ui-craft/brief.md`"). |
| 68 | 2. **Brief exists, no token spine** → recommend `/tokens` ("establish the 3-layer token spine so builds match a system, not inline guesses"). |
| 69 | 3. **Brief + tokens exist, building something net-new** → recommend `/sddesign <surface>` (full pipeline) or `/craft <surface>` (one-shot) — ask which. |
| 70 | 4. **Existing UI to improve** → route by intent: review → `ui-craft:design-reviewer` + `ui-craft:a11y-auditor` (Claude Code) or `/critique` + `/audit`; polish → `/polish`; simplify → `/distill`; flat/generic → `/bolder`; loud/busy → `/quieter`; dated site to modernize → `/redesign`. |
| 71 | 5. **About to ship / merge** → recommend `/finalize` (10-pass gate) and, for CI, `npx ui-craft-detect` or the `score_ui` MCP tool. |
| 72 | |
| 73 | Print it as one clear line: |
| 74 | |
| 75 | > **Recommended next:** `…` — <one-sentence why>. |
| 76 | |
| 77 | Then offer the full menu only if asked: "Want the full command list, or shall I run that now?" |
| 78 | |
| 79 | --- |
| 80 | |
| 81 | ## Step 4 — Hand off |
| 82 | |
| 83 | If the user confirms, run the recommended command. Otherwise stop — `/start` never acts on its own. Its job is done once the user knows where they are and where to go. |
| 84 | |
| 85 | --- |
| 86 | |
| 87 | ## Notes |
| 88 | |
| 89 | - **Read-only.** `/start` writes nothing and changes no code. The artifacts (`brief.md`, `spec.md`, tokens) are |