create-announcement
This skill should be used when the user asks to "create an announcement", "write a Teams message for a PR", "write a Slack message for a PR", "announce PR changes", "generate a release announcement", "summarize PR for Teams", "summarize PR for Slack", "draft a channel post", or needs to turn GitHub pull request changes into a formatted announcement for IM platforms (MS Teams, Slack). Supports single-PR and multi-PR release announcements.
Best use case
create-announcement is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
This skill should be used when the user asks to "create an announcement", "write a Teams message for a PR", "write a Slack message for a PR", "announce PR changes", "generate a release announcement", "summarize PR for Teams", "summarize PR for Slack", "draft a channel post", or needs to turn GitHub pull request changes into a formatted announcement for IM platforms (MS Teams, Slack). Supports single-PR and multi-PR release announcements.
Teams using create-announcement should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/create-announcement/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How create-announcement Compares
| Feature / Agent | create-announcement | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
This skill should be used when the user asks to "create an announcement", "write a Teams message for a PR", "write a Slack message for a PR", "announce PR changes", "generate a release announcement", "summarize PR for Teams", "summarize PR for Slack", "draft a channel post", or needs to turn GitHub pull request changes into a formatted announcement for IM platforms (MS Teams, Slack). Supports single-PR and multi-PR release announcements.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# MS Teams Announcement from Pull Requests
## Overview
Generate professional Microsoft Teams channel announcements based on pull request changes. Analyze PR diffs, descriptions, and commit history using the GitHub MCP server, then produce a structured markdown message ready to paste into a Teams channel.
**Announcement structure:**
- **Title** - Emoji prefix + concise topic headline
- **Subtitle** - Context line with scope, version, or key qualifier
- **Message Body** - Opening context, bold section headers, bulleted details, links, and closing call to action
## Prerequisites
The GitHub MCP server must be available in the current session. Verify by checking available MCP tools at the start of the workflow. If the GitHub MCP server is not available, inform the user that it is required for fetching pull request data.
## Workflow
### Step 1: Gather PR Information
Determine whether the announcement covers a single PR or multiple PRs.
**For a single PR**, use the GitHub MCP server to fetch:
- PR title, description, and labels
- Changed files list and diff summary
- Commit messages
**For multiple PRs** (e.g., a release or migration), fetch the above for each PR and identify common themes, affected areas, and the overall scope of changes.
If the user provides PR numbers or URLs, use those directly. If not, ask the user to specify which PR(s) to announce.
### Step 2: Analyze Changes
Categorize the changes from the PR(s):
1. **What changed** - Upgrades, new features, deprecations, security patches, tooling additions
2. **What areas are affected** - Frameworks, libraries, developer workflows, build pipelines
3. **Why it matters** - Security, performance, developer experience, compliance
4. **What action is needed** - Verification, migration steps, version upgrades, nothing
Focus on impact and outcomes rather than implementation details. Translate technical diffs into language that communicates value to the target audience.
### Step 3: Compose the Announcement
Produce the announcement following the format and guidelines below.
#### Announcement Format
```markdown
Title: [emoji] [Topic]
Subtitle: [Context — Qualifier]
[Opening paragraph]
[Bold section headers with content]
[Links and closing]
```
#### Title Guidelines
- Begin with a relevant emoji that visually identifies the topic
- Follow with a concise topic (framework name, feature, tool)
- Keep under 60 characters (excluding emoji)
- Use version transition notation where applicable (e.g., "v18→19")
**Examples:**
- `🔒 Security Patch — Auth Library v3.2.1`
- `🚀 Welcome ECMAScript 2025`
- `⚛️ React 18→19`
- `⚠️ Drop Node.js 18 Support`
- `🤖 AI Assistant First-Class Support`
- `🤖 New Calude Code Skill: localize`
#### Subtitle Guidelines
- One line providing scope, version detail, or key qualifier
- Use em dash (—) to separate topic from qualifier
- Keep under 100 characters
**Examples:**
- `Critical Security Patch — March Release Target`
- `ES2025 is Here — New Language Features Now Available`
- `Node v22 is supported for local development and CI runners`
#### Message Body Guidelines
Structure the body with these elements as applicable:
1. **Opening paragraph** - One to three sentences establishing context: what happened, who did it, and when. Include the PR link inline.
2. **Bold section headers** - Use `**Header**` to organize content into logical sections. Common headers:
- `**Notable Changes**` or `**What's New**` - for listing changes
- `**Impact**` - for downstream effects
- `**⚠️ IMPORTANT ⚠️**` - for critical action items or deprecations
- `**What should I know**` - for linking to external docs or guides
3. **Bulleted details** - List specific changes, versions, or features under each section header
4. **Links** - Include PR URLs, changelog links, documentation links, and discussion links inline where relevant
5. **Closing** - End with a call to action, invitation for questions, or team contact line
**Writing style:**
- Professional but approachable — use "we" and team attribution
- Write in past tense for completed actions ("has been upgraded"), present tense for current state ("is now available")
- Include version numbers with transition notation where relevant (e.g., "5.5.4 -> 5.8.3")
- Bold key dates, version numbers, and action items for scannability
- Link to external resources (changelogs, official docs, guides) rather than repeating their content
- Keep total body under 250 words for single-PR announcements, under 400 words for multi-PR
### Step 4: Present and Refine
Present the composed announcement to the user in a copyable markdown block. Offer to adjust tone, length, or detail level if needed.
## Announcement Categories
Different change types call for different emphasis:
- **Framework/library upgrades** - Lead with version transition, list notable dependency changes with changelog links, mention release timeline
- **Security patches** - Lead with urgency, reference CVEs or advisories, specify release target
- **Deprecation notices** - Lead with the deadline, bold the deprecation date, provide migration steps
- **New tooling/features** - Lead with the value proposition, describe setup or usage, invite the team to try it
- **Documentation** - Lead with what's covered, link directly to the resource, invite contributions
## Multi-PR Announcements
When summarizing multiple PRs into a single announcement:
- Group changes by theme or affected area rather than listing per-PR
- Identify the most significant changes and lead with those
- Mention the total number of PRs and provide links to all of them
- Use a milestone or release-style title when appropriate
## Tone Calibration
Default to a professional, approachable tone suitable for engineering channels — the kind of message a tech lead would post. If the user specifies a different audience, adjust accordingly:
- **Engineering channel** - Include version numbers, dependency names, changelog links, CLI commands
- **Broader audience** - Focus on user-facing impact, avoid internal tooling details
- **Leadership** - Emphasize business value, timelines, and risk mitigation
## Output Expectations
Always output the final announcement inside a single fenced code block (```markdown) so the user can easily copy and paste it into Teams. Teams supports markdown formatting including bold, italic, bulleted lists, and links.
## Additional Resources
### Reference Files
For detailed examples of announcements across different categories:
- **`references/announcement-examples.md`** - Full example announcements covering upgrades, security patches, deprecations, new tooling, and documentation releases
### Example Files
- **`examples/single-pr-announcement.md`** - Example output for a framework upgrade announcement
- **`examples/multi-pr-announcement.md`** - Example output for a multi-topic release announcementRelated Skills
create-workflow
Create Jazz workflow automation files (WORKFLOW.md). Use this for scheduling Jazz agents to run recurring tasks. For OS-level scripts/commands, use create-system-routine.
create-rule
Create persistent AI agent rules and instructions. Use when you want to create a rule, add coding standards, set up project conventions, configure file-specific patterns, or create AGENTS.md/GEMINI.md rule files across Cursor, Gemini CLI, or Codex.
create-prompt
Expert prompt engineering for creating effective prompts for Claude, GPT, and other LLMs. Use when writing system prompts, user prompts, few-shot examples, or optimizing existing prompts for better performance.
create-expert-skill
Create production-ready skills from expert knowledge. Extracts domain expertise and system ontologies, uses scripts for deterministic work, loads knowledge progressively. Use when building skills that must work reliably in production.
create-event-handlers
Sets up RabbitMQ event publishers and consumers following ModuleImplementationGuide.md Section 9. RabbitMQ only (no Azure Service Bus). Creates publishers with DomainEvent (tenantId preferred), consumers with handlers, naming {domain}.{entity}.{action}, required fields (id, type, version, timestamp, tenantId, source, data). Use when adding event-driven communication, async workflows, or integrating via events.
create-custom-prompt
Prompt for creating custom prompt files
create-assistant
Create and configure Vapi voice AI assistants with models, voices, transcribers, tools, hooks, and advanced settings. Use when building voice agents, phone bots, customer support assistants, or any conversational AI that handles phone or web calls.
create-agents-md
Create or rewrite AGENTS.md files for Open Mercato packages and modules. Use this skill when adding a new package, creating a new module, or when an existing AGENTS.md needs to be created or refactored. Ensures prescriptive tone, MUST rules, checklists, and consistent structure across all agent guidelines.
create-agent-with-sanity-context
Build AI agents with structured access to Sanity content via Context MCP. Covers Studio setup, agent implementation, and advanced patterns like client-side tools and custom rendering.
awesome-copilot-root-typespec-create-agent
Generate a complete TypeSpec declarative agent with instructions, capabilities, and conversation starters for Microsoft 365 Copilot Use when: the task directly matches typespec create agent responsibilities within plugin awesome-copilot-root. Do not use when: a more specific framework or task-focused skill is clearly a better match.
awesome-copilot-root-mcp-create-declarative-agent
Skill converted from mcp-create-declarative-agent.prompt.md Use when: the task directly matches mcp create declarative agent responsibilities within plugin awesome-copilot-root. Do not use when: a more specific framework or task-focused skill is clearly a better match.
acc-create-read-model
Generates Read Model/Projection for PHP 8.5. Creates optimized query models for CQRS read side with projections and denormalization. Includes unit tests.