使用 TDD 与正常提交门禁开发¶
本工作流保留当前 C11 架构、格式与显式证据。Codex 负责平台维护;独立 agent 审查高风险变更。虚构人员或本地文件都不能建立 GitHub 分支保护。
安装并检查工具¶
先完成固定源码与递归依赖指南。然后从该仓库根目录安装维护工具:
python scripts/setup/install_dev_tools.py
.venv/bin/python -m pip install -r dependencies/environment-tools.txt
python tools/dev/dev.py doctor
Windows 使用 .venv/Scripts/python.exe。安装建立 pre-commit 和 commit-msg 钩子。钩子检查暂存输入,不替用户暂存,也不静默修复文件。保留未暂存工作和真实失败诊断;不得绕过钩子。
执行 RED、GREEN 与评审¶
新增 C 行为或修复缺陷时,先添加有意义的 GoogleTest/GoogleMock 回归。执行并保留预期失败原因与原命令。实现最小正确生产变更,执行 GREEN,再重构。Mock 外部端口/MMIO,而不是被测实现。覆盖相关拒绝、取消、排空、溢出、隔离保留和实例隔离。Python 生产工具使用标准库 unittest,遵循相同实际 RED/GREEN 规则。
python scripts/ci/tdd_gate.py --all --preset native-debug
完整门禁构建锁定的离线框架,以新报告执行发现的全部用例,不使用 filter/shard。空、跳过、部分、陈旧或变化输入均失败。钩子核对暂存树保持不变;CI 独立执行门禁。框架仅用于主机 C++17;固件保持 C11。自动化证明执行,保留的开发日志记录历史 RED/GREEN 顺序。纯正文或图源修改需要对应文档检查和语义审查,不需要镜像实现测试。
保留风格与范围¶
使用未改变的 .clang-format 和 .editorconfig:80 列、四空格、附着大括号、类型侧指针星号和反斜杠 Doxygen 注释。公共头文件说明上下文、截止时间、所有权和失败。源注释解释不变量和硬件顺序,不重复声明参数。新增/修改文件通过整文件检查;已有冻结欠账只能减少。
每次使用 Conventional Commits 提交一个可评审变更。将接口/配置变化与图示、示例、翻译和执行范围一起评审。产品、执行任务、私有 PCB 和恢复策略保留在 Nexus 外。记录实际源码/配置/工具/ELF 身份与物理待执行项;成功 commit 或 CI 不将结果升级为产品发行。