{"generatedAt":"2026-07-31T18:33:39.533Z","scope":{"countrySlug":"in","assetSlug":null,"status":"blocked-by-brief","formatKey":"isometric-nft-card"},"metrics":{"candidateCount":1,"transactionEnvelopeCount":1,"evidenceTransactionReadyCount":0,"blockedBeforeEvidenceTransactionCount":1,"needsPinRedrawCount":0,"needsComplianceReviewCount":0,"missingFileCount":0,"blockedByBriefCount":1,"writeSetItemCount":8,"preconditionCount":9,"satisfiedPreconditionCount":2,"evidenceWriteTransactionDisabledCount":1,"databaseWriteDisabledCount":1,"evidenceWriteDisabledCount":1,"signerEvidenceWriteDisabledCount":1,"requirementEvidenceWriteDisabledCount":1,"revocationEvidenceWriteDisabledCount":1,"approvalEvidenceWrittenCount":0,"approvalEvidenceCommittedCount":0,"signerEvidenceWrittenCount":0,"requirementEvidenceWrittenCount":0,"revocationTemplateWrittenCount":0,"approvalLedgerUpdatedCount":0,"mcpIndexQueuedCount":0,"mcpQueueWriteDisabledCount":1,"rollbackPlanCount":1,"idempotencyKeyCount":1,"evidenceTransactionDigestCount":1,"localGeneratedEvidenceCount":0,"sourceMismatchCount":0,"mcpResourceCount":11},"records":[{"generatedAt":"2026-07-31T18:33:39.533Z","candidateSlug":"in-invit-infra-corridor","assetName":"印度 REITs / InvIT Infra Corridor","nftStyleName":"REITs Pixel Asset #IN-Infra-10","countrySlug":"in","countryName":"印度","cityName":"Mumbai","assetType":"基础设施走廊","statusLabel":"证据写入事务前置阻断","transactionCount":1,"evidenceTransactionReadyCount":0,"blockedBeforeEvidenceTransactionCount":1,"writeSetItemCount":8,"preconditionCount":9,"satisfiedPreconditionCount":2,"approvalEvidenceWrittenCount":0,"recordDigest":"a27a24ab45d7f7ae8ab7775a0236f42023ddc010e3687fd57843bc78ed806de2","transactions":[{"generatedAt":"2026-07-31T18:33:39.533Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-in-invit-infra-corridor-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-in-invit-infra-corridor-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-in-invit-infra-corridor-isometric-nft-card","previewRowId":"asset-visual-registry-preview-in-invit-infra-corridor-isometric-nft-card","visualTransactionId":"visual-registry-transaction-in-invit-infra-corridor-isometric-nft-card","candidateSlug":"in-invit-infra-corridor","assetName":"印度 REITs / InvIT Infra Corridor","nftStyleName":"REITs Pixel Asset #IN-Infra-10","countrySlug":"in","countryName":"印度","cityName":"Mumbai","assetType":"基础设施走廊","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":null,"sourceEvidence":{"sourceType":"missing-source","localFileDetected":false,"publicPath":null,"sha256":null,"bytes":null,"manifestSource":null,"sourceMatchesTransaction":false,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=in-invit-infra-corridor&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=in-invit-infra-corridor&format=isometric-nft-card","evidenceNote":"当前没有 source image，必须保持 blocked preview row。"},"status":"blocked-by-brief","statusLabel":"Brief 阻断不可写证据","packetStatus":"blocked-by-brief","packetStatusLabel":"Brief 阻断不可提交证据","dryRunOnly":true,"evidenceTransactionDryRun":true,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"evidenceWriteDisabled":true,"signerEvidenceWriteDisabled":true,"requirementEvidenceWriteDisabled":true,"revocationEvidenceWriteDisabled":true,"approvalLedgerWriteDisabled":true,"mcpQueueWriteDisabled":true,"externalStorageUploadDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"signerEvidenceWritten":false,"requirementEvidenceWritten":false,"revocationTemplateWritten":false,"approvalLedgerUpdated":false,"mcpIndexQueued":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"pixelAtlasPublishDisabled":true,"mapPublishDisabled":true,"bbsPostDisabled":true,"externalMintDisabled":true,"tradingUseDisabled":true,"atomicity":"all-or-nothing","evidencePacketDigest":"1c207ee684abe45866791f48901049cb5b59dcfe895c6d66ae2ab8e8c01492fb","placeholderDigest":"719f01e96100014678e98ba5b77d7cabce473df09aa682f0af76bb3050808364","previewDigest":"7c4f7c4eb0d41692b962990b8c95acdc9bef1a4395eed3db5c9437f9064fccab","visualTransactionDigest":"137998d2da2e3909b1b48c0949dd0d0f30448feb05854529b246b8633cda67de","reviewDigest":"87c51f3843cfe89528800a9c4a8ad3386812b219b6e40478aefd9eb08e3850fa","approvalDigest":"7d7c23ee4b9c5ce6168558b26f1ebcf81878d9cd6ee6f4a4aef035020e51f616","visualDigest":"d8af9440520b9c2b8b3e165b1ba0b0df0c436b1d86acb2482ebf1d6512f2f7c5","imageSha256":null,"evidenceTransactionDigest":"802f8df53b5498fdb5d483a8b463ee1e3d595d722aa165b9c3a89515cf2eef3f","writerEnvelope":{"table":"asset_visual_approval_evidence_transactions","schemaVersion":"2026-06-visual-approval-evidence-transaction-dry-run-v1","transactionType":"approval-evidence-write","transactionMode":"dry-run-only","evidenceTransactionId":"asset-visual-approval-evidence-tx-in-invit-infra-corridor-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-in-invit-infra-corridor-isometric-nft-card","idempotencyKey":"656e4707502b55e7e630777b3639bacc","candidateSlug":"in-invit-infra-corridor","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-in-invit-infra-corridor-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-in-invit-infra-corridor-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/in-invit-infra-corridor/isometric-nft-card","sourceEvidenceType":"missing-source","sourceEvidencePublicPath":null,"sourceEvidenceSha256":null,"sourceMatchesTransaction":false,"createdAt":"2026-07-31T18:33:39.533Z","atomicity":"all-or-nothing","lockStrategy":"candidate-format-idempotency-lock","writeDisabled":true},"writeSet":[{"id":"assert-evidence-packet-digest","table":"asset_visual_approval_evidence_packets","operation":"assert","writeDisabled":true,"sourceDigest":"1c207ee684abe45866791f48901049cb5b59dcfe895c6d66ae2ab8e8c01492fb","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":null,"note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"1c207ee684abe45866791f48901049cb5b59dcfe895c6d66ae2ab8e8c01492fb","note":"未来写入审批证据主行；当前 evidenceWriteDisabled=true。"},{"id":"bulk-insert-signer-evidence","table":"asset_visual_approval_evidence_signers","operation":"bulk-insert","writeDisabled":true,"sourceDigest":"2afcce1af273f616627aff9867bd99234c1880f9d60ab03c8d853a912154373b","note":"未来写入双签身份、时间戳和证据 URI；当前 signer evidence 仍为空。"},{"id":"bulk-insert-requirement-evidence","table":"asset_visual_approval_evidence_requirements","operation":"bulk-insert","writeDisabled":true,"sourceDigest":"db10c789d59d287cdbf92009b1f3d50810f631992e511c076f9d4df97f21a386","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"f0d5ea6593c8c38dcf2aa164859b4ca03f60c716e29e310dd7d0accb20fe5d7e","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-in-invit-infra-corridor-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"7d7c23ee4b9c5ce6168558b26f1ebcf81878d9cd6ee6f4a4aef035020e51f616","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":false,"digest":"1c207ee684abe45866791f48901049cb5b59dcfe895c6d66ae2ab8e8c01492fb","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":false,"digest":"719f01e96100014678e98ba5b77d7cabce473df09aa682f0af76bb3050808364","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":false,"digest":"7c4f7c4eb0d41692b962990b8c95acdc9bef1a4395eed3db5c9437f9064fccab","note":"写入证据必须能定位未发布清单预览行。"},{"id":"signer-identity-present","label":"签署人身份已填写","satisfied":false,"digest":null,"note":"当前 approverId 仍为空，不能真实写入 signer evidence。"},{"id":"approval-timestamp-present","label":"审批时间戳已填写","satisfied":false,"digest":null,"note":"当前 approvedAt 仍为空，不能真实写入审批时间证据。"},{"id":"evidence-uri-present","label":"证据 URI 已上传","satisfied":false,"digest":null,"note":"当前不允许上传外部附件，approvalEvidenceUri 必须保持 null。"},{"id":"source-evidence-present","label":"源图片证据已绑定","satisfied":false,"digest":null,"note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":null,"note":"BBS Gap 本地生成图命中时，必须与事务层 source/imageSha256 保持一致。"},{"id":"writer-switch-disabled","label":"写入开关保持关闭","satisfied":true,"digest":null,"note":"运营测试期必须保持 evidenceWriteTransactionDisabled=true。"}],"rollbackPlan":{"rollbackPlanId":"rollback-asset-visual-approval-evidence-tx-in-invit-infra-corridor-isometric-nft-card","mode":"dry-run-only","compensationStrategy":"remove-unpublished-evidence-rows-only","canRollbackWithoutMutation":true,"requiresDualControl":true,"rollbackWriteDisabled":true,"rollbackScope":"approval-evidence-and-unpublished-preview-only"},"revocationTransactionTemplate":{"templateId":"revocation-tx-asset-visual-approval-evidence-tx-in-invit-infra-corridor-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-in-invit-infra-corridor-isometric-nft-card","requiresDualControl":true,"revocationEvidenceRequired":true,"revocationUploadDisabled":true,"revocationWriteDisabled":true,"note":"撤销审批证据时也必须走双人证据事务；当前只生成模板，不写撤销记录。"},"releaseGate":{"evidencePacketReady":false,"signerIdentityPresent":false,"approvalTimestampPresent":false,"evidenceUriPresent":false,"evidenceDigestPresent":false,"writeSwitchEnabled":false,"evidenceTransactionShapeReady":false,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"mcpQueueWriteDisabled":true},"qaChecklist":[{"label":"证据包 ready","passed":false},{"label":"幂等键已生成","passed":true},{"label":"writeSet 只读预演","passed":true},{"label":"源图片证据已绑定","passed":false},{"label":"本地源证据与事务一致","passed":true},{"label":"签署人身份仍未填写","passed":false},{"label":"证据 URI 仍未上传","passed":false},{"label":"证据写入仍为 false","passed":false}],"blockers":["印度 REITs / InvIT Infra Corridor 仍被 brief/source/policy 门禁阻断，不能进入双人审批。","approval packet 未达到 dual-control-ready，不能生成可校验迁入事务。","事务未达到 transaction-dry-run-ready，只能展示 blocked preview row。","本地生成图片证据未检测到，且 Registry preview row 尚未 ready。","Registry preview row 尚未 ready，不能开放真实审批占位槽位。","本地生成图片证据未检测到，且真实审批占位尚未 ready。","真实审批占位尚未 ready，不能生成可检查证据包。","源图片证据未完整检测，且证据包尚未 ready。","证据包尚未 ready，不能进入 evidence writer transaction dry-run。"],"requiredActions":[{"owner":"qa","label":"回到证据包页面处理前置阻断后再进入写入事务预演","href":"/operations/asset-visual-approval-evidence-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=in-invit-infra-corridor&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=in-invit-infra-corridor&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=in-invit-infra-corridor&decision=blocked-by-brief&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E5%8D%B0%E5%BA%A6%20REITs%20%2F%20InvIT%20Infra%20Corridor"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/in-invit-infra-corridor/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/in-invit-infra-corridor/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/in-invit-infra-corridor/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/in-invit-infra-corridor/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/in-invit-infra-corridor/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/in-invit-infra-corridor/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/in-invit-infra-corridor/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/in-invit-infra-corridor/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/in-invit-infra-corridor","visualRegistryResourceUri":"reits://asset-visual-registry/in-invit-infra-corridor","targetVisualResourceUri":"reits://asset-visual-registry/in-invit-infra-corridor/isometric-nft-card"}}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=in-invit-infra-corridor","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=in-invit-infra-corridor","registryPreview":"/operations/asset-visual-registry-preview?asset=in-invit-infra-corridor","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=in-invit-infra-corridor","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=in-invit-infra-corridor","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=in-invit-infra-corridor","visualRegistry":"/operations/asset-visual-registry","search":"/search?q=%E5%8D%B0%E5%BA%A6%20REITs%20%2F%20InvIT%20Infra%20Corridor"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/in-invit-infra-corridor","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/in-invit-infra-corridor","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/in-invit-infra-corridor","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/in-invit-infra-corridor","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/in-invit-infra-corridor","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/in-invit-infra-corridor","visualReviewResourceUri":"reits://asset-visual-review-ledger/in-invit-infra-corridor","visualTrialResourceUri":"reits://asset-visual-trials/in-invit-infra-corridor","futureAssetResourceUri":"reits://virtual-assets/in-invit-infra-corridor","visualRegistryResourceUri":"reits://asset-visual-registry/in-invit-infra-corridor"}}],"transactions":[{"generatedAt":"2026-07-31T18:33:39.533Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-in-invit-infra-corridor-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-in-invit-infra-corridor-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-in-invit-infra-corridor-isometric-nft-card","previewRowId":"asset-visual-registry-preview-in-invit-infra-corridor-isometric-nft-card","visualTransactionId":"visual-registry-transaction-in-invit-infra-corridor-isometric-nft-card","candidateSlug":"in-invit-infra-corridor","assetName":"印度 REITs / InvIT Infra Corridor","nftStyleName":"REITs Pixel Asset #IN-Infra-10","countrySlug":"in","countryName":"印度","cityName":"Mumbai","assetType":"基础设施走廊","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":null,"sourceEvidence":{"sourceType":"missing-source","localFileDetected":false,"publicPath":null,"sha256":null,"bytes":null,"manifestSource":null,"sourceMatchesTransaction":false,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=in-invit-infra-corridor&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=in-invit-infra-corridor&format=isometric-nft-card","evidenceNote":"当前没有 source image，必须保持 blocked preview row。"},"status":"blocked-by-brief","statusLabel":"Brief 阻断不可写证据","packetStatus":"blocked-by-brief","packetStatusLabel":"Brief 阻断不可提交证据","dryRunOnly":true,"evidenceTransactionDryRun":true,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"evidenceWriteDisabled":true,"signerEvidenceWriteDisabled":true,"requirementEvidenceWriteDisabled":true,"revocationEvidenceWriteDisabled":true,"approvalLedgerWriteDisabled":true,"mcpQueueWriteDisabled":true,"externalStorageUploadDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"signerEvidenceWritten":false,"requirementEvidenceWritten":false,"revocationTemplateWritten":false,"approvalLedgerUpdated":false,"mcpIndexQueued":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"pixelAtlasPublishDisabled":true,"mapPublishDisabled":true,"bbsPostDisabled":true,"externalMintDisabled":true,"tradingUseDisabled":true,"atomicity":"all-or-nothing","evidencePacketDigest":"1c207ee684abe45866791f48901049cb5b59dcfe895c6d66ae2ab8e8c01492fb","placeholderDigest":"719f01e96100014678e98ba5b77d7cabce473df09aa682f0af76bb3050808364","previewDigest":"7c4f7c4eb0d41692b962990b8c95acdc9bef1a4395eed3db5c9437f9064fccab","visualTransactionDigest":"137998d2da2e3909b1b48c0949dd0d0f30448feb05854529b246b8633cda67de","reviewDigest":"87c51f3843cfe89528800a9c4a8ad3386812b219b6e40478aefd9eb08e3850fa","approvalDigest":"7d7c23ee4b9c5ce6168558b26f1ebcf81878d9cd6ee6f4a4aef035020e51f616","visualDigest":"d8af9440520b9c2b8b3e165b1ba0b0df0c436b1d86acb2482ebf1d6512f2f7c5","imageSha256":null,"evidenceTransactionDigest":"802f8df53b5498fdb5d483a8b463ee1e3d595d722aa165b9c3a89515cf2eef3f","writerEnvelope":{"table":"asset_visual_approval_evidence_transactions","schemaVersion":"2026-06-visual-approval-evidence-transaction-dry-run-v1","transactionType":"approval-evidence-write","transactionMode":"dry-run-only","evidenceTransactionId":"asset-visual-approval-evidence-tx-in-invit-infra-corridor-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-in-invit-infra-corridor-isometric-nft-card","idempotencyKey":"656e4707502b55e7e630777b3639bacc","candidateSlug":"in-invit-infra-corridor","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-in-invit-infra-corridor-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-in-invit-infra-corridor-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/in-invit-infra-corridor/isometric-nft-card","sourceEvidenceType":"missing-source","sourceEvidencePublicPath":null,"sourceEvidenceSha256":null,"sourceMatchesTransaction":false,"createdAt":"2026-07-31T18:33:39.533Z","atomicity":"all-or-nothing","lockStrategy":"candidate-format-idempotency-lock","writeDisabled":true},"writeSet":[{"id":"assert-evidence-packet-digest","table":"asset_visual_approval_evidence_packets","operation":"assert","writeDisabled":true,"sourceDigest":"1c207ee684abe45866791f48901049cb5b59dcfe895c6d66ae2ab8e8c01492fb","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":null,"note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"1c207ee684abe45866791f48901049cb5b59dcfe895c6d66ae2ab8e8c01492fb","note":"未来写入审批证据主行；当前 evidenceWriteDisabled=true。"},{"id":"bulk-insert-signer-evidence","table":"asset_visual_approval_evidence_signers","operation":"bulk-insert","writeDisabled":true,"sourceDigest":"2afcce1af273f616627aff9867bd99234c1880f9d60ab03c8d853a912154373b","note":"未来写入双签身份、时间戳和证据 URI；当前 signer evidence 仍为空。"},{"id":"bulk-insert-requirement-evidence","table":"asset_visual_approval_evidence_requirements","operation":"bulk-insert","writeDisabled":true,"sourceDigest":"db10c789d59d287cdbf92009b1f3d50810f631992e511c076f9d4df97f21a386","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"f0d5ea6593c8c38dcf2aa164859b4ca03f60c716e29e310dd7d0accb20fe5d7e","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-in-invit-infra-corridor-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"7d7c23ee4b9c5ce6168558b26f1ebcf81878d9cd6ee6f4a4aef035020e51f616","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":false,"digest":"1c207ee684abe45866791f48901049cb5b59dcfe895c6d66ae2ab8e8c01492fb","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":false,"digest":"719f01e96100014678e98ba5b77d7cabce473df09aa682f0af76bb3050808364","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":false,"digest":"7c4f7c4eb0d41692b962990b8c95acdc9bef1a4395eed3db5c9437f9064fccab","note":"写入证据必须能定位未发布清单预览行。"},{"id":"signer-identity-present","label":"签署人身份已填写","satisfied":false,"digest":null,"note":"当前 approverId 仍为空，不能真实写入 signer evidence。"},{"id":"approval-timestamp-present","label":"审批时间戳已填写","satisfied":false,"digest":null,"note":"当前 approvedAt 仍为空，不能真实写入审批时间证据。"},{"id":"evidence-uri-present","label":"证据 URI 已上传","satisfied":false,"digest":null,"note":"当前不允许上传外部附件，approvalEvidenceUri 必须保持 null。"},{"id":"source-evidence-present","label":"源图片证据已绑定","satisfied":false,"digest":null,"note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":null,"note":"BBS Gap 本地生成图命中时，必须与事务层 source/imageSha256 保持一致。"},{"id":"writer-switch-disabled","label":"写入开关保持关闭","satisfied":true,"digest":null,"note":"运营测试期必须保持 evidenceWriteTransactionDisabled=true。"}],"rollbackPlan":{"rollbackPlanId":"rollback-asset-visual-approval-evidence-tx-in-invit-infra-corridor-isometric-nft-card","mode":"dry-run-only","compensationStrategy":"remove-unpublished-evidence-rows-only","canRollbackWithoutMutation":true,"requiresDualControl":true,"rollbackWriteDisabled":true,"rollbackScope":"approval-evidence-and-unpublished-preview-only"},"revocationTransactionTemplate":{"templateId":"revocation-tx-asset-visual-approval-evidence-tx-in-invit-infra-corridor-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-in-invit-infra-corridor-isometric-nft-card","requiresDualControl":true,"revocationEvidenceRequired":true,"revocationUploadDisabled":true,"revocationWriteDisabled":true,"note":"撤销审批证据时也必须走双人证据事务；当前只生成模板，不写撤销记录。"},"releaseGate":{"evidencePacketReady":false,"signerIdentityPresent":false,"approvalTimestampPresent":false,"evidenceUriPresent":false,"evidenceDigestPresent":false,"writeSwitchEnabled":false,"evidenceTransactionShapeReady":false,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"mcpQueueWriteDisabled":true},"qaChecklist":[{"label":"证据包 ready","passed":false},{"label":"幂等键已生成","passed":true},{"label":"writeSet 只读预演","passed":true},{"label":"源图片证据已绑定","passed":false},{"label":"本地源证据与事务一致","passed":true},{"label":"签署人身份仍未填写","passed":false},{"label":"证据 URI 仍未上传","passed":false},{"label":"证据写入仍为 false","passed":false}],"blockers":["印度 REITs / InvIT Infra Corridor 仍被 brief/source/policy 门禁阻断，不能进入双人审批。","approval packet 未达到 dual-control-ready，不能生成可校验迁入事务。","事务未达到 transaction-dry-run-ready，只能展示 blocked preview row。","本地生成图片证据未检测到，且 Registry preview row 尚未 ready。","Registry preview row 尚未 ready，不能开放真实审批占位槽位。","本地生成图片证据未检测到，且真实审批占位尚未 ready。","真实审批占位尚未 ready，不能生成可检查证据包。","源图片证据未完整检测，且证据包尚未 ready。","证据包尚未 ready，不能进入 evidence writer transaction dry-run。"],"requiredActions":[{"owner":"qa","label":"回到证据包页面处理前置阻断后再进入写入事务预演","href":"/operations/asset-visual-approval-evidence-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=in-invit-infra-corridor&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=in-invit-infra-corridor&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=in-invit-infra-corridor&decision=blocked-by-brief&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E5%8D%B0%E5%BA%A6%20REITs%20%2F%20InvIT%20Infra%20Corridor"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/in-invit-infra-corridor/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/in-invit-infra-corridor/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/in-invit-infra-corridor/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/in-invit-infra-corridor/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/in-invit-infra-corridor/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/in-invit-infra-corridor/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/in-invit-infra-corridor/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/in-invit-infra-corridor/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/in-invit-infra-corridor","visualRegistryResourceUri":"reits://asset-visual-registry/in-invit-infra-corridor","targetVisualResourceUri":"reits://asset-visual-registry/in-invit-infra-corridor/isometric-nft-card"}}],"statusBreakdown":[{"status":"evidence-transaction-ready","label":"证据写入事务可检查","count":0},{"status":"needs-pin-redraw","label":"需先重绘地图 Pin","count":0},{"status":"needs-compliance-review","label":"需先合规复核","count":0},{"status":"missing-file","label":"缺文件不可写证据","count":0},{"status":"blocked-by-brief","label":"Brief 阻断不可写证据","count":1}],"countryBreakdown":[{"countrySlug":"in","countryName":"印度","transactionCount":1,"evidenceTransactionReadyCount":0,"blockedBeforeEvidenceTransactionCount":1}],"qaWarnings":["该层只预演 approval evidence writer transaction，不上传证据、不写表、不提交最终批准。","evidence-transaction-ready 只代表事务形状可检查，签署人身份、审批时间戳和证据 URI 仍为空。","sourceEvidence 只进入 writer envelope 的 assert/precondition，不等同 approval evidence 已上传或写入。","evidenceWriteTransactionDisabled、databaseWriteDisabled、mcpQueueWriteDisabled 必须保持 true。","该事务不能直接推动 Pixel Atlas、地图、BBS 或正式图片清单发布。"],"publicNotes":["当前筛选范围内有 1 个证据写入事务 envelope，0 个可检查，0 个带本地生成源证据。","运营可以用该页确认未来 evidence writer 需要写哪些表、按什么幂等键锁定、失败后如何撤销。","下一步真正接 writer 前，应先补齐身份系统、审批时间、附件存储策略和 MCP governance index 写入权限。","当前筛选没有 BBS Gap 证据写入事务 dry-run envelope。"]}