@ryuxdsgn/design-intelligence 2.14.1 → 2.14.2

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 CHANGED
@@ -90,9 +90,8 @@ The agent reads the router, then only the capability and knowledge files a task
90
90
 
91
91
  - The CLI makes no network requests and runs no other programs. It only writes the files listed
92
92
  above.
93
- - The ryux MCP server is optional and self-hosted: there is no hosted server yet, and RYUX never
94
- connects to one on its own. RYUX works without it and rates its evidence None. To run it:
95
- [`apps/mcp`](https://github.com/ryuxdsgn/design-intelligence/tree/main/apps/mcp).
93
+ - The ryux MCP server is optional: there is no hosted server yet, and RYUX never connects to one on
94
+ its own. RYUX works without it and rates its evidence None.
96
95
  - The skill tells agents to treat what an MCP server, web page, or screenshot returns as data,
97
96
  never as instructions.
98
97
 
@@ -918,7 +918,7 @@ export const RULES = [
918
918
  title: "Illustration follows a written style",
919
919
  level: "contextual",
920
920
  when: "the design adds or makes illustration (spot, empty state, onboarding, hero) and the brand has no illustration system",
921
- do: "Before the first drawing, write the style in five lines (six with characters) in DESIGN.md or the Assumptions:\n - line: stroke weight and cap, or no stroke\n - shape: geometric or hand-drawn, and the corner radius\n - colour: 2 to 4 tokens from the palette, one accent\n - depth and detail: flat, one shadow tone, or 3D; how much detail\n - subject: objects from the product, people, or abstract\n - characters, when the style has people or a mascot: proportions, face detail, the range of people shown, and a short set of poses and expressions; one character system across the product\n - Derive each line from the visual language (RX-UI-10): the stroke from the icon set, the radius from the components, the colour from the tokens. Functional icons stay in the icon set (RX-UI-13), not in the illustration style.\n - Record the style as a Decision Receipt: evidence from a brand guide, references, or the brief; Evidence None when it is derived from the visual language alone.",
921
+ do: "Before the first drawing, write the style in five lines (six with characters) in DESIGN.md or the Assumptions:\n - line: stroke weight and cap, or no stroke\n - shape: geometric or hand-drawn, and the corner radius\n - colour: 2 to 4 tokens from the palette, one accent\n - depth and detail: flat, one shadow tone, or 3D; how much detail\n - subject: objects from the product, people, or abstract\n - texture, when the style has any: one family, its source, and its strength (RX-UI-22)\n - characters, when the style has people or a mascot: proportions, face detail, the range of people shown, and a short set of poses and expressions; one character system across the product\n - Derive each line from the visual language (RX-UI-10): the stroke from the icon set, the radius from the components, the colour from the tokens. Functional icons stay in the icon set (RX-UI-13), not in the illustration style.\n - Record the style as a Decision Receipt: evidence from a brand guide, references, or the brief; Evidence None when it is derived from the visual language alone.",
922
922
  dont: "Draw in the generator's default style (flat people with oversized limbs, gradient blobs, isometric 3D), or mix line and filled illustration in one product.",
923
923
  why: "Without a written style, illustration drifts toward the generator's default and away from the UI around it.",
924
924
  basis: "Art direction practice (a written illustration style); RX-UI-10 chosen visual language; anti-slop tell (generic illustration); owner review 2026-10-22: request for illustration guidance",
@@ -952,6 +952,32 @@ export const RULES = [
952
952
  tradeoff: "SVG built from tokens takes longer than one export",
953
953
  check: "render in every theme; read the SVG source",
954
954
  },
955
+ {
956
+ num: 21,
957
+ title: "Pick the production method from the asset's job",
958
+ level: "contextual",
959
+ when: "the design makes illustration, 3D, or a generated visual rather than sourcing one (RX-UI-13)",
960
+ do: "Choose the method from what the asset must do later, and write it on the Visual Brief's Method line:\n - SVG, drawn or procedural: art that must follow the theme, scale, animate, or stay editable; the default for spot and empty-state illustration (RX-UI-19).\n - Generated raster: painterly, photographic, or richly textured art for onboarding and hero moments. Lock the style with the written style (RX-UI-17) and reference images, then refine in steps (sketch, mask, edit), not by re-rolling the prompt.\n - 3D render: when form, material, and light carry the meaning, or the same object appears from several angles or in motion. One scene per set: the same camera, lights, and materials, coloured from tokens.\n - Combined: for example a 3D render with an SVG overlay; text stays in the HTML either way.\n - Name the tool you actually have. With no generator or 3D tool available, hand off the brief with SVG or a placeholder that looks like one (RX-AS-03), and never claim a render you did not make.",
961
+ dont: "Use whichever generator is at hand, make an empty state that must follow dark mode as a raster, re-roll a prompt until something looks good, or mix 3D and flat art in one set without a rule for it.",
962
+ why: "The method decides what the asset can do later (theme, scale, animate, edit) and how far its style drifts from one image to the next.",
963
+ basis: "Art direction practice (choosing a production method); RX-UI-19; owner review 2026-10-23: request for illustration production methods",
964
+ notWhen: "the brand's illustration system already sets the method; follow it",
965
+ tradeoff: "the best method for the job may be slower than the generator at hand",
966
+ check: "the Visual Brief's Method line; review",
967
+ },
968
+ {
969
+ num: 22,
970
+ title: "Texture has a source and a limit",
971
+ level: "contextual",
972
+ when: "the style uses texture or mixed media: grain, risograph, halftone, paper cut, collage, or hand-drawn marks",
973
+ do: "Choose one texture family and write it into the illustration style (RX-UI-17): what it refers to (a print process, a paper, a craft), why that fits the product's concept, and its strength.\n - Keep it on illustration and brand surfaces, never behind body text, amounts, or data, and measure contrast with the texture on (RX-A11Y-01).\n - Risograph uses two or three inks from the tokens with one fixed misregistration offset; collage uses only pieces the team made or can license (RX-UI-13).\n - On the web, build it as an SVG filter or a small tiled asset and check the page weight; reduce it at small sizes, where it turns to noise.",
974
+ dont: "Add grain or noise to make generic art look handmade, stack several textures, put texture under text or numbers, or run a wobble filter over geometric art and call it hand-drawn.",
975
+ why: "Texture with no source reads as an effect applied afterwards, not as character, and it costs contrast and page weight.",
976
+ basis: "Art direction practice (print and craft texture: risograph, halftone, collage); RX-A11Y-01; RX-UI-13; owner review 2026-10-23: request for texture and mixed media",
977
+ notWhen: "a clean, flat illustration style with no texture",
978
+ tradeoff: "one texture family limits how expressive a single piece can be",
979
+ check: "render at the smallest and largest size; contrast with the texture on",
980
+ },
955
981
  ]),
956
982
  ...skill("design-system", [
957
983
  {
@@ -202,7 +202,7 @@ Findings (most severe first, at most 12)
202
202
  frames; the build was not tested)
203
203
  Impact: buyers paying by QRIS may tap twice and pay twice
204
204
  Recommendation: show status with a time estimate; disable the button while verifying
205
- Source: RX-IX-02; scr_demo_001
205
+ Source: RX-IX-02; a screen_id from the ryux MCP, when connected
206
206
  Verify by: a verifying-state frame exists and the button reads as disabled in it
207
207
 
208
208
  Not verifiable from this source
@@ -630,7 +630,8 @@ Subject: what is shown (the product concept, not a generic person or devi
630
630
  Visual language: editorial / product-centric / technical / ..., and the art direction
631
631
  Form: shape language, geometric or organic, depth
632
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
633
+ shape, colour tokens, depth and detail, subject, characters, texture
634
+ Method: SVG / generated raster / 3D / combined, why, and the tool you have (RX-UI-21)
634
635
  Composition: where the subject sits, and the space kept for copy
635
636
  Color, material, lighting: from the product palette; surfaces; direction and softness
636
637
  Motion: level (L1 to L5) and personality
@@ -645,7 +646,9 @@ screen (RX-UI-07).
645
646
  **Illustration.** With no brand system to follow, write the style in five lines before the first
646
647
  drawing, plus a character system when it has people or a mascot, and record it as a Decision
647
648
  Receipt (RX-UI-17); make a set together and compare it side by side (RX-UI-18), and ship it as SVG
648
- coloured from tokens, with no text inside and alt text that says the meaning (RX-UI-19).
649
+ coloured from tokens, with no text inside and alt text that says the meaning (RX-UI-19). Pick the
650
+ method from what the asset must do later (RX-UI-21), and write any texture or mixed media into the
651
+ style with its source and its limits (RX-UI-22).
649
652
 
650
653
  Does not cover: the visual system, hierarchy, type, and icons (see ryux-ui), or component reuse
651
654
  and tokens (see ryux-design-system).`,
package/dist/product.js CHANGED
@@ -5,9 +5,8 @@ const pkg = createRequire(import.meta.url)("../package.json");
5
5
  export const VERSION = pkg.version;
6
6
  export const MCP_NAME = "ryux";
7
7
  /** Until the hosted MCP is live, every surface says so. No connect URL is printed or written into files
8
- * the agent reads: self-hosting steps live only in apps/mcp/README.md. */
9
- export const MCP_STATUS = "The hosted ryux MCP is not live yet. RYUX works without it and rates evidence None. " +
10
- "To run the server yourself, see https://github.com/ryuxdsgn/design-intelligence/tree/main/apps/mcp.";
8
+ * the agent reads. */
9
+ export const MCP_STATUS = "The hosted ryux MCP is not live yet. RYUX works without it and rates evidence None.";
11
10
  export const CLI_CMD = "npx @ryuxdsgn/design-intelligence";
12
11
  export const MARK_START = "<!-- ryux-rules:start -->";
13
12
  export const MARK_END = "<!-- ryux-rules:end -->";
package/dist/render.js CHANGED
@@ -144,7 +144,7 @@ ${s.evidence} Without the ryux MCP, say the evidence comes from the design and s
144
144
  ${rulesOf(s.id).map(ruleBlock).join("\n\n")}`;
145
145
  }
146
146
  export const SKILL_NAME = "ryux";
147
- const RYUX_DESCRIPTION = "RYUX - design intelligence for AI agents and designers. Tell it what you are doing and it routes to Analyze (understand an existing interface), Design (create or improve UI and UX in Figma, pen.dev, or mockups), Build (implement in code), Critique (find what to change first, with evidence, or run a heuristic evaluation), or QA (verify a build against the design), reads only the knowledge the task needs (product, UX, UI, interaction, forms, content, accessibility, responsive, design system, frontend, anti-slop), and closes with quality gates. Use for any UI, UX, copy, frontend, design review, or design analysis task.";
147
+ const RYUX_DESCRIPTION = "RYUX - design intelligence for AI agents and designers. Tell it what you are doing and it routes to Analyze (understand an existing interface), Design (create or improve UI and UX in Figma, pen.dev, or mockups), Build (implement in code), Critique (find what to change first, with evidence, or run a heuristic evaluation), or QA (verify a build against the design), reads only the knowledge the task needs (product, UX, UI, interaction, forms, content, accessibility, responsive, design system, frontend, anti-slop), and closes with quality gates. Use for any UI, UX, copy, frontend, design review, or design analysis task, and for product visuals: illustration, 3D, imagery, icons, and motion, even when the request does not name RYUX.";
148
148
  /** Where a former skill id lives inside the single `ryux` skill folder. */
149
149
  export function modulePath(id) {
150
150
  if (id === "core")
@@ -200,9 +200,10 @@ export function renderAgentsBlock() {
200
200
  export function renderPointerBlock() {
201
201
  return `## RYUX
202
202
 
203
- RYUX is installed as one skill, \`ryux\`, in this project's agent skills folder. For UI, UX, copy, or
204
- frontend work, say what you are doing (analyze, design, build, critique, or QA); RYUX picks the
205
- knowledge it needs and ends with the Delivery Gate. Reference data and structured review will come
203
+ RYUX is installed as one skill, \`ryux\`, in this project's agent skills folder. Load it before any
204
+ UI, UX, copy, frontend, or product visual work (illustration, 3D, imagery, motion), even when the
205
+ request does not mention RYUX. Say what you are doing (analyze, design, build, critique, or QA); RYUX
206
+ picks the knowledge it needs and ends with the Delivery Gate. Reference data and structured review will come
206
207
  from the ryux MCP, which is not available yet.`;
207
208
  }
208
209
  // ── docs/design-rules.md generated sections ──────────────────────────────────
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryuxdsgn/design-intelligence",
3
- "version": "2.14.1",
3
+ "version": "2.14.2",
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": {