The Framework
We don't rank sensors as "good" or "bad." Every sensor is characterized along six dimensions that determine when it is useful, what it can and cannot detect, and what evidence it produces for an agent or human.
The important thing is that no single sensor measures correctness. Each sensor measures one thing. Coverage measures execution. Mutation measures test sensitivity. Types measure a particular class of structural inconsistency. Contracts measure boundary assumptions. Observability measures what actually happened and preserves enough dimensionality to investigate unknown unknowns.
The question becomes: what independent observations would cause us to update our belief that this software is correct?
How confidently does it know that something is wrong?
A compiler has maximum oracle strength because the implementation cannot argue with it. A complexity metric has low oracle strength because high complexity doesn't prove anything is wrong — it just suggests increased risk.
Can the thing being evaluated manipulate the sensor?
This is extremely important for agents. A model writing
tests/ is allowed to write tests that make itself pass.
The producer and evaluator should be separated wherever possible.
What level of the system does it tell us about?
How long until the sensor tells you something?
Does it merely say "bad" or does it tell you what to fix?
This is where guiding sensors become particularly interesting. A guiding sensor doesn't just flag a problem — it tells the agent what to do next. In Böckeler's framing, the interesting frontier is sensors where the feedback itself directs the next action.
"This is wrong" or "this looks like things that became wrong before"?
You don't need to understand FooManagerFactoryImpl. You
can observe: 27 changes in six months, 8 reverts, 4 incidents,
touched by 11 teams. That's a signal — a black-box sensor of
maintainability.