
Press Release Writer
Decide whether news is news, then write it. Opens with a newsworthiness gate that scores whether a thing earns a release at all — two tracks (corporate/relationship vs invention/category) — and routes it to changelog / blog / newsroom / wire. What qualifies becomes a wire-grade, substantiated, compliance-safe release: the five-part standard (dateline · 5W1H lead · quote sandwich · boilerplate · contact), named-source quotes, contribution-never-conferred- status framing (REACH/CLP), six release types, a human-owned embargo gate, and scheduling that cannot break an embargo. Emits STRUCTURED fields mapped to prnow.io. Composes copy-engine + voice-builder + @spideriq/publish-skills. Guidance-only. Multilingual EN/DE/HE/RU/RO/FR/ES. Backed by 10 sourced exemplars + 6 templates + 22 learnings + 11 enforcement scripts.
I make real news — products ship, clients win, regulatory milestones land — and I had no repeatable way to turn an event into a wire-grade release a skeptical journalist (or an AI answer-engine) won't bin on sight. A press release isn't blog copy: it has a strict format, a wire designation, a hard substantiation bar, and — for a compliance agency — a line between a regulatory contribution and a conferred status I'm not allowed to claim. press-release-writer owns that discipline and composes the rest. It knows the five-part standard, the six release types, and the two gates that matter: it never writes its own approval, and it can never break an embargo (a future embargo routes to press_schedule, full stop). copy-engine writes the sentences, voice-builder carries the company's register, and @spideriq/publish-skills ships it — release, schedule, boilerplate library, contact directory, press kit. Two rounds of research taught it the non-obvious parts. The lead is the whole story, not a hook — answer the five Ws or a journalist reads no further. Never fabricate a quote or a source; the honest output for an unsourceable number is to delete it. And the 2026 edge is structure, not length — a press release is now an owned artifact that LLM answer-engines cite, so it stays press-brief (300–500 words) and machine-parseable, never padded. Backed by 10 sourced real exemplars, 6 templates, 22 learnings, and 11 scripts that print PASS/FAIL with numbers the agent can't fudge.
Features5
Dateline, 5W1H lead, quote sandwich, boilerplate, contact — a script checks every part is present and parseable. A journalist who can't find your dateline treats the release as amateur and bins it.
The instant a claim becomes measurable it needs evidence. 'Nation's largest' and 'award-winning' fail; 'won the Red Dot Award' and '$27M led by Khosla' pass. A number you can't source is deleted, never softened.
Every quote is a named, real person — full name and title — who approved it. 'A spokesperson said' is unusable to a reporter. For awards, it quotes the awarder; for funding, the investor.
A future-dated embargo routes to press_schedule, never press_publish. The designation is all-caps, future-dated, timezone-stamped. An embargo break is irreversible — so a machine is never allowed to make one.
For regulated products it writes 'supported the REACH dossier', never 'made them compliant'. A status is conferred by a regulator — never by a company or its agency.
Videos1 video
DemoPress Release Writer · Demo video
Demo · SpiderMediaArticles about Press Release Writer2 articles
I checked 30 newsrooms for FOR IMMEDIATE RELEASE. None of them print it.
opvs.ai23 Jul 2026I checked 30 newsrooms for FOR IMMEDIATE RELEASE. None of them print it.
The most famous line in PR is gone from every modern newsroom I checked, and so is the ### end marker. Not because the press release died, but because its audience changed: answer engines now read it and cite it permanently, which moves the whole quality bar.
Videos1 video
DemoPress Release Writer · Demo video
Demo · SpiderMediaArticles about Press Release Writer2 articles
Showing all 2
SKILL.mdthe file your agent reads
SKILL.md loads when you open this tab.
What's new4 releases · newest first · from the package's CHANGELOG
v0.2.12026-11-03Latest
Film patch (`DAS2-45`). No behaviour change. - **Marketplace demo video (`media.demo_video_url`)** — added the 37s narrated chalkboard explainer film (`press-release-writer-0.2.0-captioned.mp4`).
v0.2.02026-07-24
**The newsworthiness gate.** The skill now decides *whether a thing earns a release at all* before it writes one. - **NEW `scripts/score-newsworthiness.mjs`** — deterministic, evidence-required scorer that prints a receipt (which signals fired) and a route: `0–2 changelog only · 3–4 blog · 5–6 newsroom · 7+ wire`. - **Two tracks, score = the higher.** Track A (corporate/relationship: external party · conferral · sourced number · time anchor · magnitude · first) and **Track B (invention/category: NEW PRIMITIVE · prior-art anchor · number with method · independent adopter · felt problem)**. Track B exists because a single-track rubric scores *invention* at almost zero — a new format has no client, no investor, no awarder — which is exactly backwards for a technical company. - **NEW `references/newsworthiness-rubric.md`** + **`recipes/newsworthiness-gate.md`** — the rubric, the tiers, the hard gates, and worked calibration. - **Hard gates override the score** — not publicly usable today → blocked from wire (a spec nobody can read is a teaser); no checkable sourced fact → blocked from wire, with the message naming what would unlock it; crisis skips scoring and is always human-gated. - **SKILL.md Step 0** — the gate runs before any drafting. If it routes to `changelog`, the skill says so and STOPS. - Wired into `/skill-propagate` (Phase 7.0) and `/propagate` (Seeder step 0) as the surface-routing filter.
v0.1.12026-07-23
Propagation patch. No behaviour change. - **Marketplace card media** — hero + 3 panel screenshots added (dark-board chalk). Rendered once at propagation and reused as the blog cover and listing hero, per the build-does-text / propagate-does-pixels split. - **Fixed an undercount in `marketing.long_description`** — it read "18 learnings, 9 scripts"; the bundle actually ships 21 and 10.
v0.1.02026-07-23
First release. Guidance-only content-type skill; completes the trio with `case-studies` + `changelog-writer`. - **Five-part standard** — dateline · 5W1H lead · quote sandwich · boilerplate · contact, enforced by `verify-structure-completeness`. - **Six release types** — product-launch · funding-announcement · regulated-industry · award-recognition · crisis-response · embargoed-coordinated (one recipe each). - **10 enforcement scripts** — structure · quote-attribution · factual-substantiation · compliance-claims · embargo-header · boilerplate-presence · contact-block · length-bounds · **prnow-fields** · coordination. Each prints PASS/FAIL. - **prnow.io wire integration (first)** — emits STRUCTURED fields mapped to prnow's contract (title ≥5 words · content 250–1,250 words · metaTitle ≤60 · categories 1–5 · country+city); `verify-prnow-fields` gates `channel: newswire`. Dropped the dead "FOR IMMEDIATE RELEASE" / "###" conventions (structured fields, per SpiderPublish + prnow). - **Embargo ≠ schedule** — a timed public launch → `press_schedule` (future UTC); a journalist preview → `embargoPressRelease` (mints tokens). prnow `/submit` is fire-immediate; SpiderPublish holds the timing. Never `press_publish` a future release. - **Compliance framing** — contribution-not-status (REACH/CLP/biocides) + SEC/PSLRA forward-looking overlay for funding + a self-congratulation soft-warn (thrilled/excited/delighted…). - **Length (press best-practice, not SEO)** — default `standard` 300–500 words; headline gated 70–110 chars. - **16 registry items** — 10 sourced real exemplars + 6 templates (3 boilerplates · wire headers · quote good/bad · compliance-safe framings). - **18 learnings** — incl. the 2026 finding that a press release is an owned SEO/AEO artifact LLMs cite (edge is structure, not length) + the AI-slop warning. - **Composes** — copy-engine · voice-builder · @spideriq/publish-skills `press_*` + the 4 OPVS coordination skills. - Multilingual EN/DE/HE/RU/RO/FR/ES.
Showing all 4






