
Press Release
Write a professional, AP-style press release ready to send to journalists: it first locks the news angle, the five W's, the approved quote(s), and the boilerplate, then drafts the release in the standard format — dateline, inverted-pyramid lede, supporting body, quotes, boilerplate, and media contact — then a review pass enforces newsworthiness, factual accuracy, and house style. Covers press release, news announcement, PR writing, media release, product launch announcement, and corporate communications. The scope-first ordering is essential: a small model that pins the angle and quotes before drafting avoids the soft, promotional release that buries the news and no editor will run.
Steps
Entry step: scope. Each step names the specialist role it wants; the full working prompt is expandable.
- News scopeplannerentry
lock the angle, five W's, approved quotes, and boilerplate
Show working prompt
1) State the NEWS in one sentence — the actual announcement (launch, funding, partnership, milestone) and why it is newsworthy NOW. 2) Capture the five W's: who, what, when, where, why-it-matters. 3) Draft or confirm 1-2 attributable quotes (speaker name + title) that add insight, not fluff. 4) Write the company boilerplate (2-3 sentences) and the media contact line (name, email). 5) Decide the headline (active, specific, <=12 words) and subhead. Write an acceptance-criteria checklist (e.g. 'lede answers who/what/when/where in the first 1-2 sentences'; 'inverted pyramid — most important first'; 'at least one attributed quote'; 'includes dateline, boilerplate, contact, and the ### end mark'; 'factual, non-promotional tone'). Use write_task_note for the news brief + checklist, and write the same to the produces path. No release prose yet.
- Draft the releasecopywriter
write the release in standard inverted-pyramid format
Show working prompt
Write the press release in standard format. 1) Headline (active, specific) and an optional subhead. 2) Dateline: CITY, State, Month Day, Year — then the lede sentence answering who/what/when/where. 3) Body in inverted pyramid: most newsworthy facts first, supporting detail after, in short paragraphs. 4) Integrate the approved quote(s) with proper attribution. 5) Boilerplate paragraph ('About [Company]'). 6) Media contact block. 7) End with a centered '###'. Keep the tone factual and journalistic — report the news, do not sell it. Output as markdown. Save to the produces path and note which checklist items pass. - Editorial reviewreviewer
enforce newsworthiness, accuracy, and AP-style format
Show working prompt
Review and edit the release in place against the checklist. 1) Read the lede alone: does it convey the news and answer who/what/when/where? If it buries the news, rewrite it. 2) Confirm inverted-pyramid structure — could an editor cut from the bottom and still have a coherent story? 3) Strip promotional adjectives and marketing hype; keep it factual. 4) Verify every fact, name, title, and date; flag anything unverifiable. 5) Confirm all structural elements are present: headline, dateline, quote, boilerplate, contact, ###. Rewrite weak passages directly. Save the polished release to the produces path and note any criteria still unmet.
- Evaluatereviewer
Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.
Show working prompt
Read press-release.md and grade against the checklist. Check EACH and write PASS/FAIL: (a) the lede answers who/what/when/where in the first 1-2 sentences; (b) inverted-pyramid structure (most important first); (c) at least one properly attributed quote; (d) dateline, boilerplate, media contact, and a closing ### are all present; (e) factual, non-promotional tone with no unverified claims; (f) headline is active and specific. A release that reads like an ad or buries the news FAILS — loop back to draft. Then route — this is the whole point of the loop: - **Every criterion PASSES →** call `advance_task_step({ ref, stepId: "evaluate", next: "finish" })`. - **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: "evaluate", next: "draft" })` to loop back. The builder fixes exactly those gaps. Never route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in. - Finishdeveloper
All acceptance criteria met. Stamp a short summary and report DONE.
Show working prompt
Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.
Triggers
Phrases that suggest this craftbook to a crew.
- write a press release
- news announcement
- media release
- product launch pr
- press announcement
Source
View this craftbook on GitHub · MIT license