Open, edit, republish, and Figma-sync the template prototypes in prototypes/ (Claude artifacts of Design, Chat, Slides, Clips, Analytics). Use when asked to open or change a prototype, push one to its app's Figma page, or pull Figma edits back into it.
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
prototypes/README.md is the index: one folder per template, each prototype's artifact link, the kit, and the build. Read it first. Each prototype is one source.html that node prototypes/kit/build.ts <name> turns into a single page, published as a Claude artifact. Designers and PMs ask the agent to open a prototype; there is no gallery page.
--color-border, --design-editor-accent-color) and never copy values in.<name>/source.html. Shared needs go in prototypes/kit/ (menus, Settings, icons via kit/add-icons.ts), not copied between prototypes.<name>/changes.json. The prototype's Changes drawer shows it.dist/index.html headlessly (Playwright, via the main checkout's node_modules/.pnpm/playwright@*) in light and dark. Zero page and console errors, and look at a screenshot of what changed.url), so the link stays. Publishing only stamps a new version.Building the experience in the app (design to code) is a separate handoff: work in templates/<app> from the prototype, its Changes log, and the Figma frames, then follow adding-a-feature and ship.
The Agent-Native file is oJQ7t9q4e8oHzLZKuki7k1. Every app already has a page there, because design usually starts in Figma. <name>/prototype.json names it under figma.page (with pageId), lists any figma.related pages (Chat's agent chat surface lives on AgentKit, shared by every app), and records figma.sections, the sections and frames this prototype maps to. If an app has no page, ask. Don't create one.
Load figma-use before every use_figma call, and figma-design-to-code before get_design_context.
Rebuild the screens and states with the file's design system so they stay editable and on-system. Never push screenshots or SVG conversions.
search_design_system, then import by key with importComponentSetByKeyAsync or importComponentByKeyAsync. The plugin API can't list team libraries.Editor/* parts. Anything reused becomes a component or variant set, with properties named like the code's props.figma.variables.setBoundVariableForPaint, such as Design's Design/Tokens collection, or the variable search_design_system finds for the app's token. Use raw hex only where the code has no token.setCurrentPageAsync first: new nodes land on the current page, which may be the cover.loadFontAsync for every font a text node uses.appendChild on an instance.get_screenshot, and fix what's off. Record new section and frame ids in prototype.json.get_screenshot for the section or frame the person names, and use_figma to read the nodes involved: text, fills and their bound variables, sizes, auto layout, and component properties. Use get_design_context when you need code-shaped detail.source.html:
BuilderIO/agent-native
46ed84c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.