feat(commands): add /essay-edit command for expert essay editing
Some checks failed
CI / test (push) Has been cancelled

Pairs with /essay-outline. Runs structural review via story-lens skill
(Saunders framework), then granular line-level editing. Guards against
timid scribe syndrome and preserves author voice via john-voice skill.
Outputs a fully edited essay to docs/essays/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
John Lamb
2026-03-10 22:16:28 -05:00
parent 91bbee1a14
commit 4bc2409d91
5 changed files with 142 additions and 5 deletions

View File

@@ -11,8 +11,8 @@
"plugins": [
{
"name": "compound-engineering",
"description": "AI-powered development tools that get smarter with every use. Make each unit of engineering work easier than the last. Includes 25 specialized agents, 24 commands, and 24 skills.",
"version": "2.38.0",
"description": "AI-powered development tools that get smarter with every use. Make each unit of engineering work easier than the last. Includes 25 specialized agents, 25 commands, and 24 skills.",
"version": "2.39.0",
"author": {
"name": "Kieran Klaassen",
"url": "https://github.com/kieranklaassen",

View File

@@ -1,7 +1,7 @@
{
"name": "compound-engineering",
"version": "2.38.0",
"description": "AI-powered development tools. 25 agents, 24 commands, 24 skills, 1 MCP server for code review, research, design, and workflow automation.",
"version": "2.39.0",
"description": "AI-powered development tools. 25 agents, 25 commands, 24 skills, 1 MCP server for code review, research, design, and workflow automation.",
"author": {
"name": "Kieran Klaassen",
"email": "kieran@every.to",

View File

@@ -5,6 +5,12 @@ All notable changes to the compound-engineering plugin will be documented in thi
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2.39.0] - 2026-03-10
### Added
- **`/essay-edit` command** - Expert essay editor that polishes written work through two passes: structural review using the Saunders framework (via `story-lens` skill) and granular line-level editing. Preserves the author's voice (via `john-voice` skill) and guards against "timid scribe" syndrome — edits sharpen language without softening intent or defanging strong claims.
## [2.38.0] - 2026-03-08
### Added

View File

@@ -7,7 +7,7 @@ AI-powered development tools that get smarter with every use. Make each unit of
| Component | Count |
|-----------|-------|
| Agents | 25 |
| Commands | 24 |
| Commands | 25 |
| Skills | 24 |
| MCP Servers | 1 |
@@ -97,6 +97,7 @@ Core workflow commands use `workflows:` prefix to avoid collisions with built-in
| `/deploy-docs` | Validate and prepare documentation for GitHub Pages |
| `/pr-comments-to-todos` | Fetch PR comments and convert to todo files |
| `/essay-outline` | Transform a brain dump into a story-structured essay outline |
| `/essay-edit` | Polish written essays with expert structural and line-level editing |
## Skills

View File

@@ -0,0 +1,130 @@
---
name: essay-edit
description: Expert essay editor that polishes written work through granular line-level editing and structural review. Preserves the author's voice and intent — never softens or genericizes. Pairs with /essay-outline.
argument-hint: "[path to essay file, or paste the essay]"
---
# Essay Edit
Polish a written essay through two passes: structural integrity first, then line-level craft. This command produces a fully edited version of the essay — not a list of suggestions.
## Input
<essay_input> #$ARGUMENTS </essay_input>
**If the input above is empty or unclear**, ask: "Paste the essay or give me the file path."
If a file path is provided, read the file. Do not proceed until the essay is in context.
## The Editor's Creed
Before editing anything, internalize this:
**Do not be a timid scribe.**
A timid scribe softens language it doesn't fully understand. It rewrites the original to be cleaner according to *its own reading* — and in doing so, drains out the author's intent, edge, and specificity.
Examples of timid scribe behavior:
- "Most Every subscribers don't know what they're paying for." → "Most Every subscribers may not be fully aware of what they're paying for." ✗
- "The city ate itself." → "The city underwent significant change." ✗
- "He was wrong about everything." → "His perspective had some notable limitations." ✗
The test: if the original line had teeth, the edited line must also have teeth. If the original was specific and concrete, the edited line must remain specific and concrete. Clarity is not the same as softness. Directness is not the same as aggression. Polish the language without defanging it.
## Phase 1: Voice Calibration
Load the `john-voice` skill. Read `references/core-voice.md` and `references/prose-essays.md` to calibrate the author's voice before touching a single word.
Note the following from the voice profile before proceeding:
- What is the tone register of this essay? (conversational-to-deliberate ratio)
- What is the characteristic sentence rhythm?
- Where does the author use humor or lightness?
- What transition devices are in play?
This calibration is not optional. Edits that violate the author's established voice must be rejected.
## Phase 2: Structural Review
Load the `story-lens` skill. Apply the Saunders diagnostic framework to the essay as a whole. The essay is not a story with characters — translate the framework accordingly:
| Saunders diagnostic | Applied to the essay |
|---|---|
| Beat causality | Does each paragraph cause the reader to need the next? Or do they merely follow one another? |
| Escalation | Does the argument move up a staircase? Does each paragraph make the thesis harder to dismiss or the reader's understanding more complete? |
| Story-yet test | If the essay ended after the introduction, would anything have changed for the reader? After each major section? |
| Efficiency | Is every paragraph doing work? Does every sentence within each paragraph do work? Cut anything that elaborates without advancing. |
| Expectation | Does each section land at the right level — surprising enough to be interesting, but not so left-field it loses the reader? |
| Moral/technical unity | If something feels off — a paragraph that doesn't land, a conclusion that feels unearned — find the structural failure underneath. |
**Thesis check:**
- Is there a real thesis — a specific, arguable claim — or just a topic?
- Is the thesis earned by the conclusion, or does the conclusion simply restate what was already established?
- Does the opening create a specific expectation that the essay fulfills or productively subverts?
**Paragraph audit:**
For each paragraph, ask: does this paragraph earn its place? Identify any paragraph that:
- Repeats what a prior paragraph already established
- Merely elaborates without advancing the argument
- Exists only for transition rather than substance
Flag structural weaknesses. Propose specific fixes. If a section must be cut entirely, say so and explain why.
## Phase 3: Line-Level Edit
Now edit the prose itself. Work sentence by sentence through the full essay.
**Word choice:**
- Replace vague words with specific ones
- Flag hedging language that weakens claims without adding nuance: "somewhat", "rather", "may", "might", "could potentially", "in some ways", "it is possible that"
- Remove filler: "very", "really", "quite", "just", "a bit", "a little"
- Replace abstract nouns with concrete ones where possible
**Grammar and mechanics:**
- Fix subject-verb agreement, tense consistency, pronoun clarity
- Break up sentence structures that obscure meaning
- Eliminate passive voice where active voice is stronger — but don't apply this mechanically; passive is sometimes the right choice
**Sentence rhythm:**
- Vary sentence length. Short sentences create punch. Long sentences build momentum.
- Identify any runs of similarly-structured sentences and break the pattern
- Ensure each paragraph opens with energy and closes with either a landing or a pull forward
**The kinetic test:**
After editing each paragraph, ask: does this paragraph move? Does the last sentence create a small pull toward the next paragraph? If the prose feels like it's trudging, rewrite until it has momentum.
**Voice preservation:**
At every step, check edits against the voice calibration from Phase 1. If an edit makes the prose cleaner but less recognizably *the author's*, revert it. The author's voice is not a bug to be fixed. It is the product.
## Phase 4: Produce the Edited Essay
Write the fully edited essay. Not a marked-up draft. Not a list of suggestions. The complete, polished piece.
**Output the edited essay to file:**
```
docs/essays/YYYY-MM-DD-[slug]-edited.md
```
Ensure `docs/essays/` exists before writing. The slug should be 3-5 words from the title or thesis, hyphenated.
If the original was from a file, note the original path.
## Output Summary
When complete, display:
```
Edit complete.
File: docs/essays/YYYY-MM-DD-[slug]-edited.md
Structural changes:
- [List any paragraphs reordered, cut, or significantly restructured]
Line-level changes:
- [2-3 notable word/sentence-level decisions and why]
Voice check: [passed / adjusted — note any close calls]
Story verdict: [passes Saunders framework / key structural fix applied]
```