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.
Finds where consuming code has drifted from what the design system intended: local re-implementations, token overrides, forked patterns, classified by cause.
$ npx skills add murphytrueman/design-system-ops --skill drift-detection -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install murphytrueman/design-system-ops drift-detection --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/murphytrueman/design-system-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/drift-detection .claude/skills/drift-detection && 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 "drift-detection" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/drift-detection into .claude/skills/drift-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drift-detection", 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/murphytrueman/design-system-ops/tree/main/skills/drift-detectionType 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 murphytrueman/design-system-ops --skill drift-detection -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install murphytrueman/design-system-ops drift-detection --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/drift-detection .agents/skills/drift-detection && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "drift-detection" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/drift-detection into .agents/skills/drift-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drift-detection", 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 murphytrueman/design-system-ops --skill drift-detection -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install murphytrueman/design-system-ops drift-detection --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/drift-detection .cursor/skills/drift-detection && 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 "drift-detection" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/drift-detection into .cursor/skills/drift-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drift-detection", 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/murphytrueman/design-system-ops.git --path skills/drift-detection--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 murphytrueman/design-system-ops --skill drift-detection -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install murphytrueman/design-system-ops drift-detection --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/drift-detection .gemini/skills/drift-detection && 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 "drift-detection" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/drift-detection into .gemini/skills/drift-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drift-detection", 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 murphytrueman/design-system-ops drift-detectionInstalls 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 murphytrueman/design-system-ops --skill drift-detection -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/drift-detection .github/skills/drift-detection && 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 "drift-detection" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/drift-detection into .github/skills/drift-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drift-detection", 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 murphytrueman/design-system-ops --skill drift-detection -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install murphytrueman/design-system-ops drift-detection --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/drift-detection .opencode/skills/drift-detection && 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 "drift-detection" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/drift-detection into .opencode/skills/drift-detection/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drift-detection", 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.
drift-detectionFinds where consuming code has drifted from what the design system intended: local re-implementations, token overrides, forked patterns, classified by cause.
Drift Detection is an agent skill from murphytrueman/design-system-ops. Finds where consuming code has drifted from what the design system intended: local re-implementations, token overrides, forked patterns, classified by cause. Use it whenever someone asks where a codebase, product or team has drifted or gone off-system. One component vs spec: design-to-code-check.
Its SKILL.md is about 5.5k 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 GitOps, Design systems and Design to code. The repository describes itself as: Claude Code skills for the work that keeps a design system alive. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f167898. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteGrepGlobBash(cat:*)Bash(diff:*)Bash(find:*)Bash(head:*)Bash(ls:*)Bash(sort:*)…and 3 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and npm, which can reach the network depending on how they are called.
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.
Drift Detection loads about 5.5k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 3,061 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 no risky patterns in SKILL.md.
Automated 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 murphytrueman/design-system-ops at commit f167898, republished under its MIT licence (© murphytrueman). 3,061 words, ~5,508 tokens.
.claude/skills/drift-detection/SKILL.md (or your agent's skills folder).A skill for identifying and classifying drift in a design system — the accumulated distance between design system intent and actual implementation across consuming products. Produces a drift report with severity ratings, origin classification, and recommended response for each finding.
Confirm that every path in this skill's frontmatter references: exists relative to this SKILL.md. If any is missing, stop: the install is incomplete, usually because a flattening installer (for example npx skills install) dropped the repo-root knowledge-notes/ directory. Tell the user to reinstall by a method in 1-INSTALL.md and run verify-install.sh from the install root. Proceed without the references only if the user explicitly says to, and then say in the output that it was produced without the pack's reference material.
Drift is the normal condition of a used design system. The question is not whether your system has drifted — it has — but whether the drift is intentional, how severe it is, and whether it is compounding.
Not all drift is bad. A product team that made a deliberate, documented exception to an established pattern is making a design decision. A product team that unknowingly re-implemented a design system component with slightly different spacing is creating maintenance debt. The distinction matters, because the response is different: intentional drift might become a contribution, while accidental drift needs to be corrected and its root cause addressed.
This skill distinguishes between drift types and routes each finding to the appropriate response.
If .ds-ops-config.yml exists, follow the configuration-and-recurring knowledge note (../../knowledge-notes/configuration-and-recurring.md) for loading, integration fallbacks and recurring runs. This skill reads:
severity.* — drift finding severity overridessystem.styling — pre-selects the token drift detection approach (CSS vars, SCSS, Tailwind, CSS-in-JS)integrations.* — drift comparison data (see below)recurring.* — drift trend (see Recurring workflow)Figma MCP (integrations.figma.enabled: true):
integrations.figma.file_keyGitHub (integrations.github.enabled: true):
integrations.github.repo for code patterns that indicate drift (see the note's GitHub caution):!important on design token propertiespackage.json and resolves in its lockfile against the latest published version (npm view [package] version). Commit history doesn't tell you which version a consumer runsChromatic (integrations.chromatic.enabled: true):
Follows the recurring-run procedure in the configuration-and-recurring note. Specific to this skill:
Ask for or confirm (skip questions already answered by auto-pull):
The more specific the scope, the more actionable the report. A drift detection across "the whole system" surfaces patterns but produces a long list of findings with limited prioritisation signal. Scoping to a specific product or a specific component category produces a more actionable output.
Drift needs a consumer. If the only code in reach is the design system's own repository, there is nothing to have drifted from it. Stop and say so, then point to the skills that do apply: token-compliance for raw values in the system's own components, component-audit for duplication and gaps inside the library, design-to-code-check for one component against its spec. Ask for a consuming product (a path, a repo, or a Figma file of a product) before continuing.
Small-system note (fewer than 5 components): For systems this size, scope to the full system — there is no need to sample. Drift patterns are different in small systems: teams are typically smaller and more aligned, so drift is less likely to be accidental and more likely to be intentional divergence (Classification A) or a system gap (Classification E) — though each still needs the evidence Step 4 asks for. Simplify the output to a per-component checklist rather than a full drift report. If all components show no drift, state that as the finding and recommend a review cadence.
Drift is always relative to something. Confirm the source of truth being used as the reference:
If there is no clear single source of truth, that is a finding in itself and should be included at the top of the report.
Assess across four dimensions:
Differences in the visual treatment of a component or pattern compared to the design system reference. Includes spacing, colour (particularly non-token values), typography, border radius, shadow, and icon usage.
For each instance: name the component or pattern, describe the visual difference, and note whether it appears to be intentional or accidental.
Differences in interactive behaviour — state transitions, animation, timing, keyboard behaviour, focus management — compared to the designed and documented component behaviour.
Behavioural drift is often the hardest to detect without direct testing, but it carries the highest risk because it includes accessibility regressions.
Components implemented with different props, different prop names, or different prop semantics than the design system's published API. This is most common when teams implement a component locally rather than consuming it from the system, or when a local version was built before the system component existed and was never migrated.
Raw values used where design tokens should be referenced, local token overrides that conflict with semantic intent, and token names used inconsistently across implementations.
The per-file search for raw values is token-compliance's job, with its styling-approach rules and positive control. Don't re-implement it here. If a token-compliance report exists for the product, import its violation table as the token dimension. If not, run token-compliance on the consuming product first, then continue. What this skill adds is the consumer-versus-system reading of each violation: a raw value that equals a system token's resolved value is usually class C or D (someone typed the number instead of the name); a raw value that matches nothing in the system is class A or E and needs the evidence rule in Step 4. Local overrides of system tokens (--color-action-primary: #... redefined in the product, !important on token-driven properties) aren't in token-compliance's remit, so search for those here with a positive control.
Classify every finding before assigning a response. Classes A, C and D are claims about the team's intent, which the code alone rarely shows. Assign a class only when its evidence rule is met; otherwise mark the finding Unclassified — needs team input and list what would settle it.
Classification A: Intentional divergence The product team made a deliberate decision to diverge from the system, for a known reason. This may be appropriate (the system does not serve this context) or a contribution candidate (the need is real and should be in the system). Evidence required: a code comment, ADR, PR description, or statement from the team recording the decision.
Classification B: Version lag The implementation matches an older version of the design system. The system has moved on; the product has not. This is not a mistake — it is normal entropy — but it accumulates into a migration burden if left unaddressed. Evidence required: the consumer's installed version (lockfile) is behind the latest published version, and the drifted behaviour matches the installed version.
Classification C: Accidental drift The implementation diverged from the system without intent. Most commonly caused by implementing a component locally when the system version was not yet available, then not migrating once it was. Evidence required: something that shows the divergence wasn't chosen, e.g. the local version predates the system one (git history) and nothing records a decision, or the team confirms it.
Classification D: Misunderstanding The implementation reflects a misreading of the documentation or specification. The consumer thought they were using the system correctly and did not know they were not. Evidence required: the usage matches a plausible reading of the docs (quote the ambiguous passage), or the team confirms it.
Classification E: System gap The drift exists because the system did not have what the product team needed. The divergent implementation is the product team's solution to a design system gap, not a mistake. Evidence required: no system component or token covers the need at the version the consumer runs.
Unclassified — needs team input The evidence doesn't support any class above. Report the finding with its severity and the question that would classify it ("Was the 12px padding on CheckoutCard a deliberate choice?"). Don't guess.
Start from a base severity, then weight it:
Then weight by component criticality:
Critical path components (core navigation, authentication, checkout, primary data entry) — drift here is automatically elevated one severity level. A Medium finding on a checkout component becomes High.
High-traffic components (buttons, form inputs, cards, modals) — drift here affects the most users. Weight stays as assessed but flag the blast radius.
Utility components (layout wrappers, spacing helpers, icon containers) — drift here is lower risk. A Medium finding may be downgraded to Low if the component is not user-facing.
After classifying each drift instance, route it to the appropriate response:
| Classification | Primary response | Skill to run next |
|---|---|---|
| A — Intentional divergence | Document as a decision record | decision-record |
| B — Version lag | Point at the release's migration guide; if the gap is mechanical, offer a codemod | codemod-generator, or the token-migration command for token renames |
| C — Accidental drift | Fix the implementation + review docs that failed to prevent it | design-to-code-check |
| D — Misunderstanding | Update documentation + notify affected teams | change-communication |
| E — System gap | Route to contribution workflow | contribution-workflow |
| Unclassified | Ask the team the question that would classify it | — |
For drift classified as B, group the instances by the release that introduced the change (read the system's CHANGELOG or git tags between the consumer's installed version and the latest). For each group say three things, all from evidence: how many files in the consumer are affected (count them); whether the change is mechanical (a rename or prop swap a codemod could do) or structural; and whether the release shipped a migration guide. A breaking release with no migration guide is a governance finding in its own right; flag it separately. Don't estimate hours or T-shirt sizes; the count of files and the mechanical/structural call are what the team needs to plan.
If the user has put two or more design systems in scope (brand systems, platform systems), also compare them to each other: shared primitives that no longer agree, the same semantic name resolving to different intents, and same-named components with different APIs. Skip this step, and say so under Scope, when a single system is in scope.
Open with a headline sentence. Example: "Drift is moderate and mostly accidental — 3 components have diverged from the system, and 2 of those look like the team didn't know the system version existed. Here's the full picture."
Date: [date] Subject: [what was assessed] Reference source: [what the assessment was compared against] Assessment method: [direct inspection / reported / mixed]
What is the overall drift picture? Is the system drifting in a controlled way or compounding? What is the most important finding? Write this like you're debriefing a colleague, not filing a compliance report.
For each finding:
| ID | Location | Dimension | Classification | Severity | Description | Recommended action |
|---|---|---|---|---|---|---|
| DF-01 | [repo path:line, or Figma node id; and the component] | [visual/behavioural/API/token] | [A–E / Unclassified] | 🔴/🟠/🟡/⚪ | [specific description: the system value and the consumer value] | [specific action] |
Location is evidence, not a label: a file and line the reader can open, or a Figma node. A finding with no location is a suspicion, and goes in the Unclassified list with the question that would confirm it.
Severity key: 🔴 Critical · 🟠 High · 🟡 Medium · ⚪ Low (rubric in Step 4a)
Intentional divergence (A) List findings. For each, note whether it is a contribution candidate or an accepted exception. If it is an accepted exception, it should be documented as a decision record.
Version lag (B) List findings. Group by component or token set. Identify whether a migration sprint would address the bulk of these, or whether they are spread too thin for a coordinated migration.
Accidental drift (C) List findings. These are the highest priority for correction because they are unintentional — the product team would want to know.
Misunderstanding (D) List findings. These indicate a documentation or communication gap. The finding should be corrected, and the documentation or onboarding that failed to prevent it should be reviewed.
System gaps (E) List findings. These are contribution candidates. If the same gap appears across multiple products, the case for adding it to the system is stronger. Cross-reference the contribution workflow.
Unclassified — needs team input List findings with the question that would classify each.
Step back from individual findings and identify patterns:
Root cause patterns are more actionable than individual findings. Addressing a root cause prevents future drift; addressing individual findings only corrects the current state.
Prioritised list:
Scope
End with the closing note below.
If the Figma Console MCP from Southleft is connected (check for figma_capture_screenshot and figma_get_component_for_development tool availability), enhance the drift report with design-side visual evidence.
Capture design reference: Use figma_capture_screenshot to capture the current state of each drifted component as it appears in Figma. This uses the plugin's exportAsync API, which captures the live state — not a cached cloud render. The result is the design-side truth for visual comparison.
Capture the design spec: Use figma_get_component_for_development to get dev-optimised design data alongside a rendered image. This is still the design side — it gives you the spec in a form that maps to implementation properties, not the implementation itself. For the implementation side, use a Storybook or Chromatic snapshot where one exists, or describe the code.
Visual diff in report: For each visual or API drift finding (any class), include the Figma screenshot alongside the implementation snapshot or a description of what the code renders. This gives the reader a visual understanding of the gap, not just a textual description of property mismatches.
When the standard Figma MCP is connected (read-only): Screenshots via REST API are available but reflect the last-published cloud state, not the current live state. Note this limitation — if the Figma file has unpublished changes, the screenshot may not reflect the latest design intent.
End the report with:
A note on context: This analysis identifies where implementations differ from the system — it cannot always tell why. The classification system (intentional, accidental, version lag, misunderstanding, system gap) is a starting point. If any instance is misclassified, let me know — your corrections make future drift checks more accurate. The goal is to distinguish the drift that needs fixing from the drift that needs documenting.
© murphytrueman, MIT. 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 skills/drift-detection of murphytrueman/design-system-ops.
Open the folder on GitHubat commit f167898
Drift Detection 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 |
|---|---|---|---|---|---|---|
| Drift Detection this skillmurphytrueman/design-system-ops | 203 | — | ~5.5k | Automated safety check: Pass | MIT | |
| Figma use_figma Plugin API Ruleswarpdotdev/warp | 65k | 4 repos | ~4.4k | 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 | |
| Figma Screen Generatorwarpdotdev/warp | 65k | 2 repos | ~5k | 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.
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.
warpdotdev/warp
Builds or updates full Figma screens from code or a description by reusing the file's published design system components, variables and styles.
uxKero/anydesign
Extracts the design of a screenshot, website URL or Figma file into a design.md of tokens, components, layout and brand rules, or copies one element into element.md.
murphytrueman/design-system-ops
Write the AGENTS.md that tells coding agents how to use this design system: where things live, sourced rules, how to check work, what not to do; Claude, Cursor or Copilot pointers on request.
murphytrueman/design-system-ops
Write a six-section prose description (purpose, props, anti-patterns, composition, accessibility, examples) for a Figma component's description field so LLMs read it via MCP.
murphytrueman/design-system-ops
Write release notes, a migration guide and a team announcement for a design system change that is already decided, scaled to its impact.
murphytrueman/design-system-ops
Generate machine-readable index files in .ai/index/ (component inventory, uses/usedBy graph, stats) for AI agents.
murphytrueman/design-system-ops
Generate tested jscodeshift/postcss codemods for design system migrations: token renames, prop renames or removals, import paths, component swaps.
murphytrueman/design-system-ops
Audit prop APIs across a component library: naming consistency, boolean/default patterns, type coverage, exported types, breaking changes between versions.
Categories
Finds where consuming code has drifted from what the design system intended: local re-implementations, token overrides, forked patterns, classified by cause. Drift Detection is an agent skill from murphytrueman/design-system-ops. Finds where consuming code has drifted from what the design system intended: local re-implementations, token overrides, forked patterns, classified by cause.
Drift Detection fits situations like: someone asks where a codebase; team has drifted; gone off-system.
Run `npx skills add murphytrueman/design-system-ops --skill drift-detection -a claude-code`. Or copy the skill folder (skills/drift-detection in murphytrueman/design-system-ops) into .claude/skills/drift-detection in your project. Claude Code loads it when a task matches its description.
Run `npx skills add murphytrueman/design-system-ops --skill drift-detection -a codex`. Or copy the skill folder (skills/drift-detection in murphytrueman/design-system-ops) into .agents/skills/drift-detection 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 murphytrueman/design-system-ops --skill drift-detection -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/drift-detection, .gemini/skills/drift-detection, .github/skills/drift-detection and .opencode/skills/drift-detection in your project.
Going by SKILL.md and its folder, Drift Detection needs the command-line tools its instructions call (npx and npm). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Write, Grep, Glob, Bash(cat:*), Bash(diff:*), Bash(find:*), Bash(head:*), Bash(ls:*), Bash(sort:*), Bash(tail:*), Bash(wc:*), Bash(npm view:*).
SKILL.md contains no URLs. Its commands use npx and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Drift Detection is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.5k tokens (SKILL.md is roughly 22k 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 Drift Detection: Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars), Scalar Design System (scalar/scalar, 16k stars), Figma Design System Rules Generator (warpdotdev/warp, 65k stars) and Figma Code Connect Components (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
murphytrueman (a GitHub user) maintains it in murphytrueman/design-system-ops, which has 203 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on September 24, 2026.
Source: murphytrueman/design-system-ops on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.