# automotive-code-compare **Repository Path**: Beautiful_Man/automotive-code-compare ## Basic Information - **Project Name**: automotive-code-compare - **Description**: 面向汽车电子嵌入式软件的代码对比 Codex Skill,校验修改前快照并识别受控源码覆盖与高风险变更。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-25 - **Last Updated**: 2026-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Automotive Code Compare [English](README_EN.md) | 简体中文 一个面向汽车电子嵌入式软件的 Codex Skill:校验 `automotive-code-snapshot` 生成的修改前基线,并与当前仓库逐文件比较,识别受控源码覆盖、接口变化、范围外修改和关键资产变化。 > 本项目提供保守的代码完整性门禁,不证明行为等价、构建成功或标准符合性。`PASS` 仅表示未检测到受控软件输入覆盖。 ## 检测内容 - 原文件、函数或宏删除; - 函数签名变化和已有函数体修改; - 大比例重写与文件移动; - 计划范围外修改; - 驱动、MCAL/HAL、BSP、启动、链接、Bootloader、安全、供应商、生成代码、AUTOSAR、接口、标定、配置、依赖和工具链变化; - 新增全局函数与已有符号冲突; - 符号链接重定向、Git/子模块上下文变化; - 修改后无法读取原始内容的受控文件; - 可重复生成的临时构建输出,并将其与代码门禁隔离。 ## 门禁结果 | 结果 | 退出码 | 含义 | | --- | ---: | --- | | `PASS` | 0 | 未检测到受控软件输入覆盖;仍须执行项目规定的验证活动。 | | `REVIEW` | 2 | 已有代码发生变化,但未命中强制停止条件;需要逐项解释和人工评审。 | | `STOP` | 3 | 检测到删除、接口变化、重大覆盖、范围外或受保护资产变化等高风险项;停止交付并处理。 | | 输入错误 | 1 | 快照缺失、损坏、完整性校验失败或参数无效。 | ## 环境要求 - Python 3.9 或更高版本; - 由 [automotive-code-snapshot](https://gitee.com/Beautiful_Man/automotive-code-snapshot) 创建且未经修改的原始快照; - 运行时仅使用 Python 标准库。 ## 安装 作为个人 Codex Skill 安装: ```powershell git clone https://gitee.com/Beautiful_Man/automotive-code-compare.git "$env:USERPROFILE\.codex\skills\automotive-code-compare" ``` 也可以克隆到任意目录,直接运行 `scripts/compare_snapshot.py`,无需 Codex。 ## 快速开始 完成代码修改后,在 Codex 中调用: ```text 使用 $automotive-code-compare,将当前仓库与本次修改前保存的 manifest.json 比较,并完整列出覆盖风险。 ``` 直接使用命令行: ```bash python scripts/compare_snapshot.py \ --snapshot /path/to/repository/.automotive-snapshots//manifest.json ``` 不要在多个快照中自行选择“最新”快照。必须使用本次变更开始前保存的原始 `MANIFEST`。 ## 输出 默认报告目录为: ```text <仓库>/.automotive-comparisons/<快照编号>/<比较编号>/ ``` 每次比较创建独立目录,包含: - 经过完整性校验的 JSON 报告; - 面向工程评审的中文 Markdown 报告; - 逐文件统一格式 diff; - 报告 SHA-256; - 机器可读的 `COMPARISON_ID`、`GATE`、`REPORT_JSON`、`REPORT_MARKDOWN` 和 `REPORT_SHA256` 输出。 检测策略和误差边界见 [references/detection-policy.md](references/detection-policy.md),报告字段见 [references/comparison-format.md](references/comparison-format.md)。 ## 正确工作流 ```text 修改前:automotive-code-snapshot -> 保存原始 MANIFEST 修改中:完成代码与配置变更 修改后:automotive-code-compare -> PASS / REVIEW / STOP 交付前:编译 + 静态分析 + 单元/集成/目标硬件测试 + 人工评审 ``` ## 安全与边界 - 工具不会自动执行清理、暂存、提交、恢复或回滚。 - 不得重建快照来掩盖比较结果,也不得编辑快照清单、校验和或内容数据块。 - 报告用于发现文本级和结构级风险,不能证明行为等价。 - 构建输出被排除不代表构建成功。 - 本工具不宣称符合或通过 ISO 26262、Automotive SPICE、ISO/SAE 21434、MISRA、AUTOSAR 或任何工具资格认证。 ## 项目结构 ```text agents/openai.yaml Codex 展示信息与默认提示词 references/ 检测策略、报告格式和评审说明 scripts/compare_snapshot.py 快照校验与比较脚本 scripts/test_compare_snapshot.py 单元测试 SKILL.md Skill 工作流与强制约束 ``` ## 测试 ```bash python -m unittest discover -s scripts -p "test_*.py" -v ``` ## 许可证 本项目采用 [Apache License 2.0](LICENSE) 开源。