C-Review

Connect-to-Review. Bridge skill that wraps the official Anthropic code-review plugin and runs it alongside Propel's own domain auditors, merging both into a single Gate 3 card.

Why a Bridge, Not a Copy?

The Anthropic code-review plugin ships a mature, general-purpose review rubric maintained by the Claude Code team. Propel's code-reviewer agent and domain auditors (silent-bug-detector, paper-alignment-auditor, jax-logic-auditor, regression-guard) go deeper on research-specific concerns but cover less general ground.

Running both gives the widest coverage. c-review is the contract that keeps them from stepping on each other — de-duplicating findings, tagging sources, and producing one merged card.

Plugin Skill Pattern

Like c-codex, c-review does not implement the review itself — it wraps a plugin the user installs separately. The skill owns the interaction contract; the plugin provides the tool.

When It Triggers

TriggerDetails
Manual"/c-review", "run the code-review plugin", "anthropic review"
Gate 3Substantive diffs (>30 lines, or any diff touching model / loss / data / training-loop code)
Pre-PRBefore gh pr create, when the user wants an external-rubric pass

c-review is explicit-invocation or Gate 3 only. It does NOT auto-fire on every edit — Propel's native code-reviewer agent remains the always-on default for routine reviews.

First-Run Setup

On first invocation in a repo, Claude checks whether the code-review plugin is installed. If not, it points the user to the plugin's README for install instructions and pauses until setup is confirmed. If the plugin's slash command name differs from the default, Claude asks the user to confirm the exact invocation — it never fabricates plugin syntax.

The Interaction Contract

The plugin is a tool, not a voice to the user. Every exchange follows this shape:

  1. Claude assembles the review target. Identify the diff in scope (uncommitted, staged, commit range, or PR). List the files. State one line of context on what the diff implements.
  2. Claude runs the plugin against that target using its documented invocation. Capture the raw output.
  3. Claude runs Propel's domain auditors in parallel — pick the relevant ones from the auto-dispatch table (silent-bug-detector always; plus paper-alignment-auditor / jax-logic-auditor / regression-guard as the diff requires).
  4. Claude merges and de-duplicates findings. Plugin + auditor findings often overlap. One finding, one line. Tag each with its source.
  5. Claude presents a unified Gate 3 card. User decides what to act on.
No Unfiltered Pass-Through

The plugin's raw output is never passed through to the user, nor used to silently rewrite code. Findings always go through the merge + attribution step.

Output Format

┌─ /c-review — Gate 3 ────────────────────────────────┐
│ Diff in scope:                                            │
│   <files, line counts>                                    │
│                                                           │
│ Findings (merged, de-duplicated):                         │
│   • [plugin]    <finding> — file:line (severity)          │
│   • [silent-bug] <finding> — file:line (severity)         │
│   • [both]      <finding> — file:line (severity)          │
│                                                           │
│ Disagreements:                                            │
│   • <plugin says X, auditor says Y — Claude's read>       │
│                                                           │
│ Not worth acting on (noted, filtered):                    │
│   • <finding> — reason                                  │
│                                                           │
│ Recommended action:                                       │
│   <1–2 lines, ordered by severity>                        │
└────────────────────────────────────────────────────────┘

Attribution matters. The user must see which signal came from which source so they can calibrate trust.

Relationship to Propel's Own code-reviewer

SituationUse
Every code change (auto)Propel code-reviewer agent
Gate 3 on a substantive diff/c-review (both, merged)
Pre-PR pass/c-review
Trivial one-line editNeither — skip

If the plugin and Propel's agent contradict each other, the disagreement is surfaced explicitly in the output card. Claude does not silently pick one.

Guardrails

GuardrailWhy
Don't auto-fireRoutine edits use Propel's own auditors. /c-review is explicit or Gate 3 only.
Plugin proposes, Claude implementsPlugin never writes to the repo directly.
De-duplicate aggressivelySame issue from plugin + auditor is one finding tagged [both], not two.
Filter noiseStyle nits that conflict with project conventions go in "Not worth acting on" with a reason, not into the findings list.
Respect the gate/c-review produces a Gate 3 card; it does not auto-approve the transition.