Architecture Cut 46 / Visual Confirmation Actions

图片人工确认动作 Dry-run

把图片人工确认队列里的 approve、request-redraw、request-compliance-review、reject 拆成独立动作协议。 GET 输出动作清单,POST 只做 dry-run 校验;当前 committed=false,不记录最终批准,不推进地图、BBS 或正式清单。

全部动作dry-run 可校验需要人工输入策略阻断批准图片请求重绘合规复核拒绝候选NFT 主图地图 Pin中国内地美国日本新加坡香港澳大利亚英国加拿大印度欧盟
2动作协议
0可校验
2策略阻断
2批准动作
0重绘动作
2写入禁用
2源图证据
0源图不一致
Action Protocols

图片确认动作协议

当前为单资产/小范围详情,展示完整协议 payload、状态迁移和 MCP 目标。

策略阻断

批准图片 dry-run / 中国内地商业不动产 BBS Gap

REITs Pixel Asset #CN-Commercial-BBS / 中国内地 / isometric-nft-card / human-confirmation-ready

Action JSON
asset-visual-approval-human-confirmation-action-approve-visual-dry-run-cn-commercial-bbs-gap-isometric-nft-cardreits://asset-visual-approval-human-confirmation-action/approve-visual-dry-run/cn-commercial-bbs-gap/isometric-nft-cardactionDigest=4b5544fb683898495e / from=human-confirmation-ready / to=visual-approval-recorded
Source Evidencebbs-gap-local-generatedBBS Gap 本地生成文件已进入清单预览证据链,但 formalRegistryWritten 仍为 false。
/assets/virtual-assets/cn-commercial-bbs-gap/nft-card.pnggeneration-manifest / 76669 bytessha256=2db843ee429d1a9c8f
localFileDetected=truesourceMatchesTransaction=truesourceEvidenceRequired=trueapprovalEvidenceWritten=false
动作协议requiredRoles=design-director / operations-ownerrequiredInputs=10 / blockers=4
写入红线committed=false / finalApprovalRecorded=falseapprovalEvidenceWritten=false / registryPromotionAllowed=false
来源确认humanQueueReady=true / pendingItems=3sourceSha=2db843ee429d1a / writeDisabled=true
writeDisabled=truefinalApprovalWriteDisabled=trueregistryWriteDisabled=truemapPublishDisabled=truebbsPostDisabled=truemapPublished=falsebbsPosted=false
status=blocked-by-policydryRunRequired=truewriteDisabled=truesourceEvidence=2db843ee429dsourceMatchesTransaction=truefinalApprovalRecorded=falseregistryPromotionAllowed=false
{
  "table": "asset_visual_approval_human_confirmation_actions",
  "schemaVersion": "2026-06-visual-approval-human-confirmation-action-dry-run-v1",
  "actionId": "asset-visual-approval-human-confirmation-action-approve-visual-dry-run-cn-commercial-bbs-gap-isometric-nft-card",
  "humanConfirmationId": "asset-visual-approval-human-confirmation-cn-commercial-bbs-gap-isometric-nft-card",
  "identityFixtureId": "asset-visual-approval-identity-fixture-cn-commercial-bbs-gap-isometric-nft-card",
  "action": "approve-visual-dry-run",
  "sourceEvidenceType": "bbs-gap-local-generated",
  "sourceEvidencePublicPath": "/assets/virtual-assets/cn-commercial-bbs-gap/nft-card.png",
  "sourceEvidenceSha256": "2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a",
  "sourceMatchesTransaction": true,
  "humanConfirmationDigest": "0ebd85366c00efde741dee912e0faab745edd40ea0ed4e7751a082b2883a9452",
  "writeDisabled": true
}
{
  "action": "approve-visual-dry-run",
  "assetSlug": "cn-commercial-bbs-gap",
  "candidateSlug": "cn-commercial-bbs-gap",
  "humanConfirmationId": "asset-visual-approval-human-confirmation-cn-commercial-bbs-gap-isometric-nft-card",
  "formatKey": "isometric-nft-card",
  "actorRole": "ops",
  "actorName": "visual-ops-reviewer",
  "reason": "dry-run 批准图片 dry-run",
  "dryRun": true,
  "writeDisabled": true,
  "secondConfirm": false,
  "sourceEvidenceSha256": "2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a"
}
{
  "action": "approve-visual-dry-run",
  "actionLabel": "批准图片 dry-run",
  "dryRun": true,
  "writeDisabled": true,
  "targetHumanConfirmationId": "asset-visual-approval-human-confirmation-cn-commercial-bbs-gap-isometric-nft-card",
  "targetIdentityFixtureId": "asset-visual-approval-identity-fixture-cn-commercial-bbs-gap-isometric-nft-card",
  "targetSourceEvidenceSha256": "2db843ee429d1a9c8f05d7448f8fb04ac345ad14e789a5451c83cf666d89199a",
  "sourceEvidenceRequired": true,
  "requiredRoles": [
    "design-director",
    "operations-owner"
  ],
  "requiredInputs": [
    "actorRole",
    "actorName",
    "reason",
    "secondConfirm",
    "approverId",
    "approvedAt",
    "approvalEvidenceUri",
    "sourceEvidenceSha256"
  ],
  "blocked": true,
  "note": "批准包当前只做 dry-run,因无真实审批人、时间戳和证据 URI,不能记录最终批准。"
}
{
  "from": "human-confirmation-ready",
  "to": "visual-approval-recorded",
  "committed": false,
  "finalApprovalRecorded": false,
  "approvalEvidenceWritten": false,
  "registryPromotionAllowed": false,
  "mapPublished": false,
  "bbsPosted": false,
  "note": "该动作协议只校验人工确认输入,不持久化状态,不写审批证据,不推进地图或正式清单。"
}

批准包当前只做 dry-run,因无真实审批人、时间戳和证据 URI,不能记录最终批准。

批准图片 dry-run 当前不能记录最终批准,必须保持 finalApprovalRecorded=false。

缺少真实 approverId、approvedAt、approvalEvidenceUri、approvalEvidenceDigest、sourceEvidenceSha256 和 MFA 校验。

仍有 3 个待确认项,不能进入最终批准。

策略阻断

批准图片 dry-run / 中国内地商业不动产 BBS Gap

REITs Pixel Asset #CN-Commercial-BBS / 中国内地 / pixel-map-pin / needs-pin-redraw

Action JSON
asset-visual-approval-human-confirmation-action-approve-visual-dry-run-cn-commercial-bbs-gap-pixel-map-pinreits://asset-visual-approval-human-confirmation-action/approve-visual-dry-run/cn-commercial-bbs-gap/pixel-map-pinactionDigest=19d034a92eed70221d / from=needs-pin-redraw / to=visual-approval-recorded
Source Evidencebbs-gap-local-generatedBBS Gap 本地生成文件已进入清单预览证据链,但 formalRegistryWritten 仍为 false。
/assets/virtual-assets/cn-commercial-bbs-gap/map-pin.pnggeneration-manifest / 7176 bytessha256=699af564f0b8d7cbb7
localFileDetected=truesourceMatchesTransaction=truesourceEvidenceRequired=trueapprovalEvidenceWritten=false
动作协议requiredRoles=design-director / operations-ownerrequiredInputs=10 / blockers=5
写入红线committed=false / finalApprovalRecorded=falseapprovalEvidenceWritten=false / registryPromotionAllowed=false
来源确认humanQueueReady=false / pendingItems=14sourceSha=699af564f0b8d7 / writeDisabled=true
writeDisabled=truefinalApprovalWriteDisabled=trueregistryWriteDisabled=truemapPublishDisabled=truebbsPostDisabled=truemapPublished=falsebbsPosted=false
status=blocked-by-policydryRunRequired=truewriteDisabled=truesourceEvidence=699af564f0b8sourceMatchesTransaction=truefinalApprovalRecorded=falseregistryPromotionAllowed=false
{
  "table": "asset_visual_approval_human_confirmation_actions",
  "schemaVersion": "2026-06-visual-approval-human-confirmation-action-dry-run-v1",
  "actionId": "asset-visual-approval-human-confirmation-action-approve-visual-dry-run-cn-commercial-bbs-gap-pixel-map-pin",
  "humanConfirmationId": "asset-visual-approval-human-confirmation-cn-commercial-bbs-gap-pixel-map-pin",
  "identityFixtureId": "asset-visual-approval-identity-fixture-cn-commercial-bbs-gap-pixel-map-pin",
  "action": "approve-visual-dry-run",
  "sourceEvidenceType": "bbs-gap-local-generated",
  "sourceEvidencePublicPath": "/assets/virtual-assets/cn-commercial-bbs-gap/map-pin.png",
  "sourceEvidenceSha256": "699af564f0b8d7cbb704a5a9507ebae14ccec1be5c37180458dc3b01f9b15b70",
  "sourceMatchesTransaction": true,
  "humanConfirmationDigest": "77df4210b4369cd5b978a95627b1f01c045e3622eede3ba9f5a711ec83410573",
  "writeDisabled": true
}
{
  "action": "approve-visual-dry-run",
  "assetSlug": "cn-commercial-bbs-gap",
  "candidateSlug": "cn-commercial-bbs-gap",
  "humanConfirmationId": "asset-visual-approval-human-confirmation-cn-commercial-bbs-gap-pixel-map-pin",
  "formatKey": "pixel-map-pin",
  "actorRole": "ops",
  "actorName": "visual-ops-reviewer",
  "reason": "dry-run 批准图片 dry-run",
  "dryRun": true,
  "writeDisabled": true,
  "secondConfirm": false,
  "sourceEvidenceSha256": "699af564f0b8d7cbb704a5a9507ebae14ccec1be5c37180458dc3b01f9b15b70"
}
{
  "action": "approve-visual-dry-run",
  "actionLabel": "批准图片 dry-run",
  "dryRun": true,
  "writeDisabled": true,
  "targetHumanConfirmationId": "asset-visual-approval-human-confirmation-cn-commercial-bbs-gap-pixel-map-pin",
  "targetIdentityFixtureId": "asset-visual-approval-identity-fixture-cn-commercial-bbs-gap-pixel-map-pin",
  "targetSourceEvidenceSha256": "699af564f0b8d7cbb704a5a9507ebae14ccec1be5c37180458dc3b01f9b15b70",
  "sourceEvidenceRequired": true,
  "requiredRoles": [
    "design-director",
    "operations-owner"
  ],
  "requiredInputs": [
    "actorRole",
    "actorName",
    "reason",
    "secondConfirm",
    "approverId",
    "approvedAt",
    "approvalEvidenceUri",
    "sourceEvidenceSha256"
  ],
  "blocked": true,
  "note": "批准包当前只做 dry-run,因无真实审批人、时间戳和证据 URI,不能记录最终批准。"
}
{
  "from": "needs-pin-redraw",
  "to": "visual-approval-recorded",
  "committed": false,
  "finalApprovalRecorded": false,
  "approvalEvidenceWritten": false,
  "registryPromotionAllowed": false,
  "mapPublished": false,
  "bbsPosted": false,
  "note": "该动作协议只校验人工确认输入,不持久化状态,不写审批证据,不推进地图或正式清单。"
}

批准包当前只做 dry-run,因无真实审批人、时间戳和证据 URI,不能记录最终批准。

批准图片 dry-run 当前不能记录最终批准,必须保持 finalApprovalRecorded=false。

缺少真实 approverId、approvedAt、approvalEvidenceUri、approvalEvidenceDigest、sourceEvidenceSha256 和 MFA 校验。

仍有 14 个待确认项,不能进入最终批准。

humanQueueReady=false,不能进入批准校验。