Findings, fenced
Each finding from the reviews ends in an artifact that a machine checks. The provenance trailers are missing, so the cause is inferred from the code and the evidence, not from the agent session.
REQ-2283 · C1· rung 3· cause: unenforced rule
Index [0] on DeclaringSyntaxReferences of a symbol that can come from metadata
Roslyn documents that the list is empty for metadata symbols. The repo had no check: the base has the pattern 6 times, master 7.
On the base, the rule hits the 2 lines that crash in issue 2283. On the branch, those 2 hits are gone. The rule needs no model to run.
Hits the commit removed- TypeCollector.cs:985
- TypeCollector.cs:1077
Hits the commit addednone
hardening/rules/no-declaring-syntax-index.ymlREQ-2234 · C4· rung 3· cause: missing spec
A ContainsKey guard with no else silently drops data
No requirement says what happens to a second member with the same key. The agent chose to drop it, and no test or diagnostic shows it.
On the branch, the rule hits the 4 guards that the commit added. On the base, it hits none of them. It blocks the merge.
Hits the commit removednone
Hits the commit added- TypeCollector.cs:1023
- TypeCollector.cs:1039
- TypeCollector.cs:1163
- TypeCollector.cs:1179
hardening/rules/no-silent-duplicate-drop.ymlREQ-2234 · C4· rung 4· cause: missing spec
The generator emits a formatter that drops a keyed member with no error
The rule above held the shape, not the bug. A fresh agent on the same task wrote the same drop as if/else, and the rule passed it.
A behaviour test on the generator output. It fails on the original agent branch and on the fresh agent's change, whatever the shape of the code.
hardening/fences/FenceNoSilentMemberDrop.csREQ-2234 · C1· rung 6· cause: missing gate
A fix for a bug that is not in its base
The agent worked on a base without the regression commit. Its new tests could not fail there, and nothing asked them to.
Probe E: on master, 6 of the 8 new tests fail. A gate that runs the red step on the merge target stops this commit.
Gate: the red run must fail on the target branchFactory · Receipt· rung 2· cause: missing spec
Merge on evidence for an older commit
A gate that checks 'has evidence' instead of 'has evidence for this head' looks right in review. Only the state space shows the gap.
TLC: the sound gate holds in all reachable states. With the seeded bug, TLC prints a 5-step counterexample.
hardening/tla/MergeGate.tla