{
  "schema": "leumas.docs.page/1",
  "id": "adapter:domain/press-release",
  "slug": "adapters/domain/press-release",
  "kind": "capabilities",
  "bucket": "package",
  "title": "press-release",
  "name": "Press Release",
  "eyebrow": null,
  "chip": null,
  "summary": "Intelligent press-release drafting microservice: turn a who/what/when/where/quote brief into a fully structured, AP-style press release (dateline, lead paragraph, body, boilerplate, media contact...",
  "keywords": [
    "press-release",
    "ap-style",
    "dateline",
    "apstylecheck",
    "oxford",
    "checker",
    "executive",
    "subhead"
  ],
  "audience": "both",
  "funnel": {
    "product": null,
    "cta": null
  },
  "body": "# press-release\n\nIntelligent press-release drafting microservice. Turns a `who / what / when / where / quote` brief\ninto a fully structured, AP-style press release, and provides the supporting building blocks\n(boilerplate, quote formatting, headline, subhead) plus a rule-based AP-style linter.\n\nEvery tool has a **deterministic template/rule core that runs fully offline** (AP dateline formatting,\ninverted-pyramid lead assembly, boilerplate template, a rule-based AP-style checker). `draft`,\n`headline` and `subhead` additionally have an **optional LLM path** that enriches the prose and\nsilently falls back to the template — results tagged `{ mode: 'heuristic' | 'llm' }`.\n\n## Tools\n\n| Tool | Args | Returns |\n|---|---|---|\n| `draft` | `{ who, what, when?, where?, quote?, speaker?, boilerplate?, details?, options? }` | full structured release + assembled `text` |\n| `boilerplate` | `{ who, details?:{ description, url, founded, industry } }` | `{ text }` (About-X paragraph) |\n| `quote` | `{ quote, speaker?:{name,title}, who? }` | `{ text, attribution, speaker }` |\n| `apStyleCheck` | `{ text }` | `{ score, clean, flags:[{ rule, level, message }] }` |\n| `headline` | `{ what, who?, options? }` | `{ headline }` |\n| `subhead` | `{ what, who?, options? }` | `{ subhead }` |\n\n`speaker` may be a string name or `{ name, title }`. `when` accepts ISO or free text; the dateline is\nAP-formatted (Jan./Feb./Aug./Sept./Oct./Nov./Dec. abbreviate with a date).\n\n## Example\n\n```js\nimport pack from './index.js';\n\nawait pack.adapters.draft({\n  who: 'Acme Corp', what: 'the launch of its AI assistant',\n  when: '2026-03-04', where: 'San Francisco',\n  quote: 'This changes how our customers work. We could not be prouder.',\n  speaker: { name: 'Jane Doe', title: 'chief executive officer' },\n  details: { url: 'https://acme.example', contact: { name: 'PR Team', email: 'press@acme.example' } },\n});\n// → { mode, dateline:'SAN FRANCISCO, March 4, 2026', lead, quote, boilerplate, text:'FOR IMMEDIATE RELEASE …###…' }\n\npack.adapters.apStyleCheck({ text: 'The company grew 5 percent over 3 years, and shipped fast!' });\n// → flags: numbers-under-10, \"percent\"→\"%\", Oxford comma, exclamation point, over→more than\n```\n\n## AP-style checker rules\n\nNumbers under 10 spelled out · `%` vs \"percent\" · serial/Oxford comma omitted · `&`→\"and\" in body ·\nmonth abbreviation with a date · lowercase `a.m.`/`p.m.` (+ noon/midnight) · lowercase titles after a\nname · no two-letter state postal codes · no exclamation points · \"more than\" vs \"over\".\n\n## DRY boundaries\n\n- **Not `landing-copy`** (marketing landing blocks), **not `seo`**, **not `a-templates`** (generic\n  templating). `apStyleCheck` is a purpose-built AP-style linter, distinct from any grammar/nlp tool.\n- Self-contained: the only cross-file import is `../_shared/llm.js` for the optional AI path.\n",
  "source": {
    "path": "shared/engines/adapters/domain/press-release/README.md",
    "blobSha": "",
    "commit": "",
    "committedAt": "",
    "provenance": "no-git",
    "bytes": 3064,
    "hash": "eb2b1cf0e64153f99e8977ab0e67fc13d3a67c27"
  },
  "urls": {
    "html": "/p/adapters/domain/press-release",
    "json": "/docs/adapters/domain/press-release.json",
    "md": "/docs/adapters/domain/press-release.md"
  },
  "links": {
    "composes": [],
    "usedBy": [],
    "product": [],
    "howTo": [],
    "skills": []
  }
}
