{"generatedAt":"2026-09-07T03:28:49.515Z","scope":{"countrySlug":null,"assetSlug":"in-invit-infra-corridor","status":null,"formatKey":null},"metrics":{"candidateCount":1,"transactionEnvelopeCount":2,"evidenceTransactionReadyCount":0,"blockedBeforeEvidenceTransactionCount":2,"needsPinRedrawCount":0,"needsComplianceReviewCount":0,"missingFileCount":0,"blockedByBriefCount":2,"writeSetItemCount":16,"preconditionCount":18,"satisfiedPreconditionCount":4,"evidenceWriteTransactionDisabledCount":2,"databaseWriteDisabledCount":2,"evidenceWriteDisabledCount":2,"signerEvidenceWriteDisabledCount":2,"requirementEvidenceWriteDisabledCount":2,"revocationEvidenceWriteDisabledCount":2,"approvalEvidenceWrittenCount":0,"approvalEvidenceCommittedCount":0,"signerEvidenceWrittenCount":0,"requirementEvidenceWrittenCount":0,"revocationTemplateWrittenCount":0,"approvalLedgerUpdatedCount":0,"mcpIndexQueuedCount":0,"mcpQueueWriteDisabledCount":2,"rollbackPlanCount":2,"idempotencyKeyCount":2,"evidenceTransactionDigestCount":2,"localGeneratedEvidenceCount":0,"sourceMismatchCount":0,"mcpResourceCount":21},"records":[{"generatedAt":"2026-09-07T03:28:49.515Z","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":2,"evidenceTransactionReadyCount":0,"blockedBeforeEvidenceTransactionCount":2,"writeSetItemCount":16,"preconditionCount":18,"satisfiedPreconditionCount":4,"approvalEvidenceWrittenCount":0,"recordDigest":"ba145379ea8a3ca6cd4d17432cc998314822304ea3b6ca2eaffe4831760b3e46","transactions":[{"generatedAt":"2026-09-07T03:28:49.515Z","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":"96e53115bd7063c75a795c10063f06a97c76c0fdefe802e8a2468fa6d7a3aafa","placeholderDigest":"560a4f92d3f7dec58f3d70e475e9a1d964b909428d5ad3b1bf54eaa5e2432d86","previewDigest":"feb25b0b9037361618e51e83ffda9d877af2f5bbcd853287c7aca2e0b9ac0eb6","visualTransactionDigest":"1e6a818b2ee33432ed70e8395e292f9a374504e20d4909f81a20bf758887b916","reviewDigest":"87c51f3843cfe89528800a9c4a8ad3386812b219b6e40478aefd9eb08e3850fa","approvalDigest":"7d7c23ee4b9c5ce6168558b26f1ebcf81878d9cd6ee6f4a4aef035020e51f616","visualDigest":"d8af9440520b9c2b8b3e165b1ba0b0df0c436b1d86acb2482ebf1d6512f2f7c5","imageSha256":null,"evidenceTransactionDigest":"1964ea32531ba5cc1fd1f767de45381e8e8aef08607b8288799d9baaac3c6b8d","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":"375a80d909b7d9e33076290528b94c18","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-09-07T03:28:49.515Z","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":"96e53115bd7063c75a795c10063f06a97c76c0fdefe802e8a2468fa6d7a3aafa","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":"96e53115bd7063c75a795c10063f06a97c76c0fdefe802e8a2468fa6d7a3aafa","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":"93d6e1be3f7052bacdda7d46de2578129032df8f3d7eb312878e76e40fe8f3e8","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":"96e53115bd7063c75a795c10063f06a97c76c0fdefe802e8a2468fa6d7a3aafa","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":false,"digest":"560a4f92d3f7dec58f3d70e475e9a1d964b909428d5ad3b1bf54eaa5e2432d86","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":false,"digest":"feb25b0b9037361618e51e83ffda9d877af2f5bbcd853287c7aca2e0b9ac0eb6","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"}},{"generatedAt":"2026-09-07T03:28:49.515Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-in-invit-infra-corridor-pixel-map-pin","evidencePacketId":"asset-visual-approval-evidence-in-invit-infra-corridor-pixel-map-pin","placeholderId":"asset-visual-approval-placeholder-in-invit-infra-corridor-pixel-map-pin","previewRowId":"asset-visual-registry-preview-in-invit-infra-corridor-pixel-map-pin","visualTransactionId":"visual-registry-transaction-in-invit-infra-corridor-pixel-map-pin","candidateSlug":"in-invit-infra-corridor","assetName":"印度 REITs / InvIT Infra Corridor","nftStyleName":"REITs Pixel Asset #IN-Infra-10","countrySlug":"in","countryName":"印度","cityName":"Mumbai","assetType":"基础设施走廊","formatKey":"pixel-map-pin","label":"地图像素 Pin 试点","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=pixel-map-pin","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=in-invit-infra-corridor&format=pixel-map-pin","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":"997894050234e812fa209762c9f9bd2af27265b4ad3c8e7bbdebd4b161d3aaea","placeholderDigest":"239cd7b940c6b63b783c062d07eaff04c38f437add1ac2b2e55a2e2261f7e642","previewDigest":"6e307c11e60b678e8c1dddb0a4e650fd5e435982f7b878c6da3eabea107a0755","visualTransactionDigest":"561c81607b821cc2463d00471815fd97817036f0a64a40b172e0d5ff65ddba0c","reviewDigest":"eb12afca3998c2a73d66ab5f7b0d6e8a50242ebd787e959bf92dfc644020fea4","approvalDigest":"36a9f8c7652bbdab3adc9f1476ac44de2426766eec0246f8bb783cdb6638086c","visualDigest":"574f14b9fc44ec5198d05b9a9ff6b9e6fd439088b972fe9b02bf31f0680c6b05","imageSha256":null,"evidenceTransactionDigest":"e2d6296a9ead8d2ed7f9c3a59cc3b7291f6e0c6d3fb32d92360186f047d73e32","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-pixel-map-pin","evidencePacketId":"asset-visual-approval-evidence-in-invit-infra-corridor-pixel-map-pin","idempotencyKey":"9884aab82719f413fc7333f5f48d3797","candidateSlug":"in-invit-infra-corridor","formatKey":"pixel-map-pin","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-in-invit-infra-corridor-pixel-map-pin","targetPreviewRowId":"asset-visual-registry-preview-in-invit-infra-corridor-pixel-map-pin","targetVisualResourceUri":"reits://asset-visual-registry/in-invit-infra-corridor/pixel-map-pin","sourceEvidenceType":"missing-source","sourceEvidencePublicPath":null,"sourceEvidenceSha256":null,"sourceMatchesTransaction":false,"createdAt":"2026-09-07T03:28:49.515Z","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":"997894050234e812fa209762c9f9bd2af27265b4ad3c8e7bbdebd4b161d3aaea","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":"997894050234e812fa209762c9f9bd2af27265b4ad3c8e7bbdebd4b161d3aaea","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":"c9847b6958795931fd3628dc1fb06e274e38fb115eafe26d36c74cfa89e62040","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"a371710cf8b172588ec9d050dca7d344b2af8fda43e7285953f12bd50b441ef5","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-pixel-map-pin","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"36a9f8c7652bbdab3adc9f1476ac44de2426766eec0246f8bb783cdb6638086c","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":false,"digest":"997894050234e812fa209762c9f9bd2af27265b4ad3c8e7bbdebd4b161d3aaea","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":false,"digest":"239cd7b940c6b63b783c062d07eaff04c38f437add1ac2b2e55a2e2261f7e642","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":false,"digest":"6e307c11e60b678e8c1dddb0a4e650fd5e435982f7b878c6da3eabea107a0755","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-pixel-map-pin","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-pixel-map-pin","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-in-invit-infra-corridor-pixel-map-pin","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=pixel-map-pin"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=in-invit-infra-corridor&format=pixel-map-pin","registryPreview":"/operations/asset-visual-registry-preview?asset=in-invit-infra-corridor&format=pixel-map-pin","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=in-invit-infra-corridor&decision=blocked-by-brief&format=pixel-map-pin","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/pixel-map-pin","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/in-invit-infra-corridor/pixel-map-pin","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/in-invit-infra-corridor/pixel-map-pin","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/in-invit-infra-corridor/pixel-map-pin","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/in-invit-infra-corridor/pixel-map-pin","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/in-invit-infra-corridor/pixel-map-pin","visualReviewResourceUri":"reits://asset-visual-review-ledger/in-invit-infra-corridor/pixel-map-pin","visualTrialResourceUri":"reits://asset-visual-trials/in-invit-infra-corridor/pixel-map-pin","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/pixel-map-pin"}}],"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-09-07T03:28:49.515Z","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":"96e53115bd7063c75a795c10063f06a97c76c0fdefe802e8a2468fa6d7a3aafa","placeholderDigest":"560a4f92d3f7dec58f3d70e475e9a1d964b909428d5ad3b1bf54eaa5e2432d86","previewDigest":"feb25b0b9037361618e51e83ffda9d877af2f5bbcd853287c7aca2e0b9ac0eb6","visualTransactionDigest":"1e6a818b2ee33432ed70e8395e292f9a374504e20d4909f81a20bf758887b916","reviewDigest":"87c51f3843cfe89528800a9c4a8ad3386812b219b6e40478aefd9eb08e3850fa","approvalDigest":"7d7c23ee4b9c5ce6168558b26f1ebcf81878d9cd6ee6f4a4aef035020e51f616","visualDigest":"d8af9440520b9c2b8b3e165b1ba0b0df0c436b1d86acb2482ebf1d6512f2f7c5","imageSha256":null,"evidenceTransactionDigest":"1964ea32531ba5cc1fd1f767de45381e8e8aef08607b8288799d9baaac3c6b8d","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":"375a80d909b7d9e33076290528b94c18","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-09-07T03:28:49.515Z","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":"96e53115bd7063c75a795c10063f06a97c76c0fdefe802e8a2468fa6d7a3aafa","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":"96e53115bd7063c75a795c10063f06a97c76c0fdefe802e8a2468fa6d7a3aafa","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":"93d6e1be3f7052bacdda7d46de2578129032df8f3d7eb312878e76e40fe8f3e8","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":"96e53115bd7063c75a795c10063f06a97c76c0fdefe802e8a2468fa6d7a3aafa","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":false,"digest":"560a4f92d3f7dec58f3d70e475e9a1d964b909428d5ad3b1bf54eaa5e2432d86","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":false,"digest":"feb25b0b9037361618e51e83ffda9d877af2f5bbcd853287c7aca2e0b9ac0eb6","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"}},{"generatedAt":"2026-09-07T03:28:49.515Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-in-invit-infra-corridor-pixel-map-pin","evidencePacketId":"asset-visual-approval-evidence-in-invit-infra-corridor-pixel-map-pin","placeholderId":"asset-visual-approval-placeholder-in-invit-infra-corridor-pixel-map-pin","previewRowId":"asset-visual-registry-preview-in-invit-infra-corridor-pixel-map-pin","visualTransactionId":"visual-registry-transaction-in-invit-infra-corridor-pixel-map-pin","candidateSlug":"in-invit-infra-corridor","assetName":"印度 REITs / InvIT Infra Corridor","nftStyleName":"REITs Pixel Asset #IN-Infra-10","countrySlug":"in","countryName":"印度","cityName":"Mumbai","assetType":"基础设施走廊","formatKey":"pixel-map-pin","label":"地图像素 Pin 试点","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=pixel-map-pin","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=in-invit-infra-corridor&format=pixel-map-pin","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":"997894050234e812fa209762c9f9bd2af27265b4ad3c8e7bbdebd4b161d3aaea","placeholderDigest":"239cd7b940c6b63b783c062d07eaff04c38f437add1ac2b2e55a2e2261f7e642","previewDigest":"6e307c11e60b678e8c1dddb0a4e650fd5e435982f7b878c6da3eabea107a0755","visualTransactionDigest":"561c81607b821cc2463d00471815fd97817036f0a64a40b172e0d5ff65ddba0c","reviewDigest":"eb12afca3998c2a73d66ab5f7b0d6e8a50242ebd787e959bf92dfc644020fea4","approvalDigest":"36a9f8c7652bbdab3adc9f1476ac44de2426766eec0246f8bb783cdb6638086c","visualDigest":"574f14b9fc44ec5198d05b9a9ff6b9e6fd439088b972fe9b02bf31f0680c6b05","imageSha256":null,"evidenceTransactionDigest":"e2d6296a9ead8d2ed7f9c3a59cc3b7291f6e0c6d3fb32d92360186f047d73e32","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-pixel-map-pin","evidencePacketId":"asset-visual-approval-evidence-in-invit-infra-corridor-pixel-map-pin","idempotencyKey":"9884aab82719f413fc7333f5f48d3797","candidateSlug":"in-invit-infra-corridor","formatKey":"pixel-map-pin","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-in-invit-infra-corridor-pixel-map-pin","targetPreviewRowId":"asset-visual-registry-preview-in-invit-infra-corridor-pixel-map-pin","targetVisualResourceUri":"reits://asset-visual-registry/in-invit-infra-corridor/pixel-map-pin","sourceEvidenceType":"missing-source","sourceEvidencePublicPath":null,"sourceEvidenceSha256":null,"sourceMatchesTransaction":false,"createdAt":"2026-09-07T03:28:49.515Z","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":"997894050234e812fa209762c9f9bd2af27265b4ad3c8e7bbdebd4b161d3aaea","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":"997894050234e812fa209762c9f9bd2af27265b4ad3c8e7bbdebd4b161d3aaea","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":"c9847b6958795931fd3628dc1fb06e274e38fb115eafe26d36c74cfa89e62040","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"a371710cf8b172588ec9d050dca7d344b2af8fda43e7285953f12bd50b441ef5","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-pixel-map-pin","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"36a9f8c7652bbdab3adc9f1476ac44de2426766eec0246f8bb783cdb6638086c","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":false,"digest":"997894050234e812fa209762c9f9bd2af27265b4ad3c8e7bbdebd4b161d3aaea","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":false,"digest":"239cd7b940c6b63b783c062d07eaff04c38f437add1ac2b2e55a2e2261f7e642","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":false,"digest":"6e307c11e60b678e8c1dddb0a4e650fd5e435982f7b878c6da3eabea107a0755","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-pixel-map-pin","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-pixel-map-pin","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-in-invit-infra-corridor-pixel-map-pin","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=pixel-map-pin"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=in-invit-infra-corridor&format=pixel-map-pin","registryPreview":"/operations/asset-visual-registry-preview?asset=in-invit-infra-corridor&format=pixel-map-pin","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=in-invit-infra-corridor&decision=blocked-by-brief&format=pixel-map-pin","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/pixel-map-pin","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/in-invit-infra-corridor/pixel-map-pin","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/in-invit-infra-corridor/pixel-map-pin","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/in-invit-infra-corridor/pixel-map-pin","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/in-invit-infra-corridor/pixel-map-pin","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/in-invit-infra-corridor/pixel-map-pin","visualReviewResourceUri":"reits://asset-visual-review-ledger/in-invit-infra-corridor/pixel-map-pin","visualTrialResourceUri":"reits://asset-visual-trials/in-invit-infra-corridor/pixel-map-pin","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/pixel-map-pin"}}],"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":2}],"countryBreakdown":[{"countrySlug":"in","countryName":"印度","transactionCount":2,"evidenceTransactionReadyCount":0,"blockedBeforeEvidenceTransactionCount":2}],"qaWarnings":["该层只预演 approval evidence writer transaction，不上传证据、不写表、不提交最终批准。","evidence-transaction-ready 只代表事务形状可检查，签署人身份、审批时间戳和证据 URI 仍为空。","sourceEvidence 只进入 writer envelope 的 assert/precondition，不等同 approval evidence 已上传或写入。","evidenceWriteTransactionDisabled、databaseWriteDisabled、mcpQueueWriteDisabled 必须保持 true。","该事务不能直接推动 Pixel Atlas、地图、BBS 或正式图片清单发布。"],"publicNotes":["当前筛选范围内有 2 个证据写入事务 envelope，0 个可检查，0 个带本地生成源证据。","运营可以用该页确认未来 evidence writer 需要写哪些表、按什么幂等键锁定、失败后如何撤销。","下一步真正接 writer 前，应先补齐身份系统、审批时间、附件存储策略和 MCP governance index 写入权限。","当前筛选没有 BBS Gap 证据写入事务 dry-run envelope。"]}