{"generatedAt":"2026-09-07T03:28:49.515Z","scope":{"countrySlug":"cn","assetSlug":null,"status":"evidence-transaction-ready","formatKey":null},"metrics":{"candidateCount":4,"transactionEnvelopeCount":4,"evidenceTransactionReadyCount":4,"blockedBeforeEvidenceTransactionCount":0,"needsPinRedrawCount":0,"needsComplianceReviewCount":0,"missingFileCount":0,"blockedByBriefCount":0,"writeSetItemCount":32,"preconditionCount":36,"satisfiedPreconditionCount":24,"evidenceWriteTransactionDisabledCount":4,"databaseWriteDisabledCount":4,"evidenceWriteDisabledCount":4,"signerEvidenceWriteDisabledCount":4,"requirementEvidenceWriteDisabledCount":4,"revocationEvidenceWriteDisabledCount":4,"approvalEvidenceWrittenCount":0,"approvalEvidenceCommittedCount":0,"signerEvidenceWrittenCount":0,"requirementEvidenceWrittenCount":0,"revocationTemplateWrittenCount":0,"approvalLedgerUpdatedCount":0,"mcpIndexQueuedCount":0,"mcpQueueWriteDisabledCount":4,"rollbackPlanCount":4,"idempotencyKeyCount":4,"evidenceTransactionDigestCount":4,"localGeneratedEvidenceCount":4,"sourceMismatchCount":0,"mcpResourceCount":44},"records":[{"generatedAt":"2026-09-07T03:28:49.515Z","candidateSlug":"cn-rental-housing-community","assetName":"中国保障性租赁住房 Community Block","nftStyleName":"REITs Pixel Asset #CN-Rental-12","countrySlug":"cn","countryName":"中国内地","cityName":"深圳","assetType":"保障性租赁住房","statusLabel":"存在证据写入事务 dry-run","transactionCount":1,"evidenceTransactionReadyCount":1,"blockedBeforeEvidenceTransactionCount":0,"writeSetItemCount":8,"preconditionCount":9,"satisfiedPreconditionCount":6,"approvalEvidenceWrittenCount":0,"recordDigest":"b654fa23244b125586ea071c8ad3e324d8a441b41ffa0279b84ba1a6bea79f38","transactions":[{"generatedAt":"2026-09-07T03:28:49.515Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-cn-rental-housing-community-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-rental-housing-community-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-cn-rental-housing-community-isometric-nft-card","previewRowId":"asset-visual-registry-preview-cn-rental-housing-community-isometric-nft-card","visualTransactionId":"visual-registry-transaction-cn-rental-housing-community-isometric-nft-card","candidateSlug":"cn-rental-housing-community","assetName":"中国保障性租赁住房 Community Block","nftStyleName":"REITs Pixel Asset #CN-Rental-12","countrySlug":"cn","countryName":"中国内地","cityName":"深圳","assetType":"保障性租赁住房","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":"/assets/virtual-assets/cn-rental-housing-community/nft-card.png","sourceEvidence":{"sourceType":"bbs-gap-local-generated","localFileDetected":true,"publicPath":"/assets/virtual-assets/cn-rental-housing-community/nft-card.png","sha256":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","bytes":92699,"manifestSource":"generation-manifest","sourceMatchesTransaction":true,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=cn-rental-housing-community&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-rental-housing-community&format=isometric-nft-card","evidenceNote":"BBS Gap 本地生成文件已进入清单预览证据链，但 formalRegistryWritten 仍为 false。"},"status":"evidence-transaction-ready","statusLabel":"证据写入事务可检查","packetStatus":"evidence-packet-ready","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":"9f12eb87036c62f357a42281640d5aab5328bc7eaea86746543e2ea5decad9ac","placeholderDigest":"61e796d87d987477d610e3b83292fd9080190a0a2152d708ec8c3d50ab04ee84","previewDigest":"dde2b8bd60ea1b9848c7fedfd1b60e8a939a49c0c506bc9592f8f352f715e777","visualTransactionDigest":"3207aad4518546d87d7064ebf39b7b4cd01546db362f26092453de558f377bfe","reviewDigest":"338d596c08a74f427eebdc706e99ce8783f90d34113a79587fe457b0ea156417","approvalDigest":"fca6100c3936cb5d1d6486658dc7ac3925f48461d809de79ce1c48a881bc2f25","visualDigest":"767216491392f8e84d9841ff3e0f9f11637d4d5754468c8aa6c495500d4d2823","imageSha256":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","evidenceTransactionDigest":"ca28276962fc3f1f453c2162c8ad04626c78d9f884c2fcb930f7e35ebebf810f","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-cn-rental-housing-community-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-rental-housing-community-isometric-nft-card","idempotencyKey":"4be3d54a70c022889381b1b7e0fc1bbe","candidateSlug":"cn-rental-housing-community","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-cn-rental-housing-community-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-cn-rental-housing-community-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/cn-rental-housing-community/isometric-nft-card","sourceEvidenceType":"bbs-gap-local-generated","sourceEvidencePublicPath":"/assets/virtual-assets/cn-rental-housing-community/nft-card.png","sourceEvidenceSha256":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","sourceMatchesTransaction":true,"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":"9f12eb87036c62f357a42281640d5aab5328bc7eaea86746543e2ea5decad9ac","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"9f12eb87036c62f357a42281640d5aab5328bc7eaea86746543e2ea5decad9ac","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":"309514a2cf492926c88110dd0328da0d3c72c6392ed264f031870bc191dcfc97","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"74c90e1a7fa07a78135f00c1102d799b22d6bc50713495f11ba5e92aa1675217","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-cn-rental-housing-community-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"fca6100c3936cb5d1d6486658dc7ac3925f48461d809de79ce1c48a881bc2f25","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":true,"digest":"9f12eb87036c62f357a42281640d5aab5328bc7eaea86746543e2ea5decad9ac","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":true,"digest":"61e796d87d987477d610e3b83292fd9080190a0a2152d708ec8c3d50ab04ee84","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":true,"digest":"dde2b8bd60ea1b9848c7fedfd1b60e8a939a49c0c506bc9592f8f352f715e777","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":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","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-cn-rental-housing-community-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-cn-rental-housing-community-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-cn-rental-housing-community-isometric-nft-card","requiresDualControl":true,"revocationEvidenceRequired":true,"revocationUploadDisabled":true,"revocationWriteDisabled":true,"note":"撤销审批证据时也必须走双人证据事务；当前只生成模板，不写撤销记录。"},"releaseGate":{"evidencePacketReady":true,"signerIdentityPresent":false,"approvalTimestampPresent":false,"evidenceUriPresent":false,"evidenceDigestPresent":false,"writeSwitchEnabled":false,"evidenceTransactionShapeReady":true,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"mcpQueueWriteDisabled":true},"qaChecklist":[{"label":"证据包 ready","passed":true},{"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":["本地生成图片 source evidence 已绑定到 writer envelope，但仍只做事务预演。","仅表示 evidence writer envelope 可检查，不代表允许写入。","approverId、approvedAt、approvalEvidenceUri 和 approvalEvidenceDigest 仍为空。","evidenceWriteTransactionDisabled=true，databaseWriteDisabled=true。","approvalEvidenceWritten=false，finalApprovalRecorded=false。"],"requiredActions":[{"owner":"ops","label":"准备双签审批人身份与审批时间戳，但不要上传或写入","href":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card"},{"owner":"engineering","label":"实现 writer 前保持 transaction/database/evidence 写入全部禁用","href":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card"},{"owner":"qa","label":"校验 idempotencyKey、writeSet、rollbackPlan 和 MCP 资源 URI","href":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-rental-housing-community&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-rental-housing-community&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-rental-housing-community&decision=ready-for-human-approval&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E4%BF%9D%E9%9A%9C%E6%80%A7%E7%A7%9F%E8%B5%81%E4%BD%8F%E6%88%BF%20Community%20Block"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-rental-housing-community/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-rental-housing-community/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-rental-housing-community/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-rental-housing-community/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-rental-housing-community/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-rental-housing-community/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-rental-housing-community/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/cn-rental-housing-community/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/cn-rental-housing-community","visualRegistryResourceUri":"reits://asset-visual-registry/cn-rental-housing-community","targetVisualResourceUri":"reits://asset-visual-registry/cn-rental-housing-community/isometric-nft-card"}}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-rental-housing-community","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-rental-housing-community","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-rental-housing-community","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-rental-housing-community","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-rental-housing-community","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-rental-housing-community","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-rental-housing-community","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-rental-housing-community","visualRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E4%BF%9D%E9%9A%9C%E6%80%A7%E7%A7%9F%E8%B5%81%E4%BD%8F%E6%88%BF%20Community%20Block"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-rental-housing-community","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-rental-housing-community","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-rental-housing-community","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-rental-housing-community","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-rental-housing-community","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-rental-housing-community","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-rental-housing-community","visualTrialResourceUri":"reits://asset-visual-trials/cn-rental-housing-community","futureAssetResourceUri":"reits://virtual-assets/cn-rental-housing-community","visualRegistryResourceUri":"reits://asset-visual-registry/cn-rental-housing-community"}},{"generatedAt":"2026-09-07T03:28:49.515Z","candidateSlug":"cn-logistics-bbs-gap","assetName":"中国内地仓储物流 BBS Gap","nftStyleName":"REITs Pixel Asset #CN-Logistics-BBS","countrySlug":"cn","countryName":"中国内地","cityName":"上海","assetType":"仓储物流","statusLabel":"存在证据写入事务 dry-run","transactionCount":1,"evidenceTransactionReadyCount":1,"blockedBeforeEvidenceTransactionCount":0,"writeSetItemCount":8,"preconditionCount":9,"satisfiedPreconditionCount":6,"approvalEvidenceWrittenCount":0,"recordDigest":"8e52f46ac7e37512de8e1f6b5f535d0f737334482cb0efd4b05cd4af6292d8d8","transactions":[{"generatedAt":"2026-09-07T03:28:49.515Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-cn-logistics-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-logistics-bbs-gap-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-cn-logistics-bbs-gap-isometric-nft-card","previewRowId":"asset-visual-registry-preview-cn-logistics-bbs-gap-isometric-nft-card","visualTransactionId":"visual-registry-transaction-cn-logistics-bbs-gap-isometric-nft-card","candidateSlug":"cn-logistics-bbs-gap","assetName":"中国内地仓储物流 BBS Gap","nftStyleName":"REITs Pixel Asset #CN-Logistics-BBS","countrySlug":"cn","countryName":"中国内地","cityName":"上海","assetType":"仓储物流","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":"/assets/virtual-assets/cn-logistics-bbs-gap/nft-card.png","sourceEvidence":{"sourceType":"bbs-gap-local-generated","localFileDetected":true,"publicPath":"/assets/virtual-assets/cn-logistics-bbs-gap/nft-card.png","sha256":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","bytes":90568,"manifestSource":"generation-manifest","sourceMatchesTransaction":true,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=cn-logistics-bbs-gap&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-logistics-bbs-gap&format=isometric-nft-card","evidenceNote":"BBS Gap 本地生成文件已进入清单预览证据链，但 formalRegistryWritten 仍为 false。"},"status":"evidence-transaction-ready","statusLabel":"证据写入事务可检查","packetStatus":"evidence-packet-ready","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":"61569ea4e45943f874cc18b5967471f082692361d39281680244cd5736a60f31","placeholderDigest":"b1053e770b8f2f946d034ecdc53a2334003a5a8379f816000323b791cb3c1188","previewDigest":"c6ee4b1e55875709950e94770462ac62f64b020a5ed81bcab6c8e97c76c24741","visualTransactionDigest":"30870cb1942e96af4dd5d13ad175f51df2bd45d9c82e7bfe8fe7c6a221bfdc8c","reviewDigest":"fa5b37d8428eb57b256739df8312a20244cbc6b63062eb0997620a8cf1e0d641","approvalDigest":"aac0461d6c290828a123e9d6b060ea5d39d054259760786ea3d8a0247538a51a","visualDigest":"cfbae45981263d30b5eea7a508c8561c8392893aa0588594e97f4bb6007b4f90","imageSha256":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","evidenceTransactionDigest":"ac980bfc1c7e255f58f58722b307e9c3aa62fbcf9c70b279e3b36fe131279471","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-cn-logistics-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-logistics-bbs-gap-isometric-nft-card","idempotencyKey":"af67110748aea5897f9a6d729c61c959","candidateSlug":"cn-logistics-bbs-gap","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-cn-logistics-bbs-gap-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-cn-logistics-bbs-gap-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/cn-logistics-bbs-gap/isometric-nft-card","sourceEvidenceType":"bbs-gap-local-generated","sourceEvidencePublicPath":"/assets/virtual-assets/cn-logistics-bbs-gap/nft-card.png","sourceEvidenceSha256":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","sourceMatchesTransaction":true,"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":"61569ea4e45943f874cc18b5967471f082692361d39281680244cd5736a60f31","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"61569ea4e45943f874cc18b5967471f082692361d39281680244cd5736a60f31","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":"2392c3e448e0fd5e7fecafeeaed022339555fb7ddb8613836f6ce25c03f51300","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"05187cb49edb4384f60523b1baf734a11cf79a050aee8bfdac66f8c72253e8c0","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-cn-logistics-bbs-gap-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"aac0461d6c290828a123e9d6b060ea5d39d054259760786ea3d8a0247538a51a","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":true,"digest":"61569ea4e45943f874cc18b5967471f082692361d39281680244cd5736a60f31","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":true,"digest":"b1053e770b8f2f946d034ecdc53a2334003a5a8379f816000323b791cb3c1188","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":true,"digest":"c6ee4b1e55875709950e94770462ac62f64b020a5ed81bcab6c8e97c76c24741","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":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","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-cn-logistics-bbs-gap-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-cn-logistics-bbs-gap-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-cn-logistics-bbs-gap-isometric-nft-card","requiresDualControl":true,"revocationEvidenceRequired":true,"revocationUploadDisabled":true,"revocationWriteDisabled":true,"note":"撤销审批证据时也必须走双人证据事务；当前只生成模板，不写撤销记录。"},"releaseGate":{"evidencePacketReady":true,"signerIdentityPresent":false,"approvalTimestampPresent":false,"evidenceUriPresent":false,"evidenceDigestPresent":false,"writeSwitchEnabled":false,"evidenceTransactionShapeReady":true,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"mcpQueueWriteDisabled":true},"qaChecklist":[{"label":"证据包 ready","passed":true},{"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":["本地生成图片 source evidence 已绑定到 writer envelope，但仍只做事务预演。","仅表示 evidence writer envelope 可检查，不代表允许写入。","approverId、approvedAt、approvalEvidenceUri 和 approvalEvidenceDigest 仍为空。","evidenceWriteTransactionDisabled=true，databaseWriteDisabled=true。","approvalEvidenceWritten=false，finalApprovalRecorded=false。"],"requiredActions":[{"owner":"ops","label":"准备双签审批人身份与审批时间戳，但不要上传或写入","href":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card"},{"owner":"engineering","label":"实现 writer 前保持 transaction/database/evidence 写入全部禁用","href":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card"},{"owner":"qa","label":"校验 idempotencyKey、writeSet、rollbackPlan 和 MCP 资源 URI","href":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-logistics-bbs-gap&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-logistics-bbs-gap&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-logistics-bbs-gap&decision=ready-for-human-approval&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E5%86%85%E5%9C%B0%E4%BB%93%E5%82%A8%E7%89%A9%E6%B5%81%20BBS%20Gap"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-logistics-bbs-gap/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-logistics-bbs-gap/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-logistics-bbs-gap/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-logistics-bbs-gap/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-logistics-bbs-gap/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-logistics-bbs-gap/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-logistics-bbs-gap/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/cn-logistics-bbs-gap/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/cn-logistics-bbs-gap","visualRegistryResourceUri":"reits://asset-visual-registry/cn-logistics-bbs-gap","targetVisualResourceUri":"reits://asset-visual-registry/cn-logistics-bbs-gap/isometric-nft-card"}}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-logistics-bbs-gap","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-logistics-bbs-gap","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-logistics-bbs-gap","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-logistics-bbs-gap","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-logistics-bbs-gap","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-logistics-bbs-gap","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-logistics-bbs-gap","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-logistics-bbs-gap","visualRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E5%86%85%E5%9C%B0%E4%BB%93%E5%82%A8%E7%89%A9%E6%B5%81%20BBS%20Gap"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-logistics-bbs-gap","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-logistics-bbs-gap","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-logistics-bbs-gap","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-logistics-bbs-gap","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-logistics-bbs-gap","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-logistics-bbs-gap","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-logistics-bbs-gap","visualTrialResourceUri":"reits://asset-visual-trials/cn-logistics-bbs-gap","futureAssetResourceUri":"reits://virtual-assets/cn-logistics-bbs-gap","visualRegistryResourceUri":"reits://asset-visual-registry/cn-logistics-bbs-gap"}},{"generatedAt":"2026-09-07T03:28:49.515Z","candidateSlug":"cn-highway-bbs-gap","assetName":"中国内地高速公路 BBS Gap","nftStyleName":"REITs Pixel Asset #CN-Highway-BBS","countrySlug":"cn","countryName":"中国内地","cityName":"广州","assetType":"高速公路","statusLabel":"存在证据写入事务 dry-run","transactionCount":1,"evidenceTransactionReadyCount":1,"blockedBeforeEvidenceTransactionCount":0,"writeSetItemCount":8,"preconditionCount":9,"satisfiedPreconditionCount":6,"approvalEvidenceWrittenCount":0,"recordDigest":"b44e65e35eb9febe61962ff867c7c40f0d84d0938dc28d763c32c2ac9daff89d","transactions":[{"generatedAt":"2026-09-07T03:28:49.515Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-cn-highway-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-highway-bbs-gap-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-cn-highway-bbs-gap-isometric-nft-card","previewRowId":"asset-visual-registry-preview-cn-highway-bbs-gap-isometric-nft-card","visualTransactionId":"visual-registry-transaction-cn-highway-bbs-gap-isometric-nft-card","candidateSlug":"cn-highway-bbs-gap","assetName":"中国内地高速公路 BBS Gap","nftStyleName":"REITs Pixel Asset #CN-Highway-BBS","countrySlug":"cn","countryName":"中国内地","cityName":"广州","assetType":"高速公路","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":"/assets/virtual-assets/cn-highway-bbs-gap/nft-card.png","sourceEvidence":{"sourceType":"bbs-gap-local-generated","localFileDetected":true,"publicPath":"/assets/virtual-assets/cn-highway-bbs-gap/nft-card.png","sha256":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","bytes":96279,"manifestSource":"generation-manifest","sourceMatchesTransaction":true,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=cn-highway-bbs-gap&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-highway-bbs-gap&format=isometric-nft-card","evidenceNote":"BBS Gap 本地生成文件已进入清单预览证据链，但 formalRegistryWritten 仍为 false。"},"status":"evidence-transaction-ready","statusLabel":"证据写入事务可检查","packetStatus":"evidence-packet-ready","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":"fd0868a7fd203ec86ac17b23fee9046409f1fb894e30668ddfdfd20bd3738673","placeholderDigest":"f3a3da7f18a36fe5278e26a1c8874ffd10aea8e46ec38f321ace6f7f164cacb9","previewDigest":"7c8ab3eb9839e737ec651c084c8741e2e01739e7623080487b76a56abb492d68","visualTransactionDigest":"b911c6f71336e42527e456fe314d536e24e8f113c3ab319b35bbebea4480f04d","reviewDigest":"4818f070cffc01676d1cf2690e8fab6ad7ba82aeb86bc18d99228a4c975535cf","approvalDigest":"bda1b46870e3d0f9f8fb1cbb021dc2c95d75003e18ecb9e76714e5bf77d8c48c","visualDigest":"026a955bac9388c2f6d4b788291033e528d6ca08358ad7367f10b256d7101ad6","imageSha256":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","evidenceTransactionDigest":"8b35f90ba9fac6acd1d384ca3372167bda4cce15df4fc8511410a8bdef91900b","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-cn-highway-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-highway-bbs-gap-isometric-nft-card","idempotencyKey":"e73bd521a193202fed5e19d29f231dfe","candidateSlug":"cn-highway-bbs-gap","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-cn-highway-bbs-gap-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-cn-highway-bbs-gap-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/cn-highway-bbs-gap/isometric-nft-card","sourceEvidenceType":"bbs-gap-local-generated","sourceEvidencePublicPath":"/assets/virtual-assets/cn-highway-bbs-gap/nft-card.png","sourceEvidenceSha256":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","sourceMatchesTransaction":true,"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":"fd0868a7fd203ec86ac17b23fee9046409f1fb894e30668ddfdfd20bd3738673","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"fd0868a7fd203ec86ac17b23fee9046409f1fb894e30668ddfdfd20bd3738673","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":"d0b583d1356e8a05bc5b8c0ef7103b5f4d2d18d4aa50e62b6aa6942482b41763","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"a395e441a1c5b9290c82c1c734a67b1863a91bab7968b83492b8afa4ca4f8e82","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-cn-highway-bbs-gap-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"bda1b46870e3d0f9f8fb1cbb021dc2c95d75003e18ecb9e76714e5bf77d8c48c","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":true,"digest":"fd0868a7fd203ec86ac17b23fee9046409f1fb894e30668ddfdfd20bd3738673","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":true,"digest":"f3a3da7f18a36fe5278e26a1c8874ffd10aea8e46ec38f321ace6f7f164cacb9","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":true,"digest":"7c8ab3eb9839e737ec651c084c8741e2e01739e7623080487b76a56abb492d68","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":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","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-cn-highway-bbs-gap-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-cn-highway-bbs-gap-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-cn-highway-bbs-gap-isometric-nft-card","requiresDualControl":true,"revocationEvidenceRequired":true,"revocationUploadDisabled":true,"revocationWriteDisabled":true,"note":"撤销审批证据时也必须走双人证据事务；当前只生成模板，不写撤销记录。"},"releaseGate":{"evidencePacketReady":true,"signerIdentityPresent":false,"approvalTimestampPresent":false,"evidenceUriPresent":false,"evidenceDigestPresent":false,"writeSwitchEnabled":false,"evidenceTransactionShapeReady":true,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"mcpQueueWriteDisabled":true},"qaChecklist":[{"label":"证据包 ready","passed":true},{"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":["本地生成图片 source evidence 已绑定到 writer envelope，但仍只做事务预演。","仅表示 evidence writer envelope 可检查，不代表允许写入。","approverId、approvedAt、approvalEvidenceUri 和 approvalEvidenceDigest 仍为空。","evidenceWriteTransactionDisabled=true，databaseWriteDisabled=true。","approvalEvidenceWritten=false，finalApprovalRecorded=false。"],"requiredActions":[{"owner":"ops","label":"准备双签审批人身份与审批时间戳，但不要上传或写入","href":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card"},{"owner":"engineering","label":"实现 writer 前保持 transaction/database/evidence 写入全部禁用","href":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card"},{"owner":"qa","label":"校验 idempotencyKey、writeSet、rollbackPlan 和 MCP 资源 URI","href":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-highway-bbs-gap&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-highway-bbs-gap&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-highway-bbs-gap&decision=ready-for-human-approval&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E5%86%85%E5%9C%B0%E9%AB%98%E9%80%9F%E5%85%AC%E8%B7%AF%20BBS%20Gap"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-highway-bbs-gap/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-highway-bbs-gap/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-highway-bbs-gap/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-highway-bbs-gap/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-highway-bbs-gap/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-highway-bbs-gap/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-highway-bbs-gap/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/cn-highway-bbs-gap/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/cn-highway-bbs-gap","visualRegistryResourceUri":"reits://asset-visual-registry/cn-highway-bbs-gap","targetVisualResourceUri":"reits://asset-visual-registry/cn-highway-bbs-gap/isometric-nft-card"}}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-highway-bbs-gap","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-highway-bbs-gap","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-highway-bbs-gap","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-highway-bbs-gap","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-highway-bbs-gap","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-highway-bbs-gap","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-highway-bbs-gap","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-highway-bbs-gap","visualRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E5%86%85%E5%9C%B0%E9%AB%98%E9%80%9F%E5%85%AC%E8%B7%AF%20BBS%20Gap"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-highway-bbs-gap","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-highway-bbs-gap","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-highway-bbs-gap","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-highway-bbs-gap","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-highway-bbs-gap","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-highway-bbs-gap","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-highway-bbs-gap","visualTrialResourceUri":"reits://asset-visual-trials/cn-highway-bbs-gap","futureAssetResourceUri":"reits://virtual-assets/cn-highway-bbs-gap","visualRegistryResourceUri":"reits://asset-visual-registry/cn-highway-bbs-gap"}},{"generatedAt":"2026-09-07T03:28:49.515Z","candidateSlug":"cn-commercial-bbs-gap","assetName":"中国内地商业不动产 BBS Gap","nftStyleName":"REITs Pixel Asset #CN-Commercial-BBS","countrySlug":"cn","countryName":"中国内地","cityName":"上海","assetType":"商业不动产","statusLabel":"存在证据写入事务 dry-run","transactionCount":1,"evidenceTransactionReadyCount":1,"blockedBeforeEvidenceTransactionCount":0,"writeSetItemCount":8,"preconditionCount":9,"satisfiedPreconditionCount":6,"approvalEvidenceWrittenCount":0,"recordDigest":"404b827dd4f7b6671d1a13c498ced6913d3fd6bd04686b9bd869f6dc1410ea27","transactions":[{"generatedAt":"2026-09-07T03:28:49.515Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-cn-commercial-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-commercial-bbs-gap-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-cn-commercial-bbs-gap-isometric-nft-card","previewRowId":"asset-visual-registry-preview-cn-commercial-bbs-gap-isometric-nft-card","visualTransactionId":"visual-registry-transaction-cn-commercial-bbs-gap-isometric-nft-card","candidateSlug":"cn-commercial-bbs-gap","assetName":"中国内地商业不动产 BBS Gap","nftStyleName":"REITs Pixel Asset #CN-Commercial-BBS","countrySlug":"cn","countryName":"中国内地","cityName":"上海","assetType":"商业不动产","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":"/assets/virtual-assets/cn-commercial-bbs-gap/nft-card.png","sourceEvidence":{"sourceType":"bbs-gap-local-generated","localFileDetected":true,"publicPath":"/assets/virtual-assets/cn-commercial-bbs-gap/nft-card.png","sha256":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","bytes":76669,"manifestSource":"generation-manifest","sourceMatchesTransaction":true,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=cn-commercial-bbs-gap&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-commercial-bbs-gap&format=isometric-nft-card","evidenceNote":"BBS Gap 本地生成文件已进入清单预览证据链，但 formalRegistryWritten 仍为 false。"},"status":"evidence-transaction-ready","statusLabel":"证据写入事务可检查","packetStatus":"evidence-packet-ready","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":"7aff09a4fa17c635693549d60b7f28d6da9da783c9af3ee3b03697676ba3c69c","placeholderDigest":"0aeaf0d3e1bcfaceb2a60113bbbb5e1b7c992346d055549c4688de33127884d8","previewDigest":"58a56cb4eb9ea462f1a14b006b27250b98899de9c2b3f8aa514a9e53121f4028","visualTransactionDigest":"9e30622f00abc52fd87ad309d836154847da23561c25113ef9e9967406fe1126","reviewDigest":"e7a4c751a692f4766f8d6f690885d01c232c7337f7d86f3c74de75518f0ccbb3","approvalDigest":"2d5969081aedee898a98592f0a528f46b0857a82c97dfb5110fd7634c6b5f263","visualDigest":"2ca9e738647c7dab9c9e47d14d8f40cdb5823925c8a0b9bbeaad4d2c6f252d1c","imageSha256":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","evidenceTransactionDigest":"c7e7434d0a759cc967eb729b133ced9ff96842e52f88829639150a4810aa4864","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-cn-commercial-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-commercial-bbs-gap-isometric-nft-card","idempotencyKey":"1d0aef1a087caad59aca0a12841f3732","candidateSlug":"cn-commercial-bbs-gap","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-cn-commercial-bbs-gap-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-cn-commercial-bbs-gap-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/cn-commercial-bbs-gap/isometric-nft-card","sourceEvidenceType":"bbs-gap-local-generated","sourceEvidencePublicPath":"/assets/virtual-assets/cn-commercial-bbs-gap/nft-card.png","sourceEvidenceSha256":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","sourceMatchesTransaction":true,"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":"7aff09a4fa17c635693549d60b7f28d6da9da783c9af3ee3b03697676ba3c69c","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"7aff09a4fa17c635693549d60b7f28d6da9da783c9af3ee3b03697676ba3c69c","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":"f88123a0f5c46890ac45ac6c2fc13eca629ed0aa501bf927f98d203a59f1bee3","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"5b358f19ba7afe0a07ac00c74e4baa72fe5bd35ae7f0894aa9c8d35d269f6038","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-cn-commercial-bbs-gap-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"2d5969081aedee898a98592f0a528f46b0857a82c97dfb5110fd7634c6b5f263","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":true,"digest":"7aff09a4fa17c635693549d60b7f28d6da9da783c9af3ee3b03697676ba3c69c","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":true,"digest":"0aeaf0d3e1bcfaceb2a60113bbbb5e1b7c992346d055549c4688de33127884d8","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":true,"digest":"58a56cb4eb9ea462f1a14b006b27250b98899de9c2b3f8aa514a9e53121f4028","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":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","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-cn-commercial-bbs-gap-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-cn-commercial-bbs-gap-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-cn-commercial-bbs-gap-isometric-nft-card","requiresDualControl":true,"revocationEvidenceRequired":true,"revocationUploadDisabled":true,"revocationWriteDisabled":true,"note":"撤销审批证据时也必须走双人证据事务；当前只生成模板，不写撤销记录。"},"releaseGate":{"evidencePacketReady":true,"signerIdentityPresent":false,"approvalTimestampPresent":false,"evidenceUriPresent":false,"evidenceDigestPresent":false,"writeSwitchEnabled":false,"evidenceTransactionShapeReady":true,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"mcpQueueWriteDisabled":true},"qaChecklist":[{"label":"证据包 ready","passed":true},{"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":["本地生成图片 source evidence 已绑定到 writer envelope，但仍只做事务预演。","仅表示 evidence writer envelope 可检查，不代表允许写入。","approverId、approvedAt、approvalEvidenceUri 和 approvalEvidenceDigest 仍为空。","evidenceWriteTransactionDisabled=true，databaseWriteDisabled=true。","approvalEvidenceWritten=false，finalApprovalRecorded=false。"],"requiredActions":[{"owner":"ops","label":"准备双签审批人身份与审批时间戳，但不要上传或写入","href":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card"},{"owner":"engineering","label":"实现 writer 前保持 transaction/database/evidence 写入全部禁用","href":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card"},{"owner":"qa","label":"校验 idempotencyKey、writeSet、rollbackPlan 和 MCP 资源 URI","href":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-commercial-bbs-gap&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-commercial-bbs-gap&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-commercial-bbs-gap&decision=ready-for-human-approval&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E5%86%85%E5%9C%B0%E5%95%86%E4%B8%9A%E4%B8%8D%E5%8A%A8%E4%BA%A7%20BBS%20Gap"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-commercial-bbs-gap/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-commercial-bbs-gap/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-commercial-bbs-gap/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-commercial-bbs-gap/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-commercial-bbs-gap/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-commercial-bbs-gap/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-commercial-bbs-gap/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/cn-commercial-bbs-gap/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/cn-commercial-bbs-gap","visualRegistryResourceUri":"reits://asset-visual-registry/cn-commercial-bbs-gap","targetVisualResourceUri":"reits://asset-visual-registry/cn-commercial-bbs-gap/isometric-nft-card"}}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-commercial-bbs-gap","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-commercial-bbs-gap","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-commercial-bbs-gap","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-commercial-bbs-gap","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-commercial-bbs-gap","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-commercial-bbs-gap","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-commercial-bbs-gap","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-commercial-bbs-gap","visualRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E5%86%85%E5%9C%B0%E5%95%86%E4%B8%9A%E4%B8%8D%E5%8A%A8%E4%BA%A7%20BBS%20Gap"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-commercial-bbs-gap","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-commercial-bbs-gap","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-commercial-bbs-gap","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-commercial-bbs-gap","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-commercial-bbs-gap","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-commercial-bbs-gap","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-commercial-bbs-gap","visualTrialResourceUri":"reits://asset-visual-trials/cn-commercial-bbs-gap","futureAssetResourceUri":"reits://virtual-assets/cn-commercial-bbs-gap","visualRegistryResourceUri":"reits://asset-visual-registry/cn-commercial-bbs-gap"}}],"transactions":[{"generatedAt":"2026-09-07T03:28:49.515Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-cn-rental-housing-community-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-rental-housing-community-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-cn-rental-housing-community-isometric-nft-card","previewRowId":"asset-visual-registry-preview-cn-rental-housing-community-isometric-nft-card","visualTransactionId":"visual-registry-transaction-cn-rental-housing-community-isometric-nft-card","candidateSlug":"cn-rental-housing-community","assetName":"中国保障性租赁住房 Community Block","nftStyleName":"REITs Pixel Asset #CN-Rental-12","countrySlug":"cn","countryName":"中国内地","cityName":"深圳","assetType":"保障性租赁住房","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":"/assets/virtual-assets/cn-rental-housing-community/nft-card.png","sourceEvidence":{"sourceType":"bbs-gap-local-generated","localFileDetected":true,"publicPath":"/assets/virtual-assets/cn-rental-housing-community/nft-card.png","sha256":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","bytes":92699,"manifestSource":"generation-manifest","sourceMatchesTransaction":true,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=cn-rental-housing-community&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-rental-housing-community&format=isometric-nft-card","evidenceNote":"BBS Gap 本地生成文件已进入清单预览证据链，但 formalRegistryWritten 仍为 false。"},"status":"evidence-transaction-ready","statusLabel":"证据写入事务可检查","packetStatus":"evidence-packet-ready","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":"9f12eb87036c62f357a42281640d5aab5328bc7eaea86746543e2ea5decad9ac","placeholderDigest":"61e796d87d987477d610e3b83292fd9080190a0a2152d708ec8c3d50ab04ee84","previewDigest":"dde2b8bd60ea1b9848c7fedfd1b60e8a939a49c0c506bc9592f8f352f715e777","visualTransactionDigest":"3207aad4518546d87d7064ebf39b7b4cd01546db362f26092453de558f377bfe","reviewDigest":"338d596c08a74f427eebdc706e99ce8783f90d34113a79587fe457b0ea156417","approvalDigest":"fca6100c3936cb5d1d6486658dc7ac3925f48461d809de79ce1c48a881bc2f25","visualDigest":"767216491392f8e84d9841ff3e0f9f11637d4d5754468c8aa6c495500d4d2823","imageSha256":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","evidenceTransactionDigest":"ca28276962fc3f1f453c2162c8ad04626c78d9f884c2fcb930f7e35ebebf810f","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-cn-rental-housing-community-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-rental-housing-community-isometric-nft-card","idempotencyKey":"4be3d54a70c022889381b1b7e0fc1bbe","candidateSlug":"cn-rental-housing-community","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-cn-rental-housing-community-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-cn-rental-housing-community-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/cn-rental-housing-community/isometric-nft-card","sourceEvidenceType":"bbs-gap-local-generated","sourceEvidencePublicPath":"/assets/virtual-assets/cn-rental-housing-community/nft-card.png","sourceEvidenceSha256":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","sourceMatchesTransaction":true,"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":"9f12eb87036c62f357a42281640d5aab5328bc7eaea86746543e2ea5decad9ac","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"9f12eb87036c62f357a42281640d5aab5328bc7eaea86746543e2ea5decad9ac","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":"309514a2cf492926c88110dd0328da0d3c72c6392ed264f031870bc191dcfc97","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"74c90e1a7fa07a78135f00c1102d799b22d6bc50713495f11ba5e92aa1675217","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-cn-rental-housing-community-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"fca6100c3936cb5d1d6486658dc7ac3925f48461d809de79ce1c48a881bc2f25","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":true,"digest":"9f12eb87036c62f357a42281640d5aab5328bc7eaea86746543e2ea5decad9ac","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":true,"digest":"61e796d87d987477d610e3b83292fd9080190a0a2152d708ec8c3d50ab04ee84","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":true,"digest":"dde2b8bd60ea1b9848c7fedfd1b60e8a939a49c0c506bc9592f8f352f715e777","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":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":"4175bfd4e68e655c2f6a974b60e3f059e299570bc510ca8b20f69c953b30f791","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-cn-rental-housing-community-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-cn-rental-housing-community-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-cn-rental-housing-community-isometric-nft-card","requiresDualControl":true,"revocationEvidenceRequired":true,"revocationUploadDisabled":true,"revocationWriteDisabled":true,"note":"撤销审批证据时也必须走双人证据事务；当前只生成模板，不写撤销记录。"},"releaseGate":{"evidencePacketReady":true,"signerIdentityPresent":false,"approvalTimestampPresent":false,"evidenceUriPresent":false,"evidenceDigestPresent":false,"writeSwitchEnabled":false,"evidenceTransactionShapeReady":true,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"mcpQueueWriteDisabled":true},"qaChecklist":[{"label":"证据包 ready","passed":true},{"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":["本地生成图片 source evidence 已绑定到 writer envelope，但仍只做事务预演。","仅表示 evidence writer envelope 可检查，不代表允许写入。","approverId、approvedAt、approvalEvidenceUri 和 approvalEvidenceDigest 仍为空。","evidenceWriteTransactionDisabled=true，databaseWriteDisabled=true。","approvalEvidenceWritten=false，finalApprovalRecorded=false。"],"requiredActions":[{"owner":"ops","label":"准备双签审批人身份与审批时间戳，但不要上传或写入","href":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card"},{"owner":"engineering","label":"实现 writer 前保持 transaction/database/evidence 写入全部禁用","href":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card"},{"owner":"qa","label":"校验 idempotencyKey、writeSet、rollbackPlan 和 MCP 资源 URI","href":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-rental-housing-community&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-rental-housing-community&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-rental-housing-community&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-rental-housing-community&decision=ready-for-human-approval&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E4%BF%9D%E9%9A%9C%E6%80%A7%E7%A7%9F%E8%B5%81%E4%BD%8F%E6%88%BF%20Community%20Block"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-rental-housing-community/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-rental-housing-community/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-rental-housing-community/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-rental-housing-community/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-rental-housing-community/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-rental-housing-community/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-rental-housing-community/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/cn-rental-housing-community/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/cn-rental-housing-community","visualRegistryResourceUri":"reits://asset-visual-registry/cn-rental-housing-community","targetVisualResourceUri":"reits://asset-visual-registry/cn-rental-housing-community/isometric-nft-card"}},{"generatedAt":"2026-09-07T03:28:49.515Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-cn-logistics-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-logistics-bbs-gap-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-cn-logistics-bbs-gap-isometric-nft-card","previewRowId":"asset-visual-registry-preview-cn-logistics-bbs-gap-isometric-nft-card","visualTransactionId":"visual-registry-transaction-cn-logistics-bbs-gap-isometric-nft-card","candidateSlug":"cn-logistics-bbs-gap","assetName":"中国内地仓储物流 BBS Gap","nftStyleName":"REITs Pixel Asset #CN-Logistics-BBS","countrySlug":"cn","countryName":"中国内地","cityName":"上海","assetType":"仓储物流","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":"/assets/virtual-assets/cn-logistics-bbs-gap/nft-card.png","sourceEvidence":{"sourceType":"bbs-gap-local-generated","localFileDetected":true,"publicPath":"/assets/virtual-assets/cn-logistics-bbs-gap/nft-card.png","sha256":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","bytes":90568,"manifestSource":"generation-manifest","sourceMatchesTransaction":true,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=cn-logistics-bbs-gap&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-logistics-bbs-gap&format=isometric-nft-card","evidenceNote":"BBS Gap 本地生成文件已进入清单预览证据链，但 formalRegistryWritten 仍为 false。"},"status":"evidence-transaction-ready","statusLabel":"证据写入事务可检查","packetStatus":"evidence-packet-ready","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":"61569ea4e45943f874cc18b5967471f082692361d39281680244cd5736a60f31","placeholderDigest":"b1053e770b8f2f946d034ecdc53a2334003a5a8379f816000323b791cb3c1188","previewDigest":"c6ee4b1e55875709950e94770462ac62f64b020a5ed81bcab6c8e97c76c24741","visualTransactionDigest":"30870cb1942e96af4dd5d13ad175f51df2bd45d9c82e7bfe8fe7c6a221bfdc8c","reviewDigest":"fa5b37d8428eb57b256739df8312a20244cbc6b63062eb0997620a8cf1e0d641","approvalDigest":"aac0461d6c290828a123e9d6b060ea5d39d054259760786ea3d8a0247538a51a","visualDigest":"cfbae45981263d30b5eea7a508c8561c8392893aa0588594e97f4bb6007b4f90","imageSha256":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","evidenceTransactionDigest":"ac980bfc1c7e255f58f58722b307e9c3aa62fbcf9c70b279e3b36fe131279471","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-cn-logistics-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-logistics-bbs-gap-isometric-nft-card","idempotencyKey":"af67110748aea5897f9a6d729c61c959","candidateSlug":"cn-logistics-bbs-gap","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-cn-logistics-bbs-gap-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-cn-logistics-bbs-gap-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/cn-logistics-bbs-gap/isometric-nft-card","sourceEvidenceType":"bbs-gap-local-generated","sourceEvidencePublicPath":"/assets/virtual-assets/cn-logistics-bbs-gap/nft-card.png","sourceEvidenceSha256":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","sourceMatchesTransaction":true,"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":"61569ea4e45943f874cc18b5967471f082692361d39281680244cd5736a60f31","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"61569ea4e45943f874cc18b5967471f082692361d39281680244cd5736a60f31","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":"2392c3e448e0fd5e7fecafeeaed022339555fb7ddb8613836f6ce25c03f51300","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"05187cb49edb4384f60523b1baf734a11cf79a050aee8bfdac66f8c72253e8c0","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-cn-logistics-bbs-gap-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"aac0461d6c290828a123e9d6b060ea5d39d054259760786ea3d8a0247538a51a","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":true,"digest":"61569ea4e45943f874cc18b5967471f082692361d39281680244cd5736a60f31","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":true,"digest":"b1053e770b8f2f946d034ecdc53a2334003a5a8379f816000323b791cb3c1188","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":true,"digest":"c6ee4b1e55875709950e94770462ac62f64b020a5ed81bcab6c8e97c76c24741","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":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":"9ef00ee0a5fda3797a2d84d0ef1e89e21c7151806b38d2e7bd8e6f7ffc05af0a","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-cn-logistics-bbs-gap-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-cn-logistics-bbs-gap-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-cn-logistics-bbs-gap-isometric-nft-card","requiresDualControl":true,"revocationEvidenceRequired":true,"revocationUploadDisabled":true,"revocationWriteDisabled":true,"note":"撤销审批证据时也必须走双人证据事务；当前只生成模板，不写撤销记录。"},"releaseGate":{"evidencePacketReady":true,"signerIdentityPresent":false,"approvalTimestampPresent":false,"evidenceUriPresent":false,"evidenceDigestPresent":false,"writeSwitchEnabled":false,"evidenceTransactionShapeReady":true,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"mcpQueueWriteDisabled":true},"qaChecklist":[{"label":"证据包 ready","passed":true},{"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":["本地生成图片 source evidence 已绑定到 writer envelope，但仍只做事务预演。","仅表示 evidence writer envelope 可检查，不代表允许写入。","approverId、approvedAt、approvalEvidenceUri 和 approvalEvidenceDigest 仍为空。","evidenceWriteTransactionDisabled=true，databaseWriteDisabled=true。","approvalEvidenceWritten=false，finalApprovalRecorded=false。"],"requiredActions":[{"owner":"ops","label":"准备双签审批人身份与审批时间戳，但不要上传或写入","href":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card"},{"owner":"engineering","label":"实现 writer 前保持 transaction/database/evidence 写入全部禁用","href":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card"},{"owner":"qa","label":"校验 idempotencyKey、writeSet、rollbackPlan 和 MCP 资源 URI","href":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-logistics-bbs-gap&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-logistics-bbs-gap&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-logistics-bbs-gap&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-logistics-bbs-gap&decision=ready-for-human-approval&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E5%86%85%E5%9C%B0%E4%BB%93%E5%82%A8%E7%89%A9%E6%B5%81%20BBS%20Gap"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-logistics-bbs-gap/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-logistics-bbs-gap/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-logistics-bbs-gap/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-logistics-bbs-gap/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-logistics-bbs-gap/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-logistics-bbs-gap/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-logistics-bbs-gap/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/cn-logistics-bbs-gap/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/cn-logistics-bbs-gap","visualRegistryResourceUri":"reits://asset-visual-registry/cn-logistics-bbs-gap","targetVisualResourceUri":"reits://asset-visual-registry/cn-logistics-bbs-gap/isometric-nft-card"}},{"generatedAt":"2026-09-07T03:28:49.515Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-cn-highway-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-highway-bbs-gap-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-cn-highway-bbs-gap-isometric-nft-card","previewRowId":"asset-visual-registry-preview-cn-highway-bbs-gap-isometric-nft-card","visualTransactionId":"visual-registry-transaction-cn-highway-bbs-gap-isometric-nft-card","candidateSlug":"cn-highway-bbs-gap","assetName":"中国内地高速公路 BBS Gap","nftStyleName":"REITs Pixel Asset #CN-Highway-BBS","countrySlug":"cn","countryName":"中国内地","cityName":"广州","assetType":"高速公路","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":"/assets/virtual-assets/cn-highway-bbs-gap/nft-card.png","sourceEvidence":{"sourceType":"bbs-gap-local-generated","localFileDetected":true,"publicPath":"/assets/virtual-assets/cn-highway-bbs-gap/nft-card.png","sha256":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","bytes":96279,"manifestSource":"generation-manifest","sourceMatchesTransaction":true,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=cn-highway-bbs-gap&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-highway-bbs-gap&format=isometric-nft-card","evidenceNote":"BBS Gap 本地生成文件已进入清单预览证据链，但 formalRegistryWritten 仍为 false。"},"status":"evidence-transaction-ready","statusLabel":"证据写入事务可检查","packetStatus":"evidence-packet-ready","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":"fd0868a7fd203ec86ac17b23fee9046409f1fb894e30668ddfdfd20bd3738673","placeholderDigest":"f3a3da7f18a36fe5278e26a1c8874ffd10aea8e46ec38f321ace6f7f164cacb9","previewDigest":"7c8ab3eb9839e737ec651c084c8741e2e01739e7623080487b76a56abb492d68","visualTransactionDigest":"b911c6f71336e42527e456fe314d536e24e8f113c3ab319b35bbebea4480f04d","reviewDigest":"4818f070cffc01676d1cf2690e8fab6ad7ba82aeb86bc18d99228a4c975535cf","approvalDigest":"bda1b46870e3d0f9f8fb1cbb021dc2c95d75003e18ecb9e76714e5bf77d8c48c","visualDigest":"026a955bac9388c2f6d4b788291033e528d6ca08358ad7367f10b256d7101ad6","imageSha256":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","evidenceTransactionDigest":"8b35f90ba9fac6acd1d384ca3372167bda4cce15df4fc8511410a8bdef91900b","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-cn-highway-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-highway-bbs-gap-isometric-nft-card","idempotencyKey":"e73bd521a193202fed5e19d29f231dfe","candidateSlug":"cn-highway-bbs-gap","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-cn-highway-bbs-gap-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-cn-highway-bbs-gap-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/cn-highway-bbs-gap/isometric-nft-card","sourceEvidenceType":"bbs-gap-local-generated","sourceEvidencePublicPath":"/assets/virtual-assets/cn-highway-bbs-gap/nft-card.png","sourceEvidenceSha256":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","sourceMatchesTransaction":true,"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":"fd0868a7fd203ec86ac17b23fee9046409f1fb894e30668ddfdfd20bd3738673","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"fd0868a7fd203ec86ac17b23fee9046409f1fb894e30668ddfdfd20bd3738673","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":"d0b583d1356e8a05bc5b8c0ef7103b5f4d2d18d4aa50e62b6aa6942482b41763","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"a395e441a1c5b9290c82c1c734a67b1863a91bab7968b83492b8afa4ca4f8e82","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-cn-highway-bbs-gap-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"bda1b46870e3d0f9f8fb1cbb021dc2c95d75003e18ecb9e76714e5bf77d8c48c","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":true,"digest":"fd0868a7fd203ec86ac17b23fee9046409f1fb894e30668ddfdfd20bd3738673","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":true,"digest":"f3a3da7f18a36fe5278e26a1c8874ffd10aea8e46ec38f321ace6f7f164cacb9","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":true,"digest":"7c8ab3eb9839e737ec651c084c8741e2e01739e7623080487b76a56abb492d68","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":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":"4dd16a3a69a0218626213e5f93cf3e60a2a0626ffd1a795efbac0d9bf541f955","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-cn-highway-bbs-gap-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-cn-highway-bbs-gap-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-cn-highway-bbs-gap-isometric-nft-card","requiresDualControl":true,"revocationEvidenceRequired":true,"revocationUploadDisabled":true,"revocationWriteDisabled":true,"note":"撤销审批证据时也必须走双人证据事务；当前只生成模板，不写撤销记录。"},"releaseGate":{"evidencePacketReady":true,"signerIdentityPresent":false,"approvalTimestampPresent":false,"evidenceUriPresent":false,"evidenceDigestPresent":false,"writeSwitchEnabled":false,"evidenceTransactionShapeReady":true,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"mcpQueueWriteDisabled":true},"qaChecklist":[{"label":"证据包 ready","passed":true},{"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":["本地生成图片 source evidence 已绑定到 writer envelope，但仍只做事务预演。","仅表示 evidence writer envelope 可检查，不代表允许写入。","approverId、approvedAt、approvalEvidenceUri 和 approvalEvidenceDigest 仍为空。","evidenceWriteTransactionDisabled=true，databaseWriteDisabled=true。","approvalEvidenceWritten=false，finalApprovalRecorded=false。"],"requiredActions":[{"owner":"ops","label":"准备双签审批人身份与审批时间戳，但不要上传或写入","href":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card"},{"owner":"engineering","label":"实现 writer 前保持 transaction/database/evidence 写入全部禁用","href":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card"},{"owner":"qa","label":"校验 idempotencyKey、writeSet、rollbackPlan 和 MCP 资源 URI","href":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-highway-bbs-gap&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-highway-bbs-gap&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-highway-bbs-gap&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-highway-bbs-gap&decision=ready-for-human-approval&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E5%86%85%E5%9C%B0%E9%AB%98%E9%80%9F%E5%85%AC%E8%B7%AF%20BBS%20Gap"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-highway-bbs-gap/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-highway-bbs-gap/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-highway-bbs-gap/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-highway-bbs-gap/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-highway-bbs-gap/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-highway-bbs-gap/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-highway-bbs-gap/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/cn-highway-bbs-gap/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/cn-highway-bbs-gap","visualRegistryResourceUri":"reits://asset-visual-registry/cn-highway-bbs-gap","targetVisualResourceUri":"reits://asset-visual-registry/cn-highway-bbs-gap/isometric-nft-card"}},{"generatedAt":"2026-09-07T03:28:49.515Z","evidenceTransactionId":"asset-visual-approval-evidence-tx-cn-commercial-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-commercial-bbs-gap-isometric-nft-card","placeholderId":"asset-visual-approval-placeholder-cn-commercial-bbs-gap-isometric-nft-card","previewRowId":"asset-visual-registry-preview-cn-commercial-bbs-gap-isometric-nft-card","visualTransactionId":"visual-registry-transaction-cn-commercial-bbs-gap-isometric-nft-card","candidateSlug":"cn-commercial-bbs-gap","assetName":"中国内地商业不动产 BBS Gap","nftStyleName":"REITs Pixel Asset #CN-Commercial-BBS","countrySlug":"cn","countryName":"中国内地","cityName":"上海","assetType":"商业不动产","formatKey":"isometric-nft-card","label":"等距 NFT 主图试点","source":"/assets/virtual-assets/cn-commercial-bbs-gap/nft-card.png","sourceEvidence":{"sourceType":"bbs-gap-local-generated","localFileDetected":true,"publicPath":"/assets/virtual-assets/cn-commercial-bbs-gap/nft-card.png","sha256":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","bytes":76669,"manifestSource":"generation-manifest","sourceMatchesTransaction":true,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=cn-commercial-bbs-gap&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-commercial-bbs-gap&format=isometric-nft-card","evidenceNote":"BBS Gap 本地生成文件已进入清单预览证据链，但 formalRegistryWritten 仍为 false。"},"status":"evidence-transaction-ready","statusLabel":"证据写入事务可检查","packetStatus":"evidence-packet-ready","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":"7aff09a4fa17c635693549d60b7f28d6da9da783c9af3ee3b03697676ba3c69c","placeholderDigest":"0aeaf0d3e1bcfaceb2a60113bbbb5e1b7c992346d055549c4688de33127884d8","previewDigest":"58a56cb4eb9ea462f1a14b006b27250b98899de9c2b3f8aa514a9e53121f4028","visualTransactionDigest":"9e30622f00abc52fd87ad309d836154847da23561c25113ef9e9967406fe1126","reviewDigest":"e7a4c751a692f4766f8d6f690885d01c232c7337f7d86f3c74de75518f0ccbb3","approvalDigest":"2d5969081aedee898a98592f0a528f46b0857a82c97dfb5110fd7634c6b5f263","visualDigest":"2ca9e738647c7dab9c9e47d14d8f40cdb5823925c8a0b9bbeaad4d2c6f252d1c","imageSha256":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","evidenceTransactionDigest":"c7e7434d0a759cc967eb729b133ced9ff96842e52f88829639150a4810aa4864","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-cn-commercial-bbs-gap-isometric-nft-card","evidencePacketId":"asset-visual-approval-evidence-cn-commercial-bbs-gap-isometric-nft-card","idempotencyKey":"1d0aef1a087caad59aca0a12841f3732","candidateSlug":"cn-commercial-bbs-gap","formatKey":"isometric-nft-card","targetEvidenceTable":"asset_visual_approval_evidence","targetPlaceholderId":"asset-visual-approval-placeholder-cn-commercial-bbs-gap-isometric-nft-card","targetPreviewRowId":"asset-visual-registry-preview-cn-commercial-bbs-gap-isometric-nft-card","targetVisualResourceUri":"reits://asset-visual-registry/cn-commercial-bbs-gap/isometric-nft-card","sourceEvidenceType":"bbs-gap-local-generated","sourceEvidencePublicPath":"/assets/virtual-assets/cn-commercial-bbs-gap/nft-card.png","sourceEvidenceSha256":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","sourceMatchesTransaction":true,"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":"7aff09a4fa17c635693549d60b7f28d6da9da783c9af3ee3b03697676ba3c69c","note":"先校验 evidencePacketDigest，避免为过期证据包写入审批证据。"},{"id":"assert-source-evidence-digest","table":"asset_visual_source_evidence","operation":"assert","writeDisabled":true,"sourceDigest":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","note":"校验本地生成图或事务图的 source evidence 摘要；当前只 assert，不写入证据表。"},{"id":"insert-approval-evidence-row","table":"asset_visual_approval_evidence","operation":"insert","writeDisabled":true,"sourceDigest":"7aff09a4fa17c635693549d60b7f28d6da9da783c9af3ee3b03697676ba3c69c","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":"f88123a0f5c46890ac45ac6c2fc13eca629ed0aa501bf927f98d203a59f1bee3","note":"未来写入五类证据要求的满足状态；当前 supplied=false。"},{"id":"insert-revocation-template","table":"asset_visual_approval_evidence_revocations","operation":"insert","writeDisabled":true,"sourceDigest":"5b358f19ba7afe0a07ac00c74e4baa72fe5bd35ae7f0894aa9c8d35d269f6038","note":"未来为审批证据生成撤销模板；当前 revocationWriteDisabled=true。"},{"id":"queue-mcp-governance-index","table":"reits_mcp_governance_index_queue","operation":"queue","writeDisabled":true,"sourceDigest":"asset-visual-approval-evidence-tx-cn-commercial-bbs-gap-isometric-nft-card","note":"未来写证据后排队 MCP 索引；当前 mcpQueueWriteDisabled=true。"},{"id":"no-op-final-approval","table":"asset_visual_approval_ledger","operation":"no-op","writeDisabled":true,"sourceDigest":"2d5969081aedee898a98592f0a528f46b0857a82c97dfb5110fd7634c6b5f263","note":"证据写入事务不等同最终批准，finalApprovalRecorded 必须保持 false。"}],"preconditions":[{"id":"evidence-packet-ready","label":"证据包结构可检查","satisfied":true,"digest":"7aff09a4fa17c635693549d60b7f28d6da9da783c9af3ee3b03697676ba3c69c","note":"只有 evidence-packet-ready 才能进入 writer transaction dry-run。"},{"id":"placeholder-ready","label":"审批占位 ready","satisfied":true,"digest":"0aeaf0d3e1bcfaceb2a60113bbbb5e1b7c992346d055549c4688de33127884d8","note":"审批占位必须 ready，不能绕过真实审批占位账本。"},{"id":"preview-row-ready","label":"目标清单预览 ready","satisfied":true,"digest":"58a56cb4eb9ea462f1a14b006b27250b98899de9c2b3f8aa514a9e53121f4028","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":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","note":"writer envelope 必须能定位源图片 publicPath 和 sha256，不能只靠 UI 缩略图。"},{"id":"source-evidence-matches-transaction","label":"源图片证据与事务一致","satisfied":true,"digest":"2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a","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-cn-commercial-bbs-gap-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-cn-commercial-bbs-gap-isometric-nft-card","sourceRevocationTemplateId":"revocation-evidence-asset-visual-approval-placeholder-cn-commercial-bbs-gap-isometric-nft-card","requiresDualControl":true,"revocationEvidenceRequired":true,"revocationUploadDisabled":true,"revocationWriteDisabled":true,"note":"撤销审批证据时也必须走双人证据事务；当前只生成模板，不写撤销记录。"},"releaseGate":{"evidencePacketReady":true,"signerIdentityPresent":false,"approvalTimestampPresent":false,"evidenceUriPresent":false,"evidenceDigestPresent":false,"writeSwitchEnabled":false,"evidenceTransactionShapeReady":true,"evidenceWriteTransactionDisabled":true,"databaseWriteDisabled":true,"approvalEvidenceWritten":false,"approvalEvidenceCommitted":false,"finalApprovalRecorded":false,"registryPromotionAllowed":false,"mcpQueueWriteDisabled":true},"qaChecklist":[{"label":"证据包 ready","passed":true},{"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":["本地生成图片 source evidence 已绑定到 writer envelope，但仍只做事务预演。","仅表示 evidence writer envelope 可检查，不代表允许写入。","approverId、approvedAt、approvalEvidenceUri 和 approvalEvidenceDigest 仍为空。","evidenceWriteTransactionDisabled=true，databaseWriteDisabled=true。","approvalEvidenceWritten=false，finalApprovalRecorded=false。"],"requiredActions":[{"owner":"ops","label":"准备双签审批人身份与审批时间戳，但不要上传或写入","href":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card"},{"owner":"engineering","label":"实现 writer 前保持 transaction/database/evidence 写入全部禁用","href":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card"},{"owner":"qa","label":"校验 idempotencyKey、writeSet、rollbackPlan 和 MCP 资源 URI","href":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card"}],"links":{"evidenceTransactionApi":"/api/public/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","evidenceTransactionPage":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","evidencePacket":"/operations/asset-visual-approval-evidence-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","evidencePacketApi":"/api/public/operations/asset-visual-approval-evidence-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","approvalPlaceholder":"/operations/asset-visual-approval-placeholder-ledger?asset=cn-commercial-bbs-gap&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=cn-commercial-bbs-gap&format=isometric-nft-card","visualTransaction":"/operations/virtual-asset-visual-transaction-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","approvalDryRun":"/operations/virtual-asset-visual-approval-dry-run?asset=cn-commercial-bbs-gap&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=cn-commercial-bbs-gap&decision=ready-for-human-approval&format=isometric-nft-card","formalRegistry":"/operations/asset-visual-registry","search":"/search?q=%E4%B8%AD%E5%9B%BD%E5%86%85%E5%9C%B0%E5%95%86%E4%B8%9A%E4%B8%8D%E5%8A%A8%E4%BA%A7%20BBS%20Gap"},"mcp":{"visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/cn-commercial-bbs-gap/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/cn-commercial-bbs-gap/isometric-nft-card","visualApprovalPlaceholderResourceUri":"reits://asset-visual-approval-placeholder/cn-commercial-bbs-gap/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/cn-commercial-bbs-gap/isometric-nft-card","visualTransactionResourceUri":"reits://asset-visual-registry-transaction/cn-commercial-bbs-gap/isometric-nft-card","visualApprovalResourceUri":"reits://asset-visual-approval-dry-run/cn-commercial-bbs-gap/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/cn-commercial-bbs-gap/isometric-nft-card","visualTrialResourceUri":"reits://asset-visual-trials/cn-commercial-bbs-gap/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/cn-commercial-bbs-gap","visualRegistryResourceUri":"reits://asset-visual-registry/cn-commercial-bbs-gap","targetVisualResourceUri":"reits://asset-visual-registry/cn-commercial-bbs-gap/isometric-nft-card"}}],"statusBreakdown":[{"status":"evidence-transaction-ready","label":"证据写入事务可检查","count":4},{"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":0}],"countryBreakdown":[{"countrySlug":"cn","countryName":"中国内地","transactionCount":4,"evidenceTransactionReadyCount":4,"blockedBeforeEvidenceTransactionCount":0}],"qaWarnings":["该层只预演 approval evidence writer transaction，不上传证据、不写表、不提交最终批准。","evidence-transaction-ready 只代表事务形状可检查，签署人身份、审批时间戳和证据 URI 仍为空。","sourceEvidence 只进入 writer envelope 的 assert/precondition，不等同 approval evidence 已上传或写入。","evidenceWriteTransactionDisabled、databaseWriteDisabled、mcpQueueWriteDisabled 必须保持 true。","该事务不能直接推动 Pixel Atlas、地图、BBS 或正式图片清单发布。"],"publicNotes":["当前筛选范围内有 4 个证据写入事务 envelope，4 个可检查，4 个带本地生成源证据。","运营可以用该页确认未来 evidence writer 需要写哪些表、按什么幂等键锁定、失败后如何撤销。","下一步真正接 writer 前，应先补齐身份系统、审批时间、附件存储策略和 MCP governance index 写入权限。","BBS Gap 已进入 4 个证据写入事务 dry-run envelope；仍禁写 evidence、禁写 DB、禁排 MCP 队列。"]}