/release-retrospective
Produce a structured look-back after a major release or deprecation — capturing what the plan got right, what it missed, and what to do differently. Trigger when someone says: release retrospective, post-release review, what went wrong with the release, how did the deprecation
$ npx -y skills add murphytrueman/design-system-ops --skill release-retrospective --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
/release-retrospective
Context preview
The summary Claude sees to decide when to auto-load this skill.
Produce a structured look-back after a major release or deprecation — capturing what the plan got right, what it missed, and what to do differently. Trigger when someone says: release retrospective, post-release review, what went wrong with the release, how did the deprecation
SKILL.md
release-retrospective.SKILL.mdname: release-retrospective
description: "Produce a structured look-back after a major release or deprecation — capturing what the plan got right, what it missed, and what to do differently. Trigger when someone says: release retrospective, post-release review, what went wrong with the release, how did the deprecation go, release post-mortem, retro on the migration, or anything about reviewing how a release or deprecation actually went compared to the plan."
references:
- ../../knowledge-notes/component-governance.md
Context
Governance currently looks forward: plan the deprecation, estimate the blast radius, write the migration guide. There's no structured skill for reviewing how it actually went. Did the blast radius estimate hold? What did the communication miss? Where did teams get stuck despite the migration guide? A release retrospective completes the governance loop and builds institutional knowledge that keeps a system from repeating the same mistakes across team transitions.
The retrospective is not a blame exercise. It's a learning artifact. The goal is: what changes to our governance process will prevent this specific gap next time? Foreseeable gaps reveal process failures. Unforeseeable gaps become new guardrails.
Key principles
**From component-governance:** Governance owns the release plan: who's affected, when they're affected, what they need to succeed. The plan is a hypothesis. The retrospective tests it. Blast radius, communication, migration path quality, timeline, and support burden are the five surfaces where plans often break. Each surface has a classification: was this predictable with better analysis, or genuinely novel?
**Key principle for retrospectives:** The plan was made with incomplete information. The retrospective reveals what information was missing. That gap is the insight — not a failure, a discovery.
Configuration
Before writing the retrospective, gather these inputs:
1. **Release or deprecation:** Component name, token set change, system-level refactor, or major version bump. What changed? 2. **Original plan:** Link to the deprecation plan, migration guide, communication package, or governance decision record. Paste key dates, blast radius estimate, phased rollout plan if one existed. 3. **Actual execution:** When did it ship? What was the actual timeline? Which teams/codebases were affected (names or counts)? 4. **Quantitative data:** Instances affected (actual vs estimated). Migration completion rate. Support tickets or Slack threads related to the change. 5. **Qualitative data:** If quantitative isn't available: "three teams asked the same question about X", "one team skipped the codemod and manually updated", "unexpected platform dependency broke the migration". 6. **Communications received:** Which channels reached teams? Did they read the message? Evidence: Slack emoji reactions, email click-through rates, questions showing people didn't read. 7. **Support load:** How many questions in Slack? Escalations? Pattern categories (e.g., "5 questions about X", "2 teams didn't know about the codemod"). 8. **Unplanned events:** Platform changes, team reorganizations, urgent hotfixes, or other novel circumstances that affected the release.
Steps
**Step 1: Gather inputs**
Collect the original plan (pull it directly, don't reconstruct from memory). Ask system owners and team leads: what actually happened? If you find disparities between the plan and what people remember, note them — that's a communication gap.
Output: A folder or Slack thread with the original plan, timeline notes, and team feedback.
**Step 2: Extract the blast radius dimension**
Compare estimate vs actual.
**Blast radius accuracy**
Planned: [X affected consumers, Y estimated instances]
Actual: [A affected consumers, B actual instances]
Gap: [Describe variance — larger, smaller, different teams]
Gap classification:
- [ ] Foreseeable — more thorough analysis would have caught this
- [ ] Unforeseeable — novel circumstance (team reorganization, platform change)
- [ ] Process — analysis was right, execution diverged (e.g., team didn't update)
Specific gaps:
- [List 1-3 unexpected impacts]
Insight: [One sentence — what should we have known or asked?]
**Step 3: Extract the communication dimension**
Assess message clarity and reach.
**Communication effectiveness**
Planned channels: [Slack #channel, email, async standup, office hours, etc.]
Actual reach: [% of teams knew before migration deadline, evidence: emoji reactions, replies, etc.]
Gap: [Did teams miss the message? Was it unclear? Did timing matter?]
Gap classification:
- [ ] Foreseeable — communication plan was incomplete
- [ ] Unforeseeable — novel (email landed in spam, team lead OOO at critical moment)
- [ ] Process — communication was sent but not read or acted on
Specific gaps:
- [List examples: "Team X didn't see the Slack message", "Question about X appeared 10 times"]
Insight: [What communication lever do we need next time?]
**Step 4: Extract the migration path dimension**
Where did teams get stuck despite the guide?
**Migration path quality**
Planned: [Codemod available? Manual steps? Estimated time to update per team?]
Actual: [Did teams run the codemod? Manual updates? Time to complete?]
Gap: [Missing edge cases? Codemod incomplete? Guide unclear?]
Gap classification:
- [ ] Foreseeable — guide could have covered this
- [ ] Unforeseeable — novel usage pattern not in our control
- [ ] Process — guide was clear but not followed
Specific gaps:
- [List 1-3 edge cases or friction points]
Example: "Teams with custom webpack configs couldn't run the codemod"
Example: "Migration guide didn't explain how to handle the breaking prop change in unit tests"
Insight: [What process or documentation change prevents this next time?]
**Step 5: Extract the timeline dimension**
Did the release stay on schedule?
**Timeline adherence**
Planne
Read more
name: release-retrospective description: "Produce a structured look-back after a major release or deprecation — capturing what the plan got right, what it missed, and what to do differently. Trigger when someone says: release retrospective, post-release review, what went wrong with the release, how did the deprecation go, release post-mortem, retro on the migration, or anything about reviewing how a release or deprecation actually went compared to the plan." references: - ../../knowledge-notes/component-governance.md
Context
Governance currently looks forward: plan the deprecation, estimate the blast radius, write the migration guide. There's no structured skill for reviewing how it actually went. Did the blast radius estimate hold? What did the communication miss? Where did teams get stuck despite the migration guide? A release retrospective completes the governance loop and builds institutional knowledge that keeps a system from repeating the same mistakes across team transitions.
The retrospective is not a blame exercise. It's a learning artifact. The goal is: what changes to our governance process will prevent this specific gap next time? Foreseeable gaps reveal process failures. Unforeseeable gaps become new guardrails.
Key principles
**From component-governance:** Governance owns the release plan: who's affected, when they're affected, what they need to succeed. The plan is a hypothesis. The retrospective tests it. Blast radius, communication, migration path quality, timeline, and support burden are the five surfaces where plans often break. Each surface has a classification: was this predictable with better analysis, or genuinely novel?
**Key principle for retrospectives:** The plan was made with incomplete information. The retrospective reveals what information was missing. That gap is the insight — not a failure, a discovery.
Configuration
Before writing the retrospective, gather these inputs:
1. **Release or deprecation:** Component name, token set change, system-level refactor, or major version bump. What changed? 2. **Original plan:** Link to the deprecation plan, migration guide, communication package, or governance decision record. Paste key dates, blast radius estimate, phased rollout plan if one existed. 3. **Actual execution:** When did it ship? What was the actual timeline? Which teams/codebases were affected (names or counts)? 4. **Quantitative data:** Instances affected (actual vs estimated). Migration completion rate. Support tickets or Slack threads related to the change. 5. **Qualitative data:** If quantitative isn't available: "three teams asked the same question about X", "one team skipped the codemod and manually updated", "unexpected platform dependency broke the migration". 6. **Communications received:** Which channels reached teams? Did they read the message? Evidence: Slack emoji reactions, email click-through rates, questions showing people didn't read. 7. **Support load:** How many questions in Slack? Escalations? Pattern categories (e.g., "5 questions about X", "2 teams didn't know about the codemod"). 8. **Unplanned events:** Platform changes, team reorganizations, urgent hotfixes, or other novel circumstances that affected the release.
Steps
**Step 1: Gather inputs**
Collect the original plan (pull it directly, don't reconstruct from memory). Ask system owners and team leads: what actually happened? If you find disparities between the plan and what people remember, note them — that's a communication gap.
Output: A folder or Slack thread with the original plan, timeline notes, and team feedback.
**Step 2: Extract the blast radius dimension**
Compare estimate vs actual.
**Blast radius accuracy** Planned: [X affected consumers, Y estimated instances] Actual: [A affected consumers, B actual instances] Gap: [Describe variance — larger, smaller, different teams] Gap classification: - [ ] Foreseeable — more thorough analysis would have caught this - [ ] Unforeseeable — novel circumstance (team reorganization, platform change) - [ ] Process — analysis was right, execution diverged (e.g., team didn't update) Specific gaps: - [List 1-3 unexpected impacts] Insight: [One sentence — what should we have known or asked?]
**Step 3: Extract the communication dimension**
Assess message clarity and reach.
**Communication effectiveness** Planned channels: [Slack #channel, email, async standup, office hours, etc.] Actual reach: [% of teams knew before migration deadline, evidence: emoji reactions, replies, etc.] Gap: [Did teams miss the message? Was it unclear? Did timing matter?] Gap classification: - [ ] Foreseeable — communication plan was incomplete - [ ] Unforeseeable — novel (email landed in spam, team lead OOO at critical moment) - [ ] Process — communication was sent but not read or acted on Specific gaps: - [List examples: "Team X didn't see the Slack message", "Question about X appeared 10 times"] Insight: [What communication lever do we need next time?]
**Step 4: Extract the migration path dimension**
Where did teams get stuck despite the guide?
**Migration path quality** Planned: [Codemod available? Manual steps? Estimated time to update per team?] Actual: [Did teams run the codemod? Manual updates? Time to complete?] Gap: [Missing edge cases? Codemod incomplete? Guide unclear?] Gap classification: - [ ] Foreseeable — guide could have covered this - [ ] Unforeseeable — novel usage pattern not in our control - [ ] Process — guide was clear but not followed Specific gaps: - [List 1-3 edge cases or friction points] Example: "Teams with custom webpack configs couldn't run the codemod" Example: "Migration guide didn't explain how to handle the breaking prop change in unit tests" Insight: [What process or documentation change prevents this next time?]
**Step 5: Extract the timeline dimension**
Did the release stay on schedule?
**Timeline adherence** Planne
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

