Acceptance checklist for adding or editing a Shade component or pattern file — naming, sibling story, className forwarding, cva variants, required states, recipe usage.
SkillScore100Maintained
Automatic
◆Frontend / UI pack
Last verified 9/27/2026
What it changes
Passed 22 of 22 test cases with the skill, and 13 of 22 without it.
Without skill59%
With skill100%
Checks it passed that the model alone missed
Storybook builds and tests must pass clean
Form input chrome styling is driven by `inputSurface`
The implementation avoids dark: color utility variants
and 8 more in the full report
9 fixed13 passed either way0 still failing0 broke
Pass-rate lift
+41 pp
Tokens
+28%
Agent turns
0%
Response time
+2%
Model gemini-3.6-flashMeasured 9/27/2026v1 · latest is v222 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
See it in action
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 9
Prompt
I am writing Storybook stories for three Shade additions: a basic button control, a reusable card container, and a complex member setup wizard pattern. What title values should be set in default export meta for each story file? Some team members write titles as 'Components/Button' without spaces.
What was checked, without and with the skill
Checked
Without skill
With skill
The story titles include spaces around category slashes (`Components / <Name>`)
Missed
Passed
The pattern component story title uses the Patterns prefix category
Passed
Passed
case-05 · gemini-3.6-flash · 9/27/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md121 linessingle file
Shade — new component / pattern checklist
Before marking a Shade component or pattern done, this checklist must pass.
Sibling <name>.stories.tsx is required (same folder).
A component file exports only components and types, so Fast Refresh can hot-update it (ESLint enforces this). An exported cva() config goes in a sibling <name>-variants.ts; exported hooks, contexts and helpers go in their own sibling module (sidebar-context.ts). These siblings belong to the component; they aren't Recipes.
Inside Shade itself, import via the @/ alias (@/lib/utils, @/components/ui/input-surface).
Storybook title prefix
Layer
Title
Primitive
Primitives / <Name>
Component
Components / <Name>
Recipe
Recipes / <Name>
Pattern
Patterns / <Name>
Token gallery
Tokens / <Topic>
Required on every story file:
tags: ['autodocs']
parameters.docs.description.component — short one-line summary
Per-story parameters.docs.description.story — one-liner explaining when to use that variant
One story per important variant/state. Many small focused stories > one prose-heavy story.