Problem
The CLI interaction contract has 37 mechanically-enumerated stderr output sites (extracted via grep from source). 14 are tested. 23 have no test coverage.
Discovered during the user-contract spec reorganization (see #611). The error display contract had the same pattern (1 test, 7 bugs) and was closed by the proof matrix in v0.14.2.
Untested Sites by Priority
High risk (5 sites)
- main.rs:285 -- "error: {e}" generic dispatch format
- main.rs:583 -- overhead warning (>200 functions threshold)
- main.rs:1283 -- "--threads requires per-thread data" fallback
- main.rs:1286 -- "showing aggregated view instead"
- resolve.rs:339 -- "warning: parse errors in path"
Medium risk (5 sites)
- main.rs:1153 -- "--- profiling report ---" separator
- main.rs:1385 -- "comparing: A vs B" diff labels
- main.rs:1446 -- "no tags saved" (save path)
- main.rs:1466 -- "no tags saved" (list path)
- main.rs:1481 -- "tagged 'name'" confirmation
Low risk (7 sites)
- main.rs:645 -- "pre-building piano-runtime..."
- main.rs:953 -- duration minimum resolution warning
- main.rs:1068 -- SIGTERM timeout warning (run path)
- main.rs:1117 -- SIGTERM timeout warning (profile path)
- report/diff.rs:158 -- format mismatch warning
- Injected runtime warnings (2 sites in rewrite/mod.rs)
Wrapper (6 sites, 0% coverage)
- wrapper.rs:100,118,125,157,161,277 -- all wrapper stderr messages
Approach
Leaves to roots. Start with the simplest isolated sites (tag CLI, diff labels, report separator). Work up to complex setup (wrapper, SIGTERM timeout, overhead threshold).
Context
Part of the 4-contract spec reorganization (#611). The CLI interaction contract spec is at spec_cli_interaction.md in project memory.
Problem
The CLI interaction contract has 37 mechanically-enumerated stderr output sites (extracted via grep from source). 14 are tested. 23 have no test coverage.
Discovered during the user-contract spec reorganization (see #611). The error display contract had the same pattern (1 test, 7 bugs) and was closed by the proof matrix in v0.14.2.
Untested Sites by Priority
High risk (5 sites)
Medium risk (5 sites)
Low risk (7 sites)
Wrapper (6 sites, 0% coverage)
Approach
Leaves to roots. Start with the simplest isolated sites (tag CLI, diff labels, report separator). Work up to complex setup (wrapper, SIGTERM timeout, overhead threshold).
Context
Part of the 4-contract spec reorganization (#611). The CLI interaction contract spec is at spec_cli_interaction.md in project memory.