---
description: Drafts a Substack piece from an idea ID + voice + platform rules + STAR bank for grounding. Two modes -- long (1000-2500w, Tier 4 Opus + adversary pass) and short (300-800w newsletter, Tier 3 Sonnet). Title + subtitle craft block mandatory. Voice smell test gates output. Triggered by 'draft a Substack piece', '/substack [IDEA-NNNNN]', '/substack-short [IDEA-NNNNN]'.
---

# personal-substack-drafter

The Substack piece drafter. Two modes calibrated by length:

- **Long-form** (1000-2500 words): Tier 4 Opus + adversary sub-agent pass. Substack-long is future-employer-content-equivalent (anyone reading it as Josh's voice). Quality matters more than cost here.
- **Short newsletter** (300-800 words): Tier 3 Sonnet. Faster turn, tighter cost.

## Trigger phrases

- "Draft a Substack piece about [topic]"
- "Substack this idea: [IDEA-NNNNN]"
- `/substack [IDEA-NNNNN]` — long-form, default
- `/substack-short [IDEA-NNNNN]` — short newsletter
- `/substack [IDEA-NNNNN] --short`

## Inputs (mandatory reads)

- `~/.career/voice-profile.md`
- `~/.career/platform-rules.json` → `substack-long` or `substack-short` section
- `~/.career/memory/recent-posts.md` — past pieces for repetition avoidance
- `~/.career/star-bank.json` — for grounding stories with real evidence
- `~/.personal/content-bank/ideas.json` — pull the idea record

## Process — Long-form mode

### Stage 1 — Outline (Tier 3 main)

Don't draft straight to prose. Outline first.

```
# [Working title]

## Thesis (1 sentence)

## The opening hook (≤90 words)

## Section 1: [...]
- Argument:
- Evidence (STAR-XXX or external):
- Tension to surface:

## Section 2: [...]
- ...

## Section 3: [...]
- ...

## Close
- The ask / takeaway:
- The forward-looking line:

## Footnotes (if any)

## CTA (max 1, mid-piece, NOT salesy)
```

Surface the outline to user. They review, request changes if needed, approve.

### Stage 2 — Full draft (Tier 4 Opus main)

Draft to outline. Per platform rules:

- Title ≤70 chars, no clickbait numerals ("5 things..."), no curiosity-gap ("you won't believe...")
- Subtitle is the actual thesis, not a teaser
- 1200-2200 word target (long-form sweet spot per research)
- Footnotes encouraged for sources/asides
- One mid-piece CTA max (subscribe / engage / read related), never at end
- Hero image: NEVER stock-AI. Either real photo from Josh's catalog, or no image.
- No em-dashes (literal grep, zero)
- No AI clichés (full ban list)

### Stage 3 — Adversary pass (Tier 2 Haiku sub-agent)

Long-form Substack always gets adversary review. Per `kit/agents/adversary.md`:

- Voice fidelity check (sounds like Josh? Or generic AI-essay voice?)
- Claim verification (what's stated as fact actually fact?)
- Tone match (per platform rules)
- Footnote integrity (citations actually support what's claimed?)
- Length discipline (no padding to hit word count)

Output: PROCEED / WARN / REVISE. If REVISE, surface the specific issues and re-draft once. If PROCEED, continue to smell test.

### Stage 4 — Voice smell test (mandatory)

Same as LinkedIn-drafter, plus Substack-specific:

- Title: ≤70 chars, not clickbait-y
- Subtitle: thesis-statement form, not teaser
- Em-dash count: 0
- AI-cliché count: 0
- Banned-phrase count: 0
- Footnotes: properly formatted (Substack's footnote syntax)

### Stage 5 — Output

```markdown
**Substack draft** for IDEA-NNNNN — "[title]"

**Mode:** long-form
**Words:** [N] / 2500
**Title chars:** [N] / 70
**Voice smell test:** ✅
**Adversary pass:** ✅ PROCEED

---

# [Title]

## [Subtitle]

[full draft]

---

**Saved to:** `~/.personal/content-bank/drafts/POST-NNNNN.md`

**My honest read:** [1-2 sentences on whether this is shipping-ready or needs more work]

**Open questions for you:**
- [...]

**Once you approve:**
- I'll mark IDEA-NNNNN status: drafted, link to POST-NNNNN
- Run `/post-now POST-NNNNN` to open the Substack composer with this loaded, OR copy with `pbcopy < ~/.personal/content-bank/drafts/POST-NNNNN.md`
```

## Process — Short newsletter mode

### Stage 1 — Direct draft (Tier 3 Sonnet main, no outline)

Short newsletters don't need outlining. Single-thought density. 300-800 words.

Format (per platform rules, substack-short):

- Title ≤60 chars
- Subtitle: optional, single line
- Body: 1-3 short sections, max
- One link out (to a longer piece or related)
- Optional sign-off / one-line CTA

### Stage 2 — Voice smell test (mandatory)

Same battery as long-form, scaled to short format.

### Stage 3 — Output

Same shape as long-form output, simpler. No adversary pass for short (cost > value at 400 words).

## Pre-publish gate (mandatory)

Substack pieces are public-record artefacts. A future hiring manager will read them. They ARE future-employer-content.

Before showing the draft to Josh, invoke the `evaluator` sub-agent via the Task tool:

- **subagent_type:** `evaluator`
- **prompt:** include the full draft body, the source idea, the voice profile, the platform rules, and (if applicable) the related reading the piece references. Ask for the 4-axis rubric AND additionally:
  - Does the piece respect Substack length norms (long-form ≥ 800 words, short newsletter 200-500 words)?
  - Are claims supported by sources/citations where they should be?
  - Does the opening hook earn the reader's attention without clickbait?
  - Is there topic repetition with anything in `~/.career/memory/recent-posts.md` (last 60 days for long-form, 30 for short)?

For long-form Substack only, ALSO invoke `adversary`:

- **subagent_type:** `adversary`
- **prompt:** "What's the strongest counterargument to this piece's central claim? What would a thoughtful reader push back on?"

Use the adversary's response not to defend, but to either (a) strengthen the piece by addressing the counter inline, or (b) explicitly acknowledge it.

Handle the evaluator response:

| Result | Action |
| --- | --- |
| All checks pass | Proceed to delivery. |
| 1-2 axes fail | Revise once, re-invoke evaluator. Second failure -> surface. |
| Length norm violation | Hard stop -- the piece is fundamentally wrong-shaped. Re-draft from the outline. |

## Discipline

- **Tier 4 only for long-form.** Short newsletters are Tier 3.
- **Never auto-cross-post to LinkedIn.** Use `personal-content-repurpose` for that.
- **Footnotes are a feature.** Substack supports them; use them for asides and sources.
- **No emoji headers.** ## emoji headers scream blog template.
- **One CTA mid-piece, max.** End-of-piece CTA blocks reader from sharing.
- **Title is earned.** Not from a headline-formula generator.

## What this skill does NOT do

- Does NOT auto-publish. Drafts only.
- Does NOT generate images.
- Does NOT cross-post.
- Does NOT use SEO clickbait patterns.
- Does NOT skip the adversary pass on long-form.

## Cost

- Long-form: ~$0.40-0.60 per piece (Tier 4 Opus draft + Tier 2 adversary + smell test). 4-5 pieces/month = $1.60-3.00/mo.
- Short newsletter: ~$0.05-0.10 per piece (Tier 3 Sonnet). Occasional use.

Comfortably inside the $50/mo cap. Substack-long is the right place to spend Tier 4 — it's voice-sensitive, public, durable, and represents you to readers who'll evaluate you on it.
