---
name: draft-roast
description: Roasts a piece of writing (email, Slack post, doc, one-pager, landing page) by measuring it with scripts and critiquing it for buried ledes, buzzwords, vague claims, long sentences, and missing asks. Use when the user asks to review, critique, roast, tighten, or sanity-check a draft before sending it. Also triggers on casual requests like "does this read ok", "is this too long", "would you send this", "make this land", or "check this before I post it in Slack." Do NOT use for writing a new draft from scratch, translation, or grammar-only proofreading.
allowed-tools: Bash(cat:*), Bash(wc:*), Bash(grep:*), Bash(tr:*), Bash(awk:*), Bash(sort:*), Bash(uniq:*), Bash(head:*)
---

# Draft Roast

## Context
Draft: !`cat draft.md 2>/dev/null || echo "no draft.md in this folder"`
Word count: !`cat draft.md 2>/dev/null | wc -w`
Opening lines: !`grep -v '^[[:space:]]*$' draft.md 2>/dev/null | head -2`
Longest sentences: !`cat draft.md 2>/dev/null | tr '\n' ' ' | tr '.?\041' '\n\n\n' | awk 'NF {print NF " words:" $0}' | sort -rn | head -3`
Buzzwords: !`grep -oiwE 'leverag(e|ed|ing)|seamless(ly)?|robust|synerg(y|ies)|cutting-edge|best-in-class|game-changer|revolutioniz(e|es|ing)|empower(s|ing)?|unlock(s|ing)?|streamlin(e|ed|es)|holistic|paradigm' draft.md 2>/dev/null | tr 'A-Z' 'a-z' | sort | uniq -c | sort -rn`
Hedge words: !`grep -oiwE 'just|really|very|actually|basically|quite|truly|potentially' draft.md 2>/dev/null | tr 'A-Z' 'a-z' | sort | uniq -c | sort -rn`
Passive voice: !`grep -oiwE '(is|are|was|were|be|been|being) [a-z]+ed' draft.md 2>/dev/null | head -20`
Longest paragraphs: !`awk 'BEGIN{RS=""} {print "paragraph " NR ": " NF " words"}' draft.md 2>/dev/null | sort -t: -k2 -rn | head -3`
Links: !`grep -nE 'https?://|\]\(' draft.md 2>/dev/null || echo "none found"`

If any script returns no output, skip that signal and note "no data available." Do not guess.

If the lines above show raw commands instead of output, you can't run scripts here. Ask the user to paste the draft, then do the counting yourself.

## Constraints
- Never be vague. Quote the exact sentence as evidence.
- Every finding must include: what's wrong, evidence, severity, fix (a rewritten line, not advice)
- Never rewrite the whole draft. Fix the worst lines only.
- Never flag grammar or spelling nits unless they change the meaning
- Maximum 7 findings, ordered by severity
- Only make findings backed by the text or the script output. Never invent facts about the product, the company, or the reader.
- Prioritize by what costs the reader most: a buried ask beats a stray buzzword

## Workflow
Work through these phases internally before presenting the final report. Internal phasing lets you filter weak findings before presenting, so the user sees only high-confidence results.
1. Read the script output. Summarize length, the opening, and the worst offenders.
2. Categorize findings by type (buried lede, missing ask, vague claim, jargon, length, tone). Score severity. Run self-assessment. Drop or flag weak findings.
3. Write the fixes. Adapt output to the detected audience. Run constraints checklist.

Present the final assessment as one complete report. Only stop for user input if you can't tell who the draft is for and the answer would change your findings.

## Self-Assessment
Rate each finding before presenting:
- Evidence quality (1-10): Is this backed by a quote or script output, or by inference?
- Severity accuracy (1-10): Will this hurt the reader, or is it just a style preference?
- Actionability (1-10): Could the author paste your fix in right now?

If any finding scores below 6 on evidence quality, drop it or flag as "needs investigation."
Show the scores for each finding so the reader can see your reasoning.

## Audience Detection
Work out who will read the draft and adapt the final output in Phase 3:
- **Customers** (launch email, landing page): Roast hardest on buzzwords and vague claims. Every claim needs a concrete detail the reader can check.
- **Coworkers** (Slack post, team update): Roast hardest on buried ledes and missing asks. The first line should say what changed and what to do.
- **Decision makers** (proposal, one-pager): Roast hardest on missing numbers, owners, and dates. Flag every "to be determined."
If unclear, default to coworkers. If the user says "this is for customers" or "this goes to leadership," switch.

## Scoring Guide
- 9-10: Ready to send. Nothing to fix.
- 7-8: A few weak lines. Send after a quick pass.
- 5-6: The point is in there, but the reader has to dig for it.
- 3-4: The reader will skim it and miss the point.
- 1-2: Start over with the one sentence that matters.

## Structure
1. One-line verdict (with overall score out of 10)
2. Top findings (max 7), each with: issue, evidence, severity, fix, and confidence scores
3. Confidence summary (how many findings were high-confidence vs flagged)
4. One thing the draft does well
5. Suggested first line (the single highest-leverage fix)

**Example finding (coworkers):**
**Issue:** Buried lede
**Evidence:** The only change that affects anyone is in paragraph 5 of 6: "Also, starting Monday the espresso machine is being removed permanently and will not be replaced."
**Severity:** High
**Confidence:** Evidence 10/10, Severity 9/10, Actionability 9/10
**Fix:** Open with it: "Heads up: the espresso machine goes away Monday. Drip coffee stays. Questions in thread."

**Same finding adapted for decision makers:**
**Issue:** The decision isn't stated or justified
**Evidence:** "starting Monday the espresso machine is being removed permanently and will not be replaced." No reason, owner, or alternative is given.
**Severity:** High
**Fix:** "We're removing the espresso machine Monday to cut [NEEDS REASON]. Owner: [NAME]. Drip coffee stays."
