figcraft-prototyper
Skill0 starsChanged 6 days agoMITView on GitHub
Wires and verifies native FigCraft prototypes for sliders, navigation, buttons, overlays, alerts, component states, variables, and conditional flows. Keeps interactions synchronized with the final design and never claims unsupported editable input.
In this repository75 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/skill-authoring/tools/AGENTS.mdAGENTS.md
- aes-docsSkill
- aes-fixSkill
- aes-layerSkill
- aes-migrationSkill
- android-emulator-linux-gpsSkill
- computer-useSkill
- flatpak-chromium-automationSkill
- qwen-webSkill
- grok-buildSkill
- hermes-agentSkill
- omnirouteSkill
- orcaSkill
- account-managerSkill
- brave-setupSkill
- password-managerSkill
- codegraphSkill
- deep-cleanSkill
- dogfoodSkill
- reviewSkill
- systematic-debuggingSkill
- blender-arwakySkill
- comfyuiSkill
- llm-writingSkill
- vision-arwakySkill
- playwright-toolingSkill
- setup-ci-quality-gatesSkill
- statuslineSkill
- systemd-headless-serviceSkill
- xdg-spec-complianceSkill
- figcraft-builderSkill
- figcraft-iconsSkill
- figcraft-motionSkill
- figcraft-reviewSkill
- figcraftSkill
- figcraft-svgSkill
- figcraft-typographySkill
- github-authSkill
- issue-makerSkill
- issue-workerSkill
- mergifySkill
- pr-babysitSkill
- releasingSkill
- repo-managerSkill
- ascii-artSkill
- ascii-videoSkill
- gif-searchSkill
- media-acquisitionSkill
- docxSkill
- emailSkill
- google-workspaceSkill
- notionSkill
- pdfSkill
- pptxSkill
- xlsxSkill
- competitor-news-monitorSkill
- product-price-monitorSkill
- weekly-review-planningSkill
- arxivSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
25 rules. About 0 are common, 19 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈19
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 10
Add interactions only after required screens, overlays, and states exist.
- Distinctive: line 16
Before wiring, inspect all relevant pages and write a compact interaction inventory:
- Distinctive: line 21
Every required interactive element must appear in the inventory.
- Distinctive: line 23
Ask before wiring when the intended destination, state change, dismissal behavior, validation rule, or terminal result is unclear.
- Very specific: line 27
Before using prototype features, call list_commands with focused filters such as proto, overflow, variable, component, and the intended …
- Distinctive: line 38
Do not claim a capability unless it appears in the current command contract.
- Very specific: line 54
Use onDrag only when the intended interaction needs an explicit action.
- Very specific: line 62
If proof in the file is required, read overflow on that node in the saved .figcraft document, which is a zip containing document.json.
- Distinctive: line 64
Do not write "overflow confirmed via inspect_document." That field will not be there.
- Distinctive: line 92
Use overlays for dialogs, menus, popups, toasts, alerts, and bottom sheets when that matches the design.
- Distinctive: line 114
Every overlay must have the close behavior required by the design:
- Distinctive: line 117
use outside-click dismissal only when appropriate.
- Distinctive: line 119
verify success, error, confirmation, timeout, and follow-up states when they are in scope.
- Very specific: line 125
Use component variants plus changeTo for direct visual states.
- Distinctive: line 129
default, hover, pressed, focused, selected, and disabled.
- Distinctive: line 134
Keep state changes attached to the component or control they visually affect.
- Distinctive: line 142
When a user asks for a form that can be typed into:
- Distinctive: line 145
If none exists, state the limitation before implementation.
- Distinctive: line 146
Ask whether a simulated flow is acceptable.
- Distinctive: line 147
If approved, simulate only the agreed cases using component states, text properties, variables, key triggers, and conditionals.
- Very specific: line 148
If real arbitrary text entry is required, do not claim the .figcraft prototype provides it.
- Distinctive: line 154
Prefer the visible control frame as the hotspot.
- Distinctive: line 157
place it with the corresponding control in the same screen/component hierarchy.
- Distinctive: line 159
do not cover unrelated controls.
- Distinctive: line 162
Before saving, detect missing destinations, stale layer IDs, duplicate or overlapping hotspots, controls wired through child text/icon …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
FigCraft Prototyper
Add interactions only after required screens, overlays, and states exist. Use current FigCraft commands discovered with list_commands; do not rely on remembered schemas.
Load the figcraft coordinator for intake, scope, and completion rules. This skill covers wiring and verification.
1. Interaction Contract
Before wiring, inspect all relevant pages and write a compact interaction inventory:
| Source layer | Trigger | Action(s) | Destination/state | Transition | Close/back path | Expected result |
Every required interactive element must appear in the inventory. A visible control may remain non-interactive only when the user did not request behavior or the inventory marks it intentionally static.
Ask before wiring when the intended destination, state change, dismissal behavior, validation rule, or terminal result is unclear. If a required destination does not exist, ask whether to build it and request a reference or specification. Never generate an unrequested placeholder screen.
2. Runtime Capability Check
Before using prototype features, call list_commands with focused filters such as proto, overflow, variable, component, and the intended action name. Follow the returned schema exactly.
Current native actions may include:
navigate,back, andscrollTo;openOverlay,swapOverlay, andcloseOverlay;openUrl;changeTofor component variants;setVariable,setVariableMode, andconditional;- multiple actions on one interaction.
Do not claim a capability unless it appears in the current command contract.
What the engine checks for you
The engine rejects an unknown trigger, action, transition, or easing name, an overflow value outside none|horizontal|vertical|both, an overlay position outside center|topLeft|topCenter|topRight|bottomLeft|bottomCenter|bottomRight|manual, and a dest id that does not exist. Read the error text; it names the accepted values.
The engine does not check that a changeTo destination is a variant, that an overlay has a close path, that a scroll track is larger than its viewport, or that a required screen is reachable. Those remain your responsibility.
3. Sliders and Scrollable Content
A slider is a scroll viewport plus an oversized content track:
- Outer frame: fixed viewport dimensions, intended
overflowdirection, and deliberate clipping. - Inner frame: horizontal or vertical auto layout, consistent gap/padding, and content larger than the viewport.
- Cards/items: sized consistently unless the reference clearly varies them.
Use onDrag only when the intended interaction needs an explicit action. Native overflow does not require a fake click-navigation interaction.
Verifying a slider
overflow is write-only for inspection: inspect_document, get_node, inspect.properties, and inspect.code do not report it even after it is set and saved. Verify it three ways instead:
- The
set_propertiescall succeeded. Since the engine rejects any other value, success means the direction was applied. - Inspect both frames and compare sizes. The track's reported width or height must exceed the viewport's; a track that fits inside its viewport cannot scroll regardless of the flag.
- If proof in the file is required, read
overflowon that node in the saved.figcraftdocument, which is a zip containingdocument.json.
Do not write "overflow confirmed via inspect_document." That field will not be there.
4. Navigation and Buttons
Attach interactions to the final visible button/container rather than a child label or icon. The interactive bounds should cover the complete control and meet the chosen touch-target standard.
Example using run_command and the current proto.interaction.add shape:
{
"command": "proto.interaction.add",
"params": {
"id": "button-layer-id",
"trigger": {"type": "onClick"},
"action": {"type": "navigate", "dest": "destination-frame-id"},
"transition": {"type": "smartAnimate"},
"durationMs": 300,
"easing": "easeInOut"
}
}transition, durationMs, and easing are interaction-level fields unless the current list_commands contract says otherwise.
Use an explicit flow starting point through the current flow command. Ensure required destinations are reachable and back behavior is available where expected. Do not use Smart Animate by habit; choose instant, dissolve, smart animate, move, push, or slide based on the design and navigation model.
5. Overlays, Popups, and Alerts
Use overlays for dialogs, menus, popups, toasts, alerts, and bottom sheets when that matches the design.
{
"command": "proto.interaction.add",
"params": {
"id": "open-button-id",
"trigger": {"type": "onClick"},
"action": {
"type": "openOverlay",
"dest": "overlay-frame-id",
"position": "bottomCenter",
"close_on_outside": true,
"background": "#00000055"
},
"transition": {"type": "moveIn", "direction": "bottom"},
"durationMs": 250,
"easing": "easeOut"
}
}Every overlay must have the close behavior required by the design:
- wire visible Close, Cancel, or backdrop controls with
closeOverlayor the agreed action; - use outside-click dismissal only when appropriate;
- prevent outside dismissal for destructive confirmation or required decisions when specified;
- verify success, error, confirmation, timeout, and follow-up states when they are in scope.
An alert is not complete because it is drawn. Its trigger, message state, primary/secondary actions, dismissal, and final outcome must match the approved flow.
6. Component States, Variables, and Conditions
Use component variants plus changeTo for direct visual states. Use variables and conditional for flows whose result depends on previous actions or entered/simulated values.
Support only states required by the source or approved specification, such as:
- default, hover, pressed, focused, selected, and disabled;
- empty, filled, invalid, loading, success, and error;
- open and closed;
- destructive confirmation and completion.
Keep state changes attached to the component or control they visually affect. Verify that variant names and destinations still exist after design edits. Do not draw duplicate frames and call them interactive unless the required transitions are wired.
changeTo accepts any existing layer id without complaint, including a plain top-level frame that is not a variant at all. Such a wire saves cleanly and does nothing in playback. Before and after wiring changeTo, confirm through inspection that the source is an instance and the destination is a variant of the same component set.
7. Form and Typing Boundary
A text layer that an agent edits with type_text is not an editable prototype input. As of the current FigCraft command contract, no command matching native free-form runtime input is exposed.
When a user asks for a form that can be typed into:
- Recheck
list_commandsfor a current input capability. - If none exists, state the limitation before implementation.
- Ask whether a simulated flow is acceptable.
- If approved, simulate only the agreed cases using component states, text properties, variables, key triggers, and conditionals. Label the result as simulated input.
- If real arbitrary text entry is required, do not claim the
.figcraftprototype provides it.
Designing input states, clicking/focusing fields, validating representative values, and submitting a form can be simulated. Arbitrary text entry cannot be assumed.
8. Hotspot and Design Synchronization
Prefer the visible control frame as the hotspot. If a separate hotspot is necessary:
- name it
Hotspot/<purpose>; - place it with the corresponding control in the same screen/component hierarchy;
- match its bounds to the full target;
- do not cover unrelated controls;
- inspect it again after any layout or component change.
Before saving, detect missing destinations, stale layer IDs, duplicate or overlapping hotspots, controls wired through child text/icon layers, overlays without close paths, and unreachable required states.
9. Verification
Verification has three automated parts plus an explicit manual handover.
- Structure. Use
inspect_documentwith the relevant pages andget_nodefor deep subtrees. It reportsinteractionsper layer andflowsper page, so trigger, action type,dest, transition, duration, and easing are all checkable. Confirm source ids, destination ids, bounds, components, variants, and variables. Remember thatoverflowis not reported; verify a slider by the size comparison in section 3. - Graph. Walk the reported interactions and confirm every required path is reachable and has the intended back, close, success, error, or terminal route. Look for missing close paths,
changeTowires pointing at non-variants, controls wired through a child text or icon layer, and required states that nothing reaches. - Persistence. Save the document, then inspect again.
save_filedoes not create missing folders, so make sure the target directory exists.
Runtime playback is not automatable from this tool set. In a headless session proto.preview and proto.present return success without producing a window, and pointer drives the canvas rather than the prototype player. A successful proto.preview call is therefore not evidence that anything works. Never convert it into a claim of runtime verification.
Report verified structure, the paths you traced, and the click-through checks the user must perform, naming each one, for example: open the overlay from the card, dismiss it by tapping outside, and drag the card row horizontally.
Report implemented interactions, simulated behavior, unsupported behavior, manual checks, and the saved .figcraft path.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

