shape
Skill441 starsChanged 3 months agoMITView on GitHub
Wireframe-first pass — outputs an ASCII layout + state list + content inventory + question list before any code. Use when starting a new screen from scratch or when the user's brief is still ambiguous. Invoke when the user asks for shape on their UI, or mentions 'shape' alongside design / UI / frontend work.
37 other projects use a version of this.
Adopted by
Most recently taken up by
- finolabs/vibecodetheir own version, first seen Nov 15, 2026
- theexperiencecompany/gaiatheir own version, first seen Nov 13, 2026
- jskswamy/skillstheir own version, first seen Nov 8, 2026
- Belweave/hstacktheir own version, first seen Nov 8, 2026
- Mrbaeksang/skillstheir own version, first seen Nov 8, 2026
- edwinidrus/dragonhoardtheir own version, first seen Nov 8, 2026
Used with
Projects with it also use layout, explore and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
owshq-mecSkilllayout
Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.
Also in 8 projects that use this
genomewalkerSkillexplore
RLM-style recursive memory exploration - dynamically navigate the memory graph
Also in 3 projects that use this
Microsoft AzureSkillbuild
Build the TypeSpec Rust emitter from source. Run this after cloning the repo, after pulling changes, or when TypeScript source files have been modified.
Also in 5 projects that use this
jaydubya818Skillwhy
Use when design rationale must be recovered from source history and available records.
Also in 3 projects that use this
NVIDIASkillresearch
Before designing a feature, research how comparable libraries solve the problem, check best practices, known pitfalls, and upstream changes. Use when starting a new feature, investigating an unfamiliar area, or the user asks to research something.
Also in 7 projects that use this
SentrySkillspec
Produce a verified spec — problem, desired outcome, and acceptance criteria — before building. Use when given a GitHub/Linear issue link, when starting from a fuzzy in-conversation idea, or asked to "figure out what to do" / "scope this" / "what should I build" — whenever the *what* isn't yet pinned down. Grills the ambiguities, checks the premise against the code, and produces acceptance criteria you sign off on — then hands to design-first.
Also in 3 projects that use this
Other versions37 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 37
- hoophq/hoop★ 848same name
- 10xChengTu/Mux0★ 337same name
- theexperiencecompany/gaia★ 327same name
- jagrat7/linux-wallpaper-engine★ 227same name
- owshq-mec/semana-ai-data-engineer★ 122same name
- StyleSwift/StyleSwift★ 61same name
- tdimino/claude-code-minoan★ 41same name
- saltandsilicon/game-theorist★ 16same name
- excatt/superclaude-plusplus★ 14same name
- Astro-Han/skills★ 12same name
27 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository36 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/ui-craft/references/agents.mdAGENTS.md
- adaptSkill
- animateSkill
- auditSkill
- bolderSkill
- briefSkill
- clarifySkill
- colorizeSkill
- craftSkill
- critiqueSkill
- delightSkill
- distillSkill
- extractSkill
- finalizeSkill
- hardenSkill
- heuristicSkill
- polishSkill
- quieterSkill
- redesignSkill
- rememberSkill
- sddesignSkill
- startSkill
- tokensSkill
- typesetSkill
- ui-craft-dense-dashboardSkill
- ui-craft-editorialSkill
- ui-craft-minimalSkill
- ui-craftSkill
- unhappySkill
- friction-logSkill
- friction-logSkill
- ui-craft-dense-dashboardSkill
- ui-craft-editorialSkill
- ui-craft-minimalSkill
- ui-craftSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 5 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 35 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Step 1 — Clarify (3-5 questions): Ask the user before shaping.
- Distinctive: line 89
Step 5 — Open questions: Do NOT start coding until these are answered.
- Distinctive: line 107
After printing all five steps, offer to write the output as a spec section:
- Distinctive: line 112
User declines →: do not write any file. The printed output stands.
- Distinctive: line 119
Do NOT write JSX, CSS, or component code in this command.
“Common” is measured: kept by at least 6 in 10 of the 35 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- 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.
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 menuStep 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?
Knob awareness.
- At
CRAFT_LEVEL ≥ 7, add two more sections:- Motion shape — which elements enter, in what order, with what stagger. Pick from the duration scale in
references/motion.md. - Typography hierarchy plan — display / headline / body / label sizes and weights, before code.
- Motion shape — which elements enter, in what order, with what stagger. Pick from the duration scale in
- At
CRAFT_LEVEL ≤ 4, strip Step 4 toidle / loading / erroronly. Skip the motion shape.
Step 6 — Offer to persist to .ui-craft/spec.md (opt-in).
After printing all five steps, offer to write the output as a spec section:
"Write this shape to
.ui-craft/spec.mdas## Surface: <name>? (Persists the composition choice, layout, and acceptance bar for the build phase.)"
- User confirms → format the output as a
## Surface: <name>section following the template in../skills/ui-craft/references/spec.md, then write or append to.ui-craft/spec.md. Confirm in one line: "Written to.ui-craft/spec.md→## Surface: <name>." - User declines → do not write any file. The printed output stands. Note: "spec.md not written — the pipeline continues without a persisted acceptance bar."
Print-only is the default when /shape is run standalone. Step 6 is the offer; it does not execute unless the user explicitly confirms.
Output contract.
- Produce a single Markdown block with all five steps, in order. Step 6 is the optional offer that follows.
- Do NOT write JSX, CSS, or component code in this command.
- End the output with: "Ready to build? Review the shape, confirm the open questions, then run
/ui-craft:audit(or use Build mode) once the code exists."
Next step: /craft — build the surface you just wireframed (rung 1).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

