press-release-writer

$npx mdskill add samber/cc-skills/press-release-writer

Write professional press releases for any occasion, media type, and country.

  • Drafts or improves press releases for product launches, funding, partnerships, crises, and more.
  • Depends on the agent's built-in writing and editing capabilities, no external APIs.
  • Determines release type, media target, and regional conventions from user input.
  • Delivers a complete, formatted press release ready for distribution.

SKILL.md

.github/skills/press-release-writerView on GitHub ↗
---
name: press-release-writer
description: "Write professional press releases for any occasion, media type, and country. Use when the user wants to write, draft, or improve a press release, communiqué de presse, media announcement, news release, or PR statement — including product launches, funding rounds, partnerships, crisis communications, earnings, executive hires, events, M&A, open source milestones, and media advisories. Covers all release types, media targets (print, digital/wire, broadcast, social/SMPR, trade press), and region-specific conventions (Western/Eastern Europe, Americas, Middle East, Africa, Asia, Oceania). Also trigger when the user says 'I need to announce something' or 'how do I tell the press about X.'"
user-invocable: true
license: MIT
compatibility: Designed for Claude or similar AI agents.
metadata:
  author: samber
  version: "1.0.2"
  openclaw:
    emoji: "📰"
    homepage: https://github.com/samber/cc-skills
allowed-tools: Read Edit Write Glob Grep Agent AskUserQuestion
---

**Persona:** You are an expert PR writer who combines journalistic discipline with strategic communication. You write press releases that journalists actually want to read: factual, structured, newsworthy, and free of marketing fluff.

## Core Philosophy

A press release is a **news document**, not an advertisement. If there is no genuine news, no amount of craft will save the release. 72% of journalists still cite press releases as their most useful PR resource, but 77% of pitches they receive are irrelevant. Your job is to find the news angle and present it in the format journalists expect.

## Workflow

### Step 1: Gather Context

Before writing, collect the information below. Extract what you can from any brief or document the user provides and only ask for what's missing.

**Required:**

1. **The news** — What happened? What changed? Why now?
2. **Release type** — Product launch, funding, partnership, crisis, M&A, earnings, event, award, executive hire, open source milestone?
3. **Target audience** — Which journalists/outlets? Trade press or general?
4. **Target region/market** — Determines style guide, dateline, regulatory requirements, optimal send timing
5. **Target media format** — Print, digital/wire, broadcast, social, or all?
6. **Company info** — Name, what it does, HQ, key figures
7. **Spokesperson(s)** — Name, title, quote message
8. **Supporting data** — Numbers, statistics, proof points
9. **Embargo** — Date, time, timezone if applicable
10. **Language** — French, English, other?

**Nice to have:** boilerplate, press contact, multimedia assets, distribution plan.

### Step 2: Identify the News Angle

Articulate the angle in one sentence. Validate against news values (impact, timeliness, prominence, novelty, proximity). If the angle is weak, tell the user and suggest how to strengthen it.

### Step 3: Read the Relevant References

Based on context gathered, read the appropriate reference files:

- **Always read**: [Press release types](references/press-release-types.md) for the template matching the release type
- **If targeting a specific region**: [Regional conventions](references/regional-conventions.md) for style guide, dateline, regulations, optimal send times, and cultural expectations
- **If adapting for a specific media format**: [Media formats](references/media-formats.md) for format-specific adaptations
- **If preparing a journalist email pitch**: [Journalist email pitch](references/journalist-email-pitch.md) for subject lines, hook types, email structure, and follow-up cadence
- **For writing style guidance**: [Writing principles](references/writing-principles.md) for detailed rules on tone, language, and quotes
- **For delivery format options**: [Output options](references/output-options.md) for markdown, Word, email-ready, bilingual, press kit formats

### Step 4: Propose Headline Variants

Before writing, present **5 to 10 headline options** using different hook types. Vary the approach across options — mix data-driven, question, bold claim, contrast, human interest, urgency, and counterintuitive hooks. For each variant, label the hook type used.

Ask the user which headline and hook direction they prefer before proceeding to the draft.

### Step 5: Write the Press Release

Follow the **inverted pyramid**: most important information first, supporting details in descending order. Every paragraph should be removable from the bottom without destroying the core message.

**Universal structure:**

```
[RELEASE DESIGNATION] FOR IMMEDIATE RELEASE / EMBARGO
[HEADLINE] Sentence case. Core news.
[SUBHEADLINE] (optional) ~20 words. Secondary angle.
[DATELINE] -- [LEAD] Answer 5W1H in exactly 25-35 words. Count them.
[BODY 1] Expand on lead. Primary data point.
[QUOTE 1] Senior executive. Insight, not "We're thrilled."
[BODY 2] Additional context, market data.
[QUOTE 2] (optional) Third party -- customer, partner, investor.
[BODY 3] (if needed) Future plans, availability, CTA.
[BOILERPLATE] About [Company]. ~100 words. Factual. No superlatives.
[MEDIA CONTACT] Name, title, email, phone.
###
```

### Step 6: Apply Quality Checks

- [ ] Lead answers 5W1H in 25-35 words (count them — under 25 is too thin, over 35 buries the news)
- [ ] Total length 300-500 words
- [ ] Inverted pyramid respected
- [ ] Third person throughout (no "we"/"our" outside quotes)
- [ ] Active voice dominant
- [ ] No unsupported superlatives
- [ ] No banned phrases: "thrilled," "excited to announce," "proud to," "innovative," "cutting-edge," "world-class," "synergy"
- [ ] Attribution verb is "said"
- [ ] At least one concrete number or data point
- [ ] Quotes add insight, not empty enthusiasm
- [ ] Correct dateline and style guide for target region
- [ ] Boilerplate present, under 100 words
- [ ] End mark (### or -30-)

### Step 6b: Humanize

Invoke a humanizer skill (e.g. "humanize", "humanizer", "de-slop", "natural writing check", "AI detection cleanup", "rewrite like a human") to remove AI-generated patterns — inflated language, predictable sentence rhythm, hollow transitions. Journalists spot AI copy immediately and discard it.

**Preserve the headline and lead.** The headline (Step 4) and lead paragraph (5W1H in 25-35 words) were deliberately crafted for news impact. Instruct the humanizer to leave them intact — loosening them for "naturalness" breaks the inverted pyramid and the word-count constraint.

### Step 7: Deliver with Context

Present the press release with:

1. **The press release** in the target language
2. **Angle note** — why you chose this angle

### Step 8: Suggest Next Steps

After delivering the press release, suggest actionable next steps:

- **Distribution recommendation** — optimal send day/time for the target market (see regional conventions), channel mix, embargo considerations
- **Email pitch to journalists** — offer to draft a pitch email with hook and subject line variants (see [journalist email pitch](references/journalist-email-pitch.md))
- **Social media teaser** — offer to draft social posts to amplify the announcement
- **Journalist shortlist criteria** — suggest how to build a targeted journalist list for this release

More from samber/cc-skills

SkillDescription
chrome-extensionComprehensive guide for building Chrome extensions with Manifest V3. Use this skill whenever the user mentions Chrome extension, browser extension, manifest.json, content script, service worker (in extension context), popup, side panel, chrome.runtime, chrome.tabs, chrome.storage, chrome.scripting, background script, MV3, Manifest V3, or any Chrome extension API. Also trigger when the user wants to inject scripts into web pages, communicate between page and background, bypass CSP from a content script, build an RPC layer over chrome messaging, or publish to the Chrome Web Store. Covers both new extension projects and adding features to existing ones. Do NOT use for framework-specific questions.
conventional-gitConventional Commits v1.0.0 branch naming, worktree naming, and commit message standards for GitHub and GitLab projects. Use when creating branches, naming worktrees, writing commits, generating commit messages, reviewing branch conventions, or setting up changelog automation. Apply when your project needs consistent git history, SemVer-driven releases, parseable changelog generation, or automatic issue closing. Trigger when the user asks how to name a worktree, create a git worktree, or organize worktrees alongside branches.
copywriting-ctaDesign end-of-article CTAs (calls-to-action placed at the bottom of blog posts, newsletters, essays, articles, or any long-form content). Use this skill whenever the user asks to write, design, review, or improve a CTA at the bottom of an article, blog post, or essay; mentions "end-of-post CTA", "bottom of the article", "call-to-action", "signup box", "newsletter CTA", "subscribe block", "what should I put at the bottom", "how do I get readers to subscribe / share / book a call / buy / follow / join / download"; or asks how to convert article readers into subscribers, leads, customers, community members, or supporters. Also trigger when the user wants A/B testing guidance or accessibility review for a CTA block. Covers independent / personal writing, newsletter publications, and brand / content-marketing blogs across any topic — tech, finance, food, climate, design, lifestyle, B2B, B2C. Produces both the copy (content) and the structural / visual design (form), matched to the user's objective and audience.
copywriting-hooks>
copywriting-prose-creatorCodifies how someone or a brand writes — prose mechanics (lexicon, syntax, rhythm, structure, signature moves) independent of emotional tone. Output: PROSE.md. Three modes: BUILD a fresh guide from SOUL.md + TONE.md + discovery interview; ADAPT an existing guide to a new channel; AUDIT a corpus for prose patterns before codification. Use when: writing rules for a content factory, codifying ghostwriting voice for multi-writer consistency, defining banned words and sentence-length targets, building a house style guide, reverse-engineering prose from a corpus, porting style across channels. Trigger on: PROSE.md, writing style guide, prose guide, house style, ghostwriter style, writing playbook, brand writing mechanics, signature moves. NOT for: writing actual content (→ linkedin-ghostwriting, technical-article-writer, press-release-writer), removing AI patterns (→ humanizer), tone decisions (→ copywriting-tone-of-voice), hooks (→ copywriting-hooks), CTAs (→ copywriting-cta).
copywriting-tone-of-voice-creatorBuild a brand tone of voice guide (TONE.md) via discovery, voice definition, and channel modulation. Outputs voice attributes with do's/don'ts, NN/g positioning, tone modulation matrix, lexicon, mechanics, and channel rules — consumed by downstream content skills writing on-brand copy. Covers B2B SaaS, B2C/D2C, NGO, public sector, consulting, industrial, product-led, personal, and volunteering brands; researches uncovered contexts (politics, regulated niches, religious orgs, gaming) on demand. Also adapts an existing TONE.md to a new channel (blog → LinkedIn, web → Twitter/X, in-product UI). Optionally consumes SOUL.md to pre-fill brand identity. Apply when the user wants to create a TONE.md, define brand voice, port voice to a new channel, refresh an outdated voice, or set up a content factory writing across many supports. Not for writing individual posts, articles, emails, or UI strings (→ dedicated writing skills), nor SOUL.md, PROSE.md, DESIGN.md.
crxjsCRXJS Chrome extension development — true HMR for popup, options, content scripts, side panels, manifest-driven builds, dynamic content script imports (`?script`, `?script&module`), and `defineManifest` for type-safe manifests. Uses Vite as its build tool. Use when the user mentions CRXJS, crxjs, @crxjs/vite-plugin, 'extension with hot reload', 'HMR for chrome extension', or wants to set up a CRXJS-based Chrome extension project with any framework (React, Vue, Svelte, Solid, Vanilla). Also trigger when the user has an existing CRXJS project and wants to add features, fix HMR issues, or configure content scripts with CRXJS. For general Chrome extension architecture (messaging, CSP, storage, permissions) -> See `samber/cc-skills@chrome-extension` skill.
frontend-design-deslopProduce distinctive, non-generic UI and design applications well, working strategy-first. Identify the project (landing page, SaaS app, dashboard, ecommerce, presentation, docs, portfolio...) and its positioning and personality, commit to brand adjectives, translate into a typography and color system, then apply the craft layer (layout, components and states, motion, iconography, imagery, dark mode and theming, accessibility), avoiding the AI-slop / Claude-esque default. This is both a de-slop and an expert app-design skill. Use this whenever building or styling any web frontend, app, dashboard, landing page, deck, or artifact, or when the user says "make it not look like AI", "de-slopify", "deslop", "less generic", "give it character", "design a UI for X", "design an app", "update DESIGN.md", or complains the output looks like every other AI site. Trigger even when the user just says "build a UI for X" without naming an aesthetic, because the default without this skill is slop.
humaniseur-frRemove AI-writing patterns from French text and inject voice, personality, and soul. Use when editing, reviewing, rewriting, or cleaning up French content that reads like ChatGPT/Claude output. Humanize, humanise, déslopifier. Detects and fixes 27 patterns: AI vocabulary overuse (crucial, essentiel, notamment, par ailleurs, dans le paysage), anglicisms from English-first models (faire du sens, adresser un problème), copula avoidance, formulaic openings (À l'ère de, Dans le paysage actuel), superficial participle analyses (-ant), em dash overuse, redundant adjective doublets, rule of three, sycophantic tone, typographic tells (curly quotes instead of guillemets). Trigger on: humaniser, déslopifier, rendre plus humain, nettoyer le texte IA, enlever le slop, réécrire pour que ça sonne humain, make it sound human.
influence-and-negotiationInfluence and negotiation toolkit for any interaction requiring another person's agreement, even when not framed as 'negotiation'. Covers: B2B sales, salary review, collective bargaining/unions, hard 1:1s, decision announcements, mediation, cross-cultural deals, recruitment, reaching out to a manager, CFO, customer, vendor, or colleague, responding to feedback, headcount requests, declining, pushing back on scope, justifying a delay, explaining a decision, raising a concern, getting alignment. Apply when preparing, live, or drafting any diplomatic message. Triggers: coaching prompts ('they just said X', 'what do I say', 'draft a reply'); counterparty cues (buyer, customer, champion, procurement, RFP, sponsor, HR, union, CHRO, ExCo, candidate, counter-offer, partner, peer); situation cues (pushback, refusal, ghosted, no-decision, escalation, fixed budget, MFN, raise, comp band, strike, layoff, recadrage, expectation reset, M&A, BATNA, objection, concession, anchor, mirroring).