Heyeddi design
End-to-end UI design for HeyEddi stack (PrimeVue, DESIGN.md, semantic tokens: OpenProps on scaffold default). Use when the user wants to design, explore, critique, or improve existing frontend: e.g. "enterprise view", "critique the login page", "this UI looks bad", "settings page". Runs discovery, critique, polish, craft, document. Sub-commands init, discover, shape, craft, critique, polish, document. Not for pre-made screenshot handoff: use heyeddi-handoff instead.From its SKILL.md
npx -y skills add HeyEddi-com/skills --skill heyeddi-designAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 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.
SKILL.md
8.2 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it
HeyEddi Design
End-to-end UI design for HeyEddi apps: discovery, briefs, critique, craft, and polish within PrimeVue, .heyeddi/design.md, and semantic CSS tokens. OpenProps is the HeyEddi scaffold default but not mandatory: detect token source per reference/token-strategy.md.
You do not need design vocabulary from the user. Plain intent ("enterprise view for our app") is enough: ask questions until direction is clear.
Subagents (default)
Delegate by sub-command: see reference/subagents.md. Main chat confirms briefs and merges results.
| Always delegate | Subagent |
|---|---|
@visual-auditor / Playwright | shell |
validate_vue, npm test, build | shell |
critique, craft, polish (route work) | generalPurpose |
research, wireframe explore | generalPurpose |
Codebase scan for document | explore |
Do not run visual capture inline during craft/handoff turns.
Cross-pillar sync (mandatory)
Read reference/cross-pillar-handoff.md. Bookend craft, critique, polish, shape (confirmed brief):
@heyeddi-orchestrator load_workflow_context --route /path
… design work + Decision log in design.md …
@heyeddi-orchestrator append_pillar_opinion --pillar design …
→ @heyeddi-product scope check; @ux-flow-auditor flow note if IA affects tasks
Setup (every session)
- Run
python scripts/load_context.py --project-root <root>once per session (skip if output is already in the conversation). - If
product_existsis false and the task needs strategic context, runinitbefore shape/craft. - Read the sub-command reference file for the invoked mode (required: do not skip).
3a. Read
reference/surface-completeness.mdonce per session when shaping, crafting, or critiquing any route: design full surfaces, not happy-path minimums. 3b. Readreference/foundations.mdonce per session: responsive, theme, i18n, a11y, reading modes are always on unlessproduct.mdwaives them. 3c. Readreference/token-strategy.mdwhen styling: detect OpenProps vs custom tokens before writing CSS. 3d. Readreference/modern-reference.mdwhen shaping or crafting marketing, dashboard, or settings routes: avoid plain admin-template output. 3e. Readreference/audience-design.mdwhen shaping, crafting, or polishing any user-facing route: tie direction toproduct.mdpersonas. 3f. Readreference/design-ambition.mdwhen shaping, crafting, or polishing flagship routes: project-specific signature and impressive craft bar (default; do not wait for user to ask). 3g. Readcontext/PROSE_ANTI_SLOP.mdonce per session when writing UI copy (Vue strings, locale files, product.md voice): no em/en dashes, no AI filler. - After craft, polish, critique (when leading to polish), or shape (brief confirmed), append to Decision log in
.heyeddi/design.mdperreference/design-talk.md: cite primary persona + pattern borrowed + memorable detail for this project. - After implementation, run
reference/audience-fit.mdon flagship routes before calling done. - Chain
@primevue-openprops-architectvalidation and full@visual-auditorfix loop (review vs spec → fix → document) at 375/768/1440.
Commands
| Command | Purpose |
|---|---|
| (no sub-command) | Vague design request → start discover |
init | Create or refresh PRODUCT.md; offer document for DESIGN.md |
discover | Discovery interview only: no code, no final brief yet |
research | Web trend / reference research for current design direction |
explore | Concept images + wireframes after discovery |
shape | Full planning flow: discover → research → explore → confirmed brief |
document | Generate or refresh DESIGN.md from code or seed questions |
craft | Build a screen in Vue (runs shape first if no confirmed brief) |
critique | UX review of existing UI: write report, no code unless asked |
polish | Refine an existing route (after critique) |
Visual proof always delegates to @visual-auditor via Task (shell subagent): see reference/subagents.md.
Routing rules
- Existing UI: critique or improve ("critique", "review", "what's wrong", "looks bad", "ugly", "fix this page", "polish the login"): load
reference/critique.mdfirst. If user wants fixes in the same turn → critique, thenreference/polish.md. Do not start greenfielddiscoverwhen code already exists for the target route. - No sub-command, vague greenfield ("enterprise view", "design the settings area" with no existing screen): load
reference/discover.md. Do not jump to code. - Sub-command matches table above: load
reference/<command>.mdand follow it. Remaining words are the target/brief. craftwithout a confirmed design brief: pause and runshape(full flow) first; resumecraftonly after explicit brief confirmation. 4b.crafton flagship routes (/,/login,/dashboard,/settings): ifload_contextreportsaudience_ready: false, stop:@heyeddi-intakeordiscoverfirst.polishwithout critique this session: run critique first, then polish.initblocker: ifload_contextreports missingPRODUCT.mdand the task is net-new or strategic, completeinitthen resume the original command.- Screenshots / approved mockups provided: stop: tell the user to use
@heyeddi-handoffinstead. - Never invoke impeccable: this skill replaces it for the HeyEddi stack.
Artifacts
| Artifact | Location |
|---|---|
| Design brief (confirmed) | .heyeddi/designs/<feature>/brief.md |
| Wireframes | .heyeddi/designs/<feature>/wireframes/ |
| Research notes | .heyeddi/designs/<feature>/research.md |
| Concept direction | Chat images + summary in brief |
| Design system | .heyeddi/design.md: DESIGN.md format; see Superhuman example |
| Product context | .heyeddi/product.md (legacy: root PRODUCT.md) |
| Skill reports, critiques | .heyeddi/docs/ (critique reports, ship notes, audits) |
Use kebab-case for <feature> (e.g. enterprise-settings).
Stack constraints
- Foundations: responsive, system light/dark,
en+esi18n, WCAG 2.2 AA, dyslexia reading mode option: seereference/foundations.md. - Tokens: semantic CSS variables from project
tokens.css/DESIGN.md: OpenProps when the project already uses it; custom:rootvars otherwise (reference/token-strategy.md). No raw hex in Vue/CSS unless documented exception. - Components: PrimeVue from project catalog in
DESIGN.md; no duplicate wrapper components. - Register:
product(app UI) vsbrand(marketing) fromPRODUCT.md: shapes density, nav patterns, and polish level.
See context/VOCABULARY.md, context/ANTI_PATTERNS.md, context/PROSE_ANTI_SLOP.md, context/EXAMPLES.md, and reference/foundations.md.
When the task is complete: suggest next skills
When you have finished the user's request for this skill (not after every tool call or subagent phase), suggest what to run next:
-
Run:
python .agents/skills/heyeddi-orchestrator/scripts/suggest_next_skill.py --current-skill heyeddi-design --project-root .Add
--route /pathif you worked a specific route. -
Include the script's
### Next stepblock in your final reply. The user copies the Prompt line into chat (e.g.@heyeddi-design craft /settings).
Pass --mode shape (or craft, audit, etc.) when you know which sub-command just finished.
See @heyeddi-orchestrator → reference/next-skill-handoff.md.
What ships with it: 30 files
87.9 KB alongside SKILL.md, 6 of them executable
context/
- ANTI_PATTERNS.md1.6 KB
- EXAMPLES.md1.2 KB
- PROSE_ANTI_SLOP.md5.6 KB
- VOCABULARY.md1.5 KB
reference/
- audience-design.md3.4 KB
- audience-fit.md2.2 KB
- craft.md2.7 KB
- critique.md2.8 KB
- cross-pillar-handoff.md422 B
- design-ambition.md4.8 KB
- design-talk.md2.5 KB
- discover.md3.3 KB
- document.md3.4 KB
- explore.md2.1 KB
- foundations.md5.9 KB
- init.md2.6 KB
- modern-reference.md5.1 KB
- polish.md1.3 KB
- research.md1.8 KB
- shape.md3.1 KB
- subagents.md1.5 KB
- surface-completeness.md6.6 KB
- token-strategy.md3.3 KB
scripts/
- _auto_sync.pyruns4.1 KB
- _heyeddi_paths.pyruns1.5 KB
- load_context.pyruns4.1 KB
- _skill_cli.pyruns906 B
- _untrusted_doc.pyruns825 B
- verify_prose.pyruns6.7 KB
- manifest.json1.1 KB