Composer Plugins
dxos/dxos
A skill your agent uses when working on files in packages/plugins/, adding new plugins, refactoring plugin components/containers, writing storybooks for plugins, or wiring capabilities like…
Audit theme parity: tokens missing or unchanged per theme, component tokens bypassing semantics, contrast within each theme, resolver contexts, theme-switch regressions.
$ npx skills add murphytrueman/design-system-ops --skill theme-audit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install murphytrueman/design-system-ops theme-audit --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/theme-audit .claude/skills/theme-audit && 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 "theme-audit" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/theme-audit into .claude/skills/theme-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "theme-audit", 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/theme-auditType 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 theme-audit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install murphytrueman/design-system-ops theme-audit --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/theme-audit .agents/skills/theme-audit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "theme-audit" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/theme-audit into .agents/skills/theme-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "theme-audit", 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 theme-audit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install murphytrueman/design-system-ops theme-audit --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/theme-audit .cursor/skills/theme-audit && 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 "theme-audit" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/theme-audit into .cursor/skills/theme-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "theme-audit", 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/theme-audit--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 theme-audit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install murphytrueman/design-system-ops theme-audit --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/theme-audit .gemini/skills/theme-audit && 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 "theme-audit" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/theme-audit into .gemini/skills/theme-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "theme-audit", 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 theme-auditInstalls 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 theme-audit -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/theme-audit .github/skills/theme-audit && 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 "theme-audit" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/theme-audit into .github/skills/theme-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "theme-audit", 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 theme-audit -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 theme-audit --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/theme-audit .opencode/skills/theme-audit && 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 "theme-audit" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/theme-audit into .opencode/skills/theme-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "theme-audit", 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.
theme-auditAudit theme parity: tokens missing or unchanged per theme, component tokens bypassing semantics, contrast within each theme, resolver contexts, theme-switch regressions.
Theme Audit is an agent skill from murphytrueman/design-system-ops. Audit theme parity: tokens missing or unchanged per theme, component tokens bypassing semantics, contrast within each theme, resolver contexts, theme-switch regressions. Triggers: dark mode audit, theme coverage, brand variant parity. For general token structure use token-audit.
Its SKILL.md is about 6.3k 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 Theming and dark mode and GraphQL. The repository describes itself as: Claude Code skills for the work that keeps a design system alive. The licence is MIT.
8 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(find:*)Bash(head:*)Bash(ls:*)Bash(grep:*)Bash(rg:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, 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.
Theme Audit loads about 6.3k tokens when it runs. Until then it costs about 73 tokens; SKILL.md has 3,094 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,094 words, ~6,257 tokens.
.claude/skills/theme-audit/SKILL.md (or your agent's skills folder).A skill for auditing theme coverage and visual consistency across multiple design system themes. Identifies tokens missing from specific themes, component tier propagation failures, internal consistency violations within each theme, DTCG resolver coverage gaps, and components likely to break on theme switches. Produces a theme coverage report with severity-rated findings.
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.
Theming is where the three-tier token architecture proves its value or reveals its failures. When a system switches themes correctly, the change ripples through every component that references the semantic tier. When it does not — when components hardcode primitives or when the semantic tier is incomplete — a theme switch becomes a hunt through hundreds of files for missed overrides.
A theme audit is not about validating a single theme's visual appearance. It is about ensuring every token consumed by every component exists and is correctly defined across every theme the system claims to support. It is about catching cases where the component tier skips the semantic tier entirely, making theme switches invisible to that component.
The audit surfaces three categories of problems: coverage gaps (token defined in Theme A but not Theme B), architectural failures (component tokens that bypass the semantic tier), and internal consistency breaks (within a single theme, visual logic is violated — e.g. in dark mode, a raised surface that's darker than the base background, which reads as sunken).
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:
system.theming — if false, exit early with a note that this skill applies only to systems with theming enabled. If true, proceed.severity.* — overrides for theme-specific findings (e.g. missing_theme_value: critical for a system about to launch dark mode)integrations.style_dictionary — parse tokens via Style Dictionary (4 or 5) to extract all semantic and component tokens and their per-context valuesintegrations.figma — Figma variables and their modes as the theme sourcerecurring.* — the previous theme audit, for trend comparisonBefore auditing, discover what themes the system actually defines:
Discover themes:
.resolver.json files and read each modifier's contexts (e.g. a theme modifier with light and dark, a brand modifier with a and b). Each context is a theme; the spec calls them contexts, not modes:root, .dark, [data-theme="light"], [data-theme="dark"], [data-brand="brand-a"] — each scope is a theme variant$themes: (...) or separate theme files (_theme-light.scss, _theme-dark.scss)export const lightTheme = { ... }; export const darkTheme = { ... })tailwind.config.js or tailwind.config.ts for darkMode configuration and any theme extendsPresent discovered themes to user:
Produce a brief inventory:
Themes discovered:
- Light (default, CSS root scope, Figma mode)
- Dark (CSS .dark scope, Figma mode)
- Brand A (data-theme="brand-a" scope)
- Brand B (data-theme="brand-b" scope)
Total: 4 themesAsk: "I found these [N] themes. Should I audit all of them, or focus on specific variants?"
If no themes are discovered and theming is marked as true in config, ask the user to name the themes they intend to support.
Gather the semantic and component tiers across all discovered themes:
For DTCG format:
sets, modifiers and resolutionOrder. Resolve the default (the sets, plus each modifier's default context, in resolution order) to get the reference set of semantic and component tokensFor CSS custom properties:
:root (or default theme scope) as the reference set of all semantic tokens.dark, [data-theme="dark"], etc.) and their token definitionsFor SCSS variables:
For JavaScript theme objects:
For Tailwind:
theme and darkMode blocksOutput a token inventory (figures illustrative). With CSS scopes, SCSS theme files and JS theme objects, a token not redefined in a theme inherits the default — "not overridden" is not the same as "missing":
Semantic tokens: 156 total
- Overridden in every theme: 118
- Inherit the default in one or more themes: 34 (fine for spacing, radius, type; check colour and shadow)
- Defined only in a non-default theme scope: 4 (undefined in the default theme — a real gap)
Component tokens: 287 total
- Defined in all themes: 278
- Coverage gaps: 9This checkpoint reveals the scale of coverage problems before the detailed audit.
Inheriting the default is correct for tokens that shouldn't change between themes — spacing, radius, font sizes, durations usually don't. Flag only:
--color-text-default is a real gapIf the team has said a token is deliberately the same across themes (a fixed brand colour), treat it as accepted.
Coverage matrix:
Show only the rows with a gap — not every semantic token. Columns are themes. Mark each cell as:
Summarise gaps per theme (figures illustrative):
Dark theme: 4 theme-dependent tokens not themed (--color-feedback-info, --color-feedback-warning, --color-border-subtle, --shadow-raised)
Brand A: 2 not themed (--color-feedback-warning, --color-action-secondary); 1 undefined (--text-heading-display)
Brand B: no gapsFor each gap, flag:
TH- prefix keeps these distinct from token-compliance's TC- findings when both reports are read together)Tier leakage as an architectural finding belongs to token-audit. If a token-audit report exists for this system, take its list of component tokens that reference primitives and don't re-derive it; cite the finding IDs. What this skill adds is the theming consequence: whether each leaking token is overridden per theme, and what breaks if it isn't. Report each leak once, here, in those terms.
Verify that component tokens correctly inherit from the semantic tier across all themes:
For each component token:
Tier leakage detection:
Flag any component token that references a primitive (rather than a semantic token):
TH-10 | 🔴 Critical | Tier leakage | button.background.default references {color.blue.500} (primitive) instead of semantic tier, with no per-theme override (tokens/component.tokens.json:14)
- Impact: Button background will not change on theme switch (dark mode will show blue on blue)
- Recommended action: Redefine as button.background.default: {color.action.primary}Quantify the scope:
Component tokens examined: 287
- Correctly reference semantic tier: 276
- Tier leakage (reference primitives): 11Tier leakage is the most dangerous category of theme bug — everything appears to work until someone activates a new theme. It's 🔴 Critical only when the component token isn't itself overridden per theme. If each theme sets its own value for the component token, theming works; the leakage is then a 🟡 Medium maintenance finding (every new theme has to remember that override).
For each theme, validate internal logical consistency:
Consistency rules (apply per theme, not across themes):
For every theme, compute contrast from resolved values (follow aliases to the final colour in that theme) rather than judging by name. The baseline is WCAG 2.2 AA: 4.5:1 for body text, 3:1 for large text and for non-text elements such as borders, focus indicators and icons. (Some legal baselines, e.g. EN 301 549, still reference WCAG 2.1 AA; use that if it's the team's obligation.)
Compute ratios in sRGB. Convert OKLCH, Lab, LCH and Display P3 values to sRGB first, and say when a value was out of gamut and clipped. A colour with alpha has no contrast ratio on its own: composite it over the background it sits on before computing, and if that background isn't known from the tokens, report the ratio as not computed rather than guess. Every consistency finding names the tokens, their resolved values in that theme, and the file and line (or Figma collection and mode) they came from.
For light theme:
For dark theme:
For brand variants: run the same checks per brand. The one brand-specific check is that feedback colours (error, success, warning) stay distinguishable from that brand's primary action colour: compute the contrast between each pair, and flag below 3:1, because a brand whose primary is red makes error states invisible.
Consistency violations to flag:
Run visual spot-checks on high-impact token groups:
color.feedback.error meet 4.5:1 (as text) or 3:1 (as an icon or border) against color.background.default in this theme, computed from resolved values?color.surface.primary and color.background.default visually distinct (same value is sometimes OK, but should be documented as intentional)?color.action.primary visually more prominent than color.action.secondary in this theme?Flag violations:
TH-22 | 🟡 Medium | Consistency | Dark theme: color.background.default and color.surface.primary are identical (#121212) (src/styles/tokens.css:41,44)
- This may be intentional (both are neutral backgrounds), but it reduces visual hierarchy
- Recommended action: Review with design team. If intentional, document the decision. If not, adjust surface token.If the system uses DTCG format with resolver files. Structural validation of the resolver document (well-formed JSON, version: "2025.10", every resolutionOrder entry naming a real set or modifier, every source path resolving) is schema-validator's job; run it or cite it. This step reads the resolver for what it says about theming:
Context coverage per theme-dependent token:
For each semantic and component token the theme is meant to change, show what each context does with it. A context that redefines the token has themed it; a context that doesn't inherits the earlier value in the resolution order. Inheritance is the spec's design, so it is a gap only for theme-dependent tokens (colour, shadow, border colour), and it is the same gap Step 2 already reports. Don't report it twice: list it here in the matrix and cite the Step 2 finding.
color.action.primary (theme modifier)
light (default): {color.blue.500} themed
dark: {color.blue.300} themed
color.border.subtle
light (default): {color.gray.200} themed
dark: inherits light ← theme-dependent, see TH-03
spacing.inset.md
dark: inherits light fine, not theme-dependentSet composition check:
resolutionOrder, or their aliases won't resolveIdentify patterns in the codebase that are likely to break on theme switch:
Regression patterns:
Search for common failures:
token-compliance's job: if its report exists, take its count of hardcoded colour values and cite it; if not, run one positive-controlled search for colour literals and report the count as a regression risk, then recommend token-compliance for the per-file list. Don't produce a second violation table herergba(var(--color-action-primary), 0.5) only works if the token holds bare RGB channels (37, 99, 235). If it holds a hex or rgb() value, as most colour tokens do, the declaration is invalid and silently dropped. Check what each referenced token actually holds in every themepadding: calc(var(--spacing-component-gap) * 2) works when the token carries units (16px * 2 is 32px). It fails when a theme defines the token as a unitless number, because the result isn't a length. Check that every theme gives these tokens unitsstyle={{ backgroundColor: isDark ? darkColor : lightColor }} is not using the token system at allRegression output:
Flag high-risk patterns:
TH-40 | 🟠 High | Regression | 23 hardcoded colour values in component code (from token-compliance TC-01..TC-23, or: positive-controlled search over src/components)
- These will NOT change on theme switch even though token values exist
- Recommended action: work through the token-compliance list; each is a one-line replacement
TH-41 | 🟡 Medium | Regression | 7 instances of rgba(var(--token), alpha) where the token holds a hex value (src/components/Badge.module.css:12, …)
- The declaration is invalid, so the browser drops it and falls back
- Recommended action: Use `color-mix(in srgb, var(--color-action-primary) 50%, transparent)`, which works with any colour format. If named opacity steps are needed, add tokens like `color.action.primary-alpha-50` (no `%` in token names — it isn't valid in a CSS custom property name without escaping)Before reporting that a pattern wasn't found, confirm the search finds a known instance (a hex value in the token source files is a good positive control). If it can't, report the result as unconfirmed.
Open with a headline sentence that tells the reader how worried to be and where to focus. Example: "Dark mode is close — four colour tokens were never themed and two component tokens bypass the semantic tier. Brand B is complete."
Structure the report as follows:
Date: [date] Themes audited: [themes in scope] System theming enabled: [yes/no from config]
Overall theme health. What is the most significant gap? Is coverage consistent across themes, or are some themes neglected? Are component tokens correctly inheriting from semantic tier?
One paragraph. Honest about severity.
List all themes discovered and confirmed in scope:
| Category | Total | Coverage |
|---|---|---|
| Semantic tokens | [n] | [n] theme-dependent tokens themed in every theme |
| Component tokens | [n] | [n] correctly reference semantic tier |
| Tier leakage instances | — | [n] component tokens reference primitives ([n] without per-theme override) |
Semantic token gaps (gap rows only):
| Token | Light | Dark | Brand A | Brand B |
|---|---|---|---|---|
| color.feedback.info | ✓ | ↳ | ↳ | ✓ |
| text.heading.display | ✓ | ✓ | ✗ | ✓ |
For each missing token, include:
Tier propagation:
Tier leakage violations:
For each violation:
Light theme consistency: [✅ PASS / ⚠️ WARN / ❌ FAIL] Dark theme consistency: [✅ PASS / ⚠️ WARN / ❌ FAIL] Brand variant consistency: [✅ PASS / ⚠️ WARN / ❌ FAIL]
List any violations:
Resolver files found: [count and paths] Contexts: [each modifier and its contexts, with the default] Theme-dependent tokens that inherit across contexts: [count, citing the Coverage findings] Token files outside every resolver set: [count and paths]
Hardcoded values in components: [count by severity] rgba(var()) opacity patterns: [count, and how many reference tokens that don't hold bare channels] Calc() on tokens: [count and contexts] Missing theme-specific variants: [count and affected components]
Each category should include:
Tier 1 — Fix immediately:
Tier 2 — Fix before next theme launch:
Tier 3 — Address in polish phase:
Scope
A note on context: This audit sees your token files and theme scopes — it doesn't see why some values are shared across themes. If a finding flags a token you've deliberately kept the same (a fixed brand colour, a shared shadow), tell me and I'll treat it as accepted in future runs.
Follows the recurring-run procedure in the configuration-and-recurring note. Specific to this skill:
© 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/theme-audit of murphytrueman/design-system-ops.
Open the folder on GitHubat commit f167898
Theme Audit 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 |
|---|---|---|---|---|---|---|
| Theme Audit this skillmurphytrueman/design-system-ops | 201 | — | ~6.3k | Automated safety check: Pass | MIT | |
| Composer Pluginsdxos/dxos | 525 | — | ~13k | Automated safety check: Pass | Custom licence | |
| Impeccablebestofjs/bestofjs | 3.1k | 27 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Figma Design System Builderwarpdotdev/warp | 65k | 2 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| Tailwindcss Developmentanonaddy/anonaddy | 4.9k | 10 repos | ~865 | Automated safety check: Pass | MIT | |
| UI StylingOhh-889/skyroc | 795 | 13 repos | ~2.5k | Automated safety check: Pass | MIT |
dxos/dxos
A skill your agent uses when working on files in packages/plugins/, adding new plugins, refactoring plugin components/containers, writing storybooks for plugins, or wiring capabilities like…
bestofjs/bestofjs
A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…
warpdotdev/warp
Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.
anonaddy/anonaddy
Always invoke when the user's message includes 'tailwind' in any form.
Ohh-889/skyroc
Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.
coollabsio/coolify
A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.
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
Audit theme parity: tokens missing or unchanged per theme, component tokens bypassing semantics, contrast within each theme, resolver contexts, theme-switch regressions. Theme Audit is an agent skill from murphytrueman/design-system-ops. Audit theme parity: tokens missing or unchanged per theme, component tokens bypassing semantics, contrast within each theme, resolver contexts, theme-switch regressions.
Theme Audit fits situations like: tasks that involve Theming and dark mode; tasks that involve GraphQL.
Run `npx skills add murphytrueman/design-system-ops --skill theme-audit -a claude-code`. Or copy the skill folder (skills/theme-audit in murphytrueman/design-system-ops) into .claude/skills/theme-audit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add murphytrueman/design-system-ops --skill theme-audit -a codex`. Or copy the skill folder (skills/theme-audit in murphytrueman/design-system-ops) into .agents/skills/theme-audit 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 theme-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/theme-audit, .gemini/skills/theme-audit, .github/skills/theme-audit and .opencode/skills/theme-audit in your project.
Going by SKILL.md and its folder, Theme Audit needs the command-line tools its instructions call (npx). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Write, Grep, Glob, Bash(cat:*), Bash(find:*), Bash(head:*), Bash(ls:*), Bash(grep:*), Bash(rg:*).
SKILL.md contains no URLs. Its commands use npx, 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.
Theme Audit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.3k tokens (SKILL.md is roughly 25k 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 Theme Audit: Composer Plugins (dxos/dxos, 525 stars), Impeccable (bestofjs/bestofjs, 3.1k stars), Figma Design System Builder (warpdotdev/warp, 65k stars) and Tailwindcss Development (anonaddy/anonaddy, 4.9k 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 201 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.