Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/educlopez/ui-craft/shapenpx skills add educlopez/ui-craft --skill shapegit clone --depth 1 https://github.com/educlopez/ui-craftWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00065 | $0.01598 |
| Opus 5 | $0.00032 | $0.00799 |
| Sonnet 5 | $0.00013 | $0.00320 |
| Haiku 4.5 | $0.00006 | $0.00160 |
Grade A, and why
shape scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 123 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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.
Shape the UI for $ARGUMENTS before writing code. Load the ui-craft skill.
This command produces a shape artifact, not JSX. The point is to force low-fi thinking — content inventory, layout regions, state coverage, open questions — before any component is written. Skipping this step is how generic AI UIs get built: straight to hi-fi, no discovery, every screen looks the same.
Step 1 — Clarify (3-5 questions). Ask the user before shaping. Don't guess. Minimum questions:
- What's the primary user action on this screen? (One verb, one object.)
- What data is visible by default vs hidden behind a click or tab?
- What does success look like — a state, a redirect, a toast?
- Who's the primary user — first-timer, power user, mobile-first?
Step 2 — Content inventory. Bullet list of every piece of content that will appear. Annotate each by priority:
- P0 — must be visible on first paint. Cut it and the screen fails.
- P1 — one click away (tab, accordion, drawer).
- P2 — settings-level; rarely accessed.
Example:
- P0 Headline (one line, the value prop)
- P0 Primary CTA
- P0 Hero chart / metric
- P1 Secondary nav tabs
- P1 Recent activity list
- P2 Export / integrations menu
Step 3 — ASCII layout. Low-fi sketch showing regions. No specific copy, no colors, no font sizes. One desktop variant + one mobile variant. Use box characters:
Desktop
┌──────────────────────────────────────────────┐
│ [logo] [nav] [user] │
├──────────────────────────────────────────────┤
│ ┌────────────────┐ ┌───────────────────┐ │
│ │ Headline + sub │ │ │ │
│ │ │ │ Hero visual │ │
│ │ [Primary CTA] │ │ │ │
│ └────────────────┘ └───────────────────┘ │
│ │
│ ── Social proof row ── │
│ │
│ ┌─── Feature 1 ───┐ ┌─── Feature 2 ───┐ │
│ └─────────────────┘ └─────────────────┘ │
└──────────────────────────────────────────────┘
Mobile
┌──────────────────┐
│ [logo] [☰] │
├──────────────────┤
│ Headline + sub │
│ │
│ [Primary CTA] │
│ │
│ ┌── Hero ──┐ │
│ └──────────┘ │
│ │
│ Social proof │
│ │
│ Feature 1 │
│ Feature 2 │
└──────────────────┘
Asymmetry is fine and often better — don't force center-everything.
Step 4 — State list. Enumerate the states this screen must handle. Point at references/state-design.md for the contracts.
- idle — default state, data present.
- loading — skeletons that mirror final layout, 200ms delay before showing.
- empty — first-run or no data; doubles as onboarding.
- error — specific cause + recovery action + support ID.
- partial — some data loaded, some failed (e.g., one widget erred).
- conflict — user-edit collision (rare but load-bearing on collaborative surfaces).
- offline — queue writes, reconcile on reconnect.
- success — confirmation state after the primary action completes.
Mark each as required / optional (why) / N/A.
Step 5 — Open questions. Do NOT start coding until these are answered. Default set:
- Accent color — brand-defined, or to be chosen? (See Discovery in
SKILL.md.) - Typography — existing tokens, or new system? (Reference
typography.md.) - Responsive breakpoints — what's the minimum supported width?
- Stack — CSS only, or Motion / GSAP / Three.js? (Only load
stack.mdif the user opts in.) - Data source — real API ready, or mock for shape?
- Keyboard / a11y requirements — anything beyond the baseline from
accessibility.md?
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 123 lines · 65 tokens per session scan A 36e90f8de8d6
shape is a skill published in the GitHub repository educlopez/ui-craft (298 stars, last pushed 13d ago), licensed MIT. It adds 65 tokens to every session and 1,598 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
software-in-worten
Übersetzt zwischen Benutzeroberfläche und Text — in beide Richtungen. Aus einer beschriebenen Oberfläche wird ein Skill; aus einem Skill wird eine Oberfläche. Nutzen, wenn eine Anwendung entworfen wird und der Ablauf noch unklar ist, wenn ein bestehendes Werkzeug als Skill verfügbar gemacht werden soll, wenn…
typeui-fundamentals
Universal UI/UX design principles covering visual hierarchy, interaction laws, typography foundations, and WCAG accessibility requirements. Use when making design decisions not covered by a specific design system, validating principle compliance, or resolving conflicts between aesthetics and accessibility.…
typeui
Use TypeUI with Grok to access project design skills, brand kits, UI prompts, and layout variations through the TypeUI MCP server when creating or refining user interfaces.
popular-web-designs
54 real design systems (Stripe, Linear, Vercel) as HTML/CSS.
gradio-themes
Build and customise Gradio themes. Use when creating, editing, or publishing Python-based Gradio themes that control colours, typography, spacing, shadows, and dark mode.
tamagui
Universal React UI framework for web and native. Use when building cross-platform apps with Tamagui, creating styled components with styled(), configuring design tokens/themes, using Tamagui UI components, or working with animations. Triggers: "tamagui", "styled()", "$token", "XStack/YStack", "useTheme", "@tamagui/"…