When using an LLM to generate production code or technical prose, the primary failure mode is rarely generation capability—it is self-review bias. Within a single context window, no matter how harshly you prompt the model to "critique rigorously and spot all edge cases," the model inevitably operates under the momentum of its own prior generation, quickly declaring: "Everything looks solid and fully compliant."
With the release of OpenClaw v2026.9.5 and its guided specialist teams, many developers immediately run openclaw agents team create. But executing that command creates four separate workspaces in your environment: a Coordinator, a Researcher, a Writer, and a Reviewer. For individual engineers and lean teams, managing four folders, four independent SQLite session databases, and a complex delegation hierarchy introduces massive friction and cognitive noise.
A much leaner engineering solution exists: Do not create a four-agent bureaucracy. Attach exactly one dedicated Reviewer specialist to your primary main agent.
By applying the time-tested Maker-Checker pattern, you achieve rigorous verification with minimal operational overhead.
Why Just a Reviewer?
In multi-agent systems, it is tempting to fall into role-playing theatrics. Decomposing a straightforward programming task into a researcher, a writer, and an orchestrator often wastes 80% of tokens on conversational pleasantries and cross-agent serializations.
Worse, creating a standalone coordinator can leave delegation paths dangling. OpenClaw's bundled coordinator preset points to standard specialist IDs by default; if those roles are missing, delegation fails.
Attaching a single, dedicated Reviewer yields three decisive architectural advantages:
- Context Hygiene: The primary agent's context is saturated with exploratory trials, prompt constraints, and design trade-offs. The Reviewer agent starts fresh: its context contains only the generated artifact and the explicit verification rules. It evaluates the code without cognitive baggage.
- Adversarial Separation of Concerns: The Maker optimizes for implementation; the Checker optimizes for falsification. This structural separation breaks single-session confirmation bias.
- Zero Orchestration Tax: You talk directly to your primary agent. Once implementation completes, it invokes the Reviewer for an offline pass. No intermediary coordinator is needed.
3 Steps to Implementation
Wiring a lean Maker-Checker pair in OpenClaw requires three simple steps.
Step 1: Add the Reviewer via CLI
Instead of running team create, add only the Reviewer role:
openclaw agents add code-reviewer --role reviewer
OpenClaw provisions a dedicated workspace (e.g., ~/.openclaw/workspaces/code-reviewer) and an isolated SQLite session store. It automatically writes the official Reviewer behavioral contract into AGENTS.md.
Step 2: Configure Delegation on the Primary Agent
In your main agent's configuration, grant access to code-reviewer and set the delegation preference:
{
"agents": {
"main": {
"allowAgents": ["code-reviewer"],
"delegationMode": "prefer"
}
}
}
-
allowAgents: An explicit whitelist preventing the primary agent from spawning arbitrary or non-existent agents. -
delegationMode: "prefer": Prompt-level guidance directing the primary agent to spawn the reviewer once drafting is complete.
Step 3: Enforce the Reviewer Contract
OpenClaw's official reviewer template in AGENTS.md enforces four critical boundaries:
- Audit-Only Authority: The Reviewer is strictly prohibited from mutating artifacts. The authority to edit stays with the primary agent and the human developer.
- Three-Part Findings: Every issue must specify the exact location (path and lines), the requirement or test violated, and a concrete patch recommendation.
- Blockers vs. Optional: The report must clearly separate critical defects (Blockers) from stylistic tweaks (Optional), preventing minor formatting issues from stalling delivery.
- No Cross-Specialist Cycles: Findings return strictly to the caller; the Reviewer cannot initiate lateral conversations with other services.
What a Real Review Report Looks Like
When the primary agent completes an implementation and spawns code-reviewer, it receives a structured markdown artifact:
# Code Review Report
Status: REJECTED (1 Blocker, 1 Optional)
## [BLOCKER] Race Condition During Concurrent Refresh
- Location: src/auth/token_manager.py:42-58
- Violation: Concurrency safety policy (only one active refresh request allowed)
- Evidence: Multiple coroutines catching TokenExpiredError trigger duplicate HTTP requests.
- Fix: Introduce asyncio.Lock before the refresh branch, verifying validity again after acquiring the lock (Double-Checked Locking).
## [OPTIONAL] Structured Logging Missing
- Location: src/auth/token_manager.py:65
- Suggestion: Format log output as JSON with trace_id.
The primary agent patches the blocker and requests a second read. Once the status reports APPROVED (0 Blockers), the check passes.
Pitfalls to Avoid
- Do Not Add a Lone Coordinator: An orchestrator without downstream specialists will produce configuration errors or hallucinations.
-
preferIs Not a Hard Enforcer:delegationMode: preferis prompt guidance. For consistent invocation, explicitly state in your initial prompt: "After implementing the module, invoke code-reviewer for verification." - Internal Handback Is Not External Clearance: A Reviewer approval certifies code quality, but deployment, merging, or publishing still requires human review.

Top comments (0)