Gmira
21 Claude Code skills for building web interfaces that do not look AI-generated. Forces a written visual direction before any element is placed, wires 7 shadcn registries (514 components), sets a GPU performance floor for WebGL and canvas work, and gates every build with Playwright at 5 viewports. Next.js, React, Tailwind v4.
npx -y skills add OthmanAdi/gmira --skill gmiraAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 11 days oldThe repository was created 11 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when building, redesigning, or reviewing a website or web surface that must not look generated. Covers landing pages, e-commerce (PLP, PDP, cart, checkout), car and vehicle inventory sites, course and cohort school pages, portfolios, dashboards, and marketing sites. Handles visual direction, WebGL and canvas effects, shadcn registry components, scroll choreography, typography, color, motion, empty and error states, accessibility, performance budgets, and multi-viewport visual verification. Also use when a page came out bland, templated, or "AI-looking" and needs a real direction, or when an installed registry component renders wrong.
SKILL.md
6.2 KB, as published. Nobody here has run it
Gmira
A library for building web surfaces nobody can tell were generated.
The problem this solves is not skill, it is decision avoidance. An agent that has not decided reaches for the median, and the median rendered to HTML is the card grid, the gradient headline, the eyebrow over every section, the centered hero with two buttons. Installing more impressive components does not fix it, it relocates it: the rainbow WebGL blob now sits exactly where the purple CSS gradient sat in 2021.
So this library forces the decision first, then supplies the material.
Read this first, always
references/DOCTRINE.md is the shared law. Load it before any other file here. Everything below
assumes it. Do not restate it back to the user; act on it.
The one sequence that matters
Direction before elements. Every time, including on "just fix the hero".
1 BRIEF what is true, who it is for, what the content actually is
2 DIRECTION the 5-block contract, written down, before anything is placed
3 BUILD surfaces, using the arsenal, repaired and tamed
4 GATE slop, a11y, perf, then eyes on real screenshots
Skipping step 2 is how pages come out generic. If the user asks for a build and no direction exists, write the direction first and show it. It costs 150 words.
Commands
Invoke a sub-skill directly, or let this router pick.
Decide
| Skill | Use when |
|---|---|
gmira-brief | Starting anything. Extracts product truth, mode, and the real content model. |
gmira-direction | The 5-block direction contract, with the anti-default mechanics. Nothing gets built before this. |
gmira-palette | The color world. Committed strategy, 30 to 60% surface coverage, measured contrast. |
gmira-typeset | The typographic voice. Measure, scale, tracking, what mono is allowed to mean. |
Build
| Skill | Use when |
|---|---|
gmira-hero | The first viewport. Owns the effect budget and the frame-zero problem. |
gmira-scroll | Scroll choreography: pinned sections, scrub, tilt, reveal. One authored moment. |
gmira-catalog | Any set of things: inventory, products, courses, creative walls. The anti-card-grid skill. |
gmira-detail | A single thing in depth: PDP, vehicle detail, course page. Spec tables and variant state. |
gmira-flow | Multi-step: checkout, enrollment, finance calculator, booking, application. |
gmira-proof | Testimonials, results, logos, case studies. Without inventing any of them. |
gmira-nav | Header, command menu, footer, and the chrome that carries the world. |
Craft
| Skill | Use when |
|---|---|
gmira-arsenal | Installing any registry component. Runs the repair and taming pass. Not optional. |
gmira-canvas | Authoring or auditing canvas and WebGL work. Owns the GPU floor. |
gmira-motion | Choosing and building the one authored moment. |
gmira-states | Hover, focus, disabled, loading, error, empty. The six that get skipped. |
Gate
| Skill | Use when |
|---|---|
gmira-slop | Auditing for the visual tells no detector catches. Run before showing the user. |
gmira-a11y | Contrast, focus order, semantics, canvas fallback readability. |
gmira-perf | Frame budget, bundle weight, DPR caps, GPU teardown. |
gmira-verify | Playwright at five viewports, then read the screenshots with your own eyes. |
gmira-ship | Build, stage, publish. Never deploys without an explicit go. |
Playbooks
Loaded by the build skills, not invoked directly. references/playbooks/:
car-shop.md, ecommerce.md, ai-school.md, gtm-ugc-school.md, and worlds.md
(the material-world catalog the direction skill draws from).
Routing
- A vague ask ("build me a site", "make this better") means start at
gmira-brief. - A named surface with a direction already committed goes straight to the matching build skill.
- "It looks generic / bland / AI" is
gmira-slopfirst, to name what is wrong, then almost alwaysgmira-direction, because the cause is upstream of the pixels. - "This component looks broken / wrong colors / nothing renders" is
gmira-arsenal. - Anything touching a canvas or shader also loads
gmira-canvas. - Before handing anything back:
gmira-verify. No exceptions, and read the images.
Stack
Next 16 + React 19 + Tailwind v4 + shadcn v4. Seven registries are wired in components.json
(514 components): @componentry, @canvas-ui, @bklit, @ncdai, @kibo-ui, @react-bits,
@soundcn. The shadcn MCP is connected; shadcn search and shadcn view work against all seven.
Default install stays cheap: framer-motion, lenis, lucide-react. That reaches every
non-three.js component including all four raw-WebGL heroes. three.js costs roughly 600 KB and is
only justified when one specific component earns it.
Three laws that override any component's own defaults
Proven by build, written up in references/DOCTRINE.md Part 1.
- A registry component is an engine, not a design. Its defaults are tuned to win a five-second gallery GIF. Install then tame, in the same breath.
- The arsenal is broken on arrival. 12 of 56 componentry components ship unresolvable
cnimports and 10 have undeclared dependencies. Repair before writing any page. - An effect must earn its place at frame 0, with no input. Pointer-driven effects are invisible in the state most visitors see.
Prose
Everything this library writes for a user to read, including page copy: no dashes as pause, sachlich tone, no performative warmth. Compound hyphens are fine. Denylist and the structural AI-tells are in the doctrine, Part 7.5.