@ryuxdsgn/design-intelligence 2.6.2 → 2.6.3

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/cli/index.js CHANGED
@@ -358,6 +358,7 @@ const CONTEXT_FIELDS = [
358
358
  ] },
359
359
  },
360
360
  { label: "Brand and design system", hint: "" },
361
+ { label: "Product docs", hint: "paths RYUX reads for product facts, for example docs/prd.md:" },
361
362
  { label: "Evidence sources", hint: `RYUX MCP (hosted server not live yet; local: ${MCP_LOCAL_ADD_CMD}), Figma files, reference URLs:` },
362
363
  {
363
364
  label: "Constraints", hint: "platforms, accessibility target (for example WCAG 2.2 AA), what must not change:",
@@ -53,7 +53,7 @@ export const RULES = [
53
53
  num: 1,
54
54
  title: "State the context first",
55
55
  level: "required",
56
- do: "Before designing, write down the user, their task, the business goal, the design intent (what the user must understand, feel, and do), the information that matters, the primary action, the constraints, and what success looks like. Take what the prompt and DESIGN.md already give; ask only when a missing answer would change a major decision, at most three questions in one message (none when the context is complete), and write the rest as assumptions.",
56
+ do: "Before designing, write down the user, their task, the business goal, the design intent (what the user must understand, feel, and do), the information that matters, the primary action, the constraints, and what success looks like. Take what the prompt and DESIGN.md already give; ask only when a missing answer materially affects the user flow, what the product can do, or whether the content is correct, or when neither the prompt nor DESIGN.md sets the UI or motion direction, at most three questions in one message, most consequential first (none when the context is complete). Otherwise make the smallest reasonable assumption, write it down, and continue.",
57
57
  dont: "Start from a generic template with no stated user or task, or ask questions the prompt or DESIGN.md already answers.",
58
58
  why: "Without a task, design and review drift into taste.",
59
59
  basis: "ryux-critique playbook; NNGroup task-based evaluation",
@@ -64,10 +64,11 @@ export const RULES = [
64
64
  title: "Unknowns stay assumptions",
65
65
  level: "required",
66
66
  gate: "hard",
67
- do: "List what you do not know as assumptions, and mark the matching UI with [REAL DATA] or a question. Product facts (feature and tool names, commands, integrations, supported platforms, page names) come only from the brief, the repo, or the product's own docs.",
68
- dont: "Invent business rules, metrics, user data, permissions, pricing, requirements, or API behavior, or name a tool, command, integration, platform, or page the product does not have.",
69
- why: "Invented facts turn into promises and bugs that someone has to unwind.",
70
- basis: `${RUN}: an unconstrained agent invented a 30-day trial and user counts`,
67
+ do: "Sort what the brief does not say into three kinds. Design assumptions (low-risk visual or structural choices such as a merchant category icon or grouping by date): decide them from the context. Unconfirmed capabilities (an action or feature the category usually has, such as sharing a receipt): convention is not proof, so ask when it materially changes the flow or scope; otherwise you may propose it, listed as unconfirmed, never as a requirement. Facts, claims, and policies: take them only from the brief, the repo, or the product's own docs (feature and tool names, commands, integrations, platforms, pages, fees, timings, guarantees).",
68
+ dont: "Invent business rules, policies, guarantees, metrics, user data, permissions, pricing, requirements, or API behavior, or name a tool, command, integration, platform, or page the product does not have. Do not present an unconfirmed capability as a confirmed one.",
69
+ notWhen: "This rule is not a reason to drop content the brief implies or to leave a screen looking unfinished: sample content is RX-AS-03, design assumptions are yours to make.",
70
+ why: "Invented facts turn into promises and bugs that someone has to unwind; a screen trimmed to the brief's literal words reads unfinished and hides what still needs confirming.",
71
+ basis: `${RUN}: an unconstrained agent invented a 30-day trial and user counts; ryux visual benchmark 2.6 human rater, 2026-10-13: RYUX screens lost on a missing receipt action`,
71
72
  check: "review",
72
73
  },
73
74
  {
@@ -1039,13 +1040,13 @@ export const RULES = [
1039
1040
  },
1040
1041
  {
1041
1042
  num: 3,
1042
- title: "Placeholders look like placeholders",
1043
+ title: "Sample data is realistic and labeled; placeholders only for what is missing",
1043
1044
  level: "required",
1044
1045
  gate: "hard",
1045
- do: "Mark temporary content clearly: [REAL DATA], [LOGO], \"Contoh data\".",
1046
- dont: "Ship placeholder copy or data disguised as final.",
1047
- why: "Disguised placeholders ship by accident.",
1048
- basis: "ryux anti-slop principle",
1046
+ do: "Fill mockups with realistic sample content consistent with the brief (names, merchants, amounts in the brief's currency, dates) and list it as sample data in the output. Keep a visible placeholder only for an asset that does not exist yet, such as [LOGO].",
1047
+ dont: "Put [REAL DATA], XXX, or lorem text on the canvas where sample data would do, or ship sample data or placeholder copy as final. A sample-data label does not turn a fee, policy, or claim into a fact (RX-PR-02).",
1048
+ why: "Bracketed values read as unfinished and hide the layout's real behavior; unlabeled sample data ships by accident.",
1049
+ basis: "ryux anti-slop principle; ryux visual benchmark 2.5, 2026-10-09: [Brand] and XXX read as unfinished",
1049
1050
  check: "audit_copy C-01",
1050
1051
  formerly: ["RX-C-05"],
1051
1052
  },
@@ -40,9 +40,9 @@ accessibility, and intentional decisions. Understand the context before deciding
40
40
  facts from assumptions; prefer evidence over aesthetic preference; do not invent requirements;
41
41
  explain meaningful decisions with their trade-off; validate before claiming.`;
42
42
  export const CORE_WORKFLOW = `1. **Understand the request**: who, what task, which product and market (RX-PR-01). Read the
43
- RYUX project context in DESIGN.md first when it exists; do not guess what it leaves blank. Ask
44
- only when the answer would change a major decision (at most three, usually none), and assume
45
- the rest visibly. DESIGN.md answers are direction, not evidence of what users need.
43
+ RYUX project context in DESIGN.md, then the product docs (Product docs paths, else PRD.md,
44
+ docs/prd*, docs/product*, README), and name what you read. Ask and record direction as in
45
+ capabilities/design.md, step 1; assume the rest visibly. DESIGN.md is direction, not evidence.
46
46
  2. **Pick the entry point** and read its file.
47
47
  3. **Select knowledge**: read the modules the task table lists, and no others.
48
48
  4. **Gather evidence**: reference screens through the ryux MCP when connected; otherwise say so.
@@ -61,9 +61,20 @@ export const DESIGN_BODY = `# RYUX Design
61
61
 
62
62
  1. **Context.** Who, what task, which product and market, and the design intent
63
63
  (knowledge/product.md). Take it from the prompt, then DESIGN.md, then knowledge and evidence.
64
- Ask only when a missing answer would change a major decision: those questions alone, at most
65
- three, in one message, before designing. Complete context means no questions. Never ask what
66
- the prompt or DESIGN.md already answers; write the rest down as assumptions (RX-PR-01).
64
+ Read the product docs first (the router, step 1). Ask only when a missing answer materially
65
+ affects the user flow, what the product can do, or whether the content is correct, those
66
+ questions alone, most consequential first, at most three, in one message, before designing.
67
+ **Direction is the user's call:** when neither the prompt nor DESIGN.md sets the UI direction
68
+ (character, or brand colour and type) or the motion direction, ask for it in that message (it
69
+ counts toward the three) instead of choosing it yourself. Complete context means no questions. Never ask what the prompt, DESIGN.md, or the
70
+ product docs already answer. For the rest, make the smallest reasonable assumption, write it
71
+ down, and continue (RX-PR-01, RX-PR-02).
72
+ **Record direction answers.** When the user answers a UI or motion direction question, write the
73
+ answer into the UI direction or Motion direction field of the RYUX project context in DESIGN.md:
74
+ between \`<!-- ryux-context:start -->\` and \`<!-- ryux-context:end -->\`, one line per field
75
+ (\`- **UI direction**: Calm, trustworthy\`). If DESIGN.md or the block does not exist, create it
76
+ with those two fields. Change only those field lines; leave every other line as it is. Your own
77
+ assumptions do not go into DESIGN.md.
67
78
  2. **Understand what exists.** When there is a screen, product, or design system already, read its
68
79
  analysis or run Analyze first (capabilities/analyze.md). Understand before you design.
69
80
  3. **Decide with evidence.** For consequential choices, compare two or three patterns, using
@@ -83,7 +94,8 @@ export const DESIGN_BODY = `# RYUX Design
83
94
  gate. Never finish with an asset still pending.
84
95
  8. **Fact check, then the gate.** Check every product fact on the canvas (tool and command names,
85
96
  integrations, platforms, pages, numbers) against the brief or the repo (RX-PR-02), then close
86
- with the Delivery Gate, saying what was not designed, such as other widths or states.
97
+ with the Delivery Gate, saying what was not designed, such as other widths or states. If you
98
+ wrote DESIGN.md, say so in the final message: which file and which fields.
87
99
 
88
100
  Do not edit frames you were not asked to change. Do not hand off a design as "final" with
89
101
  placeholder or invented content.
@@ -120,7 +132,11 @@ Asset direction per asset: purpose, source, style, composition, context, consist
120
132
  avoid, provenance (observed, sourced, illustrative, generated, inferred)
121
133
  Responsive what changes, stays, disappears, or stacks at each width
122
134
 
123
- Assumptions everything guessed, visible
135
+ Assumptions kept apart, all visible:
136
+ design assumptions (low-risk choices made from context);
137
+ unconfirmed capabilities (actions or features on the canvas the brief did not
138
+ confirm; proposed, not requirements); sample data (realistic mockup content,
139
+ never a fact, RX-AS-03)
124
140
  Decisions one Decision Receipt per major decision (below)
125
141
  \`\`\`
126
142
 
@@ -223,10 +239,13 @@ export const GUIDES = {
223
239
  5. **Primary action**: the one thing this screen exists for.
224
240
  6. **Constraints**: platform, data that exists, technical or legal limits.
225
241
  7. **Success**: how would you know the screen works?
226
- 8. **Assumptions**: everything you had to guess. Keep them visible.
242
+ 8. **Assumptions**: everything you had to guess, kept visible and sorted into design assumptions,
243
+ unconfirmed capabilities, and sample data.
227
244
 
228
- Unknown facts stay assumptions. Do not invent business rules, metrics, user data, permissions,
229
- pricing, requirements, or API behavior; mark them [REAL DATA] or ask.
245
+ Unknown facts stay assumptions. Do not invent business rules, policies, metrics, user data,
246
+ permissions, pricing, requirements, or API behavior; ask when one materially affects the flow or
247
+ correctness, otherwise leave it out. Mockup content is realistic sample data, labeled (RX-PR-02,
248
+ RX-AS-03).
230
249
 
231
250
  Find evidence with the ryux MCP (\`search_screens\`, \`get_flow\`, \`get_local_pattern\`) and cite the
232
251
  \`screen_id\`, or call the decision a judgment call.
package/dist/render.js CHANGED
@@ -134,7 +134,8 @@ ${GUIDES[s.id]}${extra}
134
134
  ${s.evidence} Without the ryux MCP, say the evidence comes from the design and standards alone.
135
135
 
136
136
  > Hard Gates always apply, whichever skills are loaded: no invented numbers, people, urgency, business
137
- > rules, or terms; no placeholder shipped as final; no missing critical states. See \`ryux-core\`.
137
+ > rules, or terms; no placeholder shipped as final; no missing critical states. Labeled sample data is
138
+ > not an invented number; an unconfirmed capability is never presented as confirmed. See \`ryux-core\`.
138
139
 
139
140
  ## Rules
140
141
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryuxdsgn/design-intelligence",
3
- "version": "2.6.2",
3
+ "version": "2.6.3",
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": {