press
Complete media and public relations intelligence system. Trigger whenever someone needs to get press coverage, write a press release, pitch journalists, manage a media crisis, build a PR strategy, or communicate with the public at scale. Also triggers on phrases like "write a press release", "how do I get media coverage", "a journalist is asking about", "we need to respond to this story", "help me pitch to press", or any scenario involving earned media, reputation management, or public communication.
Best use case
press is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Complete media and public relations intelligence system. Trigger whenever someone needs to get press coverage, write a press release, pitch journalists, manage a media crisis, build a PR strategy, or communicate with the public at scale. Also triggers on phrases like "write a press release", "how do I get media coverage", "a journalist is asking about", "we need to respond to this story", "help me pitch to press", or any scenario involving earned media, reputation management, or public communication.
Teams using press 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/press/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How press Compares
| Feature / Agent | press | 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?
Complete media and public relations intelligence system. Trigger whenever someone needs to get press coverage, write a press release, pitch journalists, manage a media crisis, build a PR strategy, or communicate with the public at scale. Also triggers on phrases like "write a press release", "how do I get media coverage", "a journalist is asking about", "we need to respond to this story", "help me pitch to press", or any scenario involving earned media, reputation management, or public communication.
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.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
SKILL.md Source
# Press — Complete Media Intelligence System
## What This Skill Does
Most press releases are never covered. Most media pitches are never answered. Not because
the stories are not real, but because the people sending them do not understand how journalism
works — what makes a story, what a journalist needs, and what separates the pitches that get
opened from the hundreds that do not.
This skill teaches that. Then it does the work.
---
## Core Principle
Journalists are not your marketing channel. They are professionals serving their audience.
The pitch that succeeds is the one that makes their job easier by delivering a genuine story
their readers will care about. Everything else is noise.
---
## Workflow
### Step 1: Assess the PR Scenario
```
PR_SCENARIOS = {
"proactive_coverage": {
"goal": "Earn media coverage for announcement, milestone, or expertise",
"tools": ["press_release", "media_pitch", "story_angle_development"],
"success": "Coverage in target outlets with accurate message"
},
"thought_leadership": {
"goal": "Establish credibility through expert commentary and bylines",
"tools": ["expert_pitch", "byline_article", "media_list_building"],
"success": "Regular expert quotes and contributed content"
},
"crisis_communications": {
"goal": "Protect reputation when something goes wrong",
"tools": ["crisis_statement", "holding_statement", "media_response"],
"success": "Accurate coverage, narrative controlled, relationship preserved"
},
"product_launch": {
"goal": "Generate coverage for new product or service",
"tools": ["launch_press_release", "embargo_strategy", "review_program"],
"success": "Coverage in relevant outlets before and at launch"
},
"community_announcement": {
"goal": "Inform local or industry community of significant development",
"tools": ["press_release", "community_statement", "stakeholder_communication"],
"success": "Accurate information reaches intended audience"
}
}
```
### Step 2: Story Development
The most important PR skill is identifying what is actually a story. Most organizations
think everything they do is newsworthy. Almost none of it is.
```
NEWSWORTHINESS_CRITERIA = {
"timeliness": "Happening now or connected to something happening now",
"significance": "Affects enough people to matter to a general or specific audience",
"novelty": "Has not been reported before in this form",
"conflict": "Involves tension, challenge, or problem being solved",
"human_interest": "Involves real people with real stakes",
"proximity": "Relevant to the outlet's specific audience geographically or topically"
}
STORY_ANGLE_FRAMEWORK = {
"data_angle": "You have numbers that reveal something surprising or significant",
"trend_angle": "You are evidence of or response to a larger trend",
"first_angle": "You are doing something for the first time in your market",
"impact_angle": "Your work has changed something measurable for real people",
"conflict_angle": "You are challenging a dominant assumption or practice",
"timing_angle": "Your story connects to a news event, season, or cultural moment"
}
```
### Step 3: Press Release Architecture
```
PRESS_RELEASE_STRUCTURE = {
"header": {
"FOR IMMEDIATE RELEASE": "or embargo date if applicable",
"headline": "What happened. Active voice. Under 10 words. No puns.",
"subheadline": "The angle that makes it a story. One sentence.",
"dateline": "CITY, Date —"
},
"body": {
"paragraph_1": {
"rule": "The entire story in one paragraph. Who, what, when, where, why.",
"test": "If a journalist reads only this, do they have the story"
},
"paragraph_2": {
"rule": "The context that makes it significant",
"content": "Market context, problem being solved, scale of impact"
},
"quote_1": {
"attribution": "CEO or most senior relevant person",
"rule": "Says something a human would actually say. Not corporate language.",
"bad": "'We are excited to announce this innovative solution...'",
"good": "'Three years ago we could not find this product anywhere. Now we make it.'"
},
"paragraph_3": {
"rule": "Supporting detail — methodology, features, timeline, partnerships"
},
"quote_2": {
"attribution": "Customer, partner, or third party if available",
"rule": "Third-party validation carries more weight than self-promotion"
},
"boilerplate": {
"content": "Two sentences about the organization. Who you are and what you do.",
"rule": "Same every time. Consistent, factual, current."
}
},
"footer": {
"contact": "Media contact name, email, phone",
"end_mark": "###"
},
"formatting_rules": [
"One page maximum for most releases",
"No jargon — write for a journalist who knows nothing about your industry",
"No superlatives — 'leading', 'revolutionary', 'world-class' trigger skepticism",
"All claims must be verifiable",
"Links to supporting material, not embedded images"
]
}
```
### Step 4: Media Pitch
```
PITCH_FRAMEWORK = {
"anatomy_of_pitch": {
"subject_line": {
"purpose": "Gets the email opened. Most pitches fail here.",
"formula": "The story in under 8 words. No 'exclusive' unless it is genuinely exclusive.",
"examples": {
"weak": "Press Release: Company Announces New Product Launch",
"strong": "The startup making $40 solar panels work anywhere"
}
},
"opening": "The story in two sentences. Not who you are. The story.",
"body": "Why this journalist, why this outlet, why now. Three short paragraphs.",
"close": "One clear ask — interview, call, review copy, embargo access",
"signature": "Name, title, phone. No attachments unless requested."
},
"journalist_research": {
"before_pitching": [
"Read their last 10 articles — what do they actually cover",
"Note their angle — human interest, data, controversy, solutions",
"Check if they have covered this topic before",
"Find their preferred contact method — many journalists post this"
],
"personalization_minimum": "One sentence showing you read their work specifically"
},
"follow_up_rules": {
"timing": "One follow-up only, 3-5 business days after initial pitch",
"content": "New angle or new information — not 'just checking in'",
"limit": "Two contacts maximum. Persistence becomes harassment quickly.",
"no_reply": "No reply means no interest. Move on."
}
}
```
### Step 5: Crisis Communications
```
CRISIS_FRAMEWORK = {
"first_hour": {
"principle": "Speed matters more than perfection. Silence is interpreted as guilt.",
"actions": [
"Establish the facts — what actually happened",
"Identify who is affected and how",
"Issue holding statement within 1 hour",
"Designate single spokesperson — only one person speaks",
"Do not speculate — only state confirmed facts"
]
},
"holding_statement": {
"purpose": "Acknowledges situation, shows you are taking it seriously,
buys time for full response",
"template": "We are aware of [situation]. The safety and [wellbeing/interests] of
[affected parties] is our immediate priority. We are [specific action
being taken] and will provide an update by [specific time].",
"rules": ["Never say 'no comment'",
"Never speculate about cause",
"Never minimize before facts are established",
"Never attack the person who raised the issue"]
},
"full_response_structure": {
"acknowledge": "What happened, stated factually without minimizing",
"accountability": "Accept responsibility for what is yours to own",
"action": "Specific steps being taken — not vague commitments",
"timeline": "When each action will be complete",
"contact": "How affected parties can reach you directly"
},
"what_makes_crises_worse": [
"Denying before investigating",
"Multiple conflicting statements from different people",
"Legal language that reads as evasion",
"Attacking journalists or critics",
"Inconsistency between statement and observable action"
]
}
```
---
## Media List Building
```
MEDIA_LIST_FRAMEWORK = {
"targeting_criteria": [
"Outlet audience matches your target customer or stakeholder",
"Outlet has covered similar stories in the last 12 months",
"Specific journalist covers your beat or topic area",
"Outlet size appropriate for your story scale"
],
"list_tiers": {
"tier_1": "Dream coverage — national outlets, major trade press. Pitch first.",
"tier_2": "Strong coverage — regional outlets, vertical trade press. Pitch simultaneously.",
"tier_3": "Supporting coverage — blogs, podcasts, local press. Pitch after tier 1-2."
},
"relationship_building": [
"Engage with journalist content before you need them",
"Provide useful information even when you have nothing to announce",
"Be a reliable source — fast responses, accurate information",
"Never pitch a journalist on a story they just published on a competitor"
]
}
```
---
## Quality Check Before Delivering
- [ ] Story angle is genuinely newsworthy — passes the reader interest test
- [ ] Press release headline says what happened in under 10 words
- [ ] First paragraph contains the complete story
- [ ] Quotes sound like humans not press releases
- [ ] Pitch subject line is the story not the announcement
- [ ] Media list is targeted not spray-and-pray
- [ ] Crisis response acknowledges, takes responsibility, specifies action
- [ ] Single spokesperson identified for any crisis scenarioRelated Skills
media-compress
Compress and convert images and videos using ffmpeg. Use when the user wants to reduce file size, change format, resize, or optimize media files. Handles common formats like JPG, PNG, WebP, MP4, MOV, WebM. Triggers on phrases like "compress image", "compress video", "reduce file size", "convert to webp/mp4", "resize image", "make image smaller", "batch compress", "optimize media".
per-agent-compression-universal
Zero-config memory consolidation for multi-agent OpenClaw deployments. Auto-discovers agents and registers staggered cron tasks with full state tracking, deduplication, and domain-aware extraction.
wordpress-api
WordPress REST API integration for managing posts, pages, media, and more on self-hosted WordPress sites. Use when you need to create, update, or retrieve WordPress content programmatically. Supports Gutenberg blocks, custom fields, featured images, and full CRUD operations. Works with any WordPress site (self-hosted or managed) that has REST API enabled (WordPress 4.7+). Authentication via Application Password (recommended) or Basic Auth. Use for publishing articles, updating content, managing media, batch operations, content migration, or any WordPress admin task via API.
wordpress-api-pro
WordPress REST API integration for managing posts, pages, media, and more on self-hosted WordPress sites. Use when you need to create, update, or retrieve WordPress content programmatically. Supports Gutenberg blocks, custom fields, featured images, and full CRUD operations. Works with any WordPress site (self-hosted or managed) that has REST API enabled (WordPress 4.7+). Authentication via Application Password (recommended) or Basic Auth. Use for publishing articles, updating content, managing media, batch operations, content migration, or any WordPress admin task via API.
clawpressor
Compress OpenClaw session context to reduce token usage and extend session lifetime. Uses NLP summarization (Sumy) to intelligently compact conversation history while preserving essential context. Triggers on mentions of session compression, token reduction, context cleanup, or when session size exceeds safe thresholds (~300KB). Use when (1) OpenClaw approaches 50% context limit, (2) Sessions are slowing down due to large context, (3) Reducing API costs from excessive token consumption, (4) Extending session lifetime without forced reboots.
talkspresso
Manage a Talkspresso business (services, appointments, products, clients, earnings, calendar) using the Talkspresso REST API. Use when the user wants to check bookings, create services, manage digital products, view earnings, update their profile, schedule sessions, or do anything related to their Talkspresso account. Requires TALKSPRESSO_API_KEY environment variable.
wordpress-publisher
Publish content directly to WordPress sites via REST API with full Gutenberg block support. Create and publish posts/pages, auto-load and select categories from website, generate SEO-optimized tags, preview articles before publishing, and generate Gutenberg blocks for tables, images, lists, and rich formatting. Use when user wants to publish to WordPress, post to blog, create WordPress article, update WordPress post, or convert markdown to Gutenberg blocks.
expression-coach
个人表达能力训练教练。支持即兴话题练习(AI评分+反馈)、职场/社交场景角色扮演模拟、表达框架速查、 自定义话题管理、进步追踪与数据分析、每日表达力Tips推送。 语音优先,通过 Whisper 转写分析口语特征(填充词、停顿、流畅度)。 支持飞书 Bitable 自动记录练习数据(可选)。 触发关键词:练口才、表达训练、即兴话题、场景模拟、表达框架、沟通练习、演讲练习、怎么说、话术、 说服、汇报练习、添加话题、自定义话题、查看进步、我的数据、练习报告。
wordpress
OpenClaw skill that provides a WordPress REST API CLI for posts, pages, categories, tags, users, and custom requests using plain HTTP.
ehr-semantic-compressor
AI-powered EHR summarization using Transformer architecture to extract key clinical information from lengthy medical records
ppt-compress
Compress PPT/PPTX file size. Decompress PPT, compress large images, repackage and convert to PDF to significantly reduce file size. Suitable for scenarios where large PPT files need to be shared or uploaded.
academic-press-release-writing
学术新闻稿撰写专业工具。包含规范的五段式写作结构、全流程工作步骤、常见问题解决方案和效率提升技巧。**当以下情况时使用此 Skill**:(1) 需要撰写学术机构、科研团队的新闻通稿/宣传稿;(2) 需要将学术论文、科研成果转化为面向公众的科普性新闻稿;(3) 用户提到"学术新闻稿"、"科研宣传稿"、"论文新闻稿"、"成果宣传"等关键词;(4) 需要规范的新闻稿写作模板和流程指导。