Develop with TDD and normal commit gates

This workflow preserves current C11 architecture, formatting and explicit evidence. Codex owns platform maintenance; independent agents review high-risk changes. No fictitious personnel or local file can establish GitHub branch protection.

Install and check tools

From the repository root, initialize pinned recursive dependencies, then:

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 uses .venv/Scripts/python.exe. Installation establishes pre-commit and commit-msg hooks. Hooks inspect staged inputs without staging or silently fixing files. Preserve unstaged work and actual failure diagnostics; never bypass hooks.

Execute RED, GREEN and review

For new C behavior or defect fixes, first add a meaningful GoogleTest/GoogleMock regression. Execute it and retain the expected failure reason and original command. Implement the smallest correct production change, execute GREEN, then refactor. Mock external ports/MMIO, not the implementation being tested. Cover relevant rejection, cancellation, drain, overflow, quarantine and instance isolation. Python production tools use stdlib unittest with the same actual RED/GREEN rule.

python scripts/ci/tdd_gate.py --all --preset native-debug

The full gate builds the pinned offline framework and executes discovered cases with fresh reports and no filters/shards. Empty, skipped, partial, stale or changed inputs fail. The hook checks the staged tree remains unchanged; CI independently executes the gate. The framework is host-only C++17; firmware remains C11. Automation proves execution, while retained development logs document historical RED/GREEN order. Pure prose or diagram edits need corresponding document checks and semantic review rather than mirrored implementation tests.

Preserve style and scope

Use the unchanged .clang-format and .editorconfig: 80 columns, four spaces, attached braces, type-attached pointer stars and backslash Doxygen comments. Public headers document context, deadline, ownership and failures. Source comments explain invariants and hardware ordering instead of repeating declaration parameters. New/changed files pass whole-file checks; existing frozen debt may only shrink.

Commit one reviewable change with Conventional Commits. Review interface/configuration changes together with diagrams, examples, translation and execution scope. Keep products, workers, private PCB and recovery policy outside Nexus. Record actual source/configuration/tool/ELF identities and physical pending items; a successful commit or CI does not promote a product release.