accessibility-per-comp…
Audit one design system component's accessibility against WCAG 2.2 AA: keyboard, screen reader, contrast, focus, ARIA, target…
Plan a deprecation end to end for a component, token, variant or pattern: usage audit, migration path, timeline to a major-version removal, notices. Triggers: deprecate, sunset, phase out, retire, remove, replace X with Y. Announcing non-deprecation changes: change-communication.
Claude Code
$ npx -y skills add murphytrueman/design-system-ops --skill deprecation-process --agent claude-code
Codex
$ npx skills add murphytrueman/design-system-ops --skill deprecation-process -a codex -y
Cursor
$ npx skills add murphytrueman/design-system-ops --skill deprecation-process -a cursor -y
Gemini CLI
$ npx skills add murphytrueman/design-system-ops --skill deprecation-process -a gemini-cli -y
GitHub Copilot
$ npx skills add murphytrueman/design-system-ops --skill deprecation-process -a github-copilot -y
OpenCode
$ npx skills add murphytrueman/design-system-ops --skill deprecation-process -a opencode -y
Windsurf
$ npx skills add murphytrueman/design-system-ops --skill deprecation-process -a windsurf -y
name: deprecation-process description: "Plan a deprecation end to end for a component, token, variant or pattern: usage audit, migration path, timeline to a major-version removal, notices. Triggers: deprecate, sunset, phase out, retire, remove, replace X with Y. Announcing non-deprecation changes: change-communication." allowed-tools: Read, Write, Grep, Glob, Bash(cat:*), Bash(find:*), Bash(head:*), Bash(ls:*), Bash(sort:*), Bash(tail:*), Bash(wc:*), Bash(grep:*), Bash(rg:*) references: - ../../knowledge-notes/component-governance.md - ../../knowledge-notes/output-discipline.md
A skill for planning and executing the deprecation of components, tokens, or patterns in a design system. Produces a deprecation plan with timeline, consumer communication, and migration guidance.
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.
Deprecation is the maintenance work that never gets prioritised until it becomes a crisis. Components accumulate. Tokens multiply. Patterns fork. The longer a team waits to deprecate, the more existing usage entrenches, and the more a removal feels disruptive rather than healthy.
A deprecation done well is a contract with consumers: clear notice, a migration path, and a credible timeline. A deprecation done badly is a surprise, and it erodes trust in the system faster than almost anything else.
This skill produces a deprecation plan that is honest about the timeline, specific about migration, and structured to communicate clearly to the teams affected.
---
Clarify:
If nothing replaces it: the deprecation plan needs an extra step addressing why the use case should no longer be served and what teams who relied on it should do instead.
Before writing the plan, understand the exposure. Do not estimate when you can measure.
**Automated usage counting (if codebase access is available):**
Run these searches to produce a measured count rather than an estimate. Search every package root that consumes the system (apps, packages, monorepo workspaces), not just `src/`. Before trusting any count, run the pattern against one file you know uses the item and confirm it matches; if it doesn't, fix the pattern before reporting anything.
The patterns use whole-word matching so `Button` doesn't match `ButtonGroup`, and ripgrep's multiline mode so imports split across lines are caught. Even so, treat every count as a lower bound: dynamic imports, string-built class names and usage in other repositories won't show up. Say so in the summary.
For component deprecation:
ROOTS="apps packages src" # every consuming package root in this repo
GLOBS=(-g '*.{ts,tsx,js,jsx}')
# Files that import or re-export it, including multiline and aliased imports
rg -l -U "${GLOBS[@]}" '(import|export)\s+(type\s+)?\{[^}]*\bComponentName\b[^}]*\}\s*from' $ROOTS | wc -l
# Local aliases (`ComponentName as Foo`) — search for each alias's JSX usage too
rg -o -U --no-filename "${GLOBS[@]}" '\bComponentName\s+as\s+\w+' $ROOTS | sort -u
# JSX instances (occurrences, not lines; may exceed files if used several times per file)
rg -o "${GLOBS[@]}" '<ComponentName\b' $ROOTS | wc -l
# Files with any usage (for blast radius mapping)
rg -l -U "${GLOBS[@]}" '\bComponentName\b' $ROOTSFor token deprecation:
# CSS custom properties, including var(--token-name, fallback)
rg -o -g '*.{css,scss,less,ts,tsx,js,jsx}' 'var\(\s*--token-name\s*[,)]' $ROOTS | wc -l
# SCSS variables, without matching $token-name-light
rg -o -g '*.scss' '\$token-name(?:[^\w-]|$)' $ROOTS | wc -l
# JS/TS token references (adjust the path to your token object)
rg -o -g '*.{ts,tsx,js,jsx}' '\b(tokens|theme)\.path\.to\.token\b' $ROOTS | wc -lUse `rg -l … | wc -l` when you mean files and `rg -o … | wc -l` when you mean occurrences, and label the result accordingly. If ripgrep isn't available, `grep -rlE` works for single-line patterns but misses multiline imports; note that in the summary.
**Present the usage count as a structured summary** (numbers below are illustrative):
Usage audit: DatePicker ───────────────────────── Files importing: 23 files JSX instances: 47 usages Unique consuming apps: 4 (checkout, dashboard, settings, admin) Critical paths: 2 (checkout date selection, appointment booking) Test files with refs: 12 Storybook stories: 3 Documentation refs: 5 ───────────────────────── Total blast radius: at least 47 instances across 23 files in 4 applications Searched: apps/, packages/ (pattern confirmed against a known usage)
**Consumers in other repositories.** The searches above count only what's checked out. To find consumers elsewhere: `gh search code "ComponentName" --owner <org>` locates candidate repositories (approximate, default branch only); then clone or fetch each and count with the same `rg` patterns. List the repositories searched and the ones not reached under Scope, and treat the total as a lower bound.
If codebase access is not available, ask the user to run the search commands and provide
Audit one design system component's accessibility against WCAG 2.2 AA: keyboard, screen reader, contrast, focus, ARIA, target…
Adoption report: coverage (what the system provides), reach (teams with access) and adoption (teams shipping with it), design vs…
Write the AGENTS.md that tells coding agents how to use this design system: where things live, sourced rules, how to check work,…
Write a six-section prose description (purpose, props, anti-patterns, composition, accessibility, examples) for a Figma…
Turn existing audit findings into sprint-ready tickets with T-shirt estimates, acceptance criteria, dependencies and phases.…
Write release notes, a migration guide and a team announcement for a design system change that is already decided, scaled to its…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.