{
  "schema": "ppt-master.pptx-postflight-report.v1",
  "status": "passed-with-warnings",
  "output": {
    "path": "/Users/liuxinyuan/Desktop/Hermes输出-工作类/客户管理/PPT/baorui_company_visit_ppt169_20261028/exports/宝锐生物_公司介绍与产品矩阵_客户拜访_20261028.pptx",
    "bytes": 367662
  },
  "source": {
    "svg_slide_count": 12,
    "layout_definition_count": 0,
    "fingerprint": {
      "algorithm": "sha256",
      "digest": "5041bbd15b24afa35a7676e546b8fabcb6f3964271f914fa87a7cf1701f2dea6",
      "file_count": 12,
      "files": [
        {
          "file": "P01.svg",
          "sha256": "c863c68b73ff5f5b2018947f320ecb7a56b035606c2b7610ecd7029966f1cb7c"
        },
        {
          "file": "P02.svg",
          "sha256": "e401aa7f8384f7ed6db944913056675e52dbc654b891324fe2a33e88eb561aaa"
        },
        {
          "file": "P03.svg",
          "sha256": "c2e41ee8f2126123fc64c7347515c4524ead53f4c883061c828df648f9f08767"
        },
        {
          "file": "P04.svg",
          "sha256": "7526806b850442f8605236e1f235d41e1aa1c216ff074b5be6fb0b37746b1a41"
        },
        {
          "file": "P05.svg",
          "sha256": "80c0780de5eb2ee0f14926d232752eb13a26beecdfcacce0aed73d6e63100e43"
        },
        {
          "file": "P06.svg",
          "sha256": "ff6d8cf6952946b8a3b1b1ff410db4183ee59d106d276501e91c8165f183d40a"
        },
        {
          "file": "P07.svg",
          "sha256": "6a8482f9ec55e07efb3176870ff9eed4282503156b4983706a7f3e068621618c"
        },
        {
          "file": "P08.svg",
          "sha256": "09275063332f7bd4c05eb0bfc38cfdede43392affea0be3a11020de7000b7bda"
        },
        {
          "file": "P09.svg",
          "sha256": "cd8dc1f06c83b810c9b3cf5d2f38d8f4a6a2f69b14db5c413d31d90664641620"
        },
        {
          "file": "P10.svg",
          "sha256": "268ba492ab37e4ff0582e5a5d98e5d7d2516e047c7109398944ba3e385ac3c6f"
        },
        {
          "file": "P11.svg",
          "sha256": "ccb77a39ee1e852dc0511ee715d2d6712ff261001f51df9aed619f74d851ab80"
        },
        {
          "file": "P12.svg",
          "sha256": "df114f84cca13ac27c824580bafa3b2bde645d656bfeebd9607f5b9d7c664fce"
        }
      ]
    },
    "authoring_roundtrip": null
  },
  "package": {
    "zip_integrity": "passed",
    "corrupt_member": null,
    "slides": 12,
    "notes": 0,
    "masters": 1,
    "layouts": 1
  },
  "checks": {
    "zip_integrity": "passed",
    "slide_count": "passed",
    "internal_relationships": "enforced-at-build",
    "structured_package": "not-applicable",
    "transitions": "enforced-at-build",
    "animations": "enforced-at-build",
    "project_svg_contract": "enforced-at-build",
    "compatibility_normalization": "not-applicable",
    "authoring_roundtrip": "not-applicable",
    "quality_gate": "passed",
    "quality_warnings": "warning",
    "template_tokens": "passed",
    "external_images": "passed",
    "font_portability": "passed"
  },
  "quality": {
    "status": "loaded",
    "path": "validation/svg_quality_report.json",
    "schema": "ppt-master.svg-quality-report.v1",
    "stage": "final",
    "source_match": "passed",
    "source_fingerprint": {
      "algorithm": "sha256",
      "digest": "5041bbd15b24afa35a7676e546b8fabcb6f3964271f914fa87a7cf1701f2dea6",
      "file_count": 12,
      "files": [
        {
          "file": "P01.svg",
          "sha256": "c863c68b73ff5f5b2018947f320ecb7a56b035606c2b7610ecd7029966f1cb7c"
        },
        {
          "file": "P02.svg",
          "sha256": "e401aa7f8384f7ed6db944913056675e52dbc654b891324fe2a33e88eb561aaa"
        },
        {
          "file": "P03.svg",
          "sha256": "c2e41ee8f2126123fc64c7347515c4524ead53f4c883061c828df648f9f08767"
        },
        {
          "file": "P04.svg",
          "sha256": "7526806b850442f8605236e1f235d41e1aa1c216ff074b5be6fb0b37746b1a41"
        },
        {
          "file": "P05.svg",
          "sha256": "80c0780de5eb2ee0f14926d232752eb13a26beecdfcacce0aed73d6e63100e43"
        },
        {
          "file": "P06.svg",
          "sha256": "ff6d8cf6952946b8a3b1b1ff410db4183ee59d106d276501e91c8165f183d40a"
        },
        {
          "file": "P07.svg",
          "sha256": "6a8482f9ec55e07efb3176870ff9eed4282503156b4983706a7f3e068621618c"
        },
        {
          "file": "P08.svg",
          "sha256": "09275063332f7bd4c05eb0bfc38cfdede43392affea0be3a11020de7000b7bda"
        },
        {
          "file": "P09.svg",
          "sha256": "cd8dc1f06c83b810c9b3cf5d2f38d8f4a6a2f69b14db5c413d31d90664641620"
        },
        {
          "file": "P10.svg",
          "sha256": "268ba492ab37e4ff0582e5a5d98e5d7d2516e047c7109398944ba3e385ac3c6f"
        },
        {
          "file": "P11.svg",
          "sha256": "ccb77a39ee1e852dc0511ee715d2d6712ff261001f51df9aed619f74d851ab80"
        },
        {
          "file": "P12.svg",
          "sha256": "df114f84cca13ac27c824580bafa3b2bde645d656bfeebd9607f5b9d7c664fce"
        }
      ]
    },
    "summary": {
      "total": 12,
      "passed": 0,
      "warnings": 12,
      "errors": 0
    },
    "categories": {
      "blocking": {
        "count": 0,
        "issues": []
      },
      "introduced": {
        "count": 36,
        "issues": [
          {
            "file": "P01.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (7 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[7]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[8]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[9]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P01.svg",
            "message": "12 ungrouped top-level Slide-local element(s) in svg_output (<image> #2, <rect> #3, <rect> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P01.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          },
          {
            "file": "P02.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (34 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[3]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[4]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[6]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P02.svg",
            "message": "48 ungrouped top-level Slide-local element(s) in svg_output (<text> #2, <text> #3, <line> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P02.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          },
          {
            "file": "P03.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (20 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[3]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[4]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[6]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P03.svg",
            "message": "27 ungrouped top-level Slide-local element(s) in svg_output (<text> #2, <text> #3, <line> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P03.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          },
          {
            "file": "P04.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (30 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[3]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[4]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[6]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P04.svg",
            "message": "47 ungrouped top-level Slide-local element(s) in svg_output (<text> #2, <text> #3, <line> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P04.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          },
          {
            "file": "P05.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (26 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[3]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[4]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[6]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P05.svg",
            "message": "39 ungrouped top-level Slide-local element(s) in svg_output (<text> #2, <text> #3, <line> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P05.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          },
          {
            "file": "P06.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (41 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[3]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[4]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[6]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P06.svg",
            "message": "60 ungrouped top-level Slide-local element(s) in svg_output (<text> #2, <text> #3, <line> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P06.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          },
          {
            "file": "P07.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (20 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[3]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[4]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[6]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P07.svg",
            "message": "28 ungrouped top-level Slide-local element(s) in svg_output (<text> #2, <text> #3, <line> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P07.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          },
          {
            "file": "P08.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (36 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[3]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[4]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[6]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P08.svg",
            "message": "46 ungrouped top-level Slide-local element(s) in svg_output (<text> #2, <text> #3, <line> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P08.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          },
          {
            "file": "P09.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (37 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[3]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[4]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[6]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P09.svg",
            "message": "45 ungrouped top-level Slide-local element(s) in svg_output (<text> #2, <text> #3, <line> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P09.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          },
          {
            "file": "P10.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (23 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[3]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[4]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[6]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P10.svg",
            "message": "32 ungrouped top-level Slide-local element(s) in svg_output (<text> #2, <text> #3, <line> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P10.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          },
          {
            "file": "P11.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (38 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[3]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[4]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[6]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P11.svg",
            "message": "52 ungrouped top-level Slide-local element(s) in svg_output (<text> #2, <text> #3, <line> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P11.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          },
          {
            "file": "P12.svg",
            "message": "Noncanonical compact authoring: Authoring SVG contains noncanonical or redundant inherited style declarations (8 change(s)); examples (group:attr None -> value hoists the shared value onto that group; child:attr value -> None drops the copy the child now inherits): text[7]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[8]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None; text[9]:font-family 'PingFang SC, Microsoft YaHei, sans-serif' -> None (advisory; normalize with `python3 scripts/compact_svg_styles.py <svg_output> --inplace`, re-stamp pages that carry Chart/Table fallbacks, and rerun the final gate, or leave the explicit form)"
          },
          {
            "file": "P12.svg",
            "message": "15 ungrouped top-level Slide-local element(s) in svg_output (<image> #2, <rect> #3, <rect> #4, ...); group only logical content units in a top-level <g id=\"...\">. Keep genuine static page framing as a root primitive and declare a supported data-pptx-role such as \"background\" or \"decoration\""
          },
          {
            "file": "P12.svg",
            "message": "page SVG is missing root data-pptx-page-role"
          }
        ]
      },
      "inherited": {
        "count": 0,
        "issues": []
      },
      "source-import": {
        "count": 0,
        "summary": {
          "warning_count": 0,
          "by_code": {}
        }
      }
    }
  },
  "resources": {
    "unresolved_template_tokens": [],
    "fonts": {
      "stacks": [
        "PingFang SC, Microsoft YaHei, sans-serif"
      ],
      "generic_only_stacks": [],
      "unsafe_exported_faces": []
    },
    "images": {
      "data_uri": 7,
      "local": 0,
      "external": 0,
      "external_references": []
    }
  },
  "export_policy": {
    "project_svg_contract": "strict",
    "dangerous_normalization_count": 0
  },
  "deck_motion": {
    "transition": {
      "effect": "fade",
      "effect_options": {},
      "duration": 0.4,
      "auto_advance": null,
      "sound": null
    },
    "animation": {
      "effect": "none",
      "effect_request": null,
      "duration": 0.4,
      "stagger": 0.5,
      "trigger": "after-previous"
    },
    "cli_overrides": {
      "transition": false,
      "transition_duration": false,
      "auto_advance": false,
      "transition_sound": false,
      "animation": false,
      "animation_duration": false,
      "animation_stagger": false,
      "animation_trigger": false
    },
    "narration_timings": false
  },
  "backup_path": null,
  "conversion_trace_path": null
}
