
Multi-Channel Broadcast Announcement
Adapt a single announcement (launch, policy change, maintenance window, org news) into channel-tailored variants — email, Slack/Teams post, status-page note, and a short SMS/push — that carry one consistent core message at the right length and tone for each surface. Scopes the core message and the per-channel constraints FIRST (the single source of truth, the CTA, character/format limits and tone per channel, the must-include facts), then a copywriter writes every variant from that locked core so nothing contradicts across channels. Scoping the core before adapting is what keeps the facts, dates, and CTA identical everywhere while the voice fits each surface. Use for announcements, multi-channel comms, launch messaging, maintenance notices, and broadcasting one message everywhere.
Steps
Entry step: scope. Each step names the specialist role it wants; the full working prompt is expandable.
- Scope the messageplannerentry
lock the core message, CTA, and per-channel constraints
Show working prompt
Define the announcement's single source of truth before writing variants. (1) Write the CORE message: the one thing being announced, the must-include facts (what, when/effective date, who's affected, why), and the single CTA. (2) Lock the channel list and each channel's constraints: email (subject + ~150 words, formal-friendly), Slack/Teams (~60 words, conversational, threaded details), status-page note (~40 words, neutral/factual), SMS/push (≤160 chars, urgent-but-calm, link only). (3) State the tone per channel and any compliance/do-not-say constraints. Write an acceptance-criteria checklist ('a variant exists for every channel', 'the core facts/dates/CTA are identical across all variants', 'each variant respects its length/format limit', 'each variant matches its channel tone', 'no variant contradicts another') plus the core message + per-channel constraint table to notes/scope.md via write_task_note AND the produces path. No variants yet. - Write the variantscopywriter
adapt the core into channel-tailored variants
Show working prompt
Write announcement.md with one labeled section per channel, all derived from the locked core. (1) Email: a subject line plus a ~150-word body covering all must-include facts and the CTA, formal-friendly. (2) Slack/Teams: ~60 conversational words with the headline + CTA and a note that details follow. (3) Status-page: ~40 neutral, factual words stating what/when/impact. (4) SMS/push: ≤160 characters, the essential fact + CTA link, calm. Keep the facts, the effective date, and the CTA WORD-FOR-WORD consistent (where the medium allows) across every variant — only length and voice change. Stay within each length limit; count characters for SMS. Invent no facts beyond the core. On a loop-back fix only the flagged variants. Write the path and the per-channel lengths to notes via write_task_note.
- Evaluatereviewer
Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.
Show working prompt
QA announcement.md against the locked criteria. (1) Confirm a variant exists for every channel in scope. (2) Cross-check the core facts, the effective date, and the CTA across all variants — any contradiction or drifted date/CTA is FAIL. (3) Check each variant against its length/format limit (count the SMS characters, ~word counts for the others). (4) Read each for channel-appropriate tone. (5) Confirm no fact was invented beyond the locked core. Write PASS/FAIL per criterion with the specific variants at fault. 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: "write" })` 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.
- multi-channel announcement
- broadcast a message
- launch announcement
- maintenance notice
- announce this everywhere
Source
View this craftbook on GitHub · MIT license