/deprecation-process
Plan and execute the full deprecation lifecycle for a design system component, token, or pattern — including timeline, migration paths, communication plan, and multi-phase removal. Trigger when someone says: deprecate a component, remove a component, sunset this pattern, phase
$ npx -y skills add murphytrueman/design-system-ops --skill deprecation-process --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/deprecation-process
Context preview
The summary Claude sees to decide when to auto-load this skill.
Plan and execute the full deprecation lifecycle for a design system component, token, or pattern — including timeline, migration paths, communication plan, and multi-phase removal. Trigger when someone says: deprecate a component, remove a component, sunset this pattern, phase
SKILL.md
deprecation-process.SKILL.mdname: deprecation-process
description: "Plan and execute the full deprecation lifecycle for a design system component, token, or pattern — including timeline, migration paths, communication plan, and multi-phase removal. Trigger when someone says: deprecate a component, remove a component, sunset this pattern, phase out these tokens, retire this variant, replace this with, or anything involving removing or replacing something from the design system. Do NOT trigger for communicating non-deprecation changes like new releases or feature updates — use change-communication for those."
references:
- ../../knowledge-notes/component-governance.md
Deprecation process
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.
Context
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.
---
Step 1: Identify what is being deprecated
Clarify:
- What is being deprecated? (component, token, pattern, variant, API)
- Why is it being deprecated? (superseded by a better option, unused, causing maintenance burden, design direction change, accessibility non-compliance, etc.)
- What replaces it, if anything?
- Is there a hard removal date in mind, or is this open-ended?
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.
Step 2: Audit current usage
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 concrete usage count, not an estimate:
For component deprecation:
# Count import statements
grep -r "import.*{.*ComponentName" --include="*.tsx" --include="*.ts" --include="*.jsx" --include="*.js" src/ | wc -l
# Count JSX usage (may exceed imports if used multiple times per file)
grep -r "<ComponentName" --include="*.tsx" --include="*.jsx" src/ | wc -l
# List files with usage (for blast radius mapping)
grep -rl "import.*ComponentName\|<ComponentName" --include="*.tsx" --include="*.ts" --include="*.jsx" --include="*.js" src/For token deprecation:
# CSS custom properties
grep -r "var(--token-name)" --include="*.css" --include="*.scss" --include="*.tsx" src/ | wc -l
# SCSS variables
grep -r "\$token-name" --include="*.scss" src/ | wc -l
# JS/TS token references
grep -r "tokens\.path\.to\.token\|theme\.path\.to\.token" --include="*.ts" --include="*.tsx" src/ | wc -l
**Present the usage count as a structured summary:**
Usage audit: DatePicker
─────────────────────────
Import statements: 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: 47 instances across 23 files in 4 applications
If codebase access is not available, ask the user to run the grep commands and provide the output. If neither is possible, flag the usage audit as outstanding and required before soft removal.
**Per-consumer breakdown:** For each consuming application, produce a row showing:
| Consumer | Instances | Critical path? | Estimated migration effort | Contact | |---|---|---|---|---| | Checkout | 12 | Yes (date selection) | Medium (1–3 days) | [team/person] | | Dashboard | 18 | No | Low (<1 day) | [team/person] | | Settings | 8 | No | Low (<1 day) | [team/person] | | Admin | 9 | No | Medium (prop differences) | [team/person] |
This table is the deprecation plan's most operationally useful artifact. It tells the deprecation owner exactly who to contact, how much work each team faces, and where the blockers will be.
**Small-system note (fewer than 5 components):** Deprecating one component when you only have four is removing 25% of the system. The usage audit (this step) becomes mandatory, not optional — the blast radius is proportionally much larger. Consider whether the component should be archived or hidden rather than fully deprecated, since small systems have fewer alternatives and consumers may have no migration path. The communication step should be a direct conversation with every affected team, not a written announcement — with a system this size, you know who is using what.
Step 3: Write the deprecation plan
---
Deprecation plan: [component/token/pattern name]
**Item being deprecated:** [name] **Deprecated in version:** [version number or date] **Planned removal:** [version or date, or "TBD — see timeline"] **Replacement:** [name of replacement, or "none — see migration guidance"] **Owner:** [who is responsible for this deprecation]
---
Why this is being deprecated
One to three sentences. Be direct. "This component has a lower-quality replacement that covers all existing use cases and is more accessible" is more useful than "this component has reached the end of its lifecycle."
Include the decision record reference if one exists.
What replaces it
If there is a direct replacement: name it, link to it, and describe in one sentence what makes it the right choice for teams currently using the deprecated item.
If the
Read more
name: deprecation-process description: "Plan and execute the full deprecation lifecycle for a design system component, token, or pattern — including timeline, migration paths, communication plan, and multi-phase removal. Trigger when someone says: deprecate a component, remove a component, sunset this pattern, phase out these tokens, retire this variant, replace this with, or anything involving removing or replacing something from the design system. Do NOT trigger for communicating non-deprecation changes like new releases or feature updates — use change-communication for those." references: - ../../knowledge-notes/component-governance.md
Deprecation process
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.
Context
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.
---
Step 1: Identify what is being deprecated
Clarify:
- What is being deprecated? (component, token, pattern, variant, API)
- Why is it being deprecated? (superseded by a better option, unused, causing maintenance burden, design direction change, accessibility non-compliance, etc.)
- What replaces it, if anything?
- Is there a hard removal date in mind, or is this open-ended?
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.
Step 2: Audit current usage
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 concrete usage count, not an estimate:
For component deprecation:
# Count import statements
grep -r "import.*{.*ComponentName" --include="*.tsx" --include="*.ts" --include="*.jsx" --include="*.js" src/ | wc -l
# Count JSX usage (may exceed imports if used multiple times per file)
grep -r "<ComponentName" --include="*.tsx" --include="*.jsx" src/ | wc -l
# List files with usage (for blast radius mapping)
grep -rl "import.*ComponentName\|<ComponentName" --include="*.tsx" --include="*.ts" --include="*.jsx" --include="*.js" src/For token deprecation:
# CSS custom properties grep -r "var(--token-name)" --include="*.css" --include="*.scss" --include="*.tsx" src/ | wc -l # SCSS variables grep -r "\$token-name" --include="*.scss" src/ | wc -l # JS/TS token references grep -r "tokens\.path\.to\.token\|theme\.path\.to\.token" --include="*.ts" --include="*.tsx" src/ | wc -l
**Present the usage count as a structured summary:**
Usage audit: DatePicker ───────────────────────── Import statements: 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: 47 instances across 23 files in 4 applications
If codebase access is not available, ask the user to run the grep commands and provide the output. If neither is possible, flag the usage audit as outstanding and required before soft removal.
**Per-consumer breakdown:** For each consuming application, produce a row showing:
| Consumer | Instances | Critical path? | Estimated migration effort | Contact | |---|---|---|---|---| | Checkout | 12 | Yes (date selection) | Medium (1–3 days) | [team/person] | | Dashboard | 18 | No | Low (<1 day) | [team/person] | | Settings | 8 | No | Low (<1 day) | [team/person] | | Admin | 9 | No | Medium (prop differences) | [team/person] |
This table is the deprecation plan's most operationally useful artifact. It tells the deprecation owner exactly who to contact, how much work each team faces, and where the blockers will be.
**Small-system note (fewer than 5 components):** Deprecating one component when you only have four is removing 25% of the system. The usage audit (this step) becomes mandatory, not optional — the blast radius is proportionally much larger. Consider whether the component should be archived or hidden rather than fully deprecated, since small systems have fewer alternatives and consumers may have no migration path. The communication step should be a direct conversation with every affected team, not a written announcement — with a system this size, you know who is using what.
Step 3: Write the deprecation plan
---
Deprecation plan: [component/token/pattern name]
**Item being deprecated:** [name] **Deprecated in version:** [version number or date] **Planned removal:** [version or date, or "TBD — see timeline"] **Replacement:** [name of replacement, or "none — see migration guidance"] **Owner:** [who is responsible for this deprecation]
---
Why this is being deprecated
One to three sentences. Be direct. "This component has a lower-quality replacement that covers all existing use cases and is more accessible" is more useful than "this component has reached the end of its lifecycle."
Include the decision record reference if one exists.
What replaces it
If there is a direct replacement: name it, link to it, and describe in one sentence what makes it the right choice for teams currently using the deprecated item.
If the
Showing the first part of this file.
Claude Code skills for the work that keeps a design system alive.
Repo: murphytrueman/design-system-ops
Other skills on design-system-ops.
- /accessibility-per-component
Run an accessibility audit on a specific design system component. Trigger when someone says: accessibility check, a11y audit, WCAG compliance, is this accessible, check accessibility, does this meet WCAG, screen reader support, keyboard navigation check, or anything about
Open skill - /adoption-report
Produce a design system adoption report separating coverage from actual adoption, with trend direction and risk flags. Trigger when someone says: adoption report, how much is the system being used, usage metrics, adoption status, coverage report, which teams are using the
Open skill - /ai-component-description
Generate AI-optimised text descriptions for components, formatted for Figma's MCP server and LLM consumption. This produces prose descriptions in a six-section format (purpose, props, anti-patterns, composition, accessibility, examples), NOT JSON schemas or structured data
Open skill - /backlog-generator
Transform audit findings into sprint-ready work items with effort estimates, acceptance criteria, and stakeholder-friendly rationale. This converts existing findings into tickets, NOT the process for contributing new components to the system. Trigger when someone says: generate
Open skill - /change-communication
Produce a communication package for a design system change — release notes, migration guide, and team announcement. This produces communication artefacts for changes that have already been decided, NOT the deprecation lifecycle itself. Trigger when someone says: communicate this
Open skill - /cicd-integration
Generate CI/CD pipeline configurations that automate design system quality checks — token validation, component linting, visual regression, accessibility scanning, and release gating. Produces ready-to-use pipeline files for GitHub Actions, GitLab CI, CircleCI, or Bitbucket
Open skill

