press-release-writer — Claude Code skill: press releases by media
Drafts press releases for launches, funding rounds, partnerships and crisis comms. Adapts the format to the media type and region.
npx skills add samber/cc-skills --skill press-release-writer -a claude-codeWhat press-release-writer does
The skill turns your agent into a PR writer with a journalist's habits. It starts by collecting context: what happened, the release type, target outlets, region, media format, company facts, spokesperson, embargo and language. Anything missing from your brief it asks for.
Then it pins down the news angle and checks it against news values. If the angle is weak, it says so and suggests how to fix it. From there it reads the reference files: templates per release type, regional conventions, media-format adaptations, writing rules. Before drafting, it offers 5 to 10 headline variants built on different hook types and waits for your pick.
The release itself follows the inverted pyramid: a lead answering 5W1H in 25-35 words, details in descending order, 300-500 words total. A quality checklist and a humanizing pass close the loop. One thing to know up front: this is not for blog posts or technical articles — the same repository ships technical-article-writer for those, and substack-ghostwriting for newsletter issues.
What it helps with
- draft a product launch press release
- find a news angle when the event feels minor
- adapt a release to trade press and regional conventions
- prepare a funding or partnership announcement
- rewrite a draft without marketing clichés
Example prompts for the agent
- write a press release about our API launch, target outlets are business tech press
- I need to announce a funding round, help me with the angle and headlines
- improve this release draft: cut the marketing lines, keep the facts
How to install press-release-writer
1Skills CLI (Vercel)
npx skills add samber/cc-skills --skill press-release-writer -a claude-code2Manually: put the files in place
~/.claude/skills/press-release-writer/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/press-release-writer/
1Skills CLI (Vercel)
npx skills add samber/cc-skills --skill press-release-writer -a codex2Manually: put the files in place
.agents/skills/press-release-writer/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add samber/cc-skills --skill press-release-writer -a cursor2Manually: put the files in place
.cursor/skills/press-release-writer/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install samber/cc-skills press-release-writer2Manually: put the files in place
.github/skills/press-release-writer/SKILL.md1Skills CLI (Vercel)
npx skills add samber/cc-skills --skill press-release-writer -a gemini-cli2Platform CLI
gemini skills install https://github.com/samber/cc-skills --path skills/press-release-writerManually: put the files in place
.devin/skills/press-release-writer/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add samber/cc-skills --skill press-release-writer -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about press-release-writer
How do I install press-release-writer in Claude?
Run npx skills add samber/cc-skills --skill press-release-writer -a claude-code. The skill then lives at ~/.claude/skills/press-release-writer/SKILL.md.
What does press-release-writer do?
It writes and improves press releases: gathers context, finds the news angle, proposes headline variants and builds the text on the inverted pyramid with a quality checklist.
Can I use it for blog posts or newsletters?
No. The same repository has technical-article-writer for technical articles and substack-ghostwriting for newsletter issues.
Source text
SKILL.md · MIT
---
name: press-release-writer
description: "Write professional press releases for any occasion, media type, and region. Use when the user wants to write, draft, or improve a press release, communiqué de presse, media announcement, or news release — including product launches, funding rounds, partnerships, crisis communications, executive hires, events, M&A, and open source milestones. Covers media targets (print, digital/wire, broadcast, social/SMPR, trade press) and region-specific conventions worldwide. Also trigger on 'I need to announce something' or 'how do I tell the press about X'. Do NOT use for blog posts or technical articles — use samber/cc-skills@technical-article-writer instead; for newsletter issues, use samber/cc-skills@substack-ghostwriting."
user-invocable: true
license: MIT
compatibility: Designed for Claude or similar AI agents.
metadata:
author: samber
version: "1.0.4"
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
© samber · MIT · samber/cc-skills