{"entry":{"fixtureId":"compute-benchmark-alpha-v0","appSlug":"compute-benchmark-alpha","appName":"Alpha Compute Benchmark","reportId":"lab_compute-benchmark-alpha-v0_20260610225855209","generatedAt":"2026-06-10T22:58:55.209Z","status":"pass","jsonPath":"/bundle/server-functions/default/.nocklab/compute-benchmark-alpha.report.json","markdownPath":"/bundle/server-functions/default/.nocklab/compute-benchmark-alpha.report.md","reportHash":"sha256:0b9d29c23d0df2b4b6a39cd844ff176fbe823fbbc73438d375cb03e570190346","snapshotRoot":"6614492d55b394ff","badgeCandidate":{"id":"badge-candidate-compute-benchmark-alpha","label":"Alpha Compute Benchmark Verification Candidate","reportSlug":"compute-benchmark-alpha","fixtureId":"compute-benchmark-alpha-v0","status":"ready","evidenceKind":"model-attested","statusReDerived":"pass","statusConsistent":true,"kernelHash":null,"kernelVerified":false,"baseDeploymentHash":null,"baseVerified":false,"signatureStatus":"unsigned","evidence":{"reportHash":"sha256:0b9d29c23d0df2b4b6a39cd844ff176fbe823fbbc73438d375cb03e570190346","snapshotRoot":"6614492d55b394ff","invariantPacks":[]}},"stepsPassed":5,"stepsTotal":5,"invariantsPassed":4,"invariantsTotal":4,"alertsTriggered":0,"snapshotsCaptured":6,"adapterObservationCount":0,"invariantPackCount":0},"report":{"reportId":"lab_compute-benchmark-alpha-v0_20260610225855209","fixtureId":"compute-benchmark-alpha-v0","generatedAt":"2026-06-10T22:58:55.209Z","app":{"name":"Alpha Compute Benchmark","slug":"compute-benchmark-alpha","version":"0.1.0","kernel":"mock-compute-provider-v0"},"environment":{"mode":"mock-fakenet","grpcEndpoint":"127.0.0.1:5555","fakenetCommand":"nockchain --fakenet --bind-public-grpc-addr 127.0.0.1:5555 --no-default-peers","notes":["Mock compute provider benchmark for future solver and prover routing decisions.","Captures job-class latency, reproducibility, and SLA evidence for Alpha Compute."]},"summary":{"status":"pass","stepsPassed":5,"stepsFailed":0,"invariantsPassed":4,"invariantsFailed":0,"alertsClear":0,"alertsTriggered":0,"snapshotsCaptured":6,"durationMs":85,"expectRejected":false,"rawStatus":"pass"},"invariantPacks":[],"steps":[{"id":"boot-fakenet","type":"fakenet","title":"Boot mock compute benchmark fakenet","status":"pass","expectation":"gRPC endpoint configured at 127.0.0.1:5555","observed":"mock-fakenet profile ready at 127.0.0.1:5555","beforeHash":"a6683c843167a059","afterHash":"a6683c843167a059","stateDiffs":[],"durationMs":19},{"id":"sample-small-jobs","type":"poke","title":"Sample small noun evaluation jobs","status":"pass","actor":"benchmark-coordinator","target":"/compute/benchmark/noun-eval-small","expectation":"provider.jobClasses.nounEvalSmall.score == 94","observed":"94","beforeHash":"a6683c843167a059","afterHash":"910e6d3832f83ad0","stateDiffs":[{"path":"provider.jobClasses.nounEvalSmall.score","before":"0","after":"94"},{"path":"provider.jobClasses.nounEvalSmall.p50Ms","before":"0","after":"180"},{"path":"provider.jobClasses.nounEvalSmall.p95Ms","before":"0","after":"420"},{"path":"provider.jobClasses.nounEvalSmall.reproducibility","before":"0","after":"0.995"},{"path":"provider.events","before":"[]","after":"[{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"}]"}],"durationMs":26},{"id":"sample-proof-batches","type":"poke","title":"Sample medium proof batch jobs","status":"pass","actor":"benchmark-coordinator","target":"/compute/benchmark/proof-batch-medium","expectation":"provider.jobClasses.proofBatchMedium.score == 89","observed":"89","beforeHash":"910e6d3832f83ad0","afterHash":"3a7ed5857602bc3a","stateDiffs":[{"path":"provider.jobClasses.proofBatchMedium.score","before":"0","after":"89"},{"path":"provider.jobClasses.proofBatchMedium.p50Ms","before":"0","after":"1280"},{"path":"provider.jobClasses.proofBatchMedium.p95Ms","before":"0","after":"2440"},{"path":"provider.jobClasses.proofBatchMedium.reproducibility","before":"0","after":"0.982"},{"path":"provider.events","before":"[{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"}]","after":"[{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"},{\"type\":\"job-class-sampled\",\"class\":\"proof-batch-medium\"}]"}],"durationMs":33},{"id":"finalize-provider-sla","type":"poke","title":"Finalize provider SLA sample","status":"pass","actor":"alpha-compute","target":"/compute/provider/finalize-sla","expectation":"provider.status == qualified","observed":"qualified","beforeHash":"3a7ed5857602bc3a","afterHash":"6614492d55b394ff","stateDiffs":[{"path":"provider.status","before":"pending","after":"qualified"},{"path":"provider.score","before":"0","after":"91"},{"path":"provider.sla.uptime","before":"0","after":"0.998"},{"path":"provider.sla.failureRate","before":"1","after":"0.004"},{"path":"provider.sla.sampleSize","before":"0","after":"512"},{"path":"provider.jobClasses.stateReplayLarge.score","before":"0","after":"90"},{"path":"provider.jobClasses.stateReplayLarge.p50Ms","before":"0","after":"3120"},{"path":"provider.jobClasses.stateReplayLarge.p95Ms","before":"0","after":"6100"},{"path":"provider.jobClasses.stateReplayLarge.reproducibility","before":"0","after":"0.976"},{"path":"provider.events","before":"[{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"},{\"type\":\"job-class-sampled\",\"class\":\"proof-batch-medium\"}]","after":"[{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"},{\"type\":\"job-class-sampled\",\"class\":\"proof-batch-medium\"},{\"type\":\"sla-finalized\",\"sampleSize\":512}]"}],"durationMs":40},{"id":"peek-provider-score","type":"peek","title":"Read provider benchmark score","status":"pass","target":"/compute/provider/alpha","expectation":"provider.score == 91","observed":"91","beforeHash":"6614492d55b394ff","afterHash":"6614492d55b394ff","stateDiffs":[],"durationMs":47}],"invariants":[{"id":"compute-provider-qualified","title":"Provider is qualified after benchmark finalization","severity":"high","status":"pass","observed":"qualified","expected":"provider.status == qualified"},{"id":"compute-provider-sample-size","title":"Provider benchmark has a meaningful sample size","severity":"medium","status":"pass","observed":"512","expected":"provider.sla.sampleSize >= 512"},{"id":"compute-provider-score-floor","title":"Provider benchmark score clears the routing threshold","severity":"high","status":"pass","observed":"91","expected":"provider.score >= 90"},{"id":"compute-provider-failure-alert-clear","title":"Provider failure alert remains clear","severity":"critical","status":"pass","observed":"false","expected":"alerts.failed == false"}],"alerts":[],"adapterObservations":[],"stateSnapshots":[{"label":"Initial state","stateHash":"a6683c843167a059","state":{"provider":{"slug":"alpha-compute","status":"pending","score":0,"sla":{"uptime":0,"failureRate":1,"sampleSize":0},"jobClasses":{"nounEvalSmall":{"score":0,"p50Ms":0,"p95Ms":0,"reproducibility":0},"proofBatchMedium":{"score":0,"p50Ms":0,"p95Ms":0,"reproducibility":0},"stateReplayLarge":{"score":0,"p50Ms":0,"p95Ms":0,"reproducibility":0}},"events":[]},"alerts":{"failed":false}}},{"label":"After boot-fakenet","stateHash":"a6683c843167a059","state":{"provider":{"slug":"alpha-compute","status":"pending","score":0,"sla":{"uptime":0,"failureRate":1,"sampleSize":0},"jobClasses":{"nounEvalSmall":{"score":0,"p50Ms":0,"p95Ms":0,"reproducibility":0},"proofBatchMedium":{"score":0,"p50Ms":0,"p95Ms":0,"reproducibility":0},"stateReplayLarge":{"score":0,"p50Ms":0,"p95Ms":0,"reproducibility":0}},"events":[]},"alerts":{"failed":false}},"stepId":"boot-fakenet"},{"label":"After sample-small-jobs","stateHash":"910e6d3832f83ad0","state":{"provider":{"slug":"alpha-compute","status":"pending","score":0,"sla":{"uptime":0,"failureRate":1,"sampleSize":0},"jobClasses":{"nounEvalSmall":{"score":94,"p50Ms":180,"p95Ms":420,"reproducibility":0.995},"proofBatchMedium":{"score":0,"p50Ms":0,"p95Ms":0,"reproducibility":0},"stateReplayLarge":{"score":0,"p50Ms":0,"p95Ms":0,"reproducibility":0}},"events":[{"type":"job-class-sampled","class":"noun-eval-small"}]},"alerts":{"failed":false}},"stepId":"sample-small-jobs"},{"label":"After sample-proof-batches","stateHash":"3a7ed5857602bc3a","state":{"provider":{"slug":"alpha-compute","status":"pending","score":0,"sla":{"uptime":0,"failureRate":1,"sampleSize":0},"jobClasses":{"nounEvalSmall":{"score":94,"p50Ms":180,"p95Ms":420,"reproducibility":0.995},"proofBatchMedium":{"score":89,"p50Ms":1280,"p95Ms":2440,"reproducibility":0.982},"stateReplayLarge":{"score":0,"p50Ms":0,"p95Ms":0,"reproducibility":0}},"events":[{"type":"job-class-sampled","class":"noun-eval-small"},{"type":"job-class-sampled","class":"proof-batch-medium"}]},"alerts":{"failed":false}},"stepId":"sample-proof-batches"},{"label":"After finalize-provider-sla","stateHash":"6614492d55b394ff","state":{"provider":{"slug":"alpha-compute","status":"qualified","score":91,"sla":{"uptime":0.998,"failureRate":0.004,"sampleSize":512},"jobClasses":{"nounEvalSmall":{"score":94,"p50Ms":180,"p95Ms":420,"reproducibility":0.995},"proofBatchMedium":{"score":89,"p50Ms":1280,"p95Ms":2440,"reproducibility":0.982},"stateReplayLarge":{"score":90,"p50Ms":3120,"p95Ms":6100,"reproducibility":0.976}},"events":[{"type":"job-class-sampled","class":"noun-eval-small"},{"type":"job-class-sampled","class":"proof-batch-medium"},{"type":"sla-finalized","sampleSize":512}]},"alerts":{"failed":false}},"stepId":"finalize-provider-sla"},{"label":"After peek-provider-score","stateHash":"6614492d55b394ff","state":{"provider":{"slug":"alpha-compute","status":"qualified","score":91,"sla":{"uptime":0.998,"failureRate":0.004,"sampleSize":512},"jobClasses":{"nounEvalSmall":{"score":94,"p50Ms":180,"p95Ms":420,"reproducibility":0.995},"proofBatchMedium":{"score":89,"p50Ms":1280,"p95Ms":2440,"reproducibility":0.982},"stateReplayLarge":{"score":90,"p50Ms":3120,"p95Ms":6100,"reproducibility":0.976}},"events":[{"type":"job-class-sampled","class":"noun-eval-small"},{"type":"job-class-sampled","class":"proof-batch-medium"},{"type":"sla-finalized","sampleSize":512}]},"alerts":{"failed":false}},"stepId":"peek-provider-score"}],"stateDiffs":[{"path":"provider.status","before":"pending","after":"qualified"},{"path":"provider.score","before":"0","after":"91"},{"path":"provider.sla.uptime","before":"0","after":"0.998"},{"path":"provider.sla.failureRate","before":"1","after":"0.004"},{"path":"provider.sla.sampleSize","before":"0","after":"512"},{"path":"provider.jobClasses.nounEvalSmall.score","before":"0","after":"94"},{"path":"provider.jobClasses.nounEvalSmall.p50Ms","before":"0","after":"180"},{"path":"provider.jobClasses.nounEvalSmall.p95Ms","before":"0","after":"420"},{"path":"provider.jobClasses.nounEvalSmall.reproducibility","before":"0","after":"0.995"},{"path":"provider.jobClasses.proofBatchMedium.score","before":"0","after":"89"},{"path":"provider.jobClasses.proofBatchMedium.p50Ms","before":"0","after":"1280"},{"path":"provider.jobClasses.proofBatchMedium.p95Ms","before":"0","after":"2440"},{"path":"provider.jobClasses.proofBatchMedium.reproducibility","before":"0","after":"0.982"},{"path":"provider.jobClasses.stateReplayLarge.score","before":"0","after":"90"},{"path":"provider.jobClasses.stateReplayLarge.p50Ms","before":"0","after":"3120"},{"path":"provider.jobClasses.stateReplayLarge.p95Ms","before":"0","after":"6100"},{"path":"provider.jobClasses.stateReplayLarge.reproducibility","before":"0","after":"0.976"},{"path":"provider.events","before":"[]","after":"[{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"},{\"type\":\"job-class-sampled\",\"class\":\"proof-batch-medium\"},{\"type\":\"sla-finalized\",\"sampleSize\":512}]"}],"nextActions":["Replace mock poke and peek execution with local fakenet adapter calls.","Replace command-backed fakenet metadata probes with stable gRPC-native probes once node surfaces are available.","Persist generated reports under a project workspace.","Add app-specific invariant packs as the NockApp interface stabilizes."]},"markdown":"# ✅ Alpha Compute Benchmark Lab Report\n\n> **PASS** — 5/5 steps · 4/4 invariants · 0 alerts · 85ms\n\n| Field | Value |\n| --- | --- |\n| Report | `lab_compute-benchmark-alpha-v0_20260610225855209` |\n| Fixture | `compute-benchmark-alpha-v0` |\n| Status | ✅ pass |\n| Steps | 5 passed, 0 failed |\n| Invariants | 4 passed, 0 failed |\n| Alerts | 0 clear, 0 triggered |\n| Snapshots | 6 |\n\n## Steps\n\n- ✅ `boot-fakenet` — mock-fakenet profile ready at 127.0.0.1:5555 _(gRPC endpoint configured at 127.0.0.1:5555)_; a6683c843167a059 -> a6683c843167a059\n- ✅ `sample-small-jobs` — 94 _(provider.jobClasses.nounEvalSmall.score == 94)_; a6683c843167a059 -> 910e6d3832f83ad0\n  - provider.jobClasses.nounEvalSmall.score: 0 -> 94\n  - provider.jobClasses.nounEvalSmall.p50Ms: 0 -> 180\n  - provider.jobClasses.nounEvalSmall.p95Ms: 0 -> 420\n  - provider.jobClasses.nounEvalSmall.reproducibility: 0 -> 0.995\n  - provider.events: [] -> [{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"}]\n- ✅ `sample-proof-batches` — 89 _(provider.jobClasses.proofBatchMedium.score == 89)_; 910e6d3832f83ad0 -> 3a7ed5857602bc3a\n  - provider.jobClasses.proofBatchMedium.score: 0 -> 89\n  - provider.jobClasses.proofBatchMedium.p50Ms: 0 -> 1280\n  - provider.jobClasses.proofBatchMedium.p95Ms: 0 -> 2440\n  - provider.jobClasses.proofBatchMedium.reproducibility: 0 -> 0.982\n  - provider.events: [{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"}] -> [{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"},{\"type\":\"job-class-sampled\",\"class\":\"proof-batch-medium\"}]\n- ✅ `finalize-provider-sla` — qualified _(provider.status == qualified)_; 3a7ed5857602bc3a -> 6614492d55b394ff\n  - provider.status: pending -> qualified\n  - provider.score: 0 -> 91\n  - provider.sla.uptime: 0 -> 0.998\n  - provider.sla.failureRate: 1 -> 0.004\n  - provider.sla.sampleSize: 0 -> 512\n  - provider.jobClasses.stateReplayLarge.score: 0 -> 90\n  - provider.jobClasses.stateReplayLarge.p50Ms: 0 -> 3120\n  - provider.jobClasses.stateReplayLarge.p95Ms: 0 -> 6100\n  - provider.jobClasses.stateReplayLarge.reproducibility: 0 -> 0.976\n  - provider.events: [{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"},{\"type\":\"job-class-sampled\",\"class\":\"proof-batch-medium\"}] -> [{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"},{\"type\":\"job-class-sampled\",\"class\":\"proof-batch-medium\"},{\"type\":\"sla-finalized\",\"sampleSize\":512}]\n- ✅ `peek-provider-score` — 91 _(provider.score == 91)_; 6614492d55b394ff -> 6614492d55b394ff\n\n## Invariants\n\n- ✅ `compute-provider-qualified` — qualified _(expected provider.status == qualified)_\n- ✅ `compute-provider-sample-size` — 512 _(expected provider.sla.sampleSize >= 512)_\n- ✅ `compute-provider-score-floor` — 91 _(expected provider.score >= 90)_\n- ✅ `compute-provider-failure-alert-clear` — false _(expected alerts.failed == false)_\n\n## Alerts\n\n- No alert policies configured.\n\n## Adapter Observations\n\n- No adapter observations captured.\n\n## State Diffs\n\n- provider.status: pending -> qualified\n- provider.score: 0 -> 91\n- provider.sla.uptime: 0 -> 0.998\n- provider.sla.failureRate: 1 -> 0.004\n- provider.sla.sampleSize: 0 -> 512\n- provider.jobClasses.nounEvalSmall.score: 0 -> 94\n- provider.jobClasses.nounEvalSmall.p50Ms: 0 -> 180\n- provider.jobClasses.nounEvalSmall.p95Ms: 0 -> 420\n- provider.jobClasses.nounEvalSmall.reproducibility: 0 -> 0.995\n- provider.jobClasses.proofBatchMedium.score: 0 -> 89\n- provider.jobClasses.proofBatchMedium.p50Ms: 0 -> 1280\n- provider.jobClasses.proofBatchMedium.p95Ms: 0 -> 2440\n- provider.jobClasses.proofBatchMedium.reproducibility: 0 -> 0.982\n- provider.jobClasses.stateReplayLarge.score: 0 -> 90\n- provider.jobClasses.stateReplayLarge.p50Ms: 0 -> 3120\n- provider.jobClasses.stateReplayLarge.p95Ms: 0 -> 6100\n- provider.jobClasses.stateReplayLarge.reproducibility: 0 -> 0.976\n- provider.events: [] -> [{\"type\":\"job-class-sampled\",\"class\":\"noun-eval-small\"},{\"type\":\"job-class-sampled\",\"class\":\"proof-batch-medium\"},{\"type\":\"sla-finalized\",\"sampleSize\":512}]\n\n## Snapshot Timeline\n\n- Initial state: a6683c843167a059\n- After boot-fakenet: a6683c843167a059\n- After sample-small-jobs: 910e6d3832f83ad0\n- After sample-proof-batches: 3a7ed5857602bc3a\n- After finalize-provider-sla: 6614492d55b394ff\n- After peek-provider-score: 6614492d55b394ff\n\n","evidence":{"stateDiffCount":18,"snapshotCount":6,"alertCount":0,"triggeredAlertCount":0,"clearAlertCount":0,"triggeredCriticalAlertCount":0,"triggeredWarningAlertCount":0,"triggeredInfoAlertCount":0,"environmentMode":"mock-fakenet","grpcEndpoint":"127.0.0.1:5555","environmentNoteCount":2,"nextActionCount":4,"firstNextAction":"Replace mock poke and peek execution with local fakenet adapter calls.","invariantPackCount":0,"invariantPackIds":[],"invariantPackDomains":[],"firstInvariantPackPath":"","changedPaths":["provider.status","provider.score","provider.sla.uptime","provider.sla.failureRate","provider.sla.sampleSize","provider.jobClasses.nounEvalSmall.score","provider.jobClasses.nounEvalSmall.p50Ms","provider.jobClasses.nounEvalSmall.p95Ms","provider.jobClasses.nounEvalSmall.reproducibility","provider.jobClasses.proofBatchMedium.score","provider.jobClasses.proofBatchMedium.p50Ms","provider.jobClasses.proofBatchMedium.p95Ms","provider.jobClasses.proofBatchMedium.reproducibility","provider.jobClasses.stateReplayLarge.score","provider.jobClasses.stateReplayLarge.p50Ms","provider.jobClasses.stateReplayLarge.p95Ms","provider.jobClasses.stateReplayLarge.reproducibility","provider.events"],"markdownPreview":"# ✅ Alpha Compute Benchmark Lab Report"}}