Skip to content

/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

shell
$ npx -y skills add murphytrueman/design-system-ops --skill deprecation-process --agent claude-code

How 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
How auto-invocation works

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.md
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

Read more
Read it on GitHub ↗

Showing the first part of this file.

Ships withdesign-system-ops

Claude Code skills for the work that keeps a design system alive.

Get the whole plugin, auto-invoked
Stats
151
Stars
0
Views
7
Forks
Maintained
Maintenance
HTML
Language
MIT
License
1mo ago
Last commit
4mo ago
Created

Repo: murphytrueman/design-system-ops

Other skills on design-system-ops.