From design-system-ops
Audits naming conventions across design system components, tokens, and patterns. Produces violation reports with examples, ambiguity flags, and rename suggestions.
npx claudepluginhub murphytrueman/design-system-opsThis skill uses the workspace's default tool permissions.
A skill for auditing naming conventions across a design system's components, tokens, and patterns. Produces a violation report with specific examples, ambiguity flags, and rename suggestions with rationale.
Establishes scalable naming conventions for design elements, UI components, tokens, files, code assets, and illustrations with patterns, principles, and pitfalls to avoid.
Guides semantic and descriptive naming conventions for design system tokens, colors, sizes, and components. Ensures consistency between Figma designs and React/CSS code during setup or refactors.
Aligns designs with existing systems or builds new ones via inventory, token architecture, component specs, naming conventions, accessibility checks, and consistency audits.
Share bugs, ideas, or general feedback.
A skill for auditing naming conventions across a design system's components, tokens, and patterns. Produces a violation report with specific examples, ambiguity flags, and rename suggestions with rationale.
Naming is the primary interface between a design system and its consumers. A name is the first piece of information a designer or developer gets about what a component does, what a token means, or how a pattern behaves. Good names are predictable: consumers can guess what a name refers to before they look it up. Bad names require lookup, then clarification, then occasionally a conversation to confirm what was meant.
Naming problems accumulate. A single ambiguous component name is an inconvenience. Twenty ambiguous names spread across a library, with some following one convention and others following three others, is a system that new team members cannot navigate and experienced team members cannot trust.
This audit covers naming for components, tokens, and any documented patterns. It does not mandate a specific naming convention — it assesses whether the naming is consistent, unambiguous, and fit for its purpose.
Before auditing names, determine what kind of shared UI this is. The library type changes how strict the consistency expectations should be and what recommendations are proportionate.
Classify from codebase signals:
clamp-width is better than one called u-cw even if the latter follows a prefix convention.Include the classification in the report header as "Library type: [Design system / Component library / Pattern library / Utility collection]" and calibrate recommendation weight accordingly.
Ask for or confirm:
If naming convention documentation exists, assess against it. If it does not, derive the implicit conventions from the existing names and note where they are inconsistent with each other.
Small-system note (fewer than 5 components): A naming audit on a system this size is more of a naming workshop than a compliance audit. The consistency check (Step 2) becomes trivial — with 1–4 components, either every name follows the same convention or the inconsistencies are immediately visible. Focus the audit on purpose clarity and ambiguity flags rather than pattern detection. The primary output should be a naming decision record (use the decision-record skill) establishing the convention now, while the system is small enough to rename without migration cost.
If no naming convention documentation exists, use this worksheet to establish conventions before auditing against them. This prevents the audit from flagging inconsistencies without a reference point.
Component naming:
Token naming:
Document this as a decision record. Use the decision-record skill to capture the naming conventions as a formal record. This creates a reference point for future audits and prevents the conventions from being lost when team members change.
Are component names following a consistent convention? Identify which conventions are in use:
ButtonPrimary) or category-first (NavigationPrimary)Btn vs Button, Nav vs Navigation)Flag any component whose name does not follow the dominant convention. Note whether the inconsistency is a naming decision (this component is intentionally named differently) or an oversight.
A component name should communicate what the component does without requiring context.
Flag names that:
Box, Container, Wrapper, Layout, BaseBlueCard, LargeText, RoundedButtonModal and Dialog in the same system, Tooltip and Popover without clear distinctionFor each flagged name: describe the ambiguity and suggest a rename. The rename suggestion should follow the system's established convention and improve rather than just change.
If the system uses suffixes or prefixes to indicate category, variant, or role, are they applied consistently?
Common patterns to check:
ButtonSm, ButtonMd, ButtonLg — are sizes applied consistently across components?-active, -disabled, -loading — are state names consistent across components?Form-, Nav-, Data- — are prefixes applied to all relevant components?Flag any component that should have a prefix or suffix based on the system's conventions but does not.
Token naming has additional criteria beyond general consistency. See the token-architecture knowledge note for the full three-tier model.
Semantic tokens must describe intent, not appearance. Flag any semantic token that:
color.semantic.blue, color.secondary.greencolor.light, spacing.large, font.boldcolor.accent, color.highlight, color.importantFor each flagged token: propose a rename that encodes intent rather than appearance.
Are tokens within each tier named consistently with each other?
color.blue.500 and color.red.500 not color.blue-500 and color.red500)Flag any token that breaks from the dominant pattern within its tier.
Are any token names used at multiple tiers with different meanings? This is rare but creates genuine confusion when it occurs. A semantic token named the same as a primitive it does not reference, or a component token named identically to a semantic token it does not correspond to, is a naming error.
Open with a headline sentence. Example: "Your component naming is consistent but your token naming has three competing conventions — here's where the friction is."
Date: [date] Scope: [components / tokens / patterns / all] Convention documentation: [exists and used as reference / does not exist — conventions derived from inventory]
One paragraph. What is the overall naming quality? Is the inconsistency concentrated (a specific era of the system, a specific team's contributions) or distributed? What is the most important finding? Be direct — if naming is a mess, say so plainly.
What naming conventions are currently in use? List the dominant conventions and any divergent conventions found. This section tells the team what they are actually doing, which is the baseline for any improvement.
Component naming violations
| ID | Component name | Issue | Rename suggestion | Priority |
|---|---|---|---|---|
| NA-01 | [name] | [specific issue] | [suggested name] | 🟠/🟡/⚪ |
Token naming violations
| ID | Token name | Issue | Rename suggestion | Priority |
|---|---|---|---|---|
| NA-[n] | [token name] | [specific issue] | [suggested name] | 🟠/🟡/⚪ |
Priority key: 🟠 High (ambiguity creates real misuse risk) · 🟡 Medium (inconsistent but not misleading) · ⚪ Low (minor, low impact)
If convention documentation does not exist: Create it before making naming changes. Without documentation, rename decisions will be made without a stable reference point, and the same inconsistencies will accumulate again.
Sequencing renames: Renaming components and tokens is a breaking change. Recommendations:
change-communication skillConnection to decision-record: Every naming convention established or changed during this audit should be documented as a decision record using the decision-record skill. The naming convention is the most frequently referenced governance decision in any design system — it deserves a formal record.
End the report with:
A note on context: This audit checks naming patterns against common conventions — it does not know why a name was chosen. Some inconsistencies may be deliberate distinctions. If any finding flags a naming choice your team made intentionally, let me know — I'll learn your conventions and skip those patterns in future runs. The goal is to catch accidental inconsistency, not to override deliberate decisions.