产品介绍
使用 双模型交叉审查(dual-model cross-review) 对嵌入式/固件项目执行结构化代码审查:Claude Code 与 Codex 独立审查同一份 diff,随后对双方发现的问题进行交叉比对,以识别单模型审查可能遗漏的盲点。
目标环境:裸机 MCU、RTOS(FreeRTOS/Zephyr/ThreadX)、Linux 嵌入式系统、混合 C/C++ 固件。
当用户请求审查嵌入式/固件代码变更时自动激活。示例包括:
/embedded-review ~/Documents/dec/firmware-pro2/embedded-review ~/Documents/dec/firmware-pro2 HEAD~5..HEAD/embedded-review| 等级 | 名称 | 描述 | 处理建议 |
|---|---|---|---|
| P0 | Critical | 内存破坏、中断安全性违规、安全漏洞、设备变砖风险 | 必须阻断合入(block merge) |
| P1 | High | 竞态条件、资源泄漏、未定义行为、RTOS 误用 | 合入前应修复 |
| P2 | Medium | 代码异味、可移植性问题、错误处理缺失、次优模式 | 应修复或创建后续任务 |
| P3 | Low | 风格、命名、文档、次要建议 | 可选改进 |
运行 scripts/prepare-diff.sh 提取以下信息:
评估审查范围:
构建审查上下文包(REVIEW_CONTEXT):
REVIEW_CONTEXT = {
repo_info: (branch, MCU, RTOS, compiler),
diff: (完整的 git diff 文本),
references: (来自 references/ 目录的相关检查清单章节),
focus_areas: (用户指定或自动识别的关键路径)
}
当触发双模型审查时:
基于同一份 REVIEW_CONTEXT 构建两个独立的审查任务:
Claude Code 任务:
你是一名资深嵌入式系统工程师,正在审查固件代码变更。 [REVIEW_CONTEXT: 仓库信息、diff、关注区域] 审查清单(仅应用相关条目): - 内存安全性(references/memory-safety.md) - 中断与并发安全(references/interrupt-safety.md) - 硬件接口(references/hardware-interface.md) - C/C++ 常见陷阱(references/c-pitfalls.md) - 架构与安全性 输出格式:对每个发现问题,请提供: [P0/P1/P2/P3] [file:line] 标题 - 描述 - 风险 - 建议修复方式 请务必详尽。标记所有发现的问题,即使存疑 —— 对不确定项标注 `[?]`。
Codex 任务:
你是一名独立的嵌入式/固件代码审查员。 你的职责是发现缺陷、安全问题及正确性问题。 [REVIEW_CONTEXT: 仓库信息、diff、关注区域] 重点关注: 1. 内存破坏风险(缓冲区溢出、释放后使用、栈溢出) 2. 并发缺陷(竞态条件、缺少 volatile、ISR 安全性) 3. 硬件接口错误(时序、寄存器访问、外设初始化) 4. 逻辑错误与边界情况 5. 安全漏洞 输出格式:逐条列出所有发现问题: [SEVERITY: critical/high/medium/low] [file:line] 问题标题 - 问题所在 - 可能导致的后果 - 修复方法 请勿忽略低严重性问题。全部报告。
sessions_spawn(runtime="acp", agentId="claude-code", task=claude_task) sessions_spawn(runtime="acp", agentId="codex", task=codex_task)
两个会话同步运行,等待双方均完成。
双方完成后,执行结果分析:
最终映射至统一严重性等级(P0–P3)。