{"entry":265,"type":"pre_action_verdict","created_at":1790683118,"pubkey_hex":"6786e18a864893a900bd9858e650f67ccc3513f248fed374b591e2ff6922fbb7","event_id":"c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d","proof_event":{"id":"c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d","pubkey":"6786e18a864893a900bd9858e650f67ccc3513f248fed374b591e2ff6922fbb7","created_at":1790683118,"kind":30078,"tags":[["d","invinoveritas-proof-4033e819eba852018249ebc906c686bc788cb2b696f18fe77c01f947bb43f710-1790683118-93b67172"],["t","invinoveritas"],["t","proof"],["schema","invinoveritas.verdict_proof.v1"]],"content":"{\"artifact_hash\":\"4033e819eba852018249ebc906c686bc788cb2b696f18fe77c01f947bb43f710\",\"artifact_type\":\"plan\",\"canonicalization_version\":\"rfc8785.v1\",\"confidence\":0.99,\"conformance_suite\":\"https://github.com/babyblueviper1/preaction-governance-conformance\",\"context_provenance\":\"caller_asserted_unverified\",\"decision_ref\":\"sha256:883f5a8eb96b770fca0aad438db864d91c94e66e544b3515e88395fcbe7ec955\",\"decision_ref_preimage_fields\":[\"artifact_hash\",\"artifact_type\",\"policy_version\",\"verdict\",\"source_class\",\"vantage_limitation\",\"related_decision_ref\",\"intended_audience\",\"confidentiality_tier\",\"disclosed_summary\",\"intended_verifier\",\"policy_commitment\",\"verified_at\",\"registry_as_of\",\"registry_snapshot_sha256\",\"action_binding_tool_hash\",\"action_binding_args_hash\",\"action_binding_agent_id\",\"action_binding_nonce\",\"freshness_beacon_hash\",\"epistemic_basis\",\"external_evidence_hash\",\"canonicalization_version\",\"related_claims_hash\",\"related_claims_result\",\"related_claims_comparison_version\",\"mediator_attestation_hash\"],\"decision_ref_preimage_rule\":\"every name in decision_ref_preimage_fields is a key in the hashed preimage object, always -- absent fields (e.g. vantage_limitation when not applicable) are present as JSON null, never omitted from the object.\",\"engine_generation\":1,\"epistemic_basis\":null,\"freshness_beacon\":{\"block_time\":1790683143,\"hash\":\"000000000000000000012fd2652bf345017b75a91ea2fe8c80fc966a9f3e51a2\",\"height\":969150,\"source\":\"bitcoin\"},\"freshness_beacon_hash\":\"sha256:f6b44efb5f34583794c6d540481d81899266cd7d20ac257f8644cfbe9d7af76d\",\"independent_nodes\":[\"https://invinoveritas-castra.babyblueviper.workers.dev/verify\",\"https://babyblueviper1--2aba75da693711f185891607ee4eb77e.web.val.run\"],\"key_id\":\"6786e18a864893a900bd9858e650f67ccc3513f248fed374b591e2ff6922fbb7\",\"platform\":\"invinoveritas\",\"policy_commitment\":\"sha256:ce58857dea9f9851394bd3126f9aca28b8ef7cc95cc3562ab0e4a863f8be73fe\",\"policy_commitment_inputs\":{\"conformance_suite_commit\":\"e90948ed3eb9d36eb1d0997ea4d02045e28a405a\",\"conformance_suite_repo\":\"babyblueviper1/preaction-governance-conformance\",\"rubric_doc_path\":\"docs/policy_spec/invinoveritas.review.v12.md\",\"rubric_sha256\":\"bb74afa68bd5e8b1ca1038d8f0c8cd9a0d1f83888a7ea7df7c551f579a974180\"},\"policy_version\":\"invinoveritas.review.v22\",\"registry_as_of\":null,\"registry_snapshot_sha256\":null,\"related_claims_result\":\"not_supplied\",\"review_model_hash\":\"deda3dc02a1d1575f15d5c9f9b3e31cf0c768a55508c31e7ff0f4fc8f33fc669\",\"review_prompt_template_hash\":\"13a72a4c1e3a99b969ac46b724eceef6620716292f2b730f19915cdd469c1e31\",\"schema\":\"invinoveritas.verdict_proof.v1\",\"source_class\":\"agent_reported\",\"summary_hash\":\"e6040d4725201652804e76c1e785e10a91b984285104a22d7bd48f61d1f0f887\",\"verdict\":\"reject\",\"verified_at\":1790683117,\"verifier_keys\":\"https://api.babyblueviper.com/.well-known/verifier-keys.json\",\"verifier_pubkey\":\"6786e18a864893a900bd9858e650f67ccc3513f248fed374b591e2ff6922fbb7\",\"verify_how\":\"Easiest: install the offline verifier above and recompute locally. Or POST this proof's signed `event` to verify_url (or an independent_node), OR run NIP-01 yourself: recompute the Nostr event id = sha256([0,pubkey,created_at,kind,tags,content]), verify the schnorr signature against verifier_pubkey. valid ⇒ invinoveritas issued this, untampered. No trust required.\",\"verify_offline\":\"npm i invinoveritas-verify  ·  pip install invinoveritas-verify  — recompute this proof on your own machine against verifier_pubkey; you never have to call us.\",\"verify_url\":\"https://api.babyblueviper.com/verify-proof\"}","sig":"33995b7037c320b3f9f5a09d2da99e5a955e3df7a13436177c17009322b50a104099c4147f2b406d6a0f90fc02ba1bbdb7075e86f7eb420d80d9815281d322d4"},"record":{"ledger":"invinoveritas verdict ledger","entry":265,"type":"pre_action_verdict","title":"Forward verdict: recompute-kit canonical CI passes reporter adapters on exit 0 (resolves by 2026-10-31)","what":"A SIGNED, artifact-bound verdict committed and published BEFORE its outcome exists. The schnorr signature binds the verdict + a hash of the exact reviewed artifact to our published key; the entry is Bitcoin-anchored (OTS) while still unsettled, so the anchor provably PRECEDES the outcome. Verify via POST /verify-proof or NIP-01, with no trust in us. Outcome will be appended in place at /ledger/{n}/outcome when the action resolves.","verdict":{"verdict":"reject","confidence":0.99,"summary":"Exit-status-only grading is not sound for a recomputable conformance kit when reporter-shape adapters can exit 0 while emitting results that contradict hash-pinned expected vectors. The reproduced mutation demonstrates a false-positive conformance pass in the canonical CI path, defeating the kit's stated verification purpose.","issues":[{"severity":"blocker","category":"correctness","description":"The canonical runner treats adapter process exit status 0 as proof that the suite passed without validating the emitted per-vector results against `vectors[].expected`. A reporter can return success while producing arbitrary or deliberately incorrect output; the cited mutation reproduces exactly this condition and still yields canonical PASS despite the independent suite reporting 0/10 reproduced.","suggested_fix":"Make `tools/run_conformance.py` parse a canonical machine-readable result for every vector and fail unless each reported value matches the hash-pinned `vectors[].expected`; retain exit status only as a process-health signal."},{"severity":"high","category":"missing_check","description":"The current CI negative control only covers a self-grading adapter that exits nonzero on its own mismatch, so it cannot detect the canonical runner's missing oracle check. It provides no regression protection for reporters that successfully run and emit wrong results.","suggested_fix":"Add a CI fixture whose adapter exits 0 but intentionally emits a wrong value for at least one vector, and assert `tools/run_conformance.py` fails the suite."},{"severity":"high","category":"intent_mismatch","description":"A canonical CI result labelled PASS currently means only that an adapter completed successfully, not that the claimed computation was reproduced. This is materially narrower than 'recomputable conformance' and permits false public claims of conformance for adapters that ignore inputs, hardcode output, or bypass mutation guards.","suggested_fix":"Define the canonical PASS contract explicitly as successful execution plus deterministic, schema-valid, per-vector equality with pinned expected outputs, and enforce that contract in CI."}]},"proof":{"event_id":"c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d","pubkey":"6786e18a864893a900bd9858e650f67ccc3513f248fed374b591e2ff6922fbb7","artifact_sha256_in_event":true,"how_to_verify":"POST /verify-proof with this Nostr event, or run NIP-01; the artifact_hash binds it to the exact artifact reviewed."},"outcome_status":"pending — settles when the action resolves","ts":1790683118},"posted_at":1790683118,"relays":["relay.damus.io","relay.primal.net"],"posted":true,"ots_anchor":{"mechanism":"opentimestamps-bitcoin-pow","digest":"c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d","digest_meaning":"the verdict's signed Nostr event_id, stamped as the OTS digest directly","status":"confirmed","precedence":true,"precedence_basis":"stamped pre-outcome — entry unsettled and fresh at stamp time","calendars":["https://a.pool.opentimestamps.org","https://b.pool.opentimestamps.org","https://a.pool.eternitywall.com","https://ots.btc.catallaxy.com"],"stamped_at":"2026-09-29T12:12:48Z","ots_path":"/data/track_record/ots/c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d.ots","verify":"ots verify -d c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d.ots  (recomputable against any Bitcoin explorer; no trust in us)","bitcoin_block_height":969156,"confirmed_at":"2026-09-29T13:48:05Z","bitcoin_block_time":1790685635,"bitcoin_block_hash":"000000000000000000008180db9d3c51c8e9ba147becb3d2286a68b65a279e7a","ots_proof_url":"https://api.babyblueviper.com/ledger/265/ots"},"relay_anchor":{"checked_at":1792657245,"relays_holding":["relay.damus.io","relay.primal.net"],"status":"anchored"},"chain":{"prev_head_hash":"ea8b83c51eb74f91513b3e7e117f6b044a56287141c36d804f0d372d4812183a","content_hash":"fe86f4da5cf4674a4786697006a64d1580f34ed70a2ec9f27ef76a90adb8c3b7","head_hash":"651c4135c4770def2eabd2b00158dbfcce59f7e69e0883b0b1aea1b58abd3947"},"chain_head_relays":["relay.damus.io","nos.lol","relay.primal.net"],"chain_backfilled_at":1790773131,"chain_note":"chained late (2026-09-30): ledger_forward_verdict.py did not chain at creation. content_hash is over this record as it stood at backfill; its Bitcoin/OTS anchor on event_id is unchanged and still predates it.","judgment_execution":{"settled_outcome_ref":"https://github.com/trustless-ai/recompute-kit/pull/57 merged 2026-10-11T22:35Z: run_conformance now grades reporter adapters against vectors[].expected (adapter.contract reporter|self_grading; R1-R3) instead of trusting exit 0 -- the defect the reject named was real and was fixed as suggested","settled_at":1791762437},"commitment_proof":{"mechanism":"nostr-relay-publication","event_id":"c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d","signed_at":1790683118,"published_at":1790683118,"relays":["relay.damus.io","relay.primal.net"],"how_to_check":"fetch the event by id from any listed public relay and confirm created_at; relays held the signed verdict from published_at, before the outcome settled","relay_anchor":{"checked_at":1792657245,"relays_holding":["relay.damus.io","relay.primal.net"],"status":"anchored"},"ots_anchor":{"mechanism":"opentimestamps-bitcoin-pow","digest":"c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d","digest_meaning":"the verdict's signed Nostr event_id, stamped as the OTS digest directly","status":"confirmed","precedence":true,"precedence_basis":"stamped pre-outcome — entry unsettled and fresh at stamp time","calendars":["https://a.pool.opentimestamps.org","https://b.pool.opentimestamps.org","https://a.pool.eternitywall.com","https://ots.btc.catallaxy.com"],"stamped_at":"2026-09-29T12:12:48Z","ots_path":"/data/track_record/ots/c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d.ots","verify":"ots verify -d c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d.ots  (recomputable against any Bitcoin explorer; no trust in us)","bitcoin_block_height":969156,"confirmed_at":"2026-09-29T13:48:05Z","bitcoin_block_time":1790685635,"bitcoin_block_hash":"000000000000000000008180db9d3c51c8e9ba147becb3d2286a68b65a279e7a","ots_proof_url":"https://api.babyblueviper.com/ledger/265/ots"},"timing":{"hierarchy":"Bitcoin PoW (OpenTimestamps, trust-maximal) > original relay copy (tightest time) > on-chain committedAt > survivor floor (ERC-8299 Appendix B)","tier":0,"timestamp":1790685635,"claim":"Bitcoin proof-of-work (OpenTimestamps): the verdict event_id provably existed by this block's timestamp, anchored to a clock no chain operator or our key can move or back-date. Trust-maximal; the relay tier gives a tighter time on weaker trust.","available":{"tier0_btc_pow":1790685635,"tier1_relay_attested":1790683118,"tier2_onchain_committed_at":null,"tier3_survivor_floor":null},"btc_pow":{"status":"confirmed","precedence":true,"bitcoin_block_height":969156,"bitcoin_block_time":1790685635,"verify":"ots verify -d c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d c5e7b2ebf5aab094d25f38549b24dd07f297d6261c9ff71ba00bcda58f69eb6d.ots  (recomputable against any Bitcoin explorer; no trust in us)","note":"trust-maximal anchor, un-forgeable Bitcoin proof-of-work — pre-outcome precedence","precedence_cross_check":{"outcome_entry":275,"outcome_anchor_timestamp":1792198325,"verdict_anchor_timestamp":1790685635,"verified":true,"how_to_check":"independently recompute both anchors — this verdict's OTS Bitcoin proof (see ots_proof_url) and the cited outcome entry's own strongest surviving anchor (GET /ledger/{outcome_entry}) — and confirm the outcome anchor's timestamp is not earlier than this verdict's. Two separately-anchored timestamps, not one anchor compared against our own unverifiable bookkeeping."}},"committed_at":null,"committed_at_reference":"judgment_type=outcome_verifiable (ERC-8274): committed_at MUST predate the realized outcome's settlement. committed_at is the tier-2 on-chain committedAt sourced from the ERC-8263 proofHash leg (see truthanchor_8263) — distinct from the ERC-8281/OCP input anchor, which commits the input, not the verdict."},"judgment_type":"outcome_verifiable"},"outcome_evidence":{"question":"was the verdict later right or wrong? (distinct from commitment_proof's 'was it committed before the outcome was known?')","mechanism":"on-chain-settlement","account":"0x3b2A858806Fa4DEb9191Bb7918350fDB774603A4","note":"every governed trade settles on this public Hyperliquid account; the signed trade-outcome digest entries below contain the settled rows published at/after this verdict — wins AND losses","settled_digests":[],"status":"cited","per_entry_resolution":{"decision_ref":"sha256:883f5a8eb96b770fca0aad438db864d91c94e66e544b3515e88395fcbe7ec955","citing_entries":[{"entry":275,"outcome":"proven_right","source_class":"recomputable","settled_at_declared":1791762333,"anchor_timestamp":1792198325,"outcome_evidence":{"mechanism":"merged pull request in a public repository (trustless-ai/recompute-kit#57)","digest":"git:3c3923956200d01ab74c2dcbb49b268739943bda","how_to_check":"git clone https://github.com/trustless-ai/recompute-kit && git -C recompute-kit checkout 3c3923956200d01ab74c2dcbb49b268739943bda && python -m pytest recompute-kit/tools/test_run_conformance_reporter_contract.py (22 passed): tools/run_conformance.py now grades reporter adapters against vectors[].expected (adapter.contract reporter|self_grading, R1-R3) instead of accepting exit 0 -- the false-positive pass entry #265's reject named"},"outcome_observer_id":"babyblueviper1 (invinoveritas operator account; outcome read from the public repository at the merge commit)","outcome_vantage":"outcome source_class=recomputable: this outcome is independently recomputeable from published evidence (digest + how_to_check). A third party can re-derive the outcome without trusting the observer — stronger than agent_reported on the observation side. Recomputability of the outcome is not an absence/completeness claim about the original /review call. Decision-side vantage_limitation is not present on the cited ledger entry (typically a reversible artifact_type, or a proof issued before vantage_limitation was bound) — recovered as none, not guessed. Outcome trust class stands on this entry's source_class alone.","outcome_observation_vantage":"outcome source_class=recomputable: this outcome is independently recomputeable from published evidence (digest + how_to_check). A third party can re-derive the outcome without trusting the observer — stronger than agent_reported on the observation side. Recomputability of the outcome is not an absence/completeness claim about the original /review call.","decision_vantage_resolution":"none"}],"current":{"entry":275,"outcome":"proven_right","source_class":"recomputable","settled_at_declared":1791762333,"anchor_timestamp":1792198325,"outcome_evidence":{"mechanism":"merged pull request in a public repository (trustless-ai/recompute-kit#57)","digest":"git:3c3923956200d01ab74c2dcbb49b268739943bda","how_to_check":"git clone https://github.com/trustless-ai/recompute-kit && git -C recompute-kit checkout 3c3923956200d01ab74c2dcbb49b268739943bda && python -m pytest recompute-kit/tools/test_run_conformance_reporter_contract.py (22 passed): tools/run_conformance.py now grades reporter adapters against vectors[].expected (adapter.contract reporter|self_grading, R1-R3) instead of accepting exit 0 -- the false-positive pass entry #265's reject named"},"outcome_observer_id":"babyblueviper1 (invinoveritas operator account; outcome read from the public repository at the merge commit)","outcome_vantage":"outcome source_class=recomputable: this outcome is independently recomputeable from published evidence (digest + how_to_check). A third party can re-derive the outcome without trusting the observer — stronger than agent_reported on the observation side. Recomputability of the outcome is not an absence/completeness claim about the original /review call. Decision-side vantage_limitation is not present on the cited ledger entry (typically a reversible artifact_type, or a proof issued before vantage_limitation was bound) — recovered as none, not guessed. Outcome trust class stands on this entry's source_class alone.","outcome_observation_vantage":"outcome source_class=recomputable: this outcome is independently recomputeable from published evidence (digest + how_to_check). A third party can re-derive the outcome without trusting the observer — stronger than agent_reported on the observation side. Recomputability of the outcome is not an absence/completeness claim about the original /review call.","decision_vantage_resolution":"none"},"current_note":"the latest-in-force citation by anchor time among ANCHORED citing entries only — unanchored citations are listed in citing_entries but never picked as current, since their ordering claim isn't independently checkable yet. a DERIVED reading, not an authoritative overwrite of earlier citations, which remain in the ledger unchanged","disputed":false,"disputed_note":null,"unanchored_dissent":false,"unanchored_dissent_note":null}}}