design-craft — make it good, then make it understood
Two halves, one skill:
- Craft (Chipman): rules that make an interface read as designed rather than assembled —
hierarchy, consistency, typography, readability, alignment/grid, microcopy, error handling.
- Articulation (Greever): every design decision must answer the Big Three —
What problem does it solve? How does it affect the user? Why is it better than the alternative? —
and be communicated so stakeholders agree and don't reopen it next week.
Reference files are the source of truth; this file is the router. Read only the references a mode needs.
Non-negotiables (apply in every mode)
- "Works", never "like". Strike like / don't like / from a design perspective from all output. Evaluate effectiveness against a goal, a use case, or a user, not preference. Rephrase the user's preference statements into effectiveness questions before answering them.
- Evidence ladder — label which rung you're on.
data (analytics, A/B) › user testing (observed) › external research (cite title/author/url) › established pattern / heuristic › informed intuition. Never invent a number, a study, or a test result. If you have no evidence, say "assumption" and propose how to check it.
- Every finding/decision cites a principle from
references/ (e.g. hierarchy: size/colour/contrast/space, ≤2 typefaces, ≤3 colours, 40–55 chars per line). No "this feels off".
- Lead with a yes. Agree with the problem a request addresses before you negotiate the solution. Propose an alternative rather than refusing.
- Alternatives are mandatory. A recommendation without at least one considered alternative (and why it loses) is incomplete.
- No dark patterns, no fabricated UI content. Never recommend fake social proof, invented metrics, manufactured urgency, or placeholder data dressed as real.
- Finish with agreement. When presenting a decision, end with a direct, benefit-framed question ("Do you agree we should X to improve Y?") — not an open-ended "thoughts?".
Mode selection
| Signal in the request |
Mode |
Read |
| "audit / review / critique this screen", "looks amateur", "why does this look wrong", screenshot or component path |
AUDIT |
references/ui-principles.md, typography-readability.md, layout-grid-alignment.md, microcopy.md |
| You are about to make or propose a design change (any size) |
RATIONALE |
references/big-three-rationale.md, response-toolkit.md §Common messages |
| User/stakeholder pushes back, asks "why", or requests a specific change ("add a button", "make the logo bigger") |
RESPOND |
references/stakeholder-playbook.md, response-toolkit.md |
| "prepare for the design review / client meeting / demo" |
PREP |
references/stakeholder-playbook.md §Prepare, after-and-recovery.md §Follow-up |
| New product/feature kickoff, brief writing, "what do you need from me" |
INTAKE |
templates/project-intake-checklist.md, references/research-and-process.md |
| Colour pairs / palette / typeface count questions |
any |
run scripts/contrast.py, scripts/palette-audit.py |
Mixed requests: run AUDIT first, then RATIONALE for each fix you propose. If the refactoring-ui skill is installed, invoke it for the visual polish execution (spacing scales, shadows, palettes); this skill owns the principles audit and the communication.
AUDIT workflow
- Establish the frame before judging. Identify the screen's one primary job (every screen should have a single main focus), the primary use case, the target user and the measurable goal. If unknown, state your assumption in one line — don't block.
- Squint / grayscale pass. Mentally (or with a screenshot desaturated) check: does the eye land on the primary action first, secondary second? Do exactly three text levels exist (headline › subhead › body) — two on mobile?
- Walk the checklists in this order, noting each violation as
[severity] principle — where — evidence — fix:
- Hierarchy & focus (
ui-principles.md §1–2)
- Consistency (appearance + behaviour) & familiarity (§3–4)
- Typography & readability (
typography-readability.md — run scripts/palette-audit.py for typeface/colour counts; scripts/contrast.py for every text/background pair in doubt)
- Alignment & grid (
layout-grid-alignment.md)
- Flow, effort & feedback: steps to complete the primary task, 3-click rule, loading/progress/error states (§5–8)
- Microcopy (
microcopy.md)
- Responsive/adaptive behaviour (§9)
- Severity:
P0 blocks the primary task or misleads the user · P1 hurts scanability/trust/conversion · P2 polish. Cap the report at what matters; don't pad with P2s.
- Output with
templates/design-audit-report.md. Each fix carries a one-line Big Three rationale so it can be defended later.
- Offer to implement fixes; don't implement unasked unless the user's request already implied it.
RATIONALE workflow
For the decision at hand fill templates/design-rationale.md:
problem (tied to a named goal/metric) → solution → how it affects the user (story or observed behaviour) → alternatives considered and why they lose → evidence rung → the "common message" category it belongs to (business / design / research / limitation). Keep it to one screen of text. Write it before coding when the change is user-visible.
RESPOND workflow (feedback or change request arrives)
- Listen first. Restate the request as a problem: "What I hear you saying is … Is that right?" Convert any like/don't like into works/doesn't work. Don't answer until the underlying need is identified (the stated solution is often not the need).
- Transition: Thank → Repeat → Prepare (one sentence each).
- Strategy: pick from appeal to a nobler motive (tie to their goal), represent the user (story), demonstrate effectiveness (show/prototype).
- Tactic(s): show a comparison · propose an alternative · give them a choice (state the trade-off honestly) · ask others to weigh in · postpone the decision. See
response-toolkit.md.
- Justify with the IDEAL structure — Identify the problem, Define the solution, Empathize with the user, Appeal to the business, Lock in agreement — using the common-message catalogue and the
[design] will affect [goal] because [reason] pattern.
- Ask for agreement directly, framed on the benefit.
- If overruled: apply
after-and-recovery.md §Making changes you disagree with (make it subtle / an option / placed carefully / planned space). Record the decision and move on — no relitigating.
Output with templates/stakeholder-response.md when the user wants text they can send; otherwise answer conversationally but in that order.
PREP workflow
Produce: (a) per-screen anticipated objections with prepared answers; (b) alternatives to bring (including the ones you rejected and the ones they'll suggest); (c) data/test evidence ready but held back until needed; (d) who supports you and what you'll ask them; (e) the follow-up skeleton. Templates: design-rationale.md, meeting-followup.md.
INTAKE workflow
Open with the book's first question — "What are we trying to communicate?" — then walk templates/project-intake-checklist.md. Insist on: one measurable metric, named primary users and their primary pain, one named decision-maker (no committees), and a plan to observe real users. Then propose the research/prototyping path from research-and-process.md sized to the project.
Quality bar for any output of this skill
- Specific over generic: name the element, the rule, and the number (px, ratio, character count) where a number exists.
- Short: audits ≤ 1 page unless asked; responses ≤ 200 words unless a full case is requested.
- Honest about uncertainty: assumptions flagged, evidence rung named.
- Ends with a next step the reader can act on.
Sources and attribution: see SOURCES.md.
1---2name: design-craft3description: UI/UX craft + design-decision communication skill, distilled from Albert Chipman's *UX/UI Design 2022* and Tom Greever's *Articulating Design Decisions*. Five modes: AUDIT a screen/component against visual-hierarchy, typography, readability, alignment/grid, consistency and microcopy rules; RATIONALE — write the 'Big Three' justification for any design decision (what problem it solves, how it affects the user, why it beats the alternative); RESPOND to design feedback or a stakeholder request with the IDEAL response (Thank→Repeat→Prepare, strategy, tactics, ask for agreement); PREP a design review (anticipated objections, alternatives, data, follow-up); INTAKE a new design project (goals, users, metrics, decision-maker). Use when the user says 'audit this UI', 'design review', 'looks amateur/unprofessional/AI-made', 'why did you design it this way', 'justify this design', 'the client/stakeholder wants X', 'present this design', 'readability', 'typography', 'visual hierarchy', 'microcopy', 'design rationale', or4license: MIT5---67# design-craft — make it good, then make it understood89Two halves, one skill:10111. **Craft** (Chipman): rules that make an interface read as designed rather than assembled —12 hierarchy, consistency, typography, readability, alignment/grid, microcopy, error handling.132. **Articulation** (Greever): every design decision must answer the **Big Three** —14 *What problem does it solve? How does it affect the user? Why is it better than the alternative?* —15 and be communicated so stakeholders agree and don't reopen it next week.1617Reference files are the source of truth; this file is the router. Read only the references a mode needs.1819## Non-negotiables (apply in every mode)2021- **"Works", never "like".** Strike *like / don't like / from a design perspective* from all output. Evaluate effectiveness against a goal, a use case, or a user, not preference. Rephrase the user's preference statements into effectiveness questions before answering them.22- **Evidence ladder — label which rung you're on.** `data` (analytics, A/B) › `user testing` (observed) › `external research` (cite title/author/url) › `established pattern / heuristic` › `informed intuition`. Never invent a number, a study, or a test result. If you have no evidence, say "assumption" and propose how to check it.23- **Every finding/decision cites a principle** from `references/` (e.g. *hierarchy: size/colour/contrast/space*, *≤2 typefaces, ≤3 colours*, *40–55 chars per line*). No "this feels off".24- **Lead with a yes.** Agree with the *problem* a request addresses before you negotiate the *solution*. Propose an alternative rather than refusing.25- **Alternatives are mandatory.** A recommendation without at least one considered alternative (and why it loses) is incomplete.26- **No dark patterns, no fabricated UI content.** Never recommend fake social proof, invented metrics, manufactured urgency, or placeholder data dressed as real.27- **Finish with agreement.** When presenting a decision, end with a direct, benefit-framed question ("Do you agree we should X to improve Y?") — not an open-ended "thoughts?".2829## Mode selection3031| Signal in the request | Mode | Read |32|---|---|---|33| "audit / review / critique this screen", "looks amateur", "why does this look wrong", screenshot or component path | **AUDIT** | `references/ui-principles.md`, `typography-readability.md`, `layout-grid-alignment.md`, `microcopy.md` |34| You are about to make or propose a design change (any size) | **RATIONALE** | `references/big-three-rationale.md`, `response-toolkit.md` §Common messages |35| User/stakeholder pushes back, asks "why", or requests a specific change ("add a button", "make the logo bigger") | **RESPOND** | `references/stakeholder-playbook.md`, `response-toolkit.md` |36| "prepare for the design review / client meeting / demo" | **PREP** | `references/stakeholder-playbook.md` §Prepare, `after-and-recovery.md` §Follow-up |37| New product/feature kickoff, brief writing, "what do you need from me" | **INTAKE** | `templates/project-intake-checklist.md`, `references/research-and-process.md` |38| Colour pairs / palette / typeface count questions | any | run `scripts/contrast.py`, `scripts/palette-audit.py` |3940Mixed requests: run AUDIT first, then RATIONALE for each fix you propose. If the `refactoring-ui` skill is installed, invoke it for the *visual polish execution* (spacing scales, shadows, palettes); this skill owns the principles audit and the communication.4142## AUDIT workflow43441. **Establish the frame before judging.** Identify the screen's *one primary job* (every screen should have a single main focus), the primary use case, the target user and the measurable goal. If unknown, state your assumption in one line — don't block.452. **Squint / grayscale pass.** Mentally (or with a screenshot desaturated) check: does the eye land on the primary action first, secondary second? Do exactly three text levels exist (headline › subhead › body) — two on mobile?463. **Walk the checklists** in this order, noting each violation as `[severity] principle — where — evidence — fix`:47 1. Hierarchy & focus (`ui-principles.md` §1–2)48 2. Consistency (appearance + behaviour) & familiarity (§3–4)49 3. Typography & readability (`typography-readability.md` — run `scripts/palette-audit.py` for typeface/colour counts; `scripts/contrast.py` for every text/background pair in doubt)50 4. Alignment & grid (`layout-grid-alignment.md`)51 5. Flow, effort & feedback: steps to complete the primary task, 3-click rule, loading/progress/error states (§5–8)52 6. Microcopy (`microcopy.md`)53 7. Responsive/adaptive behaviour (§9)544. **Severity:** `P0` blocks the primary task or misleads the user · `P1` hurts scanability/trust/conversion · `P2` polish. Cap the report at what matters; don't pad with P2s.555. **Output** with `templates/design-audit-report.md`. Each fix carries a one-line Big Three rationale so it can be defended later.566. Offer to implement fixes; don't implement unasked unless the user's request already implied it.5758## RATIONALE workflow5960For the decision at hand fill `templates/design-rationale.md`:61problem (tied to a named goal/metric) → solution → how it affects the user (story or observed behaviour) → alternatives considered and why they lose → evidence rung → the "common message" category it belongs to (business / design / research / limitation). Keep it to one screen of text. Write it *before* coding when the change is user-visible.6263## RESPOND workflow (feedback or change request arrives)64651. **Listen first.** Restate the request as a problem: "What I hear you saying is … Is that right?" Convert any *like/don't like* into *works/doesn't work*. Don't answer until the underlying need is identified (the stated solution is often not the need).662. **Transition: Thank → Repeat → Prepare** (one sentence each).673. **Strategy:** pick from *appeal to a nobler motive* (tie to their goal), *represent the user* (story), *demonstrate effectiveness* (show/prototype).684. **Tactic(s):** show a comparison · propose an alternative · give them a choice (state the trade-off honestly) · ask others to weigh in · postpone the decision. See `response-toolkit.md`.695. **Justify** with the IDEAL structure — **I**dentify the problem, **D**efine the solution, **E**mpathize with the user, **A**ppeal to the business, **L**ock in agreement — using the common-message catalogue and the `[design] will affect [goal] because [reason]` pattern.706. **Ask for agreement directly**, framed on the benefit.717. If overruled: apply `after-and-recovery.md` §Making changes you disagree with (make it subtle / an option / placed carefully / planned space). Record the decision and move on — no relitigating.7273Output with `templates/stakeholder-response.md` when the user wants text they can send; otherwise answer conversationally but in that order.7475## PREP workflow7677Produce: (a) per-screen anticipated objections with prepared answers; (b) alternatives to bring (including the ones you rejected and the ones they'll suggest); (c) data/test evidence ready but held back until needed; (d) who supports you and what you'll ask them; (e) the follow-up skeleton. Templates: `design-rationale.md`, `meeting-followup.md`.7879## INTAKE workflow8081Open with the book's first question — *"What are we trying to communicate?"* — then walk `templates/project-intake-checklist.md`. Insist on: one measurable metric, named primary users and their primary pain, one named decision-maker (no committees), and a plan to observe real users. Then propose the research/prototyping path from `research-and-process.md` sized to the project.8283## Quality bar for any output of this skill8485- Specific over generic: name the element, the rule, and the number (px, ratio, character count) where a number exists.86- Short: audits ≤ 1 page unless asked; responses ≤ 200 words unless a full case is requested.87- Honest about uncertainty: assumptions flagged, evidence rung named.88- Ends with a next step the reader can act on.8990Sources and attribution: see `SOURCES.md`.