Skip to content

feat(perkins): the writing team — orchestrator, 7-voice panel, voice guide - #12

Merged
jcasimir merged 5 commits into
mainfrom
perkins-writing-team
Jul 17, 2026
Merged

feat(perkins): the writing team — orchestrator, 7-voice panel, voice guide#12
jcasimir merged 5 commits into
mainfrom
perkins-writing-team

Conversation

@jcasimir

@jcasimir jcasimir commented Jul 17, 2026

Copy link
Copy Markdown
Member

What

A writing team for the CE plugin: Perkins (a phased orchestrator) and a seven-voice reviewer panel that draft and review prose so it sounds, reads, and looks like Jeff wrote it — and get better at it over time.

Perkins — five gated phases

develop → outline → draft → seven-voice review + iterate → compound

Mirrors Erin's phased march, but for writing. Composes ce:write and ce:prose-review (companion PR: compound-engineering-plugin#10) plus ce:compound. The compound phase's enforcement artifact is a voice-guide rule — every correction Jeff makes teaches the guide, so the next draft starts closer to his voice. /ce:run perkins "<what to write>".

The panel

Reviewer Lens
Stephen King Voice & tone — does it sound like Jeff?
Gary Provost Rhythm & cadence — the read-aloud test
George Orwell Concision & AI-slop — cut filler, kill machine tells
Barbara Minto Structure & flow — answer-first (docs) / narrative arc (prose)
Jakob Nielsen Formatting — scannability, the "looks"
Ann Handley Audience — will it land with the reader?
Bryan Garner Vocabulary — the right term of art

Tagged category: writing so ce:prose-review selects exactly this set. Each owns specific voice-guide sections with explicit deferral lanes.

Voice guide (re-grounded — see commit history)

voice/voice-guide.md is the living record of how Jeff writes. The first cut was accidentally derived partly from a machine-generated doc; it has been re-grounded on provenance-verified writing:

  • Career/lint-rules.md — Jeff's own codified rules (formal register)
  • three cover letters that pass that lint (Anthropic, OW COO, Posit)
  • the two "With Intention" Medium essays — pure, pre-AI Jeff (expressive register)

Two-register model: formal (cover letters, client docs — restrained, no exclamation/profanity, lint-rules governs) vs expressive (blog/opinion — raw, funny, profane, direct address, italics-for-voice). The reviewers are register-aware so an expressive piece isn't flattened into a memo.

Live copy read/written at ~/.config/compound-engineering/voice-guide.md; project override at docs/writing/voice-guide.md. The private source corpus is not committed.

Try it

  1. Merge this + the plugin PR.
  2. Seed the guide: cp voice/voice-guide.md ~/.config/compound-engineering/voice-guide.md (already done on tractor).
  3. /ce:refresh, then /ce:run perkins "draft the X".

Known gaps (v1)

  • Email voice is under-sampled — flagged in §6 for the compound loop to fill.
  • Further pre-AI grounding available in the Turing Archive/Projects-writing/ curriculum if we want to deepen the teaching register.

🤖 Generated with Claude Code

jcasimir and others added 5 commits July 16, 2026 18:19
…ice guide

Add Perkins, a phased writing orchestrator, and a seven-voice reviewer
panel that drafts and reviews prose so it sounds, reads, and looks like
Jeff wrote it.

- orchestrators/perkins.md — 5 gated phases: develop → outline → draft →
  seven-voice review+iterate → compound. Composes ce:write and
  ce:prose-review (in the plugin fork) plus ce:compound. The compound
  phase's enforcement artifact is a voice-guide rule, so the team gets
  measurably better at Jeff's voice draft over draft.
- reviewers/{king-voice,provost-rhythm,orwell-concision,minto-structure,
  nielsen-formatting,handley-audience,garner-vocabulary}-reviewer.md —
  each owns one voice-guide dimension and cites it by section, with
  explicit deferral lanes so they don't overlap. Tagged category: writing
  so ce:prose-review selects exactly this panel.
- voice/voice-guide.md — canonical, living voice guide derived from real
  samples (the JTBD essay, the Miren docs) plus the no-filler rule. Live
  copy read/written at ~/.config/compound-engineering/voice-guide.md.

Requires the ce:write and ce:prose-review skills from the
compound-engineering-plugin fork. Email voice is under-sampled and
flagged for the compound loop to fill.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…writing

The v1 guide was derived partly from a Google Doc that turned out to be
machine-generated (create ≈ modify timestamp, "compiled from transcripts") —
so it encoded Claude's ops-analyst aesthetic (tables, ⚠ markers, bold inline
labels), not Jeff's voice. Jeff caught it.

Re-grounded on writing whose provenance is verified:
- Career/lint-rules.md — Jeff's own codified writing rules (formal register)
- 3 cover letters that pass that lint (Anthropic, OW COO, Posit)
- the two "With Intention" Medium essays — pure, pre-AI Jeff (expressive register)

Key model change: Jeff writes in TWO registers. Formal (cover letters, client
docs): restrained, no exclamation/profanity, lint-rules governs. Expressive
(blog, opinion): raw, funny, profane, direct address, italics-for-voice,
borrowed aphorisms, phased emotional honesty. lint-rules.md's no-exclamation /
no-profanity / no-"leverage" rules are FORMAL-register-only.

Reviewer fixes for the bad data:
- orwell: un-banned the "X isn't A, it's B" reframe (a signature, not an AI
  tell); replaced kill-list with Jeff's actual banned words; made exclamation/
  profanity/"leverage" formal-register-only so a blog isn't flattened.
- king: signature moves are now the real ones, across both registers.
- nielsen + minto: guarded against imposing doc structure on narrative prose;
  expressive essays keep their voicey headers and italics.

Email still under-sampled. Corpus itself not committed (private).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Jeff supplied a large, verbatim, multi-register corpus (reproduced-as-written,
draft typos preserved — confirmed not AI paraphrase):
- The Freedom Business (State of Turing, 2019) + the two "With Intention" blogs
  — expressive register
- 2016 policy op-eds (Three Ways to Help, EQUIP Won't Work, Transparency)
  — a newly-sampled ANALYTICAL register
- Adventures on the Golden Path (conference talk) — teaching register
- 2025 federal grant Project Narrative — confirms the FORMAL register still
  holds today (mission + hard numbers, no drift)

Changes:
- Evolved the two-register model into a three-band spectrum:
  expressive -> analytical -> formal (same DNA, differing restraint).
- Added the analytical band and its moves: diagnose->prescribe / "the fix is
  simple:", the confident prediction ("look back two years from now..."),
  numbered concrete fixes.
- Added signature moves confirmed across the corpus: the em-dash dismissal
  ("Being the biggest -- who cares?"), the deadpan landing ("Also, we write
  some code."), direct-address rhetorical-question opens.
- Aligned king / orwell / nielsen to the spectrum.
- Noted quoted readings inside facilitation guides are NOT Jeff's voice
  (a Chad Fowler excerpt was embedded in one).

Email is now the only unsampled medium. Source corpus not committed (private).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sampled the 2020-2022 State of Turing addresses that synced into Writing
Samples. Little new: most are speaking-notes / run-of-show (bullets,
co-presenter Q&A), not finished prose. The 2022 prose runs the same
scarcity/abundance argument and moves as the 2019 Freedom Business essay —
expressive register holds, no drift. Banked the provenance caution so the
run-of-show docs aren't later mined as prose voice.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Jeff flagged sentence-case section headers while reviewing the first two
JSL blog posts Perkins drafted. His finished essays headline-case their
section titles ("Existing Federal Student Loans", "This Ain't No Router
Rewrite"). Codified in §7 + changelog — the compound loop capturing a live
correction into a durable rule.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jcasimir
jcasimir merged commit 3f2b3a4 into main Jul 17, 2026
@jcasimir
jcasimir deleted the perkins-writing-team branch July 17, 2026 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant