The current metric collapses three very different commit types into a binary:
| Commit Type |
Current Classification |
Reality |
| Test + Prod files |
test_first_indicator: true |
Positive (co-discipline) |
| Test files only |
test_first_indicator: false |
Positive (TDD red phase, test improvement) |
| Prod files only, large |
test_first_indicator: false |
Critical negative (code without coverage) |
A commit that only improves tests is currently indistinguishable from a commit that adds 200 lines of production code with no tests at all. Both score test_first_indicator: false.
Proposed replacement metrics:
test_coverage_rate: (commits with test AND prod) / total
test_isolation_rate: (commits with test ONLY) / total
uncovered_prod_rate: (commits with prod ONLY, large) / total
uncovered_prod_rate on large commits is the highest-risk signal for AI drift — exactly the "accepted AI output without writing tests" pattern. This is currently invisible.
The current metric collapses three very different commit types into a binary:
A commit that only improves tests is currently indistinguishable from a commit that adds 200 lines of production code with no tests at all. Both score
test_first_indicator: false.Proposed replacement metrics:
uncovered_prod_rateon large commits is the highest-risk signal for AI drift — exactly the "accepted AI output without writing tests" pattern. This is currently invisible.