{
  "claim_scope": {
    "does_not_support": [
      "KiCad DRC cleanliness when kicad_cli_full_drc is not completed.",
      "Project-aware rule or net-class coverage: no .kicad_pro or .kicad_dru is present.",
      "A fabrication acceptance or claim that the board was fabricated.",
      "A deduplicated full native report: families are isolated to enforce hard time bounds.",
      "Any conclusion about families marked timed_out, error, or otherwise incomplete."
    ],
    "supports": [
      "The pinned board was accepted by Resin's committed native parser.",
      "Completed native families returned the recorded bounded findings under DEFAULT_RULES.",
      "Per-family status, timings, summaries, samples, and complete-result digests are recorded."
    ]
  },
  "environment": {
    "git": {
      "commit": "8aaef5b68859c61c2ac55e0b2e0ceff0e42bf833",
      "worktree_dirty": true
    },
    "platform": "Windows-11-10.0.26200-SP0",
    "python": "3.14.3"
  },
  "generated_at_utc": "2026-07-12T21:14:41.238308+00:00",
  "generator": "frontend/scripts/collect-open-hardware-drc-evidence.py",
  "implementation_sha256": {
    "backend/src/resin/services/board_drc/board_checker.py": "06C153423D0C143118CD79926C7904C358EDCB2952C92FCD024950582B37DA2B",
    "backend/src/resin/services/board_drc/clearance.py": "153565041991AC4C6C4D9C918153B4007093B75EFF0D534EE7E36B885C1311EA",
    "backend/src/resin/services/board_drc/connectivity.py": "E221B62A1BEEE0E988B48372038B9FB3C36427FA5E50D21F1EDF15CBD912446C",
    "backend/src/resin/services/board_drc/courtyard.py": "C881D038DBB1FD9CE491BC4D8F15985B1E946A8B6F41AAE19326F8D062EC10EF",
    "backend/src/resin/services/board_drc/dfm.py": "6926C9619350A2F36A6FB90C945625C1A71C27C9985E74848D242400A0D97882",
    "backend/src/resin/services/board_drc/diff_pair.py": "006BC1C7C18E71B555390AF553D809ACBE7043CFBFCEB37294CB984777C07CF2",
    "backend/src/resin/services/board_drc/fiducial.py": "CE82235F4A81C42F80768F87DC3F8F328920500D3DDEF7FDF16333EBA1C54D49",
    "backend/src/resin/services/board_drc/high_speed_smt.py": "E3F3BC209C39FE46DE11BB158489D0FAEB71797E2011CEC4999E73FC9D946D07",
    "backend/src/resin/services/board_drc/hole_edge.py": "4788131AEE8A72CEFCC13AAAC27E3C778C862DE23534F05377F95BC6D95EBE6B",
    "backend/src/resin/services/board_drc/power_pdn.py": "114ED7A872585562A7A40BE9A731A6E545642FB498E8DA137EE95BCDE2C42432",
    "backend/src/resin/services/board_drc/signal_integrity.py": "F399F623DA1B7FA90E326D3177D1A7281FF2AF470030D584BBFADDDFBA14FDC6",
    "backend/src/resin/services/board_drc/silk_text.py": "413D5C64EF43DCD179D4FA4D9B7CB25C49606CC6177F69D86D4E7E0A1B148BD3",
    "backend/src/resin/services/board_drc/stencil.py": "41144ADA37890CE6AF9FBF2B759561531C3CB3CD6516E7192F0EA0F602ED4582",
    "backend/src/resin/services/board_drc/width_size.py": "96EE91879A57E9AD477D11E24BC153624F7EE88E327334B47729CB1E975428BA",
    "backend/src/resin/services/board_drc/zones.py": "1A0240D23792C4D54F0940081F6313298258F194EB74C1809C077DFD78BF2ACF",
    "backend/src/resin/services/fab_native/pcb_model.py": "3876C8752C29ACA4BCB697B0295C9F194FB812192D73B19B3564D5F40A43EDBD"
  },
  "kicad_cli_full_drc": {
    "command_template": "kicad-cli pcb drc <board.kicad_pcb> --format json --output <kicad-cli-drc-report.json>",
    "detector": "resin.services.pcb_render.KICAD_CLI",
    "executable": "C:\\Program Files\\KiCad\\9.0\\bin\\kicad-cli.exe",
    "return_code": 3,
    "status": "error",
    "stderr_tail": "Failed to load board\n",
    "stdout_tail": "",
    "timeout_seconds": 30.0,
    "wall_seconds": 2.360943
  },
  "migration_context": {
    "known_conversion_failures": [
      "values",
      "kicad-cli-acceptance"
    ],
    "project": "ciaa-nxp",
    "source_report": "frontend/public/marketing/open-hardware/ciaa-nxp/migration/fidelity-report.json"
  },
  "native_bounded_drc": {
    "checker_entry_point": "resin.services.board_drc.board_checker.run_board_drc",
    "execution_method": "Each function in board_checker.FAMILY_ORDER ran directly in an isolated subprocess; no cross-family orchestrator deduplication was applied.",
    "families": {
      "clearance": {
        "status": "timed_out",
        "stderr_tail": "",
        "stdout_tail": "",
        "timeout_seconds": 12.0,
        "wall_seconds": 12.080834
      },
      "connectivity": {
        "status": "timed_out",
        "stderr_tail": "",
        "stdout_tail": "",
        "timeout_seconds": 12.0,
        "wall_seconds": 12.039067
      },
      "courtyard": {
        "build_context_seconds": 0.029169,
        "check_seconds": 0.002376,
        "counts_by_code": {
          "DRCE_MISSING_COURTYARD": 443
        },
        "counts_by_severity": {
          "warning": 443
        },
        "finding_count": 443,
        "finding_samples": [
          {
            "code": "DRCE_MISSING_COURTYARD",
            "componentRef": "?",
            "elementIds": [
              "52a7298d-d4c4-4272-abe0-bebb5d485ecc"
            ],
            "excluded": false,
            "exclusionReason": null,
            "ignored": false,
            "layer": null,
            "message": "Footprint ? has no courtyard",
            "metadata": {},
            "netName": null,
            "padNumber": null,
            "pin": null,
            "position": [
              129.6355,
              84.0745
            ],
            "rule": "missingCourtyard",
            "severity": "warning",
            "sheet": null,
            "source": "native"
          },
          {
            "code": "DRCE_MISSING_COURTYARD",
            "componentRef": "?",
            "elementIds": [
              "56d1f5d0-2a2f-4a95-88f2-6b1149316f94"
            ],
            "excluded": false,
            "exclusionReason": null,
            "ignored": false,
            "layer": null,
            "message": "Footprint ? has no courtyard",
            "metadata": {},
            "netName": null,
            "padNumber": null,
            "pin": null,
            "position": [
              46.3235,
              56.7695
            ],
            "rule": "missingCourtyard",
            "severity": "warning",
            "sheet": null,
            "source": "native"
          },
          {
            "code": "DRCE_MISSING_COURTYARD",
            "componentRef": "?",
            "elementIds": [
              "f46b1ca5-29ad-4cf3-8841-4f6e6af6e672"
            ],
            "excluded": false,
            "exclusionReason": null,
            "ignored": false,
            "layer": null,
            "message": "Footprint ? has no courtyard",
            "metadata": {},
            "netName": null,
            "padNumber": null,
            "pin": null,
            "position": [
              44.1645,
              41.2755
            ],
            "rule": "missingCourtyard",
            "severity": "warning",
            "sheet": null,
            "source": "native"
          },
          {
            "code": "DRCE_MISSING_COURTYARD",
            "componentRef": "?",
            "elementIds": [
              "cbe54c71-24ae-4694-9085-08c9190374ff"
            ],
            "excluded": false,
            "exclusionReason": null,
            "ignored": false,
            "layer": null,
            "message": "Footprint ? has no courtyard",
            "metadata": {},
            "netName": null,
            "padNumber": null,
            "pin": null,
            "position": [
              52.0385,
              28.9565
            ],
            "rule": "missingCourtyard",
            "severity": "warning",
            "sheet": null,
            "source": "native"
          },
          {
            "code": "DRCE_MISSING_COURTYARD",
            "componentRef": "?",
            "elementIds": [
              "2be3d4a1-a6de-4ef8-8b37-e01986fdeb87"
            ],
            "excluded": false,
            "exclusionReason": null,
            "ignored": false,
            "layer": null,
            "message": "Footprint ? has no courtyard",
            "metadata": {},
            "netName": null,
            "padNumber": null,
            "pin": null,
            "position": [
              109.5695,
              48.3875
            ],
            "rule": "missingCourtyard",
            "severity": "warning",
            "sheet": null,
            "source": "native"
          }
        ],
        "findings_sha256": "B558F563C84D4B60417F83CA14B092A41B12A80470EF0E1208768B5E8DDFDCE6",
        "parse_seconds": 1.83039,
        "process_seconds": 1.885901,
        "status": "completed",
        "wall_seconds": 3.754594
      },
      "dfm": {
        "build_context_seconds": 0.025862,
        "check_seconds": 2e-05,
        "counts_by_code": {},
        "counts_by_severity": {},
        "finding_count": 0,
        "finding_samples": [],
        "findings_sha256": "4F53CDA18C2BAA0C0354BB5F9A3ECBE5ED12AB4D8E11BA873C2F11161202B945",
        "parse_seconds": 1.698875,
        "process_seconds": 1.738313,
        "status": "completed",
        "wall_seconds": 4.101977
      },
      "diff_pair": {
        "build_context_seconds": 0.021571,
        "check_seconds": 0.098128,
        "counts_by_code": {},
        "counts_by_severity": {},
        "finding_count": 0,
        "finding_samples": [],
        "findings_sha256": "4F53CDA18C2BAA0C0354BB5F9A3ECBE5ED12AB4D8E11BA873C2F11161202B945",
        "parse_seconds": 1.602733,
        "process_seconds": 1.731341,
        "status": "completed",
        "wall_seconds": 3.593901
      },
      "fiducial": {
        "build_context_seconds": 0.031043,
        "check_seconds": 1.7e-05,
        "counts_by_code": {},
        "counts_by_severity": {},
        "finding_count": 0,
        "finding_samples": [],
        "findings_sha256": "4F53CDA18C2BAA0C0354BB5F9A3ECBE5ED12AB4D8E11BA873C2F11161202B945",
        "parse_seconds": 1.766137,
        "process_seconds": 1.804271,
        "status": "completed",
        "wall_seconds": 3.684409
      },
      "high_speed_smt": {
        "build_context_seconds": 0.024257,
        "check_seconds": 0.000123,
        "counts_by_code": {},
        "counts_by_severity": {},
        "finding_count": 0,
        "finding_samples": [],
        "findings_sha256": "4F53CDA18C2BAA0C0354BB5F9A3ECBE5ED12AB4D8E11BA873C2F11161202B945",
        "parse_seconds": 1.827051,
        "process_seconds": 1.860033,
        "status": "completed",
        "wall_seconds": 3.729718
      },
      "hole_edge": {
        "status": "timed_out",
        "stderr_tail": "",
        "stdout_tail": "",
        "timeout_seconds": 12.0,
        "wall_seconds": 12.037906
      },
      "power_pdn": {
        "build_context_seconds": 0.020067,
        "check_seconds": 1.1e-05,
        "counts_by_code": {},
        "counts_by_severity": {},
        "finding_count": 0,
        "finding_samples": [],
        "findings_sha256": "4F53CDA18C2BAA0C0354BB5F9A3ECBE5ED12AB4D8E11BA873C2F11161202B945",
        "parse_seconds": 1.496943,
        "process_seconds": 1.526587,
        "status": "completed",
        "wall_seconds": 3.127972
      },
      "signal_integrity": {
        "status": "timed_out",
        "stderr_tail": "",
        "stdout_tail": "",
        "timeout_seconds": 12.0,
        "wall_seconds": 12.0455
      },
      "silk_text": {
        "status": "timed_out",
        "stderr_tail": "",
        "stdout_tail": "",
        "timeout_seconds": 12.0,
        "wall_seconds": 12.051339
      },
      "stencil": {
        "build_context_seconds": 0.023016,
        "check_seconds": 2.4e-05,
        "counts_by_code": {},
        "counts_by_severity": {},
        "finding_count": 0,
        "finding_samples": [],
        "findings_sha256": "4F53CDA18C2BAA0C0354BB5F9A3ECBE5ED12AB4D8E11BA873C2F11161202B945",
        "parse_seconds": 1.698949,
        "process_seconds": 1.729743,
        "status": "completed",
        "wall_seconds": 3.359057
      },
      "width_size": {
        "build_context_seconds": 0.01589,
        "check_seconds": 0.0123,
        "counts_by_code": {},
        "counts_by_severity": {},
        "finding_count": 0,
        "finding_samples": [],
        "findings_sha256": "4F53CDA18C2BAA0C0354BB5F9A3ECBE5ED12AB4D8E11BA873C2F11161202B945",
        "parse_seconds": 1.347409,
        "process_seconds": 1.383639,
        "status": "completed",
        "wall_seconds": 3.260463
      },
      "zones": {
        "build_context_seconds": 0.024741,
        "check_seconds": 1.401068,
        "counts_by_code": {
          "DRCE_STARVED_THERMAL": 4
        },
        "counts_by_severity": {
          "warning": 4
        },
        "finding_count": 4,
        "finding_samples": [
          {
            "code": "DRCE_STARVED_THERMAL",
            "componentRef": "?",
            "elementIds": [
              "pad-781",
              "ea675fc6-ff12-4cff-9aa6-24488d1f69e9"
            ],
            "excluded": false,
            "exclusionReason": null,
            "ignored": false,
            "layer": "B.Cu",
            "message": "Starved thermal pad: ?:2 (net N-00000259) has 1 thermal spoke(s) < required 2 on B.Cu",
            "metadata": {},
            "netName": "N-00000259",
            "padNumber": "2",
            "pin": null,
            "position": [
              132.02056,
              77.2165
            ],
            "rule": "starvedThermal",
            "severity": "warning",
            "sheet": null,
            "source": "native"
          },
          {
            "code": "DRCE_STARVED_THERMAL",
            "componentRef": "?",
            "elementIds": [
              "pad-785",
              "ea675fc6-ff12-4cff-9aa6-24488d1f69e9"
            ],
            "excluded": false,
            "exclusionReason": null,
            "ignored": false,
            "layer": "B.Cu",
            "message": "Starved thermal pad: ?:2 (net N-00000259) has 0 thermal spoke(s) < required 2 on B.Cu",
            "metadata": {},
            "netName": "N-00000259",
            "padNumber": "2",
            "pin": null,
            "position": [
              143.1737,
              76.75930000000001
            ],
            "rule": "starvedThermal",
            "severity": "warning",
            "sheet": null,
            "source": "native"
          },
          {
            "code": "DRCE_STARVED_THERMAL",
            "componentRef": "?",
            "elementIds": [
              "pad-786",
              "260540ec-2f77-468a-9952-482e6d099cf5"
            ],
            "excluded": false,
            "exclusionReason": null,
            "ignored": false,
            "layer": "B.Cu",
            "message": "Starved thermal pad: ?:1 (net N-00000257) has 1 thermal spoke(s) < required 2 on B.Cu",
            "metadata": {},
            "netName": "N-00000257",
            "padNumber": "1",
            "pin": null,
            "position": [
              141.47189999999998,
              76.75930000000001
            ],
            "rule": "starvedThermal",
            "severity": "warning",
            "sheet": null,
            "source": "native"
          },
          {
            "code": "DRCE_STARVED_THERMAL",
            "componentRef": "?",
            "elementIds": [
              "pad-1475",
              "260540ec-2f77-468a-9952-482e6d099cf5"
            ],
            "excluded": false,
            "exclusionReason": null,
            "ignored": false,
            "layer": "B.Cu",
            "message": "Starved thermal pad: ?:1 (net N-00000257) has 0 thermal spoke(s) < required 2 on B.Cu",
            "metadata": {},
            "netName": "N-00000257",
            "padNumber": "1",
            "pin": null,
            "position": [
              137.2,
              81.69964
            ],
            "rule": "starvedThermal",
            "severity": "warning",
            "sheet": null,
            "source": "native"
          }
        ],
        "findings_sha256": "1B2DB299C81EE92F951F4FE94DEE953AF31D148B087BE3A4321BDCDDDF096480",
        "parse_seconds": 1.530794,
        "process_seconds": 2.968507,
        "status": "completed",
        "wall_seconds": 4.386318
      }
    },
    "family_order": [
      "clearance",
      "width_size",
      "hole_edge",
      "connectivity",
      "zones",
      "courtyard",
      "diff_pair",
      "silk_text",
      "dfm",
      "fiducial",
      "stencil",
      "signal_integrity",
      "high_speed_smt",
      "power_pdn"
    ],
    "family_timeout_seconds": 12.0,
    "parser": "resin.services.fab_native.pcb_model.parse_resinpcb",
    "rules": "resin.services.checks.rules_config.DEFAULT_RULES",
    "status": "partial",
    "summary": {
      "completed_families": [
        "width_size",
        "zones",
        "courtyard",
        "diff_pair",
        "dfm",
        "fiducial",
        "stencil",
        "high_speed_smt",
        "power_pdn"
      ],
      "completed_family_count": 9,
      "error_families": [],
      "raw_finding_count_before_cross_family_dedup": 447,
      "registered_family_count": 14,
      "timed_out_families": [
        "clearance",
        "hole_edge",
        "connectivity",
        "silk_text",
        "signal_integrity"
      ],
      "wall_seconds": 95.83824
    }
  },
  "reproduction_command": "python frontend/scripts/collect-open-hardware-drc-evidence.py --run --family-timeout-seconds 12 --cli-timeout-seconds 30",
  "schema_version": 1,
  "source": {
    "board": "frontend/public/marketing/open-hardware/ciaa-nxp/migration/ciaa-nxp-resin-kicad9.kicad_pcb",
    "bytes": 3548528,
    "sha256": "A278D7B78B1C98D079A167FC0730869E1B7B8D3DA5ACAAC73221389405D556B0"
  }
}
