@atomixstudio/mcp 1.0.16 → 1.0.17

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
@@ -71,8 +71,8 @@ Returns DS-derived suggestions so the AI can build a "Suggested" vs "Already pre
71
71
 
72
72
  **Returns (JSON):**
73
73
 
74
- - **iconLibrary** — `package`, `nativePackage`, and a performance hint (use individual SVG imports for tree-shaking).
75
- - **fonts** — Font family names from typography tokens + performance hint (self-hosted `@font-face`, `font-display: swap`).
74
+ - **iconLibrary** — `package`, `nativePackage`, and a performance hint (use individual imports; apply the DS icon sizing/weight token when rendering icons).
75
+ - **fonts** — Font family names from typography tokens + hint to link fonts via URL (e.g. Google Fonts); no need to download or add font files to the repo.
76
76
  - **skill** — `path` (e.g. `.cursor/skills/atomix-ds/SKILL.md`) and `content` (generic, platform-agnostic SKILL.md).
77
77
  - **tokenFiles** — e.g. `["tokens.css", "tokens.json"]` with copy instructions.
78
78
 
@@ -100,7 +100,7 @@ The **/--getstarted** prompt suggests dependencies for your design system so you
100
100
  2. **Get suggested dependencies** — Call `getDependencies(platform, stack)`. If the call fails, tell the user the design system could not be reached and stop.
101
101
  3. **Scan codebase and build suggestion list** — Scan for `package.json` (or equivalent), existing skill path, token files, font/icon usage. Build **Suggested dependencies** (from getDependencies minus what's present) and **Already present**. Do not install or copy anything in this phase.
102
102
  4. **Present list and ask before install** — Reply with "Suggested dependencies: …" and "Already present: …" and state: "Do not install or copy anything until you confirm. Would you like me to install or add these?" Only perform steps the user approves.
103
- 5. **Optional: suggest global styles** — If the project has no global styles that use the design system tokens, ask verbatim: "Your project doesn't appear to have global styles that use the design system tokens (e.g. semantic typography scale or semantic color classes). Would you like me to suggest or generate a minimal set (e.g. typography scale + semantic utilities) so you can develop consistently with the DS?"
103
+ 5. **Optional: suggest global typeset** — If the project has no global styles that use the design system tokens, offer to build a full typeset (Display, Heading, body, caption) from the DS typography tokens via getToken/listTokens, including fontFamily, fontSize, fontWeight, lineHeight, letterSpacing—not just font imports.
104
104
  6. **Report what was created** — After any install/copy steps, list what was created or updated (e.g. "Installed: lucide-react. Added: .cursor/skills/atomix-ds/SKILL.md. Synced: tokens.css.").
105
105
 
106
106
  **Single SKILL.md:** The getstarted flow suggests adding a generic, coding-platform agnostic SKILL at `.cursor/skills/atomix-ds/SKILL.md`. It instructs the AI to call `getAIToolRules({ tool: "<tool>" })` where `<tool>` matches the current environment (cursor, windsurf, copilot, cline, continue, zed, generic).
package/dist/index.js CHANGED
@@ -1345,7 +1345,7 @@ var TOKEN_CATEGORIES = ["colors", "typography", "spacing", "sizing", "shadows",
1345
1345
  var server = new Server(
1346
1346
  {
1347
1347
  name: "atomix-mcp-user",
1348
- version: "1.0.15"
1348
+ version: "1.0.17"
1349
1349
  },
1350
1350
  {
1351
1351
  capabilities: {
@@ -1490,7 +1490,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
1490
1490
  },
1491
1491
  {
1492
1492
  name: "getDependencies",
1493
- description: "Get suggested dependencies for this design system (icon package, fonts, SKILL.md, token files). Use with atomix-setup prompt. Optional platform and stack for tailored suggestions.",
1493
+ description: "Get suggested dependencies for this design system (icon package, fonts, SKILL.md, token files). Use with /--getstarted prompt. Optional platform and stack for tailored suggestions.",
1494
1494
  inputSchema: {
1495
1495
  type: "object",
1496
1496
  properties: {
@@ -2053,11 +2053,13 @@ Last updated: ${lastUpdated}`
2053
2053
  iconLibrary: {
2054
2054
  package: iconPkgs.web,
2055
2055
  nativePackage: iconPkgs.native,
2056
- performanceHint: "Use individual SVG imports for tree-shaking; avoid loading entire icon libraries or icon fonts."
2056
+ strokeWidthToken: icons?.strokeWidth != null ? "icons.strokeWidth" : void 0,
2057
+ strokeWidthValue: icons?.strokeWidth,
2058
+ performanceHint: "Use individual SVG imports for tree-shaking. Apply the design system's icon tokens: sizing via getToken('sizing.icon.sm') or listTokens('sizing'), and stroke width via getToken('icons.strokeWidth') when the DS defines it. Do not use hardcoded sizes or stroke widths."
2057
2059
  },
2058
2060
  fonts: {
2059
2061
  families: fontNames,
2060
- performanceHint: "Implement self-hosted fonts and local @font-face declarations; avoid external CDN links; use font-display: swap."
2062
+ performanceHint: "Link fonts via URL (e.g. Google Fonts <link> or CSS @import); no need to download font files or add them to the repo. Prefer font-display: swap when possible. You must also build a typeset: CSS rules (e.g. .typeset-display, .typeset-heading, .typeset-body) that use var(--atmx-typography-*) for font-family, font-size, font-weight, line-height, letter-spacing from getToken/listTokens(typography). Do not create a file that only contains a font import."
2061
2063
  },
2062
2064
  skill: {
2063
2065
  path: ".cursor/skills/atomix-ds/SKILL.md",
@@ -2067,6 +2069,11 @@ Last updated: ${lastUpdated}`
2067
2069
  files: ["tokens.css", "tokens.json"],
2068
2070
  copyInstructions: "Call the syncTokens MCP tool to create the token file; do not only suggest the user run sync later."
2069
2071
  },
2072
+ showcase: platform === "web" || !platform ? {
2073
+ path: "atomix-setup-showcase.html",
2074
+ template: SHOWCASE_HTML_TEMPLATE,
2075
+ substitutionInstructions: "Replace placeholders with values from the synced token file. MCP/sync/export use the --atmx- prefix. {{TOKENS_CSS_PATH}} = path to the synced token file (e.g. ./tokens.css, same as syncTokens output). {{DS_NAME}} = design system name. {{BRAND_PRIMARY_VAR}} = var(--atmx-color-brand-primary). {{BRAND_PRIMARY_FOREGROUND_VAR}} = var(--atmx-color-brand-primary-foreground). {{HEADING_FONT_VAR}} = var(--atmx-typography-font-family-heading) or var(--atmx-typography-font-family-display). {{FONT_FAMILY_VAR}} = var(--atmx-typography-font-family-body). {{FONT_LINK_TAG}} = Google Fonts <link> for the font, or empty string. Do not invent CSS variable names; use only vars that exist in the export."
2076
+ } : void 0,
2070
2077
  meta: { dsName: data.meta.name, platform: platform ?? void 0, stack: stack ?? void 0 }
2071
2078
  };
2072
2079
  return {
@@ -2126,35 +2133,109 @@ Last updated: ${lastUpdated}`
2126
2133
  });
2127
2134
  var GENERIC_SKILL_MD = `---
2128
2135
  name: atomix-ds
2129
- description: Use this design system when editing UI, design system files, or when the user asks to follow the project's design system. Fetch rules dynamically via MCP.
2136
+ description: Use the Atomix design system for UI, tokens, and styles. Fetch rules and tokens via MCP tools; never hardcode design values.
2130
2137
  ---
2131
2138
 
2132
2139
  # Atomix Design System
2133
2140
 
2141
+ Use this skill when editing UI, design system files, or when the user asks to follow the project's design system. Your job is to **get the relevant data from the design system via MCP** and apply it\u2014not to guess or invent values.
2142
+
2143
+ ## Goal
2144
+
2145
+ Complete the user's task using the design system as the single source of truth. Every color, spacing, typography, radius, shadow, or sizing value must come from the MCP tools (tokens or governance rules). Do not hardcode hex codes, pixel values, or font names.
2146
+
2134
2147
  ## When to use
2135
2148
 
2136
- - Editing UI components, pages, or styles
2137
- - Working in design system or token files
2138
- - User asks to follow the project's design system
2149
+ - Building or editing UI components, pages, or styles
2150
+ - Working in design system or token files (e.g. \`tokens.css\`, theme files)
2151
+ - User asks to "follow the design system", "use tokens", or "match the DS"
2152
+ - Validating or refactoring existing code, UI or visual design for token compliance
2139
2153
 
2140
- ## How to use
2154
+ ## How to get design system data
2141
2155
 
2142
- 1. Call MCP tool **getAIToolRules** with the tool id that matches your **current AI coding environment**:
2143
- - **cursor** (Cursor IDE)
2144
- - **windsurf** (Windsurf)
2145
- - **copilot** (Copilot)
2146
- - **cline** (Cline)
2147
- - **continue** (Continue)
2148
- - **zed** (Zed)
2149
- - **generic** (other tools)
2156
+ **1. Governance rules (how to use tokens in code)**
2157
+ Call **getAIToolRules** with the tool id for your current environment: \`cursor\`, \`windsurf\`, \`copilot\`, \`cline\`, \`continue\`, \`zed\`, or \`generic\`.
2158
+ Example: \`getAIToolRules({ tool: "cursor" })\`.
2159
+ Alternatively use the **/--rules** prompt or the resource \`atomix://rules/<tool>\`.
2150
2160
 
2151
- Example: \`getAIToolRules({ tool: "cursor" })\` when in Cursor.
2161
+ **2. Token values (what to use in code)**
2162
+ - **getToken(path)** \u2014 One token by path (e.g. \`colors.brand.primary\`, \`typography.fontSize.lg\`, \`sizing.icon.sm\`, \`icons.strokeWidth\`). Icon stroke width is at \`icons.strokeWidth\` when the design system defines it.
2163
+ - **listTokens(category)** \u2014 All tokens in a category: \`colors\`, \`typography\`, \`spacing\`, \`sizing\`, \`shadows\`, \`radius\`, \`borders\`, \`motion\`, \`zIndex\`. For icon config (e.g. stroke width), use \`getToken("icons.strokeWidth")\` since \`icons\` is not a list category.
2164
+ - **searchTokens(query)** \u2014 Find tokens by name or value.
2152
2165
 
2153
- 2. Alternatively use the **design-system-rules** prompt or the resource \`atomix://rules/<tool>\` with the same tool id.
2166
+ **3. Validation**
2167
+ - **validateUsage(value, context)** \u2014 Check if a CSS/value should use a token instead (e.g. \`validateUsage("#007061", "color")\`).
2154
2168
 
2155
- 3. Apply the returned rules (tokens, governance) when generating or editing code.
2169
+ **4. Syncing tokens to a file**
2170
+ - **syncTokens({ output, format })** \u2014 Writes the current design system tokens to a file (e.g. \`./tokens.css\`). Use when the user wants a local token file.
2156
2171
 
2157
- 4. Ensure Atomix MCP is configured with the project's \`--ds-id\` (config path varies by platform: e.g. \`.cursor/mcp.json\`, \`.windsurf/mcp.json\`).
2172
+ Use the returned rules and token paths/values when generating or editing code. Prefer CSS variables (e.g. \`var(--atmx-*)\`) or the exact token references from the tools.
2173
+
2174
+ ## Best practices
2175
+
2176
+ - **Fetch first:** Before writing UI or styles, call getAIToolRules and/or getToken/listTokens so you know the exact tokens and conventions.
2177
+ - **Icons:** Apply the design system's icon tokens when rendering icons: sizing via \`getToken("sizing.icon.sm")\` or \`listTokens("sizing")\`, and stroke width via \`getToken("icons.strokeWidth")\` when the DS defines it; do not use hardcoded sizes or stroke widths.
2178
+ - **Typography:** Use typography tokens (fontFamily, fontSize, fontWeight, lineHeight, letterSpacing) from the DS for any text; build typesets (Display, Heading, body) from those tokens when creating global styles.
2179
+ - **No guessing:** If a value is not in the rules or token list, use searchTokens or listTokens to find the closest match rather than inventing a value.
2180
+ `;
2181
+ var SHOWCASE_HTML_TEMPLATE = `<!DOCTYPE html>
2182
+ <html lang="en">
2183
+ <head>
2184
+ <meta charset="UTF-8">
2185
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
2186
+ <title>Setup complete \u2014 {{DS_NAME}}</title>
2187
+ {{FONT_LINK_TAG}}
2188
+ <link rel="stylesheet" href="{{TOKENS_CSS_PATH}}">
2189
+ <style>
2190
+ * { box-sizing: border-box; }
2191
+ body {
2192
+ margin: 0;
2193
+ font-family: {{FONT_FAMILY_VAR}}, system-ui, sans-serif;
2194
+ background: {{BRAND_PRIMARY_VAR}};
2195
+ color: {{BRAND_PRIMARY_FOREGROUND_VAR}};
2196
+ min-height: 100vh;
2197
+ padding: 2rem;
2198
+ display: flex;
2199
+ align-items: center;
2200
+ justify-content: center;
2201
+ text-align: center;
2202
+ }
2203
+ .wrap { width: 375px; max-width: 100%; }
2204
+ .icon { width: 2rem; height: 2rem; margin: 0 auto 1rem; }
2205
+ h1 {
2206
+ font-family: {{HEADING_FONT_VAR}}, {{FONT_FAMILY_VAR}}, system-ui, sans-serif;
2207
+ font-size: clamp(1.5rem, 4vw, 2.25rem);
2208
+ font-weight: 700;
2209
+ margin: 0 0 0.75rem;
2210
+ line-height: 1.25;
2211
+ }
2212
+ .lead { margin: 0 0 1.5rem; font-size: 1rem; line-height: 1.5; opacity: 0.95; }
2213
+ .now { margin: 1.5rem 0 0; font-size: 0.875rem; line-height: 1.6; opacity: 0.95; text-align: left; }
2214
+ .now strong { display: block; margin-bottom: 0.5rem; }
2215
+ .now ul { margin: 0; padding-left: 1.25rem; }
2216
+ .tips { margin-top: 1.5rem; font-size: 0.875rem; line-height: 1.6; opacity: 0.9; }
2217
+ .tips a { color: inherit; text-decoration: underline; }
2218
+ </style>
2219
+ </head>
2220
+ <body>
2221
+ <div class="wrap">
2222
+ <div class="icon" aria-hidden="true">
2223
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="32" height="32"><path d="M20 6L9 17l-5-5"/></svg>
2224
+ </div>
2225
+ <h1>You're all set with {{DS_NAME}}</h1>
2226
+ <p class="lead">This page uses your design system: brand primary as background, headline and body typesets, and an icon. Token file is linked above.</p>
2227
+ <div class="now">
2228
+ <strong>What you can do now:</strong>
2229
+ <ul>
2230
+ <li>Ask your agent to build your designs using the design system tokens</li>
2231
+ <li>Build components and pages that use <code>var(--atmx-*)</code> for colors, spacing, and typography</li>
2232
+ <li>Run <code>/--rules</code> to load governance rules; run <code>/--sync</code> and <code>/--refactor</code> after you change tokens in Atomix Studio</li>
2233
+ </ul>
2234
+ </div>
2235
+ <p class="tips">Keep the source of truth at <a href="https://atomixstudio.eu" target="_blank" rel="noopener">atomixstudio.eu</a> \u2014 avoid editing token values in this repo.</p>
2236
+ </div>
2237
+ </body>
2238
+ </html>
2158
2239
  `;
2159
2240
  var AI_TOOLS = ["cursor", "copilot", "windsurf", "cline", "continue", "zed", "generic"];
2160
2241
  server.setRequestHandler(ListResourcesRequestSchema, async () => {
@@ -2240,21 +2321,8 @@ Get your DS ID from: https://atomixstudio.eu/ds/[your-ds-id]`
2240
2321
  server.setRequestHandler(ListPromptsRequestSchema, async () => {
2241
2322
  const prompts = [
2242
2323
  { name: "--hello", description: "Get started with this design system - overview, tokens, and tools. Run this first!" },
2243
- {
2244
- name: "--setup",
2245
- description: "Setup design system in project. Three phases: scan, report and ask, then create only after you approve.",
2246
- arguments: [
2247
- { name: "platform", description: "Target platform (web, ios, android). Optional.", required: false },
2248
- { name: "stack", description: "Stack or framework (e.g. react, vue, next, swift, kotlin). Optional.", required: false }
2249
- ]
2250
- },
2251
- {
2252
- name: "--rules",
2253
- description: "Get the design system governance rules for your AI coding tool",
2254
- arguments: [
2255
- { name: "tool", description: "AI tool (cursor, copilot, windsurf, cline, continue, zed, generic). Optional.", required: false }
2256
- ]
2257
- },
2324
+ { name: "--getstarted", description: "Get started with design system in project. Three phases: scan, report and ask, then create only after you approve." },
2325
+ { name: "--rules", description: "Get the design system governance rules for your AI coding tool (default: cursor)." },
2258
2326
  { name: "--sync", description: "Sync tokens to a local file. Safe: adds new, updates existing, marks deprecated. Use /--refactor to migrate." },
2259
2327
  { name: "--refactor", description: "Migrate deprecated tokens in codebase. Run after /--sync." }
2260
2328
  ];
@@ -2262,7 +2330,7 @@ server.setRequestHandler(ListPromptsRequestSchema, async () => {
2262
2330
  });
2263
2331
  server.setRequestHandler(GetPromptRequestSchema, async (request) => {
2264
2332
  const { name, arguments: args } = request.params;
2265
- const canonicalName = name === "--hello" ? "hello" : name === "--setup" ? "atomix-setup" : name === "--rules" ? "design-system-rules" : name === "--sync" ? "sync" : name === "--refactor" ? "refactor" : name;
2333
+ const canonicalName = name === "--hello" ? "hello" : name === "--getstarted" ? "atomix-setup" : name === "--rules" ? "design-system-rules" : name === "--sync" ? "sync" : name === "--refactor" ? "refactor" : name;
2266
2334
  const shouldForceRefresh = canonicalName === "sync";
2267
2335
  let data = null;
2268
2336
  let stats = null;
@@ -2694,49 +2762,45 @@ Use \`/color\`, \`/spacing\`, \`/radius\`, \`/typography\`, \`/shadow\`, \`/bord
2694
2762
  };
2695
2763
  }
2696
2764
  case "atomix-setup": {
2697
- const setupInstructions = `You are running **atomix-setup** (design system setup). Three phases only.
2765
+ const setupInstructions = `You are running **/--getstarted** (get started with design system). Three phases only.
2698
2766
 
2699
- **Rule:** Do not create, write, or modify any file until Phase 3 and only after the user has explicitly approved (e.g. replied "Yes", "Yes for all", "Go ahead"). Creating or modifying files before the user approves is a rule violation.
2767
+ **Rule:** Do not create, write, or modify any file until Phase 3 and only after the user has explicitly approved (e.g. "Yes", "Yes for all", "Go ahead").
2700
2768
 
2701
2769
  ## Todo list (required)
2702
2770
 
2703
- - **Create a todo list** at the start with items for Phase 1, Phase 2, and Phase 3 (e.g. "Phase 1: Scan", "Phase 2: Report and ask", "Phase 3: Create after approval").
2704
- - Work **step by step**: complete Phase 1, then Phase 2; do not run Phase 3 until the user has replied with approval.
2705
- - Mark todo items completed as you finish each phase. Use this pattern so the user and you can track progress.
2771
+ - Create a todo list at the start: Phase 1, Phase 2, Phase 3. Work step by step; do not run Phase 3 until the user has replied with approval. Mark items completed as you go.
2706
2772
 
2707
2773
  ## Phase 1 \u2013 Scan
2708
2774
 
2709
- - Resolve platform/stack: infer from the project (e.g. package.json, build.gradle, Xcode) or ask the user once: "Which platform? (e.g. web, Android, iOS)" and if relevant "Which stack? (e.g. React, Vue, Next, Swift, Kotlin)." Do not assume a default.
2710
- - Call MCP tool **getDependencies** with \`platform\` and optional \`stack\`. If it fails, tell the user: "Atomix MCP is not connected or design system ID is missing. Configure MCP with --ds-id and try again."
2711
- - Scan the repo for what already exists: .cursor/skills/atomix-ds/SKILL.md, a tokens file (e.g. tokens.css or src/tokens.css), icon package from getDependencies, font setup. Do **not** include or check for MCP config; MCP is already configured for this session.
2712
- - **Web:** Scan for any existing CSS (e.g. globals.css, main.css, App.css, index.css, Tailwind entry, framework styles). Note whether at least one CSS file exists.
2713
- - **Native (iOS/Android):** Scan for existing theme or style files (e.g. SwiftUI theme/asset catalog, Android themes.xml/styles.xml, Compose theme). Note whether the project already has a theme or style setup.
2714
- - Build two lists: **Suggested** (from getDependencies minus what exists) and **Already present**. Only include: icon package, fonts, skill (.cursor/skills/atomix-ds/SKILL.md), token files. No MCP.
2775
+ - Resolve platform/stack: infer from the project (e.g. package.json, build.gradle, Xcode) or ask once: "Which platform? (e.g. web, Android, iOS)" and if relevant "Which stack? (e.g. React, Vue, Next, Swift, Kotlin)." Do not assume a default.
2776
+ - Call **getDependencies** with \`platform\` and optional \`stack\`. If it fails, tell the user the design system could not be reached and stop.
2777
+ - Scan the repo for: .cursor/skills/atomix-ds/SKILL.md, a tokens file (e.g. tokens.css or src/tokens.css), icon package from getDependencies, font links. **Web:** note any existing CSS (globals.css, main.css, Tailwind, etc.). **Native:** note any theme/style files (SwiftUI, Android themes, Compose).
2778
+ - Build two lists: **Suggested** (from getDependencies minus what exists) and **Already present**. Include: icon package, font links, skill (.cursor/skills/atomix-ds/SKILL.md), token files; for web, also include the **showcase page** (atomix-setup-showcase.html) if getDependencies returned a \`showcase\` object.
2715
2779
  - Do not write, create, or add anything in Phase 1.
2716
2780
 
2717
- ## Phase 2 \u2013 Report and ask for permission
2781
+ ## Phase 2 \u2013 Report and ask
2718
2782
 
2719
2783
  - Reply with: **Suggested:** [list] and **Already present:** [list].
2720
- - Ask exactly once: "Do you want me to add the suggested items? (Yes for all, or say which ones.)" (Integration with existing CSS or theme is recommended after Phase 3; new global CSS/theme is only suggested when none exists.)
2721
- - **Stop.** Do not run Phase 3 in this response. Wait for the user to reply.
2784
+ - Ask exactly once: "Do you want me to add the suggested items? (Yes for all, or say which ones.)"
2785
+ - **Stop.** Wait for the user to reply. Do not run Phase 3 in this response.
2722
2786
 
2723
- ## Phase 3 \u2013 Create or add (only after user approval)
2787
+ ## Phase 3 \u2013 Create (only after user approval)
2724
2788
 
2725
2789
  - Run only when the user has said yes (all or specific items).
2726
2790
  - For each approved item:
2727
2791
  - **Skill:** Write the skill content from getDependencies to .cursor/skills/atomix-ds/SKILL.md.
2728
- - **Token file:** Call the **syncTokens** MCP tool with \`output\` set to the path (e.g. "./src/tokens.css" or "./tokens.css"). You must call syncTokens; do not only suggest the user run sync later.
2729
- - **Icon package / fonts:** Add per getDependencies (e.g. install package, add font config). Do not overwrite existing.
2730
- - Report only what you actually created or updated (e.g. "Added: .cursor/skills/atomix-ds/SKILL.md. Synced: src/tokens.css."). Do not claim the token file was added if you did not call syncTokens.
2731
- - **After reporting \u2013 styles/theme (per platform):**
2732
- - **Web:** If the project **already has** at least one CSS file: recommend how to integrate Atomix (e.g. import the synced tokens file, use \`var(--atomix-*)\` or semantic classes). Do **not** suggest creating a new global CSS. Only if the project has **no** CSS file at all, ask once: "There are no CSS files yet. Do you want a minimal global CSS (typography + semantic utilities from the design system)?" and add it only if the user says yes.
2733
- - **iOS/Android:** If the project **already has** theme or style files: recommend how to integrate Atomix tokens (e.g. use synced DesignTokens.swift / Kotlin tokens in existing theme). Do **not** suggest creating a new global theme file. Only if the project has **no** theme/style setup at all, ask once: "There's no theme/style setup yet. Do you want a minimal token-based theme (colors, typography, spacing from the design system)?" and add it only if the user says yes.
2734
-
2735
- ---
2736
-
2737
- Create your todo list first, then execute Phase 1 (resolve platform/stack, call getDependencies, scan, build lists). Then Phase 2 (report lists and ask). Do not perform Phase 3 until the user replies.`;
2792
+ - **Token file:** Call **syncTokens** with \`output\` set to the path (e.g. "./src/tokens.css" or "./tokens.css"). You must call syncTokens; do not only suggest the user run it later.
2793
+ - **Icon package:** Install per getDependencies. When rendering icons, apply the design system's icon tokens: use getToken(\`sizing.icon.*\`) or listTokens(\`sizing\`) for size, and getToken(\`icons.strokeWidth\`) for stroke width when the DS defines it; do not use hardcoded sizes or stroke widths.
2794
+ - **Fonts and typeset:** Add font links (e.g. \`<link>\` or \`@import\` from Google Fonts). Then build a **typeset** in CSS: use **getToken** / **listTokens** (category \`typography\`) to get fontFamily, fontSize, fontWeight, lineHeight, letterSpacing for display, heading, and body, and write CSS rules (e.g. \`.typeset-display\`, \`.typeset-heading\`, \`.typeset-body\`, or \`h1\`/\`h2\`/\`p\`) that set those properties to \`var(--atmx-typography-*)\`. The typeset file (or section) must define the full type scale\u2014not only a font import. Do not create a CSS file that contains only a font import.
2795
+ - **Showcase page (web only):** If platform is web and getDependencies returned a \`showcase\` object, create the file at \`showcase.path\` using \`showcase.template\`. Replace every placeholder per \`showcase.substitutionInstructions\`: TOKENS_CSS_PATH, DS_NAME, BRAND_PRIMARY_VAR (page background), BRAND_PRIMARY_FOREGROUND_VAR (text on brand), HEADING_FONT_VAR (h1), FONT_FAMILY_VAR (body), FONT_LINK_TAG. Use only CSS variable names that exist in the synced token file. Do not change the HTML structure. After creating the file, launch it in the default browser (e.g. \`open atomix-setup-showcase.html\` on macOS, \`xdg-open atomix-setup-showcase.html\` on Linux, or the equivalent on Windows).
2796
+ - Report only what you actually created or updated. Do not claim the token file was added if you did not call syncTokens.
2797
+ - **After reporting \u2013 styles/theme:**
2798
+ - **Web:** If the project already has at least one CSS file: recommend how to integrate Atomix (e.g. import the synced tokens file, use \`var(--atmx-*)\`). Do not suggest a new global CSS. Only if there is **no** CSS file at all, ask once: "There are no CSS files yet. Do you want me to build a global typeset from the design system?" If yes, create a CSS file that includes: (1) font \`@import\` or document that a font link is needed, and (2) **typeset rules**\u2014CSS classes or element rules that set font-family, font-size, font-weight, line-height, letter-spacing using \`var(--atmx-typography-*)\` from the token file (e.g. \`.typeset-display\`, \`.typeset-heading\`, \`.typeset-body\`). You must call getToken/listTokens to get the exact typography token paths and write the corresponding var() references. The output must not be only a font import; it must define the full typeset (Display, Heading, body) with every style detail from the design system.
2799
+ - **iOS/Android:** If the project already has theme/style files: recommend how to integrate Atomix tokens. Do not suggest a new global theme. Only if there is **no** theme/style at all, ask once: "There's no theme/style setup yet. Do you want a minimal token-based theme?" and add only if the user says yes.
2800
+
2801
+ Create your todo list first, then Phase 1 (resolve platform/stack, call getDependencies, scan, build lists), then Phase 2 (report and ask). Do not perform Phase 3 until the user replies.`;
2738
2802
  return {
2739
- description: "Setup design system in project (atomix-setup). Create todo list; Phase 1 scan, Phase 2 report and ask, Phase 3 create only after user approval.",
2803
+ description: "Get started with design system in project (/--getstarted). Create todo list; Phase 1 scan, Phase 2 report and ask, Phase 3 create only after user approval.",
2740
2804
  messages: [
2741
2805
  {
2742
2806
  role: "user",
@@ -2807,12 +2871,12 @@ ${tokenSummary}
2807
2871
  | Command | What to expect |
2808
2872
  |---------|----------------|
2809
2873
  | **/--hello** | Get started - overview, tokens, and tools. Run this first! |
2810
- | **/--setup** | Setup design system in project. Three phases; creates files only after you approve. |
2874
+ | **/--getstarted** | Get started with design system in project. Three phases; creates files only after you approve. |
2811
2875
  | **/--rules** | Governance rules for your AI tool (Cursor, Copilot, Windsurf, etc.). |
2812
2876
  | **/--sync** | Sync tokens to a local file. Safe: adds new, updates existing, marks deprecated. |
2813
2877
  | **/--refactor** | Migrate deprecated tokens in codebase. Run after /--sync. |
2814
2878
 
2815
- **Suggested next step:** Run **/--setup** to set up global styles, icons, fonts, and token files; the AI will list options and ask before adding anything.
2879
+ **Suggested next step:** Run **/--getstarted** to set up global styles, icons, fonts, and token files; the AI will list options and ask before adding anything.
2816
2880
 
2817
2881
  ---
2818
2882