taste
Skill4 starsChanged 2 days agoMITView on GitHub
Design judgment for any web page or app screen. Use it whenever you design, redesign, restyle or polish a landing page, marketing or product site, portfolio, hero, one-pager, dashboard, settings or any other app screen, in any stack (HTML/CSS, React, Next.js, Vue, Svelte, Astro, Tailwind, Tauri), and whenever a page looks generic, templated or "AI-made". Principles, not a house style: the AI tells never to ship and why, how to present work like a top studio pitching a major client, when a device (mono, grids, numbers, labels, ASCII, dithering, imagery) earns its place, an optional ASCII/technical mode, when generated media beats code, and how to verify in a real browser at three widths. This is the entry point: it drives taste-skill's inspector and screenshots, and make-media for pictures.
24 other projects use a version of this.
Adopted by
Most recently taken up by
- hamzzaqureshi/gravidextheir own version, first seen Nov 8, 2026
- WingedGuardian/GENesis-AGItheir own version, first seen Nov 8, 2026
- ForeignerfromJupiter/foreigners-povtheir own version, first seen Nov 1, 2026
- renepf/claude-skillstheir own version, first seen Oct 25, 2026
- hhx465453939/agent-taste-seed-systemtheir own version, first seen Oct 25, 2026
- adityareddy-dev/deskstudiotheir own version, first seen Oct 25, 2026
Used with
Projects with it also use council, ui-ux-pro-max and 1 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkillcouncil
Convene the persona panel — six orthogonal review lenses — on a target. Cold independent fan-out, debate-to-consensus, synthesized verdict with recorded dissent and a roster manifest.
Also in 3 projects that use this
StrayDragonSkillui-ux-pro-max
UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient.
Also in 3 projects that use this
BlockSkillfrontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Also in 3 projects that use this
Other versions24 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 24
- TryCaspian/caspian-sdk★ 935same name
- tryproduck/produck-skills★ 511same name
- senlindesign/taste-skill★ 330same name
- WingedGuardian/GENesis-AGI★ 100same name
- Kastalien-Research/thoughtbox★ 64same name
- gavishap/omnia-vault★ 53same name
- adityareddy-dev/deskstudio★ 43same name
- leadgenjay/claude-skills★ 22same name
- alebgl77/claude-inc★ 21same name
- gongyijie85/dsh-ecc★ 8same name
14 more not listed
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 repository50 other files it gives its agents.
- agent-writingSkill
- arenaSkill
- blast-radiusSkill
- bun-playwright-runner-selectionSkill
- cinematic-shotSkill
- clean-ui-shotSkill
- codebase-designSkill
- debug-loopSkill
- dep-upgradeSkill
- diagnosing-bugsSkill
- discoverSkill
- domain-modelingSkill
- earshotSkill
- eval-judgeSkill
- flaky-testSkill
- grillingSkill
- grillSkill
- idea-scoutSkill
- improve-codebase-architectureSkill
- interrogateSkill
- make-mediaSkill
- migrate-to-rustSkill
- migration-planSkill
- multi-agent-windows-hazardsSkill
- perf-loopSkill
- postmortemSkill
- prototypeSkill
- prSkill
- real-soundSkill
- recallSkill
- release-notesSkill
- repo-mapSkill
- researchSkill
- retroSkill
- secure-diffSkill
- sellSkill
- subagent-report-recoverySkill
- taste-skillSkill
- tddSkill
- teachSkill
- to-questionnaireSkill
- to-specSkill
- to-ticketsSkill
- wayfinderSkill
- weeklySkill
- windows-bash-backslash-halvingSkill
- wizardSkill
- writing-for-agentsSkill
- ycSkill
- ystack-upgradeSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 4 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 22 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 105
Never the default. Propose it in one line when the product is for developers, agents or infrastructure, and wait for the user's yes.
- Distinctive: line 114
Body copy stays in the sans: Every mono string is literally true: a real command, real output.
- Very specific: line 116
Put {"mode":"technical"} in the project's .slop-guard.json so slop-guard relaxes its label rule.
- Very specific: line 134
Look in a real browser, never only at code.
- Very specific: line 142
Read every screenshot it saves in .taste-skill/inspect/, at all three widths, after the last change.
- Distinctive: line 143
If a problem is visible in a screenshot it is real, whatever the code says.
- Distinctive: line 151
No taste-skill, Chrome or Node 22: take screenshots at 1440, 768 and 375 with whatever browser tool is available and say the inspector …
“Common” is measured: kept by at least 6 in 10 of the 22 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Taste
A generated page is the average of every page the model has seen. Nothing in it is wrong and nothing
in it was decided. The sites worth copying (Scale AI, Maritime, boat.dev) use the very devices
generators overuse (monospace captions, hairline grids, a floating pill nav, small uppercase labels)
and get away with it, because on those sites each device carries information or comes from the
product's world. So the line between slop and craft is whether a device means something, not
which device it is. This skill teaches the judgment; the slop-guard mod catches the mechanical
tells on every edit; neither forces a look.
The run
- Find what is real. The subject, the buyer, the one thing the page must get someone to do, the
stack, any existing brand (colours, faces, logo), and the imagery that truly exists: the product's
own UI, real photos, footage, a generator you can call (
make-media), open collections (node <taste-skill>/scripts/assets.mjs "<query>"). Never plan around pictures you do not have. A vague brief: state your reading in one line and go; ask only when a fact blocks you. - Inventory the subject: eight to twelve things that belong to this product and no competitor (its name and what it means, its numbers, its constraint, its output, its artefacts: a command, a receipt, a timetable, a scan). The idea comes from this list.
- Write the idea in one sentence: On this page, [something from the inventory] becomes [one technique]. Maritime: the name becomes halftone dithering on every picture. boat: one boat = one VM, so the fleet is the chart. Scale: real footage and real scans with annotation keypoints, because labelling is the business. Put the nearest competitor in the sentence; if it still works, it is a category idea, not this product's.
- Write the argument before the markup: one claim per section, each with its proof. Delete any section without a claim. This is how you escape hero, logos, three cards, testimonial, pricing, CTA.
- Write the copy deck in plain English (
references/presenting.md§2): what it is in under ten words, then the concrete nouns, then checkable specifics. No invented proof, ever. - Decide the system once: one ground, one ink, one accent (or one hue family); one sans, plus mono only where it means code or data; three to five type sizes far apart; one radius; generous section spacing; body text in full-contrast ink.
- Build it still, then add motion that answers the story or the user. Respect reduced motion.
- Verify (below), look at every screenshot, fix the top three problems, look again. Three rounds at
most. Then report like a studio (
references/presenting.md§4).
Never use
These are the defaults that mean nothing. Each one is explained, with what to do instead, in
references/never-use.md. slop-guard blocks the four unmistakable ones at Stop (gradient text,
glows/rings/halos, the banned faces, placeholder or invented content) and warns on the rest.
- The template stack: centred hero with two buttons, a logo row, three icon cards, testimonials, pricing, CTA, every section the same height. It is the average, so it says nothing about you.
- Purple/indigo gradients, gradient text, glows, halos, focus rings, glass, a soft shadow under every card. The first-wave generated look; recognised before a word is read. Separate surfaces with a flat fill one shade off the ground; show focus by a fill change.
- The cream + terracotta "editorial" look and near-black + neon, as defaults. They were the cure for wave one and became wave three.
- One medium radius (12-16 px) on everything; nested cards; coloured left-border cards. Stock component-library output.
- Rounded friendly faces (Nunito, Quicksand, Comfortaa, Varela Round, Poppins, Figtree, DM Sans), default Inter/Roboto/system-ui; more than two faces; nine near-equal sizes. One crisp sans with character (Instrument Sans, Geist, a Söhne-style grotesk) or the brand's own.
- A styled accent word in the headline (italic, coloured, underlined), unless the brand does it.
- Hype and formula copy: unlock, supercharge, seamless, elevate; "Welcome to X"; "not just X, it's Y"; tricolon slogans; a forest of em dashes. Buyers skip words that could sell anything.
- Invented proof: fake logos, quotes, star rows, "Trusted by 10,000+ teams", vanity counters, fake YC badges. Dishonest, and it reads as unfinished the moment anyone checks.
- Fake product: grey-bar dashboards, lorem numbers, stock "team" photos, AI images posing as the product or its users.
- Ornament with no job: blobs, wavy dividers, crosshairs and crop marks, pulsing "live" dots,
micro-meta strings (
A · B · C), timestamps that say nothing, emoji as icons. - Motion with no reason: fade-up on every block, hover-lift on every card, bounce easing,
transition: all, loops that mean nothing. - Dashboard chrome on a landing page: theme or motion toggles in the hero, status-pill legends, keyboard hints, internal "built / reviewed" tables, roadmap labels. Caveats live in docs and fine print.
Devices: when one earns its place
Allowed when it carries information or comes from the product's world; cut it otherwise. Decide each
one by writing down what it carries. Full table and examples: references/devices.md.
| Device | Earns its place when | Costume when |
| Monospace | the string is literally true: a command, its output, an ID, a price table of competitors (boat) | it is the "technical voice" for headings, labels or body |
| Hairlines, 1 px grids | they separate a real grid of comparable cells, a table, a list (Maritime's product grid) | they decorate: rules under every heading, boxes around single items |
| Index numbers | it is a real sequence or identifier (Step 1 of 3 in a demo, #8812 a load number) | 01 / 02 / 03 over sections that have no order |
| Small uppercase labels | each names a real category (Scale's APPLICATIONS, PUBLIC SECTOR), one or two per view | one sits above every heading |
| Floating or pill nav | it solves a real job (Maritime's bar becomes a pill only after scrolling, over content) | it is the default nav shape |
| Dark theme, one hue family | the subject lives there (night sea, terminal) | "premium" by reflex |
| ASCII, dither, pixel art, contour lines | it is the one technique, taken from the name or subject, and still carries data | it is a texture added for "tech" |
| Imagery | it shows the real product, real place or real work, or is source material code transforms | it stands in for content you do not have |
| Motion | it tells the story (scroll-scrubbed layers, a typing demo, a fleet that resizes) or answers the user | it decorates every block |
Spend boldness in one place: one memorable moment per page (the fleet, the 3D layers, the cost calculator). Everything else stays quiet.
Optional mode: ASCII / technical
Never the default. Propose it in one line when the product is for developers, agents or
infrastructure, and wait for the user's yes; never for consumer or regulated brands. Vocabulary:
halftone dithering (Maritime), pixel art (boat), true ASCII as text in <pre> with an aria-label,
wireframe or contour overlays and keypoints (Scale), terminal fragments, a tmux-style status bar, mono
for commands and captions. Rules:
- One technique per site, used everywhere (icons, hero, empty states).
- Generated in code (canvas, shader or precomputed text) from a real or generated source image, so it
stays crisp, small, themeable and animatable.
make-mediamakes source images and dithers them. - Body copy stays in the sans. Every mono string is literally true: a real command, real output.
- Reads on a phone; animation pauses under reduced motion; the look still carries information.
- Put
{"mode":"technical"}in the project's.slop-guard.jsonso slop-guard relaxes its label rule.
Detail and recipes: references/devices.md §3.
Pictures: generate, find, draw, or code
- Generate (
make-media): atmosphere and texture that do not exist yet (a sea at night, a material, a place); source images that code then dithers or ASCII-fies; a short ambient hero loop; a consistent illustration set; OG and social images. - Code wins for anything with text, UI, diagrams, charts, icons, logos, pixel art, ASCII, dithering effects, wireframes. Real product screenshots and real UI fragments built as working components beat any generated product shot.
- Never generate customers, team photos, testimonials, the product's UI, or "real-world" footage presented as real. Scale's hero works because it is real.
- List every generated asset in the build report: file, model, prompt, cost, where it is used.
Verify
Look in a real browser, never only at code. Run from the project root (<taste-skill> and
<ui-ux-pro-max> are where those skills are installed; each tool is used only if installed):
node <taste-skill>/scripts/inspect.mjs <url | path/to/index.html> --widths 1440,768,375 # measures + screenshots
node <taste-skill>/scripts/lint.mjs <source dir> # static tells- Read every screenshot it saves in
.taste-skill/inspect/, at all three widths, after the last change. If a problem is visible in a screenshot it is real, whatever the code says. - Fix every
FAIL. EachWARNis wrong unless you can say in one sentence what the device carries (a mono caption that is a real command passes; a mono heading does not). - App screens: add
--app. Pages with scroll scenes: alsoscripts/scenes.mjs. - UX floor (contrast, 44 px targets, forms, focus, CLS): query ui-ux-pro-max's checklist only, never
its style or palette catalogue:
python <ui-ux-pro-max>/scripts/search.py "<outcome>" --domain ux. Where it says "focus ring", show focus by a fill or colour change instead (the no-glow rule wins). - A deeper second opinion before a PR, if gstack is installed: its
/design-review. - No taste-skill, Chrome or Node 22: take screenshots at 1440, 768 and 375 with whatever browser tool is available and say the inspector could not run. Never claim a check you did not run.
Present like a studio
Restraint, real content, specific claims, one idea per section, and the craft details nobody asked for
(the empty state, the footer, install tabs per OS, fine print where caveats belong). The build report
leads with the idea sentence and the screenshots at three widths, then the system (ground, ink, accent,
face, sizes), what was cut and why, every generated or found asset, and what still falls short. Full
guidance and the report template: references/presenting.md.
Other skills, and who decides what
Each applies only if installed; without them this skill still stands on its own.
- taste (this skill) decides: the idea, the argument, the system, which devices earn their place.
- taste-skill supplies tools:
inspect.mjs,lint.mjs,scenes.mjs,assets.mjs(open collections). Its dealt directions (draw.mjs) are optional sparring, never the art direction. - make-media makes images and short video (Gemini API with a spend cap, or the user's browser).
- slop-guard (mod) reports mechanical tells on each edit; a deliberate exception is
slop-ok: <reason>on the line. A brand font goes in.slop-guard.json"brandFonts". - ui-ux-pro-max: UX and accessibility checks only.
- frontend-design agrees with this skill (structure encodes information); if both load, this one decides the house rules.
Files
| File | Read it when |
references/never-use.md | You want the why behind a tell, or what to do instead. |
references/devices.md | Deciding on mono, grids, numbers, labels, nav, dark themes, ASCII/dither/pixel, imagery, motion; the technical mode recipes. |
references/presenting.md | Writing the copy deck; the studio presentation; the build report template. |
references/studied-sites.md | What Scale AI, Maritime and boat.dev each do, and the seven shared lessons. |
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.

