heyeddi-design
Skill0 starsChanged 3 months agoMITView on GitHub
Product design partner for @taste-penpot. Use on design, UI, look, polish, or handoff requests AFTER taste-penpot has chosen the look. Records personas, route job, and tokens into .heyeddi/design.md, then hands off to @heyeddi-handoff or @design-handoff-flutter. Does not invent a second palette, type system, or multi-step aesthetic. Screenshot gate still applies before done.
In this repository51 other files it gives its agents.
- .cursor/rules/skill-authoring.mdcCursor rule
- backend-type-bridgerSkill
- composable-patternsSkill
- dart-type-bridgerSkill
- design-handoff-flutterSkill
- design-system-generalizerSkill
- engineering-excellenceSkill
- flutter-engineeringSkill
- flutter-patternsSkill
- heyeddi-designSkill
- heyeddi-handoffSkill
- heyeddi-intakeSkill
- heyeddi-orchestratorSkill
- heyeddi-productSkill
- heyeddi-pr-respondSkill
- heyeddi-pr-reviewSkill
- no-duplicate-uiSkill
- pre-merge-gateSkill
- primevue-openprops-architectSkill
- project-engineeringSkill
- ux-flow-auditorSkill
- verify-buildSkill
- visual-auditorSkill
- backend-type-bridgerSkill
- composable-patternsSkill
- dart-type-bridgerSkill
- design-handoff-flutterSkill
- design-system-generalizerSkill
- engineering-excellenceSkill
- flutter-engineeringSkill
- flutter-patternsSkill
- heyeddi-ci-configSkill
- heyeddi-ci-failsSkill
- heyeddi-ci-guideSkill
- heyeddi-ci-runnersSkill
- heyeddi-handoffSkill
- heyeddi-intakeSkill
- heyeddi-orchestratorSkill
- heyeddi-productSkill
- heyeddi-pr-respondSkill
- heyeddi-pr-reviewSkill
- heyeddi-setupSkill
- heyeddiSkill
- no-duplicate-uiSkill
- pre-merge-gateSkill
- primevue-openprops-architectSkill
- project-engineeringSkill
- taste-penpotSkill
- ux-flow-auditorSkill
- verify-buildSkill
- visual-auditorSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 2 are distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 26
Read reference/implement-routing.md every session that ends in shipped UI.
- Distinctive: line 48
Do not run visual capture inline during handoff turns.
- Very specific: line 52
Read reference/cross-pillar-handoff.md.
- Very specific: line 63
Run python scripts/load_context.py --project-root <root> once per session (skip if output is already in the conversation).
- Very specific: line 64
If product_exists is false and the task needs strategic context, run init before shape/craft.
- Distinctive: line 65
Read the sub-command reference file for the invoked mode (required: do not skip).
- Very specific: line 76
After shape (brief confirmed), critique, or polish, append to Decision log in .heyeddi/design.md.
- Very specific: line 77
After stack implementer finishes: @visual-auditor fast widths 375,768,1440 while iterating.
- Very specific: line 100
craftwithout confirmed brief: run shape first (brief must include subject + hard rejects). - Very specific: line 102
polishwithout critique this session: run critique first (including ambition gate). - Very specific: line 117
Use kebab-case for <feature>.
- Very specific: line 132
Add --route /path and --mode <sub-command> when known.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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
HeyEddi Design
Stack-agnostic UI design for HeyEddi apps: discovery, briefs, critique, and design-system documentation. Implementation (Vue, Flutter, CSS in components) belongs to stack skills — see reference/implement-routing.md.
Team: @taste-penpot owns the look in one pass (Anthropic frontend-design + tokens). This skill owns product fit and implementation handoff. Read reference/design-team.md before any design turn. Do not author a second palette or restart discover → research → explore to find a look.
Auto-pickup: Design talk still loads this skill, and it immediately loads @taste-penpot if that pass has not already produced tokens. Then record those tokens. reference/brief-language.md is product language for the brief, not a second art direction.
Design vs implement (mandatory split)
| Layer | Skill | Delivers |
| Design (this skill) | @heyeddi-design | Briefs, wireframes, critique, design.md, IA, aesthetic direction |
| Implement (stack) | @heyeddi-handoff, @design-handoff-flutter | Production UI code in Vue / Flutter |
| Enforce (stack) | @primevue-openprops-architect | Vue tokens + PrimeVue guardrails |
| Verify (agnostic) | @visual-auditor, @ux-flow-auditor | Screenshots, contrast, flows, fixes |
Read reference/implement-routing.md every session that ends in shipped UI.
Default behavior (no confirmation)
- Design talk of any kind: load
brief-language.mdfirst; pin taste + subject + hard rejects before chrome - Better design / redesign: "better design", "make it better", "redesign", "new look", "overhaul", "wow", "top notch" → do not polish-only. Run critique ambition gate (
reference/critique.md); if template-like or ambition fails →shape→ craft → implement. Spacing/token tweaks alone are wrong for these phrases. - Critique + fix (local): "looks bad", "fix this page", "polish", "tweak spacing" → critique then stack implementer +
@visual-auditor— unless the ambition gate says escalate toshape(then shape first; do not ask). - Craft: confirmed brief → hand off to stack implementer in the same workflow
- Ambition bar: impressive craft is default on flagship routes — do not wait for user to ask
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 handoff turns.
Cross-pillar sync (mandatory)
Read reference/cross-pillar-handoff.md. Bookend craft, critique, polish, shape (confirmed brief):
@heyeddi load_workflow_context --route /path
… design work + Decision log in design.md …
@heyeddi append_pillar_opinion --pillar design …
→ @heyeddi-product scope check; @ux-flow-auditor flow note if IA affects tasksSetup (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/brief-language.mdfirst on any design/look/feel talk (discover, shape, craft, critique, polish, or informal "make it look…"): subject/metaphor, hard rejects, hero/type/accent/responsive/SSOT, first-viewport checklist, done gate. 3b. Readreference/implement-routing.mdwhen shaping, crafting, critiquing, or polishing any route. 3c. Readreference/surface-completeness.mdonce per session when shaping, crafting, or critiquing any route. 3d. Readreference/foundations.mdonce per session: responsive, theme, i18n, a11y, reading modes are always on unlessproduct.mdwaives them. 3e. Readreference/modern-reference.mdwhen shaping marketing, dashboard, or settings routes. 3f. Readreference/audience-design.mdwhen shaping, crafting, or polishing any user-facing route. 3g. Readreference/design-ambition.mdon flagship routes. 3h. Readreference/aesthetic-direction.mdon any user-facing route. 3i. Readcontext/PROSE_ANTI_SLOP.mdwhen writing UI copy in briefs ordesign.md. 3j. Readreference/visual-tools.mdduringexplore,shape, andcritiqueon flagship routes: use GenerateImage for direction probes and Canvas for compare/brief/critique summaries when the IDE provides them. - After shape (brief confirmed), critique, or polish, append to Decision log in
.heyeddi/design.md. - After stack implementer finishes:
@visual-auditorfast widths375,768,1440while iterating. Before calling done on flagship/marketing: done widths375,430,768,1024,1440,1920(--preset done) and fix what you see. Logo-off test: if it could be another startup after removing the brand, it is not done.
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 (GenerateImage) + Canvas compare + wireframes |
shape | Full planning flow: discover → research → explore → confirmed brief |
document | Generate or refresh DESIGN.md from code or seed questions |
craft | Brief ready → hand off to stack implementer (see implement-routing) |
critique | UX review of existing UI → report → auto-chain implement + visual-auditor |
polish | Design-spec refinement + stack implementer for code (after critique) |
Routing rules
- Better design / redesign intent ("better design", "make it better", "redesign", "new look", "overhaul", "major improvement", "wow", "top notch" on an existing route): load
reference/critique.mdambition gate → if escalate →reference/shape.mdthencraft(not polish-only). Seereference/design-ambition.md§ Improve vs redesign. - Existing UI: local fix ("critique", "looks bad", "fix this page", "polish"): load
reference/critique.md→ run ambition gate → polish-path implement +@visual-auditoronly if gate says stay local. Do not ask. - No sub-command, vague greenfield: load
reference/discover.md+brief-language.md. - Sub-command matches table: load
reference/<command>.md(+brief-language.mdfor shape/craft/critique/polish). craftwithout confirmed brief: runshapefirst (brief must include subject + hard rejects). 5b. Flagship routes without personas:@heyeddi-intakeordiscoverfirst.polishwithout critique this session: run critique first (including ambition gate).- Screenshots / approved mockups:
@heyeddi-handoff(implement), not designcraftcode. - Never invoke impeccable: this skill replaces it.
Artifacts
| Artifact | Location |
| Design brief (confirmed) | .heyeddi/designs/<feature>/brief.md |
| Wireframes | .heyeddi/designs/<feature>/wireframes/ |
| Research notes | .heyeddi/designs/<feature>/research.md |
| Design system | .heyeddi/design.md |
| Product context | .heyeddi/product.md |
| Critiques, audits | .heyeddi/docs/ |
Use kebab-case for <feature>.
Foundations (design spec — implementer enforces in code)
Responsive, light/dark, en+es i18n, WCAG 2.2 AA, semantic tokens: see reference/foundations.md, reference/token-strategy.md, reference/brief-language.md.
See context/VOCABULARY.md, context/ANTI_PATTERNS.md, context/PROSE_ANTI_SLOP.md, context/EXAMPLES.md, reference/brief-language.md.
When the task is complete: suggest next skills
python .agents/skills/heyeddi/scripts/suggest_next_skill.py \
--current-skill heyeddi-design --project-root .Add --route /path and --mode <sub-command> when known.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

