@ryuxdsgn/design-intelligence 0.0.0-stage → 2.6.1

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.
@@ -0,0 +1,171 @@
1
+ import { CAPTURE_TABLE } from "./capture.js";
2
+ // RYUX Critique: the review workflow. It orchestrates Analyze, the knowledge skills, and RYUX
3
+ // Knowledge into findings. Source of truth for skills/ryux-critique/SKILL.md (group "critique").
4
+ export const CRITIQUE_DESCRIPTION = "RYUX Critique - senior UX and UI design critique for Figma, pen.dev, websites, screenshots, and built interfaces. Analyzes first, runs a Design Read across nine dimensions, then reports prioritized findings with severity, evidence, impact, recommendation, confidence, and source, plus what to keep. Use when asked to critique, review, or audit a UI, screen, or flow.";
5
+ export const CRITIQUE_BODY = `# RYUX Critique
6
+
7
+ > Get a senior design critique before your users do.
8
+
9
+ Critique answers "does this interface make sense, and what should change first?" It judges
10
+ decisions; it is not Analyze (what exists) or QA (does the build match its design). It is an
11
+ orchestrator, not a pile of rules: it analyzes the design, reasons with the RYUX knowledge modules,
12
+ pulls evidence from RYUX Knowledge, and reports findings someone can act on.
13
+
14
+ \`\`\`
15
+ Critique
16
+ ↓
17
+ Analyze what is actually there
18
+ ↓
19
+ knowledge modules ux, ui, interaction, forms, content, accessibility,
20
+ responsive, design-system, edge-cases, anti-slop
21
+ ↓
22
+ RYUX Knowledge real product screens (search_screens, heuristic_eval)
23
+ ↓
24
+ findings
25
+ \`\`\`
26
+
27
+ ## Principles
28
+
29
+ 1. **Review what you can see.** Capture the real design first. Never review from a description
30
+ alone when the source is reachable.
31
+ 2. **Read-only.** Do not edit the Figma file, the pen.dev document, or the site.
32
+ 3. **Evidence over taste.** Every finding names its source; severity 3 or more needs a real
33
+ comparison \`screen_id\` when the ryux MCP is connected.
34
+ 4. **Honest scope.** A static frame shows no hover, focus, loading, or narrow widths. Say what was
35
+ not tested, and lower the confidence of anything inferred.
36
+ 5. **Concise and prioritized.** At most 12 findings; the ones that hurt users most come first.
37
+
38
+ ## Steps
39
+
40
+ ### 1. Context
41
+
42
+ Who the user is, what task happens on this screen, the platform, and the point in the flow. If the
43
+ request does not say, infer it from the design and list it as an assumption.
44
+
45
+ ### 2. Analyze first
46
+
47
+ Run Analyze (\`ryux-analyze\`: capture plus inventory) or reuse an analysis that already exists. Its
48
+ labeled inventory (Measured, Observed, Inferred) is what the findings point at. For a quick
49
+ critique, capture the design with this table and note what you saw:
50
+
51
+ ${CAPTURE_TABLE}
52
+
53
+ ### 3. Design Read
54
+
55
+ Rate each dimension **Strong**, **Adequate**, or **Weak**, with one sentence of reason.
56
+
57
+ | Dimension | Question |
58
+ | --- | --- |
59
+ | Clarity | Can the user understand what this screen is for? |
60
+ | Hierarchy | Can the user identify what matters first? |
61
+ | Coherence | Does it feel like part of the same product? |
62
+ | Density | Is the information density right for how often and how carefully it is used? |
63
+ | Confidence | Does the user have enough information to act safely (cost, consequence, status)? |
64
+ | Efficiency | Can the task be done without unnecessary work? |
65
+ | Specificity | Does it feel designed for this product, or could it belong to any generic SaaS app? |
66
+ | Recoverability | Can users recover from mistakes and failures? |
67
+ | Accessibility | Can people with different abilities and input methods operate and understand it? |
68
+
69
+ ### 4. Fact check
70
+
71
+ List every product fact the design states: names of features, tools, and commands, integrations,
72
+ supported platforms, numbers, dates, prices, people, and claims. Mark each one sourced (the brief,
73
+ the repo, the product's docs, a screen_id) or unsourced. Every unsourced fact is a finding under
74
+ RX-PR-02 or RX-AS-01, even when it looks plausible, and even inside a sample or example panel.
75
+
76
+ ### 5. Evaluate by category
77
+
78
+ Read the knowledge modules that apply and walk the design with their rules. [Required] rules are the
79
+ gate, [Preferred] rules need a reason when broken, and [Contextual] rules count only when their
80
+ situation is present. Use their "Not when" lines so a rule is not applied mechanically.
81
+
82
+ | Category | Skill | Look for |
83
+ | --- | --- | --- |
84
+ | Product | ryux-product | stated purpose, one primary action, invented facts |
85
+ | UX | ryux-ux | structure, wayfinding, grouping, disclosure, steps |
86
+ | Interaction | ryux-interaction | before, during, result, recovery; confirm or undo; cost upfront; local payments |
87
+ | Forms | ryux-forms | labels, validation, input kept, submission states |
88
+ | Content | ryux-content | specific labels, errors, terminology, Rupiah, dates and numbers |
89
+ | UI | ryux-ui | hierarchy, scale, color roles, density; each visual's job, composition around the copy, motion level; the result against its Visual Brief when there is one |
90
+ | Design system | ryux-design-system | consistency, tokens, component states |
91
+ | Accessibility | ryux-accessibility | contrast, targets, focus, names, color alone |
92
+ | Responsive | ryux-responsive | what changes, stays, disappears, or stacks across widths |
93
+ | Edge cases | ryux-edge-cases | empty, error, loading, long text, permissions |
94
+ | Anti-slop | ryux-anti-slop | invented numbers or people, fake urgency, unjustified decoration |
95
+
96
+ ### 6. Evidence from RYUX Knowledge
97
+
98
+ With the ryux MCP connected, find 1 to 3 comparison screens for each major finding with
99
+ \`search_screens\`, then send the findings to \`heuristic_eval\` (\`task_context\` + \`findings\`).
100
+ Its \`heuristic\` field takes the Nielsen codes \`H-01\` to \`H-10\`; map each finding and name the
101
+ RYUX rule in \`issue\`:
102
+
103
+ | Category | Map to |
104
+ | --- | --- |
105
+ | Edge cases, interaction feedback | \`H-01\` visibility of system status |
106
+ | Content, the user's words | \`H-02\` match with the real world |
107
+ | Exits and wayfinding | \`H-03\` user control and freedom |
108
+ | Design system, accessibility | \`H-04\` consistency and standards |
109
+ | Confirm or undo, forms | \`H-05\` error prevention |
110
+ | Recognition | \`H-06\` recognition rather than recall |
111
+ | Shortcuts | \`H-07\` flexibility and efficiency |
112
+ | UI decoration, anti-slop | \`H-08\` aesthetic and minimalist design |
113
+ | Error messages and recovery | \`H-09\` error recovery |
114
+ | Help | \`H-10\` help and documentation |
115
+
116
+ The tool rejects major findings without valid evidence, caps the list at 12, and returns PASS or
117
+ FAIL. Without the MCP, say the evidence comes from the design and standards alone.
118
+
119
+ ### 7. Report
120
+
121
+ Each finding uses this schema:
122
+
123
+ | Field | Content |
124
+ | --- | --- |
125
+ | ID | C-01, C-02, ... |
126
+ | Severity | 0 not a problem · 1 cosmetic · 2 minor · 3 major · 4 catastrophic |
127
+ | Category | one of the categories above |
128
+ | Finding | where it is and what the problem is |
129
+ | Evidence | what you saw: the capture, a measured value, a comparison screen |
130
+ | Impact | who is affected, in which task, and how badly |
131
+ | Recommendation | a concrete fix |
132
+ | Confidence | High (seen directly), Medium (partly seen, such as one width), Low (inferred) |
133
+ | Source | the RYUX rule ID, plus a screen_id, a standard (WCAG SC), or "this design" |
134
+
135
+ \`\`\`
136
+ Verdict: one sentence (what works, the biggest risk)
137
+
138
+ What was reviewed and how
139
+ Source: Figma frame "Checkout" (node 1:2) / https://... / pen.dev frame "..."
140
+ Analysis: ryux-analyze, desktop 1440 and mobile 390, via Playwright
141
+ Not tested: hover and focus states, live data, screen reader
142
+
143
+ Design Read
144
+ Clarity Strong · ...
145
+ Confidence Weak · ...
146
+ (all nine)
147
+
148
+ Findings (most severe first, at most 12)
149
+ C-01 · severity 3 · Interaction · confidence High
150
+ Finding: Payment confirmation shows no status while verifying
151
+ Evidence: no loading or progress element in the frame (Observed)
152
+ Impact: buyers paying by QRIS may tap twice and pay twice
153
+ Recommendation: show status with a time estimate; disable the button while verifying
154
+ Source: RX-IX-02; scr_demo_001
155
+
156
+ What works (keep it)
157
+ - ...
158
+
159
+ Fix priorities
160
+ 1. C-01 ...
161
+ \`\`\`
162
+
163
+ ## Don'ts
164
+
165
+ - Don't review a design you have not captured when it is reachable.
166
+ - Don't edit the source file while reviewing.
167
+ - Don't give a finding without a location, a source, and a reason.
168
+ - Don't raise severity to major without evidence, or claim "app X does this" without a \`screen_id\`.
169
+ - Don't mark an inferred issue High confidence.
170
+ - Don't paste generic advice ("modernize", "add white space") without a real problem.
171
+ - Don't call the result "fully accessible" or "UX optimized"; say what was checked.`;