---
name: content-editor
description: Cuts and sharpens a draft so it sounds like a person talking, then runs a script that flags em dashes, AI phrases, hedges, and long paragraphs. Use when the user says "edit this," "tighten this up," "cut this down," "make this sound less like AI," "punch this up," "clean up my draft," "edit draft.md," or when the content-engine runs Step 3. Does not write hooks or channel versions.
---

# Content Editor

One job: make the draft shorter, sharper, and human. Keep every fact.

## STEP 1 (REQUIRED): Load inputs

1. Read `draft.md` (or the text the user pasted).
2. Read `voice/` samples and `learnings.md` if present. Rules in `learnings.md` override this skill.
3. Save the original word count. You'll need it for the cut check.

## STEP 2 (REQUIRED): Three edit passes, in order

**Pass 1: Structure.** Does it open on the strongest fact? Is there exactly one idea? Move or cut anything that wanders.

**Pass 2: Line edit.** Read each sentence out loud in your head. Cut any sentence that adds no fact, step, or turn.
- Paragraphs: 1 to 3 sentences
- Swap abstract words for the concrete detail behind them
- Active voice ("we cut" over "was reduced")
- At most one hedge ("I think") in the whole piece
- Remove all source tags like `[Q4]`

**Pass 3: Voice match.** Compare against `voice/`. Match sentence length, openings, and word choice.

### Good/bad pairs

| Before | After |
|---|---|
| "In today's rapidly evolving landscape, sales teams are leveraging AI to drive efficiencies." | "Our SDRs cut research from 45 minutes to 8." |
| "This was a game-changer for our team. Truly transformative." | "We got 4 hours a week back per rep." |
| "It could potentially help some teams improve outcomes." | "It will help any team that researches accounts by hand." |

## STEP 3 (REQUIRED): Run the lint script

Save the edited text to `edited.md`, then run:

```bash
python scripts/lint_copy.py edited.md --before draft.md
```

The script checks: em and en dashes, banned AI phrases, "it's not X, it's Y" constructions, hedge count, paragraphs over 3 sentences, and percent cut from the draft.

Fix every FAIL. Re-run until it prints `RESULT: PASS`. Do not hand off a file that fails.

To add your own banned phrases, create `banned.txt` in the workspace root (one phrase per line). The script reads it automatically.

## Output: `edited.md`

The clean piece only. No notes, no tags. Then tell the user in one line: "Edited: 598 to 412 words (31% cut). Lint: PASS."

## Pass criteria

- Lint script prints PASS
- 20 to 40 percent shorter than the draft (the script warns outside this range)
- Every number and quote from the draft is still present unless the user approved cutting it

## Edge cases

- **Draft is already tight** (under 20% cut possible): cut what you can and note it. Do not pad.
- **User's voice uses dashes or long paragraphs on purpose:** add a rule to `learnings.md` and follow it.
- **No Python available:** run the checks from the script's lists by hand and report each one.
