{"generatedAt":"2026-07-31T18:33:39.533Z","scope":{"countrySlug":"ca","assetSlug":null,"status":"needs-compliance-review","formatKey":null},"metrics":{"candidateCount":1,"transactionEnvelopeCount":1,"evidenceTransactionReadyCount":0,"blockedBeforeEvidenceTransactionCount":1,"needsPinRedrawCount":0,"needsComplianceReviewCount":1,"missingFileCount":0,"blockedByBriefCount":0,"writeSetItemCount":8,"preconditionCount":9,"satisfiedPreconditionCount":3,"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":1,"sourceMismatchCount":0,"mcpResourceCount":11},"records":[{"generatedAt":"2026-07-31T18:33:39.533Z","candidateSlug":"ca-residential-tsx-node","assetName":"加拿大 Canadian REIT Residential Node","nftStyleName":"REITs Pixel Asset #CA-Residential-09","countrySlug":"ca","countryName":"加拿大","cityName":"Toronto","assetType":"住宅租赁","statusLabel":"证据写入事务前置阻断","transactionCount":1,"evidenceTransactionReadyCount":0,"blockedBeforeEvidenceTransactionCount":1,"writeSetItemCount":8,"preconditionCount":9,"satisfiedPreconditionCount":3,"approvalEvidenceWrittenCount":0,"recordDigest":"1e764c15ac8521b1701f0cb57ca42eabdfb8aaae75f3213f62d7194c3eb97ad7","transactions":[{"generatedAt":"2026-07-31T18:33:39.533Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-ca-residential-tsx-node-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-ca-residential-tsx-node-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-ca-residential-tsx-node-isometric-nft-card","previewRowId":"asset-visual-registry-preview-ca-residential-tsx-node-isometric-nft-card","visualTransactionId":"visual-registry-transaction-ca-residential-tsx-node-isometric-nft-card","candidateSlug":"ca-residential-tsx-node","assetName":"加拿大 Canadian REIT Residential Node","nftStyleName":"REITs Pixel Asset #CA-Residential-09","countrySlug":"ca","countryName":"加拿大","cityName":"Toronto","assetType":"住宅租赁","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":"/assets/virtual-assets/ca-residential-tsx-node/nft-card.png","sourceEvidence":{"sourceType":"bbs-gap-local-generated","localFileDetected":true,"publicPath":"/assets/virtual-assets/ca-residential-tsx-node/nft-card.png","sha256":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","bytes":2195051,"manifestSource":"filesystem-probe","sourceMatchesTransaction":true,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=ca-residential-tsx-node&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=ca-residential-tsx-node&format=isometric-nft-card","evidenceNote":"BBS Gap 本地生成文件已进入清单预览证据链，但 formalRegistryWritten 仍为 false。"},"status":"needs-compliance-review","statusLabel":"需先合规复核","packetStatus":"needs-compliance-review","packetStatusLabel":"需先合规复核","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":"f49116c3d345372ac49ad36ce9fa620a074483d72ffe8c4d77c9604d79041d32","placeholderDigest":"8efa2a25eb4c7f160d1d655fdd00990cc91ec5ea0592bdf2765fec3a00511743","previewDigest":"86771e364316fe6bf58bd35d23f539077531bc15fe59fbb83412eddd2adb6547","visualTransactionDigest":"95984f24315c7a2f5cca5391ed6c079f0b1a71972047c91a96e040a31fcae0fc","reviewDigest":"f678c533e81e23cf288c4615f5e98c1994f5b9fcf28a5840021b6ffa4df1178a","approvalDigest":"0745b722d119f96283f6b870e76fb58d6eadab0af4a86e3b7cfde61a63706d88","visualDigest":"368b04611be7a37cfe5b4f851008dd90171212e5d7f410000a722d9658506a3f","imageSha256":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","evidenceTransactionDigest":"67855ae6dc5006cf34deaa9fe7f8e88261eab1ae3eb30ad6162954ecfe3ea497","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-ca-residential-tsx-node-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-ca-residential-tsx-node-isometric-nft-card","idempotencyKey":"48c15a8209603431bd650f491df72bc6","candidateSlug":"ca-residential-tsx-node","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-ca-residential-tsx-node-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-ca-residential-tsx-node-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/ca-residential-tsx-node/isometric-nft-card","sourceEvidenceType":"bbs-gap-local-generated","sourceEvidencePublicPath":"/assets/virtual-assets/ca-residential-tsx-node/nft-card.png","sourceEvidenceSha256":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","sourceMatchesTransaction":true,"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":"f49116c3d345372ac49ad36ce9fa620a074483d72ffe8c4d77c9604d79041d32","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"f49116c3d345372ac49ad36ce9fa620a074483d72ffe8c4d77c9604d79041d32","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":"0318733983f85ecf45d81860b7f1b2be97e25573ead2d4726cf5220f919e0f11","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"2acb3be4c08af2a6c9ee7add71f3bac1bc4affe69d2524a74772875b43ee392f","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-ca-residential-tsx-node-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"0745b722d119f96283f6b870e76fb58d6eadab0af4a86e3b7cfde61a63706d88","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":false,"digest":"f49116c3d345372ac49ad36ce9fa620a074483d72ffe8c4d77c9604d79041d32","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":false,"digest":"8efa2a25eb4c7f160d1d655fdd00990cc91ec5ea0592bdf2765fec3a00511743","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":false,"digest":"86771e364316fe6bf58bd35d23f539077531bc15fe59fbb83412eddd2adb6547","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":true,"digest":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","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-ca-residential-tsx-node-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-ca-residential-tsx-node-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-ca-residential-tsx-node-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":true},{"label":"本地源证据与事务一致","passed":true},{"label":"签署人身份仍未填写","passed":false},{"label":"证据 URI 仍未上传","passed":false},{"label":"证据写入仍为 false","passed":false}],"blockers":["合规复核尚未完成，不能进入双人审批。","approval packet 未达到 dual-control-ready，不能生成可校验迁入事务。","事务未达到 transaction-dry-run-ready，只能展示 blocked preview row。","本地生成图片证据已检测，但 Registry preview row 尚未 ready，不能开放真实审批占位槽位。","Registry preview row 尚未 ready，不能开放真实审批占位槽位。","本地生成图片证据已检测，但真实审批占位尚未 ready，不能生成可检查证据包。","真实审批占位尚未 ready，不能生成可检查证据包。","本地生成图片 source evidence 已检测，但证据包尚未 ready，不能进入 writer transaction。","证据包尚未 ready，不能进入 evidence writer transaction dry-run。"],"requiredActions":[{"owner":"qa","label":"回到证据包页面处理前置阻断后再进入写入事务预演","href":"/operations/asset-visual-approval-evidence-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card"},{"owner":"compliance","label":"先完成合规复核，不能为未过审图片写审批证据","href":"/operations/virtual-asset-visual-review-ledger?asset=ca-residential-tsx-node&decision=needs-compliance-review&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=ca-residential-tsx-node&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=ca-residential-tsx-node&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=ca-residential-tsx-node&decision=needs-compliance-review&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E5%8A%A0%E6%8B%BF%E5%A4%A7%20Canadian%20REIT%20Residential%20Node"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/ca-residential-tsx-node/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/ca-residential-tsx-node/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/ca-residential-tsx-node/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/ca-residential-tsx-node/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/ca-residential-tsx-node/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/ca-residential-tsx-node/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/ca-residential-tsx-node/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/ca-residential-tsx-node/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/ca-residential-tsx-node","visualRegistryResourceUri":"reits://asset-visual-registry/ca-residential-tsx-node","targetVisualResourceUri":"reits://asset-visual-registry/ca-residential-tsx-node/isometric-nft-card"}}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=ca-residential-tsx-node","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=ca-residential-tsx-node","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=ca-residential-tsx-node","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=ca-residential-tsx-node","registryPreview":"/operations/asset-visual-registry-preview?asset=ca-residential-tsx-node","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=ca-residential-tsx-node","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=ca-residential-tsx-node","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=ca-residential-tsx-node","visualRegistry":"/operations/asset-visual-registry","search":"/search?q=%E5%8A%A0%E6%8B%BF%E5%A4%A7%20Canadian%20REIT%20Residential%20Node"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/ca-residential-tsx-node","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/ca-residential-tsx-node","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/ca-residential-tsx-node","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/ca-residential-tsx-node","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/ca-residential-tsx-node","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/ca-residential-tsx-node","visualReviewResourceUri":"reits://asset-visual-review-ledger/ca-residential-tsx-node","visualTrialResourceUri":"reits://asset-visual-trials/ca-residential-tsx-node","futureAssetResourceUri":"reits://virtual-assets/ca-residential-tsx-node","visualRegistryResourceUri":"reits://asset-visual-registry/ca-residential-tsx-node"}}],"transactions":[{"generatedAt":"2026-07-31T18:33:39.533Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-ca-residential-tsx-node-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-ca-residential-tsx-node-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-ca-residential-tsx-node-isometric-nft-card","previewRowId":"asset-visual-registry-preview-ca-residential-tsx-node-isometric-nft-card","visualTransactionId":"visual-registry-transaction-ca-residential-tsx-node-isometric-nft-card","candidateSlug":"ca-residential-tsx-node","assetName":"加拿大 Canadian REIT Residential Node","nftStyleName":"REITs Pixel Asset #CA-Residential-09","countrySlug":"ca","countryName":"加拿大","cityName":"Toronto","assetType":"住宅租赁","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":"/assets/virtual-assets/ca-residential-tsx-node/nft-card.png","sourceEvidence":{"sourceType":"bbs-gap-local-generated","localFileDetected":true,"publicPath":"/assets/virtual-assets/ca-residential-tsx-node/nft-card.png","sha256":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","bytes":2195051,"manifestSource":"filesystem-probe","sourceMatchesTransaction":true,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=ca-residential-tsx-node&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=ca-residential-tsx-node&format=isometric-nft-card","evidenceNote":"BBS Gap 本地生成文件已进入清单预览证据链，但 formalRegistryWritten 仍为 false。"},"status":"needs-compliance-review","statusLabel":"需先合规复核","packetStatus":"needs-compliance-review","packetStatusLabel":"需先合规复核","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":"f49116c3d345372ac49ad36ce9fa620a074483d72ffe8c4d77c9604d79041d32","placeholderDigest":"8efa2a25eb4c7f160d1d655fdd00990cc91ec5ea0592bdf2765fec3a00511743","previewDigest":"86771e364316fe6bf58bd35d23f539077531bc15fe59fbb83412eddd2adb6547","visualTransactionDigest":"95984f24315c7a2f5cca5391ed6c079f0b1a71972047c91a96e040a31fcae0fc","reviewDigest":"f678c533e81e23cf288c4615f5e98c1994f5b9fcf28a5840021b6ffa4df1178a","approvalDigest":"0745b722d119f96283f6b870e76fb58d6eadab0af4a86e3b7cfde61a63706d88","visualDigest":"368b04611be7a37cfe5b4f851008dd90171212e5d7f410000a722d9658506a3f","imageSha256":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","evidenceTransactionDigest":"67855ae6dc5006cf34deaa9fe7f8e88261eab1ae3eb30ad6162954ecfe3ea497","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-ca-residential-tsx-node-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-ca-residential-tsx-node-isometric-nft-card","idempotencyKey":"48c15a8209603431bd650f491df72bc6","candidateSlug":"ca-residential-tsx-node","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-ca-residential-tsx-node-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-ca-residential-tsx-node-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/ca-residential-tsx-node/isometric-nft-card","sourceEvidenceType":"bbs-gap-local-generated","sourceEvidencePublicPath":"/assets/virtual-assets/ca-residential-tsx-node/nft-card.png","sourceEvidenceSha256":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","sourceMatchesTransaction":true,"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":"f49116c3d345372ac49ad36ce9fa620a074483d72ffe8c4d77c9604d79041d32","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"f49116c3d345372ac49ad36ce9fa620a074483d72ffe8c4d77c9604d79041d32","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":"0318733983f85ecf45d81860b7f1b2be97e25573ead2d4726cf5220f919e0f11","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"2acb3be4c08af2a6c9ee7add71f3bac1bc4affe69d2524a74772875b43ee392f","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-ca-residential-tsx-node-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"0745b722d119f96283f6b870e76fb58d6eadab0af4a86e3b7cfde61a63706d88","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":false,"digest":"f49116c3d345372ac49ad36ce9fa620a074483d72ffe8c4d77c9604d79041d32","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":false,"digest":"8efa2a25eb4c7f160d1d655fdd00990cc91ec5ea0592bdf2765fec3a00511743","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":false,"digest":"86771e364316fe6bf58bd35d23f539077531bc15fe59fbb83412eddd2adb6547","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":true,"digest":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":"4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6","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-ca-residential-tsx-node-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-ca-residential-tsx-node-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-ca-residential-tsx-node-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":true},{"label":"本地源证据与事务一致","passed":true},{"label":"签署人身份仍未填写","passed":false},{"label":"证据 URI 仍未上传","passed":false},{"label":"证据写入仍为 false","passed":false}],"blockers":["合规复核尚未完成，不能进入双人审批。","approval packet 未达到 dual-control-ready，不能生成可校验迁入事务。","事务未达到 transaction-dry-run-ready，只能展示 blocked preview row。","本地生成图片证据已检测，但 Registry preview row 尚未 ready，不能开放真实审批占位槽位。","Registry preview row 尚未 ready，不能开放真实审批占位槽位。","本地生成图片证据已检测，但真实审批占位尚未 ready，不能生成可检查证据包。","真实审批占位尚未 ready，不能生成可检查证据包。","本地生成图片 source evidence 已检测，但证据包尚未 ready，不能进入 writer transaction。","证据包尚未 ready，不能进入 evidence writer transaction dry-run。"],"requiredActions":[{"owner":"qa","label":"回到证据包页面处理前置阻断后再进入写入事务预演","href":"/operations/asset-visual-approval-evidence-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card"},{"owner":"compliance","label":"先完成合规复核，不能为未过审图片写审批证据","href":"/operations/virtual-asset-visual-review-ledger?asset=ca-residential-tsx-node&decision=needs-compliance-review&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=ca-residential-tsx-node&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=ca-residential-tsx-node&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=ca-residential-tsx-node&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=ca-residential-tsx-node&decision=needs-compliance-review&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E5%8A%A0%E6%8B%BF%E5%A4%A7%20Canadian%20REIT%20Residential%20Node"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/ca-residential-tsx-node/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/ca-residential-tsx-node/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/ca-residential-tsx-node/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/ca-residential-tsx-node/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/ca-residential-tsx-node/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/ca-residential-tsx-node/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/ca-residential-tsx-node/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/ca-residential-tsx-node/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/ca-residential-tsx-node","visualRegistryResourceUri":"reits://asset-visual-registry/ca-residential-tsx-node","targetVisualResourceUri":"reits://asset-visual-registry/ca-residential-tsx-node/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":1},{"status":"missing-file","label":"缺文件不可写证据","count":0},{"status":"blocked-by-brief","label":"Brief 阻断不可写证据","count":0}],"countryBreakdown":[{"countrySlug":"ca","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 个可检查，1 个带本地生成源证据。","运营可以用该页确认未来 evidence writer 需要写哪些表、按什么幂等键锁定、失败后如何撤销。","下一步真正接 writer 前，应先补齐身份系统、审批时间、附件存储策略和 MCP governance index 写入权限。","当前筛选没有 BBS Gap 证据写入事务 dry-run envelope。"]}