Reference — Verified Available now
Evidence record schema
A Verified record links a test outcome back to the Declared control it confirms. It doesn’t replace the Declared record — the two coexist, one saying “this was annotated,” the other “and a test confirmed it” (or didn’t).
{
"schemaVersion": "0.1",
"kind": "verified",
"verifiesControl": "consent.capture",
"test": {
"testClass": "com.acme.checkout.ConsentServiceTest",
"testMethod": "consentIsRecordedWithLawfulBasis",
"assertionType": "assertConsentRecorded"
},
"result": {
"status": "passed",
"buildId": "ci-4822",
"commit": "a3f9e21",
"timestamp": "2026-08-28T14:41:00Z"
}
}
Fields
| Field | Type | Required | Description |
|---|---|---|---|
schemaVersion |
String |
Yes | Version of the evidence record format — 0.1. |
kind |
String |
Yes | Always "verified", distinguishing it from a declared record. |
verifiesControl |
String |
Yes | The Declared control id this record verifies, e.g. consent.capture. |
test.testClass |
String |
Yes | Fully-qualified class containing the @VerifiesControl test. |
test.testMethod |
String |
Yes | Name of the test method. |
test.assertionType |
String |
Yes | The ComplianceAssertions method the test called, e.g. assertConsentRecorded. |
result.status |
String |
Yes | "passed" or "failed" — a failing assertion still produces a record. |
result.buildId |
String |
Yes | CI build identifier, or a generated local-… id outside CI. |
result.commit |
String / null |
Yes | Git commit the test ran against. null when no CI variable matched and git rev-parse HEAD could not resolve one — the gap is made explicit, never fabricated. |
result.timestamp |
String (ISO 8601) |
Yes | When the record was generated. |
One file is written per assertion, named
<testClass>__<testMethod>__<assertionType>.json.
Serialization is hand-rolled and every value is a string or
null — no nested arrays, no numbers.