Expert code review for embedded/firmware projects with dual-model cross-review (Claude + Codex via ACP). Detects memory safety, interrupt hazards, RTOS pitfalls, hardware interface bugs, and C/C++ anti-patterns.
Embedded Code Review Expert
Overview
Perform structured code review of embedded/firmware projects using dual-model cross-review: Claude Code and Codex independently review the same diff, then findings are cross-compared to catch blind spots that single-model review misses.
Side channels, fault injection, input validation, stack canaries
→ Skip to Phase 3: Output for single-model results.
Phase 2: Dual-Model Cross-Review (ACP)
When dual-model review is triggered:
Step 1: Prepare review payloads
Build two independent review tasks from the same REVIEW_CONTEXT:
Claude Code task:
You are a senior embedded systems engineer reviewing firmware code changes.
[REVIEW_CONTEXT: repo info, diff, focus areas]
Review checklist (apply all that are relevant):
- Memory safety (references/memory-safety.md)
- Interrupt & concurrency (references/interrupt-safety.md)
- Hardware interfaces (references/hardware-interface.md)
- C/C++ pitfalls (references/c-pitfalls.md)
- Architecture & security
Output format: For each finding, provide:
[P0/P1/P2/P3] [file:line] Title
- Description
- Risk
- Suggested fix
Be thorough. Flag everything you find, even if uncertain — mark uncertain items with [?].
Codex task:
You are an independent code reviewer for embedded/firmware projects.
Your job is to find bugs, security issues, and correctness problems.
[REVIEW_CONTEXT: repo info, diff, focus areas]
Focus on:
1. Memory corruption risks (buffer overflow, use-after-free, stack overflow)
2. Concurrency bugs (race conditions, missing volatile, ISR safety)
3. Hardware interface errors (timing, register access, peripheral init)
4. Logic errors and edge cases
5. Security vulnerabilities
Output: List every issue found as:
[SEVERITY: critical/high/medium/low] [file:line] Issue title
- What's wrong
- What could happen
- How to fix
Do NOT skip low-severity items. Report everything.
Both run simultaneously. Wait for both to complete.
Step 3: Cross-compare findings
After both complete, analyze results:
Consensus findings (both flagged same issue): HIGH CONFIDENCE — these are real bugs
Claude-only findings: Review for validity — may be false positive or genuine catch
Codex-only findings: Review for validity — heterogeneous perspective may catch Claude's blind spots
Contradictions: Flag for human judgment — one says it's fine, other says it's a bug
Map to unified severity levels (P0-P3).
Phase 3: Output Format
## Embedded Code Review Summary**Target**: [MCU/Board] | [RTOS/Bare-metal] | [Compiler]
**Branch**: [branch name]
**Files reviewed**: X files, Y lines changed
**Review mode**: [Single-model / Dual-model (Claude Code + Codex)]
**Overall assessment**: [APPROVE / REQUEST_CHANGES / COMMENT]
---
## Findings
### 🔴 P0 - Critical (must block)
(none or list)
### 🟠 P1 - High (fix before merge)
1. **[file:line]** Brief title [🤝 consensus / 🔵 Claude-only / 🟢 Codex-only]
- Description of issue
- Risk: what can go wrong
- Suggested fix
### 🟡 P2 - Medium (fix or follow-up)
...
### ⚪ P3 - Low (optional)
...
---
## Cross-Review Analysis (dual-model only)
| Metric | Count |
|--------|-------|
| 🤝 Consensus (both found) | X |
| 🔵 Claude-only | Y |
| 🟢 Codex-only | Z |
| ⚠️ Contradictions | W |
### Notable disagreements
(list any contradictions with both perspectives)
---
## Hardware/Timing Concerns
(register access, peripheral init, timing-sensitive code)
## Architecture Notes
(layering, testability, portability observations)
Phase 4: Next Steps
---
## Next Steps
Found X issues (P0: _, P1: _, P2: _, P3: _).
**How would you like to proceed?**1.**Fix all** — implement all suggested fixes
2.**Fix P0/P1 only** — address critical and high priority
3.**Fix specific items** — tell me which issues to fix
4.**Re-review with dual-model** — run cross-review (if single-model was used)
5.**No changes** — review complete
Important: Do NOT implement changes until user explicitly confirms.