improve-design
Skill0 starsChanged 2 months agoMITView on GitHub
Measures a project's frontend against twelve UI/UX design principles and a catalogue of generated-UI tells, then either improves the interface toward them, writes a ranked critique, or runs the one principle you pick. Use when an interface looks generic, cluttered or unfinished, before shipping a UI, or when asked for a design, UX or accessibility review.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Nexus-Organization-Infosec/ClaudeSkillstheir own version, first seen Aug 4, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- Nexus-Organization-Infosec/ClaudeSkills★ 1same name
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 repository16 other files it gives its agents.
- adversarial-reviewSkill
- changelogSkill
- cve-patchSkill
- diagnoseSkill
- docs-driftSkill
- good-readmeSkill
- improve-seoSkill
- janitorSkill
- kickoffSkill
- nta-scanSkill
- refactor-oopSkill
- repo-reconSkill
- software-architectureSkill
- spec-driven-devSkill
- stack-adviseSkill
- your-skill-nameSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 13 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
If that does not resolve, say so once and work from the index below alone.
- Distinctive: line 56
critique: when the operator asked for a review or critique rather than changes.
- Distinctive: line 58
narrowed: when the operator named principles by number or title: run improve or critique over only those.
- Distinctive: line 70
Survey: Do this in every mode. Before reading, name the scope: the whole app, a route, a component, or a change (git diff, a branch).
- Very specific: line 72
Read what the project has already decided: DESIGN.md, brand guidelines, design tokens, the Tailwind or theme config, CSS custom properties, …
- Distinctive: line 92
Render it: Start the dev server or build.
- Very specific: line 97
Read the principle files in scope and
anti-patterns.md: before judging anything. Start with 01-intent-before-pixels.md: write its design … - Distinctive: line 124
Critique: Run the same survey with no edits.
- Distinctive: line 153
Do not rename, move, remove or restructure a route, page path, slug, query parameter, API endpoint or redirect.
- Distinctive: line 170
No invented content: No fake testimonials, metrics, customer logos, names or screenshots.
- Distinctive: line 173
No new dependencies: no UI kit, animation library, icon set, font service or CSS framework unasked.
- Very specific: line 175
Do not widen the change you were asked for.
- Distinctive: line 177
Only claim what was seen. Say which surfaces were rendered, at which widths and in which themes.
- Distinctive: line 184
Every principle in scope was either applied or explicitly deferred with a reason.
- Very specific: line 186
No tell from anti-patterns.md remains in touched code without a recorded reason.
- Distinctive: line 189
After an improve, the project's build, test and lint commands give the same result as in step 2.
- Distinctive: line 191
Every route, endpoint, redirect and anchor in the URL baseline still resolves to the same content.
≈ “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
Improve design
Goal
The interface measurably closer to the twelve principles below and free of the
tells in anti-patterns.md, or a ranked account of where it is not. Every claim
is tied to a principle file and a path:line. Every change leaves what the
product does untouched, and the rendered result has been looked at, not
assumed.
Context
Find the principle files first. Each one covers the principle, why it holds,
what it looks like in practice, and how to tell when it is broken. It ends with
a ## Pass section that says what to look for, what a safe fix is, and where
to stop. anti-patterns.md sits beside them and lists the defaults generated
interfaces reach for when nobody made a decision. Nothing is loaded for you:
both are in the skill directory, which is the path given at the top of this
prompt, or the folder holding this SKILL.md.
If that does not resolve, say so once and work from the index below alone. That is the degraded mode. It is still useful, but cite the index rather than inventing detail, and never invent a thirteenth principle.
Check that there is an interface at all. A library, CLI, or API service has no screens to improve. Say so and stop rather than inventing work.
The index. There is one file per principle, numbered in reading order. The numbering is not a ranking, because a real decision usually turns on two or three principles at once.
| File | Principle | Reach for it when |
01-intent-before-pixels.md | Know the surface's job before touching it. | Always first. Settles refine or redesign, and the surface's mode. |
02-hierarchy-and-focus.md | One thing first on every screen. | Everything shouts, or the primary action is hard to find. |
03-space-and-rhythm.md | Proximity groups; a scale sets the rhythm. | Spacing feels arbitrary, cramped, or evenly monotonous. |
04-typography.md | Few families, a role scale, a readable measure. | Too many sizes, long lines, weak heading contrast. |
05-color-and-contrast.md | Colour is a role, and contrast is a floor. | Raw hex in components, grey-on-colour, colour-only status. |
06-one-system.md | Same thing, same look, everywhere. | Three button styles, five radii, mixed icon sets. |
07-every-state-designed.md | Loading, empty, error and overflow are screens too. | Blank lists, silent submits, layouts that break on long text. |
08-interaction-and-feedback.md | Controls look like what they do and answer at once. | Forms, targets, modals, navigation, destructive actions. |
09-motion-with-purpose.md | Motion explains change, or it goes. | Fade-ups everywhere, sluggish transitions, no reduced-motion path. |
10-responsive-by-structure.md | Layout adapts by structure, not by shrinking. | Horizontal scroll, fixed widths, the mobile layout as an afterthought. |
11-accessible-by-default.md | Semantic, operable, perceivable: WCAG 2.2 AA as floor. | Div buttons, missing focus, unlabeled controls. |
12-words-are-interface.md | Copy names actions, errors say how to recover. | "Submit", "Something went wrong", two names for one thing. |
Steps
Pick the mode and state it in one line before touching anything:
- improve by default.
- critique when the operator asked for a review or critique rather than changes.
- narrowed when the operator named principles by number or title: run improve or critique over only those.
In plan mode, survey, render and judge as usual; the improvements you would make, ordered as in step 4, or the critique you would save, are the plan.
Also state the depth. It is refine unless the operator asked for a redesign. Refine keeps the incumbent identity: the palette, typefaces, logo, voice and information architecture. Redesign may replace the look, but it still keeps content, function and every existing URL. Never split the difference by polishing a look you were asked to replace.
- Survey. Do this in every mode. Before reading, name the scope: the whole
app, a route, a component, or a change (
git diff, a branch). Then:- Read what the project has already decided:
DESIGN.md, brand guidelines, design tokens, the Tailwind or theme config, CSS custom properties, Storybook,spec/, ADRs,AGENTS.md,CLAUDE.md,README. A departure that was chosen deliberately and written down is an answer, not a finding. - Identify the stack and the component library (shadcn/ui, MUI, Chakra, Radix, Vuetify, a house kit, or none) and its styling mechanism. Improve with the mechanism the project already has. Never add a second one.
- Extract the incumbent system from the code: families and sizes in use, colour values and their roles, the spacing, radius, shadow and z-index values, breakpoints, and the icon set. Count the distinct values. This is the baseline that drift is measured against.
- Record the URL baseline. List what already exists: the routes or pages
(from the router, the file-based
pages/orapp/tree, or the built output), the API endpoints the UI calls, redirect rules, and the fragment anchors that in-page links and headings expose. This list is a contract. Step 4 must leave every entry resolving to the same content. - In improve mode, learn the build, lint, test and visual-regression commands and run them once before the first edit, so you know which failures you inherited. Critique mode changes nothing, so it skips the run.
- Render it. Start the dev server or build. If a browser or screenshot tool is available, capture each surface in scope at about 375px and 1440px wide, in every theme the project ships. If nothing can render, say so, work from the source, and label every visual claim as unverified.
- Read what the project has already decided:
- Read the principle files in scope and
anti-patterns.mdbefore judging anything. Start with01-intent-before-pixels.md: write its design read for each surface in scope. That means who uses the surface, its mode, its one job, and the incumbent world. Every finding cites the file it came from. Improve. Work by severity, not by index order:
- Blocked tasks and inaccessible paths (07, 08, 11).
- Missing states (07).
- Hierarchy, layout and responsive structure (02, 03, 10).
- Type, colour and system drift (04, 05, 06).
- Motion and copy (09, 12), then removing the tells.
Make the smallest change first, inside each file's
Safe fixand never past itsStop at. Take the cheap gains. A component the work already touches has its best chance of improving now. Where a tell fromanti-patterns.mdappears, rewrite the element rather than softening it, unless the brief or a recorded decision asked for it.Verify in bounded passes, not a loop. Once the edits are in, render again at both widths and in every theme, then fix everything that round shows in one batch. Confirm with at most one more round, then stop polishing. Re-run the project's checks. They must give the same result as in step 2, and a behaviour change is a bug, not a design improvement. Diff the URL baseline against the result, so that no route, endpoint, redirect or anchor was lost or renamed. Anything past
Stop atis written up as a proposal instead of done.Critique. Run the same survey with no edits. Score each principle in scope from 0 to 4: 0 absent, 1 major gaps, 2 partial, 3 minor gaps, 4 solid. Then rank the findings by severity:
- P0 blocks a task or excludes users.
- P1 is a WCAG AA failure or significant friction.
- P2 is an annoyance with a workaround.
- P3 is polish.
Give each finding a
path:line, the principle file, the symptom from that file's "How to tell it is being violated", and the size of the fix. List the tells found, and name what already works so it survives the next change. Save the critique todocs/design-review.md.- Narrowed runs step 4 or 5 over the chosen principles only, and says which principles were not examined.
- Name the conflicts. Where two principles pulled opposite ways, say which one gave way and why. Common pairs are consistency against distinctiveness, density against whitespace, motion against performance, and brevity against clarity. Two principles disagreeing is the normal case, not a contradiction to report. That sentence is the reasoning, and it is the part a reader months from now needs.
Constraints
- Never trade function for looks. Data, form field names and their order, analytics hooks, test IDs and API calls stay exactly as they are. The project's own checks are what prove it.
- Existing URLs are a public contract, in every mode and at every depth.
Do not rename, move, remove or restructure a route, page path, slug, query
parameter, API endpoint or redirect. Do not rename the file or folder that a
file-based router turns into a path. Keep fragment anchors working: when
heading text changes and the
idis generated from it, pin the oldid. A<div onClick>turned into a link keeps its exact destination. New pages may be added, but existing ones stay where they are. If a better information architecture would move a URL, propose it with the 301 mapping and let the operator decide. Never make that change as a side effect. - The brief wins. A pinned palette, typeface, era or style is honoured even
where it matches an entry in
anti-patterns.md. What these principles outrank is a default nobody chose. - Refine keeps the identity. Replacing brand colours, typefaces, the logo, the voice or the navigation structure is a redesign. Do it only when asked. Otherwise, propose it.
- Microcopy is in scope: labels, buttons, errors, empty states and helper text. Marketing copy, factual claims, prices and legal or consent text are not. Propose changes to those, and never invent them.
- No invented content. No fake testimonials, metrics, customer logos, names or screenshots. A missing asset gets an honest, labelled placeholder and a line under Needs a human.
- No new dependencies: no UI kit, animation library, icon set, font service or CSS framework unasked. A self-hosted font or a new token file is a proposal.
- Do not widen the change you were asked for. Past a
Stop at, propose what you would do and why, and let whoever is deciding decide. - Only claim what was seen. Say which surfaces were rendered, at which widths and in which themes. Never report "design complete".
Done when
- The mode, depth and scope were stated.
- Each surface in scope has a design read.
- Every principle in scope was either applied or explicitly deferred with a reason.
- No tell from
anti-patterns.mdremains in touched code without a recorded reason. - The rendered result was inspected at both widths, or declared unverifiable.
- After an improve, the project's build, test and lint commands give the same result as in step 2.
- Every route, endpoint, redirect and anchor in the URL baseline still resolves to the same content.
- Nothing was changed past a
Stop at.
Output
Open with one line: the mode, the depth, the scope, which principles were examined, how the result was verified (rendered widths and themes, or source-only), and that no existing URL changed.
Then one section per principle that produced something, in index order:
- Improve: what changed, as
path:line, and why it was safe. - Critique: the score, then each gap as
[P?] path:line, with the symptom and the size of the fix.
Tells. List each tell found in anti-patterns.md with its path:line and
whether it was removed, kept on purpose (with the reason), or left for a
proposal.
Close with:
- Keep. What already works and should survive the next change.
- Left alone. What sat past a
Stop ator was blocked, and what would settle it. - Conflicts. Where two principles pulled opposite ways, which gave way, and why.
- Needs a human. Brand or identity decisions, copy rewrites, missing assets, and anything that needs access you do not have.
- Not examined. Principles out of scope, when narrowed.
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.

