👁️ 218
👍 190
📅 2026-06-13 收录
🔄 2026-06-13 更新
Embedded Code Review Expert

Embedded Code Review Expert

🗄 Embedded Code Review Expert

正文内容

嵌入式代码审查专家(Embedded Code Review Expert)

概述

使用 双模型交叉审查(dual-model cross-review) 对嵌入式/固件项目执行结构化代码审查:Claude Code 与 Codex 独立审查同一份 diff,随后对双方发现的问题进行交叉比对,以识别单模型审查可能遗漏的盲点。

目标环境:裸机 MCU、RTOS(FreeRTOS/Zephyr/ThreadX)、Linux 嵌入式系统、混合 C/C++ 固件。

触发条件

当用户请求审查嵌入式/固件代码变更时自动激活。示例包括:

  • “review firmware-pro2 的改动”
  • “review the NFC changes”
  • /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 风格、命名、文档、次要建议 可选改进

阶段 0:预检(Preflight)——范围与上下文

  1. 运行 scripts/prepare-diff.sh[diff_range] 提取以下信息:

    • 仓库信息(分支、最新提交)
    • 目标平台识别(MCU 型号、RTOS 类型、编译器)
    • Diff 统计信息及完整 diff 内容
  2. 评估审查范围:

    • 无变更:通知用户;可提供审查暂存区变更或指定提交范围的选项。
    • 小规模 diff(≤100 行):默认启用单模型审查。
    • 大规模 diff(>500 行):先按文件/模块生成摘要,再按子系统分批审查。
    • 触及关键路径(如 ISR、DMA、加密、NFC、启动代码):始终推荐启用双模型审查。
  3. 构建审查上下文包(REVIEW_CONTEXT):

    REVIEW_CONTEXT = {
      repo_info: (branch, MCU, RTOS, compiler),
      diff: (完整的 git diff 文本),
      references: (来自 references/ 目录的相关检查清单章节),
      focus_areas: (用户指定或自动识别的关键路径)
    }

阶段 2:双模型交叉审查(ACP)

当触发双模型审查时:

步骤 1:准备审查载荷(review payloads)

基于同一份 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] 问题标题
- 问题所在
- 可能导致的后果
- 修复方法

请勿忽略低严重性问题。全部报告。

步骤 2:并行启动 ACP 会话

sessions_spawn(runtime="acp", agentId="claude-code", task=claude_task)
sessions_spawn(runtime="acp", agentId="codex", task=codex_task)

两个会话同步运行,等待双方均完成。

步骤 3:交叉比对发现结果

双方完成后,执行结果分析:

  1. 共识问题(双方均标记相同问题):高置信度 —— 确认为真实缺陷
  2. Claude 独有发现:人工复核有效性 —— 可能为误报,也可能是真实捕获
  3. Codex 独有发现:人工复核有效性 —— 异构视角可能覆盖 Claude 的盲区
  4. 矛盾结论(一方判定正常,另一方判定为缺陷):标记为需人工判断项

最终映射至统一严重性等级(P0–P3)。


发现问题汇总