Skip to content

Commit 70ddd60

Browse files
jcasimirclaude
andcommitted
Document pluggable reviewer system
- Root README: add /ce:refresh as a post-install step - Plugin README: replace hardcoded reviewer list with docs for the pluggable system (setup, source configuration, custom reviewers, categories, conflict resolution) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent e0a4460 commit 70ddd60

2 files changed

Lines changed: 68 additions & 32 deletions

File tree

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@ Each cycle compounds: brainstorms sharpen plans, plans inform future plans, revi
5757
/plugin install compound-engineering
5858
```
5959

60+
After installing, restart Claude and sync the reviewer personas:
61+
62+
```
63+
/ce:refresh
64+
```
65+
66+
This downloads reviewer persona files from the configured source repos. See [Reviewer Personas](plugins/compound-engineering/README.md#reviewer-personas) for how to customize your review team.
67+
6068
### Cursor
6169

6270
```text

plugins/compound-engineering/README.md

Lines changed: 60 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -92,41 +92,69 @@ The primary entry points for engineering work, invoked as slash commands:
9292
| `/lfg` | Full autonomous engineering workflow |
9393
| `/slfg` | Full autonomous workflow with swarm mode for parallel execution |
9494

95-
## Agents
95+
## Reviewer Personas
9696

97-
Agents are specialized subagents invoked by skills — you typically don't call these directly.
97+
Reviewer personas are **pluggable** — they live in external Git repos and are synced into the plugin via `/ce:refresh`. This lets you customize your review team without forking the plugin.
9898

99-
### Review
99+
### Setup
100100

101-
| Agent | Description |
102-
|-------|-------------|
103-
| `agent-native-reviewer` | Verify features are agent-native (action + context parity) |
104-
| `api-contract-reviewer` | Detect breaking API contract changes |
105-
| `cli-agent-readiness-reviewer` | Evaluate CLI agent-friendliness against 7 core principles |
106-
| `cli-readiness-reviewer` | CLI agent-readiness persona for ce:review (conditional, structured JSON) |
107-
| `architecture-strategist` | Analyze architectural decisions and compliance |
108-
| `code-simplicity-reviewer` | Final pass for simplicity and minimalism |
109-
| `correctness-reviewer` | Logic errors, edge cases, state bugs |
110-
| `data-integrity-guardian` | Database migrations and data integrity |
111-
| `data-migration-expert` | Validate ID mappings match production, check for swapped values |
112-
| `data-migrations-reviewer` | Migration safety with confidence calibration |
113-
| `deployment-verification-agent` | Create Go/No-Go deployment checklists for risky data changes |
114-
| `dhh-rails-reviewer` | Rails review from DHH's perspective |
115-
| `julik-frontend-races-reviewer` | Review JavaScript/Stimulus code for race conditions |
116-
| `kieran-rails-reviewer` | Rails code review with strict conventions |
117-
| `kieran-python-reviewer` | Python code review with strict conventions |
118-
| `kieran-typescript-reviewer` | TypeScript code review with strict conventions |
119-
| `maintainability-reviewer` | Coupling, complexity, naming, dead code |
120-
| `pattern-recognition-specialist` | Analyze code for patterns and anti-patterns |
121-
| `performance-oracle` | Performance analysis and optimization |
122-
| `performance-reviewer` | Runtime performance with confidence calibration |
123-
| `reliability-reviewer` | Production reliability and failure modes |
124-
| `schema-drift-detector` | Detect unrelated schema.rb changes in PRs |
125-
| `security-reviewer` | Exploitable vulnerabilities with confidence calibration |
126-
| `security-sentinel` | Security audits and vulnerability assessments |
127-
| `testing-reviewer` | Test coverage gaps, weak assertions |
128-
| `project-standards-reviewer` | CLAUDE.md and AGENTS.md compliance |
129-
| `adversarial-reviewer` | Construct failure scenarios to break implementations across component boundaries |
101+
```bash
102+
/ce:refresh
103+
```
104+
105+
On first run, this creates `~/.config/compound-engineering/reviewer-sources.yaml` with a default source and syncs all reviewer files. Run it again anytime to pull updates.
106+
107+
### How it works
108+
109+
- Each reviewer is a self-contained `.md` file with frontmatter defining its `category` (always-on, conditional, stack, etc.) and `select_when` criteria
110+
- The orchestrator reads frontmatter to decide which reviewers to spawn for a given diff
111+
- A `_template-reviewer.md` ships with the plugin as a starting point for writing your own
112+
113+
### Configuring sources
114+
115+
Edit `~/.config/compound-engineering/reviewer-sources.yaml`:
116+
117+
```yaml
118+
sources:
119+
# Your reviewers (higher priority -- listed first)
120+
- name: my-team
121+
repo: myorg/our-reviewers
122+
branch: main
123+
path: .
124+
125+
# Default reviewers
126+
- name: ce-default
127+
repo: JumpstartLab/ce-reviewers
128+
branch: main
129+
path: .
130+
except:
131+
- kieran-python-reviewer
132+
```
133+
134+
- **Sources listed first win** on filename conflicts
135+
- **`except`** skips specific reviewers from a source
136+
- **`branch`** lets one repo host multiple reviewer sets
137+
138+
### Creating a custom reviewer
139+
140+
1. Copy `_template-reviewer.md` from `agents/review/`
141+
2. Fill in the persona, hunting targets, confidence calibration, and output format
142+
3. Set `category` and `select_when` in frontmatter
143+
4. Add to your reviewer repo and run `/ce:refresh`
144+
145+
### Categories
146+
147+
| Category | When spawned |
148+
|----------|-------------|
149+
| `always-on` | Every review |
150+
| `conditional` | When the diff touches the reviewer's domain |
151+
| `stack` | Like conditional, scoped to a language/framework |
152+
| `plan-review` | During plan review phases |
153+
| `synthesis` | After other reviewers, to merge findings |
154+
155+
## Agents
156+
157+
Agents are specialized subagents invoked by skills — you typically don't call these directly.
130158

131159
### Document Review
132160

0 commit comments

Comments
 (0)