Impeccable is a UI craft skill: critique, tokens, accessibility, and visual polish. Lamina is a headless product-design skill: behavior contracts and live verification. They pair; they do not overlap.
Impeccable designs how it looks. Lamina designs how it works. Both can sit in the same agent session.
Who this comparison is for
You are in the right place if
You installed Impeccable expecting it to fix broken checkout or onboarding logic.
Screens look professional after critique, but illegal state pairs still ship.
You want a clear stack order: behavior contract first, visual polish second.
Your agent passes Impeccable hooks but guests can still pay before email verification.
Context
Impeccable is the reference UI skill in the Lamina ecosystem. Developers often conflate visual craft with product behavior: the dashboard typography is excellent, but a partner can submit for review before Stripe connects. This page maps what Impeccable owns (pixels, hierarchy, presentation states) versus what Lamina owns (domain state machines, permission matrices, recovery paths). Neither replaces the other. The question is stack order, not either/or.
Common situations
Concrete cases from AI-shipping workflows. Each shows what the alternative handles and where a behavior contract helps.
Guest checkout looks polished but hold rules are wrong
Situation
You ran Impeccable on a booking checkout. The hold banner, typography, and empty states look professional. Guests can still confirm payment before email verification or after the inventory hold expired.
What Impeccable does
Impeccable improves visual hierarchy, accessibility labels, and presentation of loading/empty/error chrome. It does not define whether pay is legal before verify-email or after hold expiry.
What Lamina adds
/lamina-design writes hold lifecycle, email gate, and cancel consent into run.yaml. /lamina-verify walks as a guest persona and surfaces illegal transitions in fix.md.
Takeaway
Use Impeccable for how checkout looks. Use Lamina for what checkout allows.
Partner onboarding form passes design critique
Situation
Impeccable critique fixed spacing and form labels on partner property onboarding. Submit for review is visible on step one because the agent rendered a complete form.
What Impeccable does
Impeccable ensures the form reads well and meets craft standards. It does not encode stepped prerequisites (Stripe, rooms, policy) before submit unlocks.
What Lamina adds
Lamina specs submit-for-review as gated until prior steps complete. Verify walks the partner persona through the real flow on staging.
Takeaway
Design critique cannot replace a permission matrix across onboarding steps.
You only need a landing page refresh
Situation
Marketing asked for better hero typography and contrast on a static page. No new roles, gates, or multi-step flows.
What Impeccable does
Impeccable alone is the right tool: critique, tokens, polish.
What Lamina adds
Nothing required. Skip Lamina until the page gains product behavior (forms with gates, authenticated states, etc.).
Takeaway
Visual-only work is a valid reason not to install Lamina yet.
Comparison
Lamina vs Impeccable for AI coding agents: layer comparison
Dimension
Impeccable
Lamina
Primary job
Polish pixels, hierarchy, accessibility, and anti-AI-slop craft
Agent implements from implement.md (behavior first)
3. Polish
Impeccable critique and polish pass on components
Optional: Impeccable after core behavior lands
4. Verify
Re-run critique if visuals shifted layout
/lamina-verify; fix.md loop for behavior gaps
When to reach for each
Lamina vs Impeccable: when to use each
Situation
Impeccable
Lamina
Dashboard needs better typography and contrast
Impeccable alone
Skip Lamina
Checkout needs hold timer, email gate, cancel rules
Impeccable for polish only
Lamina for contract + verify
Component library migration (shadcn refresh)
Impeccable + shadcn skill
Add Lamina when flows change, not when buttons move
AI-generated UI looks generic
Impeccable anti-slop pass
Lamina if generic UI hides wrong product states
Worked example
Partner onboarding gate before submit. In the HavenStay demo, Impeccable can polish the onboarding form layout and labels. Lamina specs that submit-for-review stays locked until Stripe, property, rooms, and policy steps complete. Without the contract, agents render a complete form on day one. With Lamina, verify catches submit unlocked too early.
Yes. Lamina specs behavior; Impeccable handles pixels. Run /lamina-design and implement first, polish with Impeccable, then /lamina-verify so visual tweaks do not mask broken gates.
Impeccable covers empty and loading states. Isn't that behavior?
Presentation states differ from domain states. Impeccable ensures empty checkout looks intentional. Lamina ensures pay is illegal while hold is expired or email is unverified.
Does Lamina replace Impeccable?
No. Lamina never touches styling, tokens, or visual critique.
Impeccable has design hooks. Does that replace /lamina-verify?
Hooks catch visual regressions during iteration. /lamina-verify walks personas against the behavior contract on the live build. Different signals.
Comparisons map stack layers, repo artifacts, and HavenStay demo examples. Updated when major tools change positioning.
More comparisons
Install in one command.
A headless product-design skill for your AI coding agent. Then run the design → implement → verify loop on your next feature.
Apache-2.0 · open source. Star on GitHub if Lamina saves you a loop.