v0.27.0-beta — Evidence coverage, and four defects it uncovered
Pre-releaseThe instrument
QuestionEvidenceDiagnostics gains RequiredEvidenceSessionCount, RequiredEvidenceSessionsRetrieved and RequiredEvidenceSessionsInAnswerContext.
Every gold diagnostic before this was an at-least-one check over Retrieved, which is adequate only when a single session carries the answer — for a question assembled from four, one-of-four and four-of-four both reported GoldSessionPresent: true. And AnswerContext, the references actually supplied to the answer model, carried no gold analysis at all. Retrieval could rank every required session highly while a downstream context budget dropped most of them, with nothing in the envelope to show it.
The gap between the two new counts localizes a failure to a boundary rather than a subsystem. It is session-based rather than text-based, so it needs no evidence content and works under EvidenceCaptureMode.References with no privacy implication.
RequiredEvidenceSessionsInAnswerContext is null, never 0, when no answer-context reference carries a session ID — uninstrumented and starved must not read alike.
Four defects this uncovered, worst first
V3 and V6 count silence as a PASS. 258 of 387 V3 calls (66.7%) and 182 of 861 V6 calls (21.1%) returned no content. V3 passes when a gold-ablated context fails to reproduce the answer, and an empty completion cannot reproduce anything. This direction is anti-conservative — it certifies validity the evidence does not support — and V3 is the probe that establishes gold is load-bearing. V3 and V6 results are uncitable until re-run. V1, V2 and V7 are unaffected.
V8 and V9 count silence as error. 5 of 10 V8 failures and 32 of 111 V9 failures family-wide had no captured answer. Conservative, so every published ceiling is a lower bound. Disclosed per corpus as probes.no_answer_captured, with question IDs.
No vertical has a validated difficulty ladder. The rule that certified one ranked coverage with the calibration scaffolding in place and never compared the slope against the structural ceiling min(1, K/G). Neither correction works alone, which is why it survived three revisions. Every corpus now carries difficulty_validated: false; WorkingMemory's stamp is retired.
Arithmetic's duration never states its day-counting convention and gold silently fixes one. Four of four misses across two independent oracles are exactly gold + spells, with perfect arithmetic in every one.
Gates added
- Empty-response rate per probe arm is published as
probes.empty_rate_by_armand gated by a corpus test. The ceiling and ratchet are C# constants, never read from the record. Verified by tightening the ratchet until it failed on all seven verticals. - A docs check refuses prose asserting a validated ladder while no corpus stamps one. Verified against the pre-fix tree: it rediscovers all three stale claims, no false positives.
Also in this release
PartnerDesk "The Trusted Supplier" sample — a third-party MCP turns a well-behaved due-diligence agent into a data-exfiltration tool, and Gatekeeper stops it at two levels. A real MCP server as a child process over stdio, four phases on one keypress, and 75 tests asserting over the recorded trajectory, the tool-effect ledger and Gatekeeper's verdicts rather than console text.
Verification
Release configuration, every target framework: 9202 net8.0, 9202 net9.0, 9420 net10.0, 985 × 3 memory, 75 PartnerDesk, 9 NuGet-consumer. Zero failures, 13/13 CI checks green.
Upgrading
Additive. Nothing removed or renamed. If you consume V3/V6 results, treat them as unestablished until the re-baseline; if you compare against published V8/V9 ceilings, exclude the no_answer_captured question IDs.