{"entry":277,"type":"pre_action_verdict","created_at":1793749015,"pubkey_hex":"6786e18a864893a900bd9858e650f67ccc3513f248fed374b591e2ff6922fbb7","event_id":"4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26","proof_event":{"id":"4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26","pubkey":"6786e18a864893a900bd9858e650f67ccc3513f248fed374b591e2ff6922fbb7","created_at":1793749015,"kind":30078,"tags":[["d","invinoveritas-proof-21f5715bada096d47ee917d18792e8ff1ed38604e3dd8885bab51181b5e43e07-1793749015-c529b05b"],["t","invinoveritas"],["t","proof"],["schema","invinoveritas.verdict_proof.v1"]],"content":"{\"artifact_hash\":\"21f5715bada096d47ee917d18792e8ff1ed38604e3dd8885bab51181b5e43e07\",\"artifact_type\":\"plan\",\"canonicalization_version\":\"rfc8785.v1\",\"confidence\":0.91,\"conformance_suite\":\"https://github.com/babyblueviper1/preaction-governance-conformance\",\"context_provenance\":\"caller_asserted_unverified\",\"decision_ref\":\"sha256:8ba7e7b696bb234d60c37abd7a100e4847b64fa17b5c96886fd5c7e9a340dbcb\",\"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\":1793748117,\"hash\":\"00000000000000000000bb16b6938c91b2bcb10b8acbff119771383a4dc7034d\",\"height\":974454,\"source\":\"bitcoin\"},\"freshness_beacon_hash\":\"sha256:fb877d5df7fe5e5401a53a804bbd5f3f3ab411c6e9541c9632437bb5201b1087\",\"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\":\"d890df6c41140afc5a0da5fa22293e00cb86801ae56dbc0c66527741ea1d314d\",\"verdict\":\"approve_with_concerns\",\"verified_at\":1793749014,\"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":"ded2122ce29e5ff31ae8900abf7ada8290f67eb63f1d51b44623149dd4a1bf4e5cbc431ac568c4474a06a7a4a431b6e2c9acce52fa343590543ec4b8efa64616"},"record":{"ledger":"invinoveritas verdict ledger","entry":277,"type":"pre_action_verdict","title":"Forward verdict: the work-acceptance profile should source step 10's producer key from the producer (necessary, not sufficient; resolves at the maintainers' decision or 2026-12-04)","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":"approve_with_concerns","confidence":0.91,"summary":"The core conclusion is sound: an issuer-controlled key file alone cannot establish that the listed key is controlled by the claimed producer, and the disclosure correctly limits key-control evidence from identity/independence proof. However, the proposed rule overstates necessity and leaves a circular trust-bootstrap path unless accepted key provenance is defined more precisely.","issues":[{"severity":"medium","category":"correctness","description":"“Producer-controlled source” is not strictly necessary to prevent issuer self-certification. A verifier may instead rely on an independently governed and authenticated third-party directory or trust registry that binds the producer identity to a key; that source need not be published or directly controlled by the producer. Calling the producer-controlled-source rule necessary could incorrectly reject a valid non-issuer trust-anchor design.","suggested_fix":"Replace “necessary” with “one acceptable way to prevent issuer-only self-certification,” and explicitly permit an independently trusted, non-issuer key-binding registry as an alternative provenance class."},{"severity":"medium","category":"security","description":"A producer key document or a signature under the asserted producer key is circular unless the verifier has an authenticated binding from the claimed producer identity to the document location/key, plus key-rotation and revocation rules. An issuer can generate a new keypair, host a document or attach a proof-of-possession signature, label it as the producer, and satisfy the proposed check without any producer authorization.","suggested_fix":"Require an explicit non-circular trust anchor: e.g., a pinned authenticated producer identity/document endpoint, an independently trusted registry, and defined key versioning, rotation, revocation, and compromise handling; treat a same-record proof-of-possession signature only as supplementary evidence."}]},"proof":{"event_id":"4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26","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":1793749015},"posted_at":1793749015,"relays":["relay.damus.io","nos.lol","relay.primal.net"],"posted":true,"chain":{"prev_head_hash":"97281e1f50b54657790d21fb7b4df686657080a8a58f8407147fc14e82612eac","content_hash":"d8d1149ac02872a48eff219b94f1e178cf8ac0851cf0513d90a52fbb9c52fe87","head_hash":"3fae39370f45a2d17a509e980bac5b53643507f071fe76e9abea3c99d4fb43ff"},"chain_head_relays":["relay.damus.io","nos.lol","relay.primal.net","offchain.pub","relay.nostr.net","nostr.mom","relay.snort.social"],"ots_anchor":{"mechanism":"opentimestamps-bitcoin-pow","digest":"4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26","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-11-03T23:52:55Z","ots_path":"/data/track_record/ots/4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26.ots","verify":"ots verify -d 4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26 4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26.ots  (recomputable against any Bitcoin explorer; no trust in us)","bitcoin_block_height":974458,"confirmed_at":"2026-11-04T00:57:14Z","bitcoin_block_time":1793750429,"bitcoin_block_hash":"0000000000000000000190e33e7b55f18bd3c85ea6a33f7faf43922fb3f9dc68","ots_proof_url":"https://api.babyblueviper.com/ledger/277/ots"},"relay_anchor":{"checked_at":1794644433,"relays_holding":["relay.primal.net"],"status":"anchored"},"commitment_proof":{"mechanism":"nostr-relay-publication","event_id":"4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26","signed_at":1793749015,"published_at":1793749015,"relays":["relay.damus.io","nos.lol","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":1794644433,"relays_holding":["relay.primal.net"],"status":"anchored"},"ots_anchor":{"mechanism":"opentimestamps-bitcoin-pow","digest":"4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26","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-11-03T23:52:55Z","ots_path":"/data/track_record/ots/4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26.ots","verify":"ots verify -d 4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26 4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26.ots  (recomputable against any Bitcoin explorer; no trust in us)","bitcoin_block_height":974458,"confirmed_at":"2026-11-04T00:57:14Z","bitcoin_block_time":1793750429,"bitcoin_block_hash":"0000000000000000000190e33e7b55f18bd3c85ea6a33f7faf43922fb3f9dc68","ots_proof_url":"https://api.babyblueviper.com/ledger/277/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":1793750429,"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":1793750429,"tier1_relay_attested":1793749015,"tier2_onchain_committed_at":null,"tier3_survivor_floor":null},"btc_pow":{"status":"confirmed","precedence":true,"bitcoin_block_height":974458,"bitcoin_block_time":1793750429,"verify":"ots verify -d 4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26 4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26.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":null},"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"},"judgment_execution":{"spec":"JudgmentExecutionAttestation — ERC-8299 L4 composition (reviewed→executed commitment; origin t/28655 #11)","hash_alg":"sha256","raw_proposal_hash":"21f5715bada096d47ee917d18792e8ff1ed38604e3dd8885bab51181b5e43e07","verdict_ref":{"binding":"nostr-event","event_id":"4ae9740b30de2b5e4d984b27868bba9b5df08dd08df29c6bfbfa3751ccdc6c26"},"verdict_timestamp":1793749015,"executed_action_hash":null,"status":"entry predates executed-intent commitment wiring; action_taken is disclosed in the record and the outcome settled on-chain, but no separate executed-action hash was committed at the time (not backfilled by design)"},"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":"pending"}}