Agent skill
press-release-writer
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.'
Install this agent skill to your Project
npx add-skill https://github.com/samber/cc-skills/tree/main/skills/press-release-writer
Metadata
Additional technical details for this skill
- author
- samber
- version
- 1.0.2
- openclaw
-
{ "emoji": "\ud83d\udcf0", "homepage": "https://github.com/samber/cc-skills" }
SKILL.md
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:
- The news — What happened? What changed? Why now?
- Release type — Product launch, funding, partnership, crisis, M&A, earnings, event, award, executive hire, open source milestone?
- Target audience — Which journalists/outlets? Trade press or general?
- Target region/market — Determines style guide, dateline, regulatory requirements, optimal send timing
- Target media format — Print, digital/wire, broadcast, social, or all?
- Company info — Name, what it does, HQ, key figures
- Spokesperson(s) — Name, title, quote message
- Supporting data — Numbers, statistics, proof points
- Embargo — Date, time, timezone if applicable
- 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 for the template matching the release type
- If targeting a specific region: Regional conventions for style guide, dateline, regulations, optimal send times, and cultural expectations
- If adapting for a specific media format: Media formats for format-specific adaptations
- If preparing a journalist email pitch: Journalist email pitch for subject lines, hook types, email structure, and follow-up cadence
- For writing style guidance: Writing principles for detailed rules on tone, language, and quotes
- For delivery format options: Output options 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:
- The press release in the target language
- 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)
- 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
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
substack-ghostwriting
Write, optimize, and grow Substack content — both newsletter issues (email-first) and web posts (web-first articles/essays). Covers ghostwriting with voice matching, Substack algorithm optimization, Notes strategy, email formatting, SEO, growth tactics, and monetization planning. Use when the user mentions Substack, newsletters, write a newsletter issue, Substack post, Substack article, web post on Substack, evergreen content, SEO for Substack, newsletter growth, Notes strategy, ghostwrite for, match someone's voice, write in the style of, newsletter monetization, paid subscribers, or any task involving Substack as a platform. Also trigger for general article/newsletter writing even if Substack isn't named explicitly, or when the user wants to adapt existing content (blog post, talk, thread) into newsletter or web post format. Do NOT use for generic blog post writing without a newsletter/Substack context (-> See samber/cc-skills@technical-article-writer skill).
promql-cli
CLI for querying Prometheus and PromQL-compatible engines (Thanos, Cortex, VictoriaMetrics, Grafana Mimir, Grafana Tempo...) — instant queries, range queries, metric discovery (metrics/labels/meta subcommands), output formats (table/csv/json/graph). Apply when executing PromQL queries, troubleshooting performance issues on a software having observability, investigating latency/error rates/saturation, or analyzing time series data.
technical-article-writer
Write compelling technical articles and blog posts for developer audiences. Use this skill whenever the user asks to write a blog post, technical article, or any long-form technical content. Also trigger when the user says 'write about [technical topic]', 'help me draft an article', 'turn this into a blog post', 'write a post about', 'I want to publish something about', or mentions writing for a developer audience. Covers the full pipeline: idea sharpening, hook/title generation, article structure, body drafting, and editing. Even if the user just says 'I want to write about X' without specifying format, use this skill. Do NOT use for platform-specific optimization, newsletter strategy, or ghostwriting voice matching.
conventional-git
Conventional Commits v1.0.0 branch naming and commit message standards for GitHub and GitLab projects. Use when creating branches, 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.
chrome-extension
Comprehensive 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.
humaniseur-fr
Remove 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.
Didn't find tool you were looking for?