# Verification The invariant is: > No success claim without fresh evidence. Evidence is an owned scalar record: ```js { type: 'verification', command: 'npm test -- --runInBand', result: 'pass', exitCode: 0, timestamp: 0, summary: 'Relevant tests passed' } ``` The lifecycle enters `VERIFIED` only after a passing `verification` record. Failing evidence prevents a completion claim. `unknown` is reported as unknown. Examples of proof: - tests pass → fresh test execution - build works → fresh build - login works → actual login flow and persistence reload - bug fixed → original reproduction plus regression test - responsive → actual desktop/mobile browser checks when a browser capability is composed - migration works → execution against the appropriate non-production database environment with rollback evidence V0.1 does not pretend to run commands or browser actions through `fullstack_check`; it records bounded non-verification facts supplied after existing Harness capabilities produce them. Self-attested `verification` evidence is rejected; a future adapter must translate an actual native Harness result into that evidence type.