Skill Tracer
Skills › Compound Engineering › ce-doc-review

ce-doc-review

skill · 75 lines · MIT · skills/ce-doc-review/SKILL.md

The facts

Its description

Review requirements, plans, or specs with role-specific lenses. Use when the user wants to improve an existing planning document.

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

The agent picks this skill when the user asks to review, critique, or improve a planning document that already exists — a requirements doc, plan, or spec — rather than to write a new one. The description names role-specific lenses and an existing document, so a request to check or tighten a document on disk sets it off.

Things a person might say (the model's guesses)

  • “Review my plan at docs/plans/2026-04-18-user-auth.md before I start building.”
  • “Can you go over this spec and tell me what would trip up an implementer?”
  • “Improve the requirements doc for the billing feature — it's at docs/requirements/billing.md.”

A model's summary of when it is used.

A model's reading

What it takes when started

[mode:non-interactive] [path/to/document.{md,html}]

What to type after its name when you start it.

From its settingsline 4

Starts other agents

9 lines mention starting other agents (first 5 linked)

Lines in the file that mention starting another agent. Found by matching words, so treat them as pointers.

Found by matching wordsline 39 line 45 line 47 line 49 line 51

Files it mentions

references/modes.md, references/document-intake.md, references/persona-selection.md, references/dispatch.md (first 5 of 9 lines)

Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.

Found by matching wordsline 17 line 35 line 47 line 49 line 53

What it leads to

Other skills this one hands off to, calls, requires or offers instead, as a model read them.

A model's reading

What leads to it

Other skills that hand off to this one, call it, require it or offer it instead, as a model read them.

A model's reading

Names skills outside this collection

Skills the text names that are not in this collection, as a model read them.

A model's reading

Licence

MIT, from LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text
Other files in this skill (24) Close

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: ce-doc-review
3description: Review requirements, plans, or specs with role-specific lenses. Use when the user wants to improve an existing planning document.
4argument-hint: "[mode:non-interactive] [path/to/document.{md,html}]"
5---
6
7# Document Review
8
9Help the author finish a sound document they can use to carry out the agreed work. Find problems that would change that work's outcome or materially hinder execution, and resolve them within the authority already given. Judge the document by whether it guides correct work, not by how much detail it contains. Serious consequences warrant attention even when the defect is small. An adequate document needs no changes.
11Reviewer personas supply evidence; the judgment is yours. Check their claims against the whole document, project facts, and settled decisions. Correct proven errors that prevent an existing decision from being carried out, within the edit authority and reviewer requirements the synthesis reference states. Return only worthwhile improvements still needing permission, consequential choices or essential information only the user can supply, and useful observations.
13**Done when:** every selected reviewer has returned or is named as failed in Coverage, retained findings have a verified consequence for the agreed work, and every authorized correction assigned to Apply has been made and checked. Report that final state through the interactive approval or decision process, or return it as structured text in non-interactive mode.

Document Review

Help the author finish a sound document they can use to carry out the agreed work. Find problems that would change that work's outcome or materially hinder execution, and resolve them within the authority already given. Judge the document by whether it guides correct work, not by how much detail it contains. Serious consequences warrant attention even when the defect is small. An adequate document needs no changes.

Reviewer personas supply evidence; the judgment is yours. Check their claims against the whole document, project facts, and settled decisions. Correct proven errors that prevent an existing decision from being carried out, within the edit authority and reviewer requirements the synthesis reference states. Return only worthwhile improvements still needing permission, consequential choices or essential information only the user can supply, and useful observations.

Done when: every selected reviewer has returned or is named as failed in Coverage, retained findings have a verified consequence for the agreed work, and every authorized correction assigned to Apply has been made and checked. Report that final state through the interactive approval or decision process, or return it as structured text in non-interactive mode.

Raw lines 1 to 14
15## Interactive mode rules
17**Read `references/modes.md` before anything else.** It defines how the mode is detected, the non-interactive argument contract, and the question-tool rules: match the host's blocking question tool already in the current tool list (never call a user-facing question tool to discover it), pre-load it at the top of the interactive flow if it is listed but unloaded, and fall back to a numbered list only when the harness genuinely lacks one.
19Either way, a question that calls for a user decision calls the tool or falls back loudly. Narrating it as plain text is a bug.

Interactive mode rules

**Read references/modes.md before anything else.** It defines how the mode is detected, the non-interactive argument contract, and the question-tool rules: match the host's blocking question tool already in the current tool list (never call a user-facing question tool to discover it), pre-load it at the top of the interactive flow if it is listed but unloaded, and fall back to a numbered list only when the harness genuinely lacks one.

Either way, a question that calls for a user decision calls the tool or falls back loudly. Narrating it as plain text is a bug.

Raw lines 15 to 20
Reads a file references/modes.md :17
21## Artifact Root
23Resolve `<root>` **only** in the no-path interactive branch, which discovers the most recent plan under `<root>/plans/`. Every other run reads the document at the path it was handed. So an absolute-path or non-interactive review — `/tmp/plan.md`, possibly outside any repo — never depends on a repo root or a CE config it does not need.
25<!-- ce-docs-root:start -->
26**Resolve the CE artifact root `<root>` before composing any artifact path.**
28- **Read** `docs_root` from `<repo-root>/.compound-engineering/config.yaml` only (`<repo-root>` = `git rev-parse --show-toplevel`). Do not read it from `config.local.yaml`. Unset -> `<root>` is `docs`, exactly as before.
29- **Validate** a set value: a repo-relative directory whose real, symlink-resolved path stays inside the repo and is neither the repo root nor under `.git/`. Otherwise stop with an error naming `docs_root` and the value -- never fall back to `docs`.
30- **Use** `<root>` as the sole artifact location: create it if absent, compose each path as `<root>/<subdir>` with this skill's own subdirectory, and never also read `docs`.
31<!-- ce-docs-root:end -->

Artifact Root

Resolve <root> only in the no-path interactive branch, which discovers the most recent plan under <root>/plans/. Every other run reads the document at the path it was handed. So an absolute-path or non-interactive review — /tmp/plan.md, possibly outside any repo — never depends on a repo root or a CE config it does not need.

<!-- ce-docs-root:start --> **Resolve the CE artifact root <root> before composing any artifact path.**

  • Read docs_root from <repo-root>/.compound-engineering/config.yaml only (<repo-root> = git rev-parse --show-toplevel). Do not read it from config.local.yaml. Unset -> <root> is docs, exactly as before.
  • Validate a set value: a repo-relative directory whose real, symlink-resolved path stays inside the repo and is neither the repo root nor under .git/. Otherwise stop with an error naming docs_root and the value -- never fall back to docs.
  • Use <root> as the sole artifact location: create it if absent, compose each path as <root>/<subdir> with this skill's own subdirectory, and never also read docs.

<!-- ce-docs-root:end -->

Raw lines 21 to 32
33## Phase 1: Get and Analyze Document
35**Read `references/document-intake.md` now.** It covers how the document is obtained in each mode, what to do and say when no document is found, and the classification signals.
37Two of its rules apply to every later step.
39**Verify before any dispatch.** Every resolved path must be readable on disk. If one is not, dispatch **no** personas: reviewers read from the filesystem, so they cannot reach a path that exists only on an unchecked-out branch (issue #925).
41**Classify by content, not readiness labels or file path.** A unified artifact with only a Product Contract is **`unified-requirements`**; missing implementation sections are expected. Any implementation planning makes it **`unified-plan`**, including incomplete or blocked planning that needs review. Other artifacts use the legacy `requirements` / `plan` split.
43HTML unified artifacts take the same routes. Every fix lands in the document's native format; never insert markdown into HTML. That reference covers ID-bearing items. Pass the classification to each persona in the `{document_type}` slot.

Phase 1: Get and Analyze Document

**Read references/document-intake.md now.** It covers how the document is obtained in each mode, what to do and say when no document is found, and the classification signals.

Two of its rules apply to every later step.

Verify before any dispatch. Every resolved path must be readable on disk. If one is not, dispatch no personas: reviewers read from the filesystem, so they cannot reach a path that exists only on an unchecked-out branch (issue #925).

Classify by content, not readiness labels or file path. A unified artifact with only a Product Contract is **unified-requirements; missing implementation sections are expected. Any implementation planning makes it unified-plan**, including incomplete or blocked planning that needs review. Other artifacts use the legacy requirements / plan split.

HTML unified artifacts take the same routes. Every fix lands in the document's native format; never insert markdown into HTML. That reference covers ID-bearing items. Pass the classification to each persona in the {document_type} slot.

Raw lines 33 to 44
Starts an agent dispatch :39
45## Phase 2: Announce and Dispatch Personas
47Skip dispatch only when the completed-review reuse condition in `references/document-intake.md` passes; continue with that evidence at Phase 3.
49**Read `references/persona-selection.md`** for each conditional persona's activation signals and the announcement format. Two of those signals over-activate on plausible evidence: the sensitive-data bound on `security-lens-reviewer`, and the challenge-surface bar on `adversarial-document-reviewer`. Then read **`references/dispatch.md`** for payload variables, slicing, model tiering, and reviewer-failure handling.
51The team is `coherence-reviewer` and `feasibility-reviewer` always, plus each activated conditional persona. Announce the team briefly before any dispatch, and stay quiet while reviewers run.
53Dispatch generic subagents with **bounded parallelism** through the platform's subagent primitive. Give each one its `references/personas/<reviewer-name>.md` as `references/dispatch.md` describes. Never dispatch a standalone agent by type or name.
55A capacity rejection is backpressure, not reviewer failure: wait and retry. If capacity cannot recover and selected reviewers remain undispatched, collect and clean up any started cross-model jobs as `references/cross-model-review.md` describes, then stop as incomplete without synthesis, fixes, or a success handoff. Preserve collected outcomes and report which reviewers completed, failed, or could not run, and why.

Phase 2: Announce and Dispatch Personas

Skip dispatch only when the completed-review reuse condition in references/document-intake.md passes; continue with that evidence at Phase 3.

**Read references/persona-selection.md** for each conditional persona's activation signals and the announcement format. Two of those signals over-activate on plausible evidence: the sensitive-data bound on security-lens-reviewer, and the challenge-surface bar on adversarial-document-reviewer. Then read **references/dispatch.md** for payload variables, slicing, model tiering, and reviewer-failure handling.

The team is coherence-reviewer and feasibility-reviewer always, plus each activated conditional persona. Announce the team briefly before any dispatch, and stay quiet while reviewers run.

Dispatch generic subagents with bounded parallelism through the platform's subagent primitive. Give each one its references/personas/<reviewer-name>.md as references/dispatch.md describes. Never dispatch a standalone agent by type or name.

A capacity rejection is backpressure, not reviewer failure: wait and retry. If capacity cannot recover and selected reviewers remain undispatched, collect and clean up any started cross-model jobs as references/cross-model-review.md describes, then stop as incomplete without synthesis, fixes, or a success handoff. Preserve collected outcomes and report which reviewers completed, failed, or could not run, and why.

Raw lines 45 to 56
Starts an agent Dispatch :45
Starts an agent dispatch :47
Reads a file references/dispatch.md :49
Starts an agent subagents :53
Starts an agent subagent :53
57### Cross-Model Judgment Pass
59Run this pass if any of the **conditional judgment trio** was activated: `adversarial-document-reviewer`, `product-lens-reviewer`, `security-lens-reviewer`. Follow `references/cross-model-review.md`, which defines the whole pass: confirming the host, the one target and route used for the whole document, the disclosure before anything leaves the machine, and how peers are launched, collected, and folded in.
61The pass is additive and non-blocking: a failure or timeout stops nothing and is named in Coverage. The checkout's `cross_model_review_mode` setting is checked first and can skip the pass with a named reason. Filter recipients only when `CROSS_MODEL_PEERS` is set — unset means unfiltered, not unsanctioned. Never silently change an explicit model or recipient.

Cross-Model Judgment Pass

Run this pass if any of the conditional judgment trio was activated: adversarial-document-reviewer, product-lens-reviewer, security-lens-reviewer. Follow references/cross-model-review.md, which defines the whole pass: confirming the host, the one target and route used for the whole document, the disclosure before anything leaves the machine, and how peers are launched, collected, and folded in.

The pass is additive and non-blocking: a failure or timeout stops nothing and is named in Coverage. The checkout's cross_model_review_mode setting is checked first and can skip the pass with a named reason. Filter recipients only when CROSS_MODEL_PEERS is set — unset means unfiltered, not unsanctioned. Never silently change an explicit model or recipient.

Raw lines 57 to 62
63## Phases 3-5: Synthesis, Presentation, and Next Action
65Wait until every dispatched agent has returned, including any cross-model `<reviewer-name>-<provider>.json` returns. Then read `references/synthesis-and-presentation.md`. It defines synthesis, how each finding is routed by confidence and fix class, fix application, the non-interactive result format, and the handoff to the routing question. When promoting agreement, only an artifact with `independence_verified: true` counts as an independent reviewer.
67**Interactive mode only.** Read `references/walkthrough.md` for the routing question, the per-finding walk-through, and the completion report. Read `references/bulk-preview.md` for the preview behind the walk-through's auto-resolve. Load neither before review evidence is complete, whether newly collected or validly reused, and a non-interactive run never loads them at all — it stops at the structured review result.
69---
71Read or pass only the persona prompts the current review selected, each to its own reviewer. The template and schema the dispatch payload fills:
73@./references/subagent-template.md
75@./references/findings-schema.json

Phases 3-5: Synthesis, Presentation, and Next Action

Wait until every dispatched agent has returned, including any cross-model <reviewer-name>-<provider>.json returns. Then read references/synthesis-and-presentation.md. It defines synthesis, how each finding is routed by confidence and fix class, fix application, the non-interactive result format, and the handoff to the routing question. When promoting agreement, only an artifact with independence_verified: true counts as an independent reviewer.

Interactive mode only. Read references/walkthrough.md for the routing question, the per-finding walk-through, and the completion report. Read references/bulk-preview.md for the preview behind the walk-through's auto-resolve. Load neither before review evidence is complete, whether newly collected or validly reused, and a non-interactive run never loads them at all — it stops at the structured review result.


Read or pass only the persona prompts the current review selected, each to its own reviewer. The template and schema the dispatch payload fills:

@./references/subagent-template.md

@./references/findings-schema.json

Raw lines 63 to 75
Starts an agent dispatched :65
Reads a file references/walkthrough.md :67
Starts an agent dispatch :71
Starts an agent subagent :73

From EveryInc/compound-engineering-plugin at 3449230, 2026-10-31. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.