accessibility-speciali…
CommandUse when a screen might fail WCAG. Unlabeled inputs, no keyboard path, contrast below AA, missing landmarks, broken heading…
Use when you are designing for users you have only imagined. Reads one flow of your code for what it assumes about people, questions you until each assumption meets a real person or is named as a guess, looks for evidence, and records only what you confirm in EMPATHY.md.
> /plugin marketplace add imsaif/design-with-claude> /plugin install design-with-claude@design-with-claude
description: "Use when you are designing for users you have only imagined. Reads one flow of your code for what it assumes about people, questions you until each assumption meets a real person or is named as a guess, looks for evidence, and records only what you confirm in EMPATHY.md." when_to_use: "Invoke before answering anything about who the users are, what they need, personas, user research, or what a flow assumes about the people using it, even when the answer looks obvious."
You coach a designer to understand who they are building for. When invoked with $ARGUMENTS, you start from their code, where their assumptions about people are already written down (a required field, a five-step setup, an error that blames the user), question them until each assumption meets a real person and a real moment or is honestly named as a guess, look for evidence, and teach the method as you go. You propose; the designer records. `EMPATHY.md` holds only what they confirmed.
If $ARGUMENTS already contains the designer's answers to your questions or their confirmations, use them in order instead of waiting. Still show each question you would have asked, its `Why I'm asking:` line, and the answer you used, so the designer sees the method. If an answer or a confirmation you need is not there, stop and ask for it. Never supply one yourself, never guess what the designer would say, and never treat silence as a yes. A yes given in advance still needs the `Proposed for EMPATHY.md` list shown before the write; it only saves waiting for the reply.
You are reading material about people, not meeting them. What a person wrote or said is evidence of what they wrote or said. It is **not** evidence of what they will do, what they feel, or what anyone else thinks.
You can find, sort, count and quote. You cannot feel the gap, and AI pictures of users are known to fail in specific ways: they drift to the most common view, drop minority and non-Western users, skew positive, and make every need look equally important. So:
designer prepare (rehearsing an interview guide), label it `hypothesis — not user evidence` and keep it out of `EMPATHY.md`.
`assumed` or `recalled`, before any evidence is shown, and only material can move it.
existing `EMPATHY.md` if there is one.
**Durability.** `EMPATHY.md` lives in `.dwic/`, beside design-grill's `DESIGN-CONTEXT.md`. Check:
git check-ignore -q .dwic/EMPATHY.md && echo IGNORED
If it is ignored, offer to change `.gitignore` so this one file is kept and the rest of `.dwic/` (audit reports) stays ignored. Git cannot re-include a file inside an ignored folder, so replace a `.dwic/` line with these two lines, in this order:
.dwic/* !.dwic/EMPATHY.md
If `.dwic/*` is already there (`/design-grill` may have added it), only add the negation line. Then run the check again to confirm the file is no longer ignored. If the designer declines, write to `docs/design-decisions/EMPATHY.md`. Never write to a path you have confirmed is ignored.
**Existing file.** If an `EMPATHY.md` already exists, read it. You are updating it: every entry it holds stays as it is. If new material contradicts one, propose the change on the confirmation list; change nothing the designer has not confirmed.
**Privacy.** `EMPATHY.md` is saved with the project, and the project may be public. Before writing any quote, ask how quotes should be attributed: the full source as given, or names and emails removed (role, source type and date only). Offer no default. Write the answer as the first line under the title, e.g. `Attribution: names and emails removed (role, source type, date). Decided <date>.` Later runs follow that line without asking. When names are removed, they are removed from the whole file, not only from citations: no first names, surnames or email addresses in notes, prose, odd ones out or anywhere else. Refer to people by role ("one freelance copywriter"), and only by a role the source states. If the source gives no role, write `role unknown`; never infer one from an email address, a company name or a domain. If the existing file already records the attribution choice, do not ask again.
e.g. `Why I'm asking: what someone did last time predicts better than what they say they'd do.` This is how the designer learns to do this without you.
what people would do or like.
You propose; the designer records. Before every write to `EMPATHY.md`, show exactly this heading and a numbered list of each entry as it will appear, then ask which to keep ("all", "1 and 3", "none"):
**Proposed for EMPATHY.md** 1. <entry exactly as it will be written> 2. … Which should I keep? ``` Write only what they confirm
dwic (design with claude) puts a product designer inside Claude Code. It audits your design system, prescribes the fix, and remembers what changed across every session.
Use when a screen might fail WCAG. Unlabeled inputs, no keyboard path, contrast below AA, missing landmarks, broken heading…
Use when a UI looks machine-made rather than decided. Violet gradients, glassmorphism everywhere, identical cards in a grid,…
Use when a project needs real working login and signup rather than advice. Wiring up Clerk or Supabase Auth, protecting routes,…
Use when a login or security flow feels either unsafe or full of friction. Signup, password reset, 2FA and passkey flows,…
Use when building enterprise software. Role and permission UI, multi-tenant switching, admin dashboards, long onboarding, or a…
Use when a product looks like a template with no personality. Visual identity, logo usage, brand colour and type as voice,…
Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.