@ryuxdsgn/design-intelligence 2.13.8 → 2.14.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.
- package/dist/adapters.js +1 -1
- package/dist/intelligence/content.js +53 -50
- package/dist/intelligence/critique.js +3 -2
- package/dist/intelligence/guides.js +25 -10
- package/dist/render.js +4 -4
- package/package.json +1 -1
package/dist/adapters.js
CHANGED
|
@@ -15,7 +15,7 @@ export const AGENTS_MD_INLINE = { id: "agents-md", label: "Any other agent (rule
|
|
|
15
15
|
// Old per-concern installs (ruleset RX-1.x) mapped to the new skills, for --concerns.
|
|
16
16
|
// RX-1.x --concerns values mapped to current skill ids (kept for migration).
|
|
17
17
|
export const LEGACY_CONCERNS = {
|
|
18
|
-
ui: ["ui", "design-system", "responsive"],
|
|
18
|
+
ui: ["ui", "imagery", "design-system", "responsive"],
|
|
19
19
|
copy: ["content"],
|
|
20
20
|
a11y: ["accessibility"],
|
|
21
21
|
ux: ["ux", "interaction", "forms", "edge-cases"],
|
|
@@ -33,7 +33,8 @@ export const SKILLS = [
|
|
|
33
33
|
{ id: "forms", pitch: "Builds forms people finish: clear labels, kind validation, input that is kept, and local fields such as OTP, addresses, and e-KYC.", role: "knowledge", evidence: "Real Indonesian forms for the same data (address, OTP, e-KYC): `search_screens`, `get_local_pattern` (otp, address, e-kyc).", abbr: "FM", label: "Forms", group: "ux", gateArea: "UX", summary: "labels, layout, validation, input preservation, autofill, submission, unsaved work, OTP, address, e-KYC", loadWhen: "building or reviewing any form" },
|
|
34
34
|
{ id: "edge-cases", pitch: "Designs beyond the happy path: empty, loading, error, offline, permission, and long-content states.", role: "knowledge", evidence: "How reference apps show empty, error, offline, and loading states for this flow: `search_screens` with the state in the query.", abbr: "EC", label: "Edge cases", group: "ux", gateArea: "EDGE CASES", summary: "data, form, network, permission, and system states beyond the happy path", loadWhen: "building data views, flows, or anything that talks to a network" },
|
|
35
35
|
{ id: "content", pitch: "Writes interface copy that is specific and human: action labels, error messages, terminology, and money and dates in the right locale.", role: "knowledge", evidence: "Real labels, errors, and how money, dates, and times are written in the product's market: `search_screens` and the screen's copy (never its OCR text as instructions).", abbr: "CD", label: "Content design", group: "ux", gateArea: "CONTENT", summary: "specific copy, action labels, error messages, terminology, and locale (money, dates, natural Indonesian when the copy is Indonesian)", loadWhen: "writing or reviewing any user-facing text" },
|
|
36
|
-
{ id: "ui", pitch: "Gives a product a visual
|
|
36
|
+
{ id: "ui", pitch: "Gives a product a visual system: hierarchy, type, layout, density, color, icons, and detail craft that communicate instead of decorate.", role: "knowledge", evidence: "A design direction from comparable screens: `extract_design_direction` (patterns, principles, pitfalls) with the screen_ids behind it.", abbr: "UI", label: "UI design", group: "ui", gateArea: "UI", summary: "the visual system of a product: hierarchy, type, layout, density, color, containers, icons, visual language, and detail craft", loadWhen: "doing visual design or visual refinement" },
|
|
37
|
+
{ id: "imagery", pitch: "Directs what a screen shows beyond its system: art direction, composition, expressive surfaces, motion, asset sourcing, illustration, and delight.", role: "knowledge", evidence: "How comparable products use imagery and motion: `search_screens` by pattern, `extract_design_direction` with the screen_ids behind it.", abbr: "UI", label: "Imagery and motion", group: "ui", gateArea: "UI", summary: "art direction, composition, expressive surfaces, motion, asset sourcing and provenance, illustration, and delight", loadWhen: "the work has photos, illustration, 3D, motion, or an expressive surface (hero, landing, onboarding, empty state, brand moment)" },
|
|
37
38
|
{ id: "design-system", pitch: "Keeps the interface consistent: reuse before create, tokens, component states, and consistency locks.", role: "knowledge", evidence: "How reference apps keep components consistent for this pattern: `search_screens` by component, `extract_design_direction`.", abbr: "DS", label: "Design system", group: "ui", gateArea: "DESIGN SYSTEM", summary: "search before create, tokens, component states, consistency locks", loadWhen: "adding or changing components, styles, or tokens" },
|
|
38
39
|
{ id: "accessibility", pitch: "Makes the interface work for everyone: semantics, keyboard, focus, contrast, target size, and reduced motion, checked against WCAG 2.2.", role: "knowledge", evidence: "Standards are the main evidence (WCAG 2.2 success criteria); reference screens show local patterns that meet them: `search_screens`.", abbr: "A11Y", label: "Accessibility", group: "ui", gateArea: "ACCESSIBILITY", summary: "semantics, keyboard, focus, contrast, targets, names, errors, reduced motion", loadWhen: "building or reviewing any UI" },
|
|
39
40
|
{ id: "responsive", pitch: "Makes layouts hold up at every width: what to prioritize, simplify, reorganize, and stack.", role: "knowledge", evidence: "How reference flows adapt across widths when captured: `get_flow`, `search_screens` for the mobile pattern.", abbr: "RD", label: "Responsive design", group: "ui", gateArea: "RESPONSIVE", summary: "prioritize, simplify, reorganize; tables, overlays, overflow, safe areas", loadWhen: "building a layout that ships to more than one width" },
|
|
@@ -783,6 +784,57 @@ export const RULES = [
|
|
|
783
784
|
check: "review",
|
|
784
785
|
formerly: ["RX-C-02"],
|
|
785
786
|
},
|
|
787
|
+
{
|
|
788
|
+
num: 10,
|
|
789
|
+
title: "Visual language is chosen, not defaulted",
|
|
790
|
+
level: "preferred",
|
|
791
|
+
do: "Derive the art direction from the brand, the audience, the product context, and reference screens, and write it as a Visual Brief (template in knowledge/imagery.md) (objective, concept, composition, color, material, lighting, motion, avoid) before designing an expressive surface or generating images, 3D, or motion.\n - For a new product, decide the brand direction before the tokens, task UI included: palette, type, and shape follow from the product's character (fast, warm, trusted, and so on), not from the one accent that passes contrast.",
|
|
792
|
+
dont: "Reach for the category cliché (coins, money rain, floating dashboards, or gradient blobs for fintech; generic 3D characters for any app), or write an image prompt without a brief (role, concept, composition).",
|
|
793
|
+
why: "A default visual language makes the product interchangeable with its competitors.",
|
|
794
|
+
basis: "art direction practice; RX-AS-05 purpose gate",
|
|
795
|
+
notWhen: "an existing brand system already defines the visual language; follow it",
|
|
796
|
+
tradeoff: "a brief takes time before any image exists",
|
|
797
|
+
check: "the Visual Brief; review",
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
num: 14,
|
|
801
|
+
title: "Type that is set, not only sized",
|
|
802
|
+
level: "preferred",
|
|
803
|
+
gate: "lock",
|
|
804
|
+
do: "Set the type, not only its size:\n - body paragraphs at 45 to 75 characters per line, checked in the render\n - line-height from size: about 1.5 for body, 1.2 to 1.3 for headings, about 1.1 for display\n - small uppercase labels opened slightly (about 0.05em), large display text tightened slightly\n - tabular figures for numbers that are compared or that change (amounts, tables, timers)\n - at most two families and three weights\n - headings balanced so none ends on one stranded word",
|
|
805
|
+
dont: "Let paragraphs run the full width of a desktop container, use one line-height for every size, set uppercase labels with no tracking, or let amounts in a column shift because digits differ in width.",
|
|
806
|
+
why: "Line length and leading decide whether text is read or skimmed; aligned figures make numbers comparable at a glance.",
|
|
807
|
+
basis: "Bringhurst, The Elements of Typographic Style (a measure of 45 to 75 characters; leading by size); WCAG 2.2 SC 1.4.12 text spacing; OpenType tnum; Apple HIG and Material type scales",
|
|
808
|
+
notWhen: "a single display line or a logo lockup, where the type is an image",
|
|
809
|
+
tradeoff: "narrower text columns leave more empty space on wide screens",
|
|
810
|
+
check: "measure the render: characters per line, line-height, letter-spacing, font-variant-numeric, families and weights in use",
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
num: 15,
|
|
814
|
+
title: "Detail craft",
|
|
815
|
+
level: "preferred",
|
|
816
|
+
gate: "lock",
|
|
817
|
+
do: "Center icons on the optical middle of the text beside them and size them to its line-height; match icon stroke to the type weight; right-align (or decimal-align) number columns; take borders, dividers, radii, and shadows from a small token set; truncate long text on purpose, with the full value still reachable (a tooltip, a detail view, or wrapping).",
|
|
818
|
+
dont: "Let icons sit high or low against their labels, mix stroke weights, center amounts in a table, or invent a one-off shadow for one card.",
|
|
819
|
+
why: "Each detail is small; together they are what makes a screen look made rather than generated.",
|
|
820
|
+
basis: "Bringhurst (figures and alignment); Apple HIG and Material iconography (optical size and alignment); owner review 2026-10-17: wrong tab icons in withryux.pen",
|
|
821
|
+
check: "render inspection at 390 and 1280: icon center within 2 px of the text center; column alignment",
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
num: 20,
|
|
825
|
+
title: "An icon means one thing, and says it",
|
|
826
|
+
level: "preferred",
|
|
827
|
+
when: "the design uses icons for actions, navigation, or status",
|
|
828
|
+
do: "Pick each icon for the action or concept it stands for, not for its look.\n - One icon, one meaning across the product: no icon for two actions, no two icons for one action.\n - Pair the icon with a text label unless it is one of the few users know without one in this context (search, close, back, menu, home). Keep the label in a tab bar, on uncommon actions, and on destructive ones.\n - Tell look-alikes apart by what they do: back leaves the screen, close dismisses a sheet or modal; delete removes, cancel stops.\n - Use the platform's icon for platform actions (share differs on iOS and Android).",
|
|
829
|
+
dont: "Choose an icon because it looks good, reuse one icon for two meanings, or ship an icon-only control whose meaning users have to guess.",
|
|
830
|
+
why: "Few icons are recognised without a label; an ambiguous icon costs more than a word, and an icon whose meaning changes breaks what users learned.",
|
|
831
|
+
basis: "NNGroup icon usability; Nielsen heuristic 4 (consistency and standards); Apple HIG and Material iconography",
|
|
832
|
+
notWhen: "a dense expert tool whose users learn the set; then a tooltip plus an accessible name",
|
|
833
|
+
tradeoff: "labels take space, especially in toolbars and tab bars",
|
|
834
|
+
check: "review: list each icon with its meaning and flag duplicates; heuristic_eval H-04",
|
|
835
|
+
},
|
|
836
|
+
]),
|
|
837
|
+
...skill("imagery", [
|
|
786
838
|
{
|
|
787
839
|
num: 7,
|
|
788
840
|
title: "Imagery has a job and is what it claims",
|
|
@@ -809,18 +861,6 @@ export const RULES = [
|
|
|
809
861
|
tradeoff: "less freedom to place the subject",
|
|
810
862
|
check: "render at each width; review",
|
|
811
863
|
},
|
|
812
|
-
{
|
|
813
|
-
num: 10,
|
|
814
|
-
title: "Visual language is chosen, not defaulted",
|
|
815
|
-
level: "preferred",
|
|
816
|
-
do: "Derive the art direction from the brand, the audience, the product context, and reference screens, and write it as a Visual Brief (objective, concept, composition, color, material, lighting, motion, avoid) before designing an expressive surface or generating images, 3D, or motion.\n - For a new product, decide the brand direction before the tokens, task UI included: palette, type, and shape follow from the product's character (fast, warm, trusted, and so on), not from the one accent that passes contrast.",
|
|
817
|
-
dont: "Reach for the category cliché (coins, money rain, floating dashboards, or gradient blobs for fintech; generic 3D characters for any app), or write an image prompt without a brief (role, concept, composition).",
|
|
818
|
-
why: "A default visual language makes the product interchangeable with its competitors.",
|
|
819
|
-
basis: "art direction practice; RX-AS-05 purpose gate",
|
|
820
|
-
notWhen: "an existing brand system already defines the visual language; follow it",
|
|
821
|
-
tradeoff: "a brief takes time before any image exists",
|
|
822
|
-
check: "the Visual Brief; review",
|
|
823
|
-
},
|
|
824
864
|
{
|
|
825
865
|
num: 11,
|
|
826
866
|
title: "Motion earns its level",
|
|
@@ -860,30 +900,6 @@ export const RULES = [
|
|
|
860
900
|
tradeoff: "real or licensed assets take longer than a stock search",
|
|
861
901
|
check: "asset list with sources; review",
|
|
862
902
|
},
|
|
863
|
-
{
|
|
864
|
-
num: 14,
|
|
865
|
-
title: "Type that is set, not only sized",
|
|
866
|
-
level: "preferred",
|
|
867
|
-
gate: "lock",
|
|
868
|
-
do: "Set the type, not only its size:\n - body paragraphs at 45 to 75 characters per line, checked in the render\n - line-height from size: about 1.5 for body, 1.2 to 1.3 for headings, about 1.1 for display\n - small uppercase labels opened slightly (about 0.05em), large display text tightened slightly\n - tabular figures for numbers that are compared or that change (amounts, tables, timers)\n - at most two families and three weights\n - headings balanced so none ends on one stranded word",
|
|
869
|
-
dont: "Let paragraphs run the full width of a desktop container, use one line-height for every size, set uppercase labels with no tracking, or let amounts in a column shift because digits differ in width.",
|
|
870
|
-
why: "Line length and leading decide whether text is read or skimmed; aligned figures make numbers comparable at a glance.",
|
|
871
|
-
basis: "Bringhurst, The Elements of Typographic Style (a measure of 45 to 75 characters; leading by size); WCAG 2.2 SC 1.4.12 text spacing; OpenType tnum; Apple HIG and Material type scales",
|
|
872
|
-
notWhen: "a single display line or a logo lockup, where the type is an image",
|
|
873
|
-
tradeoff: "narrower text columns leave more empty space on wide screens",
|
|
874
|
-
check: "measure the render: characters per line, line-height, letter-spacing, font-variant-numeric, families and weights in use",
|
|
875
|
-
},
|
|
876
|
-
{
|
|
877
|
-
num: 15,
|
|
878
|
-
title: "Detail craft",
|
|
879
|
-
level: "preferred",
|
|
880
|
-
gate: "lock",
|
|
881
|
-
do: "Center icons on the optical middle of the text beside them and size them to its line-height; match icon stroke to the type weight; right-align (or decimal-align) number columns; take borders, dividers, radii, and shadows from a small token set; truncate long text on purpose, with the full value still reachable (a tooltip, a detail view, or wrapping).",
|
|
882
|
-
dont: "Let icons sit high or low against their labels, mix stroke weights, center amounts in a table, or invent a one-off shadow for one card.",
|
|
883
|
-
why: "Each detail is small; together they are what makes a screen look made rather than generated.",
|
|
884
|
-
basis: "Bringhurst (figures and alignment); Apple HIG and Material iconography (optical size and alignment); owner review 2026-10-17: wrong tab icons in withryux.pen",
|
|
885
|
-
check: "render inspection at 390 and 1280: icon center within 2 px of the text center; column alignment",
|
|
886
|
-
},
|
|
887
903
|
{
|
|
888
904
|
num: 16,
|
|
889
905
|
title: "Delight stands on three legs",
|
|
@@ -936,19 +952,6 @@ export const RULES = [
|
|
|
936
952
|
tradeoff: "SVG built from tokens takes longer than one export",
|
|
937
953
|
check: "render in every theme; read the SVG source",
|
|
938
954
|
},
|
|
939
|
-
{
|
|
940
|
-
num: 20,
|
|
941
|
-
title: "An icon means one thing, and says it",
|
|
942
|
-
level: "preferred",
|
|
943
|
-
when: "the design uses icons for actions, navigation, or status",
|
|
944
|
-
do: "Pick each icon for the action or concept it stands for, not for its look.\n - One icon, one meaning across the product: no icon for two actions, no two icons for one action.\n - Pair the icon with a text label unless it is one of the few users know without one in this context (search, close, back, menu, home). Keep the label in a tab bar, on uncommon actions, and on destructive ones.\n - Tell look-alikes apart by what they do: back leaves the screen, close dismisses a sheet or modal; delete removes, cancel stops.\n - Use the platform's icon for platform actions (share differs on iOS and Android).",
|
|
945
|
-
dont: "Choose an icon because it looks good, reuse one icon for two meanings, or ship an icon-only control whose meaning users have to guess.",
|
|
946
|
-
why: "Few icons are recognised without a label; an ambiguous icon costs more than a word, and an icon whose meaning changes breaks what users learned.",
|
|
947
|
-
basis: "NNGroup icon usability; Nielsen heuristic 4 (consistency and standards); Apple HIG and Material iconography",
|
|
948
|
-
notWhen: "a dense expert tool whose users learn the set; then a tooltip plus an accessible name",
|
|
949
|
-
tradeoff: "labels take space, especially in toolbars and tab bars",
|
|
950
|
-
check: "review: list each icon with its meaning and flag duplicates; heuristic_eval H-04",
|
|
951
|
-
},
|
|
952
955
|
]),
|
|
953
956
|
...skill("design-system", [
|
|
954
957
|
{
|
|
@@ -18,7 +18,7 @@ Critique
|
|
|
18
18
|
↓
|
|
19
19
|
Analyze what is actually there
|
|
20
20
|
↓
|
|
21
|
-
knowledge modules ux, ui, interaction, forms, content, accessibility,
|
|
21
|
+
knowledge modules ux, ui, imagery, interaction, forms, content, accessibility,
|
|
22
22
|
responsive, design-system, edge-cases, anti-slop
|
|
23
23
|
↓
|
|
24
24
|
RYUX Knowledge real product screens (search_screens, heuristic_eval)
|
|
@@ -117,7 +117,8 @@ could carry (RX-UX-08); report extraneous load, never the content the task needs
|
|
|
117
117
|
| Interaction | ryux-interaction | before, during, result, recovery; confirm or undo; cost upfront; local payments |
|
|
118
118
|
| Forms | ryux-forms | labels, validation, input kept, submission states |
|
|
119
119
|
| Content | ryux-content | specific labels, errors, terminology, Rupiah, dates and numbers |
|
|
120
|
-
| UI | ryux-ui | hierarchy, scale, color roles, density
|
|
120
|
+
| UI | ryux-ui | hierarchy, scale, color roles, density, icons |
|
|
121
|
+
| Imagery and motion | ryux-imagery | each visual's job, composition around the copy, motion level, illustration style; the result against its Visual Brief when there is one |
|
|
121
122
|
| Design system | ryux-design-system | consistency, tokens, component states |
|
|
122
123
|
| Accessibility | ryux-accessibility | contrast, targets, focus, names, color alone |
|
|
123
124
|
| Responsive | ryux-responsive | what changes, stays, disappears, or stacks across widths |
|
|
@@ -22,8 +22,8 @@ from DESIGN.md and the repo's screens). Pick the entry point, read its file, the
|
|
|
22
22
|
| **Critique** | find what should change first, and why; a heuristic evaluation | \`capabilities/critique.md\` |
|
|
23
23
|
| **QA** | verify a build against the intended design | \`capabilities/qa.md\` |
|
|
24
24
|
|
|
25
|
-
Knowledge modules (\`knowledge/\`): product, ux, interaction, forms, edge-cases, content, ui,
|
|
26
|
-
design-system, accessibility, responsive, frontend, and anti-slop. Evidence comes from the brief, the
|
|
25
|
+
Knowledge modules (\`knowledge/\`): product, ux, interaction, forms, edge-cases, content, ui, imagery (images, motion,
|
|
26
|
+
illustration, expressive surfaces), design-system, accessibility, responsive, frontend, and anti-slop. Evidence comes from the brief, the
|
|
27
27
|
project, product data, standards, and the ryux MCP when connected; none is required. Every entry point ends at the quality gates: the Hard
|
|
28
28
|
Gates below and the Delivery Gate, with anti-slop as the last check, never the starting point. Keep them apart:
|
|
29
29
|
Analyze says what exists, Design what to do, Critique if it is right, QA if it matches.`;
|
|
@@ -116,6 +116,10 @@ The six stages of the core workflow (SKILL.md), as Design runs them.
|
|
|
116
116
|
in all of them (RX-UX-08).
|
|
117
117
|
- On task UI the brand layer carries one signature from the product's own domain, never a layout
|
|
118
118
|
change for its own sake (RX-UI-12); on an expressive surface the signature can lead.
|
|
119
|
+
- Before the first illustration is drawn, in any alternative, write its style in the Design
|
|
120
|
+
Direction's Illustration field (RX-UI-17) and show it on the canvas next to the alternatives;
|
|
121
|
+
they share it, or each names its own. Writing it after drawing documents the result instead of
|
|
122
|
+
directing it.
|
|
119
123
|
- A small change, or a screen inside a fixed design system, skips Explore: say so and continue.
|
|
120
124
|
4. **Evaluate and select.** Rate each alternative against the Frame criteria, Strong, Adequate, or
|
|
121
125
|
Weak with one reason each, rate the evidence (RX-PR-10), and recommend one with a Decision Receipt.
|
|
@@ -204,7 +208,8 @@ UI direction layout and grid; type scale; spacing and density; color roles; co
|
|
|
204
208
|
the icon style (outline or filled, stroke weight, corners)
|
|
205
209
|
Design language personality, tone, interaction personality, density, formality; each with its
|
|
206
210
|
reason from the product, the audience, or the existing system
|
|
207
|
-
Visual direction for expressive surfaces: the Visual Brief (knowledge/
|
|
211
|
+
Visual direction for expressive surfaces: the Visual Brief (knowledge/imagery.md, Visual production)
|
|
212
|
+
Illustration the written style (RX-UI-17), before the first drawing; "none" when the design has none
|
|
208
213
|
Motion direction each motion: purpose (what it communicates: state change, feedback, spatial
|
|
209
214
|
relationship, progress, hierarchy), lifecycle (before, trigger, transition, new
|
|
210
215
|
state, feedback), level L1 to L5, timing and easing from one personality,
|
|
@@ -250,7 +255,7 @@ Dissent evidence only one source holds, or the case for an option not chose
|
|
|
250
255
|
Evidence names its count and never generalizes past it. "Evidence None, Confidence Low, Why:
|
|
251
256
|
business priority was not provided" is a valid receipt; keep it visible instead of upgrading it.
|
|
252
257
|
|
|
253
|
-
Visual, motion, and asset rules and tables live in knowledge/ui.md
|
|
258
|
+
Visual, motion, and asset rules and tables live in knowledge/ui.md and knowledge/imagery.md; this
|
|
254
259
|
direction only records the choices made with them.`;
|
|
255
260
|
export const BUILD_BODY = `# RYUX Build
|
|
256
261
|
|
|
@@ -271,7 +276,7 @@ workflow (SKILL.md); Frame, Explore, and Evaluate happen in Design.
|
|
|
271
276
|
either way, design from its principles and write "reference, not recreate" in Assumptions.
|
|
272
277
|
3. **Read the modules the task needs** from the task table: for example accessibility, responsive,
|
|
273
278
|
and edge-cases for any UI, and forms and content for a form. When the build adds motion or
|
|
274
|
-
transitions, read knowledge/
|
|
279
|
+
transitions, read knowledge/imagery.md (RX-UI-11) before writing any: how often the surface is seen
|
|
275
280
|
decides how much it moves. When it adds illustration, read RX-UI-19: SVG coloured from tokens,
|
|
276
281
|
no text inside, alt text that says the meaning.
|
|
277
282
|
4. **Implement faithfully.** Use semantic elements, existing components, and real data paths.
|
|
@@ -495,7 +500,8 @@ Does not cover: layout of the text (see ryux-ui).`,
|
|
|
495
500
|
ui: `**Visuals are not decoration. They are communication.** RYUX UI owns the visual expression of
|
|
496
501
|
a product: what each visual decision communicates, why it exists, and how it behaves. Functional UI
|
|
497
502
|
helps the user read, decide, or act. Anything decorative needs a stated reason (see the purpose
|
|
498
|
-
gates in ryux-anti-slop).
|
|
503
|
+
gates in ryux-anti-slop). This module is the visual system; art direction, motion, assets, and
|
|
504
|
+
illustration live in knowledge/imagery.md, read when the work has them.
|
|
499
505
|
|
|
500
506
|
**1. UI system.** Work in this order:
|
|
501
507
|
1. **Hierarchy**: what is read first, second, third? The primary action and key information win.
|
|
@@ -525,7 +531,13 @@ their text, sized to its line-height, with a stroke that matches the type weight
|
|
|
525
531
|
right or on the decimal. Borders, dividers, and shadows come from one small token set. Long text
|
|
526
532
|
truncates on purpose, with the full value still reachable.
|
|
527
533
|
|
|
528
|
-
|
|
534
|
+
Does not cover: component reuse and tokens (see ryux-design-system), or imagery, motion, and
|
|
535
|
+
assets (see knowledge/imagery.md).`,
|
|
536
|
+
imagery: `**What a screen shows beyond its system.** Read this with ryux-ui when the work has photos,
|
|
537
|
+
illustration, 3D, motion, or an expressive surface (hero, landing, onboarding, empty state, brand
|
|
538
|
+
moment). It works in three layers.
|
|
539
|
+
|
|
540
|
+
**1. Art direction.** Each visual has a job (RX-UI-07), its composition leaves room for the
|
|
529
541
|
content (RX-UI-09), and the visual language is chosen, not defaulted (RX-UI-10). Name the visual
|
|
530
542
|
language in a few words (editorial, product-centric, human, technical, playful, premium,
|
|
531
543
|
institutional) and its form (shape language, geometric or organic, flat or with depth).
|
|
@@ -552,7 +564,7 @@ Then run the swap test (RX-AS-09): with a competitor's name and logo, would anyt
|
|
|
552
564
|
If not, the surface has no point of view yet. Stay honest while being bold: a strong idea never
|
|
553
565
|
needs invented numbers, people, or logos.
|
|
554
566
|
|
|
555
|
-
**
|
|
567
|
+
**2. Motion.** Start from purpose: what the motion communicates; with no purpose, no motion.
|
|
556
568
|
Then ask how often someone will see it. The more often, the less of it they should notice: what
|
|
557
569
|
people open many times a day (a command palette, a shortcut, core navigation) appears at once, and
|
|
558
570
|
expression is kept for occasional or first-time moments. A purpose does not outweigh frequency.
|
|
@@ -588,7 +600,7 @@ defaults as soon as the product sets its own. Data the user is reading (a balanc
|
|
|
588
600
|
table value) does not move for effect. With reduced motion requested, large movement becomes a fade
|
|
589
601
|
or a cut (RX-A11Y-08).
|
|
590
602
|
|
|
591
|
-
**
|
|
603
|
+
**3. Visual production.** Decide where each asset comes from before making anything (RX-UI-13):
|
|
592
604
|
|
|
593
605
|
| Asset | First choice | Then | Never |
|
|
594
606
|
| --- | --- | --- | --- |
|
|
@@ -617,6 +629,8 @@ Concept: the visual thesis, in one sentence
|
|
|
617
629
|
Subject: what is shown (the product concept, not a generic person or device)
|
|
618
630
|
Visual language: editorial / product-centric / technical / ..., and the art direction
|
|
619
631
|
Form: shape language, geometric or organic, depth
|
|
632
|
+
Illustration: when there is any, its written style before the first drawing (RX-UI-17): line,
|
|
633
|
+
shape, colour tokens, depth and detail, subject, characters
|
|
620
634
|
Composition: where the subject sits, and the space kept for copy
|
|
621
635
|
Color, material, lighting: from the product palette; surfaces; direction and softness
|
|
622
636
|
Motion: level (L1 to L5) and personality
|
|
@@ -633,7 +647,8 @@ drawing, plus a character system when it has people or a mascot, and record it a
|
|
|
633
647
|
Receipt (RX-UI-17); make a set together and compare it side by side (RX-UI-18), and ship it as SVG
|
|
634
648
|
coloured from tokens, with no text inside and alt text that says the meaning (RX-UI-19).
|
|
635
649
|
|
|
636
|
-
Does not cover:
|
|
650
|
+
Does not cover: the visual system, hierarchy, type, and icons (see ryux-ui), or component reuse
|
|
651
|
+
and tokens (see ryux-design-system).`,
|
|
637
652
|
"design-system": `Prioritize the existing system. Before creating anything:
|
|
638
653
|
|
|
639
654
|
1. Search existing components.
|
package/dist/render.js
CHANGED
|
@@ -37,7 +37,7 @@ export function deliveryGateTemplate() {
|
|
|
37
37
|
const lines = [...GATE_AREAS, "FINAL"].map((a) => a === "FINAL"
|
|
38
38
|
? `${a.padEnd(width)}PASS | FAIL | NOT VERIFIED`
|
|
39
39
|
: a === "UI"
|
|
40
|
-
? `${a.padEnd(width)}PASS | FAIL | NOT VERIFIED | N/A · one-line reason · point of view: <concept> | task UI, signature: <signature
|
|
40
|
+
? `${a.padEnd(width)}PASS | FAIL | NOT VERIFIED | N/A · one-line reason · point of view: <concept> | task UI, signature: <signature> · illustration style: <where written> | none`
|
|
41
41
|
: a === "PRODUCT"
|
|
42
42
|
? `${a.padEnd(width)}PASS | FAIL | NOT VERIFIED | N/A · one-line reason · evidence Strong | Thin | None`
|
|
43
43
|
: a === "EDGE CASES"
|
|
@@ -72,14 +72,14 @@ ${CORE_EVIDENCE}
|
|
|
72
72
|
|
|
73
73
|
${LEVELS}
|
|
74
74
|
|
|
75
|
-
## Hard Gates (always apply)
|
|
76
|
-
|
|
77
|
-
No written exception; fix before delivery.
|
|
75
|
+
## Hard Gates (always apply; no written exception, fix before delivery)
|
|
78
76
|
|
|
79
77
|
${hardGatesBrief()}
|
|
80
78
|
|
|
81
79
|
## Task table: which knowledge to read
|
|
82
80
|
|
|
81
|
+
A small change (a copy fix, one component, one state) reads only the module it touches, plus anti-slop for visual work; any other task reads its row, plus \`knowledge/imagery.md\` when it has photos, illustration, 3D, motion, or an expressive surface:
|
|
82
|
+
|
|
83
83
|
${activationTable()}
|
|
84
84
|
|
|
85
85
|
## Delivery Gate
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryuxdsgn/design-intelligence",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.14.1",
|
|
4
4
|
"description": "RYUX: design intelligence for AI agents and designers. One skill, five entry points: Analyze, Design, Build, Critique, and QA, for Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Cline, Copilot, and more.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|