@ericrisco/rsc 3.3.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/manifest.json +43 -22
- package/package.json +1 -1
- package/scripts/lib/default-skill-floor.js +5 -1
- package/scripts/lib/domains.js +2 -2
- package/scripts/lib/retired-skills.js +4 -0
- package/skills/design/SKILL.md +4 -3
- package/skills/design/evals/cases.yaml +2 -2
- package/skills/react/SKILL.md +2 -1
- package/skills/suggest/SKILL.md +12 -8
- package/skills/suggest/evals/cases.yaml +6 -0
- package/skills/ux/SKILL.md +149 -0
- package/skills/ux/THIRD_PARTY.md +32 -0
- package/skills/ux/evals/cases.yaml +40 -0
- package/skills/ux/references/flows.md +124 -0
- package/skills/ux/upstream/UPSTREAM.json +59 -0
- package/skills/ux/upstream/ux-designer/GUIDE.md +180 -0
- package/skills/ux/upstream/ux-designer/LICENSE +21 -0
- package/skills/ux/upstream/ux-designer/references/01-core-principles.md +251 -0
- package/skills/ux/upstream/ux-designer/references/02-laws-of-ux.md +330 -0
- package/skills/ux/upstream/ux-designer/references/03-accessibility.md +411 -0
- package/skills/ux/upstream/ux-designer/references/04-visual-design.md +433 -0
- package/skills/ux/upstream/ux-designer/references/05-information-architecture.md +432 -0
- package/skills/ux/upstream/ux-designer/references/06-interaction-design.md +495 -0
- package/skills/ux/upstream/ux-designer/references/07-forms-and-inputs.md +491 -0
- package/skills/ux/upstream/ux-designer/references/08-mobile-ux.md +539 -0
- package/skills/ux/upstream/ux-designer/references/09-ux-writing.md +493 -0
- package/skills/ux/upstream/ux-designer/references/10-user-research.md +533 -0
- package/skills/ux/upstream/ux-designer/references/11-design-systems.md +618 -0
- package/skills/ux/upstream/ux-designer/references/12a-presence-awareness.md +395 -0
- package/skills/ux/upstream/ux-designer/references/12b-conflict-resolution-sync.md +420 -0
- package/skills/ux/upstream/ux-designer/references/13a-canvas-navigation.md +388 -0
- package/skills/ux/upstream/ux-designer/references/13b-canvas-objects-performance.md +559 -0
- package/skills/ux/upstream/ux-designer/references/14-ai-ux-patterns.md +511 -0
- package/skills/ux/upstream/ux-designer/references/15-ethical-design.md +419 -0
- package/skills/ux/upstream/ux-designer/references/16-onboarding.md +430 -0
- package/skills/ux/upstream/ux-designer/references/17-notifications.md +461 -0
- package/skills/ux/upstream/ux-designer/references/18-data-visualization.md +453 -0
- package/skills/ux/upstream/ux-designer/references/19-search-ux.md +479 -0
- package/skills/ux/upstream/ux-designer/references/20-emotional-design.md +382 -0
- package/skills/ux/upstream/ux-designer/references/21-data-tables.md +629 -0
- package/skills/ux/upstream/ux-designer/references/22-performance-ux.md +626 -0
- package/skills/ux/upstream/ux-designer/references/23-internationalization.md +347 -0
- package/skills/ux/upstream/ux-designer/references/24-voice-and-multimodal.md +308 -0
- package/skills/ux/upstream/ux-designer/references/25a-barcode-camera-scanning.md +342 -0
- package/skills/ux/upstream/ux-designer/references/25b-barcode-scanner-workflows.md +412 -0
- package/skills/ux/upstream/ux-designer/references/25c-barcode-display.md +277 -0
- package/skills/ux/upstream/ux-usability-foundations/GUIDE.md +285 -0
- package/skills/ux/upstream/ux-usability-foundations/LICENSE +21 -0
- package/skills/ux/upstream/ux-usability-foundations/references/anti-patterns.md +267 -0
- package/skills/ux/upstream/ux-usability-foundations/references/checklists.md +130 -0
- package/skills/ux/upstream/ux-usability-foundations/references/decision-prompts.md +340 -0
- package/skills/ux/upstream/ux-usability-foundations/references/principle-cards.md +449 -0
- package/targets/clone-bootstrap.mjs +1 -1
- package/skills/ui-engineering/SKILL.md +0 -113
- package/skills/ui-engineering/evals/cases.yaml +0 -38
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
# Anti-patterns — UX Usability Foundations
|
|
2
|
+
|
|
3
|
+
## Anti-pattern: Starting with the shell
|
|
4
|
+
|
|
5
|
+
What it looks like:
|
|
6
|
+
- The design starts with nav bars, sidebars, dashboards, and layout chrome before the primary feature or task is defined.
|
|
7
|
+
|
|
8
|
+
Why it fails:
|
|
9
|
+
- The shell may optimize for an imagined product structure rather than the user’s actual goal.
|
|
10
|
+
|
|
11
|
+
Better approach:
|
|
12
|
+
- Start with the feature/task and design the smallest successful path. Add navigation and shell structure after core tasks are understood.
|
|
13
|
+
|
|
14
|
+
Ask the user when:
|
|
15
|
+
- The product has multiple competing primary audiences or workflows.
|
|
16
|
+
|
|
17
|
+
## Anti-pattern: Clever labels over obvious labels
|
|
18
|
+
|
|
19
|
+
What it looks like:
|
|
20
|
+
- Buttons and navigation use branded, cute, internal, or technical terms instead of plain user-language labels.
|
|
21
|
+
|
|
22
|
+
Why it fails:
|
|
23
|
+
- Users pause to decode meaning and may choose the wrong path.
|
|
24
|
+
|
|
25
|
+
Better approach:
|
|
26
|
+
- Use direct task labels; express brand voice in supporting copy.
|
|
27
|
+
|
|
28
|
+
Ask the user when:
|
|
29
|
+
- Legal, brand, or domain vocabulary is mandatory.
|
|
30
|
+
|
|
31
|
+
## Anti-pattern: Hidden primary action
|
|
32
|
+
|
|
33
|
+
What it looks like:
|
|
34
|
+
- The main task is behind an overflow menu, icon-only button, hidden gesture, drawer, hover state, or long press.
|
|
35
|
+
|
|
36
|
+
Why it fails:
|
|
37
|
+
- Users cannot act if they cannot discover the action.
|
|
38
|
+
|
|
39
|
+
Better approach:
|
|
40
|
+
- Show primary actions as visible labeled controls. Reserve hidden menus for secondary or infrequent actions.
|
|
41
|
+
|
|
42
|
+
Ask the user when:
|
|
43
|
+
- Severe space constraints exist.
|
|
44
|
+
|
|
45
|
+
## Anti-pattern: Ambiguous clickability
|
|
46
|
+
|
|
47
|
+
What it looks like:
|
|
48
|
+
- Text, cards, icons, images, or rows may or may not be clickable; interactive and static elements share the same treatment.
|
|
49
|
+
|
|
50
|
+
Why it fails:
|
|
51
|
+
- Users waste attention testing the interface instead of doing the task.
|
|
52
|
+
|
|
53
|
+
Better approach:
|
|
54
|
+
- Make links and buttons visually distinct; provide hover/focus/active states and accessible names.
|
|
55
|
+
|
|
56
|
+
Ask the user when:
|
|
57
|
+
- A brand system intentionally minimizes control styling.
|
|
58
|
+
|
|
59
|
+
## Anti-pattern: Icon-only mystery controls
|
|
60
|
+
|
|
61
|
+
What it looks like:
|
|
62
|
+
- Important actions are represented only by icons that are not universally recognized.
|
|
63
|
+
|
|
64
|
+
Why it fails:
|
|
65
|
+
- Icons are often ambiguous and require recall or experimentation.
|
|
66
|
+
|
|
67
|
+
Better approach:
|
|
68
|
+
- Pair icons with labels for primary, consequential, or unfamiliar actions. Ensure accessible names.
|
|
69
|
+
|
|
70
|
+
Ask the user when:
|
|
71
|
+
- The UI must fit a dense expert toolbar.
|
|
72
|
+
|
|
73
|
+
## Anti-pattern: Equal-weight action soup
|
|
74
|
+
|
|
75
|
+
What it looks like:
|
|
76
|
+
- Primary, secondary, tertiary, and destructive actions all look equally prominent.
|
|
77
|
+
|
|
78
|
+
Why it fails:
|
|
79
|
+
- Users must compare actions that should have been prioritized for them.
|
|
80
|
+
|
|
81
|
+
Better approach:
|
|
82
|
+
- Establish action hierarchy. Make the primary action obvious, secondary actions quieter, and destructive actions separated or delayed to confirmation/review.
|
|
83
|
+
|
|
84
|
+
Ask the user when:
|
|
85
|
+
- The primary action differs by role or object state.
|
|
86
|
+
|
|
87
|
+
## Anti-pattern: Asking users to think like the database
|
|
88
|
+
|
|
89
|
+
What it looks like:
|
|
90
|
+
- Navigation, forms, filters, and object labels mirror tables, internal statuses, IDs, queues, or org structures.
|
|
91
|
+
|
|
92
|
+
Why it fails:
|
|
93
|
+
- Users must translate implementation details into task meaning.
|
|
94
|
+
|
|
95
|
+
Better approach:
|
|
96
|
+
- Model objects and actions around user goals and domain concepts.
|
|
97
|
+
|
|
98
|
+
Ask the user when:
|
|
99
|
+
- Users are technical operators who explicitly need implementation-level control.
|
|
100
|
+
|
|
101
|
+
## Anti-pattern: Forcing nonhierarchical data into trees
|
|
102
|
+
|
|
103
|
+
What it looks like:
|
|
104
|
+
- A tree control is used for objects that are not naturally hierarchical.
|
|
105
|
+
|
|
106
|
+
Why it fails:
|
|
107
|
+
- Users cannot find items that belong to multiple categories or relationships.
|
|
108
|
+
|
|
109
|
+
Better approach:
|
|
110
|
+
- Use search, filters, tags, tables, graphs, network views, or grouped lists based on the real relationship.
|
|
111
|
+
|
|
112
|
+
Ask the user when:
|
|
113
|
+
- The domain relationship may genuinely be hierarchical.
|
|
114
|
+
|
|
115
|
+
## Anti-pattern: Choice wall
|
|
116
|
+
|
|
117
|
+
What it looks like:
|
|
118
|
+
- A page presents many equal options, filters, settings, plans, or actions with no grouping, default, or recommended path.
|
|
119
|
+
|
|
120
|
+
Why it fails:
|
|
121
|
+
- Decision time and abandonment increase; users satisfice unpredictably.
|
|
122
|
+
|
|
123
|
+
Better approach:
|
|
124
|
+
- Group choices, set safe defaults, recommend common paths, and progressively disclose advanced options.
|
|
125
|
+
|
|
126
|
+
Ask the user when:
|
|
127
|
+
- Users must compare many options simultaneously.
|
|
128
|
+
|
|
129
|
+
## Anti-pattern: Placeholder-only labels
|
|
130
|
+
|
|
131
|
+
What it looks like:
|
|
132
|
+
- Form fields rely on placeholder text that disappears after typing.
|
|
133
|
+
|
|
134
|
+
Why it fails:
|
|
135
|
+
- Users lose field meaning during review and correction; assistive technology support may be poor.
|
|
136
|
+
|
|
137
|
+
Better approach:
|
|
138
|
+
- Use persistent labels and supplemental hints.
|
|
139
|
+
|
|
140
|
+
Ask the user when:
|
|
141
|
+
- The user wants a very compact expert form.
|
|
142
|
+
|
|
143
|
+
## Anti-pattern: Validation as punishment
|
|
144
|
+
|
|
145
|
+
What it looks like:
|
|
146
|
+
- Users complete a form, submit, lose work, and receive vague errors.
|
|
147
|
+
|
|
148
|
+
Why it fails:
|
|
149
|
+
- The interface turns preventable problems into user blame and rework.
|
|
150
|
+
|
|
151
|
+
Better approach:
|
|
152
|
+
- Explain requirements before entry, validate at appropriate moments, preserve input, and guide direct correction.
|
|
153
|
+
|
|
154
|
+
Ask the user when:
|
|
155
|
+
- Validation details are security-sensitive or regulated.
|
|
156
|
+
|
|
157
|
+
## Anti-pattern: Confirmation spam
|
|
158
|
+
|
|
159
|
+
What it looks like:
|
|
160
|
+
- The interface asks “Are you sure?” for routine, reversible actions.
|
|
161
|
+
|
|
162
|
+
Why it fails:
|
|
163
|
+
- Users habituate and click through; confirmations become noise.
|
|
164
|
+
|
|
165
|
+
Better approach:
|
|
166
|
+
- Use undo for reversible actions and confirmation only for irreversible or high-risk actions.
|
|
167
|
+
|
|
168
|
+
Ask the user when:
|
|
169
|
+
- Reversibility and consequences are unclear.
|
|
170
|
+
|
|
171
|
+
## Anti-pattern: Loud but uninformative feedback
|
|
172
|
+
|
|
173
|
+
What it looks like:
|
|
174
|
+
- Toasts, modals, beeps, spinners, or animations appear often but do not explain state or next steps.
|
|
175
|
+
|
|
176
|
+
Why it fails:
|
|
177
|
+
- Feedback becomes distracting noise, and users still do not know what happened.
|
|
178
|
+
|
|
179
|
+
Better approach:
|
|
180
|
+
- Use proportionate, informative, state-specific feedback.
|
|
181
|
+
|
|
182
|
+
Ask the user when:
|
|
183
|
+
- Operational alerts compete for attention in monitoring or safety contexts.
|
|
184
|
+
|
|
185
|
+
## Anti-pattern: Silent system state
|
|
186
|
+
|
|
187
|
+
What it looks like:
|
|
188
|
+
- Save, sync, upload, offline, background job, filter, or permission status is hidden.
|
|
189
|
+
|
|
190
|
+
Why it fails:
|
|
191
|
+
- Users retry, duplicate, navigate away, or lose trust.
|
|
192
|
+
|
|
193
|
+
Better approach:
|
|
194
|
+
- Show current state, pending work, success/failure, and safe next actions.
|
|
195
|
+
|
|
196
|
+
Ask the user when:
|
|
197
|
+
- State visibility may reveal sensitive information.
|
|
198
|
+
|
|
199
|
+
## Anti-pattern: Disabled with no explanation
|
|
200
|
+
|
|
201
|
+
What it looks like:
|
|
202
|
+
- A button is greyed out and users cannot tell why or how to enable it.
|
|
203
|
+
|
|
204
|
+
Why it fails:
|
|
205
|
+
- Users must guess missing requirements.
|
|
206
|
+
|
|
207
|
+
Better approach:
|
|
208
|
+
- Keep the action enabled and explain missing requirements on click, or show inline requirements near the disabled control.
|
|
209
|
+
|
|
210
|
+
Ask the user when:
|
|
211
|
+
- Compliance or system constraints require disabled controls.
|
|
212
|
+
|
|
213
|
+
## Anti-pattern: Color-only meaning
|
|
214
|
+
|
|
215
|
+
What it looks like:
|
|
216
|
+
- Error, success, required, selected, active, or risk states are communicated only by color.
|
|
217
|
+
|
|
218
|
+
Why it fails:
|
|
219
|
+
- Color perception varies, and assistive technologies may not communicate color meaning.
|
|
220
|
+
|
|
221
|
+
Better approach:
|
|
222
|
+
- Pair color with text, icon, position, shape, or programmatic state.
|
|
223
|
+
|
|
224
|
+
Ask the user when:
|
|
225
|
+
- A design system currently encodes states with color only.
|
|
226
|
+
|
|
227
|
+
## Anti-pattern: Custom widget without interaction contract
|
|
228
|
+
|
|
229
|
+
What it looks like:
|
|
230
|
+
- A custom dropdown, combobox, carousel, tabs, dialog, drag/drop area, or menu is designed visually but lacks keyboard, focus, screen-reader, and state behavior.
|
|
231
|
+
|
|
232
|
+
Why it fails:
|
|
233
|
+
- It may look usable but fail for keyboard, assistive tech, mobile, and edge states.
|
|
234
|
+
|
|
235
|
+
Better approach:
|
|
236
|
+
- Use native elements or specify role, state, keyboard interaction, focus management, and error/loading behavior.
|
|
237
|
+
|
|
238
|
+
Ask the user when:
|
|
239
|
+
- The custom behavior is essential.
|
|
240
|
+
|
|
241
|
+
## Anti-pattern: Permanent beginner UI
|
|
242
|
+
|
|
243
|
+
What it looks like:
|
|
244
|
+
- Tooltips, tours, popovers, or instructional panels keep appearing after users understand the basics.
|
|
245
|
+
|
|
246
|
+
Why it fails:
|
|
247
|
+
- Beginner help becomes friction for intermediate users.
|
|
248
|
+
|
|
249
|
+
Better approach:
|
|
250
|
+
- Provide task-focused, dismissible, temporary help; support reference help separately.
|
|
251
|
+
|
|
252
|
+
Ask the user when:
|
|
253
|
+
- Users are legally required to acknowledge training or guidance.
|
|
254
|
+
|
|
255
|
+
## Anti-pattern: Dark pattern disguised as usability
|
|
256
|
+
|
|
257
|
+
What it looks like:
|
|
258
|
+
- Defaults, friction, wording, hierarchy, or hidden actions steer users into outcomes that benefit the business against user interests.
|
|
259
|
+
|
|
260
|
+
Why it fails:
|
|
261
|
+
- It violates user trust and the ethical role of usability as user advocacy.
|
|
262
|
+
|
|
263
|
+
Better approach:
|
|
264
|
+
- Make choices clear, reversible, and honest; align persuasion with user goals.
|
|
265
|
+
|
|
266
|
+
Ask the user when:
|
|
267
|
+
- The requested change appears manipulative or coercive.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Checklists — UX Usability Foundations
|
|
2
|
+
|
|
3
|
+
## Discovery/context checklist
|
|
4
|
+
|
|
5
|
+
- [ ] The primary user type is identified.
|
|
6
|
+
- [ ] The primary task and success condition are stated.
|
|
7
|
+
- [ ] Task frequency is known or reasonably assumed.
|
|
8
|
+
- [ ] The user’s likely knowledge level is known.
|
|
9
|
+
- [ ] Platform and input methods are known.
|
|
10
|
+
- [ ] High-risk actions are identified.
|
|
11
|
+
- [ ] Required domain, legal, compliance, or brand terms are identified.
|
|
12
|
+
- [ ] Business goals are separated from user goals.
|
|
13
|
+
- [ ] Technical constraints are separated from user-facing requirements.
|
|
14
|
+
- [ ] The agent has not asked for routine best-practice decisions.
|
|
15
|
+
|
|
16
|
+
## Core usability quality checklist
|
|
17
|
+
|
|
18
|
+
- [ ] The screen’s purpose is understandable at a glance.
|
|
19
|
+
- [ ] The primary action is easy to find and meaningful.
|
|
20
|
+
- [ ] Secondary actions are available but visually quieter.
|
|
21
|
+
- [ ] Destructive actions are separated from safe actions.
|
|
22
|
+
- [ ] Important controls look interactive without relying on hover.
|
|
23
|
+
- [ ] Noninteractive elements do not look clickable/editable.
|
|
24
|
+
- [ ] Labels use user language.
|
|
25
|
+
- [ ] Ambiguous icons have labels or accessible text.
|
|
26
|
+
- [ ] Related items are grouped by proximity, headings, or shared visual treatment.
|
|
27
|
+
- [ ] Users are not required to remember prior instructions or hidden state.
|
|
28
|
+
- [ ] Users can recognize options at the point of decision.
|
|
29
|
+
- [ ] Visible choices are appropriate for the task.
|
|
30
|
+
- [ ] Advanced/rare options are progressively disclosed.
|
|
31
|
+
- [ ] The system does not ask for information it can infer safely.
|
|
32
|
+
- [ ] Empty states explain what is missing and what to do next.
|
|
33
|
+
- [ ] Loading states indicate work is happening.
|
|
34
|
+
- [ ] Success states make completion clear when the result is not visible.
|
|
35
|
+
|
|
36
|
+
## Navigation and orientation checklist
|
|
37
|
+
|
|
38
|
+
- [ ] Users can tell where they are.
|
|
39
|
+
- [ ] Users can tell what object/account/context they are editing.
|
|
40
|
+
- [ ] The current section/view is visibly marked.
|
|
41
|
+
- [ ] Major navigation labels are descriptive and stable.
|
|
42
|
+
- [ ] Breadcrumbs or equivalent orientation exist for deep hierarchies.
|
|
43
|
+
- [ ] Back behavior preserves useful context.
|
|
44
|
+
- [ ] Tabs represent peer sections, not arbitrary actions.
|
|
45
|
+
- [ ] Drawers/menus do not hide frequently needed primary actions.
|
|
46
|
+
- [ ] Multi-step flows show progress and back/exit rules.
|
|
47
|
+
- [ ] Search and filters show active criteria and make clearing easy.
|
|
48
|
+
|
|
49
|
+
## Forms and data-entry checklist
|
|
50
|
+
|
|
51
|
+
- [ ] Every input has a persistent label.
|
|
52
|
+
- [ ] Placeholder text is not the only label.
|
|
53
|
+
- [ ] Required and optional fields are clear.
|
|
54
|
+
- [ ] The form asks only for information needed now.
|
|
55
|
+
- [ ] Field order follows task order.
|
|
56
|
+
- [ ] Input type, autocomplete, inputmode, and constraints match the data.
|
|
57
|
+
- [ ] Help text appears before or during entry.
|
|
58
|
+
- [ ] Validation is not too early or too late.
|
|
59
|
+
- [ ] Error messages are near affected fields.
|
|
60
|
+
- [ ] Error messages say what happened and how to fix it.
|
|
61
|
+
- [ ] Invalid input remains visible and editable.
|
|
62
|
+
- [ ] User-entered data is preserved across errors and interruptions.
|
|
63
|
+
- [ ] Submit actions prevent accidental duplicates.
|
|
64
|
+
- [ ] Confirmation/review is used for irreversible or consequential submissions.
|
|
65
|
+
|
|
66
|
+
## Feedback, status, and recovery checklist
|
|
67
|
+
|
|
68
|
+
- [ ] Every consequential action has immediate feedback.
|
|
69
|
+
- [ ] Feedback is proportionate to importance and risk.
|
|
70
|
+
- [ ] Routine feedback is quiet.
|
|
71
|
+
- [ ] Blocking problems are prominent and persistent.
|
|
72
|
+
- [ ] Long operations show progress or background status.
|
|
73
|
+
- [ ] Users know whether they can safely continue, retry, cancel, or close.
|
|
74
|
+
- [ ] Save/sync/offline states are visible when integrity matters.
|
|
75
|
+
- [ ] Undo exists for reversible actions.
|
|
76
|
+
- [ ] Confirmations are reserved for irreversible/high-risk actions.
|
|
77
|
+
- [ ] Confirmation copy names the object and consequence.
|
|
78
|
+
- [ ] Recovery does not require starting over.
|
|
79
|
+
- [ ] Support/error codes are secondary to recovery guidance.
|
|
80
|
+
|
|
81
|
+
## Accessibility checklist
|
|
82
|
+
|
|
83
|
+
- [ ] Semantic HTML or native controls are used where possible.
|
|
84
|
+
- [ ] Buttons are actions; links are navigation.
|
|
85
|
+
- [ ] All controls have accessible names.
|
|
86
|
+
- [ ] Labels, hints, and errors are associated with controls.
|
|
87
|
+
- [ ] Keyboard users can reach and operate all controls.
|
|
88
|
+
- [ ] Focus order matches visual/task order.
|
|
89
|
+
- [ ] Focus indicators are visible.
|
|
90
|
+
- [ ] Dialogs trap and restore focus.
|
|
91
|
+
- [ ] Expanded/collapsed/selected/current states are exposed.
|
|
92
|
+
- [ ] Async status, validation, and errors are announced appropriately.
|
|
93
|
+
- [ ] Color is not the only cue.
|
|
94
|
+
- [ ] Text has sufficient contrast and can zoom/reflow.
|
|
95
|
+
- [ ] Touch targets support motor variability.
|
|
96
|
+
- [ ] Motion respects reduced-motion preferences.
|
|
97
|
+
- [ ] Time limits can be paused, extended, or justified.
|
|
98
|
+
|
|
99
|
+
## Frontend implementation feasibility checklist
|
|
100
|
+
|
|
101
|
+
- [ ] All UI states are named.
|
|
102
|
+
- [ ] Async operations have pending, success, failure, retry, cancel, and offline behavior as relevant.
|
|
103
|
+
- [ ] Error handling covers client validation, server validation, permissions, and network failures.
|
|
104
|
+
- [ ] Component APIs include labels, descriptions, error text, disabled/read-only reasons, and loading states.
|
|
105
|
+
- [ ] Custom components include keyboard interaction specs.
|
|
106
|
+
- [ ] State changes update accessible names/roles/states.
|
|
107
|
+
- [ ] Routes preserve context where appropriate.
|
|
108
|
+
- [ ] Responsive behavior preserves task clarity.
|
|
109
|
+
- [ ] Performance supports quick feedback and low interaction latency.
|
|
110
|
+
|
|
111
|
+
## Critique checklist
|
|
112
|
+
|
|
113
|
+
- [ ] Issues are ranked by task impact, severity, frequency, and fix effort.
|
|
114
|
+
- [ ] Each issue includes evidence from the interface.
|
|
115
|
+
- [ ] Each fix explains how it reduces cognitive load, prevents error, or improves recovery.
|
|
116
|
+
- [ ] High-risk issues are separated from cosmetic issues.
|
|
117
|
+
- [ ] Accessibility issues are treated as product behavior issues.
|
|
118
|
+
- [ ] The critique includes quick wins and deeper structural fixes.
|
|
119
|
+
- [ ] The critique avoids shaming the original designer/team.
|
|
120
|
+
|
|
121
|
+
## Final response checklist
|
|
122
|
+
|
|
123
|
+
- [ ] The recommendation states the likely user goal.
|
|
124
|
+
- [ ] The answer gives a clear default.
|
|
125
|
+
- [ ] Tradeoffs are explicit.
|
|
126
|
+
- [ ] Any necessary user question is specific and includes a recommended default.
|
|
127
|
+
- [ ] Accessibility and edge states are covered when relevant.
|
|
128
|
+
- [ ] Frontend behavior is specified enough for implementation when relevant.
|
|
129
|
+
- [ ] Long copyrighted quotes are avoided.
|
|
130
|
+
- [ ] Recommendations are explained in terms of usability, not taste.
|