Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/punkadillo/figma-code-composerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/punkadillo/figma-code-composer/model-preference)<a href="https://agentmods.dev/rules/punkadillo/figma-code-composer/model-preference"><img src="https://agentmods.dev/badge/rules/punkadillo/figma-code-composer/model-preference/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/punkadillo/figma-code-composer/model-preference"><img src="https://agentmods.dev/badge/rules/punkadillo/figma-code-composer/model-preference.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00674 | $0.00674 |
| Opus 5.5 | $0.00270 | $0.00270 |
| Sonnet 5.5 | $0.00135 | $0.00135 |
| Haiku 4.5 | $0.00067 | $0.00067 |
Grade A, and why
model-preference scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 37 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Cursor model preference — plan-aware, never forced
The figma-pipeline agents never force a model selection in Cursor. Cursor applies the active model from its Settings → Models UI / chat model picker; no project file can pin it. So this is a preference, scoped by plan:
Free plan — leave it on Auto
On the Cursor Free plan, model selection is locked to Auto. Do not attempt to set, switch, or recommend a specific model — the user can't change it, and the pipeline runs fine on whatever Auto picks. Treat any Composer-2.5/Claude preference below as a no-op when the picker is locked. The coordinator still surfaces its size hint (sm/md/lg) for information, but adds no "switch model" nudge on Free.
Never spawn a named-model agent (enforced, not advisory)
The whole pipeline runs inline in the current chat thread — Cursor has no Agent-style sub-agent spawner (see pipeline-roles.mdc). Do not try to dispatch a specialist (figma-fetcher, component-builder, …) or the coordinator itself as a separate agent that requests a named model. On Free that fails hard and aborts the run before any work happens:
Named models unavailable — Free plans can only use Auto. Switch to Auto or upgrade plans to continue.
This is the load-bearing difference from Claude Code's Agent(model=…) spawns: that path does not exist in Cursor. The coordinator plays every role inline on whatever model the picker currently holds (Auto on Free). The size hint is informational only — never a trigger to spawn or switch.
Paid plan — prefer Composer 2.5, fall back to Claude
When the plan allows model selection (Paid):
- Default: Composer 2.5. Select it once in Settings → Models.
- Fallback: a Claude model ("claude mode") when Composer 2.5 is unavailable, or for
lg-size runs (complex/extreme tier) where Claude's long-context reasoning or thecode-reviewerpass benefits. The coordinator'slgsize hint is the signal to switch for that run.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 37 lines · 674 tokens per session scan A 2a7fe6cf44d5
model-preference is a cursor rule published in the GitHub repository punkadillo/figma-code-composer (3 stars, last pushed 2mo ago), licensed MIT. It adds 674 tokens to every session, about $0.0027 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
spec-workflow
SDD specification protocol: risk-based specmode classification, required sections per mode, plan approval gate, and artifact directory conventions.
tools
(none|read|write|network|exec) and risk (low|medium|high|critical). These drive the permission classifier — be honest.
testing
Guide for writing pytest unit and integration tests.
ponytail
Ponytail, lazy senior dev mode. Always pick the simplest solution that works.
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.
dev-standard
Apache Superset development standards and guidelines for Cursor IDE.