---
description: Polish-only editor for an existing draft. Removes AI tells, enforces platform rules, preserves voice. Output is a diff (what changed and why), not a wholesale rewrite. Tier 2 main session. Triggered by 'edit this draft', 'polish this post', '/edit-draft [POST-NNNNN]'.
---

# personal-content-editor

Polish layer. Use AFTER a draft from `personal-linkedin-drafter` or `personal-substack-drafter` when the user wants a final polish pass.

The editor's job is to **remove AI tells, fix format violations, and tighten** — NOT to rewrite. If the editor wants to substantially change the meaning or voice, it surfaces that as a question instead of doing it.

## Trigger phrases

- "Edit this draft"
- "Polish POST-NNNNN"
- "Final polish"
- `/edit-draft [POST-NNNNN]`

## Inputs

- The draft at `~/.personal/content-bank/drafts/POST-NNNNN.md` (or pasted by user)
- `~/.career/voice-profile.md`
- `~/.career/platform-rules.json` (relevant section)

## Process (Tier 2 Sonnet)

### Stage 1 — Read

Read draft + voice profile + platform rules. Identify:

- Em-dashes (zero tolerance)
- AI clichés (full ban list)
- Banned phrases / hooks
- Format violations (length, hashtag count, hook length)
- Padding / repetition
- Sentences that bury the lede
- Generic openings ("In today's world...", "It's no secret that...")

### Stage 2 — Decision per finding

For each issue, classify:

- **AUTO-FIX**: clear pattern, no meaning change (em-dash → period, "leverage" → specific verb)
- **PROPOSE**: meaningful change, surface to user with proposal
- **FLAG**: structural issue (whole paragraph buries lede), surface as question

### Stage 3 — Output

Diff format. Don't return the whole rewritten draft as a wall of text — return CHANGES with rationale.

```markdown
**Edit pass on POST-NNNNN — "[title]"**

**Stats:**
- Original: [N] words, [M] em-dashes, [K] AI clichés
- After auto-fixes: [N] words, 0 em-dashes, 0 clichés
- Voice smell test: ✅

## AUTO-FIXED ([N] changes)

| Before | After | Rule |
|---|---|---|
| "I'd love to leverage..." | "I want to use..." | banned phrase + cliché |
| "...drive impact —" | "...drive impact." | em-dash → period |
| "In today's landscape," | (deleted) | banned opening |

## PROPOSED ([N] changes — your call)

### Lede on para 2 buries the metric
**Current:**
> [paragraph as-is]

**Proposed:**
> [paragraph with lede surfaced]

**Why:** the $200K saving is the strongest specific in the post. It should land sooner.

### ...

## FLAGGED (1 — structural)

Para 4 reads as "AI essay style" — a long generic claim followed by 3 explanations. Specific to your voice, you'd cut to a moment. Want me to:
A) Cut the para entirely
B) Replace with a 30-word moment from your last week
C) Leave as-is

## Final draft (with auto-fixes applied, proposed/flagged still pending)

[full draft with auto-fixes — clearly marked]

**To accept all proposed:** "accept all"
**To accept some:** "accept B, leave C"
**To reject all proposed:** "reject all"
```

### Stage 4 — On user response

Apply the user's accept/reject decisions. Save the new draft. Update tracker `last_action`.

If the user says "looks good, save it" → just save and confirm.

## Discipline

- **Don't rewrite. Edit.** A rewrite is a different skill (re-draft).
- **Voice preservation > polish.** If a fix would change the voice, surface as PROPOSED, don't apply.
- **Show your work.** Diff format. User sees what changed and why.
- **One pass.** Don't iterate the editor recursively. If a draft needs 3 editing passes, the underlying draft is wrong — go back to the drafter.

## What this skill does NOT do

- Does NOT generate alternate variants (that's the drafter's job)
- Does NOT rewrite paragraphs without proposing first
- Does NOT add content (only removes / tightens / fixes)
- Does NOT use Tier 3 or 4 (voice fixes don't need bigger model)

## Cost

Per edit pass: ~$0.02-0.03 (Tier 2, single pass on 200-2500 words). Occasional use.
