Skip to content
Development
Skill

/eol-message

Write a clear, empathetic EOL announcement with rationale, customer impact, and next steps. Use when retiring a product, feature, or plan without creating avoidable confusion.

From plugin
crew44
36062 skills4 agents

Claude Code

$ npx -y skills add getcrew44/crew44 --skill eol-message --agent claude-code

SKILL.md

eol-message.SKILL.md
name: eol-message
description: Write a clear, empathetic EOL announcement with rationale, customer impact, and next steps. Use when retiring a product, feature, or plan without creating avoidable confusion.
intent: >-
  Craft a clear, empathetic End-of-Life (EOL) message that communicates product or feature discontinuation, explains the rationale, addresses customer impact, provides transition support, and positions the replacement solution. Use this to maintain customer trust during difficult transitions and reduce churn by demonstrating care and offering a clear path forward.
type: component

Purpose

Craft a clear, empathetic End-of-Life (EOL) message that communicates product or feature discontinuation, explains the rationale, addresses customer impact, provides transition support, and positions the replacement solution. Use this to maintain customer trust during difficult transitions and reduce churn by demonstrating care and offering a clear path forward.

This is not a generic sunset announcement—it's a customer-centric communication that acknowledges loss while framing the change as progress.

Key Concepts

The EOL Messaging Framework

An effective EOL message balances honesty about the change with empathy for customer impact. It includes:

1. **Company context:** Who you are and your commitment to customers 2. **The announcement:** What's being discontinued and what's replacing it 3. **The rationale:** Why this decision benefits customers (not just the business) 4. **Current product context:** What the product was and who it served 5. **Customer impact:** How this affects users (acknowledge the disruption) 6. **Transition solution:** What the replacement is and how it improves on the old 7. **Support measures:** How you'll help customers migrate 8. **Timeline:** Key dates and milestones 9. **Call to action:** Next steps and contact info

Why This Works

  • **Empathy-first:** Acknowledges customer disruption before justifying the decision
  • **Clarity:** No ambiguity about what's changing and when
  • **Support-focused:** Shows you're not abandoning customers mid-transition
  • **Future-oriented:** Frames change as progress, not loss

Anti-Patterns (What This Is NOT)

  • **Not a terse shutdown notice:** "We're discontinuing Product X. Goodbye."
  • **Not business-centric:** Don't lead with "This reduces our costs"
  • **Not vague:** "Soon" is not a timeline
  • **Not defensive:** Don't blame customers ("low usage forced us to shut down")

When to Use This

  • Discontinuing a product, feature, or service
  • Migrating customers from legacy to new platform
  • Sunsetting an acquisition target's product
  • Deprecating a technology stack or API

When NOT to Use This

  • For minor feature tweaks (don't over-communicate small changes)
  • Before you have a transition plan (communicate *after* you know how you'll support customers)
  • If you're secretly hoping customers won't notice (be transparent)

---

Application

Use `template.md` for the full fill-in structure.

Step 1: Gather Context

Before drafting, ensure you have:

  • **Product being discontinued:** What specifically is ending?
  • **Replacement solution:** What's replacing it (if anything)?
  • **Timeline:** Key dates (announcement, feature freeze, shutdown, data export deadline)
  • **Customer impact:** How many users affected? What workflows disrupted?
  • **Support plan:** Migration support, training, discounts, data export tools
  • **Rationale:** Why is this happening? (Technology obsolescence, strategic shift, consolidation, etc.)

**If missing context:** Don't send the message until you have a complete transition plan. Customers will ask "What do I do now?"—you must have an answer.

---

Step 2: Draft the Product Transition Narrative

Company Context

Establish who you are and your commitment:

### Product Transition Narrative

**We are:** [Describe the company and its relationship to the product being phased out]
- [Key point about company's commitment to customers]
- [Key point about company's product evolution]
- [Key point about company's future vision]

**Example:**

**We are:** Acme Workflows, a workflow automation platform serving 50,000 small businesses
- We're committed to helping you save time and focus on what matters
- We continuously evolve our product based on your feedback and technological advances
- We're building toward a future where automation is accessible, powerful, and simple

---

The Announcement

Be clear and direct:

**Announcing:**
- [Single sentence that clearly states the EOL of the product and introduces its replacement]

**Example:**

  • "We are discontinuing Acme Workflows Classic on December 31, 2026, and migrating all customers to Acme Workflows Pro."

---

The Rationale (Customer-Benefit-Focused)

Explain *why* this benefits customers:

**Because:**
- [Reason 1: e.g., technological advancements]
- [Reason 2: e.g., improved performance]
- [Reason 3: e.g., better alignment with customer needs]

**Which means for you:**
- [Describe the impact and benefits from the customer's perspective]

**Example:**

**Because:**
- Acme Workflows Classic runs on outdated infrastructure that limits performance and scalability
- Acme Workflows Pro is built on modern technology that enables faster automation, better integrations, and real-time collaboration
- Consolidating to one platform allows us to invest 100% of our engineering resources in features you've requested

**Which means for you:**
- Faster automation execution (3x speed improvement)
- 50+ new integrations with tools you already use
- Access to new features like real-time collaboration and mobile app

---

Step 3: Provide Current Product Context

Acknowledge what's being lost:

### Current Product Context

**Our product** [name of the product being discontinued]
- **is a** [brief description of the product and its primary function]
-
Read more
@getcrew44
Ships withcrew44

Orchestrate a crew of specialist AI agents in one local-first workspace. Each role on its best model, with memory and skills that compound. Free, MIT.

36062 skills4 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
360
Star history of getcrew44/crew44 on GitHub, a chart by star-history.com

Other skills on crew44.

brainstorming

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.…

@getcrew44@getcrew44Install Skill
executing-plans

executing-plans

Use when you have a written implementation plan to execute in a separate session with review checkpoints

@getcrew44@getcrew44Install Skill
receiving-code-review

receiving-code-review

Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically…

@getcrew44@getcrew44Install Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about eol-message.

Which coding agents can use eol-message?
eol-message installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.