jev-design
Skill444 starsChanged 9 days agoMITView on GitHub
Design React interfaces with the full shadcn/ui catalog. The agent writes a brief, Jev picks components and a style recipe from bounded catalogs, then the agent implements, renders, and reviews against concrete checks.
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 5 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 38
Keep the brief to audience, task, and tone, 1,500 characters at most.
- Very specific: line 39
Add "primitives": "radix" | "base" | "aria" when the project already uses one primitive set.
- Distinctive: line 40
Ask the user only when the surface type (landing page or app) or the audience is unknown.
- Very specific: line 56
When the plan is selected, implementation holds:
- Very specific: line 63
When the plan abstains, the output still holds baseline and candidates:
- Distinctive: line 73
Run the planner at most three times per screen.
- Very specific: line 77
Use the frontend skill. Follow this order:
- Very specific: line 79
Run init (if needed), install, and npm exactly as the plan gives them.
- Very specific: line 81
Write the layout. Apply layout_tokens everywhere: the same control height, row height, gap, and section spacing on every part of the screen.
- Distinctive: line 82
Write real copy: a headline that names the task, labels as nouns, buttons as verbs with objects ("Assign case", not "Submit").
- Very specific: line 83
When no catalog component fits, compose from catalog parts first (item + dropdown-menu, card + chart).
- Distinctive: line 92
Stop after three review rounds.
- Very specific: line 93
If the harness has no screenshot tool, say so.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Jev design
Each part of the work goes to whoever does it best:
| Phase | Who | Output |
| 1. Brief | the agent running the skill | brief.json |
| 2. Pick | Jev, through scripts/plan.py | a component per requirement, a style recipe, install commands, and CSS |
| 3. Compose and build | the agent, with the frontend skill | layout, hierarchy, copy, custom parts, and working code |
| 4. Review | the agent, with any screenshot tool | concrete findings, then fixes or a revised brief |
Jev only picks from lists: a component from the catalog's candidates and a recipe from its styles. It does not write layout, copy, or code. The agent does all open-ended work. Everything below is a default. Override any step when you have a stated reason, and write the reason in your summary.
1. Brief
Turn the user's request into brief.json. Read references/brief-writing.md for the procedure and a worked example.
{"brief":"Support agents triage 200+ cases a day on desktop; calm, dense, keyboard-first.",
"style_traits":["dense","calm","professional"],
"requirements":[
{"id":"results","role":"Compare, filter, and act on open cases","capabilities":["tabular-data","filter","row-actions"]},
{"id":"details","role":"Inspect one case without leaving the list","capabilities":["overlay","details"]}
]}- List capabilities, style traits, recipes, and limits with
--list-capabilities. Use only listed names. - Keep the brief to audience, task, and tone, 1,500 characters at most. Layout and copy notes stay with you for phase 3.
- Add
"primitives": "radix" | "base" | "aria"when the project already uses one primitive set. - Ask the user only when the surface type (landing page or app) or the audience is unknown. Otherwise decide, and record the assumption.
Deriving a brief from an existing screen
The planner has no vision input and picks components, not layout. Read the screen (DOM, a screenshot) yourself and write the brief from it: one requirement per region, each with 1 or 2 capabilities and a role written as a verb plus an object. Three capabilities per requirement abstained with no_compatible_component; vague roles abstained with low_fitness, and verb-plus-object roles selected (data-table 0.94). Layout stays with you in phase 3.
2. Pick
python3 skills/frontend/jev-design/scripts/plan.py \
--input brief.json --output /tmp/design-plan.json \
--receipt /tmp/jev-design-receipt.json --css /tmp/design-theme.cssThe planner filters the catalog by capability in code: each requirement gets at most six candidates, tightest fit first. It packs requests to 3,500 tokens or fewer and refuses to send any request over 4,500. It sends through the selectable Jev transport (Vercel AI Gateway when configured), which retries 429, 503, and 529 with jittered backoff. It validates every answer and accepts a pick only when its fitness is 0.62 or higher. It never installs anything or edits code.
When the plan is selected, implementation holds:
install: the exactnpx shadcn@latest add ...command, plusnpmfor extra dependencies.css: paste-ready@theme inline,:root, and.darkblocks.fonts: the families to load.layout_tokens: radius, density classes, and shadow.contrast: every checked WCAG pair and its ratio.
When the plan abstains, the output still holds baseline and candidates:
| Reason | Do |
no_compatible_component | Fix the listed capabilities, or split the requirement. |
low_fitness, none_or_out_of_catalog | Rewrite that requirement's role as a verb plus an object, and rerun. If it abstains again, build that part as a custom component (phase 3). |
low_style_fitness | Add or change style_traits, and rerun. If it abstains again, pick from --list-capabilities styles yourself. |
jev_unavailable, malformed_response | Use the baseline, check it against each candidate's use_when, and say in your summary that Jev did not pick. |
request_too_large, invalid_request | Shorten the brief or roles as the message says. |
Run the planner at most three times per screen.
3. Compose and build
Use the frontend skill. Follow this order:
- Run
init(if needed),install, andnpmexactly as the plan gives them. - Paste
cssinto the app's global stylesheet, replacing the existing theme variables. Loadfonts. - Write the layout. Apply
layout_tokenseverywhere: the same control height, row height, gap, and section spacing on every part of the screen. - Write real copy: a headline that names the task, labels as nouns, buttons as verbs with objects ("Assign case", not "Submit").
- When no catalog component fits, compose from catalog parts first (
item+dropdown-menu,card+chart). Write new markup only when that fails, and reuse the recipe's variables.
4. Review
Build with UI design judgment and its recipes. Render the screen and review it with references/visual-review.md. Use the harness's screenshot tool (Playwright or chrome-devtools MCP). Capture 375, 768, and 1280 px widths in light and dark mode (set deviceScaleFactor 2 for the 375 px shots you send to Jev).
- Send the desktop and mobile screenshots to Jev, one Noul per trait, with the rated reference in the same state. Load references/jev-images.md for captures, question set, and code. Image answers steer the review. They do not replace the checklist.
- Report each finding as a fact with a location: "Primary button in the dialog footer is below the fold at 375 px", not "spacing feels off".
- Fix code-level findings in code. Put requirement-level findings (a wrong component, the wrong tone) back into
brief.json, and rerun phase 2. - Stop after three review rounds. Report what remains.
- If the harness has no screenshot tool, say so. Give the user the checklist from
visual-review.mdto check by eye, and do not claim visual quality.
Rules for changing the planner
Apply the Jev production rules to any change in how requests are built or sent. They cover request size, retries by status, and budget checks. Keep the worst-case size test passing: too much context is the most common failure. The planner picks among catalog candidates, and Jev leans toward the first option on some inputs: keep candidate order out of the signal (tightest fit first is a code ordering, so test a reversed order on labeled requirements before trusting a pick). Pin a versioned model ID for planner calibration; jev-latest moves between versions. Read references/decision-card.md before you change the model, catalog, rubric, threshold, bounds, failure policy, or promotion status. references/catalog-v1.json is kept for reference only.
Other versions1 project uses a version of this.
Word for word · 1
- notque/vexjoy-agent★ 444100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
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 repository64 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- assessmentSkill
- dataSkill
- business-opsSkill
- code-qualitySkill
- comment-qualitySkill
- condenseSkill
- joy-checkSkill
- content-engineSkill
- contentSkill
- headlinesSkill
- image-genSkill
- image-to-videoSkill
- series-plannerSkill
- topic-brainstormerSkill
- video-editingSkill
- writingSkill
- domainSkill
- cli-designSkill
- frontendSkill
- frontend-slidesSkill
- webgl-card-effectsSkill
- game-asset-generatorSkill
- game-devSkill
- game-trailerSkill
- motion-pipelineSkill
- browser-jev-automationSkill
- cve-source-checkSkill
- deploySkill
- endpoint-validatorSkill
- headless-cron-creatorSkill
- kubernetesSkill
- githubSkill
- accountsSkill
- auto-dreamSkill
- building-with-jevSkill
- codexSkill
- docs-sync-checkerSkill
- doSkill
- dSkill
- grill-jevSkill
- toolkitSkill
- workflow-helpSkill
- debuggingSkill
- plant-seedSkill
- processSkill
- pr-workflowSkill
- quickSkill
- testingSkill
- with-anti-rationalizationSkill
- workflowSkill
- worktree-agentSkill
- programmingSkill
- architecture-deepeningSkill
- codebase-analyzerSkill
- markdown-converterSkill
- news-collectionSkill
- researchSkill
- roastSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

