Figma use_figma Plugin API Rules
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
Agent Loop for pixel-perfect UI adjustments: extract a structured spec from the user's intent, apply changes one property at a time, self-verify via screenshot, and converge instead of ping-ponging.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add UniClipboard/UniClipboard --skill ui-iteration -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install UniClipboard/UniClipboard ui-iteration --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ui-iteration .claude/skills/ui-iteration && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ui-iteration" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ui-iteration into .claude/skills/ui-iteration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-iteration", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ui-iterationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add UniClipboard/UniClipboard --skill ui-iteration -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install UniClipboard/UniClipboard ui-iteration --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/ui-iteration .agents/skills/ui-iteration && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ui-iteration" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ui-iteration into .agents/skills/ui-iteration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-iteration", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add UniClipboard/UniClipboard --skill ui-iteration -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install UniClipboard/UniClipboard ui-iteration --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/ui-iteration .cursor/skills/ui-iteration && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ui-iteration" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ui-iteration into .cursor/skills/ui-iteration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-iteration", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/UniClipboard/UniClipboard.git --path .agents/skills/ui-iteration--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add UniClipboard/UniClipboard --skill ui-iteration -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install UniClipboard/UniClipboard ui-iteration --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/ui-iteration .gemini/skills/ui-iteration && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ui-iteration" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ui-iteration into .gemini/skills/ui-iteration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-iteration", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install UniClipboard/UniClipboard ui-iterationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add UniClipboard/UniClipboard --skill ui-iteration -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/ui-iteration .github/skills/ui-iteration && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ui-iteration" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ui-iteration into .github/skills/ui-iteration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-iteration", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add UniClipboard/UniClipboard --skill ui-iteration -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install UniClipboard/UniClipboard ui-iteration --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/ui-iteration .opencode/skills/ui-iteration && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ui-iteration" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ui-iteration into .opencode/skills/ui-iteration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-iteration", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ui-iterationAgent Loop for pixel-perfect UI adjustments: extract a structured spec from the user's intent, apply changes one property at a time, self-verify via screenshot, and converge instead of ping-ponging.
UI Iteration is an agent skill from UniClipboard/UniClipboard. Agent Loop for pixel-perfect UI adjustments: extract a structured spec from the user's intent, apply changes one property at a time, self-verify via screenshot, and converge instead of ping-ponging. Designed for high-fidelity UI cloning and spacing/style iteration.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering Autonomous loops and Design to code. The repository describes itself as: Real-time clipboard sync across all your devices — local-first, peer-to-peer, and end-to-end encrypted. No account. No cloud dependency. No central server. The licence is AGPL-3.0.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 19fc8bc. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
UI Iteration loads about 1.8k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 660 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
- Spending 10 rounds on one property without asking the user for a referenceAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from UniClipboard/UniClipboard at commit 19fc8bc, republished under its AGPL-3.0 licence (© UniClipboard). 660 words, ~1,816 tokens.
.claude/skills/ui-iteration/SKILL.md (or your agent's skills folder).An Agent Loop for UI polish work where the user needs pixel-level adjustments and the current pattern ping-pongs between overshooting and undershooting.
Observed anti-pattern (Session S47: 29 prompts!):
User: "padding 太大"
Agent: [changes 24→16]
User: "太小了"
Agent: [changes 16→28]
User: "还是不对, 调到 24"
Agent: [changes 28→24] ← back to where we started
User: "horizontal 也调一下"
Agent: [changes horizontal too, now vertical is wrong again]
... 20 more rounds ...After:
/ui-iteration
Agent: "What needs to change? Let me build a spec."
User: "底部胶囊的间距和图标大小"
Agent: [builds spec: 3 properties to adjust]
Agent: [changes property 1, screenshots, confirms]
Agent: [changes property 2, screenshots, confirms]
Agent: [changes property 3, screenshots, confirms]
Done in 3 rounds./ui-iteration — start the structured UI adjustment loopsystematic-debuggingNever change multiple visual properties at once. If the user says "padding is wrong and the icon is too small", that's two iterations, not one. Changing both at once means you can't tell which change fixed (or broke) the layout.
When adjusting spacing, prefer values from an established scale rather than arbitrary numbers:
Spacing scale (4px base):
0, 2, 4, 6, 8, 10, 12, 16, 20, 24, 28, 32, 40, 48, 64When the user says "a bit more padding", move ONE step up the scale, not +2px.
Before changing a UI value, read the component to understand:
When the user describes what's wrong, extract a structured spec:
UI Adjustment Spec:
Component: ServerSwitcherModal
File: src/components/ServerSwitcher.tsx
Adjustments:
1. [SPACING] top padding: currently 16, user wants "more breathing room"
→ Try: 24 (next scale step up)
2. [SIZE] close icon: currently 18, user says "too thin"
→ Try: 22 (next size step)
3. [ALIGNMENT] empty state text: currently top-aligned, user wants centered
→ Try: flex justify-centerPresent the spec to the user for confirmation before making any changes.
For each adjustment in the spec:
Applied adjustment 1/3: top padding 16 → 24
Next: adjustment 2 (close icon size). Proceed?When the user says the adjustment is wrong:
"Too much" / "太大了": Move one scale step DOWN from the attempted value "Too little" / "太小了": Move one scale step UP from the attempted value "Not what I meant": Ask for clarification, update the spec "Perfect" / accepted: Mark adjustment as done, move to next
When cloning from a reference app or screenshot:
Study the reference thoroughly before making any changes:
# If reference is a file in the repo
Read /Users/mark/MyProjects/iOSApp/UniClipboard/Views/ServerSwitcherView.swift
# If reference is a screenshot
# Read the image file for visual analysis
Read /tmp/reference-screenshot.pngBuild a Transfer Spec mapping reference → implementation:
Reference → Implementation mapping:
iOS .presentationDetents([.medium]) → snapPoints={['50%']}
iOS .padding(.horizontal, 24) → paddingHorizontal: 24
iOS .font(.body) → fontSize: 17 (iOS body = 17pt)
iOS .foregroundStyle(.secondary) → color: theme.textSecondaryApply each mapping one at a time, verifying after each
@expo/ui components for native feel when available@gorhom/bottom-sheet with proper Android stylingIf after 3 rounds of adjusting the same property the user is still not satisfied:
We've adjusted top padding three times (16 → 24 → 20 → 22).
Let me ask more precisely:
What's the visual effect you're aiming for?
A) Match the iOS Settings app spacing
B) Equal spacing top and sides
C) Specific pixel value you have in mind
D) Show me a reference screenshotGetting explicit alignment on the target prevents further oscillation.
After all adjustments are made, do a quick consistency audit:
# Check if the adjusted values are consistent with sibling components
grep -n "padding\|margin\|gap\|spacing" <file> | head -20If the same component family uses different padding values after adjustments, flag it:
⚠️ Consistency note:
ServerSwitcherModal: paddingHorizontal=24
AddServerSheet: paddingHorizontal=16
These are sibling sheets — should they use the same value?© UniClipboard, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/ui-iteration of UniClipboard/UniClipboard.
Open the folder on GitHubat commit 19fc8bc
UI Iteration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| UI Iteration this skillUniClipboard/UniClipboard | 1.9k | — | ~1.8k | Automated safety check: Warn | AGPL-3.0 | |
| Figma use_figma Plugin API Ruleswarpdotdev/warp | 65k | 4 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| Figma Design to Codewarpdotdev/warp | 65k | 4 repos | ~2.9k | Automated safety check: Pass | AGPL-3.0 | |
| Scalar Design Systemscalar/scalar | 16k | — | ~2.7k | Automated safety check: Pass | MIT | |
| Figma Design System Rules Generatorwarpdotdev/warp | 65k | 3 repos | ~4.6k | Automated safety check: Pass | AGPL-3.0 | |
| Figma Code Connect Componentswarpdotdev/warp | 65k | 2 repos | ~4.2k | Automated safety check: Pass | AGPL-3.0 |
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
warpdotdev/warp
Turns a Figma frame or component into production code that matches the design, using the Figma MCP server and the project's own design system.
scalar/scalar
Scalar's design system — design tokens, theming (@scalar/themes), CSS variables, and the @scalar/components library.
warpdotdev/warp
Creates project-specific design system rules from your codebase so coding agents implement Figma designs with your components, naming and tokens.
warpdotdev/warp
Maps published Figma components to their code implementations with Code Connect, using the Figma MCP suggestion and mapping tools.
MigoXLab/coderio
Pixel-perfect Figma to React conversion using coderio. An agent skill from MigoXLab/coderio.
UniClipboard/UniClipboard
Pick and install beUI (@beui) animated React components from the shadcn registry.
UniClipboard/UniClipboard
Push the current branch and open a GitHub pull request against main.
UniClipboard/UniClipboard
定期审计代码库的工程设计问题(高心智复杂度、单一真相源被破坏、catch-all 胖接口、死代码、散落魔法字面量、泄漏抽象、资源生命周期靠环形缓冲)与可优化点,范围限定为自上次审计以来的 git churn,每条发现都落到 file:line 并对照本项目自己的 VISION.md / 各级 AGENTS.md / memory…
UniClipboard/UniClipboard
Inspect uniclipboard logs from BOTH the macOS host and the mounted Windows peer when debugging cross-platform sync, pairing, transfer, or daemon issues.
UniClipboard/UniClipboard
Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests.
UniClipboard/UniClipboard
Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs.
Categories
Agent Loop for pixel-perfect UI adjustments: extract a structured spec from the user's intent, apply changes one property at a time, self-verify via screenshot, and converge instead of ping-ponging. UI Iteration is an agent skill from UniClipboard/UniClipboard. Agent Loop for pixel-perfect UI adjustments: extract a structured spec from the user's intent, apply changes one property at a time, self-verify via screenshot, and converge instead of ping-ponging.
UI Iteration fits situations like: tasks that involve Autonomous loops; tasks that involve Design to code.
Run `npx skills add UniClipboard/UniClipboard --skill ui-iteration -a claude-code`. Or copy the skill folder (.agents/skills/ui-iteration in UniClipboard/UniClipboard) into .claude/skills/ui-iteration in your project. Claude Code loads it when a task matches its description.
Run `npx skills add UniClipboard/UniClipboard --skill ui-iteration -a codex`. Or copy the skill folder (.agents/skills/ui-iteration in UniClipboard/UniClipboard) into .agents/skills/ui-iteration in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add UniClipboard/UniClipboard --skill ui-iteration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ui-iteration, .gemini/skills/ui-iteration, .github/skills/ui-iteration and .opencode/skills/ui-iteration in your project.
SKILL.md names no scripts, command-line tools or credentials: UI Iteration is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way.
UI Iteration is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with UI Iteration: Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars), Figma Design to Code (warpdotdev/warp, 65k stars), Scalar Design System (scalar/scalar, 16k stars) and Figma Design System Rules Generator (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
UniClipboard (a GitHub organization) maintains it in UniClipboard/UniClipboard, which has 1,860 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 9, 2026.
Source: UniClipboard/UniClipboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.