Change Communication logo

Change Communication

Community
murphytrueman
change-communication

Write release notes, a migration guide and a team announcement for a design system change that is already decided, scaled to its impact. Triggers: release notes, announce this change, tell teams about a breaking change. Semver call: version-bump-advisor. Deprecation plan: deprecation-process.

Overview

Publishermurphytrueman
Repositorydesign-system-ops
Skill namechange-communication
Stars
211
Forks
7
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by murphytrueman on GitHub. Read the source before you install it.

Installation

Install the Change Communication AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/murphytrueman/design-system-ops/tree/main/skills/change-communication
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git /tmp/design-system-ops
mkdir -p .claude/skills
cp -r /tmp/design-system-ops/skills/change-communication .claude/skills/change-communication
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Change Communication in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Change Communication on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Change Communication is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Change communication

A skill for producing a complete change communication package: release notes, migration guidance where needed, and a team announcement with every open gap listed at the top. Calibrated to the change type so a patch note does not read like a major incident, and a breaking change does not get buried in a routine release update.

Before you begin: verify references

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.

Context

Change communication is the part of design system work that feels like overhead until it is done badly. A breaking change that arrives without notice destroys trust faster than any number of missing components. A routine release that goes out without clear notes creates a support burden for the design systems team.

The goal is communication proportional to impact. This skill distinguishes between change types and produces output calibrated accordingly — a minor enhancement gets release notes and nothing more, while a breaking change gets a full package including migration guidance and a direct team notification.

Boundaries

This skill communicates changes that have already been decided. It does not decide what to change, plan a deprecation lifecycle, or execute a migration — use deprecation-process for deprecation planning and codemod-generator for migration execution. It is, however, the single owner of the migration guide: deprecation-process hands it a mapping table and version-bump-advisor a list of breaking changes with before/after rows, and this skill renders the guide once so the announcement, the release notes and the docs all say the same thing. If the change has not been finalised, ask the user to confirm the change details before producing communication. If the change affects no consuming teams (internal refactor with no API surface change), a communication package is unnecessary — confirm with the user and stop.


Step 1: Classify the change

Read before asking: CHANGELOG.md and git log <last tag>..HEAD for the actual change list; .changeset/ for pending changesets and their summaries; .ds-ops-config.yml for system.name and integrations.npm.package_name, which the notes and announcement name. A package's own change list is the source; the user's description of it fills gaps.

Ask for or confirm:

  • What changed? (component, token, pattern, API, tooling, governance)
  • Is it breaking? (Does it require consuming teams to change their code or designs to avoid regressions?)
  • What is the scope of impact? (How many teams or products are affected?)
  • Is there a migration path?

Small-system note (fewer than 5 components): For systems this size, calibrate communication intensity down. The audience is smaller and likely in closer contact — a breaking change to one of four components affects the entire consumer base, but that base may be a single team who you can notify directly in a standup or sync. Release notes are still required (they are the historical record), but the "announcement" may be a Slack message rather than a formal communication package. If the change is significant, a direct conversation replaces the written migration guide — walk through it together.

Classification: take the patch / minor / major call from version-bump-advisor output or the user. If neither exists and the change touches a published API or token, run version-bump-advisor first rather than classifying here. Map the result to a communication tier:

  • Patch → release notes entry only
  • Minor → release notes + brief announcement
  • Major (breaking) → full package: release notes, migration guide, direct notification
  • System-level change (governance, naming convention, architecture, tooling; may not have a semver bump) → announcement, context document, Q&A period

Step 1b: Communication tailoring matrix (only with adoption data)

Use this matrix only when adoption-report output or the user tells you how each team engages with the system. Without that, skip it and send the same package to every affected team; don't guess a team's adoption level.

High-adoption teams (actively using, contributing, engaged):

  • Communication tone: informational. These teams will read release notes proactively.
  • Migration support: self-service. Provide the migration guide and let them execute.
  • Channel: standard channels (release notes, Slack announcement).

Partial-adoption teams (using some components, not fully engaged):

  • Communication tone: supportive. Frame the change as an improvement to something they already use.
  • Migration support: offer a pairing session or office hours slot.
  • Channel: direct notification in addition to standard channels.

Low-adoption or at-risk teams (not using the system, or usage is declining):

  • Communication tone: minimal. Do not over-communicate changes to teams that are not yet engaged — it creates noise.
  • Migration support: N/A unless the change affects the few components they do use.
  • Channel: only notify if they are directly affected.

New teams (recently onboarded or in onboarding):

  • Communication tone: contextual. Frame the change within their onboarding experience.
  • Migration support: proactive. Ensure their onboarding materials reflect the change.
  • Channel: direct, through their onboarding contact.

This matrix prevents the common failure mode of communicating every change at the same intensity to every team, which trains teams to ignore system communications.

Step 2: Produce the communication package


For a patch:

Release notes entry only

Format:

[Component or token name] — [one-sentence description of the fix]
Affected: [who is affected, if anyone]
Action required: None

No announcement needed. Patch notes accumulate in the release log and are reviewed at the team's convenience.


For a minor change:

Release notes entry + brief announcement

Release notes entry:

[Component, token or feature] — [what was added or changed]
What's new: [one to two sentences describing the addition or change and its purpose]
How to use it: [one sentence or a link to the documentation]
Action required: None — existing usage is unaffected

Announcement (Slack or equivalent): Keep to three to four sentences. What was added, why it exists, where to find it. No preamble.

Template:

[Component/token name] is now in the system. [One sentence on what it does.] [One sentence on when to use it.] Documentation is at [link].


For a breaking change:

Full package: release notes + migration guide + direct notification

Release notes entry:

[Component or token name] — BREAKING CHANGE
What changed: [specific description of what changed]
Why it changed: [one sentence — reason, not justification]
Affected: [who is affected]
Migration: See migration guide below
Action required by: [date]

Migration guide:

The migration guide should be specific enough to follow without additional context. Include:

  1. What the old behaviour was
  2. What the new behaviour is
  3. Step-by-step migration instructions with before/after examples where useful
Before:
<Button variant="danger" />

After:
<Button variant="destructive" />
  1. Any edge cases that require special handling
  2. What to do if migration is not feasible by the deadline (contact route, escalation path)

If a migration script exists or can be provided, include it or link to it here.

Direct notification:

Breaking changes do not wait to be discovered in release notes. Send a direct notification to all affected teams through their primary communication channel.

Template:

[System name] breaking change — action required by [date]

[What changed, in one sentence.]

If you use [component/token name], you will need to [specific action] before [date] to avoid [specific consequence].

Migration guide: [link] Questions: [channel or contact]

The notification should be short enough to read in thirty seconds and specific enough that someone reading it immediately knows whether they are affected.


For a system-level change:

Full package: announcement + context document + Q&A period

System-level changes need more than release notes. They need context. Why is this changing? What does it mean for teams day-to-day? What happens to work that was done under the old system?

Announcement: Lead with the change and its impact, not the reasoning. Teams want to know what they need to do before they want to understand why.

[What is changing] — effective [date]

[One sentence on what this means for teams using the system.]

[Two to three sentences on what teams need to know: what changes in their workflow, what does not change, and what support is available.]

Full context and rationale: [link to context document] Q&A session: [date/time or async channel]

Context document: A separate document covering:

  • What prompted the change
  • What was considered and why this direction was chosen (reference the decision record if one exists)
  • What the transition looks like — timeline, what is changing when
  • What stays the same
  • Known concerns and how they were addressed

Q&A period: For significant system-level changes, offer a defined period for questions — either a live session or a dedicated async channel with a named response time. Close the loop after: summarise the key questions raised and the answers given, and add that summary to the context document.


The design side

Half of a design system's consumers never read a changelog: they open Figma. For any change that touches the Figma library, the package includes:

  • Library publish notes: the description entered when the library is published, in the same shape as the release notes entry (what changed, the replacement, the date, the link to the guide). Designers see this in the library update prompt, which is the only announcement many of them get
  • In-library signals: for a deprecation or rename, the component or variable renamed with a [Deprecated] prefix or moved to a Deprecated page, with its description pointing at the replacement; new components placed and named where designers will find them
  • The designers' channel: the announcement posted where designers are, not only where engineers are, with the Figma-side action stated ("update the library; OldCard is now under Deprecated")

Write these alongside the code-side notes; a change communicated only to engineers shows up as design-to-code drift a sprint later.

Step 3: Choose the channels

Different communication channels serve different purposes. Calibrate by change type:

ChannelWhen to use
Release notes / changelogEvery change, every time
Figma library publish notesEvery change that touches the library
Slack / team channels (engineers and designers)Minor changes and above
Direct team notificationBreaking changes and system-level changes
EmailBreaking changes with external or cross-org impact
Meeting / live sessionSystem-level changes with significant workflow impact

Step 4: Set a follow-up

For breaking changes and system-level changes, schedule a follow-up:

  • One week before the action-required date: reminder to teams who have not yet migrated
  • On the action-required date: confirmation that the change is live, any last-minute support available
  • Two weeks after: review whether migration is complete, identify any teams who need additional help

Document this follow-up schedule alongside the communication so it does not get missed.

Quality checks

  • Change classification comes from version-bump-advisor or the user — breaking changes are not communicated as minor enhancements
  • Migration guide is specific enough to follow without additional context
  • Direct notification for breaking changes names the specific consequence of inaction
  • Channels are appropriate to the change type, and any change that touches the Figma library has publish notes and a designers' announcement
  • The change list came from the CHANGELOG, git history or changesets where a repository was in reach
  • A follow-up schedule exists for breaking and system-level changes
  • Fill what's known; list every unresolved placeholder (dates, links, owners, contacts) at the top for the user. Never invent dates, links, owners, rationale or percentages

Frequently asked questions

What does the Change Communication AI skill do?

Write release notes, a migration guide and a team announcement for a design system change that is already decided, scaled to its impact. Triggers: release notes, announce this change, tell teams about a breaking change. Semver call: version-bump-advisor. Deprecation plan: deprecation-process.

Why use Change Communication on TypingMind?

Because you install it once and use it with any model. Change Communication is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Change Communication in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/murphytrueman/design-system-ops/tree/main/skills/change-communication. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Change Communication?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Change Communication?

As many as you like. As long as a model supports skills, you can use Change Communication with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Change Communication AI skill free?

Yes. It is published on GitHub by murphytrueman under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇