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中国内地美国日本新加坡香港澳大利亚英国加拿大印度欧盟
3动作协议
0可校验
3策略阻断
0批准动作
3重绘动作
3写入禁用
1源图证据
0源图不一致
Action Protocols

图片确认动作协议

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

策略阻断

请求重绘 / 加拿大 Canadian REIT Residential Node

REITs Pixel Asset #CA-Residential-09 / 加拿大 / isometric-nft-card / needs-compliance-review

Action JSON
asset-visual-approval-human-confirmation-action-request-redraw-ca-residential-tsx-node-isometric-nft-cardreits://asset-visual-approval-human-confirmation-action/request-redraw/ca-residential-tsx-node/isometric-nft-cardactionDigest=619607fe10761240b2 / from=needs-compliance-review / to=needs-pin-redraw
Source Evidencebbs-gap-local-generatedBBS Gap 本地生成文件已进入清单预览证据链,但 formalRegistryWritten 仍为 false。
/assets/virtual-assets/ca-residential-tsx-node/nft-card.pngfilesystem-probe / 2195051 bytessha256=4449c12e4aa77bdd2f
localFileDetected=truesourceMatchesTransaction=truesourceEvidenceRequired=trueapprovalEvidenceWritten=false
动作协议requiredRoles=ops / designrequiredInputs=4 / blockers=1
写入红线committed=false / finalApprovalRecorded=falseapprovalEvidenceWritten=false / registryPromotionAllowed=false
来源确认humanQueueReady=false / pendingItems=14sourceSha=4449c12e4aa77b / writeDisabled=true
writeDisabled=truefinalApprovalWriteDisabled=trueregistryWriteDisabled=truemapPublishDisabled=truebbsPostDisabled=truemapPublished=falsebbsPosted=false
status=blocked-by-policydryRunRequired=truewriteDisabled=truesourceEvidence=4449c12e4aa7sourceMatchesTransaction=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-request-redraw-ca-residential-tsx-node-isometric-nft-card",
  "humanConfirmationId": "asset-visual-approval-human-confirmation-ca-residential-tsx-node-isometric-nft-card",
  "identityFixtureId": "asset-visual-approval-identity-fixture-ca-residential-tsx-node-isometric-nft-card",
  "action": "request-redraw",
  "sourceEvidenceType": "bbs-gap-local-generated",
  "sourceEvidencePublicPath": "/assets/virtual-assets/ca-residential-tsx-node/nft-card.png",
  "sourceEvidenceSha256": "4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6",
  "sourceMatchesTransaction": true,
  "humanConfirmationDigest": "034e201f7fb03bdc4232637a07e05ea603191dac28030890a1efa47fc6e86988",
  "writeDisabled": true
}
{
  "action": "request-redraw",
  "assetSlug": "ca-residential-tsx-node",
  "candidateSlug": "ca-residential-tsx-node",
  "humanConfirmationId": "asset-visual-approval-human-confirmation-ca-residential-tsx-node-isometric-nft-card",
  "formatKey": "isometric-nft-card",
  "actorRole": "ops",
  "actorName": "visual-ops-reviewer",
  "reason": "dry-run 请求重绘",
  "dryRun": true,
  "writeDisabled": true,
  "secondConfirm": false,
  "sourceEvidenceSha256": "4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6"
}
{
  "action": "request-redraw",
  "actionLabel": "请求重绘",
  "dryRun": true,
  "writeDisabled": true,
  "targetHumanConfirmationId": "asset-visual-approval-human-confirmation-ca-residential-tsx-node-isometric-nft-card",
  "targetIdentityFixtureId": "asset-visual-approval-identity-fixture-ca-residential-tsx-node-isometric-nft-card",
  "targetSourceEvidenceSha256": "4449c12e4aa77bdd2ff0ae7f386cabe6ecb04dd08865f8be7fde8984a9f68bf6",
  "sourceEvidenceRequired": true,
  "requiredRoles": [
    "ops"
  ],
  "requiredInputs": [
    "actorRole",
    "actorName",
    "reason",
    "secondConfirm"
  ],
  "blocked": true,
  "note": "该动作包只用于后续运营系统接入前的协议预览,不会改变状态或写外部系统。"
}
{
  "from": "needs-compliance-review",
  "to": "needs-pin-redraw",
  "committed": false,
  "finalApprovalRecorded": false,
  "approvalEvidenceWritten": false,
  "registryPromotionAllowed": false,
  "mapPublished": false,
  "bbsPosted": false,
  "note": "该动作协议只校验人工确认输入,不持久化状态,不写审批证据,不推进地图或正式清单。"
}

该动作包只用于后续运营系统接入前的协议预览,不会改变状态或写外部系统。

策略阻断

请求重绘 / 欧盟 Listed Real Estate Logistics Hub

REITs Pixel Asset #EU-Logistics-11 / 欧盟 / isometric-nft-card / blocked-by-brief

Action JSON
asset-visual-approval-human-confirmation-action-request-redraw-eu-logistics-esef-hub-isometric-nft-cardreits://asset-visual-approval-human-confirmation-action/request-redraw/eu-logistics-esef-hub/isometric-nft-cardactionDigest=bdfbb5be81d2fdf264 / from=blocked-by-brief / to=needs-pin-redraw
no file
Source Evidencemissing-source当前没有 source image,必须保持 blocked preview row。
source=nulltransaction-only / bytes=nullsha256=null
localFileDetected=falsesourceMatchesTransaction=falsesourceEvidenceRequired=trueapprovalEvidenceWritten=false
动作协议requiredRoles=ops / designrequiredInputs=4 / blockers=3
写入红线committed=false / finalApprovalRecorded=falseapprovalEvidenceWritten=false / registryPromotionAllowed=false
来源确认humanQueueReady=false / pendingItems=15sourceSha=null / writeDisabled=true
writeDisabled=truefinalApprovalWriteDisabled=trueregistryWriteDisabled=truemapPublishDisabled=truebbsPostDisabled=truemapPublished=falsebbsPosted=false
status=blocked-by-policydryRunRequired=truewriteDisabled=truesourceEvidence=nullsourceMatchesTransaction=falsefinalApprovalRecorded=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-request-redraw-eu-logistics-esef-hub-isometric-nft-card",
  "humanConfirmationId": "asset-visual-approval-human-confirmation-eu-logistics-esef-hub-isometric-nft-card",
  "identityFixtureId": "asset-visual-approval-identity-fixture-eu-logistics-esef-hub-isometric-nft-card",
  "action": "request-redraw",
  "sourceEvidenceType": "missing-source",
  "sourceEvidencePublicPath": null,
  "sourceEvidenceSha256": null,
  "sourceMatchesTransaction": false,
  "humanConfirmationDigest": "273c17f0ffb471b1608a3c8f83dfdf1168a9184bc683b10dedee12ad57de0470",
  "writeDisabled": true
}
{
  "action": "request-redraw",
  "assetSlug": "eu-logistics-esef-hub",
  "candidateSlug": "eu-logistics-esef-hub",
  "humanConfirmationId": "asset-visual-approval-human-confirmation-eu-logistics-esef-hub-isometric-nft-card",
  "formatKey": "isometric-nft-card",
  "actorRole": "ops",
  "actorName": "visual-ops-reviewer",
  "reason": "dry-run 请求重绘",
  "dryRun": true,
  "writeDisabled": true,
  "secondConfirm": false,
  "sourceEvidenceSha256": null
}
{
  "action": "request-redraw",
  "actionLabel": "请求重绘",
  "dryRun": true,
  "writeDisabled": true,
  "targetHumanConfirmationId": "asset-visual-approval-human-confirmation-eu-logistics-esef-hub-isometric-nft-card",
  "targetIdentityFixtureId": "asset-visual-approval-identity-fixture-eu-logistics-esef-hub-isometric-nft-card",
  "targetSourceEvidenceSha256": null,
  "sourceEvidenceRequired": true,
  "requiredRoles": [
    "ops"
  ],
  "requiredInputs": [
    "actorRole",
    "actorName",
    "reason",
    "secondConfirm"
  ],
  "blocked": true,
  "note": "该动作包只用于后续运营系统接入前的协议预览,不会改变状态或写外部系统。"
}
{
  "from": "blocked-by-brief",
  "to": "needs-pin-redraw",
  "committed": false,
  "finalApprovalRecorded": false,
  "approvalEvidenceWritten": false,
  "registryPromotionAllowed": false,
  "mapPublished": false,
  "bbsPosted": false,
  "note": "该动作协议只校验人工确认输入,不持久化状态,不写审批证据,不推进地图或正式清单。"
}

sourceEvidence 未完整绑定,动作协议不能进入真实审批或发布流程。

该动作包只用于后续运营系统接入前的协议预览,不会改变状态或写外部系统。

Brief 阻断记录需要先回到素材 Brief 修复,不能只请求重绘。

策略阻断

请求重绘 / 印度 REITs / InvIT Infra Corridor

REITs Pixel Asset #IN-Infra-10 / 印度 / isometric-nft-card / blocked-by-brief

Action JSON
asset-visual-approval-human-confirmation-action-request-redraw-in-invit-infra-corridor-isometric-nft-cardreits://asset-visual-approval-human-confirmation-action/request-redraw/in-invit-infra-corridor/isometric-nft-cardactionDigest=729162791e306e2f41 / from=blocked-by-brief / to=needs-pin-redraw
no file
Source Evidencemissing-source当前没有 source image,必须保持 blocked preview row。
source=nulltransaction-only / bytes=nullsha256=null
localFileDetected=falsesourceMatchesTransaction=falsesourceEvidenceRequired=trueapprovalEvidenceWritten=false
动作协议requiredRoles=ops / designrequiredInputs=4 / blockers=3
写入红线committed=false / finalApprovalRecorded=falseapprovalEvidenceWritten=false / registryPromotionAllowed=false
来源确认humanQueueReady=false / pendingItems=15sourceSha=null / writeDisabled=true
writeDisabled=truefinalApprovalWriteDisabled=trueregistryWriteDisabled=truemapPublishDisabled=truebbsPostDisabled=truemapPublished=falsebbsPosted=false
status=blocked-by-policydryRunRequired=truewriteDisabled=truesourceEvidence=nullsourceMatchesTransaction=falsefinalApprovalRecorded=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-request-redraw-in-invit-infra-corridor-isometric-nft-card",
  "humanConfirmationId": "asset-visual-approval-human-confirmation-in-invit-infra-corridor-isometric-nft-card",
  "identityFixtureId": "asset-visual-approval-identity-fixture-in-invit-infra-corridor-isometric-nft-card",
  "action": "request-redraw",
  "sourceEvidenceType": "missing-source",
  "sourceEvidencePublicPath": null,
  "sourceEvidenceSha256": null,
  "sourceMatchesTransaction": false,
  "humanConfirmationDigest": "f8db784a0ca63202e173e2d335b92655751c6b3329f737788e43c9ddced2b405",
  "writeDisabled": true
}
{
  "action": "request-redraw",
  "assetSlug": "in-invit-infra-corridor",
  "candidateSlug": "in-invit-infra-corridor",
  "humanConfirmationId": "asset-visual-approval-human-confirmation-in-invit-infra-corridor-isometric-nft-card",
  "formatKey": "isometric-nft-card",
  "actorRole": "ops",
  "actorName": "visual-ops-reviewer",
  "reason": "dry-run 请求重绘",
  "dryRun": true,
  "writeDisabled": true,
  "secondConfirm": false,
  "sourceEvidenceSha256": null
}
{
  "action": "request-redraw",
  "actionLabel": "请求重绘",
  "dryRun": true,
  "writeDisabled": true,
  "targetHumanConfirmationId": "asset-visual-approval-human-confirmation-in-invit-infra-corridor-isometric-nft-card",
  "targetIdentityFixtureId": "asset-visual-approval-identity-fixture-in-invit-infra-corridor-isometric-nft-card",
  "targetSourceEvidenceSha256": null,
  "sourceEvidenceRequired": true,
  "requiredRoles": [
    "ops"
  ],
  "requiredInputs": [
    "actorRole",
    "actorName",
    "reason",
    "secondConfirm"
  ],
  "blocked": true,
  "note": "该动作包只用于后续运营系统接入前的协议预览,不会改变状态或写外部系统。"
}
{
  "from": "blocked-by-brief",
  "to": "needs-pin-redraw",
  "committed": false,
  "finalApprovalRecorded": false,
  "approvalEvidenceWritten": false,
  "registryPromotionAllowed": false,
  "mapPublished": false,
  "bbsPosted": false,
  "note": "该动作协议只校验人工确认输入,不持久化状态,不写审批证据,不推进地图或正式清单。"
}

sourceEvidence 未完整绑定,动作协议不能进入真实审批或发布流程。

该动作包只用于后续运营系统接入前的协议预览,不会改变状态或写外部系统。

Brief 阻断记录需要先回到素材 Brief 修复,不能只请求重绘。