{
  "project": "大杜社幼儿园",
  "generated_at": "2026-09-29T21:09:43",
  "execution_mode": "常规 Codex",
  "evidence_grade": "D",
  "one_to_one_site_reconstruction": false,
  "outputs": {
    "base_image": "/Users/jack/code/010-cpt/008-zhct/zhctprompt/modules/product/product-group-ai-native/planning/2026-09-29-project-product-framework/scene-3d-projects/dadushe-kindergarten/output/大杜社幼儿园-3D场景底图-imagegen.png",
    "final_png": "/Users/jack/code/010-cpt/008-zhct/zhctprompt/modules/product/product-group-ai-native/planning/2026-09-29-project-product-framework/scene-3d-projects/dadushe-kindergarten/output/大杜社幼儿园-3D场景图.png",
    "excel": "/Users/jack/code/010-cpt/008-zhct/zhctprompt/modules/product/product-group-ai-native/planning/2026-09-29-project-product-framework/scene-3d-projects/dadushe-kindergarten/output/大杜社幼儿园-场景说明.xlsx"
  },
  "hashes": {
    "base_image_sha256": "03555f3ba070ddd96f7dc56d1490b48686f30531aadee413b3c975d1d0dfce60",
    "final_png_sha256": "00390ddb86890be140526c6262a337024988299186dbd769dbfd1fd360cfea43",
    "excel_sha256": "639bf2ce909d3d463ce959223d5264a110dc17bc460dec5c899e0bcf5e67761e"
  },
  "readback_checks": {
    "sheets": [
      "大杜社幼儿园场景说明",
      "来源与待补证"
    ],
    "main_nonempty_cells": 172,
    "source_nonempty_cells": 50,
    "embedded_images": 1
  },
  "visual_checks": [
    "16:9 PNG generated from imagegen base and deterministic Chinese overlay",
    "No child is depicted holding a phone or independently paying by mobile",
    "Labels state D-grade concept status and non-1:1 boundary",
    "Hardware labels use only mother-sheet candidate models and mark quantity/point as pending"
  ],
  "blocked_from_higher_grade_by": [
    "No same-project site photos located",
    "No same-project BOM/contract/acceptance record located",
    "No deployment path or server environment confirmed",
    "No bank/H5/payment integration proof for this specific project"
  ],
  "validation_result": "passed_with_D_grade_boundary",
  "visual_review_note": "Second pass moved 08 label above bottom legend to avoid overlap."
}