| name | critique-microcopy |
| description | Reviews error messages, empty states, and other short microcopy strings, including screens annotated with placement, container, timing, and behavior context, against NN/g's error-message guidelines: plain language, specificity, constructive next steps, neutral tone, and recovery grace. Judges the message text itself, not the surrounding screen's flow, controls, or confirmation behavior (critique-usability covers that). Use when the user asks for a review, feedback, a second opinion, a red-line pass, or a quality check on error copy, empty-state copy, form validation messages, or other short UI text before it ships. |
| version | 0.1.0 |
| license | Apache-2.0 |
| rubric_sources | [{"id":"NNG-EM","citation":"Neusesser, T. and Sunwall, E. (2023). Error-Message Guidelines. Nielsen Norman Group. Published May 14, 2023.","url":"https://www.nngroup.com/articles/error-message-guidelines/","accessed":"2026-07-31T00:00:00.000Z","operationalization":"paraphrased"}] |
| checks | {"scripted":["NNG-EM-NOT-COLOR-ONLY","NNG-EM-TIMING","NNG-EM-PLAIN-LANGUAGE","NNG-EM-CONSTRUCTIVE","NNG-EM-NEUTRAL-TONE","NNG-EM-PRESERVE-INPUT"],"judged":["NNG-EM-PROXIMITY","NNG-EM-SALIENT","NNG-EM-SEVERITY-CONTAINER","NNG-EM-PREVENT","NNG-EM-SELECTABLE-FIX","NNG-EM-EXPLAIN","NNG-EM-GRACE","NNG-EM-SPECIFIC"]} |
critique-microcopy
Reviews error messages, empty states, and other short user-facing microcopy strings against NN/g's
error-message guidelines, operationalized into the 14 NNG-EM-* criteria in
references/NNG-EM.md: where and how prominently a message appears, what it says, how much work it
leaves the reader, and whether a total failure still leaves some goodwill.
Narrow artifact claim. This skill's artifact format is annotated screens described in text,
placement, container, timing, and behavior notated alongside each message, per
ADR 0018 (microcopy artifact format),
which chose that format over a bare string list precisely because eight of the fourteen criteria have
nothing to read without it. A bare list of strings is still accepted as degraded input, at the
coverage cost pass 2 below states; it is not the format this skill is measured on. Either way, this
skill does not critique live applications or rendered screenshots: a screen's context arrives as
structured text annotation, never as an image, and "the button looked wrong" is out of scope because
nothing in the artifact states what the button looked like. See references/NNG-EM.md, "Artifact
format", for the exact annotation grammar.
Contract
Every finding this skill emits conforms to contract/critique-contract.schema.json. See
docs/reference/critique-contract.md for the field contracts a schema cannot check on its own:
location navigable unaided, evidence quoted or measured rather than characterized, violation naming
the breach, fix actionable and specific.
Protocol
Follow these four passes in order. Do not skip ahead to severity or fixes while still sweeping.
-
Inventory. Map the artifact's structure (sections, headings, components, whatever the
artifact type has). No judgments yet, no findings yet. This pass exists so the sweep in step 2
does not anchor on whatever was noticed first.
-
Criterion sweep, in ID order. Walk every criterion in checks.scripted and checks.judged,
in ascending ID order, evaluating each against the whole artifact before moving to the next.
Run the scripted lane via scripts/checks.py <artifact>; perform the judged lane yourself,
criterion by criterion, in the same fixed order.
One-time prerequisite: pip install "jsonschema>=4.20,<5". Claude Code's /plugin install
does not install Python packages, and checks.py names this command itself if the package
is absent.