[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-figma-create-design-system-rules":3,"mdc--kgzvgh-key":39,"related-repo-openai-figma-create-design-system-rules":4453,"related-org-openai-figma-create-design-system-rules":4571},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":34,"sourceUrl":37,"mdContent":38},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22,25],{"name":13,"slug":14,"type":15},"Documentation","documentation","tag",{"name":17,"slug":18,"type":15},"Design System","design-system",{"name":20,"slug":21,"type":15},"Frontend","frontend",{"name":23,"slug":24,"type":15},"Figma","figma",{"name":26,"slug":27,"type":15},"Design","design",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-05-16T06:07:47.821474",null,1614,[],{"repoUrl":29,"stars":28,"forks":32,"topics":35,"description":36},[],"Skills Catalog for Codex","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002F.curated\u002Ffigma-create-design-system-rules","---\nname: figma-create-design-system-rules\ndescription: Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.\n---\n\n# Create Design System Rules\n\n## Overview\n\nThis skill helps you generate custom design system rules tailored to your project's specific needs. These rules guide AI coding agents to produce consistent, high-quality code when implementing Figma designs, ensuring that your team's conventions, component patterns, and architectural decisions are followed automatically.\n\n### Supported Rule Files\n\n| Agent | Rule File |\n|-------|-----------|\n| Claude Code | `CLAUDE.md` |\n| Codex CLI | `AGENTS.md` |\n| Cursor | `.cursor\u002Frules\u002Ffigma-design-system.mdc` |\n\n## What Are Design System Rules?\n\nDesign system rules are project-level instructions that encode the \"unwritten knowledge\" of your codebase - the kind of expertise that experienced developers know and would pass on to new team members:\n\n- Which layout primitives and components to use\n- Where component files should be located\n- How components should be named and structured\n- What should never be hardcoded\n- How to handle design tokens and styling\n- Project-specific architectural patterns\n\nOnce defined, these rules dramatically reduce repetitive prompting and ensure consistent output across all Figma implementation tasks.\n\n## Prerequisites\n\n- Figma MCP server must be connected and accessible\n- Access to the project codebase for analysis\n- Understanding of your team's component conventions (or willingness to establish them)\n\n## When to Use This Skill\n\nUse this skill when:\n\n- Starting a new project that will use Figma designs\n- Onboarding an AI coding agent to an existing project with established patterns\n- Standardizing Figma-to-code workflows across your team\n- Updating or refining existing design system conventions\n- Users explicitly request: \"create design system rules\", \"set up Figma guidelines\", \"customize rules for my project\"\n\n## Required Workflow\n\n**Follow these steps in order. Do not skip steps.**\n\n### Step 1: Run the Create Design System Rules Tool\n\nCall the Figma MCP server's `create_design_system_rules` tool to get the foundational prompt and template.\n\n**Parameters:**\n\n- `clientLanguages`: Comma-separated list of languages used in the project (e.g., \"typescript,javascript\", \"python\", \"javascript\")\n- `clientFrameworks`: Framework being used (e.g., \"react\", \"vue\", \"svelte\", \"angular\", \"unknown\")\n\nThis tool returns guidance and a template for creating design system rules.\n\nStructure your design system rules following the template format provided in the tool's response.\n\n### Step 2: Analyze the Codebase\n\nBefore finalizing rules, analyze the project to understand existing patterns:\n\n**Component Organization:**\n\n- Where are UI components located? (e.g., `src\u002Fcomponents\u002F`, `app\u002Fui\u002F`, `lib\u002Fcomponents\u002F`)\n- Is there a dedicated design system directory?\n- How are components organized? (by feature, by type, flat structure)\n\n**Styling Approach:**\n\n- What CSS framework or approach is used? (Tailwind, CSS Modules, styled-components, etc.)\n- Where are design tokens defined? (CSS variables, theme files, config files)\n- Are there existing color, typography, or spacing tokens?\n\n**Component Patterns:**\n\n- What naming conventions are used? (PascalCase, kebab-case, prefixes)\n- How are component props typically structured?\n- Are there common composition patterns?\n\n**Architecture Decisions:**\n\n- How is state management handled?\n- What routing system is used?\n- Are there specific import patterns or path aliases?\n\n### Step 3: Generate Project-Specific Rules\n\nBased on your codebase analysis, create a comprehensive set of rules. Include:\n\n#### General Component Rules\n\n```markdown\n- IMPORTANT: Always use components from `[YOUR_PATH]` when possible\n- Place new UI components in `[COMPONENT_DIRECTORY]`\n- Follow `[NAMING_CONVENTION]` for component names\n- Components must export as `[EXPORT_PATTERN]`\n```\n\n#### Styling Rules\n\n```markdown\n- Use `[CSS_FRAMEWORK\u002FAPPROACH]` for styling\n- Design tokens are defined in `[TOKEN_LOCATION]`\n- IMPORTANT: Never hardcode colors - always use tokens from `[TOKEN_FILE]`\n- Spacing values must use the `[SPACING_SYSTEM]` scale\n- Typography follows the scale defined in `[TYPOGRAPHY_LOCATION]`\n```\n\n#### Figma MCP Integration Rules\n\n```markdown\n## Figma MCP Integration Rules\n\nThese rules define how to translate Figma inputs into code for this project and must be followed for every Figma-driven change.\n\n### Required Flow (do not skip)\n\n1. Run get_design_context first to fetch the structured representation for the exact node(s)\n2. If the response is too large or truncated, run get_metadata to get the high-level node map, then re-fetch only the required node(s) with get_design_context\n3. Run get_screenshot for a visual reference of the node variant being implemented\n4. Only after you have both get_design_context and get_screenshot, download any assets needed and start implementation\n5. Translate the output (usually React + Tailwind) into this project's conventions, styles, and framework\n6. Validate against Figma for 1:1 look and behavior before marking complete\n\n### Implementation Rules\n\n- Treat the Figma MCP output (React + Tailwind) as a representation of design and behavior, not as final code style\n- Replace Tailwind utility classes with `[YOUR_STYLING_APPROACH]` when applicable\n- Reuse existing components from `[COMPONENT_PATH]` instead of duplicating functionality\n- Use the project's color system, typography scale, and spacing tokens consistently\n- Respect existing routing, state management, and data-fetch patterns\n- Strive for 1:1 visual parity with the Figma design\n- Validate the final UI against the Figma screenshot for both look and behavior\n```\n\n#### Asset Handling Rules\n\n```markdown\n## Asset Handling\n\n- The Figma MCP server provides an assets endpoint which can serve image and SVG assets\n- IMPORTANT: If the Figma MCP server returns a localhost source for an image or SVG, use that source directly\n- IMPORTANT: DO NOT import\u002Fadd new icon packages - all assets should be in the Figma payload\n- IMPORTANT: DO NOT use or create placeholders if a localhost source is provided\n- Store downloaded assets in `[ASSET_DIRECTORY]`\n```\n\n#### Project-Specific Conventions\n\n```markdown\n## Project-Specific Conventions\n\n- [Add any unique architectural patterns]\n- [Add any special import requirements]\n- [Add any testing requirements]\n- [Add any accessibility standards]\n- [Add any performance considerations]\n```\n\n### Step 4: Save Rules to the Appropriate Rule File\n\nDetect which AI coding agent the user is working with and save the generated rules to the corresponding file:\n\n| Agent | Rule File | Notes |\n|-------|-----------|-------|\n| Claude Code | `CLAUDE.md` in project root | Markdown format. Can also use `.claude\u002Frules\u002Ffigma-design-system.md` for modular organization. |\n| Codex CLI | `AGENTS.md` in project root | Markdown format. Append as a new section if file already exists. 32 KiB combined size limit. |\n| Cursor | `.cursor\u002Frules\u002Ffigma-design-system.mdc` | Markdown with YAML frontmatter (`description`, `globs`, `alwaysApply`). |\n\nIf unsure which agent the user is working with, check for existing rule files in the project or ask the user.\n\nFor Cursor, wrap the rules with YAML frontmatter:\n\n```markdown\n---\ndescription: Rules for implementing Figma designs using the Figma MCP server. Covers component organization, styling conventions, design tokens, asset handling, and the required Figma-to-code workflow.\nglobs: \"src\u002Fcomponents\u002F**\"\nalwaysApply: false\n---\n\n[Generated rules here]\n```\n\nCustomize the `globs` pattern to match the directories where Figma-derived code will live in the project (e.g., `\"src\u002F**\u002F*.tsx\"` or `[\"src\u002Fcomponents\u002F**\", \"src\u002Fpages\u002F**\"]`).\n\nAfter saving, the rules will be automatically loaded by the agent and applied to all Figma implementation tasks.\n\n### Step 5: Validate and Iterate\n\nAfter creating rules:\n\n1. Test with a simple Figma component implementation\n2. Verify the agent follows the rules correctly\n3. Refine any rules that aren't working as expected\n4. Share with team members for feedback\n5. Update rules as the project evolves\n\n## Rule Categories and Examples\n\n### Essential Rules (Always Include)\n\n**Component Discovery:**\n\n```markdown\n- UI components are located in `src\u002Fcomponents\u002Fui\u002F`\n- Feature components are in `src\u002Fcomponents\u002Ffeatures\u002F`\n- Layout primitives are in `src\u002Fcomponents\u002Flayout\u002F`\n```\n\n**Design Token Usage:**\n\n```markdown\n- Colors are defined as CSS variables in `src\u002Fstyles\u002Ftokens.css`\n- Never hardcode hex colors - use `var(--color-*)` tokens\n- Spacing uses the 4px base scale: `--space-1` (4px), `--space-2` (8px), etc.\n```\n\n**Styling Approach:**\n\n```markdown\n- Use Tailwind utility classes for styling\n- Custom styles go in component-level CSS modules\n- Theme customization is in `tailwind.config.js`\n```\n\n### Recommended Rules (Highly Valuable)\n\n**Component Patterns:**\n\n```markdown\n- All components must accept a `className` prop for composition\n- Variant props should use union types: `variant: 'primary' | 'secondary'`\n- Icon components should accept `size` and `color` props\n```\n\n**Import Conventions:**\n\n```markdown\n- Use path aliases: `@\u002Fcomponents`, `@\u002Fstyles`, `@\u002Futils`\n- Group imports: React, third-party, internal, types\n- No relative imports beyond parent directory\n```\n\n**Code Quality:**\n\n```markdown\n- Add JSDoc comments for exported components\n- Include PropTypes or TypeScript types for all props\n- Extract magic numbers to named constants\n```\n\n### Optional Rules (Project-Specific)\n\n**Accessibility:**\n\n```markdown\n- All interactive elements must have aria-labels\n- Color contrast must meet WCAG AA standards\n- Keyboard navigation required for all interactions\n```\n\n**Performance:**\n\n```markdown\n- Lazy load images with the `Image` component from `@\u002Fcomponents\u002FImage`\n- Use React.memo for components that receive complex props\n- Icons should be SVG components, not icon fonts\n```\n\n**Testing:**\n\n```markdown\n- Include unit tests for new components in `__tests__\u002F` directory\n- Use Testing Library queries (getByRole, getByLabelText)\n- Test all interactive states and variants\n```\n\n## Examples\n\n### Example 1: React + Tailwind Project\n\nUser says: \"Create design system rules for my React project\"\n\n**Actions:**\n\n1. Run `create_design_system_rules(clientLanguages=\"typescript,javascript\", clientFrameworks=\"react\")`\n2. Analyze codebase structure\n3. Generate rules:\n\n```markdown\n# Figma MCP Integration Rules\n\n## Component Organization\n\n- UI components are in `src\u002Fcomponents\u002Fui\u002F`\n- Page components are in `src\u002Fapp\u002F`\n- Use Tailwind for styling\n\n## Figma Implementation Flow\n\n1. Run get_design_context for the node\n2. Run get_screenshot for visual reference\n3. Map Figma colors to Tailwind colors defined in `tailwind.config.js`\n4. Reuse components from `src\u002Fcomponents\u002Fui\u002F` when possible\n5. Validate against screenshot before completing\n\n## Styling Rules\n\n- IMPORTANT: Use Tailwind utility classes, not inline styles\n- Colors are defined in `tailwind.config.js` theme.colors\n- Spacing uses Tailwind's default scale\n- Custom components go in `src\u002Fcomponents\u002Fui\u002F`\n\n## Asset Rules\n\n- IMPORTANT: Use localhost sources from Figma MCP server directly\n- Store static assets in `public\u002Fassets\u002F`\n- DO NOT install new icon libraries\n```\n\n4. Save to the appropriate rule file for the user's agent\n5. Test with a simple button implementation\n\n**Result:** The agent now consistently follows the project's conventions when implementing Figma designs.\n\n### Example 2: Vue + Custom CSS Project\n\nUser says: \"Set up Figma rules for my Vue app\"\n\n**Actions:**\n\n1. Run `create_design_system_rules(clientLanguages=\"typescript,javascript\", clientFrameworks=\"vue\")`\n2. Discover that project uses CSS modules and a custom design token system\n3. Generate rules:\n\n```markdown\n# Figma MCP Integration Rules\n\n## Component Organization\n\n- Components are in `src\u002Fcomponents\u002F`\n- Composables are in `src\u002Fcomposables\u002F`\n- Vue SFC structure: \u003Cscript setup>, \u003Ctemplate>, \u003Cstyle scoped>\n\n## Design Tokens\n\n- IMPORTANT: All colors defined in `src\u002Fstyles\u002Ftokens.css` as CSS variables\n- Use `var(--color-primary)`, `var(--color-secondary)`, etc.\n- Spacing: `var(--space-xs)` through `var(--space-xl)`\n- Typography: `var(--text-sm)` through `var(--text-2xl)`\n\n## Figma Implementation Flow\n\n1. Run get_design_context and get_screenshot\n2. Translate React output to Vue 3 Composition API\n3. Map Figma colors to CSS variables in `src\u002Fstyles\u002Ftokens.css`\n4. Use CSS Modules for component styles\n5. Check for existing components in `src\u002Fcomponents\u002F` before creating new ones\n\n## Styling Rules\n\n- Use CSS Modules (`.module.css` files)\n- IMPORTANT: Reference design tokens, never hardcode values\n- Scoped styles with CSS modules\n```\n\n4. Save to the appropriate rule file for the user's agent\n5. Validate with a card component\n\n**Result:** The agent now correctly translates Figma designs to Vue components using the project's design token system.\n\n### Example 3: Design System Team\n\nUser says: \"Generate rules for our design system library\"\n\n**Actions:**\n\n1. Run `create_design_system_rules(clientLanguages=\"typescript\", clientFrameworks=\"react\")`\n2. Analyze the monorepo structure with design system package\n3. Generate comprehensive rules:\n\n```markdown\n# Design System Rules\n\n## Repository Structure\n\n- Design system components: `packages\u002Fdesign-system\u002Fsrc\u002Fcomponents\u002F`\n- Documentation: `packages\u002Fdocs\u002F`\n- Design tokens: `packages\u002Ftokens\u002Fsrc\u002F`\n\n## Component Development\n\n- IMPORTANT: All components must be in `packages\u002Fdesign-system\u002Fsrc\u002Fcomponents\u002F`\n- Component file structure: `ComponentName\u002Findex.tsx`, `ComponentName.stories.tsx`, `ComponentName.test.tsx`\n- Export all components from `packages\u002Fdesign-system\u002Fsrc\u002Findex.ts`\n\n## Design Tokens\n\n- Colors: `packages\u002Ftokens\u002Fsrc\u002Fcolors.ts`\n- Typography: `packages\u002Ftokens\u002Fsrc\u002Ftypography.ts`\n- Spacing: `packages\u002Ftokens\u002Fsrc\u002Fspacing.ts`\n- IMPORTANT: Never hardcode values - import from tokens package\n\n## Documentation Requirements\n\n- Add Storybook story for every component\n- Include JSDoc with @example\n- Document all props with descriptions\n- Add accessibility notes\n\n## Figma Integration\n\n1. Get design context and screenshot from Figma\n2. Map Figma tokens to design system tokens\n3. Create or extend component in design system package\n4. Add Storybook stories showing all variants\n5. Validate against Figma screenshot\n6. Update documentation\n```\n\n4. Save to the appropriate rule file and share with team\n5. Add to team documentation\n\n**Result:** Entire team follows consistent patterns when adding components from Figma to the design system.\n\n## Best Practices\n\n### Start Simple, Iterate\n\nDon't try to capture every rule upfront. Start with the most important conventions and add rules as you encounter inconsistencies.\n\n### Be Specific\n\nInstead of: \"Use the design system\"\nWrite: \"Always use Button components from `src\u002Fcomponents\u002Fui\u002FButton.tsx` with variant prop ('primary' | 'secondary' | 'ghost')\"\n\n### Make Rules Actionable\n\nEach rule should tell the agent exactly what to do, not just what to avoid.\n\nGood: \"Colors are defined in `src\u002Ftheme\u002Fcolors.ts` - import and use these constants\"\nBad: \"Don't hardcode colors\"\n\n### Use IMPORTANT for Critical Rules\n\nPrefix rules that must never be violated with \"IMPORTANT:\" to ensure the agent prioritizes them.\n\n```markdown\n- IMPORTANT: Never expose API keys in client-side code\n- IMPORTANT: Always sanitize user input before rendering\n```\n\n### Document the Why\n\nWhen rules seem arbitrary, explain the reasoning:\n\n```markdown\n- Place all data-fetching in server components (reduces client bundle size and improves performance)\n- Use absolute imports with `@\u002F` alias (makes refactoring easier and prevents broken relative paths)\n```\n\n## Common Issues and Solutions\n\n### Issue: The agent isn't following the rules\n\n**Cause:** Rules may be too vague or not properly loaded by the agent.\n**Solution:**\n\n- Make rules more specific and actionable\n- Verify rules are saved in the correct configuration file\n- Restart your agent or IDE to reload rules\n- Add \"IMPORTANT:\" prefix to critical rules\n\n### Issue: Rules conflict with each other\n\n**Cause:** Contradictory or overlapping rules.\n**Solution:**\n\n- Review all rules for conflicts\n- Establish a clear priority hierarchy\n- Remove redundant rules\n- Consolidate related rules into single, clear statements\n\n### Issue: Too many rules increase latency\n\n**Cause:** Excessive rules increase context size and processing time.\n**Solution:**\n\n- Focus on the 20% of rules that solve 80% of consistency issues\n- Remove overly specific rules that rarely apply\n- Combine related rules\n- Use progressive disclosure (basic rules first, advanced rules in linked files)\n\n### Issue: Rules become outdated as project evolves\n\n**Cause:** Codebase changes but rules don't.\n**Solution:**\n\n- Schedule periodic rule reviews (monthly or quarterly)\n- Update rules when architectural decisions change\n- Version control your rule files\n- Document rule changes in commit messages\n\n## Understanding Design System Rules\n\nDesign system rules transform how AI coding agents work with your Figma designs:\n\n**Before rules:**\n\n- The agent makes assumptions about component structure\n- Inconsistent styling approaches across implementations\n- Hardcoded values that don't match design tokens\n- Components created in random locations\n- Repetitive explanations of project conventions\n\n**After rules:**\n\n- The agent automatically follows your conventions\n- Consistent component structure and styling\n- Proper use of design tokens from the start\n- Components organized correctly\n- Zero repetitive prompting\n\nThe time invested in creating good rules pays off exponentially across every Figma implementation task.\n\n## Additional Resources\n\n- [Figma MCP Server Documentation](https:\u002F\u002Fdevelopers.figma.com\u002Fdocs\u002Ffigma-mcp-server\u002F)\n- [Figma Variables and Design Tokens](https:\u002F\u002Fhelp.figma.com\u002Fhc\u002Fen-us\u002Farticles\u002F15339657135383-Guide-to-variables-in-Figma)\n",{"data":40,"body":41},{"name":4,"description":6},{"type":42,"children":43},"root",[44,53,60,66,73,153,159,164,199,204,210,228,234,239,267,273,282,288,301,309,334,339,344,350,355,363,404,412,430,438,456,464,482,488,493,500,633,639,782,788,1094,1100,1199,1205,1291,1297,1302,1420,1425,1430,1528,1555,1560,1566,1571,1600,1606,1612,1620,1702,1710,1820,1827,1883,1889,1896,2006,2014,2104,2112,2155,2161,2169,2212,2220,2294,2302,2363,2369,2375,2380,2388,2412,2816,2829,2839,2845,2850,2857,2879,3362,3374,3383,3389,3394,3401,3424,3968,3981,3990,3996,4002,4007,4013,4026,4032,4037,4050,4056,4061,4092,4098,4103,4152,4158,4164,4179,4202,4208,4221,4244,4250,4263,4286,4292,4305,4328,4334,4339,4347,4375,4383,4411,4416,4422,4447],{"type":45,"tag":46,"props":47,"children":49},"element","h1",{"id":48},"create-design-system-rules",[50],{"type":51,"value":52},"text","Create Design System Rules",{"type":45,"tag":54,"props":55,"children":57},"h2",{"id":56},"overview",[58],{"type":51,"value":59},"Overview",{"type":45,"tag":61,"props":62,"children":63},"p",{},[64],{"type":51,"value":65},"This skill helps you generate custom design system rules tailored to your project's specific needs. These rules guide AI coding agents to produce consistent, high-quality code when implementing Figma designs, ensuring that your team's conventions, component patterns, and architectural decisions are followed automatically.",{"type":45,"tag":67,"props":68,"children":70},"h3",{"id":69},"supported-rule-files",[71],{"type":51,"value":72},"Supported Rule Files",{"type":45,"tag":74,"props":75,"children":76},"table",{},[77,96],{"type":45,"tag":78,"props":79,"children":80},"thead",{},[81],{"type":45,"tag":82,"props":83,"children":84},"tr",{},[85,91],{"type":45,"tag":86,"props":87,"children":88},"th",{},[89],{"type":51,"value":90},"Agent",{"type":45,"tag":86,"props":92,"children":93},{},[94],{"type":51,"value":95},"Rule File",{"type":45,"tag":97,"props":98,"children":99},"tbody",{},[100,119,136],{"type":45,"tag":82,"props":101,"children":102},{},[103,109],{"type":45,"tag":104,"props":105,"children":106},"td",{},[107],{"type":51,"value":108},"Claude Code",{"type":45,"tag":104,"props":110,"children":111},{},[112],{"type":45,"tag":113,"props":114,"children":116},"code",{"className":115},[],[117],{"type":51,"value":118},"CLAUDE.md",{"type":45,"tag":82,"props":120,"children":121},{},[122,127],{"type":45,"tag":104,"props":123,"children":124},{},[125],{"type":51,"value":126},"Codex CLI",{"type":45,"tag":104,"props":128,"children":129},{},[130],{"type":45,"tag":113,"props":131,"children":133},{"className":132},[],[134],{"type":51,"value":135},"AGENTS.md",{"type":45,"tag":82,"props":137,"children":138},{},[139,144],{"type":45,"tag":104,"props":140,"children":141},{},[142],{"type":51,"value":143},"Cursor",{"type":45,"tag":104,"props":145,"children":146},{},[147],{"type":45,"tag":113,"props":148,"children":150},{"className":149},[],[151],{"type":51,"value":152},".cursor\u002Frules\u002Ffigma-design-system.mdc",{"type":45,"tag":54,"props":154,"children":156},{"id":155},"what-are-design-system-rules",[157],{"type":51,"value":158},"What Are Design System Rules?",{"type":45,"tag":61,"props":160,"children":161},{},[162],{"type":51,"value":163},"Design system rules are project-level instructions that encode the \"unwritten knowledge\" of your codebase - the kind of expertise that experienced developers know and would pass on to new team members:",{"type":45,"tag":165,"props":166,"children":167},"ul",{},[168,174,179,184,189,194],{"type":45,"tag":169,"props":170,"children":171},"li",{},[172],{"type":51,"value":173},"Which layout primitives and components to use",{"type":45,"tag":169,"props":175,"children":176},{},[177],{"type":51,"value":178},"Where component files should be located",{"type":45,"tag":169,"props":180,"children":181},{},[182],{"type":51,"value":183},"How components should be named and structured",{"type":45,"tag":169,"props":185,"children":186},{},[187],{"type":51,"value":188},"What should never be hardcoded",{"type":45,"tag":169,"props":190,"children":191},{},[192],{"type":51,"value":193},"How to handle design tokens and styling",{"type":45,"tag":169,"props":195,"children":196},{},[197],{"type":51,"value":198},"Project-specific architectural patterns",{"type":45,"tag":61,"props":200,"children":201},{},[202],{"type":51,"value":203},"Once defined, these rules dramatically reduce repetitive prompting and ensure consistent output across all Figma implementation tasks.",{"type":45,"tag":54,"props":205,"children":207},{"id":206},"prerequisites",[208],{"type":51,"value":209},"Prerequisites",{"type":45,"tag":165,"props":211,"children":212},{},[213,218,223],{"type":45,"tag":169,"props":214,"children":215},{},[216],{"type":51,"value":217},"Figma MCP server must be connected and accessible",{"type":45,"tag":169,"props":219,"children":220},{},[221],{"type":51,"value":222},"Access to the project codebase for analysis",{"type":45,"tag":169,"props":224,"children":225},{},[226],{"type":51,"value":227},"Understanding of your team's component conventions (or willingness to establish them)",{"type":45,"tag":54,"props":229,"children":231},{"id":230},"when-to-use-this-skill",[232],{"type":51,"value":233},"When to Use This Skill",{"type":45,"tag":61,"props":235,"children":236},{},[237],{"type":51,"value":238},"Use this skill when:",{"type":45,"tag":165,"props":240,"children":241},{},[242,247,252,257,262],{"type":45,"tag":169,"props":243,"children":244},{},[245],{"type":51,"value":246},"Starting a new project that will use Figma designs",{"type":45,"tag":169,"props":248,"children":249},{},[250],{"type":51,"value":251},"Onboarding an AI coding agent to an existing project with established patterns",{"type":45,"tag":169,"props":253,"children":254},{},[255],{"type":51,"value":256},"Standardizing Figma-to-code workflows across your team",{"type":45,"tag":169,"props":258,"children":259},{},[260],{"type":51,"value":261},"Updating or refining existing design system conventions",{"type":45,"tag":169,"props":263,"children":264},{},[265],{"type":51,"value":266},"Users explicitly request: \"create design system rules\", \"set up Figma guidelines\", \"customize rules for my project\"",{"type":45,"tag":54,"props":268,"children":270},{"id":269},"required-workflow",[271],{"type":51,"value":272},"Required Workflow",{"type":45,"tag":61,"props":274,"children":275},{},[276],{"type":45,"tag":277,"props":278,"children":279},"strong",{},[280],{"type":51,"value":281},"Follow these steps in order. Do not skip steps.",{"type":45,"tag":67,"props":283,"children":285},{"id":284},"step-1-run-the-create-design-system-rules-tool",[286],{"type":51,"value":287},"Step 1: Run the Create Design System Rules Tool",{"type":45,"tag":61,"props":289,"children":290},{},[291,293,299],{"type":51,"value":292},"Call the Figma MCP server's ",{"type":45,"tag":113,"props":294,"children":296},{"className":295},[],[297],{"type":51,"value":298},"create_design_system_rules",{"type":51,"value":300}," tool to get the foundational prompt and template.",{"type":45,"tag":61,"props":302,"children":303},{},[304],{"type":45,"tag":277,"props":305,"children":306},{},[307],{"type":51,"value":308},"Parameters:",{"type":45,"tag":165,"props":310,"children":311},{},[312,323],{"type":45,"tag":169,"props":313,"children":314},{},[315,321],{"type":45,"tag":113,"props":316,"children":318},{"className":317},[],[319],{"type":51,"value":320},"clientLanguages",{"type":51,"value":322},": Comma-separated list of languages used in the project (e.g., \"typescript,javascript\", \"python\", \"javascript\")",{"type":45,"tag":169,"props":324,"children":325},{},[326,332],{"type":45,"tag":113,"props":327,"children":329},{"className":328},[],[330],{"type":51,"value":331},"clientFrameworks",{"type":51,"value":333},": Framework being used (e.g., \"react\", \"vue\", \"svelte\", \"angular\", \"unknown\")",{"type":45,"tag":61,"props":335,"children":336},{},[337],{"type":51,"value":338},"This tool returns guidance and a template for creating design system rules.",{"type":45,"tag":61,"props":340,"children":341},{},[342],{"type":51,"value":343},"Structure your design system rules following the template format provided in the tool's response.",{"type":45,"tag":67,"props":345,"children":347},{"id":346},"step-2-analyze-the-codebase",[348],{"type":51,"value":349},"Step 2: Analyze the Codebase",{"type":45,"tag":61,"props":351,"children":352},{},[353],{"type":51,"value":354},"Before finalizing rules, analyze the project to understand existing patterns:",{"type":45,"tag":61,"props":356,"children":357},{},[358],{"type":45,"tag":277,"props":359,"children":360},{},[361],{"type":51,"value":362},"Component Organization:",{"type":45,"tag":165,"props":364,"children":365},{},[366,394,399],{"type":45,"tag":169,"props":367,"children":368},{},[369,371,377,379,385,386,392],{"type":51,"value":370},"Where are UI components located? (e.g., ",{"type":45,"tag":113,"props":372,"children":374},{"className":373},[],[375],{"type":51,"value":376},"src\u002Fcomponents\u002F",{"type":51,"value":378},", ",{"type":45,"tag":113,"props":380,"children":382},{"className":381},[],[383],{"type":51,"value":384},"app\u002Fui\u002F",{"type":51,"value":378},{"type":45,"tag":113,"props":387,"children":389},{"className":388},[],[390],{"type":51,"value":391},"lib\u002Fcomponents\u002F",{"type":51,"value":393},")",{"type":45,"tag":169,"props":395,"children":396},{},[397],{"type":51,"value":398},"Is there a dedicated design system directory?",{"type":45,"tag":169,"props":400,"children":401},{},[402],{"type":51,"value":403},"How are components organized? (by feature, by type, flat structure)",{"type":45,"tag":61,"props":405,"children":406},{},[407],{"type":45,"tag":277,"props":408,"children":409},{},[410],{"type":51,"value":411},"Styling Approach:",{"type":45,"tag":165,"props":413,"children":414},{},[415,420,425],{"type":45,"tag":169,"props":416,"children":417},{},[418],{"type":51,"value":419},"What CSS framework or approach is used? (Tailwind, CSS Modules, styled-components, etc.)",{"type":45,"tag":169,"props":421,"children":422},{},[423],{"type":51,"value":424},"Where are design tokens defined? (CSS variables, theme files, config files)",{"type":45,"tag":169,"props":426,"children":427},{},[428],{"type":51,"value":429},"Are there existing color, typography, or spacing tokens?",{"type":45,"tag":61,"props":431,"children":432},{},[433],{"type":45,"tag":277,"props":434,"children":435},{},[436],{"type":51,"value":437},"Component Patterns:",{"type":45,"tag":165,"props":439,"children":440},{},[441,446,451],{"type":45,"tag":169,"props":442,"children":443},{},[444],{"type":51,"value":445},"What naming conventions are used? (PascalCase, kebab-case, prefixes)",{"type":45,"tag":169,"props":447,"children":448},{},[449],{"type":51,"value":450},"How are component props typically structured?",{"type":45,"tag":169,"props":452,"children":453},{},[454],{"type":51,"value":455},"Are there common composition patterns?",{"type":45,"tag":61,"props":457,"children":458},{},[459],{"type":45,"tag":277,"props":460,"children":461},{},[462],{"type":51,"value":463},"Architecture Decisions:",{"type":45,"tag":165,"props":465,"children":466},{},[467,472,477],{"type":45,"tag":169,"props":468,"children":469},{},[470],{"type":51,"value":471},"How is state management handled?",{"type":45,"tag":169,"props":473,"children":474},{},[475],{"type":51,"value":476},"What routing system is used?",{"type":45,"tag":169,"props":478,"children":479},{},[480],{"type":51,"value":481},"Are there specific import patterns or path aliases?",{"type":45,"tag":67,"props":483,"children":485},{"id":484},"step-3-generate-project-specific-rules",[486],{"type":51,"value":487},"Step 3: Generate Project-Specific Rules",{"type":45,"tag":61,"props":489,"children":490},{},[491],{"type":51,"value":492},"Based on your codebase analysis, create a comprehensive set of rules. Include:",{"type":45,"tag":494,"props":495,"children":497},"h4",{"id":496},"general-component-rules",[498],{"type":51,"value":499},"General Component Rules",{"type":45,"tag":501,"props":502,"children":507},"pre",{"className":503,"code":504,"language":505,"meta":506,"style":506},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","- IMPORTANT: Always use components from `[YOUR_PATH]` when possible\n- Place new UI components in `[COMPONENT_DIRECTORY]`\n- Follow `[NAMING_CONVENTION]` for component names\n- Components must export as `[EXPORT_PATTERN]`\n","markdown","",[508],{"type":45,"tag":113,"props":509,"children":510},{"__ignoreMap":506},[511,549,576,607],{"type":45,"tag":512,"props":513,"children":516},"span",{"class":514,"line":515},"line",1,[517,523,529,534,540,544],{"type":45,"tag":512,"props":518,"children":520},{"style":519},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[521],{"type":51,"value":522},"-",{"type":45,"tag":512,"props":524,"children":526},{"style":525},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[527],{"type":51,"value":528}," IMPORTANT: Always use components from ",{"type":45,"tag":512,"props":530,"children":531},{"style":519},[532],{"type":51,"value":533},"`",{"type":45,"tag":512,"props":535,"children":537},{"style":536},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[538],{"type":51,"value":539},"[YOUR_PATH]",{"type":45,"tag":512,"props":541,"children":542},{"style":519},[543],{"type":51,"value":533},{"type":45,"tag":512,"props":545,"children":546},{"style":525},[547],{"type":51,"value":548}," when possible\n",{"type":45,"tag":512,"props":550,"children":552},{"class":514,"line":551},2,[553,557,562,566,571],{"type":45,"tag":512,"props":554,"children":555},{"style":519},[556],{"type":51,"value":522},{"type":45,"tag":512,"props":558,"children":559},{"style":525},[560],{"type":51,"value":561}," Place new UI components in ",{"type":45,"tag":512,"props":563,"children":564},{"style":519},[565],{"type":51,"value":533},{"type":45,"tag":512,"props":567,"children":568},{"style":536},[569],{"type":51,"value":570},"[COMPONENT_DIRECTORY]",{"type":45,"tag":512,"props":572,"children":573},{"style":519},[574],{"type":51,"value":575},"`\n",{"type":45,"tag":512,"props":577,"children":579},{"class":514,"line":578},3,[580,584,589,593,598,602],{"type":45,"tag":512,"props":581,"children":582},{"style":519},[583],{"type":51,"value":522},{"type":45,"tag":512,"props":585,"children":586},{"style":525},[587],{"type":51,"value":588}," Follow ",{"type":45,"tag":512,"props":590,"children":591},{"style":519},[592],{"type":51,"value":533},{"type":45,"tag":512,"props":594,"children":595},{"style":536},[596],{"type":51,"value":597},"[NAMING_CONVENTION]",{"type":45,"tag":512,"props":599,"children":600},{"style":519},[601],{"type":51,"value":533},{"type":45,"tag":512,"props":603,"children":604},{"style":525},[605],{"type":51,"value":606}," for component names\n",{"type":45,"tag":512,"props":608,"children":610},{"class":514,"line":609},4,[611,615,620,624,629],{"type":45,"tag":512,"props":612,"children":613},{"style":519},[614],{"type":51,"value":522},{"type":45,"tag":512,"props":616,"children":617},{"style":525},[618],{"type":51,"value":619}," Components must export as ",{"type":45,"tag":512,"props":621,"children":622},{"style":519},[623],{"type":51,"value":533},{"type":45,"tag":512,"props":625,"children":626},{"style":536},[627],{"type":51,"value":628},"[EXPORT_PATTERN]",{"type":45,"tag":512,"props":630,"children":631},{"style":519},[632],{"type":51,"value":575},{"type":45,"tag":494,"props":634,"children":636},{"id":635},"styling-rules",[637],{"type":51,"value":638},"Styling Rules",{"type":45,"tag":501,"props":640,"children":642},{"className":503,"code":641,"language":505,"meta":506,"style":506},"- Use `[CSS_FRAMEWORK\u002FAPPROACH]` for styling\n- Design tokens are defined in `[TOKEN_LOCATION]`\n- IMPORTANT: Never hardcode colors - always use tokens from `[TOKEN_FILE]`\n- Spacing values must use the `[SPACING_SYSTEM]` scale\n- Typography follows the scale defined in `[TYPOGRAPHY_LOCATION]`\n",[643],{"type":45,"tag":113,"props":644,"children":645},{"__ignoreMap":506},[646,676,701,726,756],{"type":45,"tag":512,"props":647,"children":648},{"class":514,"line":515},[649,653,658,662,667,671],{"type":45,"tag":512,"props":650,"children":651},{"style":519},[652],{"type":51,"value":522},{"type":45,"tag":512,"props":654,"children":655},{"style":525},[656],{"type":51,"value":657}," Use ",{"type":45,"tag":512,"props":659,"children":660},{"style":519},[661],{"type":51,"value":533},{"type":45,"tag":512,"props":663,"children":664},{"style":536},[665],{"type":51,"value":666},"[CSS_FRAMEWORK\u002FAPPROACH]",{"type":45,"tag":512,"props":668,"children":669},{"style":519},[670],{"type":51,"value":533},{"type":45,"tag":512,"props":672,"children":673},{"style":525},[674],{"type":51,"value":675}," for styling\n",{"type":45,"tag":512,"props":677,"children":678},{"class":514,"line":551},[679,683,688,692,697],{"type":45,"tag":512,"props":680,"children":681},{"style":519},[682],{"type":51,"value":522},{"type":45,"tag":512,"props":684,"children":685},{"style":525},[686],{"type":51,"value":687}," Design tokens are defined in ",{"type":45,"tag":512,"props":689,"children":690},{"style":519},[691],{"type":51,"value":533},{"type":45,"tag":512,"props":693,"children":694},{"style":536},[695],{"type":51,"value":696},"[TOKEN_LOCATION]",{"type":45,"tag":512,"props":698,"children":699},{"style":519},[700],{"type":51,"value":575},{"type":45,"tag":512,"props":702,"children":703},{"class":514,"line":578},[704,708,713,717,722],{"type":45,"tag":512,"props":705,"children":706},{"style":519},[707],{"type":51,"value":522},{"type":45,"tag":512,"props":709,"children":710},{"style":525},[711],{"type":51,"value":712}," IMPORTANT: Never hardcode colors - always use tokens from ",{"type":45,"tag":512,"props":714,"children":715},{"style":519},[716],{"type":51,"value":533},{"type":45,"tag":512,"props":718,"children":719},{"style":536},[720],{"type":51,"value":721},"[TOKEN_FILE]",{"type":45,"tag":512,"props":723,"children":724},{"style":519},[725],{"type":51,"value":575},{"type":45,"tag":512,"props":727,"children":728},{"class":514,"line":609},[729,733,738,742,747,751],{"type":45,"tag":512,"props":730,"children":731},{"style":519},[732],{"type":51,"value":522},{"type":45,"tag":512,"props":734,"children":735},{"style":525},[736],{"type":51,"value":737}," Spacing values must use the ",{"type":45,"tag":512,"props":739,"children":740},{"style":519},[741],{"type":51,"value":533},{"type":45,"tag":512,"props":743,"children":744},{"style":536},[745],{"type":51,"value":746},"[SPACING_SYSTEM]",{"type":45,"tag":512,"props":748,"children":749},{"style":519},[750],{"type":51,"value":533},{"type":45,"tag":512,"props":752,"children":753},{"style":525},[754],{"type":51,"value":755}," scale\n",{"type":45,"tag":512,"props":757,"children":759},{"class":514,"line":758},5,[760,764,769,773,778],{"type":45,"tag":512,"props":761,"children":762},{"style":519},[763],{"type":51,"value":522},{"type":45,"tag":512,"props":765,"children":766},{"style":525},[767],{"type":51,"value":768}," Typography follows the scale defined in ",{"type":45,"tag":512,"props":770,"children":771},{"style":519},[772],{"type":51,"value":533},{"type":45,"tag":512,"props":774,"children":775},{"style":536},[776],{"type":51,"value":777},"[TYPOGRAPHY_LOCATION]",{"type":45,"tag":512,"props":779,"children":780},{"style":519},[781],{"type":51,"value":575},{"type":45,"tag":494,"props":783,"children":785},{"id":784},"figma-mcp-integration-rules",[786],{"type":51,"value":787},"Figma MCP Integration Rules",{"type":45,"tag":501,"props":789,"children":791},{"className":503,"code":790,"language":505,"meta":506,"style":506},"## Figma MCP Integration Rules\n\nThese rules define how to translate Figma inputs into code for this project and must be followed for every Figma-driven change.\n\n### Required Flow (do not skip)\n\n1. Run get_design_context first to fetch the structured representation for the exact node(s)\n2. If the response is too large or truncated, run get_metadata to get the high-level node map, then re-fetch only the required node(s) with get_design_context\n3. Run get_screenshot for a visual reference of the node variant being implemented\n4. Only after you have both get_design_context and get_screenshot, download any assets needed and start implementation\n5. Translate the output (usually React + Tailwind) into this project's conventions, styles, and framework\n6. Validate against Figma for 1:1 look and behavior before marking complete\n\n### Implementation Rules\n\n- Treat the Figma MCP output (React + Tailwind) as a representation of design and behavior, not as final code style\n- Replace Tailwind utility classes with `[YOUR_STYLING_APPROACH]` when applicable\n- Reuse existing components from `[COMPONENT_PATH]` instead of duplicating functionality\n- Use the project's color system, typography scale, and spacing tokens consistently\n- Respect existing routing, state management, and data-fetch patterns\n- Strive for 1:1 visual parity with the Figma design\n- Validate the final UI against the Figma screenshot for both look and behavior\n",[792],{"type":45,"tag":113,"props":793,"children":794},{"__ignoreMap":506},[795,809,818,826,833,846,854,868,882,896,910,924,938,946,959,967,980,1011,1042,1055,1068,1081],{"type":45,"tag":512,"props":796,"children":797},{"class":514,"line":515},[798,803],{"type":45,"tag":512,"props":799,"children":800},{"style":519},[801],{"type":51,"value":802},"## ",{"type":45,"tag":512,"props":804,"children":806},{"style":805},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[807],{"type":51,"value":808},"Figma MCP Integration Rules\n",{"type":45,"tag":512,"props":810,"children":811},{"class":514,"line":551},[812],{"type":45,"tag":512,"props":813,"children":815},{"emptyLinePlaceholder":814},true,[816],{"type":51,"value":817},"\n",{"type":45,"tag":512,"props":819,"children":820},{"class":514,"line":578},[821],{"type":45,"tag":512,"props":822,"children":823},{"style":525},[824],{"type":51,"value":825},"These rules define how to translate Figma inputs into code for this project and must be followed for every Figma-driven change.\n",{"type":45,"tag":512,"props":827,"children":828},{"class":514,"line":609},[829],{"type":45,"tag":512,"props":830,"children":831},{"emptyLinePlaceholder":814},[832],{"type":51,"value":817},{"type":45,"tag":512,"props":834,"children":835},{"class":514,"line":758},[836,841],{"type":45,"tag":512,"props":837,"children":838},{"style":519},[839],{"type":51,"value":840},"### ",{"type":45,"tag":512,"props":842,"children":843},{"style":805},[844],{"type":51,"value":845},"Required Flow (do not skip)\n",{"type":45,"tag":512,"props":847,"children":849},{"class":514,"line":848},6,[850],{"type":45,"tag":512,"props":851,"children":852},{"emptyLinePlaceholder":814},[853],{"type":51,"value":817},{"type":45,"tag":512,"props":855,"children":857},{"class":514,"line":856},7,[858,863],{"type":45,"tag":512,"props":859,"children":860},{"style":519},[861],{"type":51,"value":862},"1.",{"type":45,"tag":512,"props":864,"children":865},{"style":525},[866],{"type":51,"value":867}," Run get_design_context first to fetch the structured representation for the exact node(s)\n",{"type":45,"tag":512,"props":869,"children":871},{"class":514,"line":870},8,[872,877],{"type":45,"tag":512,"props":873,"children":874},{"style":519},[875],{"type":51,"value":876},"2.",{"type":45,"tag":512,"props":878,"children":879},{"style":525},[880],{"type":51,"value":881}," If the response is too large or truncated, run get_metadata to get the high-level node map, then re-fetch only the required node(s) with get_design_context\n",{"type":45,"tag":512,"props":883,"children":885},{"class":514,"line":884},9,[886,891],{"type":45,"tag":512,"props":887,"children":888},{"style":519},[889],{"type":51,"value":890},"3.",{"type":45,"tag":512,"props":892,"children":893},{"style":525},[894],{"type":51,"value":895}," Run get_screenshot for a visual reference of the node variant being implemented\n",{"type":45,"tag":512,"props":897,"children":899},{"class":514,"line":898},10,[900,905],{"type":45,"tag":512,"props":901,"children":902},{"style":519},[903],{"type":51,"value":904},"4.",{"type":45,"tag":512,"props":906,"children":907},{"style":525},[908],{"type":51,"value":909}," Only after you have both get_design_context and get_screenshot, download any assets needed and start implementation\n",{"type":45,"tag":512,"props":911,"children":913},{"class":514,"line":912},11,[914,919],{"type":45,"tag":512,"props":915,"children":916},{"style":519},[917],{"type":51,"value":918},"5.",{"type":45,"tag":512,"props":920,"children":921},{"style":525},[922],{"type":51,"value":923}," Translate the output (usually React + Tailwind) into this project's conventions, styles, and framework\n",{"type":45,"tag":512,"props":925,"children":927},{"class":514,"line":926},12,[928,933],{"type":45,"tag":512,"props":929,"children":930},{"style":519},[931],{"type":51,"value":932},"6.",{"type":45,"tag":512,"props":934,"children":935},{"style":525},[936],{"type":51,"value":937}," Validate against Figma for 1:1 look and behavior before marking complete\n",{"type":45,"tag":512,"props":939,"children":941},{"class":514,"line":940},13,[942],{"type":45,"tag":512,"props":943,"children":944},{"emptyLinePlaceholder":814},[945],{"type":51,"value":817},{"type":45,"tag":512,"props":947,"children":949},{"class":514,"line":948},14,[950,954],{"type":45,"tag":512,"props":951,"children":952},{"style":519},[953],{"type":51,"value":840},{"type":45,"tag":512,"props":955,"children":956},{"style":805},[957],{"type":51,"value":958},"Implementation Rules\n",{"type":45,"tag":512,"props":960,"children":962},{"class":514,"line":961},15,[963],{"type":45,"tag":512,"props":964,"children":965},{"emptyLinePlaceholder":814},[966],{"type":51,"value":817},{"type":45,"tag":512,"props":968,"children":970},{"class":514,"line":969},16,[971,975],{"type":45,"tag":512,"props":972,"children":973},{"style":519},[974],{"type":51,"value":522},{"type":45,"tag":512,"props":976,"children":977},{"style":525},[978],{"type":51,"value":979}," Treat the Figma MCP output (React + Tailwind) as a representation of design and behavior, not as final code style\n",{"type":45,"tag":512,"props":981,"children":983},{"class":514,"line":982},17,[984,988,993,997,1002,1006],{"type":45,"tag":512,"props":985,"children":986},{"style":519},[987],{"type":51,"value":522},{"type":45,"tag":512,"props":989,"children":990},{"style":525},[991],{"type":51,"value":992}," Replace Tailwind utility classes with ",{"type":45,"tag":512,"props":994,"children":995},{"style":519},[996],{"type":51,"value":533},{"type":45,"tag":512,"props":998,"children":999},{"style":536},[1000],{"type":51,"value":1001},"[YOUR_STYLING_APPROACH]",{"type":45,"tag":512,"props":1003,"children":1004},{"style":519},[1005],{"type":51,"value":533},{"type":45,"tag":512,"props":1007,"children":1008},{"style":525},[1009],{"type":51,"value":1010}," when applicable\n",{"type":45,"tag":512,"props":1012,"children":1014},{"class":514,"line":1013},18,[1015,1019,1024,1028,1033,1037],{"type":45,"tag":512,"props":1016,"children":1017},{"style":519},[1018],{"type":51,"value":522},{"type":45,"tag":512,"props":1020,"children":1021},{"style":525},[1022],{"type":51,"value":1023}," Reuse existing components from ",{"type":45,"tag":512,"props":1025,"children":1026},{"style":519},[1027],{"type":51,"value":533},{"type":45,"tag":512,"props":1029,"children":1030},{"style":536},[1031],{"type":51,"value":1032},"[COMPONENT_PATH]",{"type":45,"tag":512,"props":1034,"children":1035},{"style":519},[1036],{"type":51,"value":533},{"type":45,"tag":512,"props":1038,"children":1039},{"style":525},[1040],{"type":51,"value":1041}," instead of duplicating functionality\n",{"type":45,"tag":512,"props":1043,"children":1045},{"class":514,"line":1044},19,[1046,1050],{"type":45,"tag":512,"props":1047,"children":1048},{"style":519},[1049],{"type":51,"value":522},{"type":45,"tag":512,"props":1051,"children":1052},{"style":525},[1053],{"type":51,"value":1054}," Use the project's color system, typography scale, and spacing tokens consistently\n",{"type":45,"tag":512,"props":1056,"children":1058},{"class":514,"line":1057},20,[1059,1063],{"type":45,"tag":512,"props":1060,"children":1061},{"style":519},[1062],{"type":51,"value":522},{"type":45,"tag":512,"props":1064,"children":1065},{"style":525},[1066],{"type":51,"value":1067}," Respect existing routing, state management, and data-fetch patterns\n",{"type":45,"tag":512,"props":1069,"children":1071},{"class":514,"line":1070},21,[1072,1076],{"type":45,"tag":512,"props":1073,"children":1074},{"style":519},[1075],{"type":51,"value":522},{"type":45,"tag":512,"props":1077,"children":1078},{"style":525},[1079],{"type":51,"value":1080}," Strive for 1:1 visual parity with the Figma design\n",{"type":45,"tag":512,"props":1082,"children":1084},{"class":514,"line":1083},22,[1085,1089],{"type":45,"tag":512,"props":1086,"children":1087},{"style":519},[1088],{"type":51,"value":522},{"type":45,"tag":512,"props":1090,"children":1091},{"style":525},[1092],{"type":51,"value":1093}," Validate the final UI against the Figma screenshot for both look and behavior\n",{"type":45,"tag":494,"props":1095,"children":1097},{"id":1096},"asset-handling-rules",[1098],{"type":51,"value":1099},"Asset Handling Rules",{"type":45,"tag":501,"props":1101,"children":1103},{"className":503,"code":1102,"language":505,"meta":506,"style":506},"## Asset Handling\n\n- The Figma MCP server provides an assets endpoint which can serve image and SVG assets\n- IMPORTANT: If the Figma MCP server returns a localhost source for an image or SVG, use that source directly\n- IMPORTANT: DO NOT import\u002Fadd new icon packages - all assets should be in the Figma payload\n- IMPORTANT: DO NOT use or create placeholders if a localhost source is provided\n- Store downloaded assets in `[ASSET_DIRECTORY]`\n",[1104],{"type":45,"tag":113,"props":1105,"children":1106},{"__ignoreMap":506},[1107,1119,1126,1138,1150,1162,1174],{"type":45,"tag":512,"props":1108,"children":1109},{"class":514,"line":515},[1110,1114],{"type":45,"tag":512,"props":1111,"children":1112},{"style":519},[1113],{"type":51,"value":802},{"type":45,"tag":512,"props":1115,"children":1116},{"style":805},[1117],{"type":51,"value":1118},"Asset Handling\n",{"type":45,"tag":512,"props":1120,"children":1121},{"class":514,"line":551},[1122],{"type":45,"tag":512,"props":1123,"children":1124},{"emptyLinePlaceholder":814},[1125],{"type":51,"value":817},{"type":45,"tag":512,"props":1127,"children":1128},{"class":514,"line":578},[1129,1133],{"type":45,"tag":512,"props":1130,"children":1131},{"style":519},[1132],{"type":51,"value":522},{"type":45,"tag":512,"props":1134,"children":1135},{"style":525},[1136],{"type":51,"value":1137}," The Figma MCP server provides an assets endpoint which can serve image and SVG assets\n",{"type":45,"tag":512,"props":1139,"children":1140},{"class":514,"line":609},[1141,1145],{"type":45,"tag":512,"props":1142,"children":1143},{"style":519},[1144],{"type":51,"value":522},{"type":45,"tag":512,"props":1146,"children":1147},{"style":525},[1148],{"type":51,"value":1149}," IMPORTANT: If the Figma MCP server returns a localhost source for an image or SVG, use that source directly\n",{"type":45,"tag":512,"props":1151,"children":1152},{"class":514,"line":758},[1153,1157],{"type":45,"tag":512,"props":1154,"children":1155},{"style":519},[1156],{"type":51,"value":522},{"type":45,"tag":512,"props":1158,"children":1159},{"style":525},[1160],{"type":51,"value":1161}," IMPORTANT: DO NOT import\u002Fadd new icon packages - all assets should be in the Figma payload\n",{"type":45,"tag":512,"props":1163,"children":1164},{"class":514,"line":848},[1165,1169],{"type":45,"tag":512,"props":1166,"children":1167},{"style":519},[1168],{"type":51,"value":522},{"type":45,"tag":512,"props":1170,"children":1171},{"style":525},[1172],{"type":51,"value":1173}," IMPORTANT: DO NOT use or create placeholders if a localhost source is provided\n",{"type":45,"tag":512,"props":1175,"children":1176},{"class":514,"line":856},[1177,1181,1186,1190,1195],{"type":45,"tag":512,"props":1178,"children":1179},{"style":519},[1180],{"type":51,"value":522},{"type":45,"tag":512,"props":1182,"children":1183},{"style":525},[1184],{"type":51,"value":1185}," Store downloaded assets in ",{"type":45,"tag":512,"props":1187,"children":1188},{"style":519},[1189],{"type":51,"value":533},{"type":45,"tag":512,"props":1191,"children":1192},{"style":536},[1193],{"type":51,"value":1194},"[ASSET_DIRECTORY]",{"type":45,"tag":512,"props":1196,"children":1197},{"style":519},[1198],{"type":51,"value":575},{"type":45,"tag":494,"props":1200,"children":1202},{"id":1201},"project-specific-conventions",[1203],{"type":51,"value":1204},"Project-Specific Conventions",{"type":45,"tag":501,"props":1206,"children":1208},{"className":503,"code":1207,"language":505,"meta":506,"style":506},"## Project-Specific Conventions\n\n- [Add any unique architectural patterns]\n- [Add any special import requirements]\n- [Add any testing requirements]\n- [Add any accessibility standards]\n- [Add any performance considerations]\n",[1209],{"type":45,"tag":113,"props":1210,"children":1211},{"__ignoreMap":506},[1212,1224,1231,1243,1255,1267,1279],{"type":45,"tag":512,"props":1213,"children":1214},{"class":514,"line":515},[1215,1219],{"type":45,"tag":512,"props":1216,"children":1217},{"style":519},[1218],{"type":51,"value":802},{"type":45,"tag":512,"props":1220,"children":1221},{"style":805},[1222],{"type":51,"value":1223},"Project-Specific Conventions\n",{"type":45,"tag":512,"props":1225,"children":1226},{"class":514,"line":551},[1227],{"type":45,"tag":512,"props":1228,"children":1229},{"emptyLinePlaceholder":814},[1230],{"type":51,"value":817},{"type":45,"tag":512,"props":1232,"children":1233},{"class":514,"line":578},[1234,1238],{"type":45,"tag":512,"props":1235,"children":1236},{"style":519},[1237],{"type":51,"value":522},{"type":45,"tag":512,"props":1239,"children":1240},{"style":525},[1241],{"type":51,"value":1242}," [Add any unique architectural patterns]\n",{"type":45,"tag":512,"props":1244,"children":1245},{"class":514,"line":609},[1246,1250],{"type":45,"tag":512,"props":1247,"children":1248},{"style":519},[1249],{"type":51,"value":522},{"type":45,"tag":512,"props":1251,"children":1252},{"style":525},[1253],{"type":51,"value":1254}," [Add any special import requirements]\n",{"type":45,"tag":512,"props":1256,"children":1257},{"class":514,"line":758},[1258,1262],{"type":45,"tag":512,"props":1259,"children":1260},{"style":519},[1261],{"type":51,"value":522},{"type":45,"tag":512,"props":1263,"children":1264},{"style":525},[1265],{"type":51,"value":1266}," [Add any testing requirements]\n",{"type":45,"tag":512,"props":1268,"children":1269},{"class":514,"line":848},[1270,1274],{"type":45,"tag":512,"props":1271,"children":1272},{"style":519},[1273],{"type":51,"value":522},{"type":45,"tag":512,"props":1275,"children":1276},{"style":525},[1277],{"type":51,"value":1278}," [Add any accessibility standards]\n",{"type":45,"tag":512,"props":1280,"children":1281},{"class":514,"line":856},[1282,1286],{"type":45,"tag":512,"props":1283,"children":1284},{"style":519},[1285],{"type":51,"value":522},{"type":45,"tag":512,"props":1287,"children":1288},{"style":525},[1289],{"type":51,"value":1290}," [Add any performance considerations]\n",{"type":45,"tag":67,"props":1292,"children":1294},{"id":1293},"step-4-save-rules-to-the-appropriate-rule-file",[1295],{"type":51,"value":1296},"Step 4: Save Rules to the Appropriate Rule File",{"type":45,"tag":61,"props":1298,"children":1299},{},[1300],{"type":51,"value":1301},"Detect which AI coding agent the user is working with and save the generated rules to the corresponding file:",{"type":45,"tag":74,"props":1303,"children":1304},{},[1305,1324],{"type":45,"tag":78,"props":1306,"children":1307},{},[1308],{"type":45,"tag":82,"props":1309,"children":1310},{},[1311,1315,1319],{"type":45,"tag":86,"props":1312,"children":1313},{},[1314],{"type":51,"value":90},{"type":45,"tag":86,"props":1316,"children":1317},{},[1318],{"type":51,"value":95},{"type":45,"tag":86,"props":1320,"children":1321},{},[1322],{"type":51,"value":1323},"Notes",{"type":45,"tag":97,"props":1325,"children":1326},{},[1327,1357,1378],{"type":45,"tag":82,"props":1328,"children":1329},{},[1330,1334,1344],{"type":45,"tag":104,"props":1331,"children":1332},{},[1333],{"type":51,"value":108},{"type":45,"tag":104,"props":1335,"children":1336},{},[1337,1342],{"type":45,"tag":113,"props":1338,"children":1340},{"className":1339},[],[1341],{"type":51,"value":118},{"type":51,"value":1343}," in project root",{"type":45,"tag":104,"props":1345,"children":1346},{},[1347,1349,1355],{"type":51,"value":1348},"Markdown format. Can also use ",{"type":45,"tag":113,"props":1350,"children":1352},{"className":1351},[],[1353],{"type":51,"value":1354},".claude\u002Frules\u002Ffigma-design-system.md",{"type":51,"value":1356}," for modular organization.",{"type":45,"tag":82,"props":1358,"children":1359},{},[1360,1364,1373],{"type":45,"tag":104,"props":1361,"children":1362},{},[1363],{"type":51,"value":126},{"type":45,"tag":104,"props":1365,"children":1366},{},[1367,1372],{"type":45,"tag":113,"props":1368,"children":1370},{"className":1369},[],[1371],{"type":51,"value":135},{"type":51,"value":1343},{"type":45,"tag":104,"props":1374,"children":1375},{},[1376],{"type":51,"value":1377},"Markdown format. Append as a new section if file already exists. 32 KiB combined size limit.",{"type":45,"tag":82,"props":1379,"children":1380},{},[1381,1385,1393],{"type":45,"tag":104,"props":1382,"children":1383},{},[1384],{"type":51,"value":143},{"type":45,"tag":104,"props":1386,"children":1387},{},[1388],{"type":45,"tag":113,"props":1389,"children":1391},{"className":1390},[],[1392],{"type":51,"value":152},{"type":45,"tag":104,"props":1394,"children":1395},{},[1396,1398,1404,1405,1411,1412,1418],{"type":51,"value":1397},"Markdown with YAML frontmatter (",{"type":45,"tag":113,"props":1399,"children":1401},{"className":1400},[],[1402],{"type":51,"value":1403},"description",{"type":51,"value":378},{"type":45,"tag":113,"props":1406,"children":1408},{"className":1407},[],[1409],{"type":51,"value":1410},"globs",{"type":51,"value":378},{"type":45,"tag":113,"props":1413,"children":1415},{"className":1414},[],[1416],{"type":51,"value":1417},"alwaysApply",{"type":51,"value":1419},").",{"type":45,"tag":61,"props":1421,"children":1422},{},[1423],{"type":51,"value":1424},"If unsure which agent the user is working with, check for existing rule files in the project or ask the user.",{"type":45,"tag":61,"props":1426,"children":1427},{},[1428],{"type":51,"value":1429},"For Cursor, wrap the rules with YAML frontmatter:",{"type":45,"tag":501,"props":1431,"children":1433},{"className":503,"code":1432,"language":505,"meta":506,"style":506},"---\ndescription: Rules for implementing Figma designs using the Figma MCP server. Covers component organization, styling conventions, design tokens, asset handling, and the required Figma-to-code workflow.\nglobs: \"src\u002Fcomponents\u002F**\"\nalwaysApply: false\n---\n\n[Generated rules here]\n",[1434],{"type":45,"tag":113,"props":1435,"children":1436},{"__ignoreMap":506},[1437,1445,1463,1489,1506,1513,1520],{"type":45,"tag":512,"props":1438,"children":1439},{"class":514,"line":515},[1440],{"type":45,"tag":512,"props":1441,"children":1442},{"style":519},[1443],{"type":51,"value":1444},"---\n",{"type":45,"tag":512,"props":1446,"children":1447},{"class":514,"line":551},[1448,1453,1458],{"type":45,"tag":512,"props":1449,"children":1451},{"style":1450},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1452],{"type":51,"value":1403},{"type":45,"tag":512,"props":1454,"children":1455},{"style":519},[1456],{"type":51,"value":1457},":",{"type":45,"tag":512,"props":1459,"children":1460},{"style":536},[1461],{"type":51,"value":1462}," Rules for implementing Figma designs using the Figma MCP server. Covers component organization, styling conventions, design tokens, asset handling, and the required Figma-to-code workflow.\n",{"type":45,"tag":512,"props":1464,"children":1465},{"class":514,"line":578},[1466,1470,1474,1479,1484],{"type":45,"tag":512,"props":1467,"children":1468},{"style":1450},[1469],{"type":51,"value":1410},{"type":45,"tag":512,"props":1471,"children":1472},{"style":519},[1473],{"type":51,"value":1457},{"type":45,"tag":512,"props":1475,"children":1476},{"style":519},[1477],{"type":51,"value":1478}," \"",{"type":45,"tag":512,"props":1480,"children":1481},{"style":536},[1482],{"type":51,"value":1483},"src\u002Fcomponents\u002F**",{"type":45,"tag":512,"props":1485,"children":1486},{"style":519},[1487],{"type":51,"value":1488},"\"\n",{"type":45,"tag":512,"props":1490,"children":1491},{"class":514,"line":609},[1492,1496,1500],{"type":45,"tag":512,"props":1493,"children":1494},{"style":1450},[1495],{"type":51,"value":1417},{"type":45,"tag":512,"props":1497,"children":1498},{"style":519},[1499],{"type":51,"value":1457},{"type":45,"tag":512,"props":1501,"children":1503},{"style":1502},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[1504],{"type":51,"value":1505}," false\n",{"type":45,"tag":512,"props":1507,"children":1508},{"class":514,"line":758},[1509],{"type":45,"tag":512,"props":1510,"children":1511},{"style":519},[1512],{"type":51,"value":1444},{"type":45,"tag":512,"props":1514,"children":1515},{"class":514,"line":848},[1516],{"type":45,"tag":512,"props":1517,"children":1518},{"emptyLinePlaceholder":814},[1519],{"type":51,"value":817},{"type":45,"tag":512,"props":1521,"children":1522},{"class":514,"line":856},[1523],{"type":45,"tag":512,"props":1524,"children":1525},{"style":525},[1526],{"type":51,"value":1527},"[Generated rules here]\n",{"type":45,"tag":61,"props":1529,"children":1530},{},[1531,1533,1538,1540,1546,1548,1554],{"type":51,"value":1532},"Customize the ",{"type":45,"tag":113,"props":1534,"children":1536},{"className":1535},[],[1537],{"type":51,"value":1410},{"type":51,"value":1539}," pattern to match the directories where Figma-derived code will live in the project (e.g., ",{"type":45,"tag":113,"props":1541,"children":1543},{"className":1542},[],[1544],{"type":51,"value":1545},"\"src\u002F**\u002F*.tsx\"",{"type":51,"value":1547}," or ",{"type":45,"tag":113,"props":1549,"children":1551},{"className":1550},[],[1552],{"type":51,"value":1553},"[\"src\u002Fcomponents\u002F**\", \"src\u002Fpages\u002F**\"]",{"type":51,"value":1419},{"type":45,"tag":61,"props":1556,"children":1557},{},[1558],{"type":51,"value":1559},"After saving, the rules will be automatically loaded by the agent and applied to all Figma implementation tasks.",{"type":45,"tag":67,"props":1561,"children":1563},{"id":1562},"step-5-validate-and-iterate",[1564],{"type":51,"value":1565},"Step 5: Validate and Iterate",{"type":45,"tag":61,"props":1567,"children":1568},{},[1569],{"type":51,"value":1570},"After creating rules:",{"type":45,"tag":1572,"props":1573,"children":1574},"ol",{},[1575,1580,1585,1590,1595],{"type":45,"tag":169,"props":1576,"children":1577},{},[1578],{"type":51,"value":1579},"Test with a simple Figma component implementation",{"type":45,"tag":169,"props":1581,"children":1582},{},[1583],{"type":51,"value":1584},"Verify the agent follows the rules correctly",{"type":45,"tag":169,"props":1586,"children":1587},{},[1588],{"type":51,"value":1589},"Refine any rules that aren't working as expected",{"type":45,"tag":169,"props":1591,"children":1592},{},[1593],{"type":51,"value":1594},"Share with team members for feedback",{"type":45,"tag":169,"props":1596,"children":1597},{},[1598],{"type":51,"value":1599},"Update rules as the project evolves",{"type":45,"tag":54,"props":1601,"children":1603},{"id":1602},"rule-categories-and-examples",[1604],{"type":51,"value":1605},"Rule Categories and Examples",{"type":45,"tag":67,"props":1607,"children":1609},{"id":1608},"essential-rules-always-include",[1610],{"type":51,"value":1611},"Essential Rules (Always Include)",{"type":45,"tag":61,"props":1613,"children":1614},{},[1615],{"type":45,"tag":277,"props":1616,"children":1617},{},[1618],{"type":51,"value":1619},"Component Discovery:",{"type":45,"tag":501,"props":1621,"children":1623},{"className":503,"code":1622,"language":505,"meta":506,"style":506},"- UI components are located in `src\u002Fcomponents\u002Fui\u002F`\n- Feature components are in `src\u002Fcomponents\u002Ffeatures\u002F`\n- Layout primitives are in `src\u002Fcomponents\u002Flayout\u002F`\n",[1624],{"type":45,"tag":113,"props":1625,"children":1626},{"__ignoreMap":506},[1627,1652,1677],{"type":45,"tag":512,"props":1628,"children":1629},{"class":514,"line":515},[1630,1634,1639,1643,1648],{"type":45,"tag":512,"props":1631,"children":1632},{"style":519},[1633],{"type":51,"value":522},{"type":45,"tag":512,"props":1635,"children":1636},{"style":525},[1637],{"type":51,"value":1638}," UI components are located in ",{"type":45,"tag":512,"props":1640,"children":1641},{"style":519},[1642],{"type":51,"value":533},{"type":45,"tag":512,"props":1644,"children":1645},{"style":536},[1646],{"type":51,"value":1647},"src\u002Fcomponents\u002Fui\u002F",{"type":45,"tag":512,"props":1649,"children":1650},{"style":519},[1651],{"type":51,"value":575},{"type":45,"tag":512,"props":1653,"children":1654},{"class":514,"line":551},[1655,1659,1664,1668,1673],{"type":45,"tag":512,"props":1656,"children":1657},{"style":519},[1658],{"type":51,"value":522},{"type":45,"tag":512,"props":1660,"children":1661},{"style":525},[1662],{"type":51,"value":1663}," Feature components are in ",{"type":45,"tag":512,"props":1665,"children":1666},{"style":519},[1667],{"type":51,"value":533},{"type":45,"tag":512,"props":1669,"children":1670},{"style":536},[1671],{"type":51,"value":1672},"src\u002Fcomponents\u002Ffeatures\u002F",{"type":45,"tag":512,"props":1674,"children":1675},{"style":519},[1676],{"type":51,"value":575},{"type":45,"tag":512,"props":1678,"children":1679},{"class":514,"line":578},[1680,1684,1689,1693,1698],{"type":45,"tag":512,"props":1681,"children":1682},{"style":519},[1683],{"type":51,"value":522},{"type":45,"tag":512,"props":1685,"children":1686},{"style":525},[1687],{"type":51,"value":1688}," Layout primitives are in ",{"type":45,"tag":512,"props":1690,"children":1691},{"style":519},[1692],{"type":51,"value":533},{"type":45,"tag":512,"props":1694,"children":1695},{"style":536},[1696],{"type":51,"value":1697},"src\u002Fcomponents\u002Flayout\u002F",{"type":45,"tag":512,"props":1699,"children":1700},{"style":519},[1701],{"type":51,"value":575},{"type":45,"tag":61,"props":1703,"children":1704},{},[1705],{"type":45,"tag":277,"props":1706,"children":1707},{},[1708],{"type":51,"value":1709},"Design Token Usage:",{"type":45,"tag":501,"props":1711,"children":1713},{"className":503,"code":1712,"language":505,"meta":506,"style":506},"- Colors are defined as CSS variables in `src\u002Fstyles\u002Ftokens.css`\n- Never hardcode hex colors - use `var(--color-*)` tokens\n- Spacing uses the 4px base scale: `--space-1` (4px), `--space-2` (8px), etc.\n",[1714],{"type":45,"tag":113,"props":1715,"children":1716},{"__ignoreMap":506},[1717,1742,1772],{"type":45,"tag":512,"props":1718,"children":1719},{"class":514,"line":515},[1720,1724,1729,1733,1738],{"type":45,"tag":512,"props":1721,"children":1722},{"style":519},[1723],{"type":51,"value":522},{"type":45,"tag":512,"props":1725,"children":1726},{"style":525},[1727],{"type":51,"value":1728}," Colors are defined as CSS variables in ",{"type":45,"tag":512,"props":1730,"children":1731},{"style":519},[1732],{"type":51,"value":533},{"type":45,"tag":512,"props":1734,"children":1735},{"style":536},[1736],{"type":51,"value":1737},"src\u002Fstyles\u002Ftokens.css",{"type":45,"tag":512,"props":1739,"children":1740},{"style":519},[1741],{"type":51,"value":575},{"type":45,"tag":512,"props":1743,"children":1744},{"class":514,"line":551},[1745,1749,1754,1758,1763,1767],{"type":45,"tag":512,"props":1746,"children":1747},{"style":519},[1748],{"type":51,"value":522},{"type":45,"tag":512,"props":1750,"children":1751},{"style":525},[1752],{"type":51,"value":1753}," Never hardcode hex colors - use ",{"type":45,"tag":512,"props":1755,"children":1756},{"style":519},[1757],{"type":51,"value":533},{"type":45,"tag":512,"props":1759,"children":1760},{"style":536},[1761],{"type":51,"value":1762},"var(--color-*)",{"type":45,"tag":512,"props":1764,"children":1765},{"style":519},[1766],{"type":51,"value":533},{"type":45,"tag":512,"props":1768,"children":1769},{"style":525},[1770],{"type":51,"value":1771}," tokens\n",{"type":45,"tag":512,"props":1773,"children":1774},{"class":514,"line":578},[1775,1779,1784,1788,1793,1797,1802,1806,1811,1815],{"type":45,"tag":512,"props":1776,"children":1777},{"style":519},[1778],{"type":51,"value":522},{"type":45,"tag":512,"props":1780,"children":1781},{"style":525},[1782],{"type":51,"value":1783}," Spacing uses the 4px base scale: ",{"type":45,"tag":512,"props":1785,"children":1786},{"style":519},[1787],{"type":51,"value":533},{"type":45,"tag":512,"props":1789,"children":1790},{"style":536},[1791],{"type":51,"value":1792},"--space-1",{"type":45,"tag":512,"props":1794,"children":1795},{"style":519},[1796],{"type":51,"value":533},{"type":45,"tag":512,"props":1798,"children":1799},{"style":525},[1800],{"type":51,"value":1801}," (4px), ",{"type":45,"tag":512,"props":1803,"children":1804},{"style":519},[1805],{"type":51,"value":533},{"type":45,"tag":512,"props":1807,"children":1808},{"style":536},[1809],{"type":51,"value":1810},"--space-2",{"type":45,"tag":512,"props":1812,"children":1813},{"style":519},[1814],{"type":51,"value":533},{"type":45,"tag":512,"props":1816,"children":1817},{"style":525},[1818],{"type":51,"value":1819}," (8px), etc.\n",{"type":45,"tag":61,"props":1821,"children":1822},{},[1823],{"type":45,"tag":277,"props":1824,"children":1825},{},[1826],{"type":51,"value":411},{"type":45,"tag":501,"props":1828,"children":1830},{"className":503,"code":1829,"language":505,"meta":506,"style":506},"- Use Tailwind utility classes for styling\n- Custom styles go in component-level CSS modules\n- Theme customization is in `tailwind.config.js`\n",[1831],{"type":45,"tag":113,"props":1832,"children":1833},{"__ignoreMap":506},[1834,1846,1858],{"type":45,"tag":512,"props":1835,"children":1836},{"class":514,"line":515},[1837,1841],{"type":45,"tag":512,"props":1838,"children":1839},{"style":519},[1840],{"type":51,"value":522},{"type":45,"tag":512,"props":1842,"children":1843},{"style":525},[1844],{"type":51,"value":1845}," Use Tailwind utility classes for styling\n",{"type":45,"tag":512,"props":1847,"children":1848},{"class":514,"line":551},[1849,1853],{"type":45,"tag":512,"props":1850,"children":1851},{"style":519},[1852],{"type":51,"value":522},{"type":45,"tag":512,"props":1854,"children":1855},{"style":525},[1856],{"type":51,"value":1857}," Custom styles go in component-level CSS modules\n",{"type":45,"tag":512,"props":1859,"children":1860},{"class":514,"line":578},[1861,1865,1870,1874,1879],{"type":45,"tag":512,"props":1862,"children":1863},{"style":519},[1864],{"type":51,"value":522},{"type":45,"tag":512,"props":1866,"children":1867},{"style":525},[1868],{"type":51,"value":1869}," Theme customization is in ",{"type":45,"tag":512,"props":1871,"children":1872},{"style":519},[1873],{"type":51,"value":533},{"type":45,"tag":512,"props":1875,"children":1876},{"style":536},[1877],{"type":51,"value":1878},"tailwind.config.js",{"type":45,"tag":512,"props":1880,"children":1881},{"style":519},[1882],{"type":51,"value":575},{"type":45,"tag":67,"props":1884,"children":1886},{"id":1885},"recommended-rules-highly-valuable",[1887],{"type":51,"value":1888},"Recommended Rules (Highly Valuable)",{"type":45,"tag":61,"props":1890,"children":1891},{},[1892],{"type":45,"tag":277,"props":1893,"children":1894},{},[1895],{"type":51,"value":437},{"type":45,"tag":501,"props":1897,"children":1899},{"className":503,"code":1898,"language":505,"meta":506,"style":506},"- All components must accept a `className` prop for composition\n- Variant props should use union types: `variant: 'primary' | 'secondary'`\n- Icon components should accept `size` and `color` props\n",[1900],{"type":45,"tag":113,"props":1901,"children":1902},{"__ignoreMap":506},[1903,1933,1958],{"type":45,"tag":512,"props":1904,"children":1905},{"class":514,"line":515},[1906,1910,1915,1919,1924,1928],{"type":45,"tag":512,"props":1907,"children":1908},{"style":519},[1909],{"type":51,"value":522},{"type":45,"tag":512,"props":1911,"children":1912},{"style":525},[1913],{"type":51,"value":1914}," All components must accept a ",{"type":45,"tag":512,"props":1916,"children":1917},{"style":519},[1918],{"type":51,"value":533},{"type":45,"tag":512,"props":1920,"children":1921},{"style":536},[1922],{"type":51,"value":1923},"className",{"type":45,"tag":512,"props":1925,"children":1926},{"style":519},[1927],{"type":51,"value":533},{"type":45,"tag":512,"props":1929,"children":1930},{"style":525},[1931],{"type":51,"value":1932}," prop for composition\n",{"type":45,"tag":512,"props":1934,"children":1935},{"class":514,"line":551},[1936,1940,1945,1949,1954],{"type":45,"tag":512,"props":1937,"children":1938},{"style":519},[1939],{"type":51,"value":522},{"type":45,"tag":512,"props":1941,"children":1942},{"style":525},[1943],{"type":51,"value":1944}," Variant props should use union types: ",{"type":45,"tag":512,"props":1946,"children":1947},{"style":519},[1948],{"type":51,"value":533},{"type":45,"tag":512,"props":1950,"children":1951},{"style":536},[1952],{"type":51,"value":1953},"variant: 'primary' | 'secondary'",{"type":45,"tag":512,"props":1955,"children":1956},{"style":519},[1957],{"type":51,"value":575},{"type":45,"tag":512,"props":1959,"children":1960},{"class":514,"line":578},[1961,1965,1970,1974,1979,1983,1988,1992,1997,2001],{"type":45,"tag":512,"props":1962,"children":1963},{"style":519},[1964],{"type":51,"value":522},{"type":45,"tag":512,"props":1966,"children":1967},{"style":525},[1968],{"type":51,"value":1969}," Icon components should accept ",{"type":45,"tag":512,"props":1971,"children":1972},{"style":519},[1973],{"type":51,"value":533},{"type":45,"tag":512,"props":1975,"children":1976},{"style":536},[1977],{"type":51,"value":1978},"size",{"type":45,"tag":512,"props":1980,"children":1981},{"style":519},[1982],{"type":51,"value":533},{"type":45,"tag":512,"props":1984,"children":1985},{"style":525},[1986],{"type":51,"value":1987}," and ",{"type":45,"tag":512,"props":1989,"children":1990},{"style":519},[1991],{"type":51,"value":533},{"type":45,"tag":512,"props":1993,"children":1994},{"style":536},[1995],{"type":51,"value":1996},"color",{"type":45,"tag":512,"props":1998,"children":1999},{"style":519},[2000],{"type":51,"value":533},{"type":45,"tag":512,"props":2002,"children":2003},{"style":525},[2004],{"type":51,"value":2005}," props\n",{"type":45,"tag":61,"props":2007,"children":2008},{},[2009],{"type":45,"tag":277,"props":2010,"children":2011},{},[2012],{"type":51,"value":2013},"Import Conventions:",{"type":45,"tag":501,"props":2015,"children":2017},{"className":503,"code":2016,"language":505,"meta":506,"style":506},"- Use path aliases: `@\u002Fcomponents`, `@\u002Fstyles`, `@\u002Futils`\n- Group imports: React, third-party, internal, types\n- No relative imports beyond parent directory\n",[2018],{"type":45,"tag":113,"props":2019,"children":2020},{"__ignoreMap":506},[2021,2080,2092],{"type":45,"tag":512,"props":2022,"children":2023},{"class":514,"line":515},[2024,2028,2033,2037,2042,2046,2050,2054,2059,2063,2067,2071,2076],{"type":45,"tag":512,"props":2025,"children":2026},{"style":519},[2027],{"type":51,"value":522},{"type":45,"tag":512,"props":2029,"children":2030},{"style":525},[2031],{"type":51,"value":2032}," Use path aliases: ",{"type":45,"tag":512,"props":2034,"children":2035},{"style":519},[2036],{"type":51,"value":533},{"type":45,"tag":512,"props":2038,"children":2039},{"style":536},[2040],{"type":51,"value":2041},"@\u002Fcomponents",{"type":45,"tag":512,"props":2043,"children":2044},{"style":519},[2045],{"type":51,"value":533},{"type":45,"tag":512,"props":2047,"children":2048},{"style":525},[2049],{"type":51,"value":378},{"type":45,"tag":512,"props":2051,"children":2052},{"style":519},[2053],{"type":51,"value":533},{"type":45,"tag":512,"props":2055,"children":2056},{"style":536},[2057],{"type":51,"value":2058},"@\u002Fstyles",{"type":45,"tag":512,"props":2060,"children":2061},{"style":519},[2062],{"type":51,"value":533},{"type":45,"tag":512,"props":2064,"children":2065},{"style":525},[2066],{"type":51,"value":378},{"type":45,"tag":512,"props":2068,"children":2069},{"style":519},[2070],{"type":51,"value":533},{"type":45,"tag":512,"props":2072,"children":2073},{"style":536},[2074],{"type":51,"value":2075},"@\u002Futils",{"type":45,"tag":512,"props":2077,"children":2078},{"style":519},[2079],{"type":51,"value":575},{"type":45,"tag":512,"props":2081,"children":2082},{"class":514,"line":551},[2083,2087],{"type":45,"tag":512,"props":2084,"children":2085},{"style":519},[2086],{"type":51,"value":522},{"type":45,"tag":512,"props":2088,"children":2089},{"style":525},[2090],{"type":51,"value":2091}," Group imports: React, third-party, internal, types\n",{"type":45,"tag":512,"props":2093,"children":2094},{"class":514,"line":578},[2095,2099],{"type":45,"tag":512,"props":2096,"children":2097},{"style":519},[2098],{"type":51,"value":522},{"type":45,"tag":512,"props":2100,"children":2101},{"style":525},[2102],{"type":51,"value":2103}," No relative imports beyond parent directory\n",{"type":45,"tag":61,"props":2105,"children":2106},{},[2107],{"type":45,"tag":277,"props":2108,"children":2109},{},[2110],{"type":51,"value":2111},"Code Quality:",{"type":45,"tag":501,"props":2113,"children":2115},{"className":503,"code":2114,"language":505,"meta":506,"style":506},"- Add JSDoc comments for exported components\n- Include PropTypes or TypeScript types for all props\n- Extract magic numbers to named constants\n",[2116],{"type":45,"tag":113,"props":2117,"children":2118},{"__ignoreMap":506},[2119,2131,2143],{"type":45,"tag":512,"props":2120,"children":2121},{"class":514,"line":515},[2122,2126],{"type":45,"tag":512,"props":2123,"children":2124},{"style":519},[2125],{"type":51,"value":522},{"type":45,"tag":512,"props":2127,"children":2128},{"style":525},[2129],{"type":51,"value":2130}," Add JSDoc comments for exported components\n",{"type":45,"tag":512,"props":2132,"children":2133},{"class":514,"line":551},[2134,2138],{"type":45,"tag":512,"props":2135,"children":2136},{"style":519},[2137],{"type":51,"value":522},{"type":45,"tag":512,"props":2139,"children":2140},{"style":525},[2141],{"type":51,"value":2142}," Include PropTypes or TypeScript types for all props\n",{"type":45,"tag":512,"props":2144,"children":2145},{"class":514,"line":578},[2146,2150],{"type":45,"tag":512,"props":2147,"children":2148},{"style":519},[2149],{"type":51,"value":522},{"type":45,"tag":512,"props":2151,"children":2152},{"style":525},[2153],{"type":51,"value":2154}," Extract magic numbers to named constants\n",{"type":45,"tag":67,"props":2156,"children":2158},{"id":2157},"optional-rules-project-specific",[2159],{"type":51,"value":2160},"Optional Rules (Project-Specific)",{"type":45,"tag":61,"props":2162,"children":2163},{},[2164],{"type":45,"tag":277,"props":2165,"children":2166},{},[2167],{"type":51,"value":2168},"Accessibility:",{"type":45,"tag":501,"props":2170,"children":2172},{"className":503,"code":2171,"language":505,"meta":506,"style":506},"- All interactive elements must have aria-labels\n- Color contrast must meet WCAG AA standards\n- Keyboard navigation required for all interactions\n",[2173],{"type":45,"tag":113,"props":2174,"children":2175},{"__ignoreMap":506},[2176,2188,2200],{"type":45,"tag":512,"props":2177,"children":2178},{"class":514,"line":515},[2179,2183],{"type":45,"tag":512,"props":2180,"children":2181},{"style":519},[2182],{"type":51,"value":522},{"type":45,"tag":512,"props":2184,"children":2185},{"style":525},[2186],{"type":51,"value":2187}," All interactive elements must have aria-labels\n",{"type":45,"tag":512,"props":2189,"children":2190},{"class":514,"line":551},[2191,2195],{"type":45,"tag":512,"props":2192,"children":2193},{"style":519},[2194],{"type":51,"value":522},{"type":45,"tag":512,"props":2196,"children":2197},{"style":525},[2198],{"type":51,"value":2199}," Color contrast must meet WCAG AA standards\n",{"type":45,"tag":512,"props":2201,"children":2202},{"class":514,"line":578},[2203,2207],{"type":45,"tag":512,"props":2204,"children":2205},{"style":519},[2206],{"type":51,"value":522},{"type":45,"tag":512,"props":2208,"children":2209},{"style":525},[2210],{"type":51,"value":2211}," Keyboard navigation required for all interactions\n",{"type":45,"tag":61,"props":2213,"children":2214},{},[2215],{"type":45,"tag":277,"props":2216,"children":2217},{},[2218],{"type":51,"value":2219},"Performance:",{"type":45,"tag":501,"props":2221,"children":2223},{"className":503,"code":2222,"language":505,"meta":506,"style":506},"- Lazy load images with the `Image` component from `@\u002Fcomponents\u002FImage`\n- Use React.memo for components that receive complex props\n- Icons should be SVG components, not icon fonts\n",[2224],{"type":45,"tag":113,"props":2225,"children":2226},{"__ignoreMap":506},[2227,2270,2282],{"type":45,"tag":512,"props":2228,"children":2229},{"class":514,"line":515},[2230,2234,2239,2243,2248,2252,2257,2261,2266],{"type":45,"tag":512,"props":2231,"children":2232},{"style":519},[2233],{"type":51,"value":522},{"type":45,"tag":512,"props":2235,"children":2236},{"style":525},[2237],{"type":51,"value":2238}," Lazy load images with the ",{"type":45,"tag":512,"props":2240,"children":2241},{"style":519},[2242],{"type":51,"value":533},{"type":45,"tag":512,"props":2244,"children":2245},{"style":536},[2246],{"type":51,"value":2247},"Image",{"type":45,"tag":512,"props":2249,"children":2250},{"style":519},[2251],{"type":51,"value":533},{"type":45,"tag":512,"props":2253,"children":2254},{"style":525},[2255],{"type":51,"value":2256}," component from ",{"type":45,"tag":512,"props":2258,"children":2259},{"style":519},[2260],{"type":51,"value":533},{"type":45,"tag":512,"props":2262,"children":2263},{"style":536},[2264],{"type":51,"value":2265},"@\u002Fcomponents\u002FImage",{"type":45,"tag":512,"props":2267,"children":2268},{"style":519},[2269],{"type":51,"value":575},{"type":45,"tag":512,"props":2271,"children":2272},{"class":514,"line":551},[2273,2277],{"type":45,"tag":512,"props":2274,"children":2275},{"style":519},[2276],{"type":51,"value":522},{"type":45,"tag":512,"props":2278,"children":2279},{"style":525},[2280],{"type":51,"value":2281}," Use React.memo for components that receive complex props\n",{"type":45,"tag":512,"props":2283,"children":2284},{"class":514,"line":578},[2285,2289],{"type":45,"tag":512,"props":2286,"children":2287},{"style":519},[2288],{"type":51,"value":522},{"type":45,"tag":512,"props":2290,"children":2291},{"style":525},[2292],{"type":51,"value":2293}," Icons should be SVG components, not icon fonts\n",{"type":45,"tag":61,"props":2295,"children":2296},{},[2297],{"type":45,"tag":277,"props":2298,"children":2299},{},[2300],{"type":51,"value":2301},"Testing:",{"type":45,"tag":501,"props":2303,"children":2305},{"className":503,"code":2304,"language":505,"meta":506,"style":506},"- Include unit tests for new components in `__tests__\u002F` directory\n- Use Testing Library queries (getByRole, getByLabelText)\n- Test all interactive states and variants\n",[2306],{"type":45,"tag":113,"props":2307,"children":2308},{"__ignoreMap":506},[2309,2339,2351],{"type":45,"tag":512,"props":2310,"children":2311},{"class":514,"line":515},[2312,2316,2321,2325,2330,2334],{"type":45,"tag":512,"props":2313,"children":2314},{"style":519},[2315],{"type":51,"value":522},{"type":45,"tag":512,"props":2317,"children":2318},{"style":525},[2319],{"type":51,"value":2320}," Include unit tests for new components in ",{"type":45,"tag":512,"props":2322,"children":2323},{"style":519},[2324],{"type":51,"value":533},{"type":45,"tag":512,"props":2326,"children":2327},{"style":536},[2328],{"type":51,"value":2329},"__tests__\u002F",{"type":45,"tag":512,"props":2331,"children":2332},{"style":519},[2333],{"type":51,"value":533},{"type":45,"tag":512,"props":2335,"children":2336},{"style":525},[2337],{"type":51,"value":2338}," directory\n",{"type":45,"tag":512,"props":2340,"children":2341},{"class":514,"line":551},[2342,2346],{"type":45,"tag":512,"props":2343,"children":2344},{"style":519},[2345],{"type":51,"value":522},{"type":45,"tag":512,"props":2347,"children":2348},{"style":525},[2349],{"type":51,"value":2350}," Use Testing Library queries (getByRole, getByLabelText)\n",{"type":45,"tag":512,"props":2352,"children":2353},{"class":514,"line":578},[2354,2358],{"type":45,"tag":512,"props":2355,"children":2356},{"style":519},[2357],{"type":51,"value":522},{"type":45,"tag":512,"props":2359,"children":2360},{"style":525},[2361],{"type":51,"value":2362}," Test all interactive states and variants\n",{"type":45,"tag":54,"props":2364,"children":2366},{"id":2365},"examples",[2367],{"type":51,"value":2368},"Examples",{"type":45,"tag":67,"props":2370,"children":2372},{"id":2371},"example-1-react-tailwind-project",[2373],{"type":51,"value":2374},"Example 1: React + Tailwind Project",{"type":45,"tag":61,"props":2376,"children":2377},{},[2378],{"type":51,"value":2379},"User says: \"Create design system rules for my React project\"",{"type":45,"tag":61,"props":2381,"children":2382},{},[2383],{"type":45,"tag":277,"props":2384,"children":2385},{},[2386],{"type":51,"value":2387},"Actions:",{"type":45,"tag":1572,"props":2389,"children":2390},{},[2391,2402,2407],{"type":45,"tag":169,"props":2392,"children":2393},{},[2394,2396],{"type":51,"value":2395},"Run ",{"type":45,"tag":113,"props":2397,"children":2399},{"className":2398},[],[2400],{"type":51,"value":2401},"create_design_system_rules(clientLanguages=\"typescript,javascript\", clientFrameworks=\"react\")",{"type":45,"tag":169,"props":2403,"children":2404},{},[2405],{"type":51,"value":2406},"Analyze codebase structure",{"type":45,"tag":169,"props":2408,"children":2409},{},[2410],{"type":51,"value":2411},"Generate rules:",{"type":45,"tag":501,"props":2413,"children":2415},{"className":503,"code":2414,"language":505,"meta":506,"style":506},"# Figma MCP Integration Rules\n\n## Component Organization\n\n- UI components are in `src\u002Fcomponents\u002Fui\u002F`\n- Page components are in `src\u002Fapp\u002F`\n- Use Tailwind for styling\n\n## Figma Implementation Flow\n\n1. Run get_design_context for the node\n2. Run get_screenshot for visual reference\n3. Map Figma colors to Tailwind colors defined in `tailwind.config.js`\n4. Reuse components from `src\u002Fcomponents\u002Fui\u002F` when possible\n5. Validate against screenshot before completing\n\n## Styling Rules\n\n- IMPORTANT: Use Tailwind utility classes, not inline styles\n- Colors are defined in `tailwind.config.js` theme.colors\n- Spacing uses Tailwind's default scale\n- Custom components go in `src\u002Fcomponents\u002Fui\u002F`\n\n## Asset Rules\n\n- IMPORTANT: Use localhost sources from Figma MCP server directly\n- Store static assets in `public\u002Fassets\u002F`\n- DO NOT install new icon libraries\n",[2416],{"type":45,"tag":113,"props":2417,"children":2418},{"__ignoreMap":506},[2419,2431,2438,2450,2457,2481,2506,2518,2525,2537,2544,2556,2568,2592,2620,2632,2639,2651,2658,2670,2699,2711,2735,2743,2756,2764,2777,2803],{"type":45,"tag":512,"props":2420,"children":2421},{"class":514,"line":515},[2422,2427],{"type":45,"tag":512,"props":2423,"children":2424},{"style":519},[2425],{"type":51,"value":2426},"# ",{"type":45,"tag":512,"props":2428,"children":2429},{"style":805},[2430],{"type":51,"value":808},{"type":45,"tag":512,"props":2432,"children":2433},{"class":514,"line":551},[2434],{"type":45,"tag":512,"props":2435,"children":2436},{"emptyLinePlaceholder":814},[2437],{"type":51,"value":817},{"type":45,"tag":512,"props":2439,"children":2440},{"class":514,"line":578},[2441,2445],{"type":45,"tag":512,"props":2442,"children":2443},{"style":519},[2444],{"type":51,"value":802},{"type":45,"tag":512,"props":2446,"children":2447},{"style":805},[2448],{"type":51,"value":2449},"Component Organization\n",{"type":45,"tag":512,"props":2451,"children":2452},{"class":514,"line":609},[2453],{"type":45,"tag":512,"props":2454,"children":2455},{"emptyLinePlaceholder":814},[2456],{"type":51,"value":817},{"type":45,"tag":512,"props":2458,"children":2459},{"class":514,"line":758},[2460,2464,2469,2473,2477],{"type":45,"tag":512,"props":2461,"children":2462},{"style":519},[2463],{"type":51,"value":522},{"type":45,"tag":512,"props":2465,"children":2466},{"style":525},[2467],{"type":51,"value":2468}," UI components are in ",{"type":45,"tag":512,"props":2470,"children":2471},{"style":519},[2472],{"type":51,"value":533},{"type":45,"tag":512,"props":2474,"children":2475},{"style":536},[2476],{"type":51,"value":1647},{"type":45,"tag":512,"props":2478,"children":2479},{"style":519},[2480],{"type":51,"value":575},{"type":45,"tag":512,"props":2482,"children":2483},{"class":514,"line":848},[2484,2488,2493,2497,2502],{"type":45,"tag":512,"props":2485,"children":2486},{"style":519},[2487],{"type":51,"value":522},{"type":45,"tag":512,"props":2489,"children":2490},{"style":525},[2491],{"type":51,"value":2492}," Page components are in ",{"type":45,"tag":512,"props":2494,"children":2495},{"style":519},[2496],{"type":51,"value":533},{"type":45,"tag":512,"props":2498,"children":2499},{"style":536},[2500],{"type":51,"value":2501},"src\u002Fapp\u002F",{"type":45,"tag":512,"props":2503,"children":2504},{"style":519},[2505],{"type":51,"value":575},{"type":45,"tag":512,"props":2507,"children":2508},{"class":514,"line":856},[2509,2513],{"type":45,"tag":512,"props":2510,"children":2511},{"style":519},[2512],{"type":51,"value":522},{"type":45,"tag":512,"props":2514,"children":2515},{"style":525},[2516],{"type":51,"value":2517}," Use Tailwind for styling\n",{"type":45,"tag":512,"props":2519,"children":2520},{"class":514,"line":870},[2521],{"type":45,"tag":512,"props":2522,"children":2523},{"emptyLinePlaceholder":814},[2524],{"type":51,"value":817},{"type":45,"tag":512,"props":2526,"children":2527},{"class":514,"line":884},[2528,2532],{"type":45,"tag":512,"props":2529,"children":2530},{"style":519},[2531],{"type":51,"value":802},{"type":45,"tag":512,"props":2533,"children":2534},{"style":805},[2535],{"type":51,"value":2536},"Figma Implementation Flow\n",{"type":45,"tag":512,"props":2538,"children":2539},{"class":514,"line":898},[2540],{"type":45,"tag":512,"props":2541,"children":2542},{"emptyLinePlaceholder":814},[2543],{"type":51,"value":817},{"type":45,"tag":512,"props":2545,"children":2546},{"class":514,"line":912},[2547,2551],{"type":45,"tag":512,"props":2548,"children":2549},{"style":519},[2550],{"type":51,"value":862},{"type":45,"tag":512,"props":2552,"children":2553},{"style":525},[2554],{"type":51,"value":2555}," Run get_design_context for the node\n",{"type":45,"tag":512,"props":2557,"children":2558},{"class":514,"line":926},[2559,2563],{"type":45,"tag":512,"props":2560,"children":2561},{"style":519},[2562],{"type":51,"value":876},{"type":45,"tag":512,"props":2564,"children":2565},{"style":525},[2566],{"type":51,"value":2567}," Run get_screenshot for visual reference\n",{"type":45,"tag":512,"props":2569,"children":2570},{"class":514,"line":940},[2571,2575,2580,2584,2588],{"type":45,"tag":512,"props":2572,"children":2573},{"style":519},[2574],{"type":51,"value":890},{"type":45,"tag":512,"props":2576,"children":2577},{"style":525},[2578],{"type":51,"value":2579}," Map Figma colors to Tailwind colors defined in ",{"type":45,"tag":512,"props":2581,"children":2582},{"style":519},[2583],{"type":51,"value":533},{"type":45,"tag":512,"props":2585,"children":2586},{"style":536},[2587],{"type":51,"value":1878},{"type":45,"tag":512,"props":2589,"children":2590},{"style":519},[2591],{"type":51,"value":575},{"type":45,"tag":512,"props":2593,"children":2594},{"class":514,"line":948},[2595,2599,2604,2608,2612,2616],{"type":45,"tag":512,"props":2596,"children":2597},{"style":519},[2598],{"type":51,"value":904},{"type":45,"tag":512,"props":2600,"children":2601},{"style":525},[2602],{"type":51,"value":2603}," Reuse components from ",{"type":45,"tag":512,"props":2605,"children":2606},{"style":519},[2607],{"type":51,"value":533},{"type":45,"tag":512,"props":2609,"children":2610},{"style":536},[2611],{"type":51,"value":1647},{"type":45,"tag":512,"props":2613,"children":2614},{"style":519},[2615],{"type":51,"value":533},{"type":45,"tag":512,"props":2617,"children":2618},{"style":525},[2619],{"type":51,"value":548},{"type":45,"tag":512,"props":2621,"children":2622},{"class":514,"line":961},[2623,2627],{"type":45,"tag":512,"props":2624,"children":2625},{"style":519},[2626],{"type":51,"value":918},{"type":45,"tag":512,"props":2628,"children":2629},{"style":525},[2630],{"type":51,"value":2631}," Validate against screenshot before completing\n",{"type":45,"tag":512,"props":2633,"children":2634},{"class":514,"line":969},[2635],{"type":45,"tag":512,"props":2636,"children":2637},{"emptyLinePlaceholder":814},[2638],{"type":51,"value":817},{"type":45,"tag":512,"props":2640,"children":2641},{"class":514,"line":982},[2642,2646],{"type":45,"tag":512,"props":2643,"children":2644},{"style":519},[2645],{"type":51,"value":802},{"type":45,"tag":512,"props":2647,"children":2648},{"style":805},[2649],{"type":51,"value":2650},"Styling Rules\n",{"type":45,"tag":512,"props":2652,"children":2653},{"class":514,"line":1013},[2654],{"type":45,"tag":512,"props":2655,"children":2656},{"emptyLinePlaceholder":814},[2657],{"type":51,"value":817},{"type":45,"tag":512,"props":2659,"children":2660},{"class":514,"line":1044},[2661,2665],{"type":45,"tag":512,"props":2662,"children":2663},{"style":519},[2664],{"type":51,"value":522},{"type":45,"tag":512,"props":2666,"children":2667},{"style":525},[2668],{"type":51,"value":2669}," IMPORTANT: Use Tailwind utility classes, not inline styles\n",{"type":45,"tag":512,"props":2671,"children":2672},{"class":514,"line":1057},[2673,2677,2682,2686,2690,2694],{"type":45,"tag":512,"props":2674,"children":2675},{"style":519},[2676],{"type":51,"value":522},{"type":45,"tag":512,"props":2678,"children":2679},{"style":525},[2680],{"type":51,"value":2681}," Colors are defined in ",{"type":45,"tag":512,"props":2683,"children":2684},{"style":519},[2685],{"type":51,"value":533},{"type":45,"tag":512,"props":2687,"children":2688},{"style":536},[2689],{"type":51,"value":1878},{"type":45,"tag":512,"props":2691,"children":2692},{"style":519},[2693],{"type":51,"value":533},{"type":45,"tag":512,"props":2695,"children":2696},{"style":525},[2697],{"type":51,"value":2698}," theme.colors\n",{"type":45,"tag":512,"props":2700,"children":2701},{"class":514,"line":1070},[2702,2706],{"type":45,"tag":512,"props":2703,"children":2704},{"style":519},[2705],{"type":51,"value":522},{"type":45,"tag":512,"props":2707,"children":2708},{"style":525},[2709],{"type":51,"value":2710}," Spacing uses Tailwind's default scale\n",{"type":45,"tag":512,"props":2712,"children":2713},{"class":514,"line":1083},[2714,2718,2723,2727,2731],{"type":45,"tag":512,"props":2715,"children":2716},{"style":519},[2717],{"type":51,"value":522},{"type":45,"tag":512,"props":2719,"children":2720},{"style":525},[2721],{"type":51,"value":2722}," Custom components go in ",{"type":45,"tag":512,"props":2724,"children":2725},{"style":519},[2726],{"type":51,"value":533},{"type":45,"tag":512,"props":2728,"children":2729},{"style":536},[2730],{"type":51,"value":1647},{"type":45,"tag":512,"props":2732,"children":2733},{"style":519},[2734],{"type":51,"value":575},{"type":45,"tag":512,"props":2736,"children":2738},{"class":514,"line":2737},23,[2739],{"type":45,"tag":512,"props":2740,"children":2741},{"emptyLinePlaceholder":814},[2742],{"type":51,"value":817},{"type":45,"tag":512,"props":2744,"children":2746},{"class":514,"line":2745},24,[2747,2751],{"type":45,"tag":512,"props":2748,"children":2749},{"style":519},[2750],{"type":51,"value":802},{"type":45,"tag":512,"props":2752,"children":2753},{"style":805},[2754],{"type":51,"value":2755},"Asset Rules\n",{"type":45,"tag":512,"props":2757,"children":2759},{"class":514,"line":2758},25,[2760],{"type":45,"tag":512,"props":2761,"children":2762},{"emptyLinePlaceholder":814},[2763],{"type":51,"value":817},{"type":45,"tag":512,"props":2765,"children":2767},{"class":514,"line":2766},26,[2768,2772],{"type":45,"tag":512,"props":2769,"children":2770},{"style":519},[2771],{"type":51,"value":522},{"type":45,"tag":512,"props":2773,"children":2774},{"style":525},[2775],{"type":51,"value":2776}," IMPORTANT: Use localhost sources from Figma MCP server directly\n",{"type":45,"tag":512,"props":2778,"children":2780},{"class":514,"line":2779},27,[2781,2785,2790,2794,2799],{"type":45,"tag":512,"props":2782,"children":2783},{"style":519},[2784],{"type":51,"value":522},{"type":45,"tag":512,"props":2786,"children":2787},{"style":525},[2788],{"type":51,"value":2789}," Store static assets in ",{"type":45,"tag":512,"props":2791,"children":2792},{"style":519},[2793],{"type":51,"value":533},{"type":45,"tag":512,"props":2795,"children":2796},{"style":536},[2797],{"type":51,"value":2798},"public\u002Fassets\u002F",{"type":45,"tag":512,"props":2800,"children":2801},{"style":519},[2802],{"type":51,"value":575},{"type":45,"tag":512,"props":2804,"children":2806},{"class":514,"line":2805},28,[2807,2811],{"type":45,"tag":512,"props":2808,"children":2809},{"style":519},[2810],{"type":51,"value":522},{"type":45,"tag":512,"props":2812,"children":2813},{"style":525},[2814],{"type":51,"value":2815}," DO NOT install new icon libraries\n",{"type":45,"tag":1572,"props":2817,"children":2818},{"start":609},[2819,2824],{"type":45,"tag":169,"props":2820,"children":2821},{},[2822],{"type":51,"value":2823},"Save to the appropriate rule file for the user's agent",{"type":45,"tag":169,"props":2825,"children":2826},{},[2827],{"type":51,"value":2828},"Test with a simple button implementation",{"type":45,"tag":61,"props":2830,"children":2831},{},[2832,2837],{"type":45,"tag":277,"props":2833,"children":2834},{},[2835],{"type":51,"value":2836},"Result:",{"type":51,"value":2838}," The agent now consistently follows the project's conventions when implementing Figma designs.",{"type":45,"tag":67,"props":2840,"children":2842},{"id":2841},"example-2-vue-custom-css-project",[2843],{"type":51,"value":2844},"Example 2: Vue + Custom CSS Project",{"type":45,"tag":61,"props":2846,"children":2847},{},[2848],{"type":51,"value":2849},"User says: \"Set up Figma rules for my Vue app\"",{"type":45,"tag":61,"props":2851,"children":2852},{},[2853],{"type":45,"tag":277,"props":2854,"children":2855},{},[2856],{"type":51,"value":2387},{"type":45,"tag":1572,"props":2858,"children":2859},{},[2860,2870,2875],{"type":45,"tag":169,"props":2861,"children":2862},{},[2863,2864],{"type":51,"value":2395},{"type":45,"tag":113,"props":2865,"children":2867},{"className":2866},[],[2868],{"type":51,"value":2869},"create_design_system_rules(clientLanguages=\"typescript,javascript\", clientFrameworks=\"vue\")",{"type":45,"tag":169,"props":2871,"children":2872},{},[2873],{"type":51,"value":2874},"Discover that project uses CSS modules and a custom design token system",{"type":45,"tag":169,"props":2876,"children":2877},{},[2878],{"type":51,"value":2411},{"type":45,"tag":501,"props":2880,"children":2882},{"className":503,"code":2881,"language":505,"meta":506,"style":506},"# Figma MCP Integration Rules\n\n## Component Organization\n\n- Components are in `src\u002Fcomponents\u002F`\n- Composables are in `src\u002Fcomposables\u002F`\n- Vue SFC structure: \u003Cscript setup>, \u003Ctemplate>, \u003Cstyle scoped>\n\n## Design Tokens\n\n- IMPORTANT: All colors defined in `src\u002Fstyles\u002Ftokens.css` as CSS variables\n- Use `var(--color-primary)`, `var(--color-secondary)`, etc.\n- Spacing: `var(--space-xs)` through `var(--space-xl)`\n- Typography: `var(--text-sm)` through `var(--text-2xl)`\n\n## Figma Implementation Flow\n\n1. Run get_design_context and get_screenshot\n2. Translate React output to Vue 3 Composition API\n3. Map Figma colors to CSS variables in `src\u002Fstyles\u002Ftokens.css`\n4. Use CSS Modules for component styles\n5. Check for existing components in `src\u002Fcomponents\u002F` before creating new ones\n\n## Styling Rules\n\n- Use CSS Modules (`.module.css` files)\n- IMPORTANT: Reference design tokens, never hardcode values\n- Scoped styles with CSS modules\n",[2883],{"type":45,"tag":113,"props":2884,"children":2885},{"__ignoreMap":506},[2886,2897,2904,2915,2922,2946,2971,2983,2990,3002,3009,3038,3084,3127,3169,3176,3187,3194,3206,3218,3242,3254,3283,3290,3301,3308,3338,3350],{"type":45,"tag":512,"props":2887,"children":2888},{"class":514,"line":515},[2889,2893],{"type":45,"tag":512,"props":2890,"children":2891},{"style":519},[2892],{"type":51,"value":2426},{"type":45,"tag":512,"props":2894,"children":2895},{"style":805},[2896],{"type":51,"value":808},{"type":45,"tag":512,"props":2898,"children":2899},{"class":514,"line":551},[2900],{"type":45,"tag":512,"props":2901,"children":2902},{"emptyLinePlaceholder":814},[2903],{"type":51,"value":817},{"type":45,"tag":512,"props":2905,"children":2906},{"class":514,"line":578},[2907,2911],{"type":45,"tag":512,"props":2908,"children":2909},{"style":519},[2910],{"type":51,"value":802},{"type":45,"tag":512,"props":2912,"children":2913},{"style":805},[2914],{"type":51,"value":2449},{"type":45,"tag":512,"props":2916,"children":2917},{"class":514,"line":609},[2918],{"type":45,"tag":512,"props":2919,"children":2920},{"emptyLinePlaceholder":814},[2921],{"type":51,"value":817},{"type":45,"tag":512,"props":2923,"children":2924},{"class":514,"line":758},[2925,2929,2934,2938,2942],{"type":45,"tag":512,"props":2926,"children":2927},{"style":519},[2928],{"type":51,"value":522},{"type":45,"tag":512,"props":2930,"children":2931},{"style":525},[2932],{"type":51,"value":2933}," Components are in ",{"type":45,"tag":512,"props":2935,"children":2936},{"style":519},[2937],{"type":51,"value":533},{"type":45,"tag":512,"props":2939,"children":2940},{"style":536},[2941],{"type":51,"value":376},{"type":45,"tag":512,"props":2943,"children":2944},{"style":519},[2945],{"type":51,"value":575},{"type":45,"tag":512,"props":2947,"children":2948},{"class":514,"line":848},[2949,2953,2958,2962,2967],{"type":45,"tag":512,"props":2950,"children":2951},{"style":519},[2952],{"type":51,"value":522},{"type":45,"tag":512,"props":2954,"children":2955},{"style":525},[2956],{"type":51,"value":2957}," Composables are in ",{"type":45,"tag":512,"props":2959,"children":2960},{"style":519},[2961],{"type":51,"value":533},{"type":45,"tag":512,"props":2963,"children":2964},{"style":536},[2965],{"type":51,"value":2966},"src\u002Fcomposables\u002F",{"type":45,"tag":512,"props":2968,"children":2969},{"style":519},[2970],{"type":51,"value":575},{"type":45,"tag":512,"props":2972,"children":2973},{"class":514,"line":856},[2974,2978],{"type":45,"tag":512,"props":2975,"children":2976},{"style":519},[2977],{"type":51,"value":522},{"type":45,"tag":512,"props":2979,"children":2980},{"style":525},[2981],{"type":51,"value":2982}," Vue SFC structure: \u003Cscript setup>, \u003Ctemplate>, \u003Cstyle scoped>\n",{"type":45,"tag":512,"props":2984,"children":2985},{"class":514,"line":870},[2986],{"type":45,"tag":512,"props":2987,"children":2988},{"emptyLinePlaceholder":814},[2989],{"type":51,"value":817},{"type":45,"tag":512,"props":2991,"children":2992},{"class":514,"line":884},[2993,2997],{"type":45,"tag":512,"props":2994,"children":2995},{"style":519},[2996],{"type":51,"value":802},{"type":45,"tag":512,"props":2998,"children":2999},{"style":805},[3000],{"type":51,"value":3001},"Design Tokens\n",{"type":45,"tag":512,"props":3003,"children":3004},{"class":514,"line":898},[3005],{"type":45,"tag":512,"props":3006,"children":3007},{"emptyLinePlaceholder":814},[3008],{"type":51,"value":817},{"type":45,"tag":512,"props":3010,"children":3011},{"class":514,"line":912},[3012,3016,3021,3025,3029,3033],{"type":45,"tag":512,"props":3013,"children":3014},{"style":519},[3015],{"type":51,"value":522},{"type":45,"tag":512,"props":3017,"children":3018},{"style":525},[3019],{"type":51,"value":3020}," IMPORTANT: All colors defined in ",{"type":45,"tag":512,"props":3022,"children":3023},{"style":519},[3024],{"type":51,"value":533},{"type":45,"tag":512,"props":3026,"children":3027},{"style":536},[3028],{"type":51,"value":1737},{"type":45,"tag":512,"props":3030,"children":3031},{"style":519},[3032],{"type":51,"value":533},{"type":45,"tag":512,"props":3034,"children":3035},{"style":525},[3036],{"type":51,"value":3037}," as CSS variables\n",{"type":45,"tag":512,"props":3039,"children":3040},{"class":514,"line":926},[3041,3045,3049,3053,3058,3062,3066,3070,3075,3079],{"type":45,"tag":512,"props":3042,"children":3043},{"style":519},[3044],{"type":51,"value":522},{"type":45,"tag":512,"props":3046,"children":3047},{"style":525},[3048],{"type":51,"value":657},{"type":45,"tag":512,"props":3050,"children":3051},{"style":519},[3052],{"type":51,"value":533},{"type":45,"tag":512,"props":3054,"children":3055},{"style":536},[3056],{"type":51,"value":3057},"var(--color-primary)",{"type":45,"tag":512,"props":3059,"children":3060},{"style":519},[3061],{"type":51,"value":533},{"type":45,"tag":512,"props":3063,"children":3064},{"style":525},[3065],{"type":51,"value":378},{"type":45,"tag":512,"props":3067,"children":3068},{"style":519},[3069],{"type":51,"value":533},{"type":45,"tag":512,"props":3071,"children":3072},{"style":536},[3073],{"type":51,"value":3074},"var(--color-secondary)",{"type":45,"tag":512,"props":3076,"children":3077},{"style":519},[3078],{"type":51,"value":533},{"type":45,"tag":512,"props":3080,"children":3081},{"style":525},[3082],{"type":51,"value":3083},", etc.\n",{"type":45,"tag":512,"props":3085,"children":3086},{"class":514,"line":940},[3087,3091,3096,3100,3105,3109,3114,3118,3123],{"type":45,"tag":512,"props":3088,"children":3089},{"style":519},[3090],{"type":51,"value":522},{"type":45,"tag":512,"props":3092,"children":3093},{"style":525},[3094],{"type":51,"value":3095}," Spacing: ",{"type":45,"tag":512,"props":3097,"children":3098},{"style":519},[3099],{"type":51,"value":533},{"type":45,"tag":512,"props":3101,"children":3102},{"style":536},[3103],{"type":51,"value":3104},"var(--space-xs)",{"type":45,"tag":512,"props":3106,"children":3107},{"style":519},[3108],{"type":51,"value":533},{"type":45,"tag":512,"props":3110,"children":3111},{"style":525},[3112],{"type":51,"value":3113}," through ",{"type":45,"tag":512,"props":3115,"children":3116},{"style":519},[3117],{"type":51,"value":533},{"type":45,"tag":512,"props":3119,"children":3120},{"style":536},[3121],{"type":51,"value":3122},"var(--space-xl)",{"type":45,"tag":512,"props":3124,"children":3125},{"style":519},[3126],{"type":51,"value":575},{"type":45,"tag":512,"props":3128,"children":3129},{"class":514,"line":948},[3130,3134,3139,3143,3148,3152,3156,3160,3165],{"type":45,"tag":512,"props":3131,"children":3132},{"style":519},[3133],{"type":51,"value":522},{"type":45,"tag":512,"props":3135,"children":3136},{"style":525},[3137],{"type":51,"value":3138}," Typography: ",{"type":45,"tag":512,"props":3140,"children":3141},{"style":519},[3142],{"type":51,"value":533},{"type":45,"tag":512,"props":3144,"children":3145},{"style":536},[3146],{"type":51,"value":3147},"var(--text-sm)",{"type":45,"tag":512,"props":3149,"children":3150},{"style":519},[3151],{"type":51,"value":533},{"type":45,"tag":512,"props":3153,"children":3154},{"style":525},[3155],{"type":51,"value":3113},{"type":45,"tag":512,"props":3157,"children":3158},{"style":519},[3159],{"type":51,"value":533},{"type":45,"tag":512,"props":3161,"children":3162},{"style":536},[3163],{"type":51,"value":3164},"var(--text-2xl)",{"type":45,"tag":512,"props":3166,"children":3167},{"style":519},[3168],{"type":51,"value":575},{"type":45,"tag":512,"props":3170,"children":3171},{"class":514,"line":961},[3172],{"type":45,"tag":512,"props":3173,"children":3174},{"emptyLinePlaceholder":814},[3175],{"type":51,"value":817},{"type":45,"tag":512,"props":3177,"children":3178},{"class":514,"line":969},[3179,3183],{"type":45,"tag":512,"props":3180,"children":3181},{"style":519},[3182],{"type":51,"value":802},{"type":45,"tag":512,"props":3184,"children":3185},{"style":805},[3186],{"type":51,"value":2536},{"type":45,"tag":512,"props":3188,"children":3189},{"class":514,"line":982},[3190],{"type":45,"tag":512,"props":3191,"children":3192},{"emptyLinePlaceholder":814},[3193],{"type":51,"value":817},{"type":45,"tag":512,"props":3195,"children":3196},{"class":514,"line":1013},[3197,3201],{"type":45,"tag":512,"props":3198,"children":3199},{"style":519},[3200],{"type":51,"value":862},{"type":45,"tag":512,"props":3202,"children":3203},{"style":525},[3204],{"type":51,"value":3205}," Run get_design_context and get_screenshot\n",{"type":45,"tag":512,"props":3207,"children":3208},{"class":514,"line":1044},[3209,3213],{"type":45,"tag":512,"props":3210,"children":3211},{"style":519},[3212],{"type":51,"value":876},{"type":45,"tag":512,"props":3214,"children":3215},{"style":525},[3216],{"type":51,"value":3217}," Translate React output to Vue 3 Composition API\n",{"type":45,"tag":512,"props":3219,"children":3220},{"class":514,"line":1057},[3221,3225,3230,3234,3238],{"type":45,"tag":512,"props":3222,"children":3223},{"style":519},[3224],{"type":51,"value":890},{"type":45,"tag":512,"props":3226,"children":3227},{"style":525},[3228],{"type":51,"value":3229}," Map Figma colors to CSS variables in ",{"type":45,"tag":512,"props":3231,"children":3232},{"style":519},[3233],{"type":51,"value":533},{"type":45,"tag":512,"props":3235,"children":3236},{"style":536},[3237],{"type":51,"value":1737},{"type":45,"tag":512,"props":3239,"children":3240},{"style":519},[3241],{"type":51,"value":575},{"type":45,"tag":512,"props":3243,"children":3244},{"class":514,"line":1070},[3245,3249],{"type":45,"tag":512,"props":3246,"children":3247},{"style":519},[3248],{"type":51,"value":904},{"type":45,"tag":512,"props":3250,"children":3251},{"style":525},[3252],{"type":51,"value":3253}," Use CSS Modules for component styles\n",{"type":45,"tag":512,"props":3255,"children":3256},{"class":514,"line":1083},[3257,3261,3266,3270,3274,3278],{"type":45,"tag":512,"props":3258,"children":3259},{"style":519},[3260],{"type":51,"value":918},{"type":45,"tag":512,"props":3262,"children":3263},{"style":525},[3264],{"type":51,"value":3265}," Check for existing components in ",{"type":45,"tag":512,"props":3267,"children":3268},{"style":519},[3269],{"type":51,"value":533},{"type":45,"tag":512,"props":3271,"children":3272},{"style":536},[3273],{"type":51,"value":376},{"type":45,"tag":512,"props":3275,"children":3276},{"style":519},[3277],{"type":51,"value":533},{"type":45,"tag":512,"props":3279,"children":3280},{"style":525},[3281],{"type":51,"value":3282}," before creating new ones\n",{"type":45,"tag":512,"props":3284,"children":3285},{"class":514,"line":2737},[3286],{"type":45,"tag":512,"props":3287,"children":3288},{"emptyLinePlaceholder":814},[3289],{"type":51,"value":817},{"type":45,"tag":512,"props":3291,"children":3292},{"class":514,"line":2745},[3293,3297],{"type":45,"tag":512,"props":3294,"children":3295},{"style":519},[3296],{"type":51,"value":802},{"type":45,"tag":512,"props":3298,"children":3299},{"style":805},[3300],{"type":51,"value":2650},{"type":45,"tag":512,"props":3302,"children":3303},{"class":514,"line":2758},[3304],{"type":45,"tag":512,"props":3305,"children":3306},{"emptyLinePlaceholder":814},[3307],{"type":51,"value":817},{"type":45,"tag":512,"props":3309,"children":3310},{"class":514,"line":2766},[3311,3315,3320,3324,3329,3333],{"type":45,"tag":512,"props":3312,"children":3313},{"style":519},[3314],{"type":51,"value":522},{"type":45,"tag":512,"props":3316,"children":3317},{"style":525},[3318],{"type":51,"value":3319}," Use CSS Modules (",{"type":45,"tag":512,"props":3321,"children":3322},{"style":519},[3323],{"type":51,"value":533},{"type":45,"tag":512,"props":3325,"children":3326},{"style":536},[3327],{"type":51,"value":3328},".module.css",{"type":45,"tag":512,"props":3330,"children":3331},{"style":519},[3332],{"type":51,"value":533},{"type":45,"tag":512,"props":3334,"children":3335},{"style":525},[3336],{"type":51,"value":3337}," files)\n",{"type":45,"tag":512,"props":3339,"children":3340},{"class":514,"line":2779},[3341,3345],{"type":45,"tag":512,"props":3342,"children":3343},{"style":519},[3344],{"type":51,"value":522},{"type":45,"tag":512,"props":3346,"children":3347},{"style":525},[3348],{"type":51,"value":3349}," IMPORTANT: Reference design tokens, never hardcode values\n",{"type":45,"tag":512,"props":3351,"children":3352},{"class":514,"line":2805},[3353,3357],{"type":45,"tag":512,"props":3354,"children":3355},{"style":519},[3356],{"type":51,"value":522},{"type":45,"tag":512,"props":3358,"children":3359},{"style":525},[3360],{"type":51,"value":3361}," Scoped styles with CSS modules\n",{"type":45,"tag":1572,"props":3363,"children":3364},{"start":609},[3365,3369],{"type":45,"tag":169,"props":3366,"children":3367},{},[3368],{"type":51,"value":2823},{"type":45,"tag":169,"props":3370,"children":3371},{},[3372],{"type":51,"value":3373},"Validate with a card component",{"type":45,"tag":61,"props":3375,"children":3376},{},[3377,3381],{"type":45,"tag":277,"props":3378,"children":3379},{},[3380],{"type":51,"value":2836},{"type":51,"value":3382}," The agent now correctly translates Figma designs to Vue components using the project's design token system.",{"type":45,"tag":67,"props":3384,"children":3386},{"id":3385},"example-3-design-system-team",[3387],{"type":51,"value":3388},"Example 3: Design System Team",{"type":45,"tag":61,"props":3390,"children":3391},{},[3392],{"type":51,"value":3393},"User says: \"Generate rules for our design system library\"",{"type":45,"tag":61,"props":3395,"children":3396},{},[3397],{"type":45,"tag":277,"props":3398,"children":3399},{},[3400],{"type":51,"value":2387},{"type":45,"tag":1572,"props":3402,"children":3403},{},[3404,3414,3419],{"type":45,"tag":169,"props":3405,"children":3406},{},[3407,3408],{"type":51,"value":2395},{"type":45,"tag":113,"props":3409,"children":3411},{"className":3410},[],[3412],{"type":51,"value":3413},"create_design_system_rules(clientLanguages=\"typescript\", clientFrameworks=\"react\")",{"type":45,"tag":169,"props":3415,"children":3416},{},[3417],{"type":51,"value":3418},"Analyze the monorepo structure with design system package",{"type":45,"tag":169,"props":3420,"children":3421},{},[3422],{"type":51,"value":3423},"Generate comprehensive rules:",{"type":45,"tag":501,"props":3425,"children":3427},{"className":503,"code":3426,"language":505,"meta":506,"style":506},"# Design System Rules\n\n## Repository Structure\n\n- Design system components: `packages\u002Fdesign-system\u002Fsrc\u002Fcomponents\u002F`\n- Documentation: `packages\u002Fdocs\u002F`\n- Design tokens: `packages\u002Ftokens\u002Fsrc\u002F`\n\n## Component Development\n\n- IMPORTANT: All components must be in `packages\u002Fdesign-system\u002Fsrc\u002Fcomponents\u002F`\n- Component file structure: `ComponentName\u002Findex.tsx`, `ComponentName.stories.tsx`, `ComponentName.test.tsx`\n- Export all components from `packages\u002Fdesign-system\u002Fsrc\u002Findex.ts`\n\n## Design Tokens\n\n- Colors: `packages\u002Ftokens\u002Fsrc\u002Fcolors.ts`\n- Typography: `packages\u002Ftokens\u002Fsrc\u002Ftypography.ts`\n- Spacing: `packages\u002Ftokens\u002Fsrc\u002Fspacing.ts`\n- IMPORTANT: Never hardcode values - import from tokens package\n\n## Documentation Requirements\n\n- Add Storybook story for every component\n- Include JSDoc with @example\n- Document all props with descriptions\n- Add accessibility notes\n\n## Figma Integration\n\n1. Get design context and screenshot from Figma\n2. Map Figma tokens to design system tokens\n3. Create or extend component in design system package\n4. Add Storybook stories showing all variants\n5. Validate against Figma screenshot\n6. Update documentation\n",[3428],{"type":45,"tag":113,"props":3429,"children":3430},{"__ignoreMap":506},[3431,3443,3450,3462,3469,3494,3519,3544,3551,3563,3570,3594,3653,3678,3685,3696,3703,3728,3752,3776,3788,3795,3807,3814,3826,3838,3850,3862,3869,3882,3890,3903,3916,3929,3942,3955],{"type":45,"tag":512,"props":3432,"children":3433},{"class":514,"line":515},[3434,3438],{"type":45,"tag":512,"props":3435,"children":3436},{"style":519},[3437],{"type":51,"value":2426},{"type":45,"tag":512,"props":3439,"children":3440},{"style":805},[3441],{"type":51,"value":3442},"Design System Rules\n",{"type":45,"tag":512,"props":3444,"children":3445},{"class":514,"line":551},[3446],{"type":45,"tag":512,"props":3447,"children":3448},{"emptyLinePlaceholder":814},[3449],{"type":51,"value":817},{"type":45,"tag":512,"props":3451,"children":3452},{"class":514,"line":578},[3453,3457],{"type":45,"tag":512,"props":3454,"children":3455},{"style":519},[3456],{"type":51,"value":802},{"type":45,"tag":512,"props":3458,"children":3459},{"style":805},[3460],{"type":51,"value":3461},"Repository Structure\n",{"type":45,"tag":512,"props":3463,"children":3464},{"class":514,"line":609},[3465],{"type":45,"tag":512,"props":3466,"children":3467},{"emptyLinePlaceholder":814},[3468],{"type":51,"value":817},{"type":45,"tag":512,"props":3470,"children":3471},{"class":514,"line":758},[3472,3476,3481,3485,3490],{"type":45,"tag":512,"props":3473,"children":3474},{"style":519},[3475],{"type":51,"value":522},{"type":45,"tag":512,"props":3477,"children":3478},{"style":525},[3479],{"type":51,"value":3480}," Design system components: ",{"type":45,"tag":512,"props":3482,"children":3483},{"style":519},[3484],{"type":51,"value":533},{"type":45,"tag":512,"props":3486,"children":3487},{"style":536},[3488],{"type":51,"value":3489},"packages\u002Fdesign-system\u002Fsrc\u002Fcomponents\u002F",{"type":45,"tag":512,"props":3491,"children":3492},{"style":519},[3493],{"type":51,"value":575},{"type":45,"tag":512,"props":3495,"children":3496},{"class":514,"line":848},[3497,3501,3506,3510,3515],{"type":45,"tag":512,"props":3498,"children":3499},{"style":519},[3500],{"type":51,"value":522},{"type":45,"tag":512,"props":3502,"children":3503},{"style":525},[3504],{"type":51,"value":3505}," Documentation: ",{"type":45,"tag":512,"props":3507,"children":3508},{"style":519},[3509],{"type":51,"value":533},{"type":45,"tag":512,"props":3511,"children":3512},{"style":536},[3513],{"type":51,"value":3514},"packages\u002Fdocs\u002F",{"type":45,"tag":512,"props":3516,"children":3517},{"style":519},[3518],{"type":51,"value":575},{"type":45,"tag":512,"props":3520,"children":3521},{"class":514,"line":856},[3522,3526,3531,3535,3540],{"type":45,"tag":512,"props":3523,"children":3524},{"style":519},[3525],{"type":51,"value":522},{"type":45,"tag":512,"props":3527,"children":3528},{"style":525},[3529],{"type":51,"value":3530}," Design tokens: ",{"type":45,"tag":512,"props":3532,"children":3533},{"style":519},[3534],{"type":51,"value":533},{"type":45,"tag":512,"props":3536,"children":3537},{"style":536},[3538],{"type":51,"value":3539},"packages\u002Ftokens\u002Fsrc\u002F",{"type":45,"tag":512,"props":3541,"children":3542},{"style":519},[3543],{"type":51,"value":575},{"type":45,"tag":512,"props":3545,"children":3546},{"class":514,"line":870},[3547],{"type":45,"tag":512,"props":3548,"children":3549},{"emptyLinePlaceholder":814},[3550],{"type":51,"value":817},{"type":45,"tag":512,"props":3552,"children":3553},{"class":514,"line":884},[3554,3558],{"type":45,"tag":512,"props":3555,"children":3556},{"style":519},[3557],{"type":51,"value":802},{"type":45,"tag":512,"props":3559,"children":3560},{"style":805},[3561],{"type":51,"value":3562},"Component Development\n",{"type":45,"tag":512,"props":3564,"children":3565},{"class":514,"line":898},[3566],{"type":45,"tag":512,"props":3567,"children":3568},{"emptyLinePlaceholder":814},[3569],{"type":51,"value":817},{"type":45,"tag":512,"props":3571,"children":3572},{"class":514,"line":912},[3573,3577,3582,3586,3590],{"type":45,"tag":512,"props":3574,"children":3575},{"style":519},[3576],{"type":51,"value":522},{"type":45,"tag":512,"props":3578,"children":3579},{"style":525},[3580],{"type":51,"value":3581}," IMPORTANT: All components must be in ",{"type":45,"tag":512,"props":3583,"children":3584},{"style":519},[3585],{"type":51,"value":533},{"type":45,"tag":512,"props":3587,"children":3588},{"style":536},[3589],{"type":51,"value":3489},{"type":45,"tag":512,"props":3591,"children":3592},{"style":519},[3593],{"type":51,"value":575},{"type":45,"tag":512,"props":3595,"children":3596},{"class":514,"line":926},[3597,3601,3606,3610,3615,3619,3623,3627,3632,3636,3640,3644,3649],{"type":45,"tag":512,"props":3598,"children":3599},{"style":519},[3600],{"type":51,"value":522},{"type":45,"tag":512,"props":3602,"children":3603},{"style":525},[3604],{"type":51,"value":3605}," Component file structure: ",{"type":45,"tag":512,"props":3607,"children":3608},{"style":519},[3609],{"type":51,"value":533},{"type":45,"tag":512,"props":3611,"children":3612},{"style":536},[3613],{"type":51,"value":3614},"ComponentName\u002Findex.tsx",{"type":45,"tag":512,"props":3616,"children":3617},{"style":519},[3618],{"type":51,"value":533},{"type":45,"tag":512,"props":3620,"children":3621},{"style":525},[3622],{"type":51,"value":378},{"type":45,"tag":512,"props":3624,"children":3625},{"style":519},[3626],{"type":51,"value":533},{"type":45,"tag":512,"props":3628,"children":3629},{"style":536},[3630],{"type":51,"value":3631},"ComponentName.stories.tsx",{"type":45,"tag":512,"props":3633,"children":3634},{"style":519},[3635],{"type":51,"value":533},{"type":45,"tag":512,"props":3637,"children":3638},{"style":525},[3639],{"type":51,"value":378},{"type":45,"tag":512,"props":3641,"children":3642},{"style":519},[3643],{"type":51,"value":533},{"type":45,"tag":512,"props":3645,"children":3646},{"style":536},[3647],{"type":51,"value":3648},"ComponentName.test.tsx",{"type":45,"tag":512,"props":3650,"children":3651},{"style":519},[3652],{"type":51,"value":575},{"type":45,"tag":512,"props":3654,"children":3655},{"class":514,"line":940},[3656,3660,3665,3669,3674],{"type":45,"tag":512,"props":3657,"children":3658},{"style":519},[3659],{"type":51,"value":522},{"type":45,"tag":512,"props":3661,"children":3662},{"style":525},[3663],{"type":51,"value":3664}," Export all components from ",{"type":45,"tag":512,"props":3666,"children":3667},{"style":519},[3668],{"type":51,"value":533},{"type":45,"tag":512,"props":3670,"children":3671},{"style":536},[3672],{"type":51,"value":3673},"packages\u002Fdesign-system\u002Fsrc\u002Findex.ts",{"type":45,"tag":512,"props":3675,"children":3676},{"style":519},[3677],{"type":51,"value":575},{"type":45,"tag":512,"props":3679,"children":3680},{"class":514,"line":948},[3681],{"type":45,"tag":512,"props":3682,"children":3683},{"emptyLinePlaceholder":814},[3684],{"type":51,"value":817},{"type":45,"tag":512,"props":3686,"children":3687},{"class":514,"line":961},[3688,3692],{"type":45,"tag":512,"props":3689,"children":3690},{"style":519},[3691],{"type":51,"value":802},{"type":45,"tag":512,"props":3693,"children":3694},{"style":805},[3695],{"type":51,"value":3001},{"type":45,"tag":512,"props":3697,"children":3698},{"class":514,"line":969},[3699],{"type":45,"tag":512,"props":3700,"children":3701},{"emptyLinePlaceholder":814},[3702],{"type":51,"value":817},{"type":45,"tag":512,"props":3704,"children":3705},{"class":514,"line":982},[3706,3710,3715,3719,3724],{"type":45,"tag":512,"props":3707,"children":3708},{"style":519},[3709],{"type":51,"value":522},{"type":45,"tag":512,"props":3711,"children":3712},{"style":525},[3713],{"type":51,"value":3714}," Colors: ",{"type":45,"tag":512,"props":3716,"children":3717},{"style":519},[3718],{"type":51,"value":533},{"type":45,"tag":512,"props":3720,"children":3721},{"style":536},[3722],{"type":51,"value":3723},"packages\u002Ftokens\u002Fsrc\u002Fcolors.ts",{"type":45,"tag":512,"props":3725,"children":3726},{"style":519},[3727],{"type":51,"value":575},{"type":45,"tag":512,"props":3729,"children":3730},{"class":514,"line":1013},[3731,3735,3739,3743,3748],{"type":45,"tag":512,"props":3732,"children":3733},{"style":519},[3734],{"type":51,"value":522},{"type":45,"tag":512,"props":3736,"children":3737},{"style":525},[3738],{"type":51,"value":3138},{"type":45,"tag":512,"props":3740,"children":3741},{"style":519},[3742],{"type":51,"value":533},{"type":45,"tag":512,"props":3744,"children":3745},{"style":536},[3746],{"type":51,"value":3747},"packages\u002Ftokens\u002Fsrc\u002Ftypography.ts",{"type":45,"tag":512,"props":3749,"children":3750},{"style":519},[3751],{"type":51,"value":575},{"type":45,"tag":512,"props":3753,"children":3754},{"class":514,"line":1044},[3755,3759,3763,3767,3772],{"type":45,"tag":512,"props":3756,"children":3757},{"style":519},[3758],{"type":51,"value":522},{"type":45,"tag":512,"props":3760,"children":3761},{"style":525},[3762],{"type":51,"value":3095},{"type":45,"tag":512,"props":3764,"children":3765},{"style":519},[3766],{"type":51,"value":533},{"type":45,"tag":512,"props":3768,"children":3769},{"style":536},[3770],{"type":51,"value":3771},"packages\u002Ftokens\u002Fsrc\u002Fspacing.ts",{"type":45,"tag":512,"props":3773,"children":3774},{"style":519},[3775],{"type":51,"value":575},{"type":45,"tag":512,"props":3777,"children":3778},{"class":514,"line":1057},[3779,3783],{"type":45,"tag":512,"props":3780,"children":3781},{"style":519},[3782],{"type":51,"value":522},{"type":45,"tag":512,"props":3784,"children":3785},{"style":525},[3786],{"type":51,"value":3787}," IMPORTANT: Never hardcode values - import from tokens package\n",{"type":45,"tag":512,"props":3789,"children":3790},{"class":514,"line":1070},[3791],{"type":45,"tag":512,"props":3792,"children":3793},{"emptyLinePlaceholder":814},[3794],{"type":51,"value":817},{"type":45,"tag":512,"props":3796,"children":3797},{"class":514,"line":1083},[3798,3802],{"type":45,"tag":512,"props":3799,"children":3800},{"style":519},[3801],{"type":51,"value":802},{"type":45,"tag":512,"props":3803,"children":3804},{"style":805},[3805],{"type":51,"value":3806},"Documentation Requirements\n",{"type":45,"tag":512,"props":3808,"children":3809},{"class":514,"line":2737},[3810],{"type":45,"tag":512,"props":3811,"children":3812},{"emptyLinePlaceholder":814},[3813],{"type":51,"value":817},{"type":45,"tag":512,"props":3815,"children":3816},{"class":514,"line":2745},[3817,3821],{"type":45,"tag":512,"props":3818,"children":3819},{"style":519},[3820],{"type":51,"value":522},{"type":45,"tag":512,"props":3822,"children":3823},{"style":525},[3824],{"type":51,"value":3825}," Add Storybook story for every component\n",{"type":45,"tag":512,"props":3827,"children":3828},{"class":514,"line":2758},[3829,3833],{"type":45,"tag":512,"props":3830,"children":3831},{"style":519},[3832],{"type":51,"value":522},{"type":45,"tag":512,"props":3834,"children":3835},{"style":525},[3836],{"type":51,"value":3837}," Include JSDoc with @example\n",{"type":45,"tag":512,"props":3839,"children":3840},{"class":514,"line":2766},[3841,3845],{"type":45,"tag":512,"props":3842,"children":3843},{"style":519},[3844],{"type":51,"value":522},{"type":45,"tag":512,"props":3846,"children":3847},{"style":525},[3848],{"type":51,"value":3849}," Document all props with descriptions\n",{"type":45,"tag":512,"props":3851,"children":3852},{"class":514,"line":2779},[3853,3857],{"type":45,"tag":512,"props":3854,"children":3855},{"style":519},[3856],{"type":51,"value":522},{"type":45,"tag":512,"props":3858,"children":3859},{"style":525},[3860],{"type":51,"value":3861}," Add accessibility notes\n",{"type":45,"tag":512,"props":3863,"children":3864},{"class":514,"line":2805},[3865],{"type":45,"tag":512,"props":3866,"children":3867},{"emptyLinePlaceholder":814},[3868],{"type":51,"value":817},{"type":45,"tag":512,"props":3870,"children":3872},{"class":514,"line":3871},29,[3873,3877],{"type":45,"tag":512,"props":3874,"children":3875},{"style":519},[3876],{"type":51,"value":802},{"type":45,"tag":512,"props":3878,"children":3879},{"style":805},[3880],{"type":51,"value":3881},"Figma Integration\n",{"type":45,"tag":512,"props":3883,"children":3885},{"class":514,"line":3884},30,[3886],{"type":45,"tag":512,"props":3887,"children":3888},{"emptyLinePlaceholder":814},[3889],{"type":51,"value":817},{"type":45,"tag":512,"props":3891,"children":3893},{"class":514,"line":3892},31,[3894,3898],{"type":45,"tag":512,"props":3895,"children":3896},{"style":519},[3897],{"type":51,"value":862},{"type":45,"tag":512,"props":3899,"children":3900},{"style":525},[3901],{"type":51,"value":3902}," Get design context and screenshot from Figma\n",{"type":45,"tag":512,"props":3904,"children":3906},{"class":514,"line":3905},32,[3907,3911],{"type":45,"tag":512,"props":3908,"children":3909},{"style":519},[3910],{"type":51,"value":876},{"type":45,"tag":512,"props":3912,"children":3913},{"style":525},[3914],{"type":51,"value":3915}," Map Figma tokens to design system tokens\n",{"type":45,"tag":512,"props":3917,"children":3919},{"class":514,"line":3918},33,[3920,3924],{"type":45,"tag":512,"props":3921,"children":3922},{"style":519},[3923],{"type":51,"value":890},{"type":45,"tag":512,"props":3925,"children":3926},{"style":525},[3927],{"type":51,"value":3928}," Create or extend component in design system package\n",{"type":45,"tag":512,"props":3930,"children":3932},{"class":514,"line":3931},34,[3933,3937],{"type":45,"tag":512,"props":3934,"children":3935},{"style":519},[3936],{"type":51,"value":904},{"type":45,"tag":512,"props":3938,"children":3939},{"style":525},[3940],{"type":51,"value":3941}," Add Storybook stories showing all variants\n",{"type":45,"tag":512,"props":3943,"children":3945},{"class":514,"line":3944},35,[3946,3950],{"type":45,"tag":512,"props":3947,"children":3948},{"style":519},[3949],{"type":51,"value":918},{"type":45,"tag":512,"props":3951,"children":3952},{"style":525},[3953],{"type":51,"value":3954}," Validate against Figma screenshot\n",{"type":45,"tag":512,"props":3956,"children":3958},{"class":514,"line":3957},36,[3959,3963],{"type":45,"tag":512,"props":3960,"children":3961},{"style":519},[3962],{"type":51,"value":932},{"type":45,"tag":512,"props":3964,"children":3965},{"style":525},[3966],{"type":51,"value":3967}," Update documentation\n",{"type":45,"tag":1572,"props":3969,"children":3970},{"start":609},[3971,3976],{"type":45,"tag":169,"props":3972,"children":3973},{},[3974],{"type":51,"value":3975},"Save to the appropriate rule file and share with team",{"type":45,"tag":169,"props":3977,"children":3978},{},[3979],{"type":51,"value":3980},"Add to team documentation",{"type":45,"tag":61,"props":3982,"children":3983},{},[3984,3988],{"type":45,"tag":277,"props":3985,"children":3986},{},[3987],{"type":51,"value":2836},{"type":51,"value":3989}," Entire team follows consistent patterns when adding components from Figma to the design system.",{"type":45,"tag":54,"props":3991,"children":3993},{"id":3992},"best-practices",[3994],{"type":51,"value":3995},"Best Practices",{"type":45,"tag":67,"props":3997,"children":3999},{"id":3998},"start-simple-iterate",[4000],{"type":51,"value":4001},"Start Simple, Iterate",{"type":45,"tag":61,"props":4003,"children":4004},{},[4005],{"type":51,"value":4006},"Don't try to capture every rule upfront. Start with the most important conventions and add rules as you encounter inconsistencies.",{"type":45,"tag":67,"props":4008,"children":4010},{"id":4009},"be-specific",[4011],{"type":51,"value":4012},"Be Specific",{"type":45,"tag":61,"props":4014,"children":4015},{},[4016,4018,4024],{"type":51,"value":4017},"Instead of: \"Use the design system\"\nWrite: \"Always use Button components from ",{"type":45,"tag":113,"props":4019,"children":4021},{"className":4020},[],[4022],{"type":51,"value":4023},"src\u002Fcomponents\u002Fui\u002FButton.tsx",{"type":51,"value":4025}," with variant prop ('primary' | 'secondary' | 'ghost')\"",{"type":45,"tag":67,"props":4027,"children":4029},{"id":4028},"make-rules-actionable",[4030],{"type":51,"value":4031},"Make Rules Actionable",{"type":45,"tag":61,"props":4033,"children":4034},{},[4035],{"type":51,"value":4036},"Each rule should tell the agent exactly what to do, not just what to avoid.",{"type":45,"tag":61,"props":4038,"children":4039},{},[4040,4042,4048],{"type":51,"value":4041},"Good: \"Colors are defined in ",{"type":45,"tag":113,"props":4043,"children":4045},{"className":4044},[],[4046],{"type":51,"value":4047},"src\u002Ftheme\u002Fcolors.ts",{"type":51,"value":4049}," - import and use these constants\"\nBad: \"Don't hardcode colors\"",{"type":45,"tag":67,"props":4051,"children":4053},{"id":4052},"use-important-for-critical-rules",[4054],{"type":51,"value":4055},"Use IMPORTANT for Critical Rules",{"type":45,"tag":61,"props":4057,"children":4058},{},[4059],{"type":51,"value":4060},"Prefix rules that must never be violated with \"IMPORTANT:\" to ensure the agent prioritizes them.",{"type":45,"tag":501,"props":4062,"children":4064},{"className":503,"code":4063,"language":505,"meta":506,"style":506},"- IMPORTANT: Never expose API keys in client-side code\n- IMPORTANT: Always sanitize user input before rendering\n",[4065],{"type":45,"tag":113,"props":4066,"children":4067},{"__ignoreMap":506},[4068,4080],{"type":45,"tag":512,"props":4069,"children":4070},{"class":514,"line":515},[4071,4075],{"type":45,"tag":512,"props":4072,"children":4073},{"style":519},[4074],{"type":51,"value":522},{"type":45,"tag":512,"props":4076,"children":4077},{"style":525},[4078],{"type":51,"value":4079}," IMPORTANT: Never expose API keys in client-side code\n",{"type":45,"tag":512,"props":4081,"children":4082},{"class":514,"line":551},[4083,4087],{"type":45,"tag":512,"props":4084,"children":4085},{"style":519},[4086],{"type":51,"value":522},{"type":45,"tag":512,"props":4088,"children":4089},{"style":525},[4090],{"type":51,"value":4091}," IMPORTANT: Always sanitize user input before rendering\n",{"type":45,"tag":67,"props":4093,"children":4095},{"id":4094},"document-the-why",[4096],{"type":51,"value":4097},"Document the Why",{"type":45,"tag":61,"props":4099,"children":4100},{},[4101],{"type":51,"value":4102},"When rules seem arbitrary, explain the reasoning:",{"type":45,"tag":501,"props":4104,"children":4106},{"className":503,"code":4105,"language":505,"meta":506,"style":506},"- Place all data-fetching in server components (reduces client bundle size and improves performance)\n- Use absolute imports with `@\u002F` alias (makes refactoring easier and prevents broken relative paths)\n",[4107],{"type":45,"tag":113,"props":4108,"children":4109},{"__ignoreMap":506},[4110,4122],{"type":45,"tag":512,"props":4111,"children":4112},{"class":514,"line":515},[4113,4117],{"type":45,"tag":512,"props":4114,"children":4115},{"style":519},[4116],{"type":51,"value":522},{"type":45,"tag":512,"props":4118,"children":4119},{"style":525},[4120],{"type":51,"value":4121}," Place all data-fetching in server components (reduces client bundle size and improves performance)\n",{"type":45,"tag":512,"props":4123,"children":4124},{"class":514,"line":551},[4125,4129,4134,4138,4143,4147],{"type":45,"tag":512,"props":4126,"children":4127},{"style":519},[4128],{"type":51,"value":522},{"type":45,"tag":512,"props":4130,"children":4131},{"style":525},[4132],{"type":51,"value":4133}," Use absolute imports with ",{"type":45,"tag":512,"props":4135,"children":4136},{"style":519},[4137],{"type":51,"value":533},{"type":45,"tag":512,"props":4139,"children":4140},{"style":536},[4141],{"type":51,"value":4142},"@\u002F",{"type":45,"tag":512,"props":4144,"children":4145},{"style":519},[4146],{"type":51,"value":533},{"type":45,"tag":512,"props":4148,"children":4149},{"style":525},[4150],{"type":51,"value":4151}," alias (makes refactoring easier and prevents broken relative paths)\n",{"type":45,"tag":54,"props":4153,"children":4155},{"id":4154},"common-issues-and-solutions",[4156],{"type":51,"value":4157},"Common Issues and Solutions",{"type":45,"tag":67,"props":4159,"children":4161},{"id":4160},"issue-the-agent-isnt-following-the-rules",[4162],{"type":51,"value":4163},"Issue: The agent isn't following the rules",{"type":45,"tag":61,"props":4165,"children":4166},{},[4167,4172,4174],{"type":45,"tag":277,"props":4168,"children":4169},{},[4170],{"type":51,"value":4171},"Cause:",{"type":51,"value":4173}," Rules may be too vague or not properly loaded by the agent.\n",{"type":45,"tag":277,"props":4175,"children":4176},{},[4177],{"type":51,"value":4178},"Solution:",{"type":45,"tag":165,"props":4180,"children":4181},{},[4182,4187,4192,4197],{"type":45,"tag":169,"props":4183,"children":4184},{},[4185],{"type":51,"value":4186},"Make rules more specific and actionable",{"type":45,"tag":169,"props":4188,"children":4189},{},[4190],{"type":51,"value":4191},"Verify rules are saved in the correct configuration file",{"type":45,"tag":169,"props":4193,"children":4194},{},[4195],{"type":51,"value":4196},"Restart your agent or IDE to reload rules",{"type":45,"tag":169,"props":4198,"children":4199},{},[4200],{"type":51,"value":4201},"Add \"IMPORTANT:\" prefix to critical rules",{"type":45,"tag":67,"props":4203,"children":4205},{"id":4204},"issue-rules-conflict-with-each-other",[4206],{"type":51,"value":4207},"Issue: Rules conflict with each other",{"type":45,"tag":61,"props":4209,"children":4210},{},[4211,4215,4217],{"type":45,"tag":277,"props":4212,"children":4213},{},[4214],{"type":51,"value":4171},{"type":51,"value":4216}," Contradictory or overlapping rules.\n",{"type":45,"tag":277,"props":4218,"children":4219},{},[4220],{"type":51,"value":4178},{"type":45,"tag":165,"props":4222,"children":4223},{},[4224,4229,4234,4239],{"type":45,"tag":169,"props":4225,"children":4226},{},[4227],{"type":51,"value":4228},"Review all rules for conflicts",{"type":45,"tag":169,"props":4230,"children":4231},{},[4232],{"type":51,"value":4233},"Establish a clear priority hierarchy",{"type":45,"tag":169,"props":4235,"children":4236},{},[4237],{"type":51,"value":4238},"Remove redundant rules",{"type":45,"tag":169,"props":4240,"children":4241},{},[4242],{"type":51,"value":4243},"Consolidate related rules into single, clear statements",{"type":45,"tag":67,"props":4245,"children":4247},{"id":4246},"issue-too-many-rules-increase-latency",[4248],{"type":51,"value":4249},"Issue: Too many rules increase latency",{"type":45,"tag":61,"props":4251,"children":4252},{},[4253,4257,4259],{"type":45,"tag":277,"props":4254,"children":4255},{},[4256],{"type":51,"value":4171},{"type":51,"value":4258}," Excessive rules increase context size and processing time.\n",{"type":45,"tag":277,"props":4260,"children":4261},{},[4262],{"type":51,"value":4178},{"type":45,"tag":165,"props":4264,"children":4265},{},[4266,4271,4276,4281],{"type":45,"tag":169,"props":4267,"children":4268},{},[4269],{"type":51,"value":4270},"Focus on the 20% of rules that solve 80% of consistency issues",{"type":45,"tag":169,"props":4272,"children":4273},{},[4274],{"type":51,"value":4275},"Remove overly specific rules that rarely apply",{"type":45,"tag":169,"props":4277,"children":4278},{},[4279],{"type":51,"value":4280},"Combine related rules",{"type":45,"tag":169,"props":4282,"children":4283},{},[4284],{"type":51,"value":4285},"Use progressive disclosure (basic rules first, advanced rules in linked files)",{"type":45,"tag":67,"props":4287,"children":4289},{"id":4288},"issue-rules-become-outdated-as-project-evolves",[4290],{"type":51,"value":4291},"Issue: Rules become outdated as project evolves",{"type":45,"tag":61,"props":4293,"children":4294},{},[4295,4299,4301],{"type":45,"tag":277,"props":4296,"children":4297},{},[4298],{"type":51,"value":4171},{"type":51,"value":4300}," Codebase changes but rules don't.\n",{"type":45,"tag":277,"props":4302,"children":4303},{},[4304],{"type":51,"value":4178},{"type":45,"tag":165,"props":4306,"children":4307},{},[4308,4313,4318,4323],{"type":45,"tag":169,"props":4309,"children":4310},{},[4311],{"type":51,"value":4312},"Schedule periodic rule reviews (monthly or quarterly)",{"type":45,"tag":169,"props":4314,"children":4315},{},[4316],{"type":51,"value":4317},"Update rules when architectural decisions change",{"type":45,"tag":169,"props":4319,"children":4320},{},[4321],{"type":51,"value":4322},"Version control your rule files",{"type":45,"tag":169,"props":4324,"children":4325},{},[4326],{"type":51,"value":4327},"Document rule changes in commit messages",{"type":45,"tag":54,"props":4329,"children":4331},{"id":4330},"understanding-design-system-rules",[4332],{"type":51,"value":4333},"Understanding Design System Rules",{"type":45,"tag":61,"props":4335,"children":4336},{},[4337],{"type":51,"value":4338},"Design system rules transform how AI coding agents work with your Figma designs:",{"type":45,"tag":61,"props":4340,"children":4341},{},[4342],{"type":45,"tag":277,"props":4343,"children":4344},{},[4345],{"type":51,"value":4346},"Before rules:",{"type":45,"tag":165,"props":4348,"children":4349},{},[4350,4355,4360,4365,4370],{"type":45,"tag":169,"props":4351,"children":4352},{},[4353],{"type":51,"value":4354},"The agent makes assumptions about component structure",{"type":45,"tag":169,"props":4356,"children":4357},{},[4358],{"type":51,"value":4359},"Inconsistent styling approaches across implementations",{"type":45,"tag":169,"props":4361,"children":4362},{},[4363],{"type":51,"value":4364},"Hardcoded values that don't match design tokens",{"type":45,"tag":169,"props":4366,"children":4367},{},[4368],{"type":51,"value":4369},"Components created in random locations",{"type":45,"tag":169,"props":4371,"children":4372},{},[4373],{"type":51,"value":4374},"Repetitive explanations of project conventions",{"type":45,"tag":61,"props":4376,"children":4377},{},[4378],{"type":45,"tag":277,"props":4379,"children":4380},{},[4381],{"type":51,"value":4382},"After rules:",{"type":45,"tag":165,"props":4384,"children":4385},{},[4386,4391,4396,4401,4406],{"type":45,"tag":169,"props":4387,"children":4388},{},[4389],{"type":51,"value":4390},"The agent automatically follows your conventions",{"type":45,"tag":169,"props":4392,"children":4393},{},[4394],{"type":51,"value":4395},"Consistent component structure and styling",{"type":45,"tag":169,"props":4397,"children":4398},{},[4399],{"type":51,"value":4400},"Proper use of design tokens from the start",{"type":45,"tag":169,"props":4402,"children":4403},{},[4404],{"type":51,"value":4405},"Components organized correctly",{"type":45,"tag":169,"props":4407,"children":4408},{},[4409],{"type":51,"value":4410},"Zero repetitive prompting",{"type":45,"tag":61,"props":4412,"children":4413},{},[4414],{"type":51,"value":4415},"The time invested in creating good rules pays off exponentially across every Figma implementation task.",{"type":45,"tag":54,"props":4417,"children":4419},{"id":4418},"additional-resources",[4420],{"type":51,"value":4421},"Additional Resources",{"type":45,"tag":165,"props":4423,"children":4424},{},[4425,4437],{"type":45,"tag":169,"props":4426,"children":4427},{},[4428],{"type":45,"tag":4429,"props":4430,"children":4434},"a",{"href":4431,"rel":4432},"https:\u002F\u002Fdevelopers.figma.com\u002Fdocs\u002Ffigma-mcp-server\u002F",[4433],"nofollow",[4435],{"type":51,"value":4436},"Figma MCP Server Documentation",{"type":45,"tag":169,"props":4438,"children":4439},{},[4440],{"type":45,"tag":4429,"props":4441,"children":4444},{"href":4442,"rel":4443},"https:\u002F\u002Fhelp.figma.com\u002Fhc\u002Fen-us\u002Farticles\u002F15339657135383-Guide-to-variables-in-Figma",[4433],[4445],{"type":51,"value":4446},"Figma Variables and Design Tokens",{"type":45,"tag":4448,"props":4449,"children":4450},"style",{},[4451],{"type":51,"value":4452},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":4454,"total":3871},[4455,4476,4493,4509,4528,4547,4557],{"slug":4456,"name":4456,"fn":4457,"description":4458,"org":4459,"tags":4460,"stars":28,"repoUrl":29,"updatedAt":4475},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4461,4464,4466,4469,4472],{"name":4462,"slug":4463,"type":15},".NET","dotnet",{"name":4465,"slug":4456,"type":15},"ASP.NET Core",{"name":4467,"slug":4468,"type":15},"Blazor","blazor",{"name":4470,"slug":4471,"type":15},"C#","csharp",{"name":4473,"slug":4474,"type":15},"Web Development","web-development","2026-04-12T05:07:02.819491",{"slug":4477,"name":4477,"fn":4478,"description":4479,"org":4480,"tags":4481,"stars":28,"repoUrl":29,"updatedAt":4492},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4482,4485,4488,4491],{"name":4483,"slug":4484,"type":15},"Apps SDK","apps-sdk",{"name":4486,"slug":4487,"type":15},"ChatGPT","chatgpt",{"name":4489,"slug":4490,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":4494,"name":4494,"fn":4495,"description":4496,"org":4497,"tags":4498,"stars":28,"repoUrl":29,"updatedAt":4508},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4499,4502,4505],{"name":4500,"slug":4501,"type":15},"API Development","api-development",{"name":4503,"slug":4504,"type":15},"CLI","cli",{"name":4506,"slug":4507,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":4510,"name":4510,"fn":4511,"description":4512,"org":4513,"tags":4514,"stars":28,"repoUrl":29,"updatedAt":4527},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4515,4518,4521,4524],{"name":4516,"slug":4517,"type":15},"Cloudflare","cloudflare",{"name":4519,"slug":4520,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":4522,"slug":4523,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":4525,"slug":4526,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":4529,"name":4529,"fn":4530,"description":4531,"org":4532,"tags":4533,"stars":28,"repoUrl":29,"updatedAt":4546},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4534,4537,4540,4543],{"name":4535,"slug":4536,"type":15},"Productivity","productivity",{"name":4538,"slug":4539,"type":15},"Project Management","project-management",{"name":4541,"slug":4542,"type":15},"Strategy","strategy",{"name":4544,"slug":4545,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":24,"name":24,"fn":4548,"description":4549,"org":4550,"tags":4551,"stars":28,"repoUrl":29,"updatedAt":4556},"translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4552,4553,4554,4555],{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"name":4489,"slug":4490,"type":15},"2026-04-12T05:06:47.939943",{"slug":4558,"name":4558,"fn":4559,"description":4560,"org":4561,"tags":4562,"stars":28,"repoUrl":29,"updatedAt":4570},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4563,4564,4565,4566,4567],{"name":26,"slug":27,"type":15},{"name":17,"slug":18,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"name":4568,"slug":4569,"type":15},"UI Components","ui-components","2026-05-10T05:59:52.971881",{"items":4572,"total":4695},[4573,4594,4602,4609,4615,4622,4629,4636,4644,4652,4664,4679],{"slug":4574,"name":4574,"fn":4575,"description":4576,"org":4577,"tags":4578,"stars":4591,"repoUrl":4592,"updatedAt":4593},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4579,4582,4585,4588],{"name":4580,"slug":4581,"type":15},"Documents","documents",{"name":4583,"slug":4584,"type":15},"Healthcare","healthcare",{"name":4586,"slug":4587,"type":15},"Insurance","insurance",{"name":4589,"slug":4590,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":4456,"name":4456,"fn":4457,"description":4458,"org":4595,"tags":4596,"stars":28,"repoUrl":29,"updatedAt":4475},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4597,4598,4599,4600,4601],{"name":4462,"slug":4463,"type":15},{"name":4465,"slug":4456,"type":15},{"name":4467,"slug":4468,"type":15},{"name":4470,"slug":4471,"type":15},{"name":4473,"slug":4474,"type":15},{"slug":4477,"name":4477,"fn":4478,"description":4479,"org":4603,"tags":4604,"stars":28,"repoUrl":29,"updatedAt":4492},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4605,4606,4607,4608],{"name":4483,"slug":4484,"type":15},{"name":4486,"slug":4487,"type":15},{"name":4489,"slug":4490,"type":15},{"name":9,"slug":8,"type":15},{"slug":4494,"name":4494,"fn":4495,"description":4496,"org":4610,"tags":4611,"stars":28,"repoUrl":29,"updatedAt":4508},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4612,4613,4614],{"name":4500,"slug":4501,"type":15},{"name":4503,"slug":4504,"type":15},{"name":4506,"slug":4507,"type":15},{"slug":4510,"name":4510,"fn":4511,"description":4512,"org":4616,"tags":4617,"stars":28,"repoUrl":29,"updatedAt":4527},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4618,4619,4620,4621],{"name":4516,"slug":4517,"type":15},{"name":4519,"slug":4520,"type":15},{"name":4522,"slug":4523,"type":15},{"name":4525,"slug":4526,"type":15},{"slug":4529,"name":4529,"fn":4530,"description":4531,"org":4623,"tags":4624,"stars":28,"repoUrl":29,"updatedAt":4546},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4625,4626,4627,4628],{"name":4535,"slug":4536,"type":15},{"name":4538,"slug":4539,"type":15},{"name":4541,"slug":4542,"type":15},{"name":4544,"slug":4545,"type":15},{"slug":24,"name":24,"fn":4548,"description":4549,"org":4630,"tags":4631,"stars":28,"repoUrl":29,"updatedAt":4556},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4632,4633,4634,4635],{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"name":4489,"slug":4490,"type":15},{"slug":4558,"name":4558,"fn":4559,"description":4560,"org":4637,"tags":4638,"stars":28,"repoUrl":29,"updatedAt":4570},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4639,4640,4641,4642,4643],{"name":26,"slug":27,"type":15},{"name":17,"slug":18,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"name":4568,"slug":4569,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":4645,"tags":4646,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4647,4648,4649,4650,4651],{"name":26,"slug":27,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"slug":4653,"name":4653,"fn":4654,"description":4655,"org":4656,"tags":4657,"stars":28,"repoUrl":29,"updatedAt":4663},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4658,4659,4660,4661,4662],{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"name":4568,"slug":4569,"type":15},{"name":4473,"slug":4474,"type":15},"2026-05-16T06:07:40.583615",{"slug":4665,"name":4665,"fn":4666,"description":4667,"org":4668,"tags":4669,"stars":28,"repoUrl":29,"updatedAt":4678},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4670,4673,4674,4677],{"name":4671,"slug":4672,"type":15},"Animation","animation",{"name":4506,"slug":4507,"type":15},{"name":4675,"slug":4676,"type":15},"Creative","creative",{"name":26,"slug":27,"type":15},"2026-05-02T05:31:48.48485",{"slug":4680,"name":4680,"fn":4681,"description":4682,"org":4683,"tags":4684,"stars":28,"repoUrl":29,"updatedAt":4694},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4685,4686,4687,4690,4693],{"name":4675,"slug":4676,"type":15},{"name":26,"slug":27,"type":15},{"name":4688,"slug":4689,"type":15},"Image Generation","image-generation",{"name":4691,"slug":4692,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675]