Transforms a brain dump into a story-structured essay outline. Pressure tests for a real thesis, applies the Saunders framework via story-lens skill to validate hook, escalation, and conclusion, then writes a tight outline to file. Also fixes stale skill count in README (22 → 24). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -11,8 +11,8 @@
|
|||||||
"plugins": [
|
"plugins": [
|
||||||
{
|
{
|
||||||
"name": "compound-engineering",
|
"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, 23 commands, and 22 skills.",
|
"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.36.0",
|
"version": "2.38.0",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Kieran Klaassen",
|
"name": "Kieran Klaassen",
|
||||||
"url": "https://github.com/kieranklaassen",
|
"url": "https://github.com/kieranklaassen",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "compound-engineering",
|
"name": "compound-engineering",
|
||||||
"version": "2.36.0",
|
"version": "2.38.0",
|
||||||
"description": "AI-powered development tools. 25 agents, 23 commands, 22 skills, 1 MCP server for code review, research, design, and workflow automation.",
|
"description": "AI-powered development tools. 25 agents, 24 commands, 24 skills, 1 MCP server for code review, research, design, and workflow automation.",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Kieran Klaassen",
|
"name": "Kieran Klaassen",
|
||||||
"email": "kieran@every.to",
|
"email": "kieran@every.to",
|
||||||
|
|||||||
@@ -5,6 +5,18 @@ 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/),
|
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).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [2.38.0] - 2026-03-08
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- **`/essay-outline` command** - Transform a brain dump into a story-structured essay outline. Pressure tests ideas for a real thesis and payoff, applies the Saunders storytelling framework (via `story-lens` skill) to validate hook, escalation, and conclusion, then produces a tight outline written to file.
|
||||||
|
|
||||||
|
## [2.37.0] - 2026-03-08
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- **`story-lens` skill** - Evaluate prose quality using George Saunders's storytelling framework (beat causality, escalation, three E's, character accumulation, moral/technical unity)
|
||||||
|
|
||||||
## [2.36.0] - 2026-02-27
|
## [2.36.0] - 2026-02-27
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ AI-powered development tools that get smarter with every use. Make each unit of
|
|||||||
| Component | Count |
|
| Component | Count |
|
||||||
|-----------|-------|
|
|-----------|-------|
|
||||||
| Agents | 25 |
|
| Agents | 25 |
|
||||||
| Commands | 23 |
|
| Commands | 24 |
|
||||||
| Skills | 22 |
|
| Skills | 24 |
|
||||||
| MCP Servers | 1 |
|
| MCP Servers | 1 |
|
||||||
|
|
||||||
## Agents
|
## Agents
|
||||||
@@ -96,6 +96,7 @@ Core workflow commands use `workflows:` prefix to avoid collisions with built-in
|
|||||||
| `/agent-native-audit` | Run comprehensive agent-native architecture review |
|
| `/agent-native-audit` | Run comprehensive agent-native architecture review |
|
||||||
| `/deploy-docs` | Validate and prepare documentation for GitHub Pages |
|
| `/deploy-docs` | Validate and prepare documentation for GitHub Pages |
|
||||||
| `/pr-comments-to-todos` | Fetch PR comments and convert to todo files |
|
| `/pr-comments-to-todos` | Fetch PR comments and convert to todo files |
|
||||||
|
| `/essay-outline` | Transform a brain dump into a story-structured essay outline |
|
||||||
|
|
||||||
## Skills
|
## Skills
|
||||||
|
|
||||||
@@ -129,6 +130,7 @@ Core workflow commands use `workflows:` prefix to avoid collisions with built-in
|
|||||||
| `john-voice` | Write content in John Lamb's authentic voice across all venues |
|
| `john-voice` | Write content in John Lamb's authentic voice across all venues |
|
||||||
| `resolve-pr-parallel` | Resolve PR review comments in parallel |
|
| `resolve-pr-parallel` | Resolve PR review comments in parallel |
|
||||||
| `setup` | Configure which review agents run for your project |
|
| `setup` | Configure which review agents run for your project |
|
||||||
|
| `story-lens` | Evaluate prose quality using George Saunders's storytelling framework |
|
||||||
| `upstream-merge` | Incorporate upstream git changes while preserving local fork intent |
|
| `upstream-merge` | Incorporate upstream git changes while preserving local fork intent |
|
||||||
|
|
||||||
### Multi-Agent Orchestration
|
### Multi-Agent Orchestration
|
||||||
|
|||||||
96
plugins/compound-engineering/commands/essay-outline.md
Normal file
96
plugins/compound-engineering/commands/essay-outline.md
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
---
|
||||||
|
name: essay-outline
|
||||||
|
description: Transform a brain dump into a story-structured essay outline. Pressure tests the idea, validates story structure using the Saunders framework, and produces a tight outline written to file.
|
||||||
|
argument-hint: "[brain dump — your raw ideas, however loose]"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Essay Outline
|
||||||
|
|
||||||
|
Turn a brain dump into a story-structured essay outline.
|
||||||
|
|
||||||
|
## Brain Dump
|
||||||
|
|
||||||
|
<brain_dump> #$ARGUMENTS </brain_dump>
|
||||||
|
|
||||||
|
**If the brain dump above is empty, ask the user:** "What's the idea? Paste your brain dump — however raw or loose."
|
||||||
|
|
||||||
|
Do not proceed until you have a brain dump.
|
||||||
|
|
||||||
|
## Execution
|
||||||
|
|
||||||
|
### Phase 1: Idea Triage
|
||||||
|
|
||||||
|
Read the brain dump and locate the potential thesis — the single thing worth saying. Ask: would a smart, skeptical reader finish this essay and think "I needed that"?
|
||||||
|
|
||||||
|
Play devil's advocate. This is the primary job. Look for:
|
||||||
|
|
||||||
|
- **Weak thesis** — Is this a real insight, or just a topic? A topic is not a thesis. "Remote work is complicated" is a topic. "Remote work didn't fail the office — the office failed remote work" is a thesis.
|
||||||
|
- **Missing payoff** — What does the reader walk away with that they didn't have before? If there's no answer, say so.
|
||||||
|
- **Broken connective tissue** — Do the ideas connect causally ("and therefore") or just sequentially ("and another thing")? Sequential ideas are a list, not an essay.
|
||||||
|
- **Unsupported claims** — Use outside research to pressure-test assertions. If a claim doesn't hold up, flag it and explore whether it can be rescued.
|
||||||
|
|
||||||
|
**If nothing survives triage:** Say directly — "There's nothing here yet." Then ask one question aimed at finding a salvageable core. Do not produce an outline for an idea that hasn't earned one.
|
||||||
|
|
||||||
|
**If the idea survives but has weaknesses:** Identify the weakest link and collaboratively generate a fix before moving to Phase 2.
|
||||||
|
|
||||||
|
### Phase 2: Story Structure Check
|
||||||
|
|
||||||
|
Load the `story-lens` skill. Apply the Saunders framework to the *idea* — not prose. The essay may not involve characters. That's fine. Translate the framework as follows:
|
||||||
|
|
||||||
|
| Saunders diagnostic | Applied to essay ideas |
|
||||||
|
|---|---|
|
||||||
|
| Beat causality | Does each supporting point *cause* the reader to need the next one, or do they merely follow it? |
|
||||||
|
| Escalation | Does each beat raise the stakes of the thesis — moving the reader further from where they started? |
|
||||||
|
| Story-yet test | If the essay ended after the hook, would anything have changed for the reader? After the first supporting point? Each beat must earn its place. |
|
||||||
|
| Efficiency | Is every idea doing work? Cut anything that elaborates without advancing. |
|
||||||
|
| Expectation | Does each beat land at the right level — surprising but not absurd, inevitable in hindsight? |
|
||||||
|
| Moral/technical unity | If something feels off — a point that doesn't land, a conclusion that feels unearned — find the structural failure underneath. |
|
||||||
|
|
||||||
|
**The non-negotiables:**
|
||||||
|
- The hook must create a specific expectation that the essay then fulfills or subverts
|
||||||
|
- Supporting beats must escalate — each one should make the thesis harder to dismiss, not just add to it
|
||||||
|
- The conclusion must deliver irreversible change in the reader's understanding — they cannot un-think what the essay showed them
|
||||||
|
|
||||||
|
Flag any diagnostic failures. For each failure, propose a fix. If the structure cannot be made to escalate, say so.
|
||||||
|
|
||||||
|
### Phase 3: Outline Construction
|
||||||
|
|
||||||
|
Produce the outline only after the idea has survived Phases 1 and 2.
|
||||||
|
|
||||||
|
**Structure:**
|
||||||
|
- Hook — the opening move that sets an expectation
|
||||||
|
- Supporting beats — each one causal, each one escalating
|
||||||
|
- Conclusion — the irreversible change delivered to the reader
|
||||||
|
|
||||||
|
**Format rules:**
|
||||||
|
- Bullets and sub-bullets only
|
||||||
|
- Max 3 sub-bullets per bullet
|
||||||
|
- No sub-sub-bullets
|
||||||
|
- Each bullet is a *beat*, not a topic — it should imply forward motion
|
||||||
|
- Keep it short. A good outline is a skeleton, not a draft.
|
||||||
|
|
||||||
|
**Write the outline to file:**
|
||||||
|
|
||||||
|
```
|
||||||
|
docs/outlines/YYYY-MM-DD-[slug].md
|
||||||
|
```
|
||||||
|
|
||||||
|
Ensure `docs/outlines/` exists before writing. The slug should be 3-5 words derived from the thesis, hyphenated.
|
||||||
|
|
||||||
|
## Output Summary
|
||||||
|
|
||||||
|
When complete, display:
|
||||||
|
|
||||||
|
```
|
||||||
|
Outline complete.
|
||||||
|
|
||||||
|
File: docs/outlines/YYYY-MM-DD-[slug].md
|
||||||
|
|
||||||
|
Thesis: [one sentence]
|
||||||
|
Story verdict: [passes / passes with fixes / nothing here]
|
||||||
|
|
||||||
|
Key structural moves:
|
||||||
|
- [Hook strategy]
|
||||||
|
- [How the beats escalate]
|
||||||
|
- [What the conclusion delivers]
|
||||||
|
```
|
||||||
48
plugins/compound-engineering/skills/story-lens/SKILL.md
Normal file
48
plugins/compound-engineering/skills/story-lens/SKILL.md
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
name: story-lens
|
||||||
|
description: This skill should be used when evaluating whether a piece of prose constitutes a high-quality story. It applies George Saunders's craft framework — causality, escalation, efficiency, expectation, and character accumulation — as a structured diagnostic lens. Triggers on requests like "is this a good story?", "review this prose", "does this feel like a story or just an anecdote?", "critique this narrative", or any request to assess the craft quality of fiction or narrative nonfiction.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Story Lens
|
||||||
|
|
||||||
|
A diagnostic skill for evaluating prose quality using George Saunders's storytelling framework. The framework operates on a single core insight: the difference between a story and an anecdote is causality plus irreversible change.
|
||||||
|
|
||||||
|
Load [saunders-framework.md](./references/saunders-framework.md) for the full framework, including all diagnostic questions and definitions.
|
||||||
|
|
||||||
|
## How to Apply the Skill
|
||||||
|
|
||||||
|
### 1. Read the Prose
|
||||||
|
|
||||||
|
Read the full piece before forming any judgments. Resist diagnosing on first pass.
|
||||||
|
|
||||||
|
### 2. Apply the Six Diagnostic Questions in Order
|
||||||
|
|
||||||
|
Each question builds on the previous.
|
||||||
|
|
||||||
|
**Beat Causality**
|
||||||
|
Map the beats. Does each beat cause the next? Or are they sequential — "and then... and then..."? Sequential beats = anecdote. Causal beats = story.
|
||||||
|
|
||||||
|
**Escalation**
|
||||||
|
Is the story moving up a staircase or running on a treadmill? Each step must be irrevocable. Once a character's condition has fundamentally changed, the story cannot re-enact that change or linger in elaboration. Look for sections that feel like they're holding still.
|
||||||
|
|
||||||
|
**The Story-Yet Test**
|
||||||
|
Stop at the end of each major section and ask: *if it ended here, would it be complete?* Something must have changed irreversibly. If nothing has changed, everything so far is setup — not story.
|
||||||
|
|
||||||
|
**Character Accumulation**
|
||||||
|
Track what the reader learns about the character, beat by beat. Is that knowledge growing? Does each beat confirm, complicate, or overturn prior understanding? Flat accumulation = underdeveloped character. Specificity accrues into care.
|
||||||
|
|
||||||
|
**The Three E's**
|
||||||
|
Check against the triad: Escalation (moving forward), Efficiency (nothing extraneous), Expectation (next beat is surprising but not absurd). Failure in any one of these is diagnosable.
|
||||||
|
|
||||||
|
**Moral/Technical Unity**
|
||||||
|
If something feels off emotionally or ethically — a character's choice that doesn't ring true, a resolution that feels unearned — look for the technical failure underneath. Saunders's claim: it is always there. Find the craft problem, and the moral problem dissolves.
|
||||||
|
|
||||||
|
### 3. Render a Verdict
|
||||||
|
|
||||||
|
After applying all six diagnostics, deliver a clear assessment:
|
||||||
|
|
||||||
|
- Is this a story, or still an anecdote?
|
||||||
|
- Which diagnostic reveals the primary weakness?
|
||||||
|
- What is the single most important structural fix?
|
||||||
|
|
||||||
|
Be direct. The framework produces precise, actionable diagnoses — not impressionistic feedback. Imprecise praise or vague encouragement is not useful here. The goal is to help the writer see exactly where the story is working and where it isn't.
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
# The Saunders Storytelling Framework
|
||||||
|
|
||||||
|
A distillation of George Saunders's craft principles for evaluating whether prose constitutes a high-quality story.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Fundamental Unit: The Beat
|
||||||
|
|
||||||
|
Every moment in a story is a beat. Each beat must *cause* the next beat. Saunders calls causality "what melody is to a songwriter" — it's the invisible connective tissue the audience feels as the story's logic.
|
||||||
|
|
||||||
|
The test: are beats **causal** or merely **sequential**?
|
||||||
|
|
||||||
|
- Sequential (anecdote): "this happened, then this happened"
|
||||||
|
- Causal (story): "this happened, *therefore* this happened"
|
||||||
|
|
||||||
|
If beats are merely sequential, the work reads as anecdote, not story.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What Transforms Anecdote into Story: Escalation
|
||||||
|
|
||||||
|
> "Always be escalating. That's all a story is, really: a continual system of escalation. A swath of prose earns its place in the story to the extent that it contributes to our sense that the story is still escalating."
|
||||||
|
|
||||||
|
Escalation isn't just raising stakes — it's **irrevocable change**. Once a story has moved forward through some fundamental change in a character's condition, you don't get to enact that change again, and you don't get to stay there elaborating on that state.
|
||||||
|
|
||||||
|
**The story is a staircase, not a treadmill.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The "Is This a Story Yet?" Diagnostic
|
||||||
|
|
||||||
|
Stop at any point and ask: *if it ended here, would it be complete?*
|
||||||
|
|
||||||
|
Early on, the answer is almost always no — because nothing has changed yet. The story only becomes a story at the moment something changes irreversibly.
|
||||||
|
|
||||||
|
**Precise test: change = story. No change = still just setup.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The "What Do We Know About This Character So Far?" Tool
|
||||||
|
|
||||||
|
Take inventory constantly. A reader's understanding of a character is always a running accumulation — and every beat should either **confirm**, **complicate**, or **overturn** that understanding.
|
||||||
|
|
||||||
|
The more we know about a person — their hopes, dreams, fears, and failures — the more compassionate we become toward them. This is how the empathy machine operates mechanically: **specificity accrues, and accrued specificity generates care.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Three E's
|
||||||
|
|
||||||
|
Three words that capture the full framework:
|
||||||
|
|
||||||
|
1. **Escalation** — the story must continuously move forward through irrevocable change
|
||||||
|
2. **Efficiency** — ruthlessly exclude anything extraneous to the story's purposes
|
||||||
|
3. **Expectation** — what comes next must hit a Goldilocks level: not too obvious, not too absurd
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Moral/Technical Unity
|
||||||
|
|
||||||
|
Any story that suffers from what seems like a **moral failing** will, with sufficient analytical attention, be found to be suffering from a **technical failing** — and if that failing is addressed, it will always become a better story.
|
||||||
|
|
||||||
|
This means: when a story feels wrong emotionally or ethically, look for the craft problem first. The fix is almost always structural.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Summary: The Diagnostic Questions
|
||||||
|
|
||||||
|
Apply these in order to any piece of prose:
|
||||||
|
|
||||||
|
1. **Beat causality** — Does each beat cause the next, or are they merely sequential?
|
||||||
|
2. **Escalation** — Is the story continuously moving up the staircase, or running on a treadmill?
|
||||||
|
3. **Story-yet test** — If it ended here, would something have irreversibly changed?
|
||||||
|
4. **Character accumulation** — Is our understanding of the character growing richer with each beat?
|
||||||
|
5. **Three E's check** — Is it escalating, efficient, and pitched at the right level of expectation?
|
||||||
|
6. **Moral/technical unity** — If something feels off morally or emotionally, where is the technical failure?
|
||||||
Reference in New Issue
Block a user