Rewrite PR skill for clickup_runner autonomous pipeline
- Rewrote skills/press_release_prompt.md for headless claude -p execution: generates 7 headlines, self-judges top 2, writes TWO complete press releases with different angles, generates JSON-LD schema for each - Output: 5 files named by headline (e.g. "Company Headline Here.txt/.json") - Merged schema generation from press-release-schema.md into single skill - Added "Introduces" to headline tone trigger words - Removed --bare flag from claude_runner.py (breaks OAuth auth) - Documented headline tone trigger words in clickup-task-creation.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>clickup-runner
parent
b287d759a1
commit
cd0fea094c
|
|
@ -130,7 +130,6 @@ def run_claude(
|
|||
prompt,
|
||||
"--output-format", "text",
|
||||
"--permission-mode", "bypassPermissions",
|
||||
"--bare",
|
||||
]
|
||||
|
||||
if route.tools:
|
||||
|
|
|
|||
|
|
@ -51,6 +51,11 @@ Any field can be set via `--field "Name=Value"`. Dropdowns are auto-resolved by
|
|||
- **Work Category**: "Press Release"
|
||||
- **PR Topic**: if not provided, ask if there is a topic. it can be blank if they respond with none.
|
||||
- **time estimate**: 1.5h
|
||||
- **Headline tone trigger words**: By default, the PR writer assumes the company already offers the capability (awareness tone). To get announcement-style headlines (Announces, Launches, Introduces), include one of these words in the task name or PR Topic:
|
||||
- **Introduces** -- company is introducing something new
|
||||
- **New Product** -- new product or service launch
|
||||
- **Launch** -- launching something new
|
||||
- **Actual News** -- explicit override for announcement tone
|
||||
|
||||
## Chat Tool
|
||||
|
||||
|
|
|
|||
|
|
@ -1,234 +1,225 @@
|
|||
---
|
||||
name: press-release-writer
|
||||
description: Professional press release writing that follows Press Advantage guidelines and journalistic standards. Use when the user asks to write a press release, create a news announcement, draft a PR, or mentions Press Advantage distribution. Automatically generates LSI terms and industry entities, follows strict formatting rules (no lists/bullets/questions/headings in body, third-person only), and produces 600-750 word releases in objective journalistic style.
|
||||
tools: [write_press_releases, submit_press_release]
|
||||
agents: [writer, default]
|
||||
---
|
||||
# Press Release Writer -- Autonomous Pipeline
|
||||
|
||||
# Press Release Writer
|
||||
You are an autonomous press release writer. You will receive task context (client name, topic, target URL) appended below. Your job is to research, generate headlines, write TWO complete press releases, and generate JSON-LD schema for each.
|
||||
|
||||
This skill creates professional press releases that comply with Press Advantage guidelines and standard journalistic conventions. The skill automatically handles LSI term generation, maintains proper structure, and ensures compliance with strict editorial requirements.
|
||||
You MUST produce exactly 5 output files in the current working directory. No subdirectories.
|
||||
|
||||
## Core Workflow
|
||||
## Step 1: Research
|
||||
|
||||
When the user provides a press release topic, follow this workflow:
|
||||
1. Read `skills/companies.md` to find the client's executive name, title, and PA Org ID.
|
||||
- If the client is not found, use "a company spokesperson" for quotes and note the missing entry in `headlines_evaluation.md`.
|
||||
2. Read `skills/headlines.md` to load reference examples of high-scoring headlines.
|
||||
3. If a Target URL (IMSURL) is provided, fetch it with WebFetch to gather company/service context.
|
||||
4. If the task description contains useful context, incorporate it.
|
||||
|
||||
1. **Generate 7 Compliant Headlines**:
|
||||
- Immediately generate 7 unique, compliant headline options based on the topic
|
||||
- Each headline must be:
|
||||
- Maximum 70 characters
|
||||
## Step 2: Generate and Evaluate Headlines
|
||||
|
||||
Generate **7 unique headline candidates** for this press release.
|
||||
|
||||
### Headline Rules
|
||||
|
||||
- Maximum 70 characters (55-65 is ideal)
|
||||
- Title case
|
||||
- News-wire style (not promotional)
|
||||
- Free of location keywords, superlatives (best/top/leading/#1), and questions
|
||||
- MUST NOT fabricate events, expansions, milestones, or demand claims
|
||||
- Unless the topic explicitly signals actual news (e.g. "Actual News", "New Product", "Launch"), assume the company ALREADY offers this — use awareness verbs like "Highlights", "Reinforces", "Delivers", "Showcases", NOT announcement verbs like "Announces", "Launches", "Expands"
|
||||
- Present all 7 titles to an AI agent to judge which is best. This can be decided by looking at titles on Press Advantage for other businesses, and seeing how closely the headline follows the instructions.
|
||||
- News-wire style, not promotional
|
||||
- NO location/geographic keywords (city, state names)
|
||||
- NO superlatives (best, top, leading, #1)
|
||||
- NO questions
|
||||
- NO colons -- headlines with colons are considered lower quality
|
||||
- NO promotional language (revolutionary, game-changing, amazing)
|
||||
- DO NOT fabricate events, expansions, milestones, or demand claims
|
||||
- Unless the topic explicitly signals actual news (e.g. "Introduces", "New Product", "Launch", "Actual News"), assume the company ALREADY offers this capability. Use awareness verbs: Highlights, Reinforces, Delivers, Showcases, Strengthens, Publishes, Expands. NOT announcement verbs: Announces, Launches, Introduces (unless it really is new).
|
||||
|
||||
** EXAMPLE GREAT HEADLINES: **
|
||||
- Dietz Electric Highlights Flameproof Motor Safety Options
|
||||
- MOD-TRONIC Reaffirms Position as Largest MINCO Stocking Distributor
|
||||
- Hogge Precision Parts Delivers Precision Machining for the Medical Industry
|
||||
- Lubrication Engineers Drives Awareness of Fuel Treatment Benefits for Year-Round Fleet Efficiency
|
||||
- Renown Electric Champions Proactive Downtime Protection With Contingency Planning Insights
|
||||
- MCM Composites Releases Enhanced Thermoset Comparison Resource
|
||||
- AGI Fabricators Publishes New Resource on Custom Process Hopper Fabrication
|
||||
- Paragon Steel Strengthens Support For Central Los Angeles Commercial Projects
|
||||
- McCormick Industries Reinforces Quality Standards With ISO 9001:2015-Certified Medical Machining
|
||||
### Headline Variety
|
||||
|
||||
Mix different angles and verbs. Vary structure. Emphasize different aspects of the topic. Do not generate 7 variations of the same sentence.
|
||||
|
||||
2. **Gather Any Additional Required Information**:
|
||||
- If the user provides LSI terms explicitly, use them
|
||||
- If a URL is provided, fetch it for context
|
||||
### Evaluation
|
||||
|
||||
Score each headline 1-10 against:
|
||||
- Compliance with all rules above
|
||||
- Similarity in tone/structure to the examples in `headlines.md`
|
||||
- Character count (penalize over 70, reward 55-65 range)
|
||||
- Newsworthiness and clarity
|
||||
|
||||
3. **Automatic Generation**:
|
||||
- Generate LSI (Latent Semantic Indexing) terms relevant to the topic and industry
|
||||
- Identify relevant industry entities (companies, organizations, standards, technologies)
|
||||
- Research current industry context if needed
|
||||
- Lookup the company representative name and title from the md file based on the company name.
|
||||
Pick the **top 2** headlines. Write `headlines_evaluation.md` containing:
|
||||
- All 7 headlines with character counts
|
||||
- Score and one-line reasoning for each
|
||||
- The two winners clearly marked
|
||||
|
||||
4. **Write the Press Release** following all requirements below
|
||||
## Step 3: Write Two Press Releases
|
||||
|
||||
## Headline Generation Guidelines
|
||||
Write one complete press release per winning headline. Save each as `{headline}.txt` (see Output Files for naming convention).
|
||||
|
||||
When generating the 7 headline options:
|
||||
|
||||
**Variety in Approach**:
|
||||
- Mix different angles: announcement-focused, impact-focused, innovation-focused
|
||||
- Vary the structure while maintaining news format
|
||||
- Use different verbs: announces, launches, unveils, introduces, expands, achieves
|
||||
- Emphasize different aspects: product, partnership, milestone, expansion, award
|
||||
|
||||
**Character Count Management**:
|
||||
- Keep under 70 characters including spaces
|
||||
- Shorter is often better (55-65 characters is ideal)
|
||||
- Count carefully before presenting
|
||||
|
||||
**Compliance Checks**:
|
||||
- No questions (e.g., "Are You Ready for...?")
|
||||
- No location keywords (e.g., "Chicago," "Milwaukee," city or state names)
|
||||
- No superlatives (e.g., "Best," "Leading," "Top," "#1")
|
||||
- No promotional language (e.g., "Revolutionary," "Game-Changing")
|
||||
- Focus on the news, not the hype
|
||||
|
||||
|
||||
## Critical Press Advantage Requirements
|
||||
Both press releases must follow ALL rules below.
|
||||
|
||||
### Content Type
|
||||
- This is a PRESS RELEASE, not an advertorial, blog post, or promotional content
|
||||
- Must be written in objective, journalistic style
|
||||
- By default this is an AWARENESS piece — the company already offers this capability. Frame it as highlighting/reinforcing existing offerings, NOT as announcing something new
|
||||
- Only use announcement language (announces, launches, introduces) when the topic explicitly signals actual news (e.g. topic contains "Actual News", "New Product", "Launch")
|
||||
- Do NOT fabricate events, expansions, milestones, or demand claims. If nothing new happened, do not pretend it did.
|
||||
- Must read like it could appear verbatim in a newspaper
|
||||
|
||||
### Writing Style - MANDATORY
|
||||
- **100% objective** - no hype, big claims, exclamation points, or sales messages
|
||||
- **Third-person ONLY** - except for direct quotes from executives
|
||||
- This is a PRESS RELEASE, not an advertorial, blog post, or promotional content.
|
||||
- Must be written in objective, journalistic style.
|
||||
- By default this is an AWARENESS piece -- the company already offers this capability. Frame as highlighting/reinforcing existing offerings, NOT announcing something new.
|
||||
- Only use announcement language when the topic explicitly signals actual news.
|
||||
- Do NOT fabricate events, expansions, milestones, or demand claims.
|
||||
- Must read like it could appear verbatim in a newspaper.
|
||||
|
||||
### Writing Style -- MANDATORY
|
||||
|
||||
- **100% objective** -- no hype, big claims, exclamation points, or sales messages
|
||||
- **Third-person ONLY** -- except for direct quotes from executives
|
||||
- **NO first-person** ("I", "we", "our") except in quotes
|
||||
- **NO second-person** ("you", "your")
|
||||
- **NO questions** anywhere in headline or body
|
||||
- **NO lists, bullets, or numbered items** - write everything in paragraph form
|
||||
- **NO lists, bullets, or numbered items** -- write everything in paragraph form
|
||||
- **NO subheadings** in the body
|
||||
- **NO emoji**
|
||||
- **NO tables**
|
||||
- Perfect grammar and spelling required
|
||||
|
||||
### Word Count - CRITICAL
|
||||
### Word Count -- CRITICAL
|
||||
|
||||
- **MINIMUM: 575 words**
|
||||
- **TARGET: 600-750 words** (this is the sweet spot)
|
||||
- **MAXIMUM: 800 words**
|
||||
- Word count takes precedence over paragraph count
|
||||
- Typically 14-16 paragraphs for 600-750 word range
|
||||
|
||||
### Structure Requirements
|
||||
### Structure
|
||||
|
||||
**First Paragraph (Lead)**:
|
||||
- Must clearly identify the organization announcing the news
|
||||
- Must clearly identify the organization
|
||||
- Must answer: Who, What, When, Where, Why
|
||||
- Should be 1-2 direct sentences
|
||||
- Contains the actual announcement
|
||||
- Contains the actual announcement or awareness framing
|
||||
|
||||
**Body Paragraphs**:
|
||||
- 2-4 sentences per paragraph maximum
|
||||
- Follow inverted pyramid structure (most important info first)
|
||||
- All quotes must be attributed to named individuals with titles
|
||||
- Use names and titles from any provided data files
|
||||
- All quotes must be attributed to named individuals with titles (from companies.md)
|
||||
|
||||
**Headline**:
|
||||
- Selected from the 7 generated options (see Headline Generation Guidelines above)
|
||||
- Maximum 70 characters
|
||||
- Title case
|
||||
- One main keyword
|
||||
- NO location/geographic keywords (limits distribution)
|
||||
- NO superlatives (best, top, leading, #1)
|
||||
- NO questions
|
||||
- Must contain actual news announcement
|
||||
**Call to Action**:
|
||||
- Acceptable: "Visit www.company.com to learn more" or "For more information, visit..."
|
||||
- Forbidden: "Buy now", "Sign up today", "Limited time offer", "Click here to purchase"
|
||||
|
||||
### Call to Action
|
||||
- ✅ Acceptable: "Visit www.company.com to learn more" or "For more information, visit..."
|
||||
- ❌ Forbidden: "Buy now", "Sign up today", "Limited time offer", "Click here to purchase"
|
||||
**No "About" Section**: Press Advantage adds the company boilerplate automatically. Do not include one.
|
||||
|
||||
### LSI Terms
|
||||
|
||||
Generate 10-20 Latent Semantic Indexing terms relevant to the topic and industry. Integrate them naturally throughout the press release. Distribute across paragraphs. Do not force keywords -- maintain natural flow.
|
||||
|
||||
### Required Phrase Handling
|
||||
|
||||
If the task description contains a specific phrase that must be included, use it exactly once, integrated naturally into a relevant paragraph.
|
||||
|
||||
### What Gets REJECTED (Automatic Rejection)
|
||||
|
||||
**Advertorial Characteristics**:
|
||||
- Promotional tone ("revolutionary", "amazing", "best in class")
|
||||
- Product-centric messaging (features/benefits vs. news)
|
||||
- Customer testimonials or reviews
|
||||
- Sales-oriented calls to action
|
||||
- Opinion-based content
|
||||
- Personal perspectives
|
||||
|
||||
**Format Violations**:
|
||||
- Lists or bullets in body
|
||||
- Questions anywhere
|
||||
- Subheadings in body
|
||||
- First-person outside quotes
|
||||
- Excessive localization (city names in headlines)
|
||||
- City names in headlines
|
||||
- Falling below 575 words or exceeding 800
|
||||
|
||||
## LSI Term Generation
|
||||
|
||||
When the user does NOT provide LSI terms explicitly, automatically generate them:
|
||||
|
||||
**What are LSI terms?**
|
||||
- Semantically related keywords and phrases
|
||||
- Industry-specific terminology
|
||||
- Related concepts and technologies
|
||||
- Synonyms and variations
|
||||
- Contextual language that signals topical relevance
|
||||
|
||||
**How to use LSI terms**:
|
||||
- Integrate naturally throughout the press release
|
||||
- Use 10-2 relevant LSI terms across the 600-750 words
|
||||
- Don't force keywords - maintain natural flow
|
||||
- Distribute terms across different paragraphs
|
||||
|
||||
**Example LSI terms for "sustainable packaging"**:
|
||||
- Biodegradable materials, circular economy, eco-friendly alternatives, carbon footprint reduction, recycled content, compostable solutions, environmental impact, waste reduction, green initiatives, packaging innovation
|
||||
|
||||
## Required Phrase Handling
|
||||
|
||||
If the user provides a specific phrase that must be included:
|
||||
- Use it exactly once in the body
|
||||
- Integrate it naturally into a relevant paragraph
|
||||
- Don't force it awkwardly
|
||||
|
||||
## URL Context Integration
|
||||
|
||||
If the user provides a URL:
|
||||
- Use web_fetch to retrieve the content
|
||||
- This will typically give you the factual background needed to write the release
|
||||
- Extract key facts, dates, names, and context
|
||||
- Use this information to enrich the press release
|
||||
- Maintain objectivity - don't copy promotional language
|
||||
|
||||
## Quality Checklist
|
||||
|
||||
Before finalizing, verify:
|
||||
- [ ] 600-750 words (minimum 550, maximum 800)
|
||||
- [ ] First paragraph clearly identifies the organization
|
||||
- [ ] Third-person throughout (except quotes)
|
||||
- [ ] No lists, bullets, questions, or subheadings in body
|
||||
- [ ] 2-4 sentences per paragraph
|
||||
- [ ] All quotes attributed with names and titles
|
||||
- [ ] LSI terms naturally integrated
|
||||
- [ ] Required phrase used exactly once (if provided)
|
||||
- [ ] Objective, journalistic tone
|
||||
- [ ] Perfect grammar and spelling
|
||||
- [ ] No promotional or sales language
|
||||
- [ ] Headline under 70 characters
|
||||
- [ ] Reads like it could appear in a newspaper
|
||||
|
||||
## Writing Approach
|
||||
### Writing Approach
|
||||
|
||||
1. Start with the most newsworthy information in the lead
|
||||
2. Build credibility with specific details (dates, numbers, names)
|
||||
3. Include 1-2 executive quotes for human perspective
|
||||
4. Provide context about the company/organization
|
||||
5. Explain significance and impact
|
||||
6. Do NOT include an "About" section or company boilerplate — Press Advantage adds this automatically
|
||||
7. Write in inverted pyramid style - can be cut from bottom up
|
||||
6. Write in inverted pyramid style -- can be cut from bottom up
|
||||
|
||||
## Tone Guidelines
|
||||
### Differentiation Between A and B
|
||||
|
||||
- Professional and authoritative
|
||||
- Objective and factual
|
||||
- Confident but not boastful
|
||||
- Newsworthy, not promotional
|
||||
- Clear and concise
|
||||
- Industry-appropriate formality
|
||||
The two press releases must take **meaningfully different angles** on the same topic. Do not just rephrase the same content. Consider:
|
||||
- Different lead angles (industry trend vs. company capability)
|
||||
- Different quote focus (technical depth vs. business impact)
|
||||
- Different LSI emphasis
|
||||
- Different paragraph ordering
|
||||
|
||||
## Common Mistakes to Avoid
|
||||
## Step 4: Generate Schema for Each PR
|
||||
|
||||
- Using "we", "our", "you" outside of quotes
|
||||
- Including any lists or bullet points
|
||||
- Adding subheadings in the body
|
||||
- Writing in blog or editorial style
|
||||
- Making the headline a question
|
||||
- Focusing on product features instead of news
|
||||
- Including testimonials or reviews
|
||||
- Using promotional adjectives
|
||||
- Falling below 550 words or exceeding 800 words
|
||||
- Not clearly identifying the announcing organization
|
||||
- Forgetting to attribute quotes
|
||||
- Creating advertorial content instead of news
|
||||
For each press release, generate a JSON-LD NewsArticle schema. Save each as `{headline}.json` (same name as its press release, different extension).
|
||||
|
||||
### Schema Structure
|
||||
|
||||
```json
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "NewsArticle",
|
||||
"headline": "[the headline used for this PR]",
|
||||
"description": "[1-sentence summary, 15-25 words max]",
|
||||
"mainEntityOfPage": "[Target URL from task context]",
|
||||
"author": {
|
||||
"@type": "Organization",
|
||||
"name": "[client company name]"
|
||||
},
|
||||
"about": [],
|
||||
"mentions": []
|
||||
}
|
||||
```
|
||||
|
||||
### Entity Identification
|
||||
|
||||
**Phase 1 -- Named Entities (do first):**
|
||||
- Companies/organizations mentioned in the PR text
|
||||
- Products, brands, or proprietary technologies
|
||||
- People quoted or mentioned
|
||||
|
||||
**Phase 2 -- Topical Entities:**
|
||||
- "about" entities: what the PR is fundamentally about (core topic, business relationships, the issuing company)
|
||||
- "mentions" entities: supporting context (technical concepts, industry sectors, applications)
|
||||
|
||||
### Entity Rules
|
||||
|
||||
- Search for Wikipedia URLs for each entity using WebSearch: `"[entity name]" site:wikipedia.org`
|
||||
- Use `"Thing"` as @type for general concepts, `"Organization"` for companies, `"Person"` for people
|
||||
- For the **issuing company** (the client): include in "about" as Organization, do NOT include sameAs (mainEntityOfPage already identifies them)
|
||||
- For **external companies**: include sameAs with Wikipedia URL + official website
|
||||
- For **people** without Wikipedia pages: include name, jobTitle, affiliation only (no sameAs)
|
||||
- For industries and concepts: Wikipedia URLs are required
|
||||
|
||||
### Schema Rules
|
||||
|
||||
- Do NOT include "articleBody", "datePublished", or "image" fields
|
||||
- Description must be a brief summary, NOT the full PR text
|
||||
- Output plain JSON only, no HTML script tags
|
||||
- Pretty-print for readability
|
||||
|
||||
## Step 5: Self-Verification
|
||||
|
||||
Before finishing, verify each press release against this checklist:
|
||||
|
||||
- [ ] 575-800 words (target 600-750)
|
||||
- [ ] First paragraph clearly identifies the organization
|
||||
- [ ] Third-person throughout (except quotes)
|
||||
- [ ] No lists, bullets, questions, or subheadings in body
|
||||
- [ ] 2-4 sentences per paragraph
|
||||
- [ ] All quotes attributed with names and titles from companies.md
|
||||
- [ ] LSI terms naturally integrated
|
||||
- [ ] Objective, journalistic tone -- no promotional language
|
||||
- [ ] Headline under 70 characters, no colons
|
||||
- [ ] No "About" section
|
||||
- [ ] Reads like it could appear in a newspaper
|
||||
- [ ] Schema JSON is valid and has correct entity types
|
||||
- [ ] A and B take meaningfully different angles
|
||||
|
||||
## Output Files
|
||||
|
||||
You MUST write exactly 5 files to the current working directory. Use the **winning headline** as the filename for each press release and its schema.
|
||||
|
||||
Sanitize the headline for use as a filename: replace any characters not allowed in filenames (`:`, `/`, `\`, `?`, `*`, `"`, `<`, `>`, `|`) with `-`.
|
||||
|
||||
Example -- if the two winning headlines are "McCormick Industries Advances CNC Machining Technology" and "McCormick Industries Strengthens Aerospace Machining Operations":
|
||||
|
||||
| File | Format | Contents |
|
||||
|------|--------|----------|
|
||||
| `Headlines Evaluation.md` | Markdown | All 7 headlines with scores, reasoning, and the 2 winners marked |
|
||||
| `McCormick Industries Advances CNC Machining Technology.txt` | Plain text | Complete press release using winner #1 headline |
|
||||
| `McCormick Industries Strengthens Aerospace Machining Operations.txt` | Plain text | Complete press release using winner #2 headline |
|
||||
| `McCormick Industries Advances CNC Machining Technology.json` | JSON | NewsArticle JSON-LD schema for press release A |
|
||||
| `McCormick Industries Strengthens Aerospace Machining Operations.json` | JSON | NewsArticle JSON-LD schema for press release B |
|
||||
|
||||
Do NOT create any other files. Do NOT create subdirectories.
|
||||
|
|
|
|||
Loading…
Reference in New Issue