{"ok":true,"productionGate":{"schema":"odei.daorg.production-gate.v1","version":"2026-05-16","self":"/api/daorg/runtime/production-gate","state":"blocked","readyToClaimProduction":false,"productionComplete":false,"summary":"DAOrg is live-ready as a governance surface, but production-complete language remains gated by explicit proof, reward receipt, and action queue evidence.","productState":{"publicReadReady":true,"liveWritesReady":true,"accessReady":true,"syncOperationalComplete":false,"promotionOperationalComplete":false,"actionQueueReadyToClose":false,"claimPolicyComplete":false},"progress":{"passed":5,"staged":3,"blocked":1,"total":9,"label":"5/9 production gates pass"},"firstBlocker":{"id":"local-proof-producer","label":"Local proof producer","owner":"ODEI local app","state":"staged","nextAction":"Publish public-safe execution proof, runtime receipt, and runtime heartbeat artifacts.","proofUrls":["/api/daorg/runtime/local-proof-contract","/api/daorg/runtime/local-proof-verifier","https://app.odei.ai/runtime-receipt.json","https://app.odei.ai/runtime-heartbeat.json"]},"blockingEvidence":{"open":true,"state":"staged","checkId":"local-proof-producer","label":"Local proof producer","owner":"ODEI local app","checkState":"staged","nextAction":"Publish public-safe execution proof, runtime receipt, and runtime heartbeat artifacts.","requiredEvidence":["execution proof","runtime receipt","runtime heartbeat"],"proofUrls":["/api/daorg/runtime/local-proof-contract","/api/daorg/runtime/local-proof-verifier","https://app.odei.ai/runtime-receipt.json","https://app.odei.ai/runtime-heartbeat.json"],"primaryProofUrl":"/api/daorg/runtime/local-proof-contract","recoveryRoute":"/api/daorg/runtime/action-queue/evidence-request","recoveryUrl":"https://daorg.odei.ai/api/daorg/runtime/action-queue/evidence-request","evidenceHash":"sha256:288af48df184500106d61ac8b8d7394238c6c2b899a331dca3dfc557f2811310"},"recoveryRequest":{"available":true,"route":"/api/daorg/runtime/action-queue/evidence-request","publicUrl":"https://daorg.odei.ai/api/daorg/runtime/action-queue/evidence-request","verifierRoute":"/api/daorg/runtime/action-queue","verifierUrl":"https://daorg.odei.ai/api/daorg/runtime/action-queue","verifierMethod":"POST","requestHash":"sha256:479c9b809bd54b1f5583944c299d3d19cdb6f04d48511de19724f82603c39198","queueHash":"sha256:512f793ac168184afa19a5f51ed58ea8ba3b1252e4cae202ffb2535617e4a0a3","itemId":"local-proof","label":"Runtime receipt available","requiredReadBeforeSubmit":["/api/daorg/runtime/local-app-handoff","/api/daorg/runtime/local-proof-contract","/api/daorg/runtime/local-proof-verifier","/api/daorg/runtime/action-queue/evidence-request"],"submissionEnvelope":{"method":"POST","route":"/api/daorg/runtime/action-queue","body":{"requestHash":"sha256:479c9b809bd54b1f5583944c299d3d19cdb6f04d48511de19724f82603c39198","itemId":"local-proof","evidence":{"schema":"odei.daorg.action-queue-completion-evidence.v1","itemId":"local-proof","queueHash":"sha256:512f793ac168184afa19a5f51ed58ea8ba3b1252e4cae202ffb2535617e4a0a3","publicUrl":"https://app.odei.ai/runtime-receipt.json","evidenceHash":"sha256:<stable-public-safe-evidence-hash>","expectedSignal":"Runtime receipt JSON resolves with stable runtime id, receipt hash, and public-safe summary.","publicSafe":true,"sourceContractHashes":{"actionQueue":"sha256:512f793ac168184afa19a5f51ed58ea8ba3b1252e4cae202ffb2535617e4a0a3","localAppHandoff":"sha256:502721b20e640e75ce807d6a0fdec44318e6b5db0c3ac891f179bb7c0f1462da","localProofContract":"sha256:791dc48aef649ad9636b13f65519b01cf6d0711a30251ae9c00703c5c32a3bdb","localProofVerifier":"sha256:03c6d7a1722dc799cb1f5a6170a4dd8e6e96b89a177a1a47a51a4ea8521e4e30"}}}},"nextAction":"Submit recoveryRequest.submissionEnvelope.body to /api/daorg/runtime/action-queue after replacing placeholder evidenceHash with a stable public-safe hash.","recoveryRequestHash":"sha256:30462560200a95ec9d8bbb96b87fbf03518844bfd1d67c16bfa0aedf5de1a9aa"},"recovery":{"blocked":true,"recoveryRoute":"/api/daorg/runtime/action-queue/evidence-request","recoveryUrl":"https://daorg.odei.ai/api/daorg/runtime/action-queue/evidence-request","recoveryRequestHash":"sha256:30462560200a95ec9d8bbb96b87fbf03518844bfd1d67c16bfa0aedf5de1a9aa","requestHash":"sha256:479c9b809bd54b1f5583944c299d3d19cdb6f04d48511de19724f82603c39198","submissionEnvelope":{"method":"POST","route":"/api/daorg/runtime/action-queue","body":{"requestHash":"sha256:479c9b809bd54b1f5583944c299d3d19cdb6f04d48511de19724f82603c39198","itemId":"local-proof","evidence":{"schema":"odei.daorg.action-queue-completion-evidence.v1","itemId":"local-proof","queueHash":"sha256:512f793ac168184afa19a5f51ed58ea8ba3b1252e4cae202ffb2535617e4a0a3","publicUrl":"https://app.odei.ai/runtime-receipt.json","evidenceHash":"sha256:<stable-public-safe-evidence-hash>","expectedSignal":"Runtime receipt JSON resolves with stable runtime id, receipt hash, and public-safe summary.","publicSafe":true,"sourceContractHashes":{"actionQueue":"sha256:512f793ac168184afa19a5f51ed58ea8ba3b1252e4cae202ffb2535617e4a0a3","localAppHandoff":"sha256:502721b20e640e75ce807d6a0fdec44318e6b5db0c3ac891f179bb7c0f1462da","localProofContract":"sha256:791dc48aef649ad9636b13f65519b01cf6d0711a30251ae9c00703c5c32a3bdb","localProofVerifier":"sha256:03c6d7a1722dc799cb1f5a6170a4dd8e6e96b89a177a1a47a51a4ea8521e4e30"}}}},"nextAction":"Publish public-safe execution proof, runtime receipt, and runtime heartbeat artifacts.","requiredEvidence":["execution proof","runtime receipt","runtime heartbeat"],"proofUrls":["/api/daorg/runtime/local-proof-contract","/api/daorg/runtime/local-proof-verifier","https://app.odei.ai/runtime-receipt.json","https://app.odei.ai/runtime-heartbeat.json"]},"checks":[{"id":"access-boundary","label":"Access boundary","owner":"DAOrg","state":"pass","pass":true,"summary":"Wallet Setup and ODEI App sessions are the active access paths; email confirmation must not block preview access.","proofUrls":["/api/daorg/access"],"requiredEvidence":["email.confirmationRequired=false","wallet-setup path","odei-app-session path"],"nextAction":"Keep email confirmation outside the active access path."},{"id":"live-governance-writes","label":"Live governance writes","owner":"DAOrg","state":"pass","pass":true,"summary":"Runtime readiness allows verified holder writes.","proofUrls":["/api/daorg/runtime/readiness","/api/daorg/runtime/status"],"requiredEvidence":["liveReady=true","wallet auth","governance write loop"],"nextAction":"Run and archive a live motion cycle."},{"id":"app-session-bridge","label":"App session bridge","owner":"app.odei.ai","state":"pass","pass":true,"summary":"app.odei.ai can hand a verified holder/operator session into DAOrg.","proofUrls":["https://app.odei.ai/auth/daorg/session-handoff","/api/daorg/auth/app-handoff"],"requiredEvidence":["issuer","audience","shared handoff secret"],"nextAction":"Keep holder identity synchronized between app.odei.ai and DAOrg."},{"id":"local-proof-producer","label":"Local proof producer","owner":"ODEI local app","state":"staged","pass":false,"summary":"The local ODEI app is still in development; DAOrg treats private execution proof production as staged until the app emits stable proof artifacts.","proofUrls":["/api/daorg/runtime/local-proof-contract","/api/daorg/runtime/local-proof-verifier","https://app.odei.ai/runtime-receipt.json","https://app.odei.ai/runtime-heartbeat.json"],"requiredEvidence":["execution proof","runtime receipt","runtime heartbeat"],"nextAction":"Publish public-safe execution proof, runtime receipt, and runtime heartbeat artifacts."},{"id":"motion-to-receipt-cycle","label":"Motion to receipt cycle","owner":"DAOrg","state":"pass","pass":true,"summary":"A production cycle needs a motion, holder signal, verdict, and proof-indexed public receipt.","proofUrls":["/daorg/studio","/daorg/live","/api/daorg/proofs","/api/daorg/proposals/:tid/proof"],"requiredEvidence":["motion","holder signal","agent verdict","public receipt"],"nextAction":"Run the first end-to-end live motion, signal, verdict, and receipt cycle."},{"id":"reward-receipt-finality","label":"Reward receipt finality","owner":"DAOrg rewards lane","state":"staged","pass":false,"summary":"Rewards are live operationally, but the DAOrg-native contribution proof to reward receipt loop is still being formalized.","proofUrls":["https://daorg.odei.ai/api/daorg/rewards/contract","https://daorg.odei.ai/api/daorg/rewards/verifier","https://daorg.odei.ai/api/daorg/rewards/receipts"],"requiredEvidence":["contribution proof","agent review","holder confirmation","reward receipt"],"nextAction":"Close the first contribution proof to reward receipt cycle."},{"id":"action-queue-closure","label":"Action queue closure","owner":"DAOrg operator","state":"staged","pass":false,"summary":"ODEI local app must close Runtime receipt available before production-complete language is allowed.","proofUrls":["/api/daorg/runtime/action-queue","https://app.odei.ai/runtime-receipt.json"],"requiredEvidence":["openItems=0","completionProgress.pending=0","public evidence"],"nextAction":"Emit the local proof artifacts from the app release."},{"id":"claim-policy","label":"Claim policy","owner":"DAOrg","state":"blocked","pass":false,"summary":"DAOrg claim policy keeps public copy honest while completion evidence, local proof, and DAOrg-native rewards remain staged.","proofUrls":["/api/daorg/runtime/claim-policy"],"requiredEvidence":["productionComplete=true","no blocked production-complete claim"],"nextAction":"Keep production-complete claims blocked until the policy opens."},{"id":"rollback-validation","label":"Rollback validation","owner":"DAOrg operator","state":"pass","pass":true,"summary":"Deploy tooling can snapshot the live runtime, validate rollback targets, and restore NodeBB config before theme rollback.","proofUrls":["bash deploy/gcp/odei-daorg-remote.sh backup-check latest"],"requiredEvidence":["latest snapshot","backup-check latest"],"nextAction":"Validate the latest production snapshot before every high-risk promotion."}],"blockedClaimIds":["production-complete","action-queue-completion-evidence","local-app-proof-finality"],"neverClaimIds":["passive-holder-rewards","specific-reward-finality-without-receipt"],"allowedClaimIds":["public-read-ready","machine-contracts-published","email-confirmation-not-required","rewards-already-paid"],"readinessBrief":{"schema":"odei.daorg.readiness-brief.v1","state":"live-integration-staged","publicReadReady":true,"liveWritesReady":true,"productionComplete":false,"productionGate":{"readyToClaimProduction":false,"syncOperationalComplete":false,"promotionOperationalComplete":false,"claimPolicyComplete":false,"rule":"Production-complete language follows the claim policy because it includes action queue completion evidence."},"answer":"DAOrg is live-ready for public governance, but operational completion remains staged until local proof and DAOrg-native reward receipt evidence close.","allowedNow":["DAOrg is publicly readable.","DAOrg exposes machine-readable governance contracts.","DAOrg access does not require a confirmation email right now.","$2,447 has already been settled in ETH through ODEI review."],"guardedClaims":["DAOrg is production-complete or fully operational.","DAOrg action queue is clear or all completion evidence is verified.","Private local app execution should be treated as public proof without the local proof contract."],"firstBlocker":"Local proof contract","firstBlockerOwner":"Local app","nextAction":"Close Local proof contract for Local app.","citations":{"operationalPacket":"/api/daorg/runtime/operational-packet","runtimeReadiness":"/api/daorg/runtime/readiness","runtimeSyncContract":"/api/daorg/runtime/sync-contract","handoffMap":"/api/daorg/runtime/handoff-map","promotionPlan":"/api/daorg/runtime/promotion-plan","claimPolicy":"/api/daorg/runtime/claim-policy","rewardFinalityVerifier":"https://daorg.odei.ai/api/daorg/rewards/verifier"}},"citations":{"accessContract":"/api/daorg/access","runtimeReadiness":"/api/daorg/runtime/readiness","runtimeSyncContract":"/api/daorg/runtime/sync-contract","operationalPacket":"/api/daorg/runtime/operational-packet","promotionPlan":"/api/daorg/runtime/promotion-plan","actionQueue":"/api/daorg/runtime/action-queue","claimPolicy":"/api/daorg/runtime/claim-policy","handoffMap":"/api/daorg/runtime/handoff-map","localProofContract":"/api/daorg/runtime/local-proof-contract","localProofVerifier":"/api/daorg/runtime/local-proof-verifier","rewardFinalityVerifier":"https://daorg.odei.ai/api/daorg/rewards/verifier","rewardReceiptIndex":"https://daorg.odei.ai/api/daorg/rewards/receipts","publicResponseKit":"/api/daorg/runtime/public-response-kit","contractRegistry":"/api/daorg/contracts"},"rule":"DAOrg can be called production-complete only when every production gate is pass and claimPolicy.productionComplete=true.","invariants":["Live-ready governance is not the same as production-complete.","Production-complete language must cite this gate or the operational packet productionGate.","Local app proof and DAOrg-native reward finality stay fail-closed until their public evidence passes.","Rollback validation is part of promotion readiness, not a separate verbal assumption."],"gateHash":"sha256:f27bd4553b3848f9584b439e1b93fc5d156fa0a99478985a478e2df614d33483"}}