Clean Includes, Separate Grades: Probing AI C++ Patches Outside the Driver
Description and use
The workflow adds a separate probe compiler that checks C++ headers in a clean translation unit, uncovering include hygiene issues missed by the functional grader.
Problem
C++ patches can pass functional graders while failing to compile when included in a clean translation unit, exposing header hygiene issues.
Outcome
The workflow introduces a clean‑translation‑unit probe that uncovers header hygiene failures missed by functional graders, enabling more reliable merge decisions.
Workflow
- Copy patched tree to a scratch directory and remove driver‑specific include flags.
- Read public_headers.txt and generate a probe_main.cpp for each public header.
- Compile each probe_main.cpp as a standalone translation unit with explicit language mode and include path.
- Classify compiler output: missing_declaration, other_compile_error, or clean.
- Record the result as a gate entry (case, header, lane, status, class).
- Run functional golden cases separately with the original driver.
- If available, repeat probe on a clean build tree without cached headers.
- Combine probe and functional results to decide merge eligibility.
Evidence
The driver is a convenience program. It exists to call functions and check return values. It is a poor witness for header hygiene.
A driver that already included <string> will compile a call through that header. A standalone consumer will not.
Classify the compiler result before reading the functional grade. A missing declaration, an incomplete type, or an unknown name is a hygiene failure even when every driver assertion passed.
- Record date: 2026-10-08T07:41:08.552Z