# Spec Sheet — Essay Review

**What you are building:** A read-only skill that reviews a finished long-form draft against an external voice-and-asymmetry standard in four ordered passes, returning specific quoted flags and a verdict — never a rewrite.

> Bracketed [PLACEHOLDERS] are yours to fill in for your own setup. The original carries no credentials; if your version ever needs one, supply it from your own secret store and never inline it in the skill or its reference files.

## 1. Purpose

Catch the failure modes that survive a clean first read of a finished essay: machine register (AI-sounding prose), weak distinctiveness (a piece anyone in your category could have written), padding (paragraphs that do not earn their place), and emptiness (writing that taught the author nothing). Each is a separate pass with quoted, located evidence so "this feels off" becomes a specific line with a specific fix. The skill diagnoses; the author decides.

## 2. Activation

Name: `[skill-name]` (e.g. `essay-review`, `draft-review`).

Description: write it so the model auto-triggers when the author has a *complete* draft and asks to review it against the standard. Include the natural trigger phrases — "review this draft," "run the review," "check this piece," "check this against the spec," and the explicit `run [skill-name]`. State that it runs four passes (voice check, asymmetry test, paragraph-purpose test, surprise test) and that it operates on complete drafts, not during drafting. Naming the passes in the description both improves triggering and sets expectations.

## 3. Inputs and preconditions

- A complete draft, read from `[active-draft-folder]/` or pasted into the conversation.
- The draft is finished enough to review — typically after a full first draft exists. Re-runnable on revisions.
- Two external standard files must exist and be readable (see §5). If either is missing, the relevant pass has nothing to check.

## 4. Outputs and side effects

- A Markdown report printed to chat, one section per pass, in a fixed format, plus a final summary block.
- Every flag is quoted and located (which paragraph, which rule/tell/leg).
- No file is written; the draft is never edited. Strictly read-only.

## 5. Environment and dependencies

- **`[anti-ai-voice-file]`** at a known path (e.g. project root): defines two layers — a small set of plain-prose writing rules ([Orwell's six rules] or your equivalent) and an [AI-tells checklist] grouped by level (sentence, structural, voice). The skill reads this for Pass 1.
- **`[operating-spec-file]`** at a known path: defines the asymmetry/distinctiveness test in a known section ([section 3] in the original). The skill reads this for Pass 2.
- **`[active-draft-folder]/`**: where the in-production piece lives, if not pasted.
- Keep the standards *outside* the skill so they can evolve without editing the skill. Note the tradeoff: if the files are absent, the dependent passes are inert — make their absence a visible message, not a silent skip.

## 6. Procedure

1. **Locate the draft.** Read it from `[active-draft-folder]/` or from pasted text. Run the four passes in order; each emits its own section.

2. **Pass 1 — Voice check.** Read `[anti-ai-voice-file]`. Check the draft against both layers.
   - **Writing rules ([Orwell's six]):** for each rule, flag specific violations — quote the passage, name the rule, suggest a revision or ask whether it is deliberate (preserve the override rule that says a rule may be broken to avoid something worse).
   - **[AI-tells checklist]:** go tell by tell; for each that appears, quote the instance and comment. Locate, never generalize ("em-dash overuse in paragraphs 3, 5, 7," not "too many em-dashes").
   - Output: two subsections — rule violations and AI-tells — each a numbered list of quoted instances.

3. **Pass 2 — Asymmetry test.** Read the asymmetry section of `[operating-spec-file]`. For each leg of the test ([standing], [lived work], [angle of approach] — or your spec's legs), state what the draft does to make that leg visible, with quoted evidence; name any invisible leg. Then run the negative test: "What would have to be true about the author for this piece to exist?" If the answer describes a *category* the author belongs to rather than the author *specifically*, the asymmetry is weak. Output: each leg, the negative-test result, and a verdict (strong on all legs / some legs / weak — needs revision).

4. **Pass 3 — Paragraph-purpose test.** For each paragraph ask: "Could this come out and the argument still works?" Flag failing paragraphs as cut candidates, identified by their opening sentence, with a note on what they appear to be doing that is unnecessary. Output: paragraphs that could likely come out, and paragraphs to keep but tighten.

5. **Pass 4 — Surprise test.** Pose the question and wait for the author: "What did you learn writing this that you did not know going in?" A specific, substantive answer passes; "nothing — I just expressed what I already thought" means it is not done. The skill asks; the author answers.

6. **Final summary.** One block: per-pass result (voice / asymmetry / paragraph purpose / surprise) and a recommended next move (revise and re-run / publish / return upstream for a take revision).

## 7. Edge cases and failure handling

- **Missing standard file:** say which file is missing and that the dependent pass cannot run; continue the passes that can.
- **No draft supplied:** ask for the draft or a path rather than reviewing nothing.
- **Draft mid-co-drafting:** decline politely — this skill is for complete drafts.
- **Pass 4 with no answer yet:** mark surprise as pending and let the summary reflect that the verdict is not final.
- **Override rule (rule 6 equivalent):** when a flagged "violation" is a deliberate, better choice, frame it as a question, not a correction.

## 8. Guardrails / hard rules

- **Read-only.** Never rewrite the draft and never edit any file. Surface issues; the author decides.
- **Locate, do not generalize.** Every flag carries a quote and a location.
- **No mechanical enforcement.** The rules are judgment, not a linter; the override rule always applies.
- **Standards live outside the skill.** Read them at runtime; do not hardcode their content into the skill.
- **No credentials, ever.** This skill needs none; if a future variant does, take it from a secret store, never inline.

## 9. Acceptance criteria

- Running the skill on a complete draft prints all four sections plus a summary, in order.
- Pass 1 flags are each quoted, named to a rule or tell, and located by paragraph.
- Pass 2 addresses every leg explicitly, runs the negative test, and issues a verdict.
- Pass 3 lists specific paragraphs by opening sentence with a stated reason.
- Pass 4 asks the surprise question and does not declare a final pass until answered.
- The draft and all reference files are unchanged on disk afterward.
- With a standard file removed, the skill reports the absence rather than crashing or silently skipping.

## 10. Adapt to your setup

- Replace [Orwell's six rules] and the [AI-tells checklist] with whatever voice discipline you hold yourself to; keep the two-layer shape (a few prose rules + a checklist of tells).
- Replace the asymmetry legs ([standing] / [lived work] / [angle of approach]) and the negative test with your own definition of "only I could have written this" — or drop Pass 2 if distinctiveness is not your bar.
- Point `[active-draft-folder]` and the two standard-file paths at your real locations.
- Swap the medium (newsletter, blog, internal memo) for your own. The four-pass structure is medium-agnostic.
- The surprise test is personal-integrity-shaped; keep it if "did this teach me something" is a real gate for you, cut it if not.

---

```markdown
---
name: [skill-name]
description: >
  Reviews a complete [medium] draft against [your standard files] and returns
  specific, quoted flags — not a rewrite. Use when the author says "review this
  draft," "run the review," "check this piece," or runs [skill-name] after a
  draft is complete. Runs four ordered passes: voice check ([prose rules] +
  AI-tells), asymmetry test, paragraph-purpose test, surprise test. Operates on
  finished drafts, never during drafting.
---

# [skill-name]

## Purpose
[One paragraph: catch the failure modes a clean read misses; diagnose, don't rewrite.]

## When to use
[Complete drafts only; re-runnable on revisions. List trigger phrases.]

## What to do
[Read the draft from [active-draft-folder]/ or pasted text. Run four passes in order.]

### Pass 1: Voice check
[Read [anti-ai-voice-file]. Check both layers. Quote + locate every flag.
 Output: rule violations, then AI-tells.]

### Pass 2: Asymmetry test
[Read the asymmetry section of [operating-spec-file]. Each leg with evidence,
 then the negative test, then a verdict.]

### Pass 3: Paragraph-purpose test
[Each paragraph: could it come out? Output cut-candidates and tighten-candidates.]

### Pass 4: Surprise test
[Ask the author what they learned writing it; wait; pass only on a substantive answer.]

### Final summary
[Per-pass results + recommended next move.]

## What this skill does not do
[No rewrite. No mechanical rule enforcement. Does not run during drafting.]
```
