> ## Documentation Index
> Fetch the complete documentation index at: https://rapidreview.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Reviewer handoff

> How each client gets a genuinely separate agent to review a plan, an attempt, a reflection, or a consolidation.

```mermaid theme={"theme":{"light":"github-light","dark":"dark-plus"}}
sequenceDiagram
    participant P as Producer session
    participant B as Brain
    participant R as Reviewer session
    P->>B: review.request(target, role)
    B-->>P: capability (shown once, valid 1 h) + handoff prompt
    P->>R: handoff prompt, unchanged
    R->>B: review.start(request_id, capability, caller_session_id)
    B-->>R: pinned snapshot + bounded context
    R->>B: review.submit(verdict, synopsis, return_to?)
    B-->>P: gate satisfied, or routed back
```

Four workflow roles: `design_reviewer`, `experiment_reviewer`, `reflection_reviewer`, `consolidation_reviewer` — each with a matching skill (`experiment-design-review`, `experiment-attempt-review`, `project-reflection-review`, `consolidation-review`). `review.request` also accepts `human` and `automated_check` for non-workflow reviews. Concept: [Experiments and reviews](/docs/merv/concepts/experiments-and-reviews).

## Rules

* `caller_session_id` is required on `review.start` and must differ from the producer's session id.
* The capability is stored as a hash and expires after **1 hour**. Lost or expired? Call `review.request` again — it closes every prior open request for that target and issues a fresh capability.
* Independence is a workflow guarantee (different session ids), not cryptographic proof that two different agents ran. Gemini can give a reviewer a truly separate MCP session (inline `mcpServers` frontmatter); the shipped shared agents don't use it, so they stay client-neutral.

## Per client

| Client                        | How the reviewer is spawned                                                                                                                                       |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Claude Code                   | Agent tool, `subagent_type` = `merv:experiment-design-review` / `merv:experiment-attempt-review` / `merv:project-reflection-review` / `merv:consolidation-review` |
| Codex                         | The review skill spawns the reviewer                                                                                                                              |
| GitHub Copilot CLI, Qwen Code | Auto-discovered reviewer agents                                                                                                                                   |
| Cursor                        | `/experiment-design-review` or natural language; clean context window                                                                                             |
| Gemini CLI                    | Agents exposed as tools; automatic, or force with `@experiment-design-review`                                                                                     |
| Kilo Code, OpenCode           | Four plugin-injected read-only subagents (`edit` and `bash` denied) that load the matching skill; on OpenCode pass the child session id as `caller_session_id`    |
| Hermes Agent                  | `delegate_task` with the prompt unchanged; lenses via `delegate_task(tasks=[…])` (default concurrency 3 → five lenses in two waves)                               |
| OpenHands, Replit Agent       | Second session or agent with the skill and the handoff prompt, or inline                                                                                          |
