AI Code2Des — テストケース
| Area | Assertion |
|---|---|
| Message | Missing/unknown field、invalid ID/hash/URL、attempt != 1 を拒否 |
| Capture pin | Byte hash または tenant/Page Import identity mismatch を拒否 |
| Frame | Hierarchy、bbox、paint order、clip、border、radius、shadow、gradient、blend mode を維持 |
| Text | Single-line width、wrap bbox、typography、alignment、decoration、opacity を維持 |
| Image | Asset identity、object fit、saturation/grayscale、hydrated bytes を維持 |
| SVG | 対応 SVG は vector、未対応 background SVG は rasterized evidence を使用 |
| Unsupported | 他の sibling を止めず warning/unmatched node を生成 |
| Artifact | Result を manifest より先に immutable write し warning count を正確に通知 |
| Failure | 安全な failure artifact/manifest と failed webhook |
| Plugin | Native node 作成、旧 generation 保持、成功 layer 数の実数、最新 root ID 記録 |
| Backend | Page Import completion は Code2Des を作成せず、trigger は scoped completed import を要求し、各 trigger は別 row を作成し、enqueue failure はその Code2Des row のみに影響 |
Project-agnostic visual acceptance は複数の無関係な site で source screenshot と Figma output を比較します。完了 status だけでなく、geometry、stacking、background/vector、typography/wrap、gradient、clip、image color、missing/degraded node を確認します。