Agent skill

Press Release Generator

by dmccreary in dmccreary/ibook-skills

Generates an AP-style press release for an intelligent textbook or course milestone — headline, lead, attributed quotes, boilerplate, and media-contact block.

MITAuto-check passedWriting & Content

Install Press Release Generator

skills CLI
$ npx skills add dmccreary/ibook-skills --skill press-release-generator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dmccreary/ibook-skills press-release-generator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dmccreary/ibook-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/archived/press-release-generator .claude/skills/press-release-generator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
press-release-generator
GitHub stars
105
Token cost
~3.5k tokens
SKILL.md length
1,503 words
Files
1
Skills in repo
32
Repo updated
First seen
Licence
MIT

At a glance

Generates an AP-style press release for an intelligent textbook or course milestone — headline, lead, attributed quotes, boilerplate, and media-contact block.

  • Works in 5 steps: Gather book metadata → Get the news hook and the things only a… → Assemble in AP style → …
  • Pitching to journalists
  • SKILL.md covers Overview, When to Use This Skill, Two operating modes (this… and Workflow, plus 7 more sections
  • Calls python3 and curl

What it does

Press Release Generator is an agent skill from dmccreary/ibook-skills. Generates an AP-style press release for an intelligent textbook or course milestone — headline, lead, attributed quotes, boilerplate, and media-contact block. Use when pitching to journalists or education trade press; distinct from linkedin-announcement-generator (social post) and readme-generator (GitHub docs).

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Writing & Content, covering Copywriting, Social media posts and Project management. It works with LinkedIn and GitHub. The licence is MIT.

When your agent uses it

  • Pitching to journalists
  • Education trade press
  • Distinct from linkedin-announcement-generator (social post) and readme-generator (GitHub docs)

Example prompts

  • “Use the press-release-generator skill to generate an AP-style press release for an intelligent textbook or course milestone — headline, lead…”
  • “/press-release-generator”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Gather book metadata
  2. Get the news hook and the things only a human can supply
  3. Assemble in AP style
  4. Run the AP checklist
  5. Deliver with a short distribution note

What it can do on your machine

Read from SKILL.md and the folder at commit 98a9991. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • apstylebook.com
    • owl.purdue.edu

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Press Release Generator loads about 3.5k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 1,503 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dmccreary/ibook-skills at commit 98a9991, republished under its MIT licence (© dmccreary). 1,503 words, ~3,530 tokens.

Download SKILL.mdSave it as .claude/skills/press-release-generator/SKILL.md (or your agent's skills folder).
name
press-release-generator
description
Generates an AP-style press release for an intelligent textbook or course milestone — headline, lead, attributed quotes, boilerplate, and media-contact block. Use when pitching to journalists or education trade press; distinct from linkedin-announcement-generator (social post) and readme-generator (GitHub docs).
license
MIT

Press Release Generator

Overview

This skill writes a professional press release that announces an intelligent textbook (or a major milestone, such as a new edition or a tie-in to current events or legislation). It pulls the same canonical book statistics that the README, LinkedIn, and case-study skills use, then reshapes them into the form journalists actually expect: Associated Press (AP) style, inverted-pyramid structure, a genuine news hook, attributed quotes, and a boilerplate.

A press release is not a LinkedIn post with a dateline glued on. The two formats optimize for different readers, and that difference drives almost every instruction below:

  • A LinkedIn post sells scope to peers — metrics forward, emoji, hashtags, first person, enthusiastic.
  • A press release gives a busy editor a story they can run with minimal rewriting — news value forward, human stakes, third person, neutral reported tone, verifiable facts, and a real person to call.

If you find yourself reaching for the LinkedIn voice (📊 bullet dumps, "thrilled to announce," hashtags), stop — that is the wrong instrument.

When to Use This Skill

  • A textbook is being published or has reached a newsworthy milestone
  • An advocacy group, school, library, or nonprofit wants media coverage
  • The content ties to current events, a new law, a public-health need, or a local angle that a regional outlet would care about
  • The user mentions a press release, news release, media advisory, press statement, embargo, or "getting picked up" by the press
  • A conference, launch event, or grant announcement needs a written release

Two operating modes (this matters — read before Step 1)

The skill must work in both of these situations, because the user often wants a release for a book that is already deployed but not checked out locally:

  1. Inside the textbook repo (ideal): docs/learning-graph/book-metrics.json and mkdocs.yml are on disk. Use the canonical metrics directly.
  2. Live site only: you have a published URL but no repo. Derive a verified factual skeleton from the deployed site instead — see Step 2B. Do not invent numbers you cannot see; an editor will fact-check them.

Detect which mode you are in before gathering data, and tell the user which one you used so they know how the figures were sourced.

Workflow

Step 1 — Gather book metadata

From mkdocs.yml (or, in live-site mode, the site <head> and footer):

  • site_name — the textbook title
  • site_url — the live URL (the single most important link in the release)
  • site_description — one-line description
  • repo_url — repository, for a "the project is open source" line if relevant

From docs/course-description.md (if present): audience, prerequisites, subject scope, and learning goals. These shape the "who is this for" sentence.

Step 2A — Metrics from the repo (preferred)

Read the canonical metrics file — never recount content by hand or scrape the brittle book-metrics.md table. This is the same source the other book skills use, so every artifact reports identical numbers.

bash
python3 - <<'PY'
import json, pathlib, sys
p = pathlib.Path("docs/learning-graph/book-metrics.json")
if not p.exists():
    sys.exit("book-metrics.json missing — run bk-generate-book-metrics, or use Step 2B")
print(json.dumps(json.loads(p.read_text())["metrics"], indent=2))
PY

Useful keys: chapters, concepts, glossaryTerms, quizQuestions, microsims, words, equivalentPages, faqs, diagrams, developmentStage.

Step 2B — Facts from the live site (fallback)

When there is no repo, the deployed site still yields hard, checkable facts. The sitemap is the fastest route to an accurate structural skeleton:

bash
curl -s https://SITE/sitemap.xml | grep -o '<loc>[^<]*</loc>' | sed 's/<[^>]*>//g'

From the URL list you can count chapters, simulations (/sims/), quizzes, and named tools, and confirm the presence of a glossary, FAQ, and resources page. Fetch the home page for the title, tagline, publisher, and mission language. Prefer fewer, certain numbers (e.g., "nine chapters and four interactive simulations," both countable from the sitemap) over impressive-but-unverifiable ones. Tell the user which figures came from the sitemap so they can confirm.

Step 3 — Get the news hook and the things only a human can supply

This is the step that separates a real release from a glorified summary, and it is the step the repo cannot answer for you. Interview the user for:

  • The angle — why is this news now? A new resource alone is weak. Strong hooks: ties to a specific law or policy, a public-health statistic, a local "first," a season (back-to-school), a grant, an event, an unmet need the data exposes. Lead with this.
  • Dateline city and state — usually the publishing organization's home city.
  • Release timing — "FOR IMMEDIATE RELEASE" or an embargo ("EMBARGOED UNTIL ...").
  • Spokesperson quote(s) — full name, title, organization, and an approved quote. One or two only (a principal/leader, plus optionally a partner, educator, parent, or subject expert).
  • Boilerplate — the standing "About [Organization]" paragraph.
  • Media contact — name, email, phone.

If the user does not have a quote or contact yet, do not stall and do not invent them — see "Never fabricate sourced facts" below.

Step 4 — Assemble in AP style

Use the structure and rules in the AP Style Reference section. Build the body in inverted-pyramid order: the single most important fact first, then decreasing importance, so an editor can cut from the bottom without losing the story.

Step 5 — Run the AP checklist

Before presenting, verify against the Quality Checklist below. AP-style slips (a superlative in the headline, a wrong month abbreviation, a quote that starts with "I") are exactly what signals "amateur" to an editor.

Step 6 — Deliver with a short distribution note

Present the release as clean, copy-paste-ready text (plain paragraphs, no markdown styling inside the release body — newsrooms want plain text). Follow it with 2–4 lines of practical distribution advice tailored to the topic: which kinds of outlets fit (local dailies, education trade press, the relevant advocacy/professional newsletters, the city/regional desk), and a reminder to send as pasted text plus a PDF, not only an attachment.

Show full SKILL.md (597 more words)Show less

AP Style Reference

Embed this format exactly; it is what newsrooms expect.

Overall structure
FOR IMMEDIATE RELEASE
[or: EMBARGOED UNTIL 9 A.M. CT, MONTH DAY, YEAR]

Headline in Title Case, Present Tense, No Period
Optional Subhead Adding the Second-Most-Important Fact

CITY, State abbrev., Month Day, Year — The lead sentence states WHO did WHAT,
WHEN, WHERE, and WHY in roughly 25–35 words, leading with the news hook.

The second paragraph expands the lead with the most important supporting facts
and context — the scale of the problem, the need, or the data.

"A quote that adds perspective or a forward-looking statement rather than
repeating the facts above," said Full Name, title at Organization. "An optional
second sentence."

Body paragraphs in descending order of importance: what the resource contains,
who it is for, what makes it credible or distinctive, how it is funded or
governed. Weave in two or three verifiable figures — do not dump a metrics list.

"An optional supporting quote from a partner, educator, parent, or expert,"
said Full Name, title at Organization.

A closing paragraph with availability, price (note if free), and the call to
action — the URL.

About [Organization]
[Organization] is a [one-sentence description]. [One or two sentences of
mission/background.] Learn more at [URL].

Media Contact:
Full Name
Email
Phone

###

The closing ### (centered) is the traditional "end of release" mark; editors rely on it to know nothing was truncated.

Headline rules
  • Title case, present tense, active voice, no period, no exclamation point
  • No superlatives ("revolutionary," "groundbreaking," "first-ever," "best")
  • State the actual news element, not a slogan
❌ Amazing New Epilepsy Textbook Will Revolutionize School Safety!
❌ Press Release: A New Resource for Schools
✅ Student-Led Group Releases Free Guide to Help Minnesota Schools Prepare for Seizures
Dateline

Format: CITY, State abbrev., Month Day, Year —

AP abbreviates these months: Jan., Feb., Aug., Sept., Oct., Nov., Dec. March, April, May, June, and July are spelled out. The city is uppercase; the state uses the AP abbreviation (e.g., Minn., Calif., Mass.). Large cities that stand alone without a state in AP style include New York, Chicago, Los Angeles, Boston, and Washington; most others take the state.

ST. PAUL, Minn., June 19, 2026 —
MINNEAPOLIS, Sept. 3, 2026 —
Lead paragraph

Answer the five W's, hook first, in ~25–35 words. Lead with why it matters, not with the existence of a document.

❌ A new website has been launched that contains educational materials about
   epilepsy for use in schools and other settings.
✅ With Minnesota law now requiring every school to be ready for student
   seizures, a student-led advocacy group today released a free, plain-language
   textbook that walks families and staff through seizure first aid, the law,
   and a child's rights.
Quotes
  • One or two quotes maximum; each must be attributable to a real, named person
  • Never begin a quote with "I"
  • Attribution format: "Quote," said Full Name, title at Organization.
  • Quotes add perspective or look forward; they never restate the body facts
❌ "I think this is a really exciting and important new resource," said the team.
✅ "Most seizures at school are handled by teachers, not doctors, so the people
   on the front lines deserve materials they can actually use," said Jane Doe,
   founder of the Epilepsy Data & Advocacy Network.

Never fabricate sourced facts

A press release goes on the public record and editors verify it. A quote attributed to a named person, a contact phone number, a partner organization, or a statistic that turns out to be invented does lasting damage to the author's credibility and cannot be un-published once it is on the wire. So:

  • Never invent a quotation and attribute it to a real person. If the user has no approved quote yet, insert a clearly bracketed placeholder such as [DRAFT QUOTE — replace with approved language from Jane Doe, EDAN founder] and tell the user it must be filled before distribution.
  • Never invent contact details, partners, dollar figures, dates, or stats. Use the journalist's [TK] ("to come") marker — e.g., [TK: media contact email] — for anything the user must supply. Bracketed gaps in a draft are normal and expected; fabricated specifics are not.
  • Prefer verified, modest numbers over impressive guesses. "Nine chapters and four interactive simulations" that you counted beats a word count you cannot confirm.

This is about protecting the user, not bureaucratic caution — frame any gaps to them plainly so they know exactly what to approve before sending.

Quality Checklist

  • Headline: title case, present tense, no period, no superlatives, real news
  • Dateline present with correct AP month style
  • Lead answers the five W's in ~25–35 words and leads with the hook
  • Inverted pyramid: most important first, cuttable from the bottom
  • Two or three verified figures woven in — not a metrics dump
  • Every quote attributed to a named, real person (or clearly marked draft)
  • No quote begins with "I"
  • "About [Organization]" boilerplate present
  • Media-contact block present (or [TK] placeholders flagged)
  • The live URL appears and is correct
  • Neutral reported tone — no hashtags, no emoji, no first person
  • Closes with ###
  • Every [TK]/[DRAFT ...] placeholder called out to the user

Example skeleton (generic — adapt, do not copy verbatim)

FOR IMMEDIATE RELEASE

Nonprofit Releases Free Interactive Textbook on [Topic] for [Audience]

CITY, State., Month Day, Year — [Lead: hook + five W's in 25–35 words.]

[Second paragraph: the need or the data behind the news.]

"[Perspective quote that does not restate the facts]," said Full Name, title
at Organization.

[Body: what the resource includes — chapters, interactive simulations,
glossary, quizzes — woven with two or three verified figures and who it serves.]

[Closing: free and open, where to find it, the URL.]

About [Organization]
[One-sentence description. Mission sentence.] Learn more at [URL].

Media Contact:
Full Name
Email
Phone

###

Customization

  • Tone within AP bounds: straight-news vs. feature/human-interest lead
  • Audience emphasis: education desk, health desk, local/regional desk, or a trade/advocacy newsletter — adjust the angle and the supporting facts
  • Length: a tight one-page release (default) or a longer version with an extra supporting quote and a "background" paragraph
  • Companion assets: offer to generate a matching media advisory (shorter, event-style) or a tip sheet on request
  • linkedin-announcement-generator — social-post version of the same news
  • readme-generator — GitHub project documentation
  • book-installer (book-metrics guide) / bk-generate-book-metrics — produces the book-metrics.json this skill reads in repo mode

Resources

© dmccreary, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/archived/press-release-generator of dmccreary/ibook-skills.

Open the folder on GitHubat commit 98a9991

Compare with similar skills

Press Release Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Press Release Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Press Release Generator this skilldmccreary/ibook-skills105—~3.5kAutomated safety check: PassMIT
Content Writer Agentmastra-ai/mastra29k—~1.3kAutomated safety check: PassCustom licence
Linkedin Publishereunomia-bpf/eunomia.dev236—~1.1kAutomated safety check: PassMIT
Product Update LoggerVarnan-Tech/opendirectory674—~3.9kAutomated safety check: PassMIT
Linkedin Post GeneratorVarnan-Tech/opendirectory674—~2.6kAutomated safety check: NotesMIT
26 Thought Leadership Content Globalminhnv0807/ai-business-skills609—~4.7kAutomated safety check: PassMIT

Similar skills

  • Content Writer Agent

    mastra-ai/mastra

    Authoring playbook for building agents that draft written content — blog posts, marketing copy, social media posts, newsletters, product descriptions, landing pages, or ad copy.

    29k GitHub stars~1.3k tokensUpdated today
    Writing & ContentAuto-check passed
  • Linkedin Publisher

    eunomia-bpf/eunomia.dev

    Prepare or publish eunomia.dev content for LinkedIn posts, articles, carousels, and professional updates.

    236 GitHub stars~1.1k tokensUpdated today
    Writing & ContentAuto-check passed
  • Product Update Logger

    Varnan-Tech/opendirectory

    Tell the skill what your product shipped. An agent skill from Varnan-Tech/opendirectory.

    674 GitHub stars~3.9k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Linkedin Post Generator

    Varnan-Tech/opendirectory

    Converts any content, blog post URL, pasted article, GitHub PR description, or a description of something built, into a formatted LinkedIn post with proper hook, story arc, and formatting.

    674 GitHub stars~2.6k tokensUpdated 1 mo ago
    Writing & ContentAuto-check: notes
  • 26 Thought Leadership Content Global

    minhnv0807/ai-business-skills

    A skill your agent uses when a PERSONAL brand needs long-form WRITTEN content that builds authority rather than sells — LinkedIn posts, X threads, Substack and Medium essays, using PAS-Insight for…

    609 GitHub stars~4.7k tokensUpdated 28 days ago
    Writing & ContentAuto-check passed
  • 37 Social Caption Global

    minhnv0807/ai-business-skills

    A skill your agent uses when the user needs ORGANIC social captions for Instagram, LinkedIn, TikTok, Facebook, or X — hook, mobile-readable body, two A/B variants, platform-correct hashtags, written…

    609 GitHub stars~2.2k tokensUpdated 28 days ago
    Writing & ContentAuto-check passed

More from dmccreary/ibook-skills

All 32 skills in this repo
  • Book Publisher

    dmccreary/ibook-skills

    Publishes and promotes a finished intelligent textbook - GitHub README with badges and site statistics, LinkedIn announcement posts, LinkedIn carousel document posts (PPTX/PDF slideshows), and…

    105 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Linkedin Carousel Generator

    dmccreary/ibook-skills

    Generates a 13-slide LinkedIn carousel (a "document post" — PPTX/PDF) that showcases an intelligent textbook's key features, with real screenshots, mascot art, and metrics pulled from the project.

    105 GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Add Xapi Events To Microsim

    dmccreary/ibook-skills

    A skill your agent uses when the user wants an existing MicroSim or chapter quiz to record what students do with it.

    105 GitHub stars~5.6k tokensUpdated today
    Auto-check passed
  • Diagram Reports Generator

    dmccreary/ibook-skills

    Generates a status report of all diagrams and MicroSims across an intelligent textbook's chapters, including difficulty, Bloom's level, and UI complexity.

    105 GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • DOCX To Web Publisher

    dmccreary/ibook-skills

    Converts .docx files (papers, briefs, reports) into styled React component pages in a Next.js content-catalog site.

    105 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Book Media Generator

    dmccreary/ibook-skills

    Generates media for intelligent textbooks - slide decks and presentations (MARP web decks in docs/slides/ or PowerPoint .pptx lecture downloads), illustrated stories and graphic novels…

    105 GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Works with

Questions about Press Release Generator

What does Press Release Generator do?

Generates an AP-style press release for an intelligent textbook or course milestone — headline, lead, attributed quotes, boilerplate, and media-contact block. Press Release Generator is an agent skill from dmccreary/ibook-skills. Generates an AP-style press release for an intelligent textbook or course milestone — headline, lead, attributed quotes, boilerplate, and media-contact block.

When should I use Press Release Generator?

Press Release Generator fits situations like: pitching to journalists; education trade press; distinct from linkedin-announcement-generator (social post) and readme-generator (GitHub docs).

How do I install Press Release Generator in Claude Code?

Run `npx skills add dmccreary/ibook-skills --skill press-release-generator -a claude-code`. Or copy the skill folder (skills/archived/press-release-generator in dmccreary/ibook-skills) into .claude/skills/press-release-generator in your project. Claude Code loads it when a task matches its description.

How do I install Press Release Generator in Codex?

Run `npx skills add dmccreary/ibook-skills --skill press-release-generator -a codex`. Or copy the skill folder (skills/archived/press-release-generator in dmccreary/ibook-skills) into .agents/skills/press-release-generator in your project. Codex loads it when a task matches its description.

Can I use Press Release Generator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dmccreary/ibook-skills --skill press-release-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/press-release-generator, .gemini/skills/press-release-generator, .github/skills/press-release-generator and .opencode/skills/press-release-generator in your project.

What does Press Release Generator need to run?

Going by SKILL.md and its folder, Press Release Generator needs the command-line tools its instructions call (python3 and curl). Our summary lists: Python 3.

Does Press Release Generator access the network?

SKILL.md names 2 domains. As links in the text: apstylebook.com and owl.purdue.edu. This is read from the text; nothing was executed.

Is Press Release Generator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Press Release Generator use?

Press Release Generator is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Press Release Generator use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Press Release Generator?

Skills that share tags, products or a category with Press Release Generator: Content Writer Agent (mastra-ai/mastra, 29k stars), Linkedin Publisher (eunomia-bpf/eunomia.dev, 236 stars), Product Update Logger (Varnan-Tech/opendirectory, 674 stars) and Linkedin Post Generator (Varnan-Tech/opendirectory, 674 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Press Release Generator?

dmccreary (a GitHub user) maintains it in dmccreary/ibook-skills, which has 105 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 9, 2026.

Source: dmccreary/ibook-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.