{
  "meta": {
    "generated_at": "2026-09-30T02:49:04.051220+08:00",
    "source_main": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
    "source_main_version": "1.26.79",
    "canonical_steps": 70,
    "research_scope": "Static source, prior receipts and official public documentation. No EDA or repository tests were run.",
    "page_scope": "All 70 existing flow.html rows match canonical IDs; no additional PCB rows are present. A1-A9 and M1-M4 are included.",
    "default_mode": {
      "unspecified_mode": "default",
      "primary_tool_arms_per_step": 1,
      "priority": [
        "Applicable LibreLane step/flow",
        "Applicable OpenROAD tool",
        "Other proven applicable tool",
        "Own program only for uncovered work"
      ],
      "measured_override": "An exact-input, qualified result proving a better tool may override priority.",
      "ai_role": "Program chooses declared mode, applicability and resources; AI assists configuration, repair and evidence-grounded selection."
    },
    "ultra_mode": {
      "behavior": "Run multiple applicable tool arms in parallel within CPU/RAM/license limits, then select the best qualified candidate.",
      "qualification": "All mandatory proof, timing, physical and evidence contracts must pass on the selected candidate. A failed checker cannot be hidden by choosing another checker.",
      "engine_independence": "Different flow wrappers or strategies around the same engine are recorded as the same family. Complementary checks are not interchangeable outputs."
    },
    "status_legend": {
      "verified": "Source-integrated adapter at the pinned source. Historical executable presence is separate presence_evidence and never by itself an integrated arm or runtime/IC PASS.",
      "proposed": "Useful applicable capability; adapter, target coverage or exact runtime remains unverified.",
      "toolmissing": "Required executable/target backend or adapter has no current availability evidence.",
      "needslicensed": "Commercial license/equipment and integration required; not verified on fleet.",
      "external_physical": "External physical process; software can record evidence but cannot execute or prove it occurred."
    },
    "coverage_exclusions": [
      "Not an exhaustive catalog of all global EDA products; every previously reviewed useful tool and a bounded set of official alternatives is accounted for.",
      "No licensed tool, physical equipment, FPGA target backend or analog PDK adaptation is claimed installed without a receipt."
    ],
    "source_commit": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
    "as_of": "2026-09-30",
    "verified_at": "2026-09-30T02:49:04.051220+08:00",
    "evidence_scope": "SOURCE_INTEGRATION_AND_EXISTING_RECEIPTS; NOT_RUNTIME_OR_IC_SIGNOFF",
    "policy_globally_implemented": false,
    "policy_rollout_scope": "Eight chip_pad_ring class defaults are source-integrated; remaining policy targets are proposals. This snapshot does not claim default/ultra mode selection is fully implemented for all steps.",
    "capability_source_scope": "Official links establish public capabilities only; source call sites establish integration, and exact run receipts establish measured results.",
    "individual_current_binary_inventory": "NOT_MEASURED; do not transfer old0.3.76 presence claims automatically to current0.3.86",
    "runtime_verified_now": false,
    "preview_only": false,
    "deployment_images": [
      {
        "tag": "ghcr.io/vibeic/vibeic-eda:0.3.86",
        "image_id": "sha256:b0041a212abf6e59c475cca722ea0f3abdd7f0cf0c57bdd910d0947e2f53ee5a",
        "host_count": 1,
        "latest_receipt_at": "2026-09-30T01:40:23.376161+08:00",
        "scope": "Image identity only; individual tool binaries and IC runtime NOT_MEASURED"
      },
      {
        "tag": "ghcr.io/vibeic/vibeic-eda:0.3.86",
        "image_id": "sha256:45decf4a398e32a13e8a053d1be272871496a8e928dcad266ea7cd1386225275",
        "host_count": 3,
        "latest_receipt_at": "2026-09-30T01:40:23.380295+08:00",
        "scope": "Image identity only; individual tool binaries and IC runtime NOT_MEASURED"
      }
    ]
  },
  "tools": {
    "vibeic": {
      "name": "Vibe-IC program and evidence gates",
      "official_url": "https://github.com/vibeic/vibe-ic",
      "docs_url": "https://github.com/vibeic/vibe-ic",
      "kind": "orchestrator",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "vibeic",
      "official_capability_check": "LINK_ONLY_NOT_VERIFIED",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "librelane": {
      "name": "LibreLane",
      "official_url": "https://github.com/librelane/librelane",
      "docs_url": "https://librelane.readthedocs.io/en/latest/reference/step_config_vars.html",
      "kind": "orchestrator",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "librelane_composite",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "openroad": {
      "name": "OpenROAD",
      "official_url": "https://github.com/The-OpenROAD-Project/OpenROAD",
      "docs_url": "https://openroad.readthedocs.io/en/latest/",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "openroad",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "openroad_fork": {
      "name": "Vibe-IC OpenROAD fork",
      "official_url": "https://github.com/vibeic/OpenROAD",
      "docs_url": "https://openroad.readthedocs.io/en/latest/",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "openroad",
      "official_capability_check": "LINK_ONLY_NOT_VERIFIED",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "opensta": {
      "name": "OpenSTA",
      "official_url": "https://github.com/The-OpenROAD-Project/OpenSTA",
      "docs_url": "https://github.com/The-OpenROAD-Project/OpenSTA",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "opensta",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "opensta_fork": {
      "name": "Vibe-IC OpenSTA fork",
      "official_url": "https://github.com/vibeic/OpenSTA",
      "docs_url": "https://github.com/vibeic/OpenSTA",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "opensta",
      "official_capability_check": "LINK_ONLY_NOT_VERIFIED",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "yosys": {
      "name": "Yosys",
      "official_url": "https://github.com/YosysHQ/yosys",
      "docs_url": "https://yosyshq.readthedocs.io/projects/yosys/en/latest/",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "yosys",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "yosys_slang": {
      "name": "slang SystemVerilog frontend for Yosys",
      "official_url": "https://github.com/povik/sv-elab",
      "docs_url": "https://github.com/povik/sv-elab",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "yosys",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "abc": {
      "name": "ABC",
      "official_url": "https://github.com/berkeley-abc/abc",
      "docs_url": "https://github.com/berkeley-abc/abc",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "abc",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "sby": {
      "name": "SymbiYosys (SBY)",
      "official_url": "https://yosyshq.readthedocs.io/projects/sby/en/latest/reference.html",
      "docs_url": "https://yosyshq.readthedocs.io/projects/sby/en/latest/reference.html",
      "kind": "orchestrator",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "yosys_formal",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "eqy": {
      "name": "EQY",
      "official_url": "https://yosyshq.readthedocs.io/projects/eqy/en/latest/strategies.html",
      "docs_url": "https://yosyshq.readthedocs.io/projects/eqy/en/latest/strategies.html",
      "kind": "orchestrator",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "yosys_formal",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "yices": {
      "name": "Yices SMT solver",
      "official_url": "https://yices.csl.sri.com/",
      "docs_url": "https://yices.csl.sri.com/",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "yices",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "kepler": {
      "name": "Kepler-Formal",
      "official_url": "https://github.com/keplertech/kepler-formal",
      "docs_url": "https://github.com/keplertech/kepler-formal",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "kepler",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "verilator": {
      "name": "Verilator",
      "official_url": "https://verilator.org/guide/latest/",
      "docs_url": "https://verilator.org/guide/latest/",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "verilator",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "iverilog": {
      "name": "Icarus Verilog / vvp",
      "official_url": "https://steveicarus.github.io/iverilog/",
      "docs_url": "https://steveicarus.github.io/iverilog/",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "iverilog",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "cocotb": {
      "name": "cocotb",
      "official_url": "https://docs.cocotb.org/en/stable/",
      "docs_url": "https://docs.cocotb.org/en/stable/",
      "kind": "orchestrator",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "cocotb",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "pyuvm": {
      "name": "pyuvm / cocotb-coverage",
      "official_url": "https://github.com/pyuvm/pyuvm",
      "docs_url": "https://github.com/pyuvm/pyuvm",
      "kind": "orchestrator",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "pyuvm",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "verible": {
      "name": "Verible",
      "official_url": "https://github.com/chipsalliance/verible",
      "docs_url": "https://github.com/chipsalliance/verible",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "verible",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "slang": {
      "name": "slang / slang-tidy / pyslang",
      "official_url": "https://sv-lang.com/",
      "docs_url": "https://sv-lang.com/",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "slang",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "svck": {
      "name": "svck (AsFigo SystemVerilog linter)",
      "official_url": "https://github.com/AsFigo/svck",
      "docs_url": "https://github.com/AsFigo/svck",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "svck",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "quartus": {
      "name": "Quartus Prime",
      "official_url": "https://www.altera.com/products/development-tools/quartus/compare",
      "docs_url": "https://www.altera.com/products/development-tools/quartus/compare",
      "kind": "component",
      "integration_status": "toolmissing",
      "license": "proprietary_free_lite_or_paid_edition",
      "independence_family": "quartus",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "vivado": {
      "name": "AMD Vivado",
      "official_url": "https://docs.amd.com/r/en-US/ug910-vivado-getting-started/What-is-the-Vivado-Design-Suite",
      "docs_url": "https://docs.amd.com/r/en-US/ug910-vivado-getting-started/What-is-the-Vivado-Design-Suite",
      "kind": "component",
      "integration_status": "toolmissing",
      "license": "proprietary_device_dependent",
      "independence_family": "vivado",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "nextpnr": {
      "name": "nextpnr",
      "official_url": "https://github.com/YosysHQ/nextpnr",
      "docs_url": "https://github.com/YosysHQ/nextpnr",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "nextpnr",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "fault": {
      "name": "Fault DFT",
      "official_url": "https://github.com/AUCOHL/Fault",
      "docs_url": "https://github.com/AUCOHL/Fault",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "fault",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "magic": {
      "name": "Magic",
      "official_url": "https://github.com/RTimothyEdwards/magic",
      "docs_url": "https://github.com/RTimothyEdwards/magic",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "magic",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "netgen": {
      "name": "Netgen LVS",
      "official_url": "https://github.com/RTimothyEdwards/netgen",
      "docs_url": "https://github.com/RTimothyEdwards/netgen",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "netgen",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "klayout": {
      "name": "KLayout",
      "official_url": "https://www.klayout.de/",
      "docs_url": "https://www.klayout.de/doc/manual/lvs_intro.html",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "klayout",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "klayout_fork": {
      "name": "Vibe-IC KLayout extensions",
      "official_url": "https://github.com/vibeic/klayout",
      "docs_url": "https://github.com/vibeic/klayout",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "klayout",
      "official_capability_check": "LINK_ONLY_NOT_VERIFIED",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "openrcx": {
      "name": "OpenRCX",
      "official_url": "https://openroad.readthedocs.io/en/latest/main/src/rcx/README.html",
      "docs_url": "https://openroad.readthedocs.io/en/latest/main/src/rcx/README.html",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "openroad",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "kpex": {
      "name": "KLayout-PEX",
      "official_url": "https://github.com/iic-jku/klayout-pex",
      "docs_url": "https://iic-jku.github.io/klayout-pex-website/doc/doc.html",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "kpex",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "fastercap": {
      "name": "FasterCap",
      "official_url": "https://www.fastfieldsolvers.com/fastercap.htm",
      "docs_url": "https://www.fastfieldsolvers.com/fastercap.htm",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "fastercap",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "ngspice": {
      "name": "ngspice / XSPICE",
      "official_url": "https://ngspice.sourceforge.io/docs.html",
      "docs_url": "https://ngspice.sourceforge.io/docs.html",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "ngspice",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "xyce": {
      "name": "Xyce",
      "official_url": "https://xyce.sandia.gov/documentation-tutorials/",
      "docs_url": "https://xyce.sandia.gov/documentation-tutorials/",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "xyce",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "vacask": {
      "name": "VACASK",
      "official_url": "https://codeberg.org/arpadbuermen/VACASK",
      "docs_url": "https://fides.fe.uni-lj.si/~arpadb/SLOCHIP2026/SloChip2026.pdf",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "vacask",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "cace": {
      "name": "CACE",
      "official_url": "https://github.com/efabless/cace",
      "docs_url": "https://github.com/efabless/cace",
      "kind": "orchestrator",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "cace",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "xschem": {
      "name": "Xschem",
      "official_url": "https://xschem.sourceforge.io/stefan/xschem_man/xschem_man.html",
      "docs_url": "https://xschem.sourceforge.io/stefan/xschem_man/xschem_man.html",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "xschem",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "pyopus": {
      "name": "PyOPUS",
      "official_url": "https://fides.fe.uni-lj.si/pyopus/doc/index.html",
      "docs_url": "https://fides.fe.uni-lj.si/pyopus/doc/index.html",
      "kind": "orchestrator",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "pyopus",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "align": {
      "name": "ALIGN",
      "official_url": "https://github.com/ALIGN-analoglayout/ALIGN-public",
      "docs_url": "https://github.com/ALIGN-analoglayout/ALIGN-public",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "align",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "gdsfactory": {
      "name": "GDSFactory",
      "official_url": "https://github.com/gdsfactory/gdsfactory",
      "docs_url": "https://github.com/gdsfactory/gdsfactory",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "gdsfactory",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "glayout": {
      "name": "gLayout",
      "official_url": "https://github.com/ReaLLMASIC/gLayout",
      "docs_url": "https://github.com/ReaLLMASIC/gLayout",
      "kind": "component",
      "integration_status": "toolmissing",
      "license": "open_source",
      "independence_family": "gdsfactory",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "padring": {
      "name": "padring",
      "official_url": "https://github.com/YosysHQ/padring",
      "docs_url": "https://github.com/YosysHQ/padring",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "padring",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "fusesoc": {
      "name": "FuseSoC",
      "official_url": "https://fusesoc.readthedocs.io/en/stable/",
      "docs_url": "https://fusesoc.readthedocs.io/en/stable/",
      "kind": "orchestrator",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "fusesoc",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "siliconcompiler": {
      "name": "SiliconCompiler",
      "official_url": "https://www.siliconcompiler.com/",
      "docs_url": "https://www.siliconcompiler.com/",
      "kind": "orchestrator",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "siliconcompiler",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "spicebind": {
      "name": "SpiceBind",
      "official_url": "https://github.com/themperek/spicebind",
      "docs_url": "https://github.com/themperek/spicebind",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "ngspice_cosim",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "cocotbext_ams": {
      "name": "cocotbext-ams",
      "official_url": "https://github.com/VLSIDA/cocotbext-ams",
      "docs_url": "https://github.com/VLSIDA/cocotbext-ams",
      "kind": "orchestrator",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "ngspice_cosim",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "poppler": {
      "name": "Poppler pdftotext",
      "official_url": "https://poppler.freedesktop.org/",
      "docs_url": "https://poppler.freedesktop.org/",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "poppler",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "tesseract": {
      "name": "Tesseract",
      "official_url": "https://tesseract-ocr.github.io/tessdoc/",
      "docs_url": "https://tesseract-ocr.github.io/tessdoc/",
      "kind": "component",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "tesseract",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "ocrmypdf": {
      "name": "OCRmyPDF",
      "official_url": "https://ocrmypdf.readthedocs.io/en/latest/",
      "docs_url": "https://ocrmypdf.readthedocs.io/en/latest/",
      "kind": "orchestrator",
      "integration_status": "toolmissing",
      "license": "open_source",
      "independence_family": "tesseract",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "operator_precheck": {
      "name": "Submission operator precheck",
      "official_url": "https://github.com/wafer-space/gf180mcu-precheck",
      "docs_url": "https://github.com/wafer-space/gf180mcu-precheck",
      "kind": "orchestrator",
      "integration_status": "verified",
      "license": "open_source",
      "independence_family": "operator_precheck",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "pyvisa": {
      "name": "PyVISA / SCPI instruments",
      "official_url": "https://pyvisa.readthedocs.io/en/latest/",
      "docs_url": "https://pyvisa.readthedocs.io/en/latest/",
      "kind": "orchestrator",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "pyvisa",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "pystdf": {
      "name": "PySTDF",
      "official_url": "https://github.com/cmars/pystdf",
      "docs_url": "https://github.com/cmars/pystdf",
      "kind": "component",
      "integration_status": "toolmissing",
      "license": "open_source",
      "independence_family": "pystdf",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "ni_sts": {
      "name": "NI STS / PXI ATE",
      "official_url": "https://www.ni.com/en/solutions/semiconductor/high-volume-production-test.html",
      "docs_url": "https://www.ni.com/en/solutions/semiconductor/high-volume-production-test.html",
      "kind": "physical",
      "integration_status": "needslicensed",
      "license": "commercial_equipment_and_software",
      "independence_family": "ni_sts",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "teststand": {
      "name": "NI TestStand Semiconductor Module",
      "official_url": "https://www.ni.com/en-us/shop/product/teststand-semiconductor-module.html",
      "docs_url": "https://www.ni.com/en-us/shop/product/teststand-semiconductor-module.html",
      "kind": "orchestrator",
      "integration_status": "needslicensed",
      "license": "commercial_license",
      "independence_family": "teststand",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "fabrication": {
      "name": "External wafer fabrication service",
      "official_url": "https://wafer.space/",
      "docs_url": "https://wafer.space/",
      "kind": "physical",
      "integration_status": "external_physical",
      "license": "external_service",
      "independence_family": "fabrication",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "assembly": {
      "name": "External die/package assembly service",
      "official_url": "https://wafer.space/",
      "docs_url": "https://wafer.space/",
      "kind": "physical",
      "integration_status": "external_physical",
      "license": "external_service",
      "independence_family": "assembly",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "qualification": {
      "name": "Physical reliability qualification lab",
      "official_url": "https://www.jedec.org/standards-documents",
      "docs_url": "https://www.jedec.org/standards-documents",
      "kind": "physical",
      "integration_status": "external_physical",
      "license": "external_service_and_applicable_standards",
      "independence_family": "qualification",
      "official_capability_check": "LINK_ONLY_NOT_VERIFIED",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "tempus": {
      "name": "Cadence Tempus",
      "official_url": "https://www.cadence.com/en_US/home/tools/digital-design-and-signoff/silicon-signoff/tempus-timing-signoff-solution.html",
      "docs_url": "https://www.cadence.com/en_US/home/tools/digital-design-and-signoff/silicon-signoff/tempus-timing-signoff-solution.html",
      "kind": "component",
      "integration_status": "needslicensed",
      "license": "commercial_license",
      "independence_family": "tempus",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "redhawk": {
      "name": "Ansys RedHawk-SC",
      "official_url": "https://learninghub.ansys.com/c/ansys-redhawk-sc-getting-started/298",
      "docs_url": "https://learninghub.ansys.com/c/ansys-redhawk-sc-getting-started/298",
      "kind": "component",
      "integration_status": "needslicensed",
      "license": "commercial_license",
      "independence_family": "redhawk",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "calibre_perc": {
      "name": "Siemens Calibre PERC",
      "official_url": "https://eda.sw.siemens.com/en-US/ic/calibre-design/reliability-verification/perc",
      "docs_url": "https://eda.sw.siemens.com/en-US/ic/calibre-design/reliability-verification/perc",
      "kind": "component",
      "integration_status": "needslicensed",
      "license": "commercial_license",
      "independence_family": "calibre_perc",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "questa_cdc": {
      "name": "Siemens Questa CDC",
      "official_url": "https://resources.sw.siemens.com/en-US/fact-sheet-questa-clock-domain-crossing-fact-sheet/",
      "docs_url": "https://resources.sw.siemens.com/en-US/fact-sheet-questa-clock-domain-crossing-fact-sheet/",
      "kind": "component",
      "integration_status": "needslicensed",
      "license": "commercial_license",
      "independence_family": "questa_cdc",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "spectre": {
      "name": "Cadence Spectre / Spectre AMS",
      "official_url": "https://www.cadence.com/en_US/home/resources/datasheets/spectre-simulation-platform-ds.html",
      "docs_url": "https://www.cadence.com/en_US/home/resources/datasheets/spectre-simulation-platform-ds.html",
      "kind": "component",
      "integration_status": "needslicensed",
      "license": "commercial_license",
      "independence_family": "spectre",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "genus": {
      "name": "Cadence Genus",
      "official_url": "https://www.cadence.com/en_US/home/solutions/advanced-node-solutions/digital-advanced-node.html",
      "docs_url": "https://www.cadence.com/en_US/home/solutions/advanced-node-solutions/digital-advanced-node.html",
      "kind": "component",
      "integration_status": "needslicensed",
      "license": "commercial_license",
      "independence_family": "genus",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    },
    "covered": {
      "name": "Covered Verilog coverage",
      "official_url": "https://github.com/chiphackers/covered",
      "docs_url": "https://github.com/chiphackers/covered",
      "kind": "component",
      "integration_status": "proposed",
      "license": "open_source",
      "independence_family": "covered",
      "official_capability_check": "2026-09-30",
      "evidence_dates": [
        "2026-09-30 source snapshot",
        "historical receipts as individually cited"
      ],
      "runtime_verified_now": false,
      "local_binary_presence": "Historical receipt only unless deployment-specific command probe cited; no fresh probe in this task",
      "integration_status_scope": "Integration is step/arm-specific; catalog capability status is not proof that every listed arm has an adapter."
    }
  },
  "steps": [
    {
      "id": "D1",
      "title_en": "Phase 1 Doc Extraction (17 skills + dialogue entry → L1-L27)",
      "title_zh": "Phase 1 文件萃取（17 個 skill + 對話入口 → L1–L27）",
      "phase": "phase1",
      "limitations_en": "No EDA engine extracts complete L1-L27 design intent. PDF OCR is proposed; tool presence on the execution host is not freshly measured.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "vibeic",
          "poppler",
          "tesseract"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "D1",
          "programs": [
            "analog_a0_skip_forbidden_check",
            "constants_validation",
            "cross_layer_reference_check",
            "extraction_credited_by_prose_only_check",
            "input_docs_coverage_check",
            "integration_spec_audit",
            "l10_test_case_oracle_anchor_check",
            "l11_otp_content_consumer_contract_check",
            "l12_sequences_in_consumed_layer_check",
            "l13_bringup_contract_check",
            "l14_protocol_versioning_contract_check",
            "l15_encoding_tables_contract_check",
            "l16_compliance_properties_actionable_check",
            "l17_channel_catalog_consumer_contract_check",
            "l18_interconnect_topology_factuality_check",
            "l21_macro_supply_rail_declared_check",
            "l22_analog_verification_plan_emit",
            "l6_fsm_scaffold_actionable_check",
            "l7_debug_access_grounding_check",
            "l8_clock_period_actionability_check",
            "l8_sta_clock_period_design_owned_check",
            "l9_floorplan_contract_check",
            "l_doc_cross_consistency_check",
            "l_doc_parity_diff",
            "l_doc_todo_stub_count_check",
            "oracle_vector_gen",
            "phase1_all_l_docs_present_check",
            "phase1_coverage_report_present_check",
            "phase1_doc_one_shot_runner",
            "phase1_expert_parse_track",
            "phase1_expert_track_evidence_check",
            "phase1_planned_consumer_starved_check",
            "phase1_provenance_presence_check",
            "spec_review_lint"
          ],
          "capture_routes": [
            {
              "id": "phase1.spec_review",
              "program": "programs/spec_review_lint.py",
              "skill": "skills/spec-review/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/spec_review_lint.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/spec-review/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "D1",
          "programs": [
            "analog_a0_skip_forbidden_check",
            "constants_validation",
            "cross_layer_reference_check",
            "extraction_credited_by_prose_only_check",
            "input_docs_coverage_check",
            "integration_spec_audit",
            "l10_test_case_oracle_anchor_check",
            "l11_otp_content_consumer_contract_check",
            "l12_sequences_in_consumed_layer_check",
            "l13_bringup_contract_check",
            "l14_protocol_versioning_contract_check",
            "l15_encoding_tables_contract_check",
            "l16_compliance_properties_actionable_check",
            "l17_channel_catalog_consumer_contract_check",
            "l18_interconnect_topology_factuality_check",
            "l21_macro_supply_rail_declared_check",
            "l22_analog_verification_plan_emit",
            "l6_fsm_scaffold_actionable_check",
            "l7_debug_access_grounding_check",
            "l8_clock_period_actionability_check",
            "l8_sta_clock_period_design_owned_check",
            "l9_floorplan_contract_check",
            "l_doc_cross_consistency_check",
            "l_doc_parity_diff",
            "l_doc_todo_stub_count_check",
            "oracle_vector_gen",
            "phase1_all_l_docs_present_check",
            "phase1_coverage_report_present_check",
            "phase1_doc_one_shot_runner",
            "phase1_expert_parse_track",
            "phase1_expert_track_evidence_check",
            "phase1_planned_consumer_starved_check",
            "phase1_provenance_presence_check",
            "spec_review_lint"
          ],
          "capture_routes": [
            {
              "id": "phase1.spec_review",
              "program": "programs/spec_review_lint.py",
              "skill": "skills/spec-review/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/spec_review_lint.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/spec-review/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "vibeic"
        ],
        "primary_arm_count": 1,
        "label_en": "Source-bound extraction with file-appropriate text/OCR tools",
        "component_tool_ids": [
          "poppler",
          "tesseract"
        ],
        "status": "verified",
        "selection_reason": "No LibreLane/OpenROAD spec-extraction engine exists.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "poppler",
          "role": "producer",
          "applicability": "Text PDFs",
          "integration_status": "verified",
          "independence_family": "poppler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current source routes .pdf only to pdftotext.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "tesseract",
          "role": "producer",
          "applicability": "Raster images",
          "integration_status": "verified",
          "independence_family": "tesseract",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional environment-gated OCR, not a second PDF path.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "ocrmypdf",
          "role": "orchestrator",
          "applicability": "Scanned PDFs",
          "integration_status": "toolmissing",
          "independence_family": "tesseract",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "New rasterize/OCR adapter needed.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "0.5ic",
      "title_en": "Submission Template Ingest — the operator's slot geometry and fixtures (chip/IC path only)",
      "title_zh": "引入送件樣板（晶片路徑）",
      "phase": "phase1",
      "limitations_en": "Operator/template retrieval and authority stay outside EDA. Template copy is not validation of the requested submission slot.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "vibeic",
          "klayout"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "0.5ic",
          "programs": [
            "submission_template_answers",
            "submission_template_check",
            "submission_template_fetch",
            "submission_template_ingest",
            "tapeout_declaration_check",
            "tapeout_declaration_gen"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "0.5ic",
          "programs": [
            "submission_template_answers",
            "submission_template_check",
            "submission_template_fetch",
            "submission_template_ingest",
            "tapeout_declaration_check",
            "tapeout_declaration_gen"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "vibeic"
        ],
        "primary_arm_count": 1,
        "label_en": "Operator template ingestion and geometry refusal",
        "component_tool_ids": [
          "klayout"
        ],
        "status": "verified",
        "selection_reason": "No external engine covers operator fetch/normalization.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "klayout",
          "role": "checker",
          "applicability": "Operator slot/fixture size and geometry",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Operator-owned check_size script.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Odb.ApplyDEFTemplate / DIE_AREA / CORE_AREA",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Consumes validated geometry; does not retrieve or select the operator slot.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "1",
      "title_en": "Spec-to-RTL",
      "title_zh": "Spec-to-RTL",
      "phase": "phase2",
      "limitations_en": "Do not infer free design choices from generated RTL. Top-level SYNTH_PARAMETERS cannot reach arbitrary nested IP parameters.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "1",
          "programs": [
            "arith_declaration_emit",
            "catalog_synth_safe_params_check",
            "flow_step_output_content_check",
            "ip_catalog_pull",
            "spec_declaration_emit",
            "staged_rtl_reused_ip_manifest_emit"
          ],
          "capture_routes": [
            {
              "id": "phase2.rtl_gen",
              "program": "programs/rtl_hygiene_lint.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/rtl_hygiene_lint.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "1",
          "programs": [
            "arith_declaration_emit",
            "catalog_synth_safe_params_check",
            "flow_step_output_content_check",
            "ip_catalog_pull",
            "spec_declaration_emit",
            "staged_rtl_reused_ip_manifest_emit"
          ],
          "capture_routes": [
            {
              "id": "phase2.rtl_gen",
              "program": "programs/rtl_hygiene_lint.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/rtl_hygiene_lint.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "vibeic"
        ],
        "primary_arm_count": 1,
        "label_en": "Program-driven RTL authoring with AI assistance",
        "component_tool_ids": [
          "yosys"
        ],
        "status": "verified",
        "selection_reason": "No LibreLane/OpenROAD arbitrary spec-to-RTL authoring engine.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "fusesoc",
          "role": "orchestrator",
          "applicability": "IP dependency and fileset resolution",
          "integration_status": "proposed",
          "independence_family": "fusesoc",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Needs catalog .core support; not RTL authoring.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys",
          "role": "checker",
          "applicability": "Elaboration and synthesis feasibility",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Checks the produced RTL, not the missing specification.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "2",
      "title_en": "🔁 RTL validation (rewrite fidelity + lint + Quartus-unsafe patterns + RTL-bug claim schema)",
      "title_zh": "Lint（RTL 衛生 + Quartus-unsafe）",
      "phase": "phase2",
      "limitations_en": "Lint and equivalence are complementary obligations; select a candidate only after required fidelity proof and defect checks pass.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "vibeic",
          "yosys"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Own hygiene rules are default; optional pyslang semantic check and Yosys rewrite-fidelity proof are separate. Dedicated Verible/svck executables are not current adapters.",
        "optional_source_arms": [
          {
            "tool_ids": [
              "slang"
            ],
            "selection": "Optional pyslang path in rtl_hygiene_lint.py; not a mandatory primary linter",
            "source_file": "rtl_hygiene_lint.py",
            "line": 98
          }
        ],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "2",
          "programs": [
            "arith_ss_corner_risk_check",
            "counter_decode_lookahead_phase_check",
            "crosslayer_rewrite_equivalence",
            "crosslayer_rewrite_equivalence_check",
            "crosslayer_search_space",
            "flow_compliance_check",
            "fresh_agent_rtl_bug_density_metric",
            "internal_vs_external_timing_check",
            "l9_submodule_conformance_check",
            "memory_read_pipeline_check",
            "nba_addr_read_race_check",
            "periodic_timer_vs_rx_activity_check",
            "rom_init_lint",
            "rsp_example_otp_consistency_check",
            "rtl_bug_report_schema_check",
            "rtl_hygiene_lint",
            "slot_pad_budget_check",
            "spec_conformance_check",
            "spec_response_delay_check",
            "stage_on_pass_review",
            "threshold_range_contiguity_check"
          ],
          "capture_routes": [
            {
              "id": "phase2.rtl_gen",
              "program": "programs/rtl_hygiene_lint.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/rtl_hygiene_lint.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            },
            {
              "id": "phase2.rtl_gen.canonical_primitive",
              "program": "programs/canonical_primitive_synth.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/canonical_primitive_synth.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            },
            {
              "id": "phase2.formal",
              "program": "programs/formal_harness_gen.py",
              "skill": "skills/formal-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/formal_harness_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/formal-verify/SKILL.md"
            },
            {
              "id": "phase2.spec_conformance",
              "program": "programs/spec_conformance_check.py",
              "skill": "skills/spec-review/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/spec_conformance_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/spec-review/SKILL.md"
            },
            {
              "id": "phase2.lint",
              "program": "programs/rtl_hygiene_lint.py",
              "skill": "skills/rtl-review/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/rtl_hygiene_lint.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/rtl-review/SKILL.md"
            },
            {
              "id": "phase2.pad_budget",
              "program": "programs/slot_pad_budget_check.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/slot_pad_budget_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            },
            {
              "id": "phase2.final_audit",
              "program": "programs/flow_compliance_check.py",
              "skill": "skills/checkpoint-gate/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/flow_compliance_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/checkpoint-gate/SKILL.md"
            },
            {
              "id": "ppa.search_space",
              "program": "programs/crosslayer_search_space.py",
              "skill": "skills/ppa-optimize/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/crosslayer_search_space.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/ppa-optimize/SKILL.md"
            },
            {
              "id": "phase2.rewrite_equivalence",
              "program": "programs/crosslayer_rewrite_equivalence.py",
              "skill": "skills/phase2-rtl-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/crosslayer_rewrite_equivalence.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/phase2-rtl-verify/SKILL.md"
            },
            {
              "id": "flow.artefact_write_ownership",
              "program": "programs/flow_compliance_check.py",
              "skill": "skills/open-benchmark-methodology/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/flow_compliance_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/open-benchmark-methodology/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "2",
          "programs": [
            "arith_ss_corner_risk_check",
            "counter_decode_lookahead_phase_check",
            "crosslayer_rewrite_equivalence",
            "crosslayer_rewrite_equivalence_check",
            "crosslayer_search_space",
            "flow_compliance_check",
            "fresh_agent_rtl_bug_density_metric",
            "internal_vs_external_timing_check",
            "l9_submodule_conformance_check",
            "memory_read_pipeline_check",
            "nba_addr_read_race_check",
            "periodic_timer_vs_rx_activity_check",
            "rom_init_lint",
            "rsp_example_otp_consistency_check",
            "rtl_bug_report_schema_check",
            "rtl_hygiene_lint",
            "slot_pad_budget_check",
            "spec_conformance_check",
            "spec_response_delay_check",
            "stage_on_pass_review",
            "threshold_range_contiguity_check"
          ],
          "capture_routes": [
            {
              "id": "phase2.rtl_gen",
              "program": "programs/rtl_hygiene_lint.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/rtl_hygiene_lint.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            },
            {
              "id": "phase2.rtl_gen.canonical_primitive",
              "program": "programs/canonical_primitive_synth.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/canonical_primitive_synth.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            },
            {
              "id": "phase2.formal",
              "program": "programs/formal_harness_gen.py",
              "skill": "skills/formal-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/formal_harness_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/formal-verify/SKILL.md"
            },
            {
              "id": "phase2.spec_conformance",
              "program": "programs/spec_conformance_check.py",
              "skill": "skills/spec-review/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/spec_conformance_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/spec-review/SKILL.md"
            },
            {
              "id": "phase2.lint",
              "program": "programs/rtl_hygiene_lint.py",
              "skill": "skills/rtl-review/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/rtl_hygiene_lint.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/rtl-review/SKILL.md"
            },
            {
              "id": "phase2.pad_budget",
              "program": "programs/slot_pad_budget_check.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/slot_pad_budget_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            },
            {
              "id": "phase2.final_audit",
              "program": "programs/flow_compliance_check.py",
              "skill": "skills/checkpoint-gate/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/flow_compliance_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/checkpoint-gate/SKILL.md"
            },
            {
              "id": "ppa.search_space",
              "program": "programs/crosslayer_search_space.py",
              "skill": "skills/ppa-optimize/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/crosslayer_search_space.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/ppa-optimize/SKILL.md"
            },
            {
              "id": "phase2.rewrite_equivalence",
              "program": "programs/crosslayer_rewrite_equivalence.py",
              "skill": "skills/phase2-rtl-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/crosslayer_rewrite_equivalence.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/phase2-rtl-verify/SKILL.md"
            },
            {
              "id": "flow.artefact_write_ownership",
              "program": "programs/flow_compliance_check.py",
              "skill": "skills/open-benchmark-methodology/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/flow_compliance_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/open-benchmark-methodology/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane Verilator lint and elaboration audit",
        "component_tool_ids": [
          "verilator",
          "yosys"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Verilator.Lint + Yosys.JsonHeader",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "One flow with complementary lint/elaboration checks.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "verilator",
          "role": "checker",
          "applicability": "RTL lint",
          "integration_status": "verified",
          "independence_family": "verilator",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Direct adapter uses the same Verilator engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "verible",
          "role": "checker",
          "applicability": "Style/parse diagnostics",
          "integration_status": "proposed",
          "independence_family": "verible",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Parser and style lint. A clean style report does not prove functional correctness or eliminate all elaboration defects.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "slang",
          "role": "checker",
          "applicability": "Semantic elaboration / slang-tidy",
          "integration_status": "proposed",
          "independence_family": "slang",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Semantic SystemVerilog elaboration and AST APIs. slang-tidy shares the slang family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "svck",
          "role": "checker",
          "applicability": "Additional lint diagnostics",
          "integration_status": "proposed",
          "independence_family": "svck",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Additional lint rule set; rule coverage and target-project diagnostics need integration.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys",
          "role": "checker",
          "applicability": "Rewrite equivalence via equiv_*",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current fidelity engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "eqy",
          "role": "checker",
          "applicability": "Partitioned rewrite equivalence",
          "integration_status": "verified",
          "independence_family": "yosys_formal",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Shared Yosys preprocessing; alternatives differ in proof partitioning.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "kepler",
          "role": "checker",
          "applicability": "RTL sequential equivalence",
          "integration_status": "proposed",
          "independence_family": "kepler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "LEC/SEC with distinct frontend/transition-system handling. Actual project proof coverage and resource use remain to be measured.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "checker",
          "applicability": "sv_elaborate command presence only; integration semantics NOT_MEASURED",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "3",
      "title_en": "🔁 CDC / RDC check",
      "title_zh": "CDC / RDC 檢查",
      "phase": "phase2",
      "limitations_en": "Verilator --cdc was removed. Structural connectivity alone does not establish reconvergence/metastability or full RDC signoff.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "3",
          "programs": [
            "cdc_async_input_check",
            "cdc_crossing_check",
            "clock_domain_reg_crossing_check",
            "reset_dependency_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "3",
          "programs": [
            "cdc_async_input_check",
            "cdc_crossing_check",
            "clock_domain_reg_crossing_check",
            "reset_dependency_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane netlist facts plus CDC/RDC intent checks",
        "component_tool_ids": [
          "yosys",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Yosys.JsonHeader structural clock/reset facts",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Frontend only; Vibe-IC supplies the declared-domain rules.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys",
          "role": "producer",
          "applicability": "Elaborated flop clock/reset connectivity",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Not a full CDC engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "slang",
          "role": "producer",
          "applicability": "AST/elaborated hierarchy",
          "integration_status": "proposed",
          "independence_family": "slang",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Semantic SystemVerilog elaboration and AST APIs. slang-tidy shares the slang family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "questa_cdc",
          "role": "checker",
          "applicability": "Dedicated CDC analysis",
          "integration_status": "needslicensed",
          "independence_family": "questa_cdc",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional dedicated CDC engine; no fleet license/integration. Reset-domain coverage would need its specific RDC product/setup.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "4",
      "title_en": "🔁 Simulation (testbench-based + L10/L12 coverage + Verilator coverage)",
      "title_zh": "模擬（testbench + coverage）",
      "phase": "phase2",
      "limitations_en": "Coverage merge semantics vary: lcov line coverage can merge file:line, while branch/toggle points need explicit hierarchy handling.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "iverilog",
          "verilator",
          "cocotb",
          "pyuvm"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Source supports Icarus and explicitly selected Verilator simulator paths plus cocotb/coverage scaffolding; this is not an assertion that all engines run by default.",
        "optional_source_arms": [
          {
            "tool_ids": [
              "verilator"
            ],
            "selection": "Explicit compiled-simulator/coverage path; not simultaneous default simulation",
            "source_file": "functional_sim_run.py"
          }
        ],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "4",
          "programs": [
            "behavioral_evidence_per_spec_item_check",
            "coverage_closure",
            "dispatcher_awake_gate_check",
            "functional_state_transition_coverage_check",
            "l10_tb_conformance_check",
            "l12_tb_coverage_check",
            "professional_tb_check",
            "professional_tb_gen",
            "protocol_turnaround_audit",
            "rtl_unit_test_coverage_check",
            "testbench_gen",
            "vacuous_testbench_check",
            "verilator_coverage_measure"
          ],
          "capture_routes": [
            {
              "id": "phase2.full_stack_tb",
              "program": "programs/professional_tb_gen.py",
              "skill": "skills/testbench-gen/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/professional_tb_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/testbench-gen/SKILL.md"
            },
            {
              "id": "phase2.tb_substance",
              "program": "programs/vacuous_testbench_check.py",
              "skill": "skills/testbench-gen/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/vacuous_testbench_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/testbench-gen/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "4",
          "programs": [
            "behavioral_evidence_per_spec_item_check",
            "coverage_closure",
            "dispatcher_awake_gate_check",
            "functional_state_transition_coverage_check",
            "l10_tb_conformance_check",
            "l12_tb_coverage_check",
            "professional_tb_check",
            "professional_tb_gen",
            "protocol_turnaround_audit",
            "rtl_unit_test_coverage_check",
            "testbench_gen",
            "vacuous_testbench_check",
            "verilator_coverage_measure"
          ],
          "capture_routes": [
            {
              "id": "phase2.full_stack_tb",
              "program": "programs/professional_tb_gen.py",
              "skill": "skills/testbench-gen/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/professional_tb_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/testbench-gen/SKILL.md"
            },
            {
              "id": "phase2.tb_substance",
              "program": "programs/vacuous_testbench_check.py",
              "skill": "skills/testbench-gen/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/vacuous_testbench_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/testbench-gen/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "iverilog"
        ],
        "primary_arm_count": 1,
        "label_en": "Icarus simulation with substantive testbench grading",
        "component_tool_ids": [
          "cocotb"
        ],
        "status": "verified",
        "selection_reason": "LibreLane has no substantive functional-testbench simulator step.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "iverilog",
          "role": "producer",
          "applicability": "Event-driven HDL simulation",
          "integration_status": "verified",
          "independence_family": "iverilog",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current default; TB obligations must be executed.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "verilator",
          "role": "producer",
          "applicability": "Compiled HDL simulation and coverage",
          "integration_status": "verified",
          "independence_family": "verilator",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Independent simulator; language/timing semantics must match.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "cocotb",
          "role": "orchestrator",
          "applicability": "Python testbench execution",
          "integration_status": "verified",
          "independence_family": "cocotb",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Python testbench framework; uses an HDL simulator, not an independent simulation engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "pyuvm",
          "role": "orchestrator",
          "applicability": "UVM-style stimulus and functional coverage",
          "integration_status": "verified",
          "independence_family": "pyuvm",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Testbench architecture and functional coverage libraries; simulator is still Icarus/Verilator.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "covered",
          "role": "checker",
          "applicability": "Independent waveform/VPI code-coverage analysis",
          "integration_status": "proposed",
          "independence_family": "covered",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Historical installation only; no current adapter or merge proof.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "5",
      "title_en": "🔁 Formal verification (assertions proved + bit-level full-stack phase2/stage1/tb)",
      "title_zh": "Formal 驗證（assertions）",
      "phase": "phase2",
      "limitations_en": "Every assertion and non-vacuity obligation must be bound to the same RTL/input assumptions. Solver changes are not independent specification evidence.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "sby",
          "abc",
          "yosys",
          "iverilog"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "5",
          "programs": [
            "assertion_property_check",
            "bit_level_full_stack_tb_check",
            "formal_harness_gen",
            "formal_proof_evidence_check",
            "formal_property_run",
            "full_stack_functional_tb"
          ],
          "capture_routes": [
            {
              "id": "phase2.reference_tb",
              "program": "programs/bit_level_full_stack_tb_check.py",
              "skill": "skills/phase2-rtl-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/bit_level_full_stack_tb_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/phase2-rtl-verify/SKILL.md"
            },
            {
              "id": "phase2.formal",
              "program": "programs/formal_harness_gen.py",
              "skill": "skills/formal-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/formal_harness_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/formal-verify/SKILL.md"
            },
            {
              "id": "phase2.full_stack_tb",
              "program": "programs/professional_tb_gen.py",
              "skill": "skills/testbench-gen/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/professional_tb_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/testbench-gen/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "5",
          "programs": [
            "assertion_property_check",
            "bit_level_full_stack_tb_check",
            "formal_harness_gen",
            "formal_proof_evidence_check",
            "formal_property_run",
            "full_stack_functional_tb"
          ],
          "capture_routes": [
            {
              "id": "phase2.reference_tb",
              "program": "programs/bit_level_full_stack_tb_check.py",
              "skill": "skills/phase2-rtl-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/bit_level_full_stack_tb_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/phase2-rtl-verify/SKILL.md"
            },
            {
              "id": "phase2.formal",
              "program": "programs/formal_harness_gen.py",
              "skill": "skills/formal-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/formal_harness_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/formal-verify/SKILL.md"
            },
            {
              "id": "phase2.full_stack_tb",
              "program": "programs/professional_tb_gen.py",
              "skill": "skills/testbench-gen/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/professional_tb_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/testbench-gen/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "sby"
        ],
        "primary_arm_count": 1,
        "label_en": "SBY unbounded proof with a supported engine",
        "component_tool_ids": [
          "yosys",
          "abc"
        ],
        "status": "verified",
        "selection_reason": "No equivalent LibreLane assertion-proof flow.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "sby",
          "role": "orchestrator",
          "applicability": "ABC PDR unbounded proof",
          "integration_status": "verified",
          "independence_family": "yosys_formal",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Historical current proof path.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "abc",
          "role": "checker",
          "applicability": "PDR / BMC solver backend",
          "integration_status": "verified",
          "independence_family": "abc",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "BMC is not unbounded proof.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yices",
          "role": "checker",
          "applicability": "SMTBMC k-induction",
          "integration_status": "proposed",
          "independence_family": "yices",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Measured prove mode in historical image; alternate formal algorithm.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "6",
      "title_en": "FPGA early prototype + verification report audit",
      "title_zh": "FPGA 早期原型 + 稽核",
      "phase": "phase2",
      "limitations_en": "Target board/JTAG and a matching tool/device database are required. Current fleet environment was unavailable in the reviewed evidence.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "quartus"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "6",
          "programs": [
            "auto_diagnostic_led_synth",
            "debug_first_pass",
            "fpga_led_probe_lint",
            "fpga_test_harness_gen",
            "fpga_verification_audit",
            "quartus_map_audit"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "6",
          "programs": [
            "auto_diagnostic_led_synth",
            "debug_first_pass",
            "fpga_led_probe_lint",
            "fpga_test_harness_gen",
            "fpga_verification_audit",
            "quartus_map_audit"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "quartus"
        ],
        "primary_arm_count": 1,
        "label_en": "Quartus compile for the declared FPGA target",
        "component_tool_ids": [],
        "status": "toolmissing",
        "selection_reason": "LibreLane/OpenROAD implement ASICs, not this FPGA target.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "quartus",
          "role": "producer",
          "applicability": "Compile, fit and SOF for supported Altera devices",
          "integration_status": "toolmissing",
          "independence_family": "quartus",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Device-specific compile/program/debug. Lite supports selected families including MAX 10 without a license file; install, board and JTAG access are still required.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys",
          "role": "checker",
          "applicability": "synth_intel MAX 10 netlist cross-check",
          "integration_status": "proposed",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Synthesis only; not a SOF producer.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "nextpnr",
          "role": "producer",
          "applicability": "Supported open FPGA families",
          "integration_status": "proposed",
          "independence_family": "nextpnr",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Installed iCE40 backend cannot replace MAX 10 implementation.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vivado",
          "role": "producer",
          "applicability": "AMD FPGA implementation",
          "integration_status": "toolmissing",
          "independence_family": "vivado",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Different device target, not a drop-in alternative.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "7",
      "title_en": "Constraint setup (SDC + PVT matrix)",
      "title_zh": "Constraint setup（SDC + PVT）",
      "phase": "phase2",
      "limitations_en": "Keep source-bound multi-clock/IO budgets and unit/corner authority. Do not treat a config value as proof it reached timing analysis.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "7",
          "programs": [
            "l21_to_upf_emit",
            "macro_non_seq_arc_contract_check",
            "pvt_matrix_check",
            "sdc_syntax_check",
            "stage1_compliance",
            "stage_on_pass_review"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "7",
          "programs": [
            "l21_to_upf_emit",
            "macro_non_seq_arc_contract_check",
            "pvt_matrix_check",
            "sdc_syntax_check",
            "stage1_compliance",
            "stage_on_pass_review"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane base SDC and declared PVT configuration",
        "component_tool_ids": [
          "opensta",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Misc.LoadBaseSDC + STA_CORNERS",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Single-clock stock recipe needs declared multi-clock extension.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta",
          "role": "checker",
          "applicability": "Read back units/clocks/limits",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Validates applied constraints; does not invent timing intent.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "8",
      "title_en": "🔁 SDC validation",
      "title_zh": "SDC 驗證",
      "phase": "phase2",
      "limitations_en": "Parser success does not prove all endpoints/declared modes are constrained; keep nonempty and coverage evidence.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "8",
          "programs": [
            "derived_clock_sdc_required_check",
            "sdc_syntax_check",
            "sdc_validator_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "8",
          "programs": [
            "derived_clock_sdc_required_check",
            "sdc_syntax_check",
            "sdc_validator_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane SDC checks and timing-engine validation",
        "component_tool_ids": [
          "opensta",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "OpenROAD.CheckSDCFiles / STAPrePNR read_sdc",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory complement to Vibe-IC intent checks.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta",
          "role": "checker",
          "applicability": "read_sdc / check_setup",
          "integration_status": "proposed",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Direct OpenSTA is the same timing family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "tempus",
          "role": "checker",
          "applicability": "Optional independent SDC/timing analysis",
          "integration_status": "needslicensed",
          "independence_family": "tempus",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional independent commercial STA/SI arm; requires license, qualified libraries and an integration adapter.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "9",
      "title_en": "Synthesis (Yosys → mapped netlist)",
      "title_zh": "合成（Yosys → 映射網表）",
      "phase": "phase2",
      "limitations_en": "Each synthesized candidate needs equivalence and cell/area/driver evidence; strategy sweeps are one engine family.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "yosys",
          "abc",
          "yosys_slang"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "9",
          "programs": [
            "area_total_vs_budget_check",
            "pdk_consistency_check",
            "provenance_check",
            "synth_netlist_check",
            "synth_wrapper_gen"
          ],
          "capture_routes": [
            {
              "id": "phase2.synth_netlist_check",
              "program": "programs/synth_netlist_check.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/synth_netlist_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "9",
          "programs": [
            "area_total_vs_budget_check",
            "pdk_consistency_check",
            "provenance_check",
            "synth_netlist_check",
            "synth_wrapper_gen"
          ],
          "capture_routes": [
            {
              "id": "phase2.synth_netlist_check",
              "program": "programs/synth_netlist_check.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/synth_netlist_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane Yosys.Synthesis",
        "component_tool_ids": [
          "yosys",
          "abc"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Yosys.Synthesis",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Primary mapped-netlist arm; preserve catalog parameters and synthesis intent.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys",
          "role": "producer",
          "applicability": "Direct synthesis / alternate strategies",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same engine as LibreLane Yosys.Synthesis.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys_slang",
          "role": "producer",
          "applicability": "SystemVerilog elaboration frontend",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Shares Yosys mapping backend.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "abc",
          "role": "producer",
          "applicability": "Logic technology mapping",
          "integration_status": "verified",
          "independence_family": "abc",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Backend only.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "genus",
          "role": "producer",
          "applicability": "Independent commercial synthesis",
          "integration_status": "needslicensed",
          "independence_family": "genus",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Optional independent synthesis arm; no installation, license or result equivalence receipt.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "clock_gating; SYNTH_CLOCKGATE_MIN_WIDTH; qualified ICG mapping",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "10",
      "title_en": "🔁 Pre-layout STA (multi-corner)",
      "title_zh": "Pre-layout STA（多角）",
      "phase": "phase2",
      "limitations_en": "Pre-layout parasitics are estimates. Required corners, units and clock/IO constraints must be actually loaded.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "opensta"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "10",
          "programs": [
            "sta_report_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "10",
          "programs": [
            "sta_report_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane OpenROAD.STAPrePNR",
        "component_tool_ids": [
          "opensta"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Multi-corner pre-layout timing",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Primary tool receipt, not post-layout signoff.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta",
          "role": "checker",
          "applicability": "Standalone pre-layout STA",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same OpenSTA family as embedded timing.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "tempus",
          "role": "checker",
          "applicability": "Optional independent pre-layout STA",
          "integration_status": "needslicensed",
          "independence_family": "tempus",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional independent commercial STA/SI arm; requires license, qualified libraries and an integration adapter.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "11",
      "title_en": "DFT insertion (scan chain + ATPG + at-speed + BSDL)",
      "title_zh": "DFT 插入（scan + ATPG + BSDL）",
      "phase": "phase2",
      "limitations_en": "Stuck-at ATPG, at-speed LOC, BSDL and scan connectivity are different deliverables. None may be filled by a generic Fault process rc.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "fault",
          "yosys",
          "iverilog"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "11",
          "programs": [
            "bsdl_emit",
            "dft_atpg_coverage_check",
            "dft_signoff_check",
            "fault_atpg_run"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "11",
          "programs": [
            "bsdl_emit",
            "dft_atpg_coverage_check",
            "dft_signoff_check",
            "fault_atpg_run"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "fault"
        ],
        "primary_arm_count": 1,
        "label_en": "Fault scan and ATPG, with explicit missing-obligation checks",
        "component_tool_ids": [
          "yosys",
          "iverilog"
        ],
        "status": "verified",
        "selection_reason": "LibreLane has no complete DFT/ATPG step.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "fault",
          "role": "producer",
          "applicability": "Scan insertion / stuck-at ATPG / TAP",
          "integration_status": "verified",
          "independence_family": "fault",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current integrated tool family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "DFT scan replacement and chain planning",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "No complete ATPG or BSDL coverage.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "iverilog",
          "role": "checker",
          "applicability": "Fault pattern simulation",
          "integration_status": "verified",
          "independence_family": "iverilog",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Complementary coverage proof.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "FS1",
      "title_en": "ISO-26262 FMEDA diagnostic-coverage (fault-injection; safety designs only)",
      "title_zh": "ISO-26262 FMEDA 診斷覆蓋率",
      "phase": "phase2",
      "limitations_en": "Safety designs only. A fault injector does not establish failure-rate authority, ASIL allocation or complete FMEDA.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "iverilog"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "FS1",
          "programs": [
            "fmeda_coverage_check",
            "fmeda_fault_injection_coverage"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "FS1",
          "programs": [
            "fmeda_coverage_check",
            "fmeda_fault_injection_coverage"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "yosys"
        ],
        "primary_arm_count": 1,
        "label_en": "Yosys mutation fault list with graded injection",
        "component_tool_ids": [
          "iverilog",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "No LibreLane FMEDA engine; use proven fault generation plus the safety grader.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "yosys",
          "role": "producer",
          "applicability": "mutate-generated fault population",
          "integration_status": "proposed",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Fault-list arm, not the safety policy.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "iverilog",
          "role": "checker",
          "applicability": "Injected-fault functional simulation",
          "integration_status": "verified",
          "independence_family": "iverilog",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current injection execution.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "sby",
          "role": "checker",
          "applicability": "Formal fault-effect checking",
          "integration_status": "verified",
          "independence_family": "yosys_formal",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Supports prove with ABC PDR and SMTBMC induction. Bounded-only results do not discharge an unbounded proof obligation.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "FMEDA diagnostic coverage and safety intent",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "DT1",
      "title_en": "Transition-delay-fault (at-speed LOC) ATPG",
      "title_zh": "Transition-delay-fault ATPG（at-speed LOC）",
      "phase": "phase2",
      "limitations_en": "Require controllability, launch-on-capture chronology and detected/undetected population; stuck-at coverage is not transition coverage.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "fault",
          "yosys"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "DT1",
          "programs": [
            "transition_coverage_check",
            "transition_fault_atpg_run"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "DT1",
          "programs": [
            "transition_coverage_check",
            "transition_fault_atpg_run"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "yosys"
        ],
        "primary_arm_count": 1,
        "label_en": "SAT-based LOC transition ATPG",
        "component_tool_ids": [
          "fault",
          "vibeic"
        ],
        "status": "verified",
        "selection_reason": "No LibreLane or OpenROAD LOC ATPG engine.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "yosys",
          "role": "producer",
          "applicability": "Two-frame transition-fault test generation",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current fork-backed SAT flow.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "fault",
          "role": "producer",
          "applicability": "Scan cut/preparation",
          "integration_status": "verified",
          "independence_family": "fault",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Does not generate the LOC obligation by itself.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "iverilog",
          "role": "checker",
          "applicability": "At-speed pattern effect simulation",
          "integration_status": "verified",
          "independence_family": "iverilog",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Required launch/capture chronology.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "12",
      "title_en": "Post-DFT optimization (resynth / buffering)",
      "title_zh": "Post-DFT 最佳化",
      "phase": "phase2",
      "limitations_en": "Resynthesis cannot remove or corrupt scan structure. A clean netlist is not proof of scan preservation.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "yosys"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "12",
          "programs": [
            "dft_post_optimization_scan_survival_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "12",
          "programs": [
            "dft_post_optimization_scan_survival_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane Yosys.Resynthesis where scan topology is preserved",
        "component_tool_ids": [
          "yosys"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Yosys.Resynthesis",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Must carry scan/reset/dont-touch contracts; not adopted until equivalence proven.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys",
          "role": "producer",
          "applicability": "opt_clean / post-DFT optimization",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current default; same synthesis engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "repair_design / resynth",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Physical buffering is a different downstream action.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "13",
      "title_en": "🔁 Equivalence check (RTL ≡ post-DFT netlist)",
      "title_zh": "等效性檢查 LEC（RTL ≡ 網表）",
      "phase": "phase2",
      "limitations_en": "Ports, Liberty cells, reset and sequential boundaries must be bound. Unknown/unproven/timeout is not PASS; installed SMT solvers must match strategy config.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "yosys"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "13",
          "programs": [
            "lec_equivalence_check"
          ],
          "capture_routes": [
            {
              "id": "phase2.lec",
              "program": "programs/lec_equivalence_check.py",
              "skill": "skills/equivalence-check/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/lec_equivalence_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/equivalence-check/SKILL.md"
            },
            {
              "id": "phase2.lec_execution",
              "program": "programs/lec_run.py",
              "skill": "skills/equivalence-check/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/lec_run.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/equivalence-check/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "13",
          "programs": [
            "lec_equivalence_check"
          ],
          "capture_routes": [
            {
              "id": "phase2.lec",
              "program": "programs/lec_equivalence_check.py",
              "skill": "skills/equivalence-check/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/lec_equivalence_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/equivalence-check/SKILL.md"
            },
            {
              "id": "phase2.lec_execution",
              "program": "programs/lec_run.py",
              "skill": "skills/equivalence-check/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/lec_run.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/equivalence-check/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane Yosys.EQY equivalence arm",
        "component_tool_ids": [
          "eqy",
          "yosys"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Yosys.EQY",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "One primary proof arm; select supported strategy and require all partitions proven.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "eqy",
          "role": "checker",
          "applicability": "Partitioned equivalence",
          "integration_status": "verified",
          "independence_family": "yosys_formal",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same EQY/Yosys preprocessing as LibreLane.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys",
          "role": "checker",
          "applicability": "equiv_make / equiv_simple / equiv_induct",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current alternative proof algorithm.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "kepler",
          "role": "checker",
          "applicability": "LEC or sequential equivalence",
          "integration_status": "proposed",
          "independence_family": "kepler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "LEC/SEC with distinct frontend/transition-system handling. Actual project proof coverage and resource use remain to be measured.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "A1",
      "title_en": "Analog Spec Extraction",
      "title_zh": "類比規格萃取",
      "phase": "analog",
      "limitations_en": "Design specifications remain source-bound choices; CACE and SPICE consume them, not infer missing requirements.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A1",
          "programs": [
            "analog_a1_spec_extract_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A1",
          "programs": [
            "analog_a1_spec_extract_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "vibeic"
        ],
        "primary_arm_count": 1,
        "label_en": "Source-bound analog specification extraction",
        "component_tool_ids": [],
        "status": "verified",
        "selection_reason": "No LibreLane/OpenROAD analog-spec extractor.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Analog units, corners, performance limits and evidence",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "cace",
          "role": "orchestrator",
          "applicability": "Consume the resulting characterization datasheet",
          "integration_status": "proposed",
          "independence_family": "cace",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "No arbitrary analog-spec extraction capability.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "A2",
      "title_en": "Analog Topology Selection",
      "title_zh": "拓樸選擇",
      "phase": "analog",
      "limitations_en": "Topology selection remains explicit program/AI design work. PyOPUS optimizes parameters; it does not prove arbitrary topology choice.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A2",
          "programs": [
            "analog_a2_topology_select_check"
          ],
          "capture_routes": [
            {
              "id": "analog.A2_topology",
              "program": "programs/analog_a2_topology_select_check.py",
              "skill": "skills/analog-topology-select/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a2_topology_select_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/analog-topology-select/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A2",
          "programs": [
            "analog_a2_topology_select_check"
          ],
          "capture_routes": [
            {
              "id": "analog.A2_topology",
              "program": "programs/analog_a2_topology_select_check.py",
              "skill": "skills/analog-topology-select/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a2_topology_select_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/analog-topology-select/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "vibeic"
        ],
        "primary_arm_count": 1,
        "label_en": "Explicit topology choice with the existing bounded sizing path",
        "component_tool_ids": [
          "ngspice"
        ],
        "status": "verified",
        "selection_reason": "No source-integrated external topology selector is proven for the current circuit. PyOPUS is a proposed parameter optimizer, not a replacement for topology selection; adopt it only after compatible simulator/target measurements.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "pyopus",
          "role": "orchestrator",
          "applicability": "Bounded sizing/optimization",
          "integration_status": "proposed",
          "independence_family": "pyopus",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Adapter and import need verification.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "ngspice",
          "role": "checker",
          "applicability": "Candidate circuit performance",
          "integration_status": "verified",
          "independence_family": "ngspice",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "No automatic unrestricted topology selector.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "xyce",
          "role": "checker",
          "applicability": "Independent candidate simulation",
          "integration_status": "proposed",
          "independence_family": "xyce",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Independent circuit solver with external coupling and mixed-signal interfaces. PDK model compatibility is not assumed from installation.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "A3",
      "title_en": "Analog Netlist Generation",
      "title_zh": "網表產生",
      "phase": "analog",
      "limitations_en": "Automatic topology-to-netlist translation still needs Vibe-IC intent conversion; xschem is not a drop-in generator for every current topology.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "ngspice"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Runner analog_one_shot_runner.py:1048-1068 passes --verify-sim to analog_a3_netlist_emit.py; ngspice is validation, own program is netlist producer.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A3",
          "programs": [
            "analog_a3_netlist_gen_check",
            "analog_netlist_pdk_check"
          ],
          "capture_routes": [
            {
              "id": "analog.A3_netlist_gen",
              "program": "programs/analog_a3_netlist_gen_check.py",
              "skill": "skills/analog-netlist-gen/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a3_netlist_gen_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/analog-netlist-gen/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A3",
          "programs": [
            "analog_a3_netlist_gen_check",
            "analog_netlist_pdk_check"
          ],
          "capture_routes": [
            {
              "id": "analog.A3_netlist_gen",
              "program": "programs/analog_a3_netlist_gen_check.py",
              "skill": "skills/analog-netlist-gen/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a3_netlist_gen_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/analog-netlist-gen/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "vibeic"
        ],
        "primary_arm_count": 1,
        "label_en": "Current topology-to-SPICE producer with ngspice validation",
        "component_tool_ids": [
          "ngspice"
        ],
        "status": "verified",
        "selection_reason": "The source-integrated netlist emitter covers the current topology. Xschem requires an authored schematic/adapter and has no same-input producer evidence; retain it as an ultra proposed netlisting arm.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "xschem",
          "role": "producer",
          "applicability": "Schematic-to-SPICE netlist",
          "integration_status": "proposed",
          "independence_family": "xschem",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Only if a valid schematic or adapter exists.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "ngspice",
          "role": "checker",
          "applicability": "Parse and execute emitted SPICE",
          "integration_status": "verified",
          "independence_family": "ngspice",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current circuit generator is own code.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "xyce",
          "role": "checker",
          "applicability": "Model/netlist compatibility cross-check",
          "integration_status": "proposed",
          "independence_family": "xyce",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Independent circuit solver with external coupling and mixed-signal interfaces. PDK model compatibility is not assumed from installation.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "A4",
      "title_en": "Analog Corner Sweep (PVT)",
      "title_zh": "角點掃描（PVT）",
      "phase": "analog",
      "limitations_en": "Full corner/stimulus coverage and ENOB/coherent-tone grading stay mandatory. A second orchestrator driving ngspice is not another simulator.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "ngspice"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A4",
          "programs": [
            "analog_a4_corner_sweep_check",
            "analog_adc_enob_corner_check",
            "analog_corner_lib_realism_lint",
            "analog_sigma_delta_gain_floor_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A4",
          "programs": [
            "analog_a4_corner_sweep_check",
            "analog_adc_enob_corner_check",
            "analog_corner_lib_realism_lint",
            "analog_sigma_delta_gain_floor_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "ngspice"
        ],
        "primary_arm_count": 1,
        "label_en": "Current ngspice corner sweep with mandatory performance grading",
        "component_tool_ids": [
          "vibeic"
        ],
        "status": "verified",
        "selection_reason": "The current ngspice sweep is source-integrated. CACE remains useful proposed characterization orchestration, but changing orchestration has no measured better target result yet.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "cace",
          "role": "orchestrator",
          "applicability": "PVT/Monte Carlo sweep and grading",
          "integration_status": "proposed",
          "independence_family": "cace",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Shares its selected simulator family; not an independent solver.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "ngspice",
          "role": "producer",
          "applicability": "Analog corner simulation",
          "integration_status": "verified",
          "independence_family": "ngspice",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current default analog solver.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "xyce",
          "role": "producer",
          "applicability": "Independent corner simulation",
          "integration_status": "proposed",
          "independence_family": "xyce",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Match models, stimuli and grader.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vacask",
          "role": "producer",
          "applicability": "Alternate analog solver",
          "integration_status": "proposed",
          "independence_family": "vacask",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Compatible model/netlist adaptation required.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "pyopus",
          "role": "orchestrator",
          "applicability": "Sizing/MC/corner orchestration",
          "integration_status": "proposed",
          "independence_family": "pyopus",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Simulation-based sizing/optimization; simulator adapter must match supported interfaces. It does not select arbitrary circuit topology by itself.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "spectre",
          "role": "producer",
          "applicability": "Independent commercial circuit simulation",
          "integration_status": "needslicensed",
          "independence_family": "spectre",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Optional independent analog solver. AMS mode combines Spectre with a digital simulator; libraries, license and adapter are prerequisites.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "A5",
      "title_en": "Analog Layout",
      "title_zh": "佈局（Magic）",
      "phase": "analog",
      "limitations_en": "No complete alternative was runnable for the target in review70. Layout-framework presence is not a target-ready analog layout arm.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "magic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A5",
          "programs": [
            "analog_a5_layout_check"
          ],
          "capture_routes": [
            {
              "id": "analog.A5_layout",
              "program": "programs/analog_a5_layout_check.py",
              "skill": "skills/analog-layout/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a5_layout_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/analog-layout/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A5",
          "programs": [
            "analog_a5_layout_check"
          ],
          "capture_routes": [
            {
              "id": "analog.A5_layout",
              "program": "programs/analog_a5_layout_check.py",
              "skill": "skills/analog-layout/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a5_layout_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/analog-layout/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "magic"
        ],
        "primary_arm_count": 1,
        "label_en": "Magic PDK gencells and validated layout assembly",
        "component_tool_ids": [],
        "status": "verified",
        "selection_reason": "No LibreLane/OpenROAD transistor-level analog layout producer.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "magic",
          "role": "producer",
          "applicability": "Supported PDK analog layout/gencells",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current target path.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "align",
          "role": "producer",
          "applicability": "Constrained analog netlist-to-layout",
          "integration_status": "proposed",
          "independence_family": "align",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Target PDK abstraction missing.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "gdsfactory",
          "role": "producer",
          "applicability": "Parametric geometry and device layout",
          "integration_status": "proposed",
          "independence_family": "gdsfactory",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Needs complete target circuit generator.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "glayout",
          "role": "producer",
          "applicability": "Mapped-PDK analog circuit generators",
          "integration_status": "toolmissing",
          "independence_family": "gdsfactory",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Target circuit/PDK support must be demonstrated.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "A6",
      "title_en": "Analog Physical Verification (per-block DRC + LVS before merge)",
      "title_zh": "逐區塊實體驗證（DRC+LVS）",
      "phase": "analog",
      "limitations_en": "KLayout LVS PDK allow-lists and analog Spice-model loading need target adapters. Unsupported/skipped checker outputs never count as clean.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "klayout",
          "magic",
          "klayout_fork"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [
          {
            "tool_ids": [
              "librelane",
              "klayout",
              "magic",
              "netgen"
            ],
            "selection": "Project A6 mode != direct; native default retained",
            "source_file": "analog_one_shot_runner.py",
            "line": 1467
          }
        ],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A6",
          "programs": [
            "analog_a6_block_pv_check"
          ],
          "capture_routes": [
            {
              "id": "analog.A6_block_pv",
              "program": "programs/analog_a6_block_pv_check.py",
              "skill": "skills/drc-fix/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a6_block_pv_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/drc-fix/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A6",
          "programs": [
            "analog_a6_block_pv_check"
          ],
          "capture_routes": [
            {
              "id": "analog.A6_block_pv",
              "program": "programs/analog_a6_block_pv_check.py",
              "skill": "skills/drc-fix/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a6_block_pv_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/drc-fix/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane physical checks on each analog block",
        "component_tool_ids": [
          "klayout",
          "magic",
          "netgen"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "KLayout.DRC / Magic.DRC / extraction + LVS",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Qualified analog decks/models required.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "checker",
          "applicability": "PDK DRC/LVS",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Independent LVS from Netgen where a supported deck exists.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "checker",
          "applicability": "PDK DRC / transistor extraction",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Extraction is not an LVS verdict.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "netgen",
          "role": "checker",
          "applicability": "Transistor-level LVS",
          "integration_status": "verified",
          "independence_family": "netgen",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Bind extracted and source devices without inappropriate macro blackboxing.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "A7",
      "title_en": "🔁 Post-Layout Resimulation",
      "title_zh": "佈局後重模擬",
      "phase": "analog",
      "limitations_en": "Live main has opt-in LibreLane Magic.RCX + ngspice resimulation; default remains skill handoff. OpenRCX digital SPEF cannot replace transistor-level analog PEX.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Source-integrated opt-in T94 producer supersedes historical stub-only review70 description; the production default has not cut over.",
        "optional_source_arms": [
          {
            "tool_ids": [
              "librelane",
              "magic",
              "ngspice"
            ],
            "selection": "Project A7 mode != direct; direct default stays skill handoff",
            "source_file": "analog_one_shot_runner.py",
            "line": 1949
          }
        ],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A7",
          "programs": [
            "analog_pre_vs_post_layout_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "active_call_sites": [
            {
              "file": "vibe-ic-marketplace/plugins/vibe-ic/programs/analog_one_shot_runner.py",
              "lines": [
                1949,
                1965
              ]
            }
          ]
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A7",
          "programs": [
            "analog_pre_vs_post_layout_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "active_call_sites": [
            {
              "file": "vibe-ic-marketplace/plugins/vibe-ic/programs/analog_one_shot_runner.py",
              "lines": [
                1949,
                1965
              ]
            }
          ]
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane Magic.RCX followed by analog resimulation",
        "component_tool_ids": [
          "magic",
          "ngspice",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Magic.RCX",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Analog extraction producer only; resimulation and grades remain mandatory.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "producer",
          "applicability": "Transistor-level RC extraction",
          "integration_status": "proposed",
          "independence_family": "magic",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Direct default retains skill handoff; source-integrated opt-in LibreLane Magic.RCX producer exists.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "kpex",
          "role": "producer",
          "applicability": "FasterCap/analytical PEX backend",
          "integration_status": "proposed",
          "independence_family": "kpex",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Magic backend shares Magic; identify the actual backend.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "cace",
          "role": "orchestrator",
          "applicability": "-s rcx / pex characterization",
          "integration_status": "proposed",
          "independence_family": "cace",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Characterization/sweep orchestration, commonly drives ngspice. Converter and design-specific graders still need integration; not a new simulator engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "ngspice",
          "role": "checker",
          "applicability": "Extracted-netlist graded resimulation",
          "integration_status": "verified",
          "independence_family": "ngspice",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Analog transient/DC/AC/noise and mixed-mode simulation; circuit models, corner set and graded measurements are separate obligations.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "xyce",
          "role": "checker",
          "applicability": "Independent resimulation",
          "integration_status": "proposed",
          "independence_family": "xyce",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Independent circuit solver with external coupling and mixed-signal interfaces. PDK model compatibility is not assumed from installation.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "A8",
      "title_en": "Hardmacro Generation (LEF + Liberty + GDS + Verilog)",
      "title_zh": "Hardmacro 產生（LEF+Lib+GDS+V）",
      "phase": "analog",
      "limitations_en": "Analog Liberty timing/power/PG contracts require characterized measurements. write_timing_model alone does not characterize arbitrary analog behavior.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "magic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A8",
          "programs": [
            "analog_hardmacro_check",
            "analog_hardmacro_gds_emit",
            "analog_lef_gds_outline_check",
            "analog_macro_rtl_interface_check",
            "analog_topology_behaviour_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A8",
          "programs": [
            "analog_hardmacro_check",
            "analog_hardmacro_gds_emit",
            "analog_lef_gds_outline_check",
            "analog_macro_rtl_interface_check",
            "analog_topology_behaviour_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane Magic.WriteLEF with characterized macro views",
        "component_tool_ids": [
          "magic",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Magic.WriteLEF GDS route",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Fork DEF-optional support was probed in0.3.80; target runtime still required.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "producer",
          "applicability": "GDS / abstract LEF",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same engine as LibreLane step.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "cace",
          "role": "orchestrator",
          "applicability": "Behavior/corner characterization",
          "integration_status": "proposed",
          "independence_family": "cace",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Characterization is distinct from physical abstraction.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "checker",
          "applicability": "pin_access / LEF/IP import",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Not transistor-level Liberty characterization.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "A9",
      "title_en": "🔁 Co-Simulation (+ HW correlation when bench data exists)",
      "title_zh": "共模擬 / HW 驗證",
      "phase": "analog",
      "limitations_en": "Current source executes L22-selected ngspice analog or ngspice d_cosim + Icarus libvvp arms. Missing declarations, unloaded libvvp and ungraded bounds stay NOT_MEASURED; simulation does not discharge hardware correlation.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "vibeic",
          "ngspice",
          "iverilog"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "analog_one_shot_runner.py:2504-2529 and2799 call analog_a9_cosim_emit.py. L22 scenario chooses analog ngspice or ngspice d_cosim with absolute-path Icarus libvvp; not SpiceBind.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A9",
          "programs": [
            "analog_a9_hw_verify_check",
            "analog_hil_convergence_log_check",
            "analog_hil_iteration_cap_check",
            "analog_hil_report_schema_check",
            "analog_hil_single_knob_check",
            "analog_hw_tb_de10lite_budget_check",
            "mixed_signal_cosim_check"
          ],
          "capture_routes": [
            {
              "id": "analog.A9_hw_verify",
              "program": "programs/analog_a9_hw_verify_check.py",
              "skill": "skills/analog-hw-measure/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a9_hw_verify_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/analog-hw-measure/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "active_call_sites": [
            {
              "file": "vibe-ic-marketplace/plugins/vibe-ic/programs/analog_one_shot_runner.py",
              "lines": [
                2504,
                2529,
                2799
              ]
            },
            {
              "file": "vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a9_cosim_emit.py",
              "lines": [
                485,
                490,
                532,
                599,
                721
              ]
            }
          ]
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "A9",
          "programs": [
            "analog_a9_hw_verify_check",
            "analog_hil_convergence_log_check",
            "analog_hil_iteration_cap_check",
            "analog_hil_report_schema_check",
            "analog_hil_single_knob_check",
            "analog_hw_tb_de10lite_budget_check",
            "mixed_signal_cosim_check"
          ],
          "capture_routes": [
            {
              "id": "analog.A9_hw_verify",
              "program": "programs/analog_a9_hw_verify_check.py",
              "skill": "skills/analog-hw-measure/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a9_hw_verify_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/analog-hw-measure/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "active_call_sites": [
            {
              "file": "vibe-ic-marketplace/plugins/vibe-ic/programs/analog_one_shot_runner.py",
              "lines": [
                2504,
                2529,
                2799
              ]
            },
            {
              "file": "vibe-ic-marketplace/plugins/vibe-ic/programs/analog_a9_cosim_emit.py",
              "lines": [
                485,
                490,
                532,
                599,
                721
              ]
            }
          ]
        }
      ],
      "policy_default": {
        "tool_ids": [
          "ngspice"
        ],
        "primary_arm_count": 1,
        "label_en": "Current L22-selected ngspice / d_cosim with Icarus libvvp",
        "component_tool_ids": [
          "iverilog",
          "vibeic"
        ],
        "status": "verified",
        "selection_reason": "Use the source-integrated analog or d_cosim arm selected by the declared L22 scenario. SpiceBind remains an ultra proposed bridge; a future default override requires qualified same-input accuracy, coverage, synchronization and runtime evidence.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "spicebind",
          "role": "orchestrator",
          "applicability": "Icarus plus ngspice co-simulation",
          "integration_status": "proposed",
          "independence_family": "ngspice_cosim",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Bridge, not a new analog solver.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "cocotbext_ams",
          "role": "orchestrator",
          "applicability": "cocotb plus ngspice/Xyce bridge",
          "integration_status": "proposed",
          "independence_family": "ngspice_cosim",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Select actual analog engine and time-sync evidence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "ngspice",
          "role": "producer",
          "applicability": "XSPICE mixed-mode simulation",
          "integration_status": "verified",
          "independence_family": "ngspice",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Digital behavioral model requires interface validation.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "spectre",
          "role": "producer",
          "applicability": "Licensed transistor/HDL AMS simulation",
          "integration_status": "needslicensed",
          "independence_family": "spectre",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional independent analog solver. AMS mode combines Spectre with a digital simulator; libraries, license and adapter are prerequisites.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "pyvisa",
          "role": "orchestrator",
          "applicability": "Real HW correlation",
          "integration_status": "proposed",
          "independence_family": "pyvisa",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Only when instruments and bench samples exist.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "iverilog",
          "role": "producer",
          "applicability": "libvvp digital engine for ngspice d_cosim",
          "integration_status": "verified",
          "independence_family": "iverilog",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current source arm, selected only for applicable L22 scenarios.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "ngspice",
          "role": "producer",
          "applicability": "Current L22 analog and XSPICE d_cosim scenario solver",
          "integration_status": "verified",
          "independence_family": "ngspice",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Source-integrated; runtime and hardware correlation are separate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "14",
      "title_en": "🔁 Synthesis handoff gate (pre-PnR Yosys script + netlist audit; open-source-flow specific)",
      "title_zh": "合成交接 gate（Yosys script 稽核）",
      "phase": "phase2",
      "limitations_en": "Script text and rc0 alone cannot prove a mapped, current, complete handoff.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "14",
          "programs": [
            "flow_compliance_check",
            "flow_step_output_content_check",
            "stage_on_pass_review",
            "yosys_hilomap_required_check",
            "yosys_script_template_check",
            "yosys_tiecell_recipe_order_check"
          ],
          "capture_routes": [
            {
              "id": "phase2.formal",
              "program": "programs/formal_harness_gen.py",
              "skill": "skills/formal-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/formal_harness_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/formal-verify/SKILL.md"
            },
            {
              "id": "phase2.final_audit",
              "program": "programs/flow_compliance_check.py",
              "skill": "skills/checkpoint-gate/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/flow_compliance_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/checkpoint-gate/SKILL.md"
            },
            {
              "id": "flow.artefact_write_ownership",
              "program": "programs/flow_compliance_check.py",
              "skill": "skills/open-benchmark-methodology/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/flow_compliance_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/open-benchmark-methodology/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "14",
          "programs": [
            "flow_compliance_check",
            "flow_step_output_content_check",
            "stage_on_pass_review",
            "yosys_hilomap_required_check",
            "yosys_script_template_check",
            "yosys_tiecell_recipe_order_check"
          ],
          "capture_routes": [
            {
              "id": "phase2.formal",
              "program": "programs/formal_harness_gen.py",
              "skill": "skills/formal-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/formal_harness_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/formal-verify/SKILL.md"
            },
            {
              "id": "phase2.final_audit",
              "program": "programs/flow_compliance_check.py",
              "skill": "skills/checkpoint-gate/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/flow_compliance_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/checkpoint-gate/SKILL.md"
            },
            {
              "id": "flow.artefact_write_ownership",
              "program": "programs/flow_compliance_check.py",
              "skill": "skills/open-benchmark-methodology/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/flow_compliance_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/open-benchmark-methodology/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane synthesis receipt plus handoff audit",
        "component_tool_ids": [
          "yosys",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Yosys.Synthesis / YosysSynthChecks / YosysUnmappedCells",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Consume actual tool receipts, retain intent/ownership checks.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys",
          "role": "checker",
          "applicability": "Cell mapping, drivers and netlist elaboration",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same upstream synthesis family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "15",
      "title_en": "Floorplan + PDN",
      "title_zh": "Floorplan + PDN（供電網）",
      "phase": "phase3",
      "limitations_en": "Existing default is scoped to chip_pad_ring; core-only/HARDMACRO retains direct mode. Tap masters, macro obstacles and all supply nets require evidence.",
      "current_default": {
        "mode": "class_scoped_librelane",
        "tool_ids": [
          "librelane",
          "openroad"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [
          {
            "design_class": "chip_pad_ring",
            "mode": "librelane"
          },
          {
            "design_class": "core_only_or_hardmacro",
            "mode": "direct"
          },
          {
            "note": "Project override and chain-coherence rules still apply."
          }
        ],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "15",
          "programs": [
            "floorplan_pdn_check",
            "macro_obs_load_parity_check",
            "phase3_backend_step",
            "stage2_compliance",
            "stage_on_pass_review"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "15",
          "programs": [
            "floorplan_pdn_check",
            "macro_obs_load_parity_check",
            "phase3_backend_step",
            "stage2_compliance",
            "stage_on_pass_review"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane floorplan and PDN segment",
        "component_tool_ids": [
          "openroad"
        ],
        "status": "verified",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": true,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "SOURCE_DEFAULT_FOR_CHIP_PAD_RING_ONLY",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Floorplan / TapEndcapInsertion / GeneratePDN / SetPowerConnections",
          "integration_status": "verified",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current class default for chip pad-ring flow.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "Floorplan/taps/PDN generation",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same OpenROAD physical engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad_fork",
          "role": "producer",
          "applicability": "IR-driven PDN/decap sizing",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Actuator must bind to measured nets and rerun checks.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate flow configuration",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "OpenROAD backend shares the engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "15.5ic",
      "title_en": "Pad Ring (chip/IC path only)",
      "title_zh": "打接腳環",
      "phase": "phase3",
      "limitations_en": "Ring geometry, RTL IO cells, pad budgets and supply connectivity are separate contracts. Operator slot dimensions remain authoritative.",
      "current_default": {
        "mode": "class_scoped_librelane",
        "tool_ids": [
          "librelane",
          "openroad",
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [
          {
            "design_class": "chip_pad_ring",
            "mode": "librelane"
          },
          {
            "design_class": "core_only_or_hardmacro",
            "mode": "direct"
          },
          {
            "note": "Project override and chain-coherence rules still apply."
          }
        ],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "15.5ic",
          "programs": [
            "io_pad_chip_top_gen",
            "pad_assignment_gen",
            "pad_ring_check",
            "pad_ring_gen"
          ],
          "capture_routes": [
            {
              "id": "phase3.pad_ring",
              "program": "programs/pad_ring_check.py",
              "skill": "skills/tapeout-checklist/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/pad_ring_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/tapeout-checklist/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "15.5ic",
          "programs": [
            "io_pad_chip_top_gen",
            "pad_assignment_gen",
            "pad_ring_check",
            "pad_ring_gen"
          ],
          "capture_routes": [
            {
              "id": "phase3.pad_ring",
              "program": "programs/pad_ring_check.py",
              "skill": "skills/tapeout-checklist/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/pad_ring_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/tapeout-checklist/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane OpenROAD.PadRing",
        "component_tool_ids": [
          "openroad",
          "vibeic"
        ],
        "status": "verified",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": true,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "SOURCE_DEFAULT_FOR_CHIP_PAD_RING_ONLY",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "OpenROAD.PadRing",
          "integration_status": "verified",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current class default on chip pad-ring route.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "OpenROAD pad placement",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same engine as LibreLane.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "padring",
          "role": "producer",
          "applicability": "Independent pad-ring geometry",
          "integration_status": "proposed",
          "independence_family": "padring",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Needs electrical chip-top, orientation and ring DRC/LVS checks.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "16",
      "title_en": "Clock planning",
      "title_zh": "時脈規劃",
      "phase": "phase3",
      "limitations_en": "Clock planning remains declaration-driven; a regex-derived plan or a discovered clock cannot invent missing operating modes.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "16",
          "programs": [
            "clock_plan_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "16",
          "programs": [
            "clock_plan_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane/OpenSTA clock facts with declared clock planning",
        "component_tool_ids": [
          "opensta",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "CheckSDCFiles / STAPrePNR clock model",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Provides parsed clock evidence, not automatic intent authoring.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta",
          "role": "producer",
          "applicability": "report_clock_properties / generated-clock model",
          "integration_status": "proposed",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same timing family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "17",
      "title_en": "Placement (global + detailed)",
      "title_zh": "擺放 Placement（global+detailed）",
      "phase": "phase3",
      "limitations_en": "Alternative seeds/settings are one engine family. Every candidate must pass placement legality, timing/DRV and source binding.",
      "current_default": {
        "mode": "class_scoped_librelane",
        "tool_ids": [
          "librelane",
          "openroad"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [
          {
            "design_class": "chip_pad_ring",
            "mode": "librelane"
          },
          {
            "design_class": "core_only_or_hardmacro",
            "mode": "direct"
          },
          {
            "note": "Project override and chain-coherence rules still apply."
          }
        ],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "17",
          "programs": [
            "placement_legality_check",
            "pnr_timing_repair_completeness_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "17",
          "programs": [
            "placement_legality_check",
            "pnr_timing_repair_completeness_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane global and detailed placement",
        "component_tool_ids": [
          "openroad"
        ],
        "status": "verified",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": true,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "SOURCE_DEFAULT_FOR_CHIP_PAD_RING_ONLY",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "GlobalPlacement / RepairDesignPostGPL / DetailedPlacement",
          "integration_status": "verified",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current chip class default.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "Global/detailed placement and legalization",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same OpenROAD placement engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate placement flow",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Not an independent engine when invoking OpenROAD.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "18",
      "title_en": "Spare-cell + ECO-prep insertion (Design-for-ECO)",
      "title_zh": "Spare-cell + ECO 預備插入",
      "phase": "phase3",
      "limitations_en": "Preserve declared spare/ECO cells, tie-offs, dont-touch and coverage. A repair-buffer tool cannot silently replace the spare pool.",
      "current_default": {
        "mode": "class_scoped_librelane",
        "tool_ids": [
          "librelane",
          "openroad",
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [
          {
            "design_class": "chip_pad_ring",
            "mode": "librelane"
          },
          {
            "design_class": "core_only_or_hardmacro",
            "mode": "direct"
          },
          {
            "note": "Project override and chain-coherence rules still apply."
          }
        ],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "18",
          "programs": [
            "spare_cell_coverage_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "18",
          "programs": [
            "spare_cell_coverage_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane Vibeic.InsertSpareCells with OpenROAD",
        "component_tool_ids": [
          "openroad",
          "vibeic"
        ],
        "status": "verified",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": true,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "SOURCE_DEFAULT_FOR_CHIP_PAD_RING_ONLY",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Captured spare-cell placement custom step",
          "integration_status": "verified",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current chip class default; custom orchestration retains declared spare plan.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "place_inst / set_dont_touch / legalization",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same physical engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Odb.InsertECOBuffers",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Repair buffers are not a complete spare-pool planning substitute.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "19",
      "title_en": "CTS (Clock Tree Synthesis)",
      "title_zh": "CTS 時脈樹合成",
      "phase": "phase3",
      "limitations_en": "CTS and hold fixing are a coherent chain. Clock quality must be measured on the emitted routed/placed state.",
      "current_default": {
        "mode": "class_scoped_librelane",
        "tool_ids": [
          "librelane",
          "openroad"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [
          {
            "design_class": "chip_pad_ring",
            "mode": "librelane"
          },
          {
            "design_class": "core_only_or_hardmacro",
            "mode": "direct"
          },
          {
            "note": "Project override and chain-coherence rules still apply."
          }
        ],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "19",
          "programs": [
            "cts_quality_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "19",
          "programs": [
            "cts_quality_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane OpenROAD.CTS",
        "component_tool_ids": [
          "openroad",
          "opensta"
        ],
        "status": "verified",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": true,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "SOURCE_DEFAULT_FOR_CHIP_PAD_RING_ONLY",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "CTS",
          "integration_status": "verified",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current chip class default; root/buffer/corner intent must reach the deck.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "clock_tree_synthesis",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same CTS engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta",
          "role": "checker",
          "applicability": "Skew/latency/propagated-clock quality",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Timing, SDC, SPEF, SDF and activity-based power analysis. Stock OpenSTA is not a complete commercial crosstalk signoff solution.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "20",
      "title_en": "🔁 Post-CTS hold fixing",
      "title_zh": "Post-CTS hold 修復",
      "phase": "phase3",
      "limitations_en": "Hold WNS for every required corner, placement legality and area budget must be measured; file identity is not stage progress.",
      "current_default": {
        "mode": "class_scoped_librelane",
        "tool_ids": [
          "librelane",
          "openroad"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [
          {
            "design_class": "chip_pad_ring",
            "mode": "librelane"
          },
          {
            "design_class": "core_only_or_hardmacro",
            "mode": "direct"
          },
          {
            "note": "Project override and chain-coherence rules still apply."
          }
        ],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "20",
          "programs": [
            "hold_area_budget_check",
            "hold_closure_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "20",
          "programs": [
            "hold_area_budget_check",
            "hold_closure_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane ResizerTimingPostCTS",
        "component_tool_ids": [
          "openroad",
          "opensta"
        ],
        "status": "verified",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": true,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "SOURCE_DEFAULT_FOR_CHIP_PAD_RING_ONLY",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "ResizerTimingPostCTS / HoldViolations",
          "integration_status": "verified",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current chip class default.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "repair_timing -hold / legalization",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same repair engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Odb.InsertECOBuffers",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Alternate actuator with legalization and fresh timing.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "21",
      "title_en": "Routing (global + detailed)",
      "title_zh": "繞線 Routing（global+detailed）",
      "phase": "phase3",
      "limitations_en": "Per-invocation DRC values need run-scoped receipts. Post-route antenna repair may destroy neighboring wires and must reroute/check all affected nets.",
      "current_default": {
        "mode": "class_scoped_librelane",
        "tool_ids": [
          "librelane",
          "openroad",
          "klayout"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [
          {
            "design_class": "chip_pad_ring",
            "mode": "librelane"
          },
          {
            "design_class": "core_only_or_hardmacro",
            "mode": "direct"
          },
          {
            "note": "Project override and chain-coherence rules still apply."
          }
        ],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "21",
          "programs": [
            "def_stage_progression_check",
            "drc_report_check",
            "macro_obs_geometry_intersect_check",
            "provenance_check",
            "route_congestion_trade_disclosure"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "21",
          "programs": [
            "def_stage_progression_check",
            "drc_report_check",
            "macro_obs_geometry_intersect_check",
            "provenance_check",
            "route_congestion_trade_disclosure"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane global/detailed routing and required checks",
        "component_tool_ids": [
          "openroad",
          "klayout"
        ],
        "status": "verified",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": true,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "SOURCE_DEFAULT_FOR_CHIP_PAD_RING_ONLY",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "GlobalRouting / DetailedRouting / CheckAntennas / disconnected-pin checks",
          "integration_status": "verified",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current chip class default.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "Global/detailed routing",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same OpenROAD engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad_fork",
          "role": "producer",
          "applicability": "Scoped reroute / actual repaired-net census",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Fork-aware route updates require re-verification.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "checker",
          "applicability": "Final GDS PDK DRC",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Independent physical checker; not a routing candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate flow orchestration",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Alternate flow orchestration; if it invokes OpenROAD it shares that engine. Installed 0.37.12 was not examined for a project-complete arm.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "22",
      "title_en": "Parasitic Extraction (RC → SPEF)",
      "title_zh": "寄生萃取（RC → SPEF）",
      "phase": "phase3",
      "limitations_en": "Rules-generation adapter is not yet measured. Analytical LEF-RC/coupling fallback must remain explicitly disclosed.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "openrcx",
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [
          {
            "tool_ids": [
              "fastercap"
            ],
            "selection": "Opt-in fastercap_extract.py; not selected solely by installation",
            "source_file": "fastercap_extract.py"
          }
        ],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "22",
          "programs": [
            "provenance_check",
            "spef_extraction_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "22",
          "programs": [
            "provenance_check",
            "spef_extraction_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane OpenROAD.RCX with calibrated rules",
        "component_tool_ids": [
          "openrcx"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "OpenROAD.RCX",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Primary digital SPEF producer.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openrcx",
          "role": "producer",
          "applicability": "Calibrated RC extraction / gen_rcx_model",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same extraction engine inside LibreLane.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "kpex",
          "role": "producer",
          "applicability": "Layout PEX using named backend",
          "integration_status": "proposed",
          "independence_family": "kpex",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Format/PDK/RC coverage must match before substituting.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "fastercap",
          "role": "producer",
          "applicability": "Pattern capacitance field solution",
          "integration_status": "proposed",
          "independence_family": "fastercap",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Partial input to RC-rule generation, not full RC by itself.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "producer",
          "applicability": "Analog/transistor RC extraction",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Different artifact and scope.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate orchestration; shared backend family and exact scope must be identified",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "DT2",
      "title_en": "Path-delay-fault (at-speed, timing-graded) ATPG",
      "title_zh": "Path-delay-fault ATPG（佈局後時序分級）",
      "phase": "phase2",
      "limitations_en": "Bind test patterns to required timed paths and corners. Scan insertion alone cannot produce timing-graded path-delay coverage.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "opensta",
          "yosys"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "DT2",
          "programs": [
            "path_delay_coverage_check",
            "path_delay_fault_atpg_run"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "DT2",
          "programs": [
            "path_delay_coverage_check",
            "path_delay_fault_atpg_run"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "yosys"
        ],
        "primary_arm_count": 1,
        "label_en": "SAT path-delay ATPG with real timing grading",
        "component_tool_ids": [
          "opensta",
          "vibeic"
        ],
        "status": "verified",
        "selection_reason": "No LibreLane/OpenROAD path-delay ATPG generator.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "yosys",
          "role": "producer",
          "applicability": "Path sensitization ATPG",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current fork SAT path; tool capabilities beyond upstream need pinning.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta",
          "role": "checker",
          "applicability": "Timing path/slack grading",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Not ATPG pattern generation.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "tempus",
          "role": "checker",
          "applicability": "Optional independent path/slack grading",
          "integration_status": "needslicensed",
          "independence_family": "tempus",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional independent commercial STA/SI arm; requires license, qualified libraries and an integration adapter.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "DT3",
      "title_en": "Small-delay-defect (SDD) at-speed grade",
      "title_zh": "Small-delay-defect at-speed 分級",
      "phase": "phase2",
      "limitations_en": "Small-delay-defect grade needs declared defect magnitude/path timing, not merely DT2 presence.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "opensta",
          "yosys",
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "DT3",
          "programs": [
            "sdd_atpg_run",
            "sdd_coverage_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "DT3",
          "programs": [
            "sdd_atpg_run",
            "sdd_coverage_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "yosys"
        ],
        "primary_arm_count": 1,
        "label_en": "SAT pattern population with small-delay grading",
        "component_tool_ids": [
          "opensta",
          "vibeic"
        ],
        "status": "verified",
        "selection_reason": "No existing full SDD engine in LibreLane/OpenROAD.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "yosys",
          "role": "producer",
          "applicability": "Reuse timing-graded ATPG population",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current producer via DT2.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta",
          "role": "checker",
          "applicability": "Small-delay slack sensitivity",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Complementary grader; not independent ATPG.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "32",
      "title_en": "🔁 Post-route timing repair pass (multi-corner repair_design + repair_timing + reroute)",
      "title_zh": "繞線後時序修復 pass",
      "phase": "phase3",
      "limitations_en": "Non-PASS repair can continue measurement with FAIL/quarantine; it gains no release credit. Missing route inputs refuse stream-out.",
      "current_default": {
        "mode": "class_scoped_librelane",
        "tool_ids": [
          "librelane",
          "openroad",
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [
          {
            "design_class": "chip_pad_ring",
            "mode": "librelane"
          },
          {
            "design_class": "core_only_or_hardmacro",
            "mode": "direct"
          },
          {
            "note": "Project override and chain-coherence rules still apply."
          }
        ],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "32",
          "programs": [
            "flow_step_output_content_check",
            "postroute_timing_repair_audit"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "32",
          "programs": [
            "flow_step_output_content_check",
            "postroute_timing_repair_audit"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane captured post-route repair and fresh verification",
        "component_tool_ids": [
          "openroad",
          "vibeic"
        ],
        "status": "verified",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": true,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "SOURCE_DEFAULT_FOR_CHIP_PAD_RING_ONLY",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Vibeic.PostRouteRepair / ResizerTimingPostGRT / RepairDesignPostGRT",
          "integration_status": "verified",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Current chip class default retains post-DRT closure orchestration.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad_fork",
          "role": "producer",
          "applicability": "Post-DRT repair / incremental route / RC",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same physical engine family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Odb.InsertECOBuffers",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Different repair actuator; reroute/RCX/STA/DRV/PV afterward.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate orchestration; shared backend family and exact scope must be identified",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "23",
      "title_en": "🔁 Post-route STA (multi-corner multi-mode sign-off)",
      "title_zh": "Post-route STA（MMMC 簽核）",
      "phase": "phase3",
      "limitations_en": "A hold subgate alone does not establish complete STA. Mandatory Liberty/corner/endpoint completeness remains blocking.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "openroad",
          "opensta"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "23",
          "programs": [
            "achieved_period_recorded_check",
            "clock_target_record_agreement_check",
            "drv_signoff_judge",
            "hold_corner_coverage_check",
            "pad_input_drive_check",
            "sta_architectural_residual_check",
            "sta_assumed_clock_disclosure_check",
            "sta_corner_record_completeness_check",
            "sta_report_check"
          ],
          "capture_routes": [
            {
              "id": "phase3.sta.architectural_residual",
              "program": "programs/sta_architectural_residual_check.py",
              "skill": "skills/spec-to-rtl/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/sta_architectural_residual_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/spec-to-rtl/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "23",
          "programs": [
            "achieved_period_recorded_check",
            "clock_target_record_agreement_check",
            "drv_signoff_judge",
            "hold_corner_coverage_check",
            "pad_input_drive_check",
            "sta_architectural_residual_check",
            "sta_assumed_clock_disclosure_check",
            "sta_corner_record_completeness_check",
            "sta_report_check"
          ],
          "capture_routes": [
            {
              "id": "phase3.sta.architectural_residual",
              "program": "programs/sta_architectural_residual_check.py",
              "skill": "skills/spec-to-rtl/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/sta_architectural_residual_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/spec-to-rtl/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane OpenROAD.STAPostPNR",
        "component_tool_ids": [
          "opensta",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "STAPostPNR / required setup, hold, slew and capacitance checks",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "One primary timing arm; validate actual corners, Liberty and SPEF.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta",
          "role": "checker",
          "applicability": "Standalone signoff timing",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same timing engine family as embedded OpenSTA.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta_fork",
          "role": "checker",
          "applicability": "MMMC/PBA and local timing extensions",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Qualified fork commands and exact binary required.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "tempus",
          "role": "checker",
          "applicability": "Independent commercial STA/SI",
          "integration_status": "needslicensed",
          "independence_family": "tempus",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional independent commercial STA/SI arm; requires license, qualified libraries and an integration adapter.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate orchestration; shared backend family and exact scope must be identified",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "24",
      "title_en": "🔁 IR Drop (static + dynamic)",
      "title_zh": "IR Drop（靜態+動態）",
      "phase": "phase3",
      "limitations_en": "Static and dynamic IR are separate obligations. Require all supply/ground nets, active current source and actual worst-drop metric.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "openroad",
          "openroad_fork"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "24",
          "programs": [
            "dynamic_ir_drop_check",
            "ir_drop_report_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "24",
          "programs": [
            "dynamic_ir_drop_check",
            "ir_drop_report_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane static IR plus separately bound dynamic analysis",
        "component_tool_ids": [
          "openroad",
          "openroad_fork",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "OpenROAD.IRDropReport",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Static power-grid analysis across required VDD/GND nets.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "checker",
          "applicability": "PDNSim static IR",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same static solver family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad_fork",
          "role": "checker",
          "applicability": "analyze_power_grid -transient",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Local fork dynamic capability, not stock upstream PDNSim.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "xyce",
          "role": "checker",
          "applicability": "Power-grid transient circuit cross-check",
          "integration_status": "proposed",
          "independence_family": "xyce",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Requires derived RC and current stimulus.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "redhawk",
          "role": "checker",
          "applicability": "Independent commercial static/dynamic IR",
          "integration_status": "needslicensed",
          "independence_family": "redhawk",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional independent commercial power integrity arm. No local license, installation or qualified-deck receipt.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate orchestration; shared backend family and exact scope must be identified",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "25",
      "title_en": "🔁 EM check (electromigration lifetime)",
      "title_zh": "EM 電遷移壽命",
      "phase": "phase3",
      "limitations_en": "Missing THICKNESS, current conservation, per-net CSVs or limit authority prevent closure. Current-density screens alone do not prove lifetime.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "openroad",
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "25",
          "programs": [
            "em_peak_current_authority_check",
            "em_report_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "25",
          "programs": [
            "em_peak_current_authority_check",
            "em_report_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "openroad_fork"
        ],
        "primary_arm_count": 1,
        "label_en": "OpenROAD fork EM geometry/current-density checks",
        "component_tool_ids": [
          "openroad",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "LibreLane has no dedicated full EM step; use the proven OpenROAD fork command with complete authority.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "openroad_fork",
          "role": "checker",
          "applicability": "EM J versus qualified Jmax / signal-current screen",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Requires drawn geometry, thickness and limits; skipped segments remain incomplete.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "checker",
          "applicability": "PDNSim -enable_em current reporting",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current consumption evidence, not complete lifetime signoff.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "redhawk",
          "role": "checker",
          "applicability": "Independent commercial EM analysis",
          "integration_status": "needslicensed",
          "independence_family": "redhawk",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional independent commercial power integrity arm. No local license, installation or qualified-deck receipt.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "26",
      "title_en": "🔁 Antenna check (gate-oxide protection)",
      "title_zh": "Antenna 天線檢查",
      "phase": "phase3",
      "limitations_en": "Never ship a route edit after the last verification. Zero-net and zero-pin censuses both need typed measured evidence.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "openroad",
          "klayout_fork"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "26",
          "programs": [
            "antenna_report_check",
            "gds_antenna_deck_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "26",
          "programs": [
            "antenna_report_check",
            "gds_antenna_deck_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane antenna checks with qualified route/GDS evidence",
        "component_tool_ids": [
          "openroad",
          "klayout",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "OpenROAD.CheckAntennas / KLayout.Antenna",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Router and final GDS checks measure different representations.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "checker",
          "applicability": "Routed net/pin antenna census",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same engine as LibreLane router check.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout_fork",
          "role": "checker",
          "applicability": "Final GDS antenna deck",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Needs actual gate-oxide deck and bound delivered GDS.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "RepairAntennas / Odb.InsertECODiodes",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Producer repair arm; must reroute and repeat all affected verification.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate orchestration; shared backend family and exact scope must be identified",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "26.5ic",
      "title_en": "Die Finishing — seal ring + die identification (chip/IC path only)",
      "title_zh": "封邊＋晶粒身分證",
      "phase": "phase3",
      "limitations_en": "Ring dimensions use coordinate span, not upper-right coordinates alone. ID, GDS finishing boundary and every required layer remain measured.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "klayout"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "26.5ic",
          "programs": [
            "die_finishing_check",
            "die_finishing_gen"
          ],
          "capture_routes": [
            {
              "id": "phase3.die_finishing",
              "program": "programs/die_finishing_check.py",
              "skill": "skills/phase3-backend-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/die_finishing_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/phase3-backend-verify/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "26.5ic",
          "programs": [
            "die_finishing_check",
            "die_finishing_gen"
          ],
          "capture_routes": [
            {
              "id": "phase3.die_finishing",
              "program": "programs/die_finishing_check.py",
              "skill": "skills/phase3-backend-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/die_finishing_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/phase3-backend-verify/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane KLayout.SealRing and die finishing",
        "component_tool_ids": [
          "klayout",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "KLayout.SealRing",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Consume authoritative die spans and verify emitted ring geometry.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "producer",
          "applicability": "PDK seal-ring and die-ID layout",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same geometry engine via a direct PDK script.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "producer",
          "applicability": "Supported PDK seal-ring generator",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "PDK-specific alternative, not universal.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "27",
      "title_en": "🔁 Signal Integrity (Crosstalk / Noise / Glitch + MCF crosstalk-delay)",
      "title_zh": "訊號完整性（串擾/雜訊）",
      "phase": "phase3",
      "limitations_en": "Stock OpenSTA is not full crosstalk signoff. Separate noise/glitch thresholds, timing windows and final coupling-parasitic freshness.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "opensta",
          "openroad_fork"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "27",
          "programs": [
            "flow_step_output_content_check",
            "si_crosstalk_check",
            "si_mcf_sta_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "27",
          "programs": [
            "flow_step_output_content_check",
            "si_crosstalk_check",
            "si_mcf_sta_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "opensta_fork"
        ],
        "primary_arm_count": 1,
        "label_en": "Fork SI kernels with timing-bound crosstalk/noise evidence",
        "component_tool_ids": [
          "openroad_fork",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "No complete native LibreLane SI signoff step.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "opensta_fork",
          "role": "checker",
          "applicability": "Window-aware SI delta, propagated noise and PBA",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Exact fork command binding required.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad_fork",
          "role": "producer",
          "applicability": "SI-aware repair/ECO",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Complementary repair, not another signoff checker.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "ngspice",
          "role": "checker",
          "applicability": "Critical-net coupling/noise waveform correlation",
          "integration_status": "verified",
          "independence_family": "ngspice",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Analog transient/DC/AC/noise and mixed-mode simulation; circuit models, corner set and graded measurements are separate obligations.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "tempus",
          "role": "checker",
          "applicability": "Independent commercial SI/glitch analysis",
          "integration_status": "needslicensed",
          "independence_family": "tempus",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional independent commercial STA/SI arm; requires license, qualified libraries and an integration adapter.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "28",
      "title_en": "🔁 PERC / Reliability sign-off (ESD + latch-up + cross-domain)",
      "title_zh": "PERC / 可靠度簽核（ESD+latch-up）",
      "phase": "phase3",
      "limitations_en": "No installed complete open PERC engine. Preserve explicit limitation for electrical ESD paths, latch-up and cross-domain signoff.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "klayout",
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "28",
          "programs": [
            "perc_signoff_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "28",
          "programs": [
            "perc_signoff_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "vibeic"
        ],
        "primary_arm_count": 1,
        "label_en": "Declared ESD/latch-up screen with measured topology/geometry",
        "component_tool_ids": [
          "klayout"
        ],
        "status": "verified",
        "selection_reason": "No LibreLane/OpenROAD full PERC engine; own bounded evidence grader remains.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "klayout",
          "role": "checker",
          "applicability": "Tap/diffusion/PDK geometry",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Useful partial screen; not full PERC.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "TapEndcapInsertion and relevant DRC checks",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Physical implementation support only.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "calibre_perc",
          "role": "checker",
          "applicability": "Qualified PERC reliability decks",
          "integration_status": "needslicensed",
          "independence_family": "calibre_perc",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional topology-plus-layout reliability checking with qualified decks. Not installed; generic geometry screens are not PERC equivalence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "29",
      "title_en": "Post-Layout Gate-Level Simulation (Post-Sim + SDF)",
      "title_zh": "佈局後閘級模擬（+SDF）",
      "phase": "phase3",
      "limitations_en": "Verilator cannot be advertised as an equivalent full cell-arc SDF simulator. Prove SDF annotated/applied and testbench obligations executed.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "opensta",
          "iverilog"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "29",
          "programs": [
            "post_layout_sim_check",
            "synth_wrapper_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "29",
          "programs": [
            "post_layout_sim_check",
            "synth_wrapper_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "iverilog"
        ],
        "primary_arm_count": 1,
        "label_en": "Icarus post-layout simulation with applied SDF",
        "component_tool_ids": [
          "opensta",
          "vibeic"
        ],
        "status": "verified",
        "selection_reason": "LibreLane has no complete SDF simulation executor.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "STAPostPNR SDF emission",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Timing artifact producer, not a gate-level simulator.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta",
          "role": "producer",
          "applicability": "write_sdf",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same timing producer inside LibreLane.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "iverilog",
          "role": "checker",
          "applicability": "Gate-level specify/SDF timing simulation",
          "integration_status": "verified",
          "independence_family": "iverilog",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current -gspecify flow; supported delay constructs must be measured.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate orchestration; shared backend family and exact scope must be identified",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "30",
      "title_en": "Post-Layout SPICE Verification (critical-path correlation + analog)",
      "title_zh": "佈局後 SPICE（關鍵路徑相關性）",
      "phase": "phase3",
      "limitations_en": "Tool-exported decks still need correct PDK device models, stimuli, selected paths and timing reference.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "ngspice",
          "opensta"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "30",
          "programs": [
            "spice_correlation_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "30",
          "programs": [
            "spice_correlation_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "opensta"
        ],
        "primary_arm_count": 1,
        "label_en": "OpenSTA path-SPICE export with circuit simulation",
        "component_tool_ids": [
          "ngspice",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "LibreLane supplies partial extraction only; OpenSTA owns path export.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "opensta",
          "role": "producer",
          "applicability": "write_path_spice / write_gate_spice",
          "integration_status": "proposed",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Replace hand-written digital path deck plumbing.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "ngspice",
          "role": "checker",
          "applicability": "Critical-path waveform/delay correlation",
          "integration_status": "verified",
          "independence_family": "ngspice",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Current simulator.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "xyce",
          "role": "checker",
          "applicability": "Independent circuit correlation",
          "integration_status": "proposed",
          "independence_family": "xyce",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Independent circuit solver with external coupling and mixed-signal interfaces. PDK model compatibility is not assumed from installation.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "spectre",
          "role": "checker",
          "applicability": "Independent licensed correlation",
          "integration_status": "needslicensed",
          "independence_family": "spectre",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional independent analog solver. AMS mode combines Spectre with a digital simulator; libraries, license and adapter are prerequisites.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Magic.RCX",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Analog extraction source when applicable.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "33",
      "title_en": "Power analysis (pre/post-layout)",
      "title_zh": "功耗分析（pre/post-layout）",
      "phase": "phase3",
      "limitations_en": "Unannotated/vectorless power is an estimate, not measured application activity. Every required corner and power domain must be named.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "opensta"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "33",
          "programs": [
            "power_report_check",
            "power_total_vs_budget_check",
            "upf_syntax_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "33",
          "programs": [
            "power_report_check",
            "power_total_vs_budget_check",
            "upf_syntax_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane STAPostPNR per-corner power metrics",
        "component_tool_ids": [
          "opensta",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "STAPostPNR power output",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Activity, corners and worst-case aggregation required.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta",
          "role": "checker",
          "applicability": "report_power / activity annotation",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same power engine family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "spectre",
          "role": "checker",
          "applicability": "Transistor-level power correlation",
          "integration_status": "needslicensed",
          "independence_family": "spectre",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Different granularity, requires appropriate circuit models.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate orchestration; shared backend family and exact scope must be identified",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "34",
      "title_en": "Metal Fill (ECO-aware density fill insertion)",
      "title_zh": "Metal Fill（ECO-aware 密度填充）",
      "phase": "phase3",
      "limitations_en": "Density fill, cell filler placement, LVS connectivity and parasitic impact must each be verified on the selected final artifact.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "openroad",
          "klayout",
          "klayout_fork"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "34",
          "programs": [
            "metal_fill_density_check",
            "metal_fill_emit",
            "spare_cell_preservation_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "34",
          "programs": [
            "metal_fill_density_check",
            "metal_fill_emit",
            "spare_cell_preservation_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane fill insertion and final density verification",
        "component_tool_ids": [
          "openroad",
          "klayout",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "OpenROAD.FillInsertion / KLayout.Filler / Density",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Cell fillers and metal-density fill are separate outputs.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "producer",
          "applicability": "PDK metal fill",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Candidate must retain ECO/spare cells and pass final checks.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout_fork",
          "role": "producer",
          "applicability": "Geometry-aware metal fill",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same KLayout geometry family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad_fork",
          "role": "producer",
          "applicability": "Density/coupling-aware density_fill",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Distinct fill engine/representation, calibrated to the PDK.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "producer",
          "applicability": "Supported PDK fill",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "PDK-limited alternative.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate orchestration; shared backend family and exact scope must be identified",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "35",
      "title_en": "DFM screen (CMP density + redundant-via ratio + foundry-side OPC/RET disclosure)",
      "title_zh": "DFM 篩檢（CMP 密度 + 冗餘 via）",
      "phase": "phase3",
      "limitations_en": "Foundry-side OPC/RET is external and cannot be inferred from DRC. Redundant-via metrics and actual final geometry must agree.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "35",
          "programs": [
            "dfm_screen_check",
            "flow_step_output_content_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "35",
          "programs": [
            "dfm_screen_check",
            "flow_step_output_content_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane density/manufacturability metrics with DFM audit",
        "component_tool_ids": [
          "klayout",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "KLayout.Density / ReportManufacturability",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Partial CMP/DFM evidence, not full fabrication acceptance.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad_fork",
          "role": "checker",
          "applicability": "check_metal_density / DRT singlecut-multicut metrics",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Tool census compared with downstream geometry.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "checker",
          "applicability": "Delivered geometry density / via recount",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Agreement check on final artifact.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "checker",
          "applicability": "route__vias__singlecut/multicut tool metrics plus geometry check",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate orchestration; shared backend family and exact scope must be identified",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "37",
      "title_en": "GDSII output (after routed-layout pre-stream admission)",
      "title_zh": "GDSII 輸出（繞線版圖通過串流前准入後）",
      "phase": "phase3",
      "limitations_en": "Route inputs, macro contents, seal ring, grid/fill boundaries and actual nonempty GDS must be bound. Stream rc0 is not tapeout PASS.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "magic",
          "klayout",
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "37",
          "programs": [
            "flow_stage_check",
            "gate_evidence_completeness_check",
            "gds_ip_attribution",
            "gds_port_label_check",
            "gds_size_check",
            "gds_substance_check",
            "layout_receipt_identity_check",
            "provenance_check",
            "reported_figure_artifact_backing_check",
            "stage3_compliance",
            "stage_on_pass_review"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "37",
          "programs": [
            "flow_stage_check",
            "gate_evidence_completeness_check",
            "gds_ip_attribution",
            "gds_port_label_check",
            "gds_size_check",
            "gds_substance_check",
            "layout_receipt_identity_check",
            "provenance_check",
            "reported_figure_artifact_backing_check",
            "stage3_compliance",
            "stage_on_pass_review"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane stream-out with macro and finishing views",
        "component_tool_ids": [
          "klayout",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "KLayout.StreamOut or Magic.StreamOut",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "One producer chosen by policy/PDK; the other is ultra comparison.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "producer",
          "applicability": "DEF/LEF/macro-GDS stream-out",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Same engine as LibreLane KLayout stream.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "producer",
          "applicability": "Independent stream-out representation",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": true,
          "selection_group": "candidate_producer",
          "note_en": "Require same intended geometry and macro views.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate orchestration; shared backend family and exact scope must be identified",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "37.3",
      "title_en": "GDS stream-out / finishing fidelity — the shipped GDS XOR'd against this run's own pre-finishing boundary",
      "title_zh": "GDS stream-out / finishing fidelity — the shipped GDS XOR'd against this run's own pre-finishing boundary",
      "phase": "phase3",
      "limitations_en": "Comparing two stale/equally wrong artifacts is not fidelity. Required finishing differences must be declared and traced, not waived.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "klayout"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "37.3",
          "programs": [
            "gds_xor_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "37.3",
          "programs": [
            "gds_xor_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane KLayout.XOR with an authoritative per-run boundary",
        "component_tool_ids": [
          "klayout",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "KLayout.XOR / Checker.XOR",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Adapter must compare selected GDS against its own pre-finishing boundary.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "checker",
          "applicability": "Region XOR / geometric comparison",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same engine; a second recipe is a scope cross-check, not independent geometry interpretation.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "producer",
          "applicability": "Independent stream-out for cross-engine geometry comparison",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "XOR is still evaluated by the designated checker.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "31",
      "title_en": "🔁 Physical Verification (DRC + LVS + ERC + Density)",
      "title_zh": "實體驗證（DRC+LVS+ERC+密度）",
      "phase": "phase3",
      "limitations_en": "No checker may be skipped into PASS. Empty reports require measured zero-count receipts; final SHA and every declared PV obligation stay bound.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "klayout",
          "magic",
          "netgen",
          "klayout_fork"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "31",
          "programs": [
            "drc_report_check",
            "drc_vacuous_pass_check",
            "erc_density_check",
            "lvs_report_check",
            "lvs_signoff_guard",
            "lvs_triage_classify",
            "magic_illegal_overlap_check",
            "magic_illegal_overlap_record_check",
            "mcp_execution_verify",
            "perc_corpus_sweep",
            "pg_rail_geometry_check",
            "pnr_via_stack_completeness_check",
            "provenance_check",
            "sweep_reach_check",
            "waiver_growth_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "31",
          "programs": [
            "drc_report_check",
            "drc_vacuous_pass_check",
            "erc_density_check",
            "lvs_report_check",
            "lvs_signoff_guard",
            "lvs_triage_classify",
            "magic_illegal_overlap_check",
            "magic_illegal_overlap_record_check",
            "mcp_execution_verify",
            "perc_corpus_sweep",
            "pg_rail_geometry_check",
            "pnr_via_stack_completeness_check",
            "provenance_check",
            "sweep_reach_check",
            "waiver_growth_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane final physical-verification suite",
        "component_tool_ids": [
          "klayout",
          "magic",
          "netgen",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "KLayout.DRC / Magic.DRC / extraction + Netgen.LVS / density",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "A suite of complementary mandatory checks, not interchangeable PASS candidates.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "checker",
          "applicability": "PDK DRC and independent PDK LVS",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Exact runset and target support required.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "checker",
          "applicability": "Independent DRC and extraction",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Magic extraction plus Netgen is one LVS chain.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "netgen",
          "role": "checker",
          "applicability": "Extracted versus source LVS",
          "integration_status": "verified",
          "independence_family": "netgen",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Require functional devices/nets, not an unjustified blackbox proof.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout_fork",
          "role": "checker",
          "applicability": "Supported SVRF/GDS specialized checks",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Not full support for arbitrary commercial rule-deck semantics.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Alternate orchestration; shared backend family and exact scope must be identified",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "36",
      "title_en": "Tapeout checklist (final sign-off confirmation)",
      "title_zh": "Tapeout checklist（最終簽核確認）",
      "phase": "phase3",
      "limitations_en": "AI/tool summary cannot override a mandatory failure or missing evidence; all target-specific signoff requirements stay explicit.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "36",
          "programs": [
            "declared_pdk_is_the_pdk_used_check",
            "report_belongs_to_project_check",
            "step_internal_fail_bubble_up_check",
            "tapeout_checklist_gen",
            "tapeout_signoff_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "36",
          "programs": [
            "declared_pdk_is_the_pdk_used_check",
            "report_belongs_to_project_check",
            "step_internal_fail_bubble_up_check",
            "tapeout_checklist_gen",
            "tapeout_signoff_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "vibeic"
        ],
        "primary_arm_count": 1,
        "label_en": "Release checklist over measured signoff receipts",
        "component_tool_ids": [
          "librelane"
        ],
        "status": "verified",
        "selection_reason": "No EDA engine determines every project/operator release contract.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Misc.ReportManufacturability",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Useful tool summary, not release authority.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "All declared obligations, final artifacts and current digests",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "37.4",
      "title_en": "Sign-off metrics aggregation — the run's own checker verdicts, under the names the release documents read",
      "title_zh": "簽核指標彙整",
      "phase": "phase3",
      "limitations_en": "Aggregation must preserve measured FAIL precedence and missing/unmeasured scope. None == None is not evidence agreement.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "37.4",
          "programs": [
            "signoff_metrics_aggregate"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "37.4",
          "programs": [
            "signoff_metrics_aggregate"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane State metrics with source-bound aggregation",
        "component_tool_ids": [
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "State / final metrics.json",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Read tool-written metrics without inventing missing keys.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "siliconcompiler",
          "role": "orchestrator",
          "applicability": "Metrics/artifact schema cross-check",
          "integration_status": "proposed",
          "independence_family": "siliconcompiler",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Only on an actually executed alternate flow.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "37.5ip",
      "title_en": "Digital Hardmacro Generation — LEF + Liberty + GDS + Verilog (delivered on EVERY route)",
      "title_zh": "數位硬巨集產出 — LEF＋Liberty＋GDS＋Verilog",
      "phase": "phase3",
      "limitations_en": "Do not read GDS and DEF together into duplicate pins. PG pins, every corner library, netlist and exact delivered GDS must match.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "magic",
          "openroad",
          "opensta",
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "37.5ip",
          "programs": [
            "digital_hardmacro_check",
            "digital_hardmacro_gen",
            "ip_release_docs_gen",
            "release_docs_check"
          ],
          "capture_routes": [
            {
              "id": "phase3.digital_hardmacro",
              "program": "programs/digital_hardmacro_gen.py",
              "skill": "skills/phase3-backend-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/digital_hardmacro_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/phase3-backend-verify/SKILL.md"
            },
            {
              "id": "phase3.ip_release_docs",
              "program": "programs/ip_release_docs_gen.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/ip_release_docs_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "37.5ip",
          "programs": [
            "digital_hardmacro_check",
            "digital_hardmacro_gen",
            "ip_release_docs_gen",
            "release_docs_check"
          ],
          "capture_routes": [
            {
              "id": "phase3.digital_hardmacro",
              "program": "programs/digital_hardmacro_gen.py",
              "skill": "skills/phase3-backend-verify/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/digital_hardmacro_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/phase3-backend-verify/SKILL.md"
            },
            {
              "id": "phase3.ip_release_docs",
              "program": "programs/ip_release_docs_gen.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/ip_release_docs_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane LEF/header/per-corner timing macro views",
        "component_tool_ids": [
          "magic",
          "opensta",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Magic.WriteLEF / Odb.WriteVerilogHeader / STAPostPNR libraries",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Deliver required kit even for an IC route.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "producer",
          "applicability": "Abstract LEF/GDS",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same LEF engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "write_abstract_lef / Verilog header",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Independent abstraction recipe; retains target PG/macro contracts.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta",
          "role": "producer",
          "applicability": "Per-corner timing models",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same timing family; analog characterization is a separate route.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "37.5ic",
      "title_en": "Tape-out Precheck — our general ladder, plus the operator's own refusal where the PDK ships one (chip/IC path only)",
      "title_zh": "送件預檢 — 主辦方自己的退件關",
      "phase": "phase3",
      "limitations_en": "Operator PASS alone does not replace Vibe-IC general ladder; missing operator execution stays NOT_MEASURED.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "operator_precheck",
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "37.5ic",
          "programs": [
            "closed_loop_executed_reentry_census",
            "closed_loop_metric_reaches_its_producer",
            "every_required_metric_key_has_a_producer",
            "ic_release_docs_gen",
            "release_docs_check",
            "tapeout_docs_gen",
            "tapeout_precheck"
          ],
          "capture_routes": [
            {
              "id": "phase3.ip_release_docs",
              "program": "programs/ip_release_docs_gen.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/ip_release_docs_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "37.5ic",
          "programs": [
            "closed_loop_executed_reentry_census",
            "closed_loop_metric_reaches_its_producer",
            "every_required_metric_key_has_a_producer",
            "ic_release_docs_gen",
            "release_docs_check",
            "tapeout_docs_gen",
            "tapeout_precheck"
          ],
          "capture_routes": [
            {
              "id": "phase3.ip_release_docs",
              "program": "programs/ip_release_docs_gen.py",
              "skill": "agents/ic-expert-agent.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/ip_release_docs_gen.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/agents/ic-expert-agent.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "operator_precheck"
        ],
        "primary_arm_count": 1,
        "label_en": "Operator precheck plus general evidence ladder",
        "component_tool_ids": [
          "vibeic"
        ],
        "status": "verified",
        "selection_reason": "The operator owns its submission checks; LibreLane checks are prerequisites.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "operator_precheck",
          "role": "checker",
          "applicability": "Operator-specific submission refusal",
          "integration_status": "verified",
          "independence_family": "operator_precheck",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Separate image/PDK contract.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "DRC/density/antenna prerequisite checks",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Prerequisite evidence, not substitute operator acceptance.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "checker",
          "applicability": "Delivered die geometry/slot/pad/finishing",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Layout processing, DRC and LVS with a supplied deck; an installed binary alone provides no PDK signoff coverage.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "38",
      "title_en": "Foundry Handoff (mask spec + WAT plan + scribe layout + corner test kit)",
      "title_zh": "Foundry 交接（mask spec + WAT + scribe）",
      "phase": "phase3",
      "limitations_en": "No LibreLane/OpenROAD WAT, mask-spec, scribe or corner-test-kit generator. A package is not an accepted or fabricated wafer.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "38",
          "programs": [
            "foundry_handoff_pack_gen",
            "foundry_handoff_package_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "38",
          "programs": [
            "foundry_handoff_pack_gen",
            "foundry_handoff_package_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "vibeic"
        ],
        "primary_arm_count": 1,
        "label_en": "Foundry/operator handoff package and authority audit",
        "component_tool_ids": [
          "klayout"
        ],
        "status": "verified",
        "selection_reason": "No complete existing software producer covers the operator-specific package.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "klayout",
          "role": "producer",
          "applicability": "Scribe/WAT fixture layout",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Requires declared operator layout requirements.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "fabrication",
          "role": "physical",
          "applicability": "Operator handoff acceptance",
          "integration_status": "external_physical",
          "independence_family": "fabrication",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "No physical manufacturing credit at package-generation time.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "39",
      "title_en": "FPGA final sign-off (recompile + on-board test)",
      "title_zh": "FPGA 最終簽核（重編 + 上板測試）",
      "phase": "phase3",
      "limitations_en": "Compile result and on-board behavior are separate. No board/JTAG evidence means no hardware signoff.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "quartus"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "39",
          "programs": [
            "bringup_plan_gen",
            "fpga_on_board_attestation_check",
            "hw_vs_rtl_verdict_check",
            "signaltap_recompile_sequence_check",
            "signaltap_stp_completeness_check",
            "stage4_compliance",
            "stage_on_pass_review"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "39",
          "programs": [
            "bringup_plan_gen",
            "fpga_on_board_attestation_check",
            "hw_vs_rtl_verdict_check",
            "signaltap_recompile_sequence_check",
            "signaltap_stp_completeness_check",
            "stage4_compliance",
            "stage_on_pass_review"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "quartus"
        ],
        "primary_arm_count": 1,
        "label_en": "FPGA recompile/program plus on-board attestation",
        "component_tool_ids": [
          "vibeic"
        ],
        "status": "toolmissing",
        "selection_reason": "No LibreLane/OpenROAD FPGA execution path.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "quartus",
          "role": "producer",
          "applicability": "Target compile/JTAG programming",
          "integration_status": "toolmissing",
          "independence_family": "quartus",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Actual board results needed.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "nextpnr",
          "role": "producer",
          "applicability": "Alternative supported FPGA families",
          "integration_status": "proposed",
          "independence_family": "nextpnr",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Not current target SOF.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vivado",
          "role": "producer",
          "applicability": "AMD target compile/program",
          "integration_status": "toolmissing",
          "independence_family": "vivado",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Different hardware family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "pyvisa",
          "role": "orchestrator",
          "applicability": "Independent bench measurement",
          "integration_status": "proposed",
          "independence_family": "pyvisa",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Requires connected calibrated instrument.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys",
          "role": "checker",
          "applicability": "synth_intel netlist cross-check; iCE40 backend not MAX10 bitstream",
          "integration_status": "proposed",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "M1",
      "title_en": "Mixed-Signal Top-Level Integration (A+D GDS merge + macro placement)",
      "title_zh": "頂層整合（A+D GDS 合併）",
      "phase": "mixed_signal",
      "limitations_en": "Default Macro.spice handling and blackbox mode are insufficient for arbitrary analog transistor coverage; required setup is explicit.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "klayout",
          "magic",
          "netgen"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current route merges with KLayout, extracts with Magic and checks with Netgen. OpenROAD placement is an applicable proposed component, not inferred current execution.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "M1",
          "programs": [
            "mixed_signal_merge_check",
            "mixed_signal_top_lvs_run"
          ],
          "capture_routes": [
            {
              "id": "mixed_signal.M_top_merge",
              "program": "programs/mixed_signal_merge_check.py",
              "skill": "skills/mixed-signal-cosim/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/mixed_signal_merge_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/mixed-signal-cosim/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "M1",
          "programs": [
            "mixed_signal_merge_check",
            "mixed_signal_top_lvs_run"
          ],
          "capture_routes": [
            {
              "id": "mixed_signal.M_top_merge",
              "program": "programs/mixed_signal_merge_check.py",
              "skill": "skills/mixed-signal-cosim/SKILL.md",
              "program_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/programs/mixed_signal_merge_check.py",
              "skill_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/skills/mixed-signal-cosim/SKILL.md"
            }
          ],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane macro placement and mixed-signal stream integration",
        "component_tool_ids": [
          "openroad",
          "klayout",
          "magic",
          "netgen",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "MACROS / ManualMacroPlacement / StreamOut / extraction + LVS",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Must include transistor-level analog macro models, not only blackbox interfaces.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "Macro placement and physical integration",
          "integration_status": "verified",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same physical engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "producer",
          "applicability": "Final hierarchical merge/stream",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same LibreLane stream engine.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "producer",
          "applicability": "Independent merge/stream/extraction",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Extraction + Netgen is one LVS chain.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "netgen",
          "role": "checker",
          "applicability": "Full top-level LVS",
          "integration_status": "verified",
          "independence_family": "netgen",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "SPICE/Verilog netlist equivalence for LVS; extraction, setup and analog macro models determine actual scope.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "M2",
      "title_en": "Mixed-Signal Power Domain + Level Shifter / Isolation Verification",
      "title_zh": "功率域 + 電位轉換 / 隔離驗證",
      "phase": "mixed_signal",
      "limitations_en": "LibreLane has no complete multi-voltage UPF flow in the reviewed build. Declared domain transitions and actual isolation/level-shifter instances require evidence.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "M2",
          "programs": [
            "isolation_cell_required_check",
            "level_shifter_required_check",
            "power_domain_crossing_check",
            "power_domain_signal_crossing_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "M2",
          "programs": [
            "isolation_cell_required_check",
            "level_shifter_required_check",
            "power_domain_crossing_check",
            "power_domain_signal_crossing_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "openroad"
        ],
        "primary_arm_count": 1,
        "label_en": "OpenROAD UPF representation with domain/crossing checks",
        "component_tool_ids": [
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Use OpenROAD partial power-intent support; retain uncovered rules as program checks.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "openroad",
          "role": "producer",
          "applicability": "UPF / power domains / isolation / level-shifter intent",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Available commands not yet integrated into current checker.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys",
          "role": "producer",
          "applicability": "Elaborated cross-domain connectivity",
          "integration_status": "verified",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Facts only; not power intent authority.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "calibre_perc",
          "role": "checker",
          "applicability": "Qualified cross-domain reliability checks",
          "integration_status": "needslicensed",
          "independence_family": "calibre_perc",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional topology-plus-layout reliability checking with qualified decks. Not installed; generic geometry screens are not PERC equivalence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "M3",
      "title_en": "Mixed-Signal Verification (AMS co-sim + RNM + interface signal integrity)",
      "title_zh": "混訊驗證（AMS 共模擬 + RNM + 介面 SI）",
      "phase": "mixed_signal",
      "limitations_en": "Functional AMS, RNM model agreement and post-route interface SI are complementary. A bridge cannot stand in for all three.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "M3",
          "programs": [
            "mixed_signal_cosim_check",
            "mixed_signal_interface_si_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "M3",
          "programs": [
            "mixed_signal_cosim_check",
            "mixed_signal_interface_si_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "vibeic"
        ],
        "primary_arm_count": 1,
        "label_en": "Current interface-evidence grader; reuse proven A9 solver where applicable",
        "component_tool_ids": [
          "ngspice",
          "iverilog"
        ],
        "status": "proposed",
        "selection_reason": "No current complete M3 interface producer is integrated. Retain the existing grader; proposed reuse of the source-integrated A9 ngspice/d_cosim solver must satisfy M3 interface contracts. cocotbext-ams and SpiceBind are future adapters, not proven better defaults.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "cocotbext_ams",
          "role": "orchestrator",
          "applicability": "Digital plus ngspice/Xyce co-simulation",
          "integration_status": "proposed",
          "independence_family": "ngspice_cosim",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Package presence is not an executed mixed-signal path.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "spicebind",
          "role": "orchestrator",
          "applicability": "VPI analog/digital bridge",
          "integration_status": "proposed",
          "independence_family": "ngspice_cosim",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Same ngspice backend if selected.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "ngspice",
          "role": "producer",
          "applicability": "XSPICE/mixed-mode analog behavior",
          "integration_status": "verified",
          "independence_family": "ngspice",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Analog transient/DC/AC/noise and mixed-mode simulation; circuit models, corner set and graded measurements are separate obligations.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "xyce",
          "role": "producer",
          "applicability": "Independent analog solver through supported bridge",
          "integration_status": "proposed",
          "independence_family": "xyce",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Independent circuit solver with external coupling and mixed-signal interfaces. PDK model compatibility is not assumed from installation.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "opensta_fork",
          "role": "checker",
          "applicability": "Timing/coupling boundary evidence",
          "integration_status": "verified",
          "independence_family": "opensta",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Complement to functional AMS.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "spectre",
          "role": "producer",
          "applicability": "Licensed AMS with RNM/HDL/SPICE",
          "integration_status": "needslicensed",
          "independence_family": "spectre",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Optional independent analog solver. AMS mode combines Spectre with a digital simulator; libraries, license and adapter are prerequisites.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "M4",
      "title_en": "Mixed-Signal Sign-Off (top-level PV + final verdict)",
      "title_zh": "混訊簽核（頂層 PV + 最終判定）",
      "phase": "mixed_signal",
      "limitations_en": "Analog macro blackboxing is not full transistor signoff. Final mixed-signal verdict includes A7/A9/M2/M3 obligations and exact top GDS.",
      "current_default": {
        "mode": "program_only",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "M4",
          "programs": [
            "mixed_signal_signoff_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "M4",
          "programs": [
            "mixed_signal_signoff_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane top-level PV with mixed-signal completeness audit",
        "component_tool_ids": [
          "klayout",
          "magic",
          "netgen",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Final DRC/LVS/density/manufacturability",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Qualified full analog and digital content coverage required.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "checker",
          "applicability": "Top-level PDK DRC/LVS",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Layout processing, DRC and LVS with a supplied deck; an installed binary alone provides no PDK signoff coverage.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "magic",
          "role": "checker",
          "applicability": "Independent DRC/transistor extraction",
          "integration_status": "verified",
          "independence_family": "magic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Layout/gencells, DRC, extraction, LEF and GDS; applicable PDK technology and models are mandatory.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "netgen",
          "role": "checker",
          "applicability": "Top-level extracted/source LVS",
          "integration_status": "verified",
          "independence_family": "netgen",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "SPICE/Verilog netlist equivalence for LVS; extraction, setup and analog macro models determine actual scope.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "40",
      "title_en": "Fabrication (foundry mask-set + wafer fab — external)",
      "title_zh": "晶圓製造（foundry mask-set + fab · 外部）",
      "phase": "phase3",
      "limitations_en": "No software engine can perform wafer fabrication. Generated tracking documents provide no fabricated-wafer credit.",
      "current_default": {
        "mode": "external_attestation",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Validator reads fabrication attestation; no physical fabrication is performed by the program.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "40",
          "programs": [
            "manufacturing_fab_intake_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "40",
          "programs": [
            "manufacturing_fab_intake_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "fabrication"
        ],
        "primary_arm_count": 1,
        "label_en": "External fabrication with lot/wafer attestation",
        "component_tool_ids": [
          "vibeic"
        ],
        "status": "external_physical",
        "selection_reason": "This is a physical external process.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "fabrication",
          "role": "physical",
          "applicability": "Mask/wafer manufacturing",
          "integration_status": "external_physical",
          "independence_family": "fabrication",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Physical provider evidence is mandatory.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Lot/wafer lineage and external manufacturing attestation",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "41",
      "title_en": "Wafer Sort / Probe Test (ATE + probe card)",
      "title_zh": "晶圓分選 / 探針測試（ATE + probe card）",
      "phase": "phase3",
      "limitations_en": "ATE software and STDF parser do not establish that probing occurred. No equipment/wafer test is measured here.",
      "current_default": {
        "mode": "external_attestation",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Validator reads declared wafer-probe/test evidence; no ATE execution is implied.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "41",
          "programs": [
            "wafer_sort_yield_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "41",
          "programs": [
            "wafer_sort_yield_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "ni_sts"
        ],
        "primary_arm_count": 1,
        "label_en": "External calibrated wafer probe and ATE",
        "component_tool_ids": [
          "vibeic"
        ],
        "status": "needslicensed",
        "selection_reason": "Physical production test, not an EDA flow.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "ni_sts",
          "role": "physical",
          "applicability": "Wafer-sort/probe execution",
          "integration_status": "needslicensed",
          "independence_family": "ni_sts",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Requires prober, calibration, probe card, patterns and real wafers.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "teststand",
          "role": "orchestrator",
          "applicability": "ATE test program/binning/data capture",
          "integration_status": "needslicensed",
          "independence_family": "teststand",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Controls an equipped test cell; not a substitute for physical device measurements.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "pystdf",
          "role": "checker",
          "applicability": "STDF measurement import",
          "integration_status": "toolmissing",
          "independence_family": "pystdf",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Imports and analyzes test data. It does not execute wafer probe, production test or HTOL.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "42",
      "title_en": "Packaging (assembly: wirebond / FC-CSP / WLCSP)",
      "title_zh": "封裝（wirebond / FC-CSP / WLCSP）",
      "phase": "phase3",
      "limitations_en": "No EDA layout output proves packaged-device completion or assembly reliability.",
      "current_default": {
        "mode": "external_attestation",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Validator reads packaging evidence; no assembly process is performed locally.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "42",
          "programs": [
            "packaging_intake_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "42",
          "programs": [
            "packaging_intake_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "assembly"
        ],
        "primary_arm_count": 1,
        "label_en": "External assembly with package-specific attestations",
        "component_tool_ids": [
          "vibeic"
        ],
        "status": "external_physical",
        "selection_reason": "This is a physical external process.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "assembly",
          "role": "physical",
          "applicability": "Die attach, bond/flip-chip and package assembly",
          "integration_status": "external_physical",
          "independence_family": "assembly",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Provider-specific package process, not software.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "klayout",
          "role": "checker",
          "applicability": "Die/pad mapping pre-assembly geometry",
          "integration_status": "verified",
          "independence_family": "klayout",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Geometry compatibility is a prerequisite, not assembly completion.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "43",
      "title_en": "Final Test (ATE: functional + parametric + burn-in)",
      "title_zh": "最終測試（功能 + 參數 + burn-in）",
      "phase": "phase3",
      "limitations_en": "Burn-in is a distinct declared physical stress obligation; final-test software rc0 cannot substitute its actual population/time evidence.",
      "current_default": {
        "mode": "external_attestation",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Validator reads package/final-test evidence; no ATE execution is implied.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "43",
          "programs": [
            "final_test_attestation_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "43",
          "programs": [
            "final_test_attestation_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "ni_sts"
        ],
        "primary_arm_count": 1,
        "label_en": "External final ATE and declared burn-in",
        "component_tool_ids": [
          "vibeic"
        ],
        "status": "needslicensed",
        "selection_reason": "Physical production test, not an EDA flow.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "ni_sts",
          "role": "physical",
          "applicability": "Packaged functional/parametric test",
          "integration_status": "needslicensed",
          "independence_family": "ni_sts",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Physical handler, calibrated tester and real DUTs required.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "teststand",
          "role": "orchestrator",
          "applicability": "Final test management / STDF / binning",
          "integration_status": "needslicensed",
          "independence_family": "teststand",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Controls an equipped test cell; not a substitute for physical device measurements.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "pystdf",
          "role": "checker",
          "applicability": "Measured test-data analysis",
          "integration_status": "toolmissing",
          "independence_family": "pystdf",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Imports and analyzes test data. It does not execute wafer probe, production test or HTOL.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "44",
      "title_en": "Reliability qualification (HTOL / FIT attestation)",
      "title_zh": "可靠度驗證（HTOL / FIT）",
      "phase": "phase3",
      "limitations_en": "No reliability PASS without executed mission-profile stress and qualified statistical evidence; no software-only replacement.",
      "current_default": {
        "mode": "external_attestation",
        "tool_ids": [
          "vibeic"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Validator reads reliability evidence; no physical stress or qualification run is performed locally.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "44",
          "programs": [
            "htol_attestation_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "44",
          "programs": [
            "htol_attestation_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "qualification"
        ],
        "primary_arm_count": 1,
        "label_en": "External qualification with measured stress and FIT evidence",
        "component_tool_ids": [
          "vibeic"
        ],
        "status": "external_physical",
        "selection_reason": "This is a physical external process.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "qualification",
          "role": "physical",
          "applicability": "HTOL/reliability campaign",
          "integration_status": "external_physical",
          "independence_family": "qualification",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Physical stress, sample counts, temperatures and failures required.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "ni_sts",
          "role": "physical",
          "applicability": "Parametric pre/post-stress measurements",
          "integration_status": "needslicensed",
          "independence_family": "ni_sts",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Measurement support, not a complete qualification campaign.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "pystdf",
          "role": "checker",
          "applicability": "Import resulting production-test data",
          "integration_status": "toolmissing",
          "independence_family": "pystdf",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "A parser is not a FIT methodology.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        }
      ]
    },
    {
      "id": "P0",
      "title_en": "Structural-RTL pre-flight (chip-AGNOSTIC structural gates)",
      "title_zh": "結構化 RTL 預檢（77 個 chip-agnostic gate）",
      "phase": "phase2",
      "limitations_en": "Mostly own policy checks today. Frontend/lint reports cannot discharge the whole preflight population or replace actual testbench execution.",
      "current_default": {
        "mode": "direct_adapter",
        "tool_ids": [
          "vibeic",
          "iverilog"
        ],
        "verified": true,
        "verification_scope": "PINNED_SOURCE_AND_EXISTING_RECEIPTS_ONLY",
        "runtime_verified_now": false,
        "design_class_scope": [],
        "source_note_en": "Current adapter classification follows actual calls in the cited corrected source review and pinned source; tool presence is not the integration criterion.",
        "optional_source_arms": [],
        "source": {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "P0",
          "programs": [
            "flow_step_output_content_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      },
      "source_evidence": [
        {
          "repo": "https://github.com/vibeic/vibe-ic",
          "ref": "origin/main",
          "sha": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
          "canonical_file": "vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
          "canonical_step_id": "P0",
          "programs": [
            "flow_step_output_content_check"
          ],
          "capture_routes": [],
          "repo_source_url": "https://github.com/vibeic/vibe-ic/blob/f88175263d96c3a76b4cb18f72c7714c68ec6627/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml"
        }
      ],
      "policy_default": {
        "tool_ids": [
          "librelane"
        ],
        "primary_arm_count": 1,
        "label_en": "LibreLane RTL facts/lint with structural preflight gates",
        "component_tool_ids": [
          "yosys",
          "verilator",
          "vibeic"
        ],
        "status": "proposed",
        "selection_reason": "Prefer applicable LibreLane orchestration; preserve mandatory complementary checks and uncovered intent rules.",
        "is_deployed_current": false,
        "implementation_note": "Policy target, not a new source change or a runtime PASS.",
        "deployment_scope": "POLICY_TARGET_NOT_DEPLOYED_AS_A_COMPLETE_DEFAULT_MODE",
        "mode_framework_implemented": false
      },
      "ultra_tools": [
        {
          "tool_id": "librelane",
          "role": "orchestrator",
          "applicability": "Yosys.JsonHeader / Verilator.Lint",
          "integration_status": "proposed",
          "independence_family": "librelane_composite",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Frontend/lint tools feed declaration-based rules.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "yosys",
          "role": "producer",
          "applicability": "Elaborated connectivity/cell facts",
          "integration_status": "proposed",
          "independence_family": "yosys",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Must save typed current JSON.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "slang",
          "role": "producer",
          "applicability": "Semantic elaboration/AST",
          "integration_status": "proposed",
          "independence_family": "slang",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Semantic SystemVerilog elaboration and AST APIs. slang-tidy shares the slang family.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "verible",
          "role": "checker",
          "applicability": "Structural/style lint",
          "integration_status": "proposed",
          "independence_family": "verible",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Parser and style lint. A clean style report does not prove functional correctness or eliminate all elaboration defects.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "svck",
          "role": "checker",
          "applicability": "Additional lint",
          "integration_status": "proposed",
          "independence_family": "svck",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Additional lint rule set; rule coverage and target-project diagnostics need integration.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "iverilog",
          "role": "checker",
          "applicability": "Protocol reference-TB execution",
          "integration_status": "verified",
          "independence_family": "iverilog",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "A P0 subgate already invokes a real simulator.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "vibeic",
          "role": "checker",
          "applicability": "Intent, completeness and artifact provenance",
          "integration_status": "verified",
          "independence_family": "vibeic",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Mandatory evidence policy; not a competing EDA candidate.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PINNED_SOURCE",
          "parallel_dispatch_implemented": false
        },
        {
          "tool_id": "openroad",
          "role": "checker",
          "applicability": "sv_elaborate command presence only; integration semantics NOT_MEASURED",
          "integration_status": "proposed",
          "independence_family": "openroad",
          "same_output_interchangeable": false,
          "selection_group": "complementary_evidence",
          "note_en": "Accounted for from corrected review70. Exact target adapter, command semantics and runtime qualification are not inferred from historical presence.",
          "runtime_verified_now": false,
          "adapter_verification_scope": "PROPOSED_OR_ENVIRONMENT_DEPENDENT",
          "parallel_dispatch_implemented": false
        }
      ]
    }
  ],
  "runtime_status": {
    "as_of": "2026-09-30T19:01:24.619206+00:00",
    "main_source": "972a77b8d8fe70231d2938a4a23a1ce6fefc3c55",
    "release_version": "1.26.84",
    "current_main_verified_at": "2026-09-30T18:24:48.687026+00:00",
    "current_source_urls": {
      "release": "https://github.com/vibeic/vibe-ic/blob/972a77b8d8fe70231d2938a4a23a1ce6fefc3c55/vibe-ic-marketplace/plugins/vibe-ic/.claude-plugin/plugin.json",
      "canonical_flow": "https://github.com/vibeic/vibe-ic/blob/972a77b8d8fe70231d2938a4a23a1ce6fefc3c55/vibe-ic-marketplace/plugins/vibe-ic/flow/phase1_phase2_phase3.yaml",
      "default_contract": "https://github.com/vibeic/vibe-ic/blob/972a77b8d8fe70231d2938a4a23a1ce6fefc3c55/vibe-ic-marketplace/plugins/vibe-ic/programs/librelane_contract.py"
    },
    "catalog_snapshot_scope": {
      "meta_and_70_row_bodies_describe_original_snapshot": true,
      "source_main": "f88175263d96c3a76b4cb18f72c7714c68ec6627",
      "version": "1.26.79",
      "original_policy_rollout_scope": "Eight chip_pad_ring class defaults are source-integrated; remaining policy targets are proposals. This snapshot does not claim default/ultra mode selection is fully implemented for all steps.",
      "source_classifications": {
        "verified": 184,
        "toolmissing": 9,
        "proposed": 115,
        "needslicensed": 21,
        "external_physical": 4
      },
      "runtime_execution_of_333_paths": "NOT_MEASURED",
      "old_184_source_integrated_rows_freshly_reverified": false
    },
    "current_shipped_defaults": {
      "global": {
        "3": "librelane"
      },
      "class_scoped": {
        "chip_pad_ring": {
          "15": "librelane",
          "15.5ic": "librelane",
          "17": "librelane",
          "18": "librelane",
          "19": "librelane",
          "20": "librelane",
          "21": "librelane",
          "32": "librelane",
          "23": "librelane",
          "8": "dual",
          "10": "librelane",
          "26": "librelane",
          "26.5ic": "librelane"
        }
      },
      "chip_pad_ring_total": 13,
      "chip_pad_ring_librelane": 12,
      "chip_pad_ring_dual": 1,
      "prerequisites_and_explicit_overrides_apply": true
    },
    "parasitic_extraction": {
      "source_status": "SOURCE_ACCEPTED",
      "source_sha": "c1dec7a11598fb2b281ef22dda4193330a76dbfd",
      "original_C19_contracts_met": 19,
      "original_I25_contracts_met": 25,
      "shipping_status": "PENDING",
      "native_signoff": "NOT_MEASURED",
      "prior_SS_hold_ns": -0.0397,
      "open_hold_endpoints": 3
    },
    "hold_count_cap": {
      "corrected_runtime": "MEASURED_NATIVE_COUNT_CONTROLS",
      "native_positive_counts": [
        5,
        0,
        500,
        500
      ],
      "setup_growth": 1660,
      "frozen_cap_after_setup": 500,
      "reverse_counts": [
        6,
        521
      ],
      "A2_area_overhead_pct": 5.508834923934612,
      "area_budget_pct": 5,
      "area_status": "FAIL",
      "timing_status": "OPEN",
      "complete_delay_regression": "INCONCLUSIVE_TIMEOUT_DPL",
      "delay_consumer_rc": [
        124,
        124
      ],
      "wrong_748_image_receipts_valid_credit": false,
      "production_adoption": "NOT_MEASURED"
    },
    "canonical_order": [
      "D1",
      "0.5ic",
      "1",
      "2",
      "3",
      "4",
      "5",
      "6",
      "7",
      "8",
      "9",
      "10",
      "11",
      "FS1",
      "DT1",
      "12",
      "13",
      "A1",
      "A2",
      "A3",
      "A4",
      "A5",
      "A6",
      "A7",
      "A8",
      "A9",
      "14",
      "15",
      "15.5ic",
      "16",
      "17",
      "18",
      "19",
      "20",
      "21",
      "22",
      "DT2",
      "DT3",
      "32",
      "23",
      "24",
      "25",
      "26",
      "26.5ic",
      "27",
      "28",
      "29",
      "30",
      "33",
      "34",
      "35",
      "37",
      "37.3",
      "31",
      "36",
      "37.4",
      "37.5ip",
      "37.5ic",
      "38",
      "39",
      "M1",
      "M2",
      "M3",
      "M4",
      "40",
      "41",
      "42",
      "43",
      "44",
      "P0"
    ],
    "html_order_scope": "canonical within the five existing phase groups; phase navigation preserved",
    "fresh_EDA_or_repository_tests_run": false,
    "preview_only": true,
    "main_source_scope": "LANDED_RELEASE84_COMPONENT_ONLY_NOT_FIVE_FAMILY_CONTROLLER",
    "final_landed_main": {
      "state": "LANDED_FOUNDATION_COMPONENT_ONLY",
      "sha": "a4e037b1ebfbcc43e10dd073d2d6a3860952632f",
      "tree": "5a407e3293bf19c09f03fa49b8da1e911bfa07a9",
      "version": "1.26.83",
      "pr": 2865,
      "observed_utc": "2026-09-30T15:55:40.462015+00:00",
      "scope": "FOUNDATION_NOT_NEW_FIVE_FAMILY_CONTROLLER"
    },
    "new_generic_controller": {
      "state": "HISTORICAL_MATRIX_SOURCE_SNAPSHOT",
      "scope": "Historical matrix/source snapshot; its rollout status and counts do not define current per-step implementation or validation. Current counts come from the latest layered progress.",
      "historical_state": "FULL70_OPEN",
      "snapshot_observed_utc": "2026-09-30T14:36:36.161824+00:00",
      "scope_zh": "歷史 matrix／source 快照；其 rollout 狀態與計數不定義目前逐步實作或驗證。現在的計數來自最新 layered progress。",
      "current_counts_ref": "runtime_status.layered_progress.counts",
      "current_counts_authority_sha256": "3ddb6b1c9e728502e1138e9aac9ce18b66a5ccc098723177e3f882c828904e3b"
    },
    "final_stream_metrics": {
      "state": "ACTUAL_ORIGINAL_GATE_ENDED_RED7_NOT_RELEASED",
      "prepared_version": "1.26.84",
      "source": "cc22c1e31f99d0077ad8d971e3ee91a7a2253713",
      "tree": "6762d32382447b7d0ddb33e16f8d41146d8b9a12",
      "base_main": "a4e037b1ebfbcc43e10dd073d2d6a3860952632f",
      "gate_selection_count": 260,
      "fullgrid_nightly_NOT_RUN": 34,
      "launch_observed_utc": "2026-09-30T16:19:01.367518+00:00",
      "native_physical_accuracy": "NOT_MEASURED",
      "release_credit": false,
      "terminal_fact_authority_sha256": "6ec09d1258deed9d4121cdccbc656726ff86f31f91b458583794b1116c1f51b5",
      "repair_owner_scope": "Original cut13 two owned paths; no new site-owner execution"
    },
    "P0_source": {
      "state": "LANDED_P0_ONLY",
      "receipt": {
        "input": "final-renderer/inputs/P0_V12682_FINAL_LANDED_BINDING.json",
        "sha256": "b86c473b0f43ae72d8e6c76a128feb2db3de443e85547823da1f92f2b91be021",
        "json_pointer": ""
      },
      "landed_sha": "66cd909f870f8bac6d3b8e31e07c0cf4fcd03a12",
      "landed_tree": "ade6e127e96d4e138e162cc032101eab3c4af777",
      "landed_version": "1.26.82",
      "observed_utc": "2026-09-30T09:08:53.914088+00:00",
      "narrow": "G1112_PASSED_RAW0",
      "landing": "LANDED_EXACT_TREE",
      "all70_enhancement": "INCOMPLETE"
    },
    "completion_matrix": {
      "state": "HISTORICAL_MATRIX_SOURCE_SNAPSHOT",
      "receipt": {
        "input": "final-collector-matrix.json",
        "sha256": "e6ae82a98ef63929fb1db7b9953167d59ee1d417d4d0242d2a9cb2bb4da9829c",
        "json_pointer": ""
      },
      "historical_state": "OPEN_IMPLEMENTATION_MATRIX_NOT_COMPLETION_CLAIM",
      "historical_summary": {
        "canonical_rows": 70,
        "declared_catalog_arms": 333,
        "declared_tools": 63,
        "original_harvest_items": 433,
        "completion_status_counts": {
          "OPEN_FULL_POLICY_IMPLEMENTATION": 62,
          "OPEN_PRODUCTION_QUALIFICATION": 1,
          "OPEN_EXPLICIT_HANDOFF_ADAPTER": 7
        },
        "new_controller_producer_source_present": 1,
        "new_controller_real_native_adoption_measured": 0,
        "observed_main_new_controller_landed": false,
        "source_matrix_new_subject_execution": 0,
        "IC_completion_claim": false,
        "P0_component_landed_exact_tested_tree": true,
        "P0_component_landing_is_full70_completion": false,
        "foundation_v83_component_landed_exact_tested_tree": true,
        "global_publish_status_is_not_step_implementation_count": true
      },
      "snapshot_observed_utc": "2026-09-30T14:36:36.161824+00:00",
      "scope": "Historical matrix/source snapshot; its rollout status and counts do not define current per-step implementation or validation. Current counts come from the latest layered progress.",
      "scope_zh": "歷史 matrix／source 快照；其 rollout 狀態與計數不定義目前逐步實作或驗證。現在的計數來自最新 layered progress。",
      "current_counts_ref": "runtime_status.layered_progress.counts",
      "current_counts_authority_sha256": "3ddb6b1c9e728502e1138e9aac9ce18b66a5ccc098723177e3f882c828904e3b"
    },
    "status_export": "data/flow-tools.json",
    "layered_progress": {
      "schema": "vibeic.step70.layered-existing-progress.v1",
      "utc": "2026-09-30T16:46:58.171710+00:00",
      "scope": "Existing matrix/source wiring and ROOT receipts only; no new source/runtime census or test",
      "counts": {
        "canonical_steps": 70,
        "implementation_entrypoint_source_present": 70,
        "adapter_entrypoint_source_present": 69,
        "dedicated_step9_production_entrypoint_present": 1,
        "end_to_end_default_source_fixture_distinct_step_ids": 2,
        "end_to_end_default_source_fixture_root_accepted_step_ids": 2,
        "end_to_end_default_source_fixture_root_pending_step_ids": 0,
        "named_targeted_bounded_step_ids_lower_bound_including_two_end_to_end_and_P0_component": 10,
        "remaining_without_named_specific_end_to_end_credit_in_this_minimal_digest": 68,
        "both_modes_full_step_completion": "NOT_COUNTED_FROM_CATALOG_OR_GENERIC_FAMILY_PROOF",
        "missing_own_implementation_count": "REQUIRES_ACTUAL_FACTORY_PROVIDER_SOURCE_DISPOSITION_NOT_GLOBAL_PUBLISH_FLAG",
        "actual_default_factory_entries": 70,
        "actual_producer_factories": 64,
        "explicit_external_handoff_factories": 6,
        "actual_multi_competitor_producer_factories": 0,
        "production_superiority_ingress": false
      },
      "end_to_end_default_ids": [
        "A1",
        "9"
      ],
      "named_targeted_bounded_ids": [
        "A1",
        "9",
        "1",
        "4",
        "7",
        "16",
        "A4",
        "A9",
        "M1",
        "P0"
      ],
      "limits": [
        "SOURCE_FIXTURE software result is not native IC/PDK signoff",
        "Finite targeted plan/refusal/input controls are not a full default/ultra producer success",
        "69 source adapters plus Step9 are implemented entrypoint evidence; distinct-tools parallelism/fallback/promotion needs actual source disposition",
        "Old 62/1/7 global OPEN classification is retained as historical unqualified rollout scope; it is not a claim of zero implemented or zero validated steps",
        "New five-family release and site completion are separate global milestones"
      ],
      "global_release": {
        "P0_v82": "LANDED_EXACT_COMPONENT",
        "foundation_v83": {
          "path": "[private provenance]",
          "bytes": 1188,
          "sha256": "f2cc5557e7bba7e32fc3cd09a39a2fae82996d94ed6926ae2f632098d30a65f3"
        },
        "five_family_candidate": "aed056e17d4a79334e5dbb274f591535f88308d3 SOURCE_ONLY; original final pair pending",
        "current_five_family_site": "PENDING_ROOT_FINAL_SOURCE_RELEASE_AND_PUBLISH"
      },
      "basis": [
        {
          "path": "[private provenance]",
          "bytes": 406429,
          "sha256": "28f69a7097f1446a55c84e1d72c921060fc12ca522ef537281ab4bce8b9e59cd"
        }
      ],
      "existing_matrix_mutable_route": "[private provenance]",
      "basis_scope": "Source wiring immutable observation plus exact ROOT acceptance references; mutable rolling matrix route is not claimed as immutable content.",
      "actual_two_mode_source_disposition": {
        "path": "[private provenance]",
        "bytes": 49132,
        "sha256": "5a8fec656b04411d1206aebe97c414e163f3a4065d11fcc50c160a24d6f01b3c"
      },
      "actual_two_mode_code_boundary": {
        "core_priority_promotion_parallel_AI": true,
        "per_factory_actual_single_registered_producer": 64,
        "external_handoff_IDs": [
          "39",
          "40",
          "41",
          "42",
          "43",
          "44"
        ],
        "single_composite_provider_is_not_multiple_DISTINCT_tools": true,
        "superiority_actual_dispatch_ingress": "ABSENT",
        "full_modes_completed_steps": "NO_AUTOMATIC_CREDIT_FROM_FACTORY_COUNT; feasible applicable tool routes need exact disposition"
      }
    },
    "foundation_v83": {
      "state": "LANDED_EXACT_TREE",
      "gate": "G9857_PASS_RAW0_T52_PASS_RAW0_M_UNSELECTED",
      "G_skipped": 518,
      "G_xfailed": 3,
      "release": {
        "state": "LANDED_FOUNDATION_COMPONENT_ONLY",
        "sha": "a4e037b1ebfbcc43e10dd073d2d6a3860952632f",
        "tree": "5a407e3293bf19c09f03fa49b8da1e911bfa07a9",
        "version": "1.26.83",
        "pr": 2865,
        "observed_utc": "2026-09-30T15:55:40.462015+00:00",
        "scope": "FOUNDATION_NOT_NEW_FIVE_FAMILY_CONTROLLER"
      }
    },
    "current_status": {
      "scope": "CURRENT_STATUS_ONLY; historical row bodies and source/proof snapshots remain unchanged",
      "observed_utc": "2026-09-30T19:01:24.619206+00:00",
      "release": {
        "status": "LANDED_EXACT_TREE",
        "pr": 2866,
        "version": "1.26.84",
        "local_main_sha": "972a77b8d8fe70231d2938a4a23a1ce6fefc3c55",
        "remote_main_sha": "972a77b8d8fe70231d2938a4a23a1ce6fefc3c55",
        "github_merge_sha": "972a77b8d8fe70231d2938a4a23a1ce6fefc3c55",
        "github_pr_state": "MERGED",
        "expected_parents": [
          "a4e037b1ebfbcc43e10dd073d2d6a3860952632f",
          "b09d8f1d9a5a92d301c97e77691e9393b326fadf"
        ],
        "actual_parents": [
          "a4e037b1ebfbcc43e10dd073d2d6a3860952632f",
          "b09d8f1d9a5a92d301c97e77691e9393b326fadf"
        ],
        "expected_tested_tree": "842aecc6975992e12d8b0c573abc2ab8dd0fc5e5",
        "actual_main_tree": "842aecc6975992e12d8b0c573abc2ab8dd0fc5e5",
        "root_independent_verification_utc": "2026-09-30T18:24:48.687026+00:00",
        "actual_G": {
          "passed": 3473,
          "skipped": 37,
          "xfailed": 1,
          "rawrc": 0
        },
        "gate_acceptance": "919b6c996cb7130022b24f23f5cbd54731e8a5eadaf709203abdab1b8b1fda1e",
        "T_M": "UNSELECTED",
        "all70_enhancement": "NOT_COMPLETE",
        "native_IC": "NOT_MEASURED",
        "authority": {
          "sha256": "bfcd1e2faf2cbfbe5a118ffb05e50d9659910ef5ac15f3af5c5a3b572fa17b9f",
          "bytes": 1032
        }
      },
      "metrics84": {
        "state": "REPAIRED_RELATED_GATE_GREEN_AND_RELEASE84_LANDED",
        "source_sha": "b09d8f1d9a5a92d301c97e77691e9393b326fadf",
        "tested_tree": "842aecc6975992e12d8b0c573abc2ab8dd0fc5e5",
        "G": {
          "pass": 3473,
          "skip": 37,
          "xfail": 1,
          "raw_rc": 0,
          "seconds": 818.05
        },
        "T": "UNSELECTED",
        "M": "UNSELECTED",
        "nightly34": "NOT_RUN_NO_CREDIT",
        "authority": {
          "sha256": "919b6c996cb7130022b24f23f5cbd54731e8a5eadaf709203abdab1b8b1fda1e",
          "bytes": 789
        },
        "supersedes_historical_ref": "runtime_status.final_stream_metrics"
      },
      "controller_candidate": {
        "head": "18eb81816a9c92e4f64ee84edafd55f95a7b32a1",
        "tree": "d7261c2d11aa220345bf34a0181ebc29eb3b951e",
        "state": "SOURCE_ONLY_FROZEN_PREPARATION_PENDING; NOT_LANDED_NOT_GATE_PROVEN",
        "binding_sha256": "06207d78200d46f4affb3167999a73170c605001c665eea6dffddf92db79f48a",
        "typed_default_promotion": {
          "state": "ACCEPTED_BOUNDED_CHANGED_SOURCE_AND_ORIGINAL10_SOFTWARE_CASES",
          "source_head": "28194307fceff6271b2d3d5a9c724eb629820c0e",
          "same_current_INPUT_objective_and_evidence_binding": true,
          "bounded_software_cases": 10,
          "recorded_red_green_reverse_raw_rc": [
            1,
            0,
            1
          ],
          "independent_AI_best_artifact_adoption": "NOT_MEASURED",
          "native": "NOT_MEASURED",
          "authority": {
            "sha256": "43a7c26c9cfa9ce05f1f1dcb17c1782833de61b8be5291c8480af1bdd29557ec",
            "bytes": 4048
          }
        },
        "Step3_caller": {
          "state": "ACCEPTED_SOURCE_FIXTURE_SUBSET",
          "source_head": "945526b41eec3527b3cc73140bc065108e925f39",
          "scope": "SOURCE_DELTA_AND_RECORDED_CHANGED_SOFTWARE_CONTROL_ONLY",
          "input_kind": "CAPTURED_BOUNDARY_SOFTWARE_INPUT",
          "sequence": "CURRENT_FILTERED_RTL_TO_EXISTING_NETLIST_BUILDER_BEFORE_FOUR_MANDATORY_CONSUMERS",
          "bounded_software_cases": 1,
          "mandatory_consumers": 4,
          "native_Yosys": "NOT_RUN",
          "full_CDC": "NOT_QUALIFIED",
          "full_Step3": "NOT_QUALIFIED",
          "authority": {
            "sha256": "30c6cfe1c92073d9a58df046696d4f3b6a7be8e6154fdbda2f97b384bac7f440",
            "bytes": 2141
          }
        },
        "base_main": "972a77b8d8fe70231d2938a4a23a1ce6fefc3c55",
        "binding_bytes": 15737,
        "assigned_version": "1.26.85",
        "release": "NOT_LANDED",
        "gate": "NOT_GATE_PROVEN",
        "original_proof_epochs": {
          "I": "9f18a4ab0efe456b2431fc28ff5df279fea193b4",
          "C3": "aed056e17d4a79334e5dbb274f591535f88308d3",
          "preserved": true
        },
        "proof_epoch_scope": "ORIGINAL_SCOPED_CONTROLS_PRESERVED; NO_CURRENT_PORT_RUNTIME_REPLAY",
        "backend_callback_context": {
          "state": "ROOT_ACCEPTED_NECESSARY_BOUNDED_SOURCE_INCREMENT",
          "authority_sha256": "591a480ba01aa5a5afa614fdf7cbf8bb5438513bfe77ade7119268bb3611f5ee",
          "authority_bytes": 5053,
          "owned_worker_sha256": "2eb78349e5315f8dc0fa9f113449515327e3af667ac169fe28e70b41981837dd",
          "original_source_base": "6a94d65387fe4b607a1554763be8995ab1a1138e",
          "original_result_tree": "701d6a89dcc2ca0935f4641624a4385fa28e9c71",
          "scope": "ACTUAL_PRODUCTION_STEP_DECORATORS_AROUND_LOCAL_TOY_CALLABLES_31_37; CONTEXT_HELPER_ONLY",
          "proof_epoch_utc": "2026-09-30T18:52:23.168744+00:00",
          "worker_execute": "NOT_EXECUTED",
          "native_boundary": "NOT_EXECUTED",
          "whole_producer": "NOT_EXECUTED",
          "complete_step_qualification": "NOT_ESTABLISHED",
          "native_IC": "NOT_MEASURED",
          "original_terminal_limit": "Original existing prompt wrapper raw0 captured, but independent fixture PID/start terminal lifetime not captured; no new terminal proof manufactured."
        }
      },
      "boundaries": {
        "source_implementation": "SCOPED_ACCEPTED_DELTAS",
        "finite_software_validation": "ORIGINAL_BOUNDED_CONTROLS_ONLY_NO_REPLAY",
        "artifact_adoption": "NO_NEW_FULL_OR_INDEPENDENT_AI_ADOPTION_CREDIT",
        "native_IC": "NOT_MEASURED",
        "full70_modes": "NOT_COMPLETE",
        "five_family_release": "UNLANDED",
        "default_E2E_source_fixture_ids": [
          "A1",
          "9"
        ],
        "new_full_mode_count": "NONE",
        "targeted_bounded_distinct_ID_lower_bound": 11
      },
      "historical_snapshot_refs": [
        "runtime_status.foundation_v83",
        "runtime_status.final_landed_main",
        "runtime_status.final_stream_metrics",
        "runtime_status.layered_progress",
        "runtime_status.new_generic_controller",
        "runtime_status.completion_matrix",
        "enhancement70"
      ],
      "source_inventory": {
        "epoch": "aed inventory64single+6handoff/0multicompetitor",
        "reference": "runtime_status.layered_progress.counts",
        "scope": "HISTORICAL_INVENTORY_NOT_NEW_CANDIDATE_CENSUS",
        "new_census": false
      },
      "historical_controller_candidate": {
        "scope": "HISTORICAL_SOURCE_AND_ORIGINAL_PROOF_EPOCH_NOT_CURRENT_SOURCE",
        "prepared_HTML_sha256": "37c219d0bf7a6d65795d40324552520dad4a0be5667791b541a744e98e9d68f1",
        "prepared_JSON_sha256": "19599f6df5f1789e31d20a149e26bec5d789354334cfba0ff482f363e488ab3d",
        "snapshot": {
          "head": "2e84820410a0ed2742cd8d19e6c66d51262fbf7b",
          "tree": "8a6c30bef5479a6d63b9dfff969d8d53ee1d2d3e",
          "state": "UNLANDED_SOURCE_ONLY",
          "binding_sha256": "a9747c3e64677523ce5437fd07937bcb2bb86ffa1e31676310d27df18cda129d",
          "typed_default_promotion": {
            "state": "ACCEPTED_BOUNDED_CHANGED_SOURCE_AND_ORIGINAL10_SOFTWARE_CASES",
            "source_head": "28194307fceff6271b2d3d5a9c724eb629820c0e",
            "same_current_INPUT_objective_and_evidence_binding": true,
            "bounded_software_cases": 10,
            "recorded_red_green_reverse_raw_rc": [
              1,
              0,
              1
            ],
            "independent_AI_best_artifact_adoption": "NOT_MEASURED",
            "native": "NOT_MEASURED",
            "authority": {
              "sha256": "43a7c26c9cfa9ce05f1f1dcb17c1782833de61b8be5291c8480af1bdd29557ec",
              "bytes": 4048
            }
          },
          "Step3_caller": {
            "state": "ACCEPTED_SOURCE_FIXTURE_SUBSET",
            "source_head": "945526b41eec3527b3cc73140bc065108e925f39",
            "scope": "SOURCE_DELTA_AND_RECORDED_CHANGED_SOFTWARE_CONTROL_ONLY",
            "input_kind": "CAPTURED_BOUNDARY_SOFTWARE_INPUT",
            "sequence": "CURRENT_FILTERED_RTL_TO_EXISTING_NETLIST_BUILDER_BEFORE_FOUR_MANDATORY_CONSUMERS",
            "bounded_software_cases": 1,
            "mandatory_consumers": 4,
            "native_Yosys": "NOT_RUN",
            "full_CDC": "NOT_QUALIFIED",
            "full_Step3": "NOT_QUALIFIED",
            "authority": {
              "sha256": "30c6cfe1c92073d9a58df046696d4f3b6a7be8e6154fdbda2f97b384bac7f440",
              "bytes": 2141
            }
          }
        }
      },
      "v85_gate_terminal": {
        "state": "RED217_RAW1_RETURNED_FOR_REPAIR_NOT_LANDED",
        "decision": "BLOCK_LANDING_ACTUAL_PLAIN_FAILED_SCOPE",
        "observed_utc": "2026-09-30T19:52:57.596656+00:00",
        "version": "1.26.85",
        "tested_prepared_sha": "f3c66a6d4fc29416655c8dbf2fe1de52fb61b423",
        "tested_tree": "a3241b6b172a24d12dc9108443c5da3eb8b3e8b8",
        "tested_main": "972a77b8d8fe70231d2938a4a23a1ce6fefc3c55",
        "G": {
          "passed": 6815,
          "failed": 217,
          "skipped": 263,
          "xfailed": 1,
          "raw_rc": 1,
          "original_log_sha256": "3729b90e4939403a6a63aa48322c6f4ee8082b86414ea433c7ea9f50fa39c87f",
          "original_log_bytes": 368453,
          "original_summary_line": "217 failed, 6815 passed, 263 skipped, 1 xfailed, 9 warnings in 1318.26s (0:21:58)"
        },
        "T_M": "UNSELECTED",
        "nightly": {
          "count": 11,
          "state": "NOT_RUN",
          "credit": 0
        },
        "authority_sha256": "1512862fda94a8eaf589e8235e24b67822002073b3a1555a089c50c41ffed6c0",
        "authority_bytes": 29409,
        "scope": "EXISTING_ONCE_SOFTWARE_GATE; COUNTS_ARE_NOT_STEP_COMPLETION_OR_NATIVE_IC_QUALIFICATION",
        "new_gate_invocations": 0,
        "release": "UNLANDED",
        "native_IC": "NOT_MEASURED"
      },
      "Step30_resolver_status": {
        "state": "PARTIAL_SOURCE_WIRING",
        "supplied_increment_bytes": 3031,
        "scope": "SUPPLIED_DEFAULT_INSTRUMENT_SET_RESOLVER_ONLY",
        "discovery": "OPEN_NOT_MEASURED",
        "concurrency": "OPEN",
        "multi_candidate_adoption": "NOT_MEASURED",
        "native_execution": "NOT_MEASURED",
        "source_fact_authority": {
          "input": "BRIEF.md",
          "sha256": "339555f435dfc3288cb7446e63ed19e7ed5a46986e61371328092ac55870d48a"
        },
        "new_E2E_fullmode_or_native_credit": false
      }
    }
  },
  "enhancement70": {
    "state": "CURRENT_FACTS_WITH_SCOPED_EXISTING_PROGRESS",
    "preview_only": true,
    "final_landed_main": {
      "state": "LANDED_FOUNDATION_COMPONENT_ONLY",
      "sha": "a4e037b1ebfbcc43e10dd073d2d6a3860952632f",
      "tree": "5a407e3293bf19c09f03fa49b8da1e911bfa07a9",
      "version": "1.26.83",
      "pr": 2865,
      "observed_utc": "2026-09-30T15:55:40.462015+00:00",
      "scope": "FOUNDATION_NOT_NEW_FIVE_FAMILY_CONTROLLER"
    },
    "canonical_order": [
      "D1",
      "0.5ic",
      "1",
      "2",
      "3",
      "4",
      "5",
      "6",
      "7",
      "8",
      "9",
      "10",
      "11",
      "FS1",
      "DT1",
      "12",
      "13",
      "A1",
      "A2",
      "A3",
      "A4",
      "A5",
      "A6",
      "A7",
      "A8",
      "A9",
      "14",
      "15",
      "15.5ic",
      "16",
      "17",
      "18",
      "19",
      "20",
      "21",
      "22",
      "DT2",
      "DT3",
      "32",
      "23",
      "24",
      "25",
      "26",
      "26.5ic",
      "27",
      "28",
      "29",
      "30",
      "33",
      "34",
      "35",
      "37",
      "37.3",
      "31",
      "36",
      "37.4",
      "37.5ip",
      "37.5ic",
      "38",
      "39",
      "M1",
      "M2",
      "M3",
      "M4",
      "40",
      "41",
      "42",
      "43",
      "44",
      "P0"
    ],
    "facts": [
      {
        "step_id": "D1",
        "canonical_index": 0,
        "family_id": "F2",
        "title_en": "Phase 1 Doc Extraction (17 skills + dialogue entry → L1-L27)",
        "title_zh": "Phase 1 文件萃取（17 個 skill + 對話入口 → L1–L27）",
        "function": {
          "en": "Phase 1 Doc Extraction (17 skills + dialogue entry → L1-L27). Inputs: phase1/input_prompt/* OR phase1/input_doc/* OR input/docs/* OR input/phase1_prompt.md OR input/phase1_structured.yaml. Outputs: phase1/generated_docs/L1_DATASHEET.json; phase1/generated_docs/L2_FRS.json; phase1/generated_docs/L3_CMD_PROTOCOL.json; phase1/generated_docs/L4_REGMAP.json; phase1/generated_docs/L5_ADI_SPEC.json; phase1/generated_docs/L6_CONTROL_LOGIC.json; phase1/generated_docs/L7_TEST_DEBUG.json; phase1/generated_docs/L8_TIMING_WAVEFORM.json; phase1/generated_docs/L8_RTL_CONSTANTS.json; phase1/generated_docs/L9_INTEGRATION_SPEC.json; phase1/generated_docs/L10_TEST_CASES.json; phase1/generated_docs/L11_OTP_CONTENT.json; phase1/generated_docs/L12_BEHAVIORAL_SEQUENCES.json; phase1/generated_docs/L13_*.json; phase1/generated_docs/L19_CONSTRAINTS_PDK.json; phase1/generated_docs/L21_POWER_INTENT.json; reports/phase1/extraction_coverage_report.md; reports/phase1/extraction_coverage_report.json; reports/audit/phase1/expert_parse_track.json; phase1/extraction_patterns.json.",
          "zh": "Phase 1 文件萃取（17 個 skill + 對話入口 → L1–L27）。輸入：phase1/input_prompt/* OR phase1/input_doc/* OR input/docs/* OR input/phase1_prompt.md OR input/phase1_structured.yaml。輸出：phase1/generated_docs/L1_DATASHEET.json；phase1/generated_docs/L2_FRS.json；phase1/generated_docs/L3_CMD_PROTOCOL.json；phase1/generated_docs/L4_REGMAP.json；phase1/generated_docs/L5_ADI_SPEC.json；phase1/generated_docs/L6_CONTROL_LOGIC.json；phase1/generated_docs/L7_TEST_DEBUG.json；phase1/generated_docs/L8_TIMING_WAVEFORM.json；phase1/generated_docs/L8_RTL_CONSTANTS.json；phase1/generated_docs/L9_INTEGRATION_SPEC.json；phase1/generated_docs/L10_TEST_CASES.json；phase1/generated_docs/L11_OTP_CONTENT.json；phase1/generated_docs/L12_BEHAVIORAL_SEQUENCES.json；phase1/generated_docs/L13_*.json；phase1/generated_docs/L19_CONSTRAINTS_PDK.json；phase1/generated_docs/L21_POWER_INTENT.json；reports/phase1/extraction_coverage_report.md；reports/phase1/extraction_coverage_report.json；reports/audit/phase1/expert_parse_track.json；phase1/extraction_patterns.json。",
          "inputs": [
            {
              "from": "external",
              "path": "phase1/input_prompt/* OR phase1/input_doc/* OR input/docs/* OR input/phase1_prompt.md OR input/phase1_structured.yaml",
              "what": "the user's natural-language prompt or dialogue fact-graph (Path B) or the supplied datasheets / specs (Path A), at any of the staged entry points this runner reads"
            }
          ],
          "outputs": [
            "phase1/generated_docs/L1_DATASHEET.json",
            "phase1/generated_docs/L2_FRS.json",
            "phase1/generated_docs/L3_CMD_PROTOCOL.json",
            "phase1/generated_docs/L4_REGMAP.json",
            "phase1/generated_docs/L5_ADI_SPEC.json",
            "phase1/generated_docs/L6_CONTROL_LOGIC.json",
            "phase1/generated_docs/L7_TEST_DEBUG.json",
            "phase1/generated_docs/L8_TIMING_WAVEFORM.json",
            "phase1/generated_docs/L8_RTL_CONSTANTS.json",
            "phase1/generated_docs/L9_INTEGRATION_SPEC.json",
            "phase1/generated_docs/L10_TEST_CASES.json",
            "phase1/generated_docs/L11_OTP_CONTENT.json",
            "phase1/generated_docs/L12_BEHAVIORAL_SEQUENCES.json",
            "phase1/generated_docs/L13_*.json",
            "phase1/generated_docs/L19_CONSTRAINTS_PDK.json",
            "phase1/generated_docs/L21_POWER_INTENT.json",
            "reports/phase1/extraction_coverage_report.md",
            "reports/phase1/extraction_coverage_report.json",
            "reports/audit/phase1/expert_parse_track.json",
            "phase1/extraction_patterns.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "vibeic"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 3 references; destinations: librelane_config, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：3 個參照；目的地：librelane_config, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/0"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/0"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/0"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/0"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/0"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "D1-H1",
              "declared_destination": "librelane_config"
            },
            {
              "id": "D1-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "D1-H3",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "0.5ic",
        "canonical_index": 1,
        "family_id": "F2",
        "title_en": "Submission Template Ingest — the operator's slot geometry and fixtures (chip/IC path only)",
        "title_zh": "引入送件樣板（晶片路徑）",
        "function": {
          "en": "Submission Template Ingest — the operator's slot geometry and fixtures (chip/IC path only). Inputs: the shuttle operator's published project template — the repository or archive that pins the slot geometry, ships the die-identification fixtures, and lists the pads for each slot. Declared as external and unprobed because it is fetched, not produced, and the flow must be able to say it was never fetched.. Outputs: input/submission_template/slots/*.yaml OR input/submission_template/NO_TEMPLATE.txt OR input/submission_template/SELF_TAPEOUT.txt; reports/phase1/submission_template.json; input/submission_template/tapeout_declaration.json; reports/phase1/tapeout_declaration.json.",
          "zh": "引入送件樣板（晶片路徑）。輸入：the shuttle operator's published project template — the repository or archive that pins the slot geometry, ships the die-identification fixtures, and lists the pads for each slot. Declared as external and unprobed because it is fetched, not produced, and the flow must be able to say it was never fetched.。輸出：input/submission_template/slots/*.yaml OR input/submission_template/NO_TEMPLATE.txt OR input/submission_template/SELF_TAPEOUT.txt；reports/phase1/submission_template.json；input/submission_template/tapeout_declaration.json；reports/phase1/tapeout_declaration.json。",
          "inputs": [
            {
              "from": "external",
              "check": "none",
              "what": "the shuttle operator's published project template — the repository or archive that pins the slot geometry, ships the die-identification fixtures, and lists the pads for each slot. Declared as external and unprobed because it is fetched, not produced, and the flow must be able to say it was never fetched."
            }
          ],
          "outputs": [
            "input/submission_template/slots/*.yaml OR input/submission_template/NO_TEMPLATE.txt OR input/submission_template/SELF_TAPEOUT.txt",
            "reports/phase1/submission_template.json",
            "input/submission_template/tapeout_declaration.json",
            "reports/phase1/tapeout_declaration.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "vibeic"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 4 references; destinations: librelane_config, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：4 個參照；目的地：librelane_config, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/1"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/1"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/1"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/1"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/1"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "0.5ic-H1",
              "declared_destination": "librelane_config"
            },
            {
              "id": "0.5ic-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "0.5ic-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "0.5ic-H4",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "1",
        "canonical_index": 2,
        "family_id": "F2",
        "title_en": "Spec-to-RTL",
        "title_zh": "Spec-to-RTL",
        "function": {
          "en": "Spec-to-RTL. Inputs: D1. Outputs: phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v.",
          "zh": "Spec-to-RTL。輸入：D1。輸出：phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v。",
          "inputs": [
            {
              "from": "D1",
              "outputs": "all"
            }
          ],
          "outputs": [
            "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "vibeic"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 4 references; destinations: librelane_config, vibeic_gate, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：4 個參照；目的地：librelane_config, vibeic_gate, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/2"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "TARGETED_CALLER_HANDOFF_CONTROL_ROOT_ACCEPTED",
          "en": "Step1 handoff extras/source identity retained; not spec-to-RTL producer success",
          "zh": "Step1 已接受 handoff extras／source identity 控制；不構成 spec-to-RTL producer 成功。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/2"
            }
          ],
          "receipt": {
            "bytes": 2193,
            "sha256": "58e2e1f7c28158f145cbedd69aa1a89903e65421d4e64bcc2c9af8ec8f6f3c7d"
          }
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/2"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/2"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/2"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "1-H1",
              "declared_destination": "librelane_config"
            },
            {
              "id": "1-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "1-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "1-H4",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "2",
        "canonical_index": 3,
        "family_id": "F2",
        "title_en": "🔁 RTL validation (rewrite fidelity + lint + Quartus-unsafe patterns + RTL-bug claim schema)",
        "title_zh": "Lint（RTL 衛生 + Quartus-unsafe）",
        "function": {
          "en": "🔁 RTL validation (rewrite fidelity + lint + Quartus-unsafe patterns + RTL-bug claim schema). Inputs: phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v. Outputs: reports/phase2/lint/rtl_hygiene.json; reports/phase2/lint/rom_init_lint.json; reports/crosslayer/rewrite_equivalence_check.json.",
          "zh": "Lint（RTL 衛生 + Quartus-unsafe）。輸入：phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v。輸出：reports/phase2/lint/rtl_hygiene.json；reports/phase2/lint/rom_init_lint.json；reports/crosslayer/rewrite_equivalence_check.json。",
          "inputs": [
            {
              "from": 1,
              "path": "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
            }
          ],
          "outputs": [
            "reports/phase2/lint/rtl_hygiene.json",
            "reports/phase2/lint/rom_init_lint.json",
            "reports/crosslayer/rewrite_equivalence_check.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 8 references; destinations: vibeic_gate, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：8 個參照；目的地：vibeic_gate, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/3"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/3"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/3"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/3"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/3"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "2-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "2-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "2-H3",
              "declared_destination": "drop"
            },
            {
              "id": "2-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "2-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "2-H6",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "2-H7",
              "declared_destination": "drop"
            },
            {
              "id": "2-H8",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "3",
        "canonical_index": 4,
        "family_id": "F2",
        "title_en": "🔁 CDC / RDC check",
        "title_zh": "CDC / RDC 檢查",
        "function": {
          "en": "🔁 CDC / RDC check. Inputs: phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v. Outputs: reports/phase2/cdc/crossing.json; reports/phase2/cdc/async_input.json; reports/phase2/cdc/reset_dep.json.",
          "zh": "CDC / RDC 檢查。輸入：phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v。輸出：reports/phase2/cdc/crossing.json；reports/phase2/cdc/async_input.json；reports/phase2/cdc/reset_dep.json。",
          "inputs": [
            {
              "from": 1,
              "path": "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
            }
          ],
          "outputs": [
            "reports/phase2/cdc/crossing.json",
            "reports/phase2/cdc/async_input.json",
            "reports/phase2/cdc/reset_dep.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 4 references; destinations: vibeic_gate, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：4 個參照；目的地：vibeic_gate, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/4"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/4"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/4"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/4"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/4"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "3-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "3-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "3-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "3-H4",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "4",
        "canonical_index": 5,
        "family_id": "F2",
        "title_en": "🔁 Simulation (testbench-based + L10/L12 coverage + Verilator coverage)",
        "title_zh": "模擬（testbench + coverage）",
        "function": {
          "en": "🔁 Simulation (testbench-based + L10/L12 coverage + Verilator coverage). Inputs: phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v; phase1/generated_docs/L10_TEST_CASES.json; phase1/generated_docs/L12_BEHAVIORAL_SEQUENCES.json. Outputs: phase2/stage1/sim/*.log OR phase2/stage1/sim/results.xml OR phase2/stage1/sim/pass.flag OR phase2/stage1/sim_professional/**/results.xml; reports/phase2/coverage/coverage_actual.json; reports/phase2/coverage/coverage_verilator.json.",
          "zh": "模擬（testbench + coverage）。輸入：phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v；phase1/generated_docs/L10_TEST_CASES.json；phase1/generated_docs/L12_BEHAVIORAL_SEQUENCES.json。輸出：phase2/stage1/sim/*.log OR phase2/stage1/sim/results.xml OR phase2/stage1/sim/pass.flag OR phase2/stage1/sim_professional/**/results.xml；reports/phase2/coverage/coverage_actual.json；reports/phase2/coverage/coverage_verilator.json。",
          "inputs": [
            {
              "from": 1,
              "path": "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
            },
            {
              "from": "D1",
              "path": "phase1/generated_docs/L10_TEST_CASES.json"
            },
            {
              "from": "D1",
              "path": "phase1/generated_docs/L12_BEHAVIORAL_SEQUENCES.json"
            }
          ],
          "outputs": [
            "phase2/stage1/sim/*.log OR phase2/stage1/sim/results.xml OR phase2/stage1/sim/pass.flag OR phase2/stage1/sim_professional/**/results.xml",
            "reports/phase2/coverage/coverage_actual.json",
            "reports/phase2/coverage/coverage_verilator.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "iverilog"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: fork_patch:vibeic/verilator, vibeic_gate, librelane_custom_step. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：fork_patch:vibeic/verilator, vibeic_gate, librelane_custom_step。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/5"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "TARGETED_INPUT_SELECTOR_CONTROL_ROOT_ACCEPTED",
          "en": "Step4 selector binds actual INPUT; unsupported provider refused; no native producer execution",
          "zh": "Step4 selector 綁定實際 INPUT；拒絕不支援 provider，未執行原生 producer。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/5"
            }
          ],
          "receipt": {
            "bytes": 9026,
            "sha256": "aa9ee4063ca713b111736c404b0803b970fa37a7f64ef3143cda4d6355bceefe"
          }
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/5"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/5"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/5"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "4-H1",
              "declared_destination": "fork_patch:vibeic/verilator"
            },
            {
              "id": "4-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "4-H3",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "4-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "4-H5",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "5",
        "canonical_index": 6,
        "family_id": "F2",
        "title_en": "🔁 Formal verification (assertions proved + bit-level full-stack phase2/stage1/tb)",
        "title_zh": "Formal 驗證（assertions）",
        "function": {
          "en": "🔁 Formal verification (assertions proved + bit-level full-stack phase2/stage1/tb). Inputs: phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v. Outputs: phase2/stage1/formal/*.sby OR phase2/stage1/formal/formal_authoring_request.json OR phase2/stage1/formal/formal_not_applicable.json; phase2/stage1/formal/results.json OR phase2/stage1/formal/formal_authoring_request.json OR phase2/stage1/formal/formal_not_applicable.json; phase2/stage1/sim_full_stack/results.json.",
          "zh": "Formal 驗證（assertions）。輸入：phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v。輸出：phase2/stage1/formal/*.sby OR phase2/stage1/formal/formal_authoring_request.json OR phase2/stage1/formal/formal_not_applicable.json；phase2/stage1/formal/results.json OR phase2/stage1/formal/formal_authoring_request.json OR phase2/stage1/formal/formal_not_applicable.json；phase2/stage1/sim_full_stack/results.json。",
          "inputs": [
            {
              "from": 1,
              "path": "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
            }
          ],
          "outputs": [
            "phase2/stage1/formal/*.sby OR phase2/stage1/formal/formal_authoring_request.json OR phase2/stage1/formal/formal_not_applicable.json",
            "phase2/stage1/formal/results.json OR phase2/stage1/formal/formal_authoring_request.json OR phase2/stage1/formal/formal_not_applicable.json",
            "phase2/stage1/sim_full_stack/results.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "sby"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 6 references; destinations: vibeic_gate, fork_patch:vibeic/yosys. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：6 個參照；目的地：vibeic_gate, fork_patch:vibeic/yosys。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/6"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/6"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/6"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/6"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/6"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "5-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "5-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "5-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "5-H4",
              "declared_destination": "fork_patch:vibeic/yosys"
            },
            {
              "id": "5-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "5-H6",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "6",
        "canonical_index": 7,
        "family_id": "F2",
        "title_en": "FPGA early prototype + verification report audit",
        "title_zh": "FPGA 早期原型 + 稽核",
        "function": {
          "en": "FPGA early prototype + verification report audit. Inputs: phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v. Outputs: phase2/stage1/fpga/output_files/*.sof; phase2/stage1/fpga/output_files/*.map.rpt; reports/phase2/fpga/quartus_map_audit.json.",
          "zh": "FPGA 早期原型 + 稽核。輸入：phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v。輸出：phase2/stage1/fpga/output_files/*.sof；phase2/stage1/fpga/output_files/*.map.rpt；reports/phase2/fpga/quartus_map_audit.json。",
          "inputs": [
            {
              "from": 1,
              "path": "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
            }
          ],
          "outputs": [
            "phase2/stage1/fpga/output_files/*.sof",
            "phase2/stage1/fpga/output_files/*.map.rpt",
            "reports/phase2/fpga/quartus_map_audit.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "quartus"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 3 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：3 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/7"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/7"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/7"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/7"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/7"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "6-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "6-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "6-H3",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "7",
        "canonical_index": 8,
        "family_id": "F2",
        "title_en": "Constraint setup (SDC + PVT matrix)",
        "title_zh": "Constraint setup（SDC + PVT）",
        "function": {
          "en": "Constraint setup (SDC + PVT matrix). Inputs: phase1/generated_docs/L8_TIMING_WAVEFORM.json; phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v. Outputs: phase2/stage2/constraints/*.sdc; phase2/stage2/constraints/pvt_matrix.json.",
          "zh": "Constraint setup（SDC + PVT）。輸入：phase1/generated_docs/L8_TIMING_WAVEFORM.json；phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v。輸出：phase2/stage2/constraints/*.sdc；phase2/stage2/constraints/pvt_matrix.json。",
          "inputs": [
            {
              "from": "D1",
              "path": "phase1/generated_docs/L8_TIMING_WAVEFORM.json"
            },
            {
              "from": 1,
              "path": "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
            }
          ],
          "outputs": [
            "phase2/stage2/constraints/*.sdc",
            "phase2/stage2/constraints/pvt_matrix.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 7 references; destinations: librelane_config, fork_patch:vibeic/librelane, vibeic_gate, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：7 個參照；目的地：librelane_config, fork_patch:vibeic/librelane, vibeic_gate, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/8"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "TARGETED_SEMANTIC_CONSUMER_CONTROL_ROOT_ACCEPTED",
          "en": "wrong clock edge and period10->20 meaningful semantic FAIL retained; scope is preserved Step7 software controls",
          "zh": "保留 Step7 錯誤時脈邊緣及 period 10→20 的語意 FAIL 控制；範圍為軟體 controls。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/8"
            }
          ],
          "receipt": {
            "bytes": 6891,
            "sha256": "498c5e99a4dfc783172fb90fbe5302b9054f38950976cdec2c548fcc5fe70355"
          }
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/8"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/8"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/8"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "7-H1",
              "declared_destination": "librelane_config"
            },
            {
              "id": "7-H2",
              "declared_destination": "librelane_config"
            },
            {
              "id": "7-H3",
              "declared_destination": "fork_patch:vibeic/librelane"
            },
            {
              "id": "7-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "7-H5",
              "declared_destination": "librelane_config"
            },
            {
              "id": "7-H6",
              "declared_destination": "drop"
            },
            {
              "id": "7-H7",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "8",
        "canonical_index": 9,
        "family_id": "F2",
        "title_en": "🔁 SDC validation",
        "title_zh": "SDC 驗證",
        "function": {
          "en": "🔁 SDC validation. Inputs: phase2/stage2/constraints/*.sdc; phase2/stage2/constraints/pvt_matrix.json; phase1/generated_docs/L8_TIMING_WAVEFORM.json. Outputs: reports/phase2/sdc_check.json.",
          "zh": "SDC 驗證。輸入：phase2/stage2/constraints/*.sdc；phase2/stage2/constraints/pvt_matrix.json；phase1/generated_docs/L8_TIMING_WAVEFORM.json。輸出：reports/phase2/sdc_check.json。",
          "inputs": [
            {
              "from": 7,
              "path": "phase2/stage2/constraints/*.sdc"
            },
            {
              "from": 7,
              "path": "phase2/stage2/constraints/pvt_matrix.json"
            },
            {
              "from": "D1",
              "path": "phase1/generated_docs/L8_TIMING_WAVEFORM.json"
            }
          ],
          "outputs": [
            "reports/phase2/sdc_check.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/9"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/9"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/9"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/9"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/9"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "8-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "8-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "8-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "8-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "8-H5",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "9",
        "canonical_index": 10,
        "family_id": "F1",
        "title_en": "Synthesis (Yosys → mapped netlist)",
        "title_zh": "合成（Yosys → 映射網表）",
        "function": {
          "en": "Synthesis (Yosys → mapped netlist). Inputs: input/submission_template/tapeout_declaration.json; phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v. Outputs: phase2/stage2/synth/netlist.v; phase2/stage2/synth/area.rpt OR phase2/stage2/synth/stats.json.",
          "zh": "合成（Yosys → 映射網表）。輸入：input/submission_template/tapeout_declaration.json；phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v。輸出：phase2/stage2/synth/netlist.v；phase2/stage2/synth/area.rpt OR phase2/stage2/synth/stats.json。",
          "inputs": [
            {
              "from": "0.5ic",
              "path": "input/submission_template/tapeout_declaration.json"
            },
            {
              "from": 1,
              "path": "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
            }
          ],
          "outputs": [
            "phase2/stage2/synth/netlist.v",
            "phase2/stage2/synth/area.rpt OR phase2/stage2/synth/stats.json"
          ],
          "producer_entrypoints": [],
          "consumer_entrypoints": [],
          "entrypoint_refs": [],
          "source_links": [],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 13 references; destinations: fork_patch:vibeic/librelane, vibeic_gate, drop, librelane_config. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：13 個參照；目的地：fork_patch:vibeic/librelane, vibeic_gate, drop, librelane_config。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "18a702a09c7229012a39502b1c57e19c47b8284e",
            "tree": "862e48241f4f1d50139bdc744dc082b1151caac9",
            "source_receipt": {
              "bytes": 19401,
              "sha256": "2bf38e9411fb21d599c0d67de3e6eaf919f08832cc73684beaf5b4dbf004f344"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_STEP9_PRODUCTION_DEFAULT_CALLEE_AND_ENGINES_PRESENT",
          "en": "Dedicated Step9 production default callee and engine entrypoints present at 18a702a09c72; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 Step9 專用 production default callee 與 engine 入口，來源 18a702a09c72；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/10"
            }
          ],
          "status": "IMMUTABLE_STEP9_PRODUCTION_DEFAULT_CALLEE_AND_ENGINES_PRESENT",
          "basis": "18a702a09c7229012a39502b1c57e19c47b8284e",
          "source_entrypoints": [
            "execution_production.dispatch_synthesis",
            "production_factories",
            "execution_native_worker"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "END_TO_END_DEFAULT_SOURCE_FIXTURE_ROOT_ACCEPTED",
          "en": "Two original negative IDs and necessary actual default Step9 caller raw0/PASS->ADOPTED->IMPORTED; original9f18 epoch only, native/fulltwo-mode NM",
          "zh": "原始 I9f18 的實際 default phase3 caller：raw0／PASS → ADOPTED → IMPORTED，與兩個原始負向 IDs 同範圍；SOURCE_FIXTURE 已由 ROOT 接受（baf69d3c），native／完整雙模式未量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/10"
            }
          ],
          "receipt": {
            "bytes": 6921,
            "sha256": "baf69d3c3d51cce40feffb1e6d36b411cbaf683d786d3d29880108b5a0fd1de2"
          }
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/10"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/10"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/10"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "9-H1",
              "declared_destination": "fork_patch:vibeic/librelane"
            },
            {
              "id": "9-H2",
              "declared_destination": "fork_patch:vibeic/librelane"
            },
            {
              "id": "9-H3",
              "declared_destination": "fork_patch:vibeic/librelane"
            },
            {
              "id": "9-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "9-H5",
              "declared_destination": "drop"
            },
            {
              "id": "9-H6",
              "declared_destination": "drop"
            },
            {
              "id": "9-H7",
              "declared_destination": "librelane_config"
            },
            {
              "id": "9-H8",
              "declared_destination": "librelane_config"
            },
            {
              "id": "9-H9",
              "declared_destination": "librelane_config"
            },
            {
              "id": "9-H10",
              "declared_destination": "librelane_config"
            },
            {
              "id": "9-H11",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "9-H12",
              "declared_destination": "fork_patch:vibeic/librelane"
            },
            {
              "id": "9-H13",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "10",
        "canonical_index": 11,
        "family_id": "F2",
        "title_en": "🔁 Pre-layout STA (multi-corner)",
        "title_zh": "Pre-layout STA（多角）",
        "function": {
          "en": "🔁 Pre-layout STA (multi-corner). Inputs: phase2/stage2/synth/netlist.v; phase2/stage2/constraints/*.sdc; phase2/stage2/constraints/pvt_matrix.json. Outputs: phase3/stage3/sta/pre_pnr_timing.rpt; reports/phase3/sta/pre_pnr_summary.json.",
          "zh": "Pre-layout STA（多角）。輸入：phase2/stage2/synth/netlist.v；phase2/stage2/constraints/*.sdc；phase2/stage2/constraints/pvt_matrix.json。輸出：phase3/stage3/sta/pre_pnr_timing.rpt；reports/phase3/sta/pre_pnr_summary.json。",
          "inputs": [
            {
              "from": 9,
              "path": "phase2/stage2/synth/netlist.v"
            },
            {
              "from": 7,
              "path": "phase2/stage2/constraints/*.sdc"
            },
            {
              "from": 7,
              "path": "phase2/stage2/constraints/pvt_matrix.json"
            }
          ],
          "outputs": [
            "phase3/stage3/sta/pre_pnr_timing.rpt",
            "reports/phase3/sta/pre_pnr_summary.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 7 references; destinations: drop, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：7 個參照；目的地：drop, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/11"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/11"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/11"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/11"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/11"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "10-H1",
              "declared_destination": "drop"
            },
            {
              "id": "10-H2",
              "declared_destination": "drop"
            },
            {
              "id": "10-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "10-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "10-H5",
              "declared_destination": "drop"
            },
            {
              "id": "10-H6",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "10-H7",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "11",
        "canonical_index": 12,
        "family_id": "F2",
        "title_en": "DFT insertion (scan chain + ATPG + at-speed + BSDL)",
        "title_zh": "DFT 插入（scan + ATPG + BSDL）",
        "function": {
          "en": "DFT insertion (scan chain + ATPG + at-speed + BSDL). Inputs: phase2/stage2/synth/netlist.v. Outputs: phase2/stage2/dft/scan_netlist.v; phase2/stage2/dft/atpg_coverage.rpt; phase2/stage2/dft/transition_atpg_plan.md; reports/phase2/dft/coverage.json; reports/phase2/dft/bsdl_plan.json; phase2/stage2/dft/coverage.yml.",
          "zh": "DFT 插入（scan + ATPG + BSDL）。輸入：phase2/stage2/synth/netlist.v。輸出：phase2/stage2/dft/scan_netlist.v；phase2/stage2/dft/atpg_coverage.rpt；phase2/stage2/dft/transition_atpg_plan.md；reports/phase2/dft/coverage.json；reports/phase2/dft/bsdl_plan.json；phase2/stage2/dft/coverage.yml。",
          "inputs": [
            {
              "from": 9,
              "path": "phase2/stage2/synth/netlist.v"
            }
          ],
          "outputs": [
            "phase2/stage2/dft/scan_netlist.v",
            "phase2/stage2/dft/atpg_coverage.rpt",
            "phase2/stage2/dft/transition_atpg_plan.md",
            "reports/phase2/dft/coverage.json",
            "reports/phase2/dft/bsdl_plan.json",
            "phase2/stage2/dft/coverage.yml"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "fault"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 12 references; destinations: fork_patch:fault, librelane_custom_step, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：12 個參照；目的地：fork_patch:fault, librelane_custom_step, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/12"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/12"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/12"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/12"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/12"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "11-H1",
              "declared_destination": "fork_patch:fault"
            },
            {
              "id": "11-H2",
              "declared_destination": "fork_patch:fault"
            },
            {
              "id": "11-H3",
              "declared_destination": "fork_patch:fault"
            },
            {
              "id": "11-H4",
              "declared_destination": "fork_patch:fault"
            },
            {
              "id": "11-H5",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "11-H6",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "11-H7",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "11-H8",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "11-H9",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "11-H10",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "11-H11",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "11-H12",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "FS1",
        "canonical_index": 13,
        "family_id": "F2",
        "title_en": "ISO-26262 FMEDA diagnostic-coverage (fault-injection; safety designs only)",
        "title_zh": "ISO-26262 FMEDA 診斷覆蓋率",
        "function": {
          "en": "ISO-26262 FMEDA diagnostic-coverage (fault-injection; safety designs only). Inputs: phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v. Outputs: .",
          "zh": "ISO-26262 FMEDA 診斷覆蓋率。輸入：phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v。輸出：。",
          "inputs": [
            {
              "from": 1,
              "path": "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
            }
          ],
          "outputs": [],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "yosys"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 4 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：4 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/13"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/13"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/13"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/13"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/13"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "FS1-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "FS1-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "FS1-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "FS1-H4",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "DT1",
        "canonical_index": 14,
        "family_id": "F2",
        "title_en": "Transition-delay-fault (at-speed LOC) ATPG",
        "title_zh": "Transition-delay-fault ATPG（at-speed LOC）",
        "function": {
          "en": "Transition-delay-fault (at-speed LOC) ATPG. Inputs: . Outputs: reports/phase2/dft/transition_coverage.json.",
          "zh": "Transition-delay-fault ATPG（at-speed LOC）。輸入：。輸出：reports/phase2/dft/transition_coverage.json。",
          "inputs": [],
          "outputs": [
            "reports/phase2/dft/transition_coverage.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "yosys"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: fork_patch:vibeic/yosys, drop, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：fork_patch:vibeic/yosys, drop, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/14"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/14"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/14"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/14"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/14"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "DT1-H1",
              "declared_destination": "fork_patch:vibeic/yosys"
            },
            {
              "id": "DT1-H2",
              "declared_destination": "drop"
            },
            {
              "id": "DT1-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "DT1-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "DT1-H5",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "12",
        "canonical_index": 15,
        "family_id": "F2",
        "title_en": "Post-DFT optimization (resynth / buffering)",
        "title_zh": "Post-DFT 最佳化",
        "function": {
          "en": "Post-DFT optimization (resynth / buffering). Inputs: phase2/stage2/dft/scan_netlist.v. Outputs: phase2/stage2/synth/post_dft_netlist.v.",
          "zh": "Post-DFT 最佳化。輸入：phase2/stage2/dft/scan_netlist.v。輸出：phase2/stage2/synth/post_dft_netlist.v。",
          "inputs": [
            {
              "from": 11,
              "path": "phase2/stage2/dft/scan_netlist.v"
            }
          ],
          "outputs": [
            "phase2/stage2/synth/post_dft_netlist.v"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 3 references; destinations: vibeic_gate, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：3 個參照；目的地：vibeic_gate, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/15"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/15"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/15"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/15"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/15"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "12-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "12-H2",
              "declared_destination": "drop"
            },
            {
              "id": "12-H3",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "13",
        "canonical_index": 16,
        "family_id": "F2",
        "title_en": "🔁 Equivalence check (RTL ≡ post-DFT netlist)",
        "title_zh": "等效性檢查 LEC（RTL ≡ 網表）",
        "function": {
          "en": "🔁 Equivalence check (RTL ≡ post-DFT netlist). Inputs: phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v; phase2/stage2/synth/post_dft_netlist.v. Outputs: reports/lec.rpt; reports/lec.json.",
          "zh": "等效性檢查 LEC（RTL ≡ 網表）。輸入：phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v；phase2/stage2/synth/post_dft_netlist.v。輸出：reports/lec.rpt；reports/lec.json。",
          "inputs": [
            {
              "from": 1,
              "path": "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
            },
            {
              "from": 12,
              "path": "phase2/stage2/synth/post_dft_netlist.v"
            }
          ],
          "outputs": [
            "reports/lec.rpt",
            "reports/lec.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 8 references; destinations: fork_patch:vibeic/librelane, vibeic_gate, librelane_config, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：8 個參照；目的地：fork_patch:vibeic/librelane, vibeic_gate, librelane_config, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/16"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/16"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/16"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/16"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/16"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "13-H1",
              "declared_destination": "fork_patch:vibeic/librelane"
            },
            {
              "id": "13-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "13-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "13-H4",
              "declared_destination": "librelane_config"
            },
            {
              "id": "13-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "13-H6",
              "declared_destination": "drop"
            },
            {
              "id": "13-H7",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "13-H8",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "A1",
        "canonical_index": 17,
        "family_id": "F5",
        "title_en": "Analog Spec Extraction",
        "title_zh": "類比規格萃取",
        "function": {
          "en": "Analog Spec Extraction. Inputs: phase1/generated_docs/L1_DATASHEET.json; phase1/generated_docs/L5_ADI_SPEC.json. Outputs: phase3/analog/*/spec.json OR phase1/analog/*/spec.json.",
          "zh": "類比規格萃取。輸入：phase1/generated_docs/L1_DATASHEET.json；phase1/generated_docs/L5_ADI_SPEC.json。輸出：phase3/analog/*/spec.json OR phase1/analog/*/spec.json。",
          "inputs": [
            {
              "from": "D1",
              "path": "phase1/generated_docs/L1_DATASHEET.json"
            },
            {
              "from": "D1",
              "path": "phase1/generated_docs/L5_ADI_SPEC.json"
            }
          ],
          "outputs": [
            "phase3/analog/*/spec.json OR phase1/analog/*/spec.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "vibeic"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 2 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：2 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/17"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "END_TO_END_DEFAULT_SOURCE_FIXTURE_ROOT_ACCEPTED",
          "en": "real default producer -> canonical gates -> consumer -> issued import; fixed0 -> own2 reverse1",
          "zh": "實際 default producer → 正式 gates → consumer → issued import；dc800 fixed raw0／僅反轉 own2 production 的 reverse raw1，ROOT 已接受。範圍為 SOURCE_FIXTURE。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/17"
            }
          ],
          "receipt": {
            "bytes": 6841,
            "sha256": "e12185affe77c4ac073c4203a871ddd1a31b93f81376078891aa9e0c7bc1f27d"
          }
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/17"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/17"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/17"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "A1-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A1-H2",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "A2",
        "canonical_index": 18,
        "family_id": "F5",
        "title_en": "Analog Topology Selection",
        "title_zh": "拓樸選擇",
        "function": {
          "en": "Analog Topology Selection. Inputs: phase3/analog/*/spec.json OR phase1/analog/*/spec.json. Outputs: phase3/analog/*/topology.md OR phase2/analog/*/topology.md.",
          "zh": "拓樸選擇。輸入：phase3/analog/*/spec.json OR phase1/analog/*/spec.json。輸出：phase3/analog/*/topology.md OR phase2/analog/*/topology.md。",
          "inputs": [
            {
              "from": "A1",
              "path": "phase3/analog/*/spec.json OR phase1/analog/*/spec.json"
            }
          ],
          "outputs": [
            "phase3/analog/*/topology.md OR phase2/analog/*/topology.md"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "vibeic"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/18"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/18"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/18"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/18"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/18"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "A2-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A2-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A2-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A2-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A2-H5",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "A3",
        "canonical_index": 19,
        "family_id": "F5",
        "title_en": "Analog Netlist Generation",
        "title_zh": "網表產生",
        "function": {
          "en": "Analog Netlist Generation. Inputs: phase3/analog/*/topology.md OR phase2/analog/*/topology.md; the PDK device models / tech decks (PDK_ROOT — outside the project tree). Outputs: phase3/analog/*/*.sp OR phase2/analog/*/*.sp.",
          "zh": "網表產生。輸入：phase3/analog/*/topology.md OR phase2/analog/*/topology.md；the PDK device models / tech decks (PDK_ROOT — outside the project tree)。輸出：phase3/analog/*/*.sp OR phase2/analog/*/*.sp。",
          "inputs": [
            {
              "from": "A2",
              "path": "phase3/analog/*/topology.md OR phase2/analog/*/topology.md"
            },
            {
              "from": "external",
              "check": "none",
              "what": "the PDK device models / tech decks (PDK_ROOT — outside the project tree)"
            }
          ],
          "outputs": [
            "phase3/analog/*/*.sp OR phase2/analog/*/*.sp"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "vibeic"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 6 references; destinations: vibeic_gate, fork_patch:ngspice. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：6 個參照；目的地：vibeic_gate, fork_patch:ngspice。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/19"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/19"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/19"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/19"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/19"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "A3-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A3-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A3-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A3-H4",
              "declared_destination": "fork_patch:ngspice"
            },
            {
              "id": "A3-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A3-H6",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "A4",
        "canonical_index": 20,
        "family_id": "F5",
        "title_en": "Analog Corner Sweep (PVT)",
        "title_zh": "角點掃描（PVT）",
        "function": {
          "en": "Analog Corner Sweep (PVT). Inputs: phase3/analog/*/*.sp OR phase2/analog/*/*.sp; phase3/analog/*/spec.json OR phase1/analog/*/spec.json. Outputs: phase3/analog/*/corner_results.json OR phase2/analog/*/corner_results.json.",
          "zh": "角點掃描（PVT）。輸入：phase3/analog/*/*.sp OR phase2/analog/*/*.sp；phase3/analog/*/spec.json OR phase1/analog/*/spec.json。輸出：phase3/analog/*/corner_results.json OR phase2/analog/*/corner_results.json。",
          "inputs": [
            {
              "from": "A3",
              "path": "phase3/analog/*/*.sp OR phase2/analog/*/*.sp"
            },
            {
              "from": "A1",
              "path": "phase3/analog/*/spec.json OR phase1/analog/*/spec.json"
            }
          ],
          "outputs": [
            "phase3/analog/*/corner_results.json OR phase2/analog/*/corner_results.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "ngspice"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 8 references; destinations: vibeic_gate, fork_patch:ngspice. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：8 個參照；目的地：vibeic_gate, fork_patch:ngspice。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/20"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "TARGETED_PREPARE_PLAN_POPULATION_ROOT_ACCEPTED",
          "en": "original4231 prepare -> plan retains complete canonical obligations; actual plan NM/NO_RUNNABLE_ADAPTER, not native producer",
          "zh": "原始 4231 prepare → plan 保留完整正式 obligations；實際 plan 為 NOT_MEASURED／NO_RUNNABLE_ADAPTER，未執行原生 producer。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/20"
            }
          ],
          "receipt": {
            "bytes": 4163,
            "sha256": "970d1e931ac56ab6264b11402c5f52d261374bd81a68ddfd4041fe1799fcabe7"
          }
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/20"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/20"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/20"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "A4-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A4-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A4-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A4-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A4-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A4-H6",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A4-H7",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A4-H8",
              "declared_destination": "fork_patch:ngspice"
            }
          ]
        }
      },
      {
        "step_id": "A5",
        "canonical_index": 21,
        "family_id": "F5",
        "title_en": "Analog Layout",
        "title_zh": "佈局（Magic）",
        "function": {
          "en": "Analog Layout. Inputs: phase3/analog/*/*.sp OR phase2/analog/*/*.sp. Outputs: phase3/analog/*/layout.mag OR phase3/analog/*/*.gds.",
          "zh": "佈局（Magic）。輸入：phase3/analog/*/*.sp OR phase2/analog/*/*.sp。輸出：phase3/analog/*/layout.mag OR phase3/analog/*/*.gds。",
          "inputs": [
            {
              "from": "A3",
              "path": "phase3/analog/*/*.sp OR phase2/analog/*/*.sp"
            }
          ],
          "outputs": [
            "phase3/analog/*/layout.mag OR phase3/analog/*/*.gds"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "magic"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/21"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/21"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/21"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/21"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/21"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "A5-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A5-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A5-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A5-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A5-H5",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "A6",
        "canonical_index": 22,
        "family_id": "F5",
        "title_en": "Analog Physical Verification (per-block DRC + LVS before merge)",
        "title_zh": "逐區塊實體驗證（DRC+LVS）",
        "function": {
          "en": "Analog Physical Verification (per-block DRC + LVS before merge). Inputs: phase3/analog/*/layout.mag OR phase3/analog/*/*.gds. Outputs: phase3/analog/*/drc_clean.flag OR phase3/analog/*/drc.report OR phase3/analog/*/*.lyrdb OR phase3/analog/*/drc.rpt; phase3/analog/*/lvs_match.flag OR phase3/analog/*/lvs.report OR phase3/analog/*/comp.json OR phase3/analog/*/lvs.rpt.",
          "zh": "逐區塊實體驗證（DRC+LVS）。輸入：phase3/analog/*/layout.mag OR phase3/analog/*/*.gds。輸出：phase3/analog/*/drc_clean.flag OR phase3/analog/*/drc.report OR phase3/analog/*/*.lyrdb OR phase3/analog/*/drc.rpt；phase3/analog/*/lvs_match.flag OR phase3/analog/*/lvs.report OR phase3/analog/*/comp.json OR phase3/analog/*/lvs.rpt。",
          "inputs": [
            {
              "from": "A5",
              "path": "phase3/analog/*/layout.mag OR phase3/analog/*/*.gds"
            }
          ],
          "outputs": [
            "phase3/analog/*/drc_clean.flag OR phase3/analog/*/drc.report OR phase3/analog/*/*.lyrdb OR phase3/analog/*/drc.rpt",
            "phase3/analog/*/lvs_match.flag OR phase3/analog/*/lvs.report OR phase3/analog/*/comp.json OR phase3/analog/*/lvs.rpt"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 6 references; destinations: vibeic_gate, librelane_custom_step, drop, librelane_config. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：6 個參照；目的地：vibeic_gate, librelane_custom_step, drop, librelane_config。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/22"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/22"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/22"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/22"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/22"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "A6-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A6-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A6-H3",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "A6-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A6-H5",
              "declared_destination": "drop"
            },
            {
              "id": "A6-H6",
              "declared_destination": "librelane_config"
            }
          ]
        }
      },
      {
        "step_id": "A7",
        "canonical_index": 23,
        "family_id": "F5",
        "title_en": "🔁 Post-Layout Resimulation",
        "title_zh": "佈局後重模擬",
        "function": {
          "en": "🔁 Post-Layout Resimulation. Inputs: phase3/analog/*/layout.mag OR phase3/analog/*/*.gds. Outputs: phase3/analog/*/pre_vs_post.json.",
          "zh": "佈局後重模擬。輸入：phase3/analog/*/layout.mag OR phase3/analog/*/*.gds。輸出：phase3/analog/*/pre_vs_post.json。",
          "inputs": [
            {
              "from": "A5",
              "path": "phase3/analog/*/layout.mag OR phase3/analog/*/*.gds"
            }
          ],
          "outputs": [
            "phase3/analog/*/pre_vs_post.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 6 references; destinations: drop, fork_patch:librelane, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：6 個參照；目的地：drop, fork_patch:librelane, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/23"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/23"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/23"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/23"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/23"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "A7-H1",
              "declared_destination": "drop"
            },
            {
              "id": "A7-H2",
              "declared_destination": "drop"
            },
            {
              "id": "A7-H3",
              "declared_destination": "fork_patch:librelane"
            },
            {
              "id": "A7-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A7-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A7-H6",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "A8",
        "canonical_index": 24,
        "family_id": "F5",
        "title_en": "Hardmacro Generation (LEF + Liberty + GDS + Verilog)",
        "title_zh": "Hardmacro 產生（LEF+Lib+GDS+V）",
        "function": {
          "en": "Hardmacro Generation (LEF + Liberty + GDS + Verilog). Inputs: . Outputs: phase3/analog/hardmacro/*/*.lef; phase3/analog/hardmacro/*/*.lib; phase3/analog/hardmacro/*/*.gds; phase3/analog/hardmacro/*/*.v.",
          "zh": "Hardmacro 產生（LEF+Lib+GDS+V）。輸入：。輸出：phase3/analog/hardmacro/*/*.lef；phase3/analog/hardmacro/*/*.lib；phase3/analog/hardmacro/*/*.gds；phase3/analog/hardmacro/*/*.v。",
          "inputs": [],
          "outputs": [
            "phase3/analog/hardmacro/*/*.lef",
            "phase3/analog/hardmacro/*/*.lib",
            "phase3/analog/hardmacro/*/*.gds",
            "phase3/analog/hardmacro/*/*.v"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 7 references; destinations: vibeic_gate, librelane_config. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：7 個參照；目的地：vibeic_gate, librelane_config。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/24"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/24"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/24"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/24"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/24"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "A8-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A8-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A8-H3",
              "declared_destination": "librelane_config"
            },
            {
              "id": "A8-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A8-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A8-H6",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A8-H7",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "A9",
        "canonical_index": 25,
        "family_id": "F5",
        "title_en": "🔁 Co-Simulation (+ HW correlation when bench data exists)",
        "title_zh": "共模擬 / HW 驗證",
        "function": {
          "en": "🔁 Co-Simulation (+ HW correlation when bench data exists). Inputs: . Outputs: phase3/mixed_signal/cosim/*_cosim_results.json OR phase3/mixed_signal/cosim/mixed_signal_results.json OR phase3/analog/*/hw_measurements.json.",
          "zh": "共模擬 / HW 驗證。輸入：。輸出：phase3/mixed_signal/cosim/*_cosim_results.json OR phase3/mixed_signal/cosim/mixed_signal_results.json OR phase3/analog/*/hw_measurements.json。",
          "inputs": [],
          "outputs": [
            "phase3/mixed_signal/cosim/*_cosim_results.json OR phase3/mixed_signal/cosim/mixed_signal_results.json OR phase3/analog/*/hw_measurements.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "ngspice"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 4 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：4 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/25"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "TARGETED_PREPARE_PLAN_POPULATION_ROOT_ACCEPTED",
          "en": "same original4231 complete-gate population control only; NOT_MEASURED plan remains",
          "zh": "原始 4231 完整 gate population 控制已接受；plan 仍為 NOT_MEASURED。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/25"
            }
          ],
          "receipt": {
            "bytes": 4163,
            "sha256": "970d1e931ac56ab6264b11402c5f52d261374bd81a68ddfd4041fe1799fcabe7"
          }
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/25"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/25"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/25"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "A9-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A9-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A9-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "A9-H4",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "14",
        "canonical_index": 26,
        "family_id": "F4",
        "title_en": "🔁 Synthesis handoff gate (pre-PnR Yosys script + netlist audit; open-source-flow specific)",
        "title_zh": "合成交接 gate（Yosys script 稽核）",
        "function": {
          "en": "🔁 Synthesis handoff gate (pre-PnR Yosys script + netlist audit; open-source-flow specific). Inputs: phase2/stage2/synth/netlist.v. Outputs: phase2/stage2/synth/netlist.v; reports/analog/stage_analog_compliance.json.",
          "zh": "合成交接 gate（Yosys script 稽核）。輸入：phase2/stage2/synth/netlist.v。輸出：phase2/stage2/synth/netlist.v；reports/analog/stage_analog_compliance.json。",
          "inputs": [
            {
              "from": 9,
              "path": "phase2/stage2/synth/netlist.v"
            }
          ],
          "outputs": [
            "phase2/stage2/synth/netlist.v",
            "reports/analog/stage_analog_compliance.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: vibeic_gate, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：vibeic_gate, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/26"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/26"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/26"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/26"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/26"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "14-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "14-H2",
              "declared_destination": "drop"
            },
            {
              "id": "14-H3",
              "declared_destination": "drop"
            },
            {
              "id": "14-H4",
              "declared_destination": "drop"
            },
            {
              "id": "14-H5",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "15",
        "canonical_index": 27,
        "family_id": "F3",
        "title_en": "Floorplan + PDN",
        "title_zh": "Floorplan + PDN（供電網）",
        "function": {
          "en": "Floorplan + PDN. Inputs: phase2/stage2/synth/post_dft_netlist.v; phase2/stage2/constraints/*.sdc. Outputs: phase3/stage3/pnr/floorplan.def; phase3/stage3/pnr/pdn.tcl OR phase3/stage3/pnr/pdn.done; reports/phase2/gates/stage2_compliance.json.",
          "zh": "Floorplan + PDN（供電網）。輸入：phase2/stage2/synth/post_dft_netlist.v；phase2/stage2/constraints/*.sdc。輸出：phase3/stage3/pnr/floorplan.def；phase3/stage3/pnr/pdn.tcl OR phase3/stage3/pnr/pdn.done；reports/phase2/gates/stage2_compliance.json。",
          "inputs": [
            {
              "from": 12,
              "path": "phase2/stage2/synth/post_dft_netlist.v"
            },
            {
              "from": 7,
              "path": "phase2/stage2/constraints/*.sdc"
            }
          ],
          "outputs": [
            "phase3/stage3/pnr/floorplan.def",
            "phase3/stage3/pnr/pdn.tcl OR phase3/stage3/pnr/pdn.done",
            "reports/phase2/gates/stage2_compliance.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 13 references; destinations: librelane_config, drop, vibeic_gate, fork_patch:librelane, fork_patch:OpenROAD. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：13 個參照；目的地：librelane_config, drop, vibeic_gate, fork_patch:librelane, fork_patch:OpenROAD。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/27"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/27"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/27"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/27"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/27"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "15-H1",
              "declared_destination": "librelane_config"
            },
            {
              "id": "15-H2",
              "declared_destination": "drop"
            },
            {
              "id": "15-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "15-H4",
              "declared_destination": "drop"
            },
            {
              "id": "15-H5",
              "declared_destination": "librelane_config"
            },
            {
              "id": "15-H6",
              "declared_destination": "fork_patch:librelane"
            },
            {
              "id": "15-H7",
              "declared_destination": "librelane_config"
            },
            {
              "id": "15-H8",
              "declared_destination": "librelane_config"
            },
            {
              "id": "15-H9",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "15-H10",
              "declared_destination": "fork_patch:OpenROAD"
            },
            {
              "id": "15-H11",
              "declared_destination": "fork_patch:OpenROAD"
            },
            {
              "id": "15-H12",
              "declared_destination": "drop"
            },
            {
              "id": "15-H13",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "15.5ic",
        "canonical_index": 28,
        "family_id": "F3",
        "title_en": "Pad Ring (chip/IC path only)",
        "title_zh": "打接腳環",
        "function": {
          "en": "Pad Ring (chip/IC path only). Inputs: phase3/stage3/pnr/floorplan.def; input/submission_template/tapeout_declaration.json. Outputs: phase3/stage3/pnr/padring.def; reports/phase3/padring.json; reports/phase3/pad_assignment.json; reports/phase3/io_pad_chip_top.json.",
          "zh": "打接腳環。輸入：phase3/stage3/pnr/floorplan.def；input/submission_template/tapeout_declaration.json。輸出：phase3/stage3/pnr/padring.def；reports/phase3/padring.json；reports/phase3/pad_assignment.json；reports/phase3/io_pad_chip_top.json。",
          "inputs": [
            {
              "from": 15,
              "path": "phase3/stage3/pnr/floorplan.def"
            },
            {
              "from": "0.5ic",
              "path": "input/submission_template/tapeout_declaration.json"
            }
          ],
          "outputs": [
            "phase3/stage3/pnr/padring.def",
            "reports/phase3/padring.json",
            "reports/phase3/pad_assignment.json",
            "reports/phase3/io_pad_chip_top.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 9 references; destinations: librelane_config, vibeic_gate, fork_patch:librelane, fork_patch:OpenROAD, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：9 個參照；目的地：librelane_config, vibeic_gate, fork_patch:librelane, fork_patch:OpenROAD, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/28"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/28"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/28"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/28"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/28"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "15.5ic-H1",
              "declared_destination": "librelane_config"
            },
            {
              "id": "15.5ic-H2",
              "declared_destination": "librelane_config"
            },
            {
              "id": "15.5ic-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "15.5ic-H4",
              "declared_destination": "fork_patch:librelane"
            },
            {
              "id": "15.5ic-H5",
              "declared_destination": "fork_patch:OpenROAD"
            },
            {
              "id": "15.5ic-H6",
              "declared_destination": "drop"
            },
            {
              "id": "15.5ic-H7",
              "declared_destination": "librelane_config"
            },
            {
              "id": "15.5ic-H8",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "15.5ic-H9",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "16",
        "canonical_index": 29,
        "family_id": "F4",
        "title_en": "Clock planning",
        "title_zh": "時脈規劃",
        "function": {
          "en": "Clock planning. Inputs: phase3/stage3/pnr/floorplan.def; phase2/stage2/constraints/*.sdc. Outputs: phase3/stage3/cts/clock_plan.json.",
          "zh": "時脈規劃。輸入：phase3/stage3/pnr/floorplan.def；phase2/stage2/constraints/*.sdc。輸出：phase3/stage3/cts/clock_plan.json。",
          "inputs": [
            {
              "from": 15,
              "path": "phase3/stage3/pnr/floorplan.def"
            },
            {
              "from": 7,
              "path": "phase2/stage2/constraints/*.sdc"
            }
          ],
          "outputs": [
            "phase3/stage3/cts/clock_plan.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 4 references; destinations: vibeic_gate, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：4 個參照；目的地：vibeic_gate, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/29"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "TARGETED_SOFTWARE_PRODUCER_AND_INPUT_CONTROL_AVAILABLE",
          "en": "original F4 Step16 real clock-plan producer/consumer; original I missing-root samecase fixed0/reverse1 accepted; not all14 qualification",
          "zh": "原始 F4 Step16 軟體 clock-plan producer／consumer；原始 I missing-root 同一案例 fixed0／reverse1 已接受，不構成完整 14 步 qualification。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/29"
            }
          ],
          "receipt": {
            "bytes": 7028,
            "sha256": "7ceff4d8b14e2f838973f03be35a36e8a06ffd926a417d57c1ec0448af2b5103"
          }
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/29"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/29"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/29"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "16-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "16-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "16-H3",
              "declared_destination": "drop"
            },
            {
              "id": "16-H4",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "17",
        "canonical_index": 30,
        "family_id": "F3",
        "title_en": "Placement (global + detailed)",
        "title_zh": "擺放 Placement（global+detailed）",
        "function": {
          "en": "Placement (global + detailed). Inputs: phase3/stage3/pnr/floorplan.def; phase3/stage3/pnr/pdn.tcl OR phase3/stage3/pnr/pdn.done. Outputs: phase3/stage3/pnr/placed.def; reports/phase3/placement_legality.json.",
          "zh": "擺放 Placement（global+detailed）。輸入：phase3/stage3/pnr/floorplan.def；phase3/stage3/pnr/pdn.tcl OR phase3/stage3/pnr/pdn.done。輸出：phase3/stage3/pnr/placed.def；reports/phase3/placement_legality.json。",
          "inputs": [
            {
              "from": 15,
              "path": "phase3/stage3/pnr/floorplan.def"
            },
            {
              "from": 15,
              "path": "phase3/stage3/pnr/pdn.tcl OR phase3/stage3/pnr/pdn.done"
            }
          ],
          "outputs": [
            "phase3/stage3/pnr/placed.def",
            "reports/phase3/placement_legality.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: drop, vibeic_gate, librelane_config. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：drop, vibeic_gate, librelane_config。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/30"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/30"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/30"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/30"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/30"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "17-H1",
              "declared_destination": "drop"
            },
            {
              "id": "17-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "17-H3",
              "declared_destination": "drop"
            },
            {
              "id": "17-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "17-H5",
              "declared_destination": "librelane_config"
            }
          ]
        }
      },
      {
        "step_id": "18",
        "canonical_index": 31,
        "family_id": "F3",
        "title_en": "Spare-cell + ECO-prep insertion (Design-for-ECO)",
        "title_zh": "Spare-cell + ECO 預備插入",
        "function": {
          "en": "Spare-cell + ECO-prep insertion (Design-for-ECO). Inputs: phase3/stage3/pnr/placed.def. Outputs: phase3/stage3/pnr/spare_cells.json; reports/spare_cell_coverage.json.",
          "zh": "Spare-cell + ECO 預備插入。輸入：phase3/stage3/pnr/placed.def。輸出：phase3/stage3/pnr/spare_cells.json；reports/spare_cell_coverage.json。",
          "inputs": [
            {
              "from": 17,
              "path": "phase3/stage3/pnr/placed.def"
            }
          ],
          "outputs": [
            "phase3/stage3/pnr/spare_cells.json",
            "reports/spare_cell_coverage.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 6 references; destinations: librelane_custom_step, drop, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：6 個參照；目的地：librelane_custom_step, drop, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/31"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/31"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/31"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/31"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/31"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "18-H1",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "18-H2",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "18-H3",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "18-H4",
              "declared_destination": "drop"
            },
            {
              "id": "18-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "18-H6",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "19",
        "canonical_index": 32,
        "family_id": "F3",
        "title_en": "CTS (Clock Tree Synthesis)",
        "title_zh": "CTS 時脈樹合成",
        "function": {
          "en": "CTS (Clock Tree Synthesis). Inputs: phase3/stage3/pnr/placed.def; phase3/stage3/cts/clock_plan.json. Outputs: phase3/stage3/pnr/post_cts.def; phase3/stage3/cts/clock_tree.rpt.",
          "zh": "CTS 時脈樹合成。輸入：phase3/stage3/pnr/placed.def；phase3/stage3/cts/clock_plan.json。輸出：phase3/stage3/pnr/post_cts.def；phase3/stage3/cts/clock_tree.rpt。",
          "inputs": [
            {
              "from": 17,
              "path": "phase3/stage3/pnr/placed.def"
            },
            {
              "from": 16,
              "path": "phase3/stage3/cts/clock_plan.json"
            }
          ],
          "outputs": [
            "phase3/stage3/pnr/post_cts.def",
            "phase3/stage3/cts/clock_tree.rpt"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 8 references; destinations: librelane_custom_step, librelane_config, vibeic_gate, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：8 個參照；目的地：librelane_custom_step, librelane_config, vibeic_gate, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/32"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/32"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/32"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/32"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/32"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "19-H1",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "19-H2",
              "declared_destination": "librelane_config"
            },
            {
              "id": "19-H3",
              "declared_destination": "librelane_config"
            },
            {
              "id": "19-H4",
              "declared_destination": "librelane_config"
            },
            {
              "id": "19-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "19-H6",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "19-H7",
              "declared_destination": "drop"
            },
            {
              "id": "19-H8",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "20",
        "canonical_index": 33,
        "family_id": "F3",
        "title_en": "🔁 Post-CTS hold fixing",
        "title_zh": "Post-CTS hold 修復",
        "function": {
          "en": "🔁 Post-CTS hold fixing. Inputs: phase3/stage3/pnr/post_cts.def. Outputs: phase3/stage3/pnr/post_hold.def.",
          "zh": "Post-CTS hold 修復。輸入：phase3/stage3/pnr/post_cts.def。輸出：phase3/stage3/pnr/post_hold.def。",
          "inputs": [
            {
              "from": 19,
              "path": "phase3/stage3/pnr/post_cts.def"
            }
          ],
          "outputs": [
            "phase3/stage3/pnr/post_hold.def"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 7 references; destinations: drop, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：7 個參照；目的地：drop, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/33"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/33"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/33"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/33"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/33"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "20-H1",
              "declared_destination": "drop"
            },
            {
              "id": "20-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "20-H3",
              "declared_destination": "drop"
            },
            {
              "id": "20-H4",
              "declared_destination": "drop"
            },
            {
              "id": "20-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "20-H6",
              "declared_destination": "drop"
            },
            {
              "id": "20-H7",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "21",
        "canonical_index": 34,
        "family_id": "F3",
        "title_en": "Routing (global + detailed)",
        "title_zh": "繞線 Routing（global+detailed）",
        "function": {
          "en": "Routing (global + detailed). Inputs: phase3/stage3/pnr/post_hold.def. Outputs: phase3/stage3/pnr/routed.def; phase3/stage3/pnr/openroad.log; phase3/stage3/pnr/routed.drc.rpt; reports/phase3/drc_router.rpt; reports/phase3/drc_router.json.",
          "zh": "繞線 Routing（global+detailed）。輸入：phase3/stage3/pnr/post_hold.def。輸出：phase3/stage3/pnr/routed.def；phase3/stage3/pnr/openroad.log；phase3/stage3/pnr/routed.drc.rpt；reports/phase3/drc_router.rpt；reports/phase3/drc_router.json。",
          "inputs": [
            {
              "from": 20,
              "path": "phase3/stage3/pnr/post_hold.def"
            }
          ],
          "outputs": [
            "phase3/stage3/pnr/routed.def",
            "phase3/stage3/pnr/openroad.log",
            "phase3/stage3/pnr/routed.drc.rpt",
            "reports/phase3/drc_router.rpt",
            "reports/phase3/drc_router.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 11 references; destinations: fork_patch:OpenROAD, librelane_custom_step, vibeic_gate, drop, librelane_config. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：11 個參照；目的地：fork_patch:OpenROAD, librelane_custom_step, vibeic_gate, drop, librelane_config。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/34"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/34"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/34"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/34"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/34"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "21-H1",
              "declared_destination": "fork_patch:OpenROAD"
            },
            {
              "id": "21-H2",
              "declared_destination": "fork_patch:OpenROAD"
            },
            {
              "id": "21-H3",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "21-H4",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "21-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "21-H6",
              "declared_destination": "drop"
            },
            {
              "id": "21-H7",
              "declared_destination": "fork_patch:OpenROAD"
            },
            {
              "id": "21-H8",
              "declared_destination": "drop"
            },
            {
              "id": "21-H9",
              "declared_destination": "librelane_config"
            },
            {
              "id": "21-H10",
              "declared_destination": "drop"
            },
            {
              "id": "21-H11",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "22",
        "canonical_index": 35,
        "family_id": "F3",
        "title_en": "Parasitic Extraction (RC → SPEF)",
        "title_zh": "寄生萃取（RC → SPEF）",
        "function": {
          "en": "Parasitic Extraction (RC → SPEF). Inputs: phase3/stage3/pnr/routed.def. Outputs: phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef; reports/phase2/gates/spef_extraction.json.",
          "zh": "寄生萃取（RC → SPEF）。輸入：phase3/stage3/pnr/routed.def。輸出：phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef；reports/phase2/gates/spef_extraction.json。",
          "inputs": [
            {
              "from": 21,
              "path": "phase3/stage3/pnr/routed.def"
            }
          ],
          "outputs": [
            "phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef",
            "reports/phase2/gates/spef_extraction.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 8 references; destinations: librelane_custom_step, drop, fork_patch:vibeic-eda, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：8 個參照；目的地：librelane_custom_step, drop, fork_patch:vibeic-eda, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/35"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/35"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/35"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/35"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/35"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "22-H1",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "22-H2",
              "declared_destination": "drop"
            },
            {
              "id": "22-H3",
              "declared_destination": "drop"
            },
            {
              "id": "22-H4",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "22-H5",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "22-H6",
              "declared_destination": "drop"
            },
            {
              "id": "22-H7",
              "declared_destination": "fork_patch:vibeic-eda"
            },
            {
              "id": "22-H8",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "DT2",
        "canonical_index": 36,
        "family_id": "F2",
        "title_en": "Path-delay-fault (at-speed, timing-graded) ATPG",
        "title_zh": "Path-delay-fault ATPG（佈局後時序分級）",
        "function": {
          "en": "Path-delay-fault (at-speed, timing-graded) ATPG. Inputs: . Outputs: reports/phase2/dft/path_delay_coverage.json.",
          "zh": "Path-delay-fault ATPG（佈局後時序分級）。輸入：。輸出：reports/phase2/dft/path_delay_coverage.json。",
          "inputs": [],
          "outputs": [
            "reports/phase2/dft/path_delay_coverage.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "yosys"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: fork_patch:yosys, librelane_custom_step, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：fork_patch:yosys, librelane_custom_step, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/36"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/36"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/36"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/36"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/36"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "DT2-H1",
              "declared_destination": "fork_patch:yosys"
            },
            {
              "id": "DT2-H2",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "DT2-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "DT2-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "DT2-H5",
              "declared_destination": "librelane_custom_step"
            }
          ]
        }
      },
      {
        "step_id": "DT3",
        "canonical_index": 37,
        "family_id": "F2",
        "title_en": "Small-delay-defect (SDD) at-speed grade",
        "title_zh": "Small-delay-defect at-speed 分級",
        "function": {
          "en": "Small-delay-defect (SDD) at-speed grade. Inputs: . Outputs: reports/phase2/dft/sdd_coverage.json.",
          "zh": "Small-delay-defect at-speed 分級。輸入：。輸出：reports/phase2/dft/sdd_coverage.json。",
          "inputs": [],
          "outputs": [
            "reports/phase2/dft/sdd_coverage.json"
          ],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "yosys"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 4 references; destinations: librelane_custom_step, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：4 個參照；目的地：librelane_custom_step, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/37"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/37"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/37"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/37"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/37"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "DT3-H1",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "DT3-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "DT3-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "DT3-H4",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "32",
        "canonical_index": 38,
        "family_id": "F3",
        "title_en": "🔁 Post-route timing repair pass (multi-corner repair_design + repair_timing + reroute)",
        "title_zh": "繞線後時序修復 pass",
        "function": {
          "en": "🔁 Post-route timing repair pass (multi-corner repair_design + repair_timing + reroute). Inputs: . Outputs: phase3/stage3/postroute_timing_repair/repair_log.json OR phase3/stage3/postroute_timing_repair/no_repair_needed.flag; phase3/stage3/postroute_timing_repair/postroute_timing_repair_decision.json; phase3/stage3/postroute_timing_repair/postroute_timing_repair_decision.canonical.json.",
          "zh": "繞線後時序修復 pass。輸入：。輸出：phase3/stage3/postroute_timing_repair/repair_log.json OR phase3/stage3/postroute_timing_repair/no_repair_needed.flag；phase3/stage3/postroute_timing_repair/postroute_timing_repair_decision.json；phase3/stage3/postroute_timing_repair/postroute_timing_repair_decision.canonical.json。",
          "inputs": [],
          "outputs": [
            "phase3/stage3/postroute_timing_repair/repair_log.json OR phase3/stage3/postroute_timing_repair/no_repair_needed.flag",
            "phase3/stage3/postroute_timing_repair/postroute_timing_repair_decision.json",
            "phase3/stage3/postroute_timing_repair/postroute_timing_repair_decision.canonical.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 8 references; destinations: fork_patch:OpenROAD, vibeic_gate, librelane_custom_step, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：8 個參照；目的地：fork_patch:OpenROAD, vibeic_gate, librelane_custom_step, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/38"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/38"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/38"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/38"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/38"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "32-H1",
              "declared_destination": "fork_patch:OpenROAD"
            },
            {
              "id": "32-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "32-H3",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "32-H4",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "32-H5",
              "declared_destination": "drop"
            },
            {
              "id": "32-H6",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "32-H7",
              "declared_destination": "drop"
            },
            {
              "id": "32-H8",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "23",
        "canonical_index": 39,
        "family_id": "F3",
        "title_en": "🔁 Post-route STA (multi-corner multi-mode sign-off)",
        "title_zh": "Post-route STA（MMMC 簽核）",
        "function": {
          "en": "🔁 Post-route STA (multi-corner multi-mode sign-off). Inputs: phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef; phase2/stage2/constraints/*.sdc; phase2/stage2/constraints/pvt_matrix.json. Outputs: phase3/stage3/sta/post_route_timing.rpt; reports/phase3/sta_spef_based.rpt; reports/phase3/sta/post_route_summary.json; reports/phase3/sta/sta_corner_record_completeness.json; reports/phase3/sta/post_route_signoff_corner.json; reports/phase3/sta/architectural_residual.json.",
          "zh": "Post-route STA（MMMC 簽核）。輸入：phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef；phase2/stage2/constraints/*.sdc；phase2/stage2/constraints/pvt_matrix.json。輸出：phase3/stage3/sta/post_route_timing.rpt；reports/phase3/sta_spef_based.rpt；reports/phase3/sta/post_route_summary.json；reports/phase3/sta/sta_corner_record_completeness.json；reports/phase3/sta/post_route_signoff_corner.json；reports/phase3/sta/architectural_residual.json。",
          "inputs": [
            {
              "from": 22,
              "path": "phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef"
            },
            {
              "from": 7,
              "path": "phase2/stage2/constraints/*.sdc"
            },
            {
              "from": 7,
              "path": "phase2/stage2/constraints/pvt_matrix.json"
            }
          ],
          "outputs": [
            "phase3/stage3/sta/post_route_timing.rpt",
            "reports/phase3/sta_spef_based.rpt",
            "reports/phase3/sta/post_route_summary.json",
            "reports/phase3/sta/sta_corner_record_completeness.json",
            "reports/phase3/sta/post_route_signoff_corner.json",
            "reports/phase3/sta/architectural_residual.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 11 references; destinations: librelane_config, drop, vibeic_gate, fork_patch:librelane. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：11 個參照；目的地：librelane_config, drop, vibeic_gate, fork_patch:librelane。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/39"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/39"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/39"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/39"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/39"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "23-H1",
              "declared_destination": "librelane_config"
            },
            {
              "id": "23-H2",
              "declared_destination": "drop"
            },
            {
              "id": "23-H3",
              "declared_destination": "librelane_config"
            },
            {
              "id": "23-H4",
              "declared_destination": "librelane_config"
            },
            {
              "id": "23-H5",
              "declared_destination": "drop"
            },
            {
              "id": "23-H6",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "23-H7",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "23-H8",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "23-H9",
              "declared_destination": "fork_patch:librelane"
            },
            {
              "id": "23-H10",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "23-H11",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "24",
        "canonical_index": 40,
        "family_id": "F3",
        "title_en": "🔁 IR Drop (static + dynamic)",
        "title_zh": "IR Drop（靜態+動態）",
        "function": {
          "en": "🔁 IR Drop (static + dynamic). Inputs: phase3/stage3/pnr/routed.def; phase3/stage3/pnr/pdn.tcl OR phase3/stage3/pnr/pdn.done. Outputs: reports/phase3/ir_drop.rpt; reports/phase3/ir_drop.json; reports/phase3/ir_drop_signoff.json; reports/phase3/dynamic_ir.json.",
          "zh": "IR Drop（靜態+動態）。輸入：phase3/stage3/pnr/routed.def；phase3/stage3/pnr/pdn.tcl OR phase3/stage3/pnr/pdn.done。輸出：reports/phase3/ir_drop.rpt；reports/phase3/ir_drop.json；reports/phase3/ir_drop_signoff.json；reports/phase3/dynamic_ir.json。",
          "inputs": [
            {
              "from": 21,
              "path": "phase3/stage3/pnr/routed.def"
            },
            {
              "from": 15,
              "path": "phase3/stage3/pnr/pdn.tcl OR phase3/stage3/pnr/pdn.done"
            }
          ],
          "outputs": [
            "reports/phase3/ir_drop.rpt",
            "reports/phase3/ir_drop.json",
            "reports/phase3/ir_drop_signoff.json",
            "reports/phase3/dynamic_ir.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 8 references; destinations: fork_patch:librelane (take the max over all per-net matches and record how many nets were analysed); vibeic_gate (psm_analysis_coverage rule), librelane_custom_step (a Checker.IRDrop that compares ir__drop__worst with the declared budget), drop, drop (static); librelane_custom_step (keep inside the dynamic-IR step), librelane_custom_step (a dynamic-IR step after OpenROAD.IRDropReport) + vibeic_gate (the scaled_static_bound disclosure), fork_patch:librelane (add optional -enable_em -em_outfile to irdrop.tcl so one SDC+SPEF session produces both IR and EM), librelane_config (generate VSRC_LOC_FILES from the pad ring's supply pads on the DIE path), vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：8 個參照；目的地：fork_patch:librelane (take the max over all per-net matches and record how many nets were analysed); vibeic_gate (psm_analysis_coverage rule), librelane_custom_step (a Checker.IRDrop that compares ir__drop__worst with the declared budget), drop, drop (static); librelane_custom_step (keep inside the dynamic-IR step), librelane_custom_step (a dynamic-IR step after OpenROAD.IRDropReport) + vibeic_gate (the scaled_static_bound disclosure), fork_patch:librelane (add optional -enable_em -em_outfile to irdrop.tcl so one SDC+SPEF session produces both IR and EM), librelane_config (generate VSRC_LOC_FILES from the pad ring's supply pads on the DIE path), vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/40"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/40"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/40"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/40"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/40"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "24-H1",
              "declared_destination": "fork_patch:librelane (take the max over all per-net matches and record how many nets were analysed); vibeic_gate (psm_analysis_coverage rule)"
            },
            {
              "id": "24-H2",
              "declared_destination": "librelane_custom_step (a Checker.IRDrop that compares ir__drop__worst with the declared budget)"
            },
            {
              "id": "24-H3",
              "declared_destination": "drop"
            },
            {
              "id": "24-H4",
              "declared_destination": "drop (static); librelane_custom_step (keep inside the dynamic-IR step)"
            },
            {
              "id": "24-H5",
              "declared_destination": "librelane_custom_step (a dynamic-IR step after OpenROAD.IRDropReport) + vibeic_gate (the scaled_static_bound disclosure)"
            },
            {
              "id": "24-H6",
              "declared_destination": "fork_patch:librelane (add optional -enable_em -em_outfile to irdrop.tcl so one SDC+SPEF session produces both IR and EM)"
            },
            {
              "id": "24-H7",
              "declared_destination": "librelane_config (generate VSRC_LOC_FILES from the pad ring's supply pads on the DIE path)"
            },
            {
              "id": "24-H8",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "25",
        "canonical_index": 41,
        "family_id": "F3",
        "title_en": "🔁 EM check (electromigration lifetime)",
        "title_zh": "EM 電遷移壽命",
        "function": {
          "en": "🔁 EM check (electromigration lifetime). Inputs: phase3/stage3/pnr/routed.def; 24. Outputs: reports/phase3/em.rpt; reports/phase3/em.json; reports/phase3/em_signoff.json; reports/phase3/em_current_authority.json.",
          "zh": "EM 電遷移壽命。輸入：phase3/stage3/pnr/routed.def；24。輸出：reports/phase3/em.rpt；reports/phase3/em.json；reports/phase3/em_signoff.json；reports/phase3/em_current_authority.json。",
          "inputs": [
            {
              "from": 21,
              "path": "phase3/stage3/pnr/routed.def"
            },
            {
              "from": 24,
              "outputs": "all"
            }
          ],
          "outputs": [
            "reports/phase3/em.rpt",
            "reports/phase3/em.json",
            "reports/phase3/em_signoff.json",
            "reports/phase3/em_current_authority.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "openroad_fork"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 7 references; destinations: vibeic_gate (now); fork_patch:OpenROAD if an A/B shows check_current_density lacks per-layer LEF Jmax, vibeic_gate, fork_patch:OpenROAD (emit segment width in -em_outfile) + vibeic_gate until then, librelane_config (PDN width/pitch/supply pads chosen BEFORE routing by a PPA sweep); drop the post-route re-PnR loop, librelane_config (the PPA planner writes the supply entries into PAD_SOUTH/EAST/…), librelane_config (VSRC_LOC_FILES) + vibeic_gate (the EM verdict records its source model). Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：7 個參照；目的地：vibeic_gate (now); fork_patch:OpenROAD if an A/B shows check_current_density lacks per-layer LEF Jmax, vibeic_gate, fork_patch:OpenROAD (emit segment width in -em_outfile) + vibeic_gate until then, librelane_config (PDN width/pitch/supply pads chosen BEFORE routing by a PPA sweep); drop the post-route re-PnR loop, librelane_config (the PPA planner writes the supply entries into PAD_SOUTH/EAST/…), librelane_config (VSRC_LOC_FILES) + vibeic_gate (the EM verdict records its source model)。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/41"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/41"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/41"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/41"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/41"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "25-H1",
              "declared_destination": "vibeic_gate (now); fork_patch:OpenROAD if an A/B shows check_current_density lacks per-layer LEF Jmax"
            },
            {
              "id": "25-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "25-H3",
              "declared_destination": "fork_patch:OpenROAD (emit segment width in -em_outfile) + vibeic_gate until then"
            },
            {
              "id": "25-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "25-H5",
              "declared_destination": "librelane_config (PDN width/pitch/supply pads chosen BEFORE routing by a PPA sweep); drop the post-route re-PnR loop"
            },
            {
              "id": "25-H6",
              "declared_destination": "librelane_config (the PPA planner writes the supply entries into PAD_SOUTH/EAST/…)"
            },
            {
              "id": "25-H7",
              "declared_destination": "librelane_config (VSRC_LOC_FILES) + vibeic_gate (the EM verdict records its source model)"
            }
          ]
        }
      },
      {
        "step_id": "26",
        "canonical_index": 42,
        "family_id": "F3",
        "title_en": "🔁 Antenna check (gate-oxide protection)",
        "title_zh": "Antenna 天線檢查",
        "function": {
          "en": "🔁 Antenna check (gate-oxide protection). Inputs: phase3/stage3/pnr/routed.def. Outputs: reports/phase3/antenna.rpt; reports/phase3/antenna.json; reports/phase3/antenna_signoff.json.",
          "zh": "Antenna 天線檢查。輸入：phase3/stage3/pnr/routed.def。輸出：reports/phase3/antenna.rpt；reports/phase3/antenna.json；reports/phase3/antenna_signoff.json。",
          "inputs": [
            {
              "from": 21,
              "path": "phase3/stage3/pnr/routed.def"
            }
          ],
          "outputs": [
            "reports/phase3/antenna.rpt",
            "reports/phase3/antenna.json",
            "reports/phase3/antenna_signoff.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 7 references; destinations: vibeic_gate (antenna evidence bound to the shipped DEF/GDS digest); drop the log-scraping re-emit, drop, vibeic_gate, drop (the problem disappears with the tool path); lesson kept as vibeic_gate, fork_patch:klayout (the engine stays in vibeic/klayout gds-antenna/) + vibeic_gate (fail when OpenROAD antenna__violating__nets and klayout__antenna_error__count disagree), vibeic_gate (for any post-route ECO); drop for the tool path. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：7 個參照；目的地：vibeic_gate (antenna evidence bound to the shipped DEF/GDS digest); drop the log-scraping re-emit, drop, vibeic_gate, drop (the problem disappears with the tool path); lesson kept as vibeic_gate, fork_patch:klayout (the engine stays in vibeic/klayout gds-antenna/) + vibeic_gate (fail when OpenROAD antenna__violating__nets and klayout__antenna_error__count disagree), vibeic_gate (for any post-route ECO); drop for the tool path。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/42"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/42"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/42"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/42"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/42"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "26-H1",
              "declared_destination": "vibeic_gate (antenna evidence bound to the shipped DEF/GDS digest); drop the log-scraping re-emit"
            },
            {
              "id": "26-H2",
              "declared_destination": "drop"
            },
            {
              "id": "26-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "26-H4",
              "declared_destination": "drop (the problem disappears with the tool path); lesson kept as vibeic_gate"
            },
            {
              "id": "26-H5",
              "declared_destination": "fork_patch:klayout (the engine stays in vibeic/klayout gds-antenna/) + vibeic_gate (fail when OpenROAD antenna__violating__nets and klayout__antenna_error__count disagree)"
            },
            {
              "id": "26-H6",
              "declared_destination": "drop"
            },
            {
              "id": "26-H7",
              "declared_destination": "vibeic_gate (for any post-route ECO); drop for the tool path"
            }
          ]
        }
      },
      {
        "step_id": "26.5ic",
        "canonical_index": 43,
        "family_id": "F3",
        "title_en": "Die Finishing — seal ring + die identification (chip/IC path only)",
        "title_zh": "封邊＋晶粒身分證",
        "function": {
          "en": "Die Finishing — seal ring + die identification (chip/IC path only). Inputs: phase3/stage3/pnr/routed.def; input/submission_template/tapeout_declaration.json. Outputs: phase3/stage3/pnr/die_finished.def OR phase3/stage3/pnr/die_finishing.SKIPPED.txt; reports/phase3/die_finishing.json.",
          "zh": "封邊＋晶粒身分證。輸入：phase3/stage3/pnr/routed.def；input/submission_template/tapeout_declaration.json。輸出：phase3/stage3/pnr/die_finished.def OR phase3/stage3/pnr/die_finishing.SKIPPED.txt；reports/phase3/die_finishing.json。",
          "inputs": [
            {
              "from": 21,
              "path": "phase3/stage3/pnr/routed.def"
            },
            {
              "from": "0.5ic",
              "path": "input/submission_template/tapeout_declaration.json"
            }
          ],
          "outputs": [
            "phase3/stage3/pnr/die_finished.def OR phase3/stage3/pnr/die_finishing.SKIPPED.txt",
            "reports/phase3/die_finishing.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 8 references; destinations: fork_patch:librelane (fail unless the output exists and contains new seal-ring marker geometry), fork_patch:librelane, fork_patch:librelane (interface detection; check the transposition on a non-square ihp die, NOT_MEASURED), librelane_config (macros use the Classic flow or leave KLAYOUT_SEALRING_SCRIPT unset) + vibeic_gate, librelane_config (derive the CORE/DIE margin) + vibeic_gate (refuse to seal a core in the band), drop, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：8 個參照；目的地：fork_patch:librelane (fail unless the output exists and contains new seal-ring marker geometry), fork_patch:librelane, fork_patch:librelane (interface detection; check the transposition on a non-square ihp die, NOT_MEASURED), librelane_config (macros use the Classic flow or leave KLAYOUT_SEALRING_SCRIPT unset) + vibeic_gate, librelane_config (derive the CORE/DIE margin) + vibeic_gate (refuse to seal a core in the band), drop, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/43"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/43"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/43"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/43"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/43"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "26.5ic-H1",
              "declared_destination": "fork_patch:librelane (fail unless the output exists and contains new seal-ring marker geometry)"
            },
            {
              "id": "26.5ic-H2",
              "declared_destination": "fork_patch:librelane"
            },
            {
              "id": "26.5ic-H3",
              "declared_destination": "fork_patch:librelane (interface detection; check the transposition on a non-square ihp die, NOT_MEASURED)"
            },
            {
              "id": "26.5ic-H4",
              "declared_destination": "librelane_config (macros use the Classic flow or leave KLAYOUT_SEALRING_SCRIPT unset) + vibeic_gate"
            },
            {
              "id": "26.5ic-H5",
              "declared_destination": "librelane_config (derive the CORE/DIE margin) + vibeic_gate (refuse to seal a core in the band)"
            },
            {
              "id": "26.5ic-H6",
              "declared_destination": "drop"
            },
            {
              "id": "26.5ic-H7",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "26.5ic-H8",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "27",
        "canonical_index": 44,
        "family_id": "F3",
        "title_en": "🔁 Signal Integrity (Crosstalk / Noise / Glitch + MCF crosstalk-delay)",
        "title_zh": "訊號完整性（串擾/雜訊）",
        "function": {
          "en": "🔁 Signal Integrity (Crosstalk / Noise / Glitch + MCF crosstalk-delay). Inputs: phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef. Outputs: reports/phase3/si_crosstalk.rpt OR reports/phase3/si_crosstalk.json; reports/phase3/si_mcf_sta.json; reports/phase3/si_mcf_sta.rpt.",
          "zh": "訊號完整性（串擾/雜訊）。輸入：phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef。輸出：reports/phase3/si_crosstalk.rpt OR reports/phase3/si_crosstalk.json；reports/phase3/si_mcf_sta.json；reports/phase3/si_mcf_sta.rpt。",
          "inputs": [
            {
              "from": 22,
              "path": "phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef"
            }
          ],
          "outputs": [
            "reports/phase3/si_crosstalk.rpt OR reports/phase3/si_crosstalk.json",
            "reports/phase3/si_mcf_sta.json",
            "reports/phase3/si_mcf_sta.rpt"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "opensta_fork"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 7 references; destinations: fork_patch:OpenROAD, vibeic_gate, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：7 個參照；目的地：fork_patch:OpenROAD, vibeic_gate, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/44"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/44"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/44"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/44"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/44"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "27-H1",
              "declared_destination": "fork_patch:OpenROAD"
            },
            {
              "id": "27-H2",
              "declared_destination": "fork_patch:OpenROAD"
            },
            {
              "id": "27-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "27-H4",
              "declared_destination": "drop"
            },
            {
              "id": "27-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "27-H6",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "27-H7",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "28",
        "canonical_index": 45,
        "family_id": "F3",
        "title_en": "🔁 PERC / Reliability sign-off (ESD + latch-up + cross-domain)",
        "title_zh": "PERC / 可靠度簽核（ESD+latch-up）",
        "function": {
          "en": "🔁 PERC / Reliability sign-off (ESD + latch-up + cross-domain). Inputs: phase3/stage3/pnr/routed.def. Outputs: reports/phase3/perc_equivalent.json; reports/phase3/perc_equivalent.rpt; reports/phase3/PERC_SIGNOFF_MEMO.md; reports/phase2/gates/perc_signoff.json.",
          "zh": "PERC / 可靠度簽核（ESD+latch-up）。輸入：phase3/stage3/pnr/routed.def。輸出：reports/phase3/perc_equivalent.json；reports/phase3/perc_equivalent.rpt；reports/phase3/PERC_SIGNOFF_MEMO.md；reports/phase2/gates/perc_signoff.json。",
          "inputs": [
            {
              "from": 21,
              "path": "phase3/stage3/pnr/routed.def"
            }
          ],
          "outputs": [
            "reports/phase3/perc_equivalent.json",
            "reports/phase3/perc_equivalent.rpt",
            "reports/phase3/PERC_SIGNOFF_MEMO.md",
            "reports/phase2/gates/perc_signoff.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "vibeic"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 7 references; destinations: vibeic_gate, librelane_config (read FP_TAPCELL_DIST) + vibeic_gate (screen radius = pitch/2). Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：7 個參照；目的地：vibeic_gate, librelane_config (read FP_TAPCELL_DIST) + vibeic_gate (screen radius = pitch/2)。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/45"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/45"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/45"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/45"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/45"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "28-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "28-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "28-H3",
              "declared_destination": "librelane_config (read FP_TAPCELL_DIST) + vibeic_gate (screen radius = pitch/2)"
            },
            {
              "id": "28-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "28-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "28-H6",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "28-H7",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "29",
        "canonical_index": 46,
        "family_id": "F3",
        "title_en": "Post-Layout Gate-Level Simulation (Post-Sim + SDF)",
        "title_zh": "佈局後閘級模擬（+SDF）",
        "function": {
          "en": "Post-Layout Gate-Level Simulation (Post-Sim + SDF). Inputs: phase2/stage2/synth/post_dft_netlist.v. Outputs: phase3/stage3/sim_postlayout/results.log OR phase3/stage3/sim_postlayout/pass.flag; reports/phase2/gates/post_layout_sim.json.",
          "zh": "佈局後閘級模擬（+SDF）。輸入：phase2/stage2/synth/post_dft_netlist.v。輸出：phase3/stage3/sim_postlayout/results.log OR phase3/stage3/sim_postlayout/pass.flag；reports/phase2/gates/post_layout_sim.json。",
          "inputs": [
            {
              "from": 12,
              "path": "phase2/stage2/synth/post_dft_netlist.v"
            }
          ],
          "outputs": [
            "phase3/stage3/sim_postlayout/results.log OR phase3/stage3/sim_postlayout/pass.flag",
            "reports/phase2/gates/post_layout_sim.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "iverilog"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 6 references; destinations: drop, vibeic_gate, librelane_custom_step, fork_patch:iverilog. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：6 個參照；目的地：drop, vibeic_gate, librelane_custom_step, fork_patch:iverilog。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/46"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/46"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/46"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/46"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/46"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "29-H1",
              "declared_destination": "drop"
            },
            {
              "id": "29-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "29-H3",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "29-H4",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "29-H5",
              "declared_destination": "fork_patch:iverilog"
            },
            {
              "id": "29-H6",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "30",
        "canonical_index": 47,
        "family_id": "F3",
        "title_en": "Post-Layout SPICE Verification (critical-path correlation + analog)",
        "title_zh": "佈局後 SPICE（關鍵路徑相關性）",
        "function": {
          "en": "Post-Layout SPICE Verification (critical-path correlation + analog). Inputs: the PDK device models / tech decks (PDK_ROOT — outside the project tree). Outputs: phase3/stage3/spice/*.sp OR phase3/stage3/spice/*.spice OR sim_spice/*.sp; phase3/stage3/spice/correlation.json OR reports/phase3/spice_correlation.json.",
          "zh": "佈局後 SPICE（關鍵路徑相關性）。輸入：the PDK device models / tech decks (PDK_ROOT — outside the project tree)。輸出：phase3/stage3/spice/*.sp OR phase3/stage3/spice/*.spice OR sim_spice/*.sp；phase3/stage3/spice/correlation.json OR reports/phase3/spice_correlation.json。",
          "inputs": [
            {
              "from": "external",
              "check": "none",
              "what": "the PDK device models / tech decks (PDK_ROOT — outside the project tree)"
            }
          ],
          "outputs": [
            "phase3/stage3/spice/*.sp OR phase3/stage3/spice/*.spice OR sim_spice/*.sp",
            "phase3/stage3/spice/correlation.json OR reports/phase3/spice_correlation.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "opensta"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 8 references; destinations: drop, vibeic_gate, librelane_custom_step. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：8 個參照；目的地：drop, vibeic_gate, librelane_custom_step。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/47"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/47"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/47"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/47"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/47"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "30-H1",
              "declared_destination": "drop"
            },
            {
              "id": "30-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "30-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "30-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "30-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "30-H6",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "30-H7",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "30-H8",
              "declared_destination": "librelane_custom_step"
            }
          ]
        }
      },
      {
        "step_id": "33",
        "canonical_index": 48,
        "family_id": "F3",
        "title_en": "Power analysis (pre/post-layout)",
        "title_zh": "功耗分析（pre/post-layout）",
        "function": {
          "en": "Power analysis (pre/post-layout). Inputs: phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef. Outputs: reports/phase3/power.rpt; reports/phase3/power.json.",
          "zh": "功耗分析（pre/post-layout）。輸入：phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef。輸出：reports/phase3/power.rpt；reports/phase3/power.json。",
          "inputs": [
            {
              "from": 22,
              "path": "phase3/stage3/extracted/parasitic.spef OR phase3/stage3/extracted/*.spef"
            }
          ],
          "outputs": [
            "reports/phase3/power.rpt",
            "reports/phase3/power.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: drop (take sign-off power from STAPostPNR); keep the lesson as vibeic_gate (a power record names the netlist it linked), vibeic_gate (+ fork_patch:librelane: optional SAIF/VCD read and a power__activity_basis / annotated-count metric), vibeic_gate, drop, librelane_custom_step (use OpenROAD read_upf as the check). Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：drop (take sign-off power from STAPostPNR); keep the lesson as vibeic_gate (a power record names the netlist it linked), vibeic_gate (+ fork_patch:librelane: optional SAIF/VCD read and a power__activity_basis / annotated-count metric), vibeic_gate, drop, librelane_custom_step (use OpenROAD read_upf as the check)。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/48"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/48"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/48"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/48"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/48"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "33-H1",
              "declared_destination": "drop (take sign-off power from STAPostPNR); keep the lesson as vibeic_gate (a power record names the netlist it linked)"
            },
            {
              "id": "33-H2",
              "declared_destination": "vibeic_gate (+ fork_patch:librelane: optional SAIF/VCD read and a power__activity_basis / annotated-count metric)"
            },
            {
              "id": "33-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "33-H4",
              "declared_destination": "drop"
            },
            {
              "id": "33-H5",
              "declared_destination": "librelane_custom_step (use OpenROAD read_upf as the check)"
            }
          ]
        }
      },
      {
        "step_id": "34",
        "canonical_index": 49,
        "family_id": "F3",
        "title_en": "Metal Fill (ECO-aware density fill insertion)",
        "title_zh": "Metal Fill（ECO-aware 密度填充）",
        "function": {
          "en": "Metal Fill (ECO-aware density fill insertion). Inputs: phase3/stage3/pnr/routed.def; phase3/stage3/pnr/spare_cells.json. Outputs: phase3/stage3/pnr/filled.def OR phase3/stage3/pnr/metal_fill.done; reports/density.json OR reports/phase3/density.json; reports/density.rpt OR reports/phase3/density.rpt.",
          "zh": "Metal Fill（ECO-aware 密度填充）。輸入：phase3/stage3/pnr/routed.def；phase3/stage3/pnr/spare_cells.json。輸出：phase3/stage3/pnr/filled.def OR phase3/stage3/pnr/metal_fill.done；reports/density.json OR reports/phase3/density.json；reports/density.rpt OR reports/phase3/density.rpt。",
          "inputs": [
            {
              "from": 21,
              "path": "phase3/stage3/pnr/routed.def"
            },
            {
              "from": 18,
              "path": "phase3/stage3/pnr/spare_cells.json"
            }
          ],
          "outputs": [
            "phase3/stage3/pnr/filled.def OR phase3/stage3/pnr/metal_fill.done",
            "reports/density.json OR reports/phase3/density.json",
            "reports/density.rpt OR reports/phase3/density.rpt"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 9 references; destinations: fork_patch:OpenROAD (a region/density-cap option for filler_placement) or fork_patch:librelane (an optional fill region), vibeic_gate (read LibreLane's DPL filler count and the odb row utilisation), drop (keep the ordering lesson), drop, fork_patch:klayout (the engine stays as a second arm) + vibeic_gate (UNREACHABLE_BY_ANY_FILL refusal), fork_patch:klayout, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：9 個參照；目的地：fork_patch:OpenROAD (a region/density-cap option for filler_placement) or fork_patch:librelane (an optional fill region), vibeic_gate (read LibreLane's DPL filler count and the odb row utilisation), drop (keep the ordering lesson), drop, fork_patch:klayout (the engine stays as a second arm) + vibeic_gate (UNREACHABLE_BY_ANY_FILL refusal), fork_patch:klayout, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/49"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/49"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/49"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/49"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/49"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "34-H1",
              "declared_destination": "fork_patch:OpenROAD (a region/density-cap option for filler_placement) or fork_patch:librelane (an optional fill region)"
            },
            {
              "id": "34-H2",
              "declared_destination": "vibeic_gate (read LibreLane's DPL filler count and the odb row utilisation)"
            },
            {
              "id": "34-H3",
              "declared_destination": "drop (keep the ordering lesson)"
            },
            {
              "id": "34-H4",
              "declared_destination": "drop"
            },
            {
              "id": "34-H5",
              "declared_destination": "drop"
            },
            {
              "id": "34-H6",
              "declared_destination": "fork_patch:klayout (the engine stays as a second arm) + vibeic_gate (UNREACHABLE_BY_ANY_FILL refusal)"
            },
            {
              "id": "34-H7",
              "declared_destination": "fork_patch:klayout"
            },
            {
              "id": "34-H8",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "34-H9",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "35",
        "canonical_index": 50,
        "family_id": "F4",
        "title_en": "DFM screen (CMP density + redundant-via ratio + foundry-side OPC/RET disclosure)",
        "title_zh": "DFM 篩檢（CMP 密度 + 冗餘 via）",
        "function": {
          "en": "DFM screen (CMP density + redundant-via ratio + foundry-side OPC/RET disclosure). Inputs: 34. Outputs: reports/phase3/dfm_screen.json.",
          "zh": "DFM 篩檢（CMP 密度 + 冗餘 via）。輸入：34。輸出：reports/phase3/dfm_screen.json。",
          "inputs": [
            {
              "from": 34,
              "outputs": "all"
            }
          ],
          "outputs": [
            "reports/phase3/dfm_screen.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 6 references; destinations: vibeic_gate, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：6 個參照；目的地：vibeic_gate, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/50"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/50"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/50"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/50"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/50"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "35-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "35-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "35-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "35-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "35-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "35-H6",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "37",
        "canonical_index": 51,
        "family_id": "F3",
        "title_en": "GDSII output (after routed-layout pre-stream admission)",
        "title_zh": "GDSII 輸出（繞線版圖通過串流前准入後）",
        "function": {
          "en": "GDSII output (after routed-layout pre-stream admission). Inputs: phase3/stage3/pnr/filled.def OR phase3/stage3/pnr/metal_fill.done. Outputs: phase3/stage4/gds/*.gds; phase3/stage3/pnr/*stream_out.log; phase3/stage3/pnr/*.stream_inputs.json; phase3/stage3/pnr/magic_stream_out.tcl OR phase3/stage3/pnr/stream_out.py; reports/phase3/pad_ring_route_evidence.json; reports/phase3/gates/stage3_compliance.json; reports/phase3/layout_receipts.json.",
          "zh": "GDSII 輸出（繞線版圖通過串流前准入後）。輸入：phase3/stage3/pnr/filled.def OR phase3/stage3/pnr/metal_fill.done。輸出：phase3/stage4/gds/*.gds；phase3/stage3/pnr/*stream_out.log；phase3/stage3/pnr/*.stream_inputs.json；phase3/stage3/pnr/magic_stream_out.tcl OR phase3/stage3/pnr/stream_out.py；reports/phase3/pad_ring_route_evidence.json；reports/phase3/gates/stage3_compliance.json；reports/phase3/layout_receipts.json。",
          "inputs": [
            {
              "from": 34,
              "path": "phase3/stage3/pnr/filled.def OR phase3/stage3/pnr/metal_fill.done"
            }
          ],
          "outputs": [
            "phase3/stage4/gds/*.gds",
            "phase3/stage3/pnr/*stream_out.log",
            "phase3/stage3/pnr/*.stream_inputs.json",
            "phase3/stage3/pnr/magic_stream_out.tcl OR phase3/stage3/pnr/stream_out.py",
            "reports/phase3/pad_ring_route_evidence.json",
            "reports/phase3/gates/stage3_compliance.json",
            "reports/phase3/layout_receipts.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 11 references; destinations: vibeic_gate (also fork_patch:librelane: an element-count checker after Magic.StreamOut), vibeic_gate, drop, librelane_custom_step (run Magic.DRC+KLayout.DRC on MAG_GDS and KLAYOUT_GDS, promote the cleaner one) fed to the PPA layer, fork_patch:librelane (use x1-x0/y1-y0; verify the ihp width/height order), drop (keep a vibeic_gate: no step writes under input/), librelane_custom_step (non-deferred checker set before Magic.StreamOut). Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：11 個參照；目的地：vibeic_gate (also fork_patch:librelane: an element-count checker after Magic.StreamOut), vibeic_gate, drop, librelane_custom_step (run Magic.DRC+KLayout.DRC on MAG_GDS and KLAYOUT_GDS, promote the cleaner one) fed to the PPA layer, fork_patch:librelane (use x1-x0/y1-y0; verify the ihp width/height order), drop (keep a vibeic_gate: no step writes under input/), librelane_custom_step (non-deferred checker set before Magic.StreamOut)。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/51"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/51"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/51"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/51"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/51"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "37-H1",
              "declared_destination": "vibeic_gate (also fork_patch:librelane: an element-count checker after Magic.StreamOut)"
            },
            {
              "id": "37-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "37-H3",
              "declared_destination": "drop"
            },
            {
              "id": "37-H4",
              "declared_destination": "librelane_custom_step (run Magic.DRC+KLayout.DRC on MAG_GDS and KLAYOUT_GDS, promote the cleaner one) fed to the PPA layer"
            },
            {
              "id": "37-H5",
              "declared_destination": "drop"
            },
            {
              "id": "37-H6",
              "declared_destination": "fork_patch:librelane (use x1-x0/y1-y0; verify the ihp width/height order)"
            },
            {
              "id": "37-H7",
              "declared_destination": "drop (keep a vibeic_gate: no step writes under input/)"
            },
            {
              "id": "37-H8",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "37-H9",
              "declared_destination": "librelane_custom_step (non-deferred checker set before Magic.StreamOut)"
            },
            {
              "id": "37-H10",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "37-H11",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "37.3",
        "canonical_index": 52,
        "family_id": "F3",
        "title_en": "GDS stream-out / finishing fidelity — the shipped GDS XOR'd against this run's own pre-finishing boundary",
        "title_zh": "GDS stream-out / finishing fidelity — the shipped GDS XOR'd against this run's own pre-finishing boundary",
        "function": {
          "en": "GDS stream-out / finishing fidelity — the shipped GDS XOR'd against this run's own pre-finishing boundary. Inputs: . Outputs: reports/phase3/gds_xor.json.",
          "zh": "GDS stream-out / finishing fidelity — the shipped GDS XOR'd against this run's own pre-finishing boundary。輸入：。輸出：reports/phase3/gds_xor.json。",
          "inputs": [],
          "outputs": [
            "reports/phase3/gds_xor.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 7 references; destinations: librelane_custom_step (a Checker after KLayout.Filler that runs xor.drc between the pre-SealRing GDS state and the final GDS, with KLAYOUT_XOR_IGNORE_LAYERS = layers the SealRing/Filler steps added), fork_patch:librelane (print a per-layout cell/shape census in xor.drc) + vibeic_gate, fork_patch:librelane (missing metric under RUN_KLAYOUT_XOR=true is an error), vibeic_gate, drop, librelane_config (KLAYOUT_XOR_IGNORE_LAYERS). Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：7 個參照；目的地：librelane_custom_step (a Checker after KLayout.Filler that runs xor.drc between the pre-SealRing GDS state and the final GDS, with KLAYOUT_XOR_IGNORE_LAYERS = layers the SealRing/Filler steps added), fork_patch:librelane (print a per-layout cell/shape census in xor.drc) + vibeic_gate, fork_patch:librelane (missing metric under RUN_KLAYOUT_XOR=true is an error), vibeic_gate, drop, librelane_config (KLAYOUT_XOR_IGNORE_LAYERS)。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/52"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/52"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/52"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/52"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/52"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "37.3-H1",
              "declared_destination": "librelane_custom_step (a Checker after KLayout.Filler that runs xor.drc between the pre-SealRing GDS state and the final GDS, with KLAYOUT_XOR_IGNORE_LAYERS = layers the SealRing/Filler steps added)"
            },
            {
              "id": "37.3-H2",
              "declared_destination": "fork_patch:librelane (print a per-layout cell/shape census in xor.drc) + vibeic_gate"
            },
            {
              "id": "37.3-H3",
              "declared_destination": "fork_patch:librelane (missing metric under RUN_KLAYOUT_XOR=true is an error)"
            },
            {
              "id": "37.3-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "37.3-H5",
              "declared_destination": "drop"
            },
            {
              "id": "37.3-H6",
              "declared_destination": "librelane_config (KLAYOUT_XOR_IGNORE_LAYERS)"
            },
            {
              "id": "37.3-H7",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "31",
        "canonical_index": 53,
        "family_id": "F3",
        "title_en": "🔁 Physical Verification (DRC + LVS + ERC + Density)",
        "title_zh": "實體驗證（DRC+LVS+ERC+密度）",
        "function": {
          "en": "🔁 Physical Verification (DRC + LVS + ERC + Density). Inputs: phase3/stage3/pnr/routed.def. Outputs: reports/phase3/drc_signoff.rpt; reports/phase3/lvs.rpt; reports/phase3/erc.rpt; reports/phase3/lvs.json; reports/phase2/gates/erc_density.json; reports/phase3/magic_illegal_overlap.json; reports/phase3/lvs_verdict.json; reports/phase3/drc_signoff.json; reports/phase3/perc_sweep.json.",
          "zh": "實體驗證（DRC+LVS+ERC+密度）。輸入：phase3/stage3/pnr/routed.def。輸出：reports/phase3/drc_signoff.rpt；reports/phase3/lvs.rpt；reports/phase3/erc.rpt；reports/phase3/lvs.json；reports/phase2/gates/erc_density.json；reports/phase3/magic_illegal_overlap.json；reports/phase3/lvs_verdict.json；reports/phase3/drc_signoff.json；reports/phase3/perc_sweep.json。",
          "inputs": [
            {
              "from": 21,
              "path": "phase3/stage3/pnr/routed.def"
            }
          ],
          "outputs": [
            "reports/phase3/drc_signoff.rpt",
            "reports/phase3/lvs.rpt",
            "reports/phase3/erc.rpt",
            "reports/phase3/lvs.json",
            "reports/phase2/gates/erc_density.json",
            "reports/phase3/magic_illegal_overlap.json",
            "reports/phase3/lvs_verdict.json",
            "reports/phase3/drc_signoff.json",
            "reports/phase3/perc_sweep.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_backend.py:prepare",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_consumer.py:import_selected"
          ],
          "entrypoint_refs": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_backend.py:_project_roots",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L146"
            },
            {
              "entrypoint": "execution_adapters_backend.py:adoption_paths",
              "source_sha256": "6fa42a3d559ade46651345ce4cf8f70a1ac4a6443d2636c095131cfe91800a3d",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_backend.py#L126"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 12 references; destinations: fork_patch:librelane (a missing metric under RUN_*=true is an error) + vibeic_gate, drop (waivers must be explicit human waivers, e.g. waiver_growth_check), drop (keep signoff_drc_format.classify_file as a vibeic_gate), vibeic_gate (wrap LibreLane step invocation in the progress supervisor), vibeic_gate (region clustering over LibreLane feedback.xml), librelane_custom_step (KLayout.SVRFDRC wrapping the fork engine); engine stays fork_patch:klayout, librelane_config, vibeic_gate (classifier over the Netgen JSON report), librelane_custom_step, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：12 個參照；目的地：fork_patch:librelane (a missing metric under RUN_*=true is an error) + vibeic_gate, drop (waivers must be explicit human waivers, e.g. waiver_growth_check), drop (keep signoff_drc_format.classify_file as a vibeic_gate), vibeic_gate (wrap LibreLane step invocation in the progress supervisor), vibeic_gate (region clustering over LibreLane feedback.xml), librelane_custom_step (KLayout.SVRFDRC wrapping the fork engine); engine stays fork_patch:klayout, librelane_config, vibeic_gate (classifier over the Netgen JSON report), librelane_custom_step, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
            "tree": "d1ee5f1c649f593f0447dd134fd99dd336fe0517",
            "source_receipt": {
              "bytes": 14409,
              "sha256": "586802f0b073854b319083a94c3d13ee385cf6403be193f38ec41db8dba87508"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 5cc3df6dd163; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 5cc3df6dd163；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/53"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "5cc3df6dd1639d6a37a4a6836628f647b7a1f8fd",
          "source_entrypoints": [
            "execution_adapters_backend.py:_project_roots",
            "execution_adapters_backend.py:adoption_paths",
            "execution_adapters_backend.py:_native_facts",
            "execution_adapters_backend.py:prepare",
            "execution_adapters_backend.py:validate",
            "execution_adapters_backend.py:consume",
            "execution_backend_worker.py:execute",
            "execution_backend_producers.py:produce",
            "execution_backend_consumer.py:import_selected"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/53"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/53"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/53"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/53"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "31-H1",
              "declared_destination": "fork_patch:librelane (a missing metric under RUN_*=true is an error) + vibeic_gate"
            },
            {
              "id": "31-H2",
              "declared_destination": "drop (waivers must be explicit human waivers, e.g. waiver_growth_check)"
            },
            {
              "id": "31-H3",
              "declared_destination": "drop (keep signoff_drc_format.classify_file as a vibeic_gate)"
            },
            {
              "id": "31-H4",
              "declared_destination": "vibeic_gate (wrap LibreLane step invocation in the progress supervisor)"
            },
            {
              "id": "31-H5",
              "declared_destination": "vibeic_gate (region clustering over LibreLane feedback.xml)"
            },
            {
              "id": "31-H6",
              "declared_destination": "librelane_custom_step (KLayout.SVRFDRC wrapping the fork engine); engine stays fork_patch:klayout"
            },
            {
              "id": "31-H7",
              "declared_destination": "librelane_config"
            },
            {
              "id": "31-H8",
              "declared_destination": "vibeic_gate (classifier over the Netgen JSON report)"
            },
            {
              "id": "31-H9",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "31-H10",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "31-H11",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "31-H12",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "36",
        "canonical_index": 54,
        "family_id": "F4",
        "title_en": "Tapeout checklist (final sign-off confirmation)",
        "title_zh": "Tapeout checklist（最終簽核確認）",
        "function": {
          "en": "Tapeout checklist (final sign-off confirmation). Inputs: . Outputs: reports/audit/tapeout_checklist.json.",
          "zh": "Tapeout checklist（最終簽核確認）。輸入：。輸出：reports/audit/tapeout_checklist.json。",
          "inputs": [],
          "outputs": [
            "reports/audit/tapeout_checklist.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "vibeic"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 4 references; destinations: vibeic_gate, fork_patch:librelane (N/A for an enabled RUN_* engine is a failure). Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：4 個參照；目的地：vibeic_gate, fork_patch:librelane (N/A for an enabled RUN_* engine is a failure)。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/54"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/54"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/54"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/54"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/54"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "36-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "36-H2",
              "declared_destination": "fork_patch:librelane (N/A for an enabled RUN_* engine is a failure)"
            },
            {
              "id": "36-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "36-H4",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "37.4",
        "canonical_index": 55,
        "family_id": "F4",
        "title_en": "Sign-off metrics aggregation — the run's own checker verdicts, under the names the release documents read",
        "title_zh": "簽核指標彙整",
        "function": {
          "en": "Sign-off metrics aggregation — the run's own checker verdicts, under the names the release documents read. Inputs: phase3/stage4/gds/*.gds. Outputs: phase3/final/metrics.json; reports/phase3/signoff_metrics_aggregate.json.",
          "zh": "簽核指標彙整。輸入：phase3/stage4/gds/*.gds。輸出：phase3/final/metrics.json；reports/phase3/signoff_metrics_aggregate.json。",
          "inputs": [
            {
              "from": 37,
              "path": "phase3/stage4/gds/*.gds"
            }
          ],
          "outputs": [
            "phase3/final/metrics.json",
            "reports/phase3/signoff_metrics_aggregate.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: fork_patch:librelane (emit an explicit NOT_MEASURED marker for enabled-but-unrun metric producers), vibeic_gate, drop. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：fork_patch:librelane (emit an explicit NOT_MEASURED marker for enabled-but-unrun metric producers), vibeic_gate, drop。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/55"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/55"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/55"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/55"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/55"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "37.4-H1",
              "declared_destination": "fork_patch:librelane (emit an explicit NOT_MEASURED marker for enabled-but-unrun metric producers)"
            },
            {
              "id": "37.4-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "37.4-H3",
              "declared_destination": "drop"
            },
            {
              "id": "37.4-H4",
              "declared_destination": "drop"
            },
            {
              "id": "37.4-H5",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "37.5ip",
        "canonical_index": 56,
        "family_id": "F4",
        "title_en": "Digital Hardmacro Generation — LEF + Liberty + GDS + Verilog (delivered on EVERY route)",
        "title_zh": "數位硬巨集產出 — LEF＋Liberty＋GDS＋Verilog",
        "function": {
          "en": "Digital Hardmacro Generation — LEF + Liberty + GDS + Verilog (delivered on EVERY route). Inputs: phase3/stage4/gds/*.gds. Outputs: phase3/stage4/hardmacro/*.lef; phase3/stage4/hardmacro/*.lib; phase3/stage4/hardmacro/*.gds; phase3/stage4/hardmacro/*.v; reports/phase3/digital_hardmacro.json; phase3/stage4/documentation/ip/*/IP_DATASHEET.md; phase3/stage4/documentation/ip/*/IP_INTEGRATION_GUIDE.md; phase3/stage4/documentation/ip/*/RELEASE_NOTES.md; phase3/stage4/documentation/ip/*/ERRATA.md; phase3/stage4/documentation/ip/*/DELIVERABLES_MANIFEST.md; phase3/stage4/documentation/ip/*/documentation_manifest.yaml.",
          "zh": "數位硬巨集產出 — LEF＋Liberty＋GDS＋Verilog。輸入：phase3/stage4/gds/*.gds。輸出：phase3/stage4/hardmacro/*.lef；phase3/stage4/hardmacro/*.lib；phase3/stage4/hardmacro/*.gds；phase3/stage4/hardmacro/*.v；reports/phase3/digital_hardmacro.json；phase3/stage4/documentation/ip/*/IP_DATASHEET.md；phase3/stage4/documentation/ip/*/IP_INTEGRATION_GUIDE.md；phase3/stage4/documentation/ip/*/RELEASE_NOTES.md；phase3/stage4/documentation/ip/*/ERRATA.md；phase3/stage4/documentation/ip/*/DELIVERABLES_MANIFEST.md；phase3/stage4/documentation/ip/*/documentation_manifest.yaml。",
          "inputs": [
            {
              "from": 37,
              "path": "phase3/stage4/gds/*.gds"
            }
          ],
          "outputs": [
            "phase3/stage4/hardmacro/*.lef",
            "phase3/stage4/hardmacro/*.lib",
            "phase3/stage4/hardmacro/*.gds",
            "phase3/stage4/hardmacro/*.v",
            "reports/phase3/digital_hardmacro.json",
            "phase3/stage4/documentation/ip/*/IP_DATASHEET.md",
            "phase3/stage4/documentation/ip/*/IP_INTEGRATION_GUIDE.md",
            "phase3/stage4/documentation/ip/*/RELEASE_NOTES.md",
            "phase3/stage4/documentation/ip/*/ERRATA.md",
            "phase3/stage4/documentation/ip/*/DELIVERABLES_MANIFEST.md",
            "phase3/stage4/documentation/ip/*/documentation_manifest.yaml"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 6 references; destinations: fork_patch:OpenSTA (option to emit pg_pin from design power nets), drop (use the per-corner libs; keep the 'never characterise from pre-route' rule as a vibeic_gate), drop (keep 'each PIN once, with DIRECTION/USE' as a vibeic_gate in digital_hardmacro_check), librelane_config, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：6 個參照；目的地：fork_patch:OpenSTA (option to emit pg_pin from design power nets), drop (use the per-corner libs; keep the 'never characterise from pre-route' rule as a vibeic_gate), drop (keep 'each PIN once, with DIRECTION/USE' as a vibeic_gate in digital_hardmacro_check), librelane_config, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/56"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/56"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/56"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/56"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/56"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "37.5ip-H1",
              "declared_destination": "fork_patch:OpenSTA (option to emit pg_pin from design power nets)"
            },
            {
              "id": "37.5ip-H2",
              "declared_destination": "drop (use the per-corner libs; keep the 'never characterise from pre-route' rule as a vibeic_gate)"
            },
            {
              "id": "37.5ip-H3",
              "declared_destination": "drop (keep 'each PIN once, with DIRECTION/USE' as a vibeic_gate in digital_hardmacro_check)"
            },
            {
              "id": "37.5ip-H4",
              "declared_destination": "librelane_config"
            },
            {
              "id": "37.5ip-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "37.5ip-H6",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "37.5ic",
        "canonical_index": 57,
        "family_id": "F4",
        "title_en": "Tape-out Precheck — our general ladder, plus the operator's own refusal where the PDK ships one (chip/IC path only)",
        "title_zh": "送件預檢 — 主辦方自己的退件關",
        "function": {
          "en": "Tape-out Precheck — our general ladder, plus the operator's own refusal where the PDK ships one (chip/IC path only). Inputs: phase3/stage4/gds/*.gds; input/submission_template/tapeout_declaration.json. Outputs: reports/phase3/tapeout_precheck.json; reports/phase3/general_precheck.json; reports/phase3/shuttle_precheck.json; reports/phase3/docs/SIGNOFF_*.html; reports/phase3/docs/BRIEF_*.html; phase3/stage4/documentation/ic/*/PRELIMINARY_DATASHEET.md; phase3/stage4/documentation/ic/*/RELEASE_NOTES.md; phase3/stage4/documentation/ic/*/ERRATA.md; phase3/stage4/documentation/ic/*/documentation_manifest.yaml.",
          "zh": "送件預檢 — 主辦方自己的退件關。輸入：phase3/stage4/gds/*.gds；input/submission_template/tapeout_declaration.json。輸出：reports/phase3/tapeout_precheck.json；reports/phase3/general_precheck.json；reports/phase3/shuttle_precheck.json；reports/phase3/docs/SIGNOFF_*.html；reports/phase3/docs/BRIEF_*.html；phase3/stage4/documentation/ic/*/PRELIMINARY_DATASHEET.md；phase3/stage4/documentation/ic/*/RELEASE_NOTES.md；phase3/stage4/documentation/ic/*/ERRATA.md；phase3/stage4/documentation/ic/*/documentation_manifest.yaml。",
          "inputs": [
            {
              "from": 37,
              "path": "phase3/stage4/gds/*.gds"
            },
            {
              "from": "0.5ic",
              "path": "input/submission_template/tapeout_declaration.json"
            }
          ],
          "outputs": [
            "reports/phase3/tapeout_precheck.json",
            "reports/phase3/general_precheck.json",
            "reports/phase3/shuttle_precheck.json",
            "reports/phase3/docs/SIGNOFF_*.html",
            "reports/phase3/docs/BRIEF_*.html",
            "phase3/stage4/documentation/ic/*/PRELIMINARY_DATASHEET.md",
            "phase3/stage4/documentation/ic/*/RELEASE_NOTES.md",
            "phase3/stage4/documentation/ic/*/ERRATA.md",
            "phase3/stage4/documentation/ic/*/documentation_manifest.yaml"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "operator_precheck"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 6 references; destinations: vibeic_gate, librelane_custom_step, drop the marker writer after migrating 31/37; keep the disclosure rung as a vibeic_gate, vibeic_gate (keep; host-runnable). Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：6 個參照；目的地：vibeic_gate, librelane_custom_step, drop the marker writer after migrating 31/37; keep the disclosure rung as a vibeic_gate, vibeic_gate (keep; host-runnable)。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/57"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/57"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/57"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/57"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/57"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "37.5ic-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "37.5ic-H2",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "37.5ic-H3",
              "declared_destination": "drop the marker writer after migrating 31/37; keep the disclosure rung as a vibeic_gate"
            },
            {
              "id": "37.5ic-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "37.5ic-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "37.5ic-H6",
              "declared_destination": "vibeic_gate (keep; host-runnable)"
            }
          ]
        }
      },
      {
        "step_id": "38",
        "canonical_index": 58,
        "family_id": "F4",
        "title_en": "Foundry Handoff (mask spec + WAT plan + scribe layout + corner test kit)",
        "title_zh": "Foundry 交接（mask spec + WAT + scribe）",
        "function": {
          "en": "Foundry Handoff (mask spec + WAT plan + scribe layout + corner test kit). Inputs: phase3/stage4/gds/*.gds. Outputs: phase3/stage4/foundry_handoff/mask_spec.json; phase3/stage4/foundry_handoff/wat_plan.json; phase3/stage4/foundry_handoff/scribe_line_layout.gds OR phase3/stage4/foundry_handoff/scribe_line_layout.PENDING_FOUNDRY.txt; phase3/stage4/foundry_handoff/corner_test_vectors.json.",
          "zh": "Foundry 交接（mask spec + WAT + scribe）。輸入：phase3/stage4/gds/*.gds。輸出：phase3/stage4/foundry_handoff/mask_spec.json；phase3/stage4/foundry_handoff/wat_plan.json；phase3/stage4/foundry_handoff/scribe_line_layout.gds OR phase3/stage4/foundry_handoff/scribe_line_layout.PENDING_FOUNDRY.txt；phase3/stage4/foundry_handoff/corner_test_vectors.json。",
          "inputs": [
            {
              "from": 37,
              "path": "phase3/stage4/gds/*.gds"
            }
          ],
          "outputs": [
            "phase3/stage4/foundry_handoff/mask_spec.json",
            "phase3/stage4/foundry_handoff/wat_plan.json",
            "phase3/stage4/foundry_handoff/scribe_line_layout.gds OR phase3/stage4/foundry_handoff/scribe_line_layout.PENDING_FOUNDRY.txt",
            "phase3/stage4/foundry_handoff/corner_test_vectors.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "vibeic"
          ],
          "external_handoff": true,
          "handoff_en": "Declared physical handoff requires applicable external evidence; software source is not physical completion.",
          "handoff_zh": "此列宣告實體外部交付，須有適用的外部證據；軟體來源不構成實體完成。",
          "harvest_en": "Original HARVEST: 4 references; destinations: vibeic_gate, vibeic_gate (keep the refusal), drop the cause. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：4 個參照；目的地：vibeic_gate, vibeic_gate (keep the refusal), drop the cause。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/58"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/58"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/58"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/58"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/58"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "38-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "38-H2",
              "declared_destination": "vibeic_gate (keep the refusal), drop the cause"
            },
            {
              "id": "38-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "38-H4",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "39",
        "canonical_index": 59,
        "family_id": "F4",
        "title_en": "FPGA final sign-off (recompile + on-board test)",
        "title_zh": "FPGA 最終簽核（重編 + 上板測試）",
        "function": {
          "en": "FPGA final sign-off (recompile + on-board test). Inputs: phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v; a physical FPGA board on the bench. Outputs: phase2/stage1/fpga/final/*.sof; reports/phase2/fpga/on_board_pass.json.",
          "zh": "FPGA 最終簽核（重編 + 上板測試）。輸入：phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v；a physical FPGA board on the bench。輸出：phase2/stage1/fpga/final/*.sof；reports/phase2/fpga/on_board_pass.json。",
          "inputs": [
            {
              "from": 1,
              "path": "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
            },
            {
              "from": "external",
              "check": "none",
              "what": "a physical FPGA board on the bench"
            }
          ],
          "outputs": [
            "phase2/stage1/fpga/final/*.sof",
            "reports/phase2/fpga/on_board_pass.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "quartus"
          ],
          "external_handoff": true,
          "handoff_en": "Declared physical handoff requires applicable external evidence; software source is not physical completion.",
          "handoff_zh": "此列宣告實體外部交付，須有適用的外部證據；軟體來源不構成實體完成。",
          "harvest_en": "Original HARVEST: 2 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：2 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory is an explicit external handoff.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 為明確外部 handoff。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/59"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "EXPLICIT_EXTERNAL_HANDOFF_NO_NATIVE_CREDIT"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/59"
            }
          ]
        },
        "mode_completion": {
          "state": "EXPLICIT_EXTERNAL_HANDOFF",
          "en": "External handoff registered; manufacturing / packaging / testing needs actual external evidence. No artificial multi-tool requirement.",
          "zh": "已登記外部 handoff；製造／封裝／測試須有實際外部證據，不增設人為多工具要求。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/59"
            }
          ],
          "default_source_disposition": "SOURCE_REGISTERED_EXTERNAL_HANDOFF",
          "ultra_source_disposition": "EXPLICIT_NO_ARTIFICIAL_MULTITOOL_HANDOFF"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/59"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/59"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "39-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "39-H2",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "M1",
        "canonical_index": 60,
        "family_id": "F5",
        "title_en": "Mixed-Signal Top-Level Integration (A+D GDS merge + macro placement)",
        "title_zh": "頂層整合（A+D GDS 合併）",
        "function": {
          "en": "Mixed-Signal Top-Level Integration (A+D GDS merge + macro placement). Inputs: phase3/stage4/gds/*.gds; A8. Outputs: phase3/mixed_signal/top_merged.gds; reports/analog/mixed_signal/merge.json.",
          "zh": "頂層整合（A+D GDS 合併）。輸入：phase3/stage4/gds/*.gds；A8。輸出：phase3/mixed_signal/top_merged.gds；reports/analog/mixed_signal/merge.json。",
          "inputs": [
            {
              "from": 37,
              "path": "phase3/stage4/gds/*.gds"
            },
            {
              "from": "A8",
              "outputs": "all"
            }
          ],
          "outputs": [
            "phase3/mixed_signal/top_merged.gds",
            "reports/analog/mixed_signal/merge.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 10 references; destinations: vibeic_gate, drop, librelane_config. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：10 個參照；目的地：vibeic_gate, drop, librelane_config。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/60"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "TARGETED_PREPARE_PLAN_POPULATION_ROOT_ACCEPTED",
          "en": "same original4231 complete-gate population control only; NOT_MEASURED plan remains",
          "zh": "原始 4231 完整 gate population 控制已接受；plan 仍為 NOT_MEASURED。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/60"
            }
          ],
          "receipt": {
            "bytes": 4163,
            "sha256": "970d1e931ac56ab6264b11402c5f52d261374bd81a68ddfd4041fe1799fcabe7"
          }
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/60"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/60"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/60"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "M1-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M1-H2",
              "declared_destination": "drop"
            },
            {
              "id": "M1-H3",
              "declared_destination": "drop"
            },
            {
              "id": "M1-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M1-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M1-H6",
              "declared_destination": "drop"
            },
            {
              "id": "M1-H7",
              "declared_destination": "drop"
            },
            {
              "id": "M1-H8",
              "declared_destination": "librelane_config"
            },
            {
              "id": "M1-H9",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M1-H10",
              "declared_destination": "drop"
            }
          ]
        }
      },
      {
        "step_id": "M2",
        "canonical_index": 61,
        "family_id": "F5",
        "title_en": "Mixed-Signal Power Domain + Level Shifter / Isolation Verification",
        "title_zh": "功率域 + 電位轉換 / 隔離驗證",
        "function": {
          "en": "Mixed-Signal Power Domain + Level Shifter / Isolation Verification. Inputs: phase3/mixed_signal/top_merged.gds. Outputs: reports/analog/mixed_signal/power_domain.json; reports/analog/mixed_signal/level_shifter.json; reports/analog/mixed_signal/isolation.json.",
          "zh": "功率域 + 電位轉換 / 隔離驗證。輸入：phase3/mixed_signal/top_merged.gds。輸出：reports/analog/mixed_signal/power_domain.json；reports/analog/mixed_signal/level_shifter.json；reports/analog/mixed_signal/isolation.json。",
          "inputs": [
            {
              "from": "M1",
              "path": "phase3/mixed_signal/top_merged.gds"
            }
          ],
          "outputs": [
            "reports/analog/mixed_signal/power_domain.json",
            "reports/analog/mixed_signal/level_shifter.json",
            "reports/analog/mixed_signal/isolation.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "openroad"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 6 references; destinations: vibeic_gate, librelane_custom_step. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：6 個參照；目的地：vibeic_gate, librelane_custom_step。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/61"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/61"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/61"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/61"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/61"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "M2-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M2-H2",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "M2-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M2-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M2-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M2-H6",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "M3",
        "canonical_index": 62,
        "family_id": "F5",
        "title_en": "Mixed-Signal Verification (AMS co-sim + RNM + interface signal integrity)",
        "title_zh": "混訊驗證（AMS 共模擬 + RNM + 介面 SI）",
        "function": {
          "en": "Mixed-Signal Verification (AMS co-sim + RNM + interface signal integrity). Inputs: phase3/mixed_signal/top_merged.gds. Outputs: phase3/mixed_signal/cosim/mixed_signal_results.json; reports/analog/mixed_signal/interface_si.json.",
          "zh": "混訊驗證（AMS 共模擬 + RNM + 介面 SI）。輸入：phase3/mixed_signal/top_merged.gds。輸出：phase3/mixed_signal/cosim/mixed_signal_results.json；reports/analog/mixed_signal/interface_si.json。",
          "inputs": [
            {
              "from": "M1",
              "path": "phase3/mixed_signal/top_merged.gds"
            }
          ],
          "outputs": [
            "phase3/mixed_signal/cosim/mixed_signal_results.json",
            "reports/analog/mixed_signal/interface_si.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "vibeic"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: vibeic_gate, librelane_custom_step. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：vibeic_gate, librelane_custom_step。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/62"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/62"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/62"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/62"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/62"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "M3-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M3-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M3-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M3-H4",
              "declared_destination": "librelane_custom_step"
            },
            {
              "id": "M3-H5",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "M4",
        "canonical_index": 63,
        "family_id": "F5",
        "title_en": "Mixed-Signal Sign-Off (top-level PV + final verdict)",
        "title_zh": "混訊簽核（頂層 PV + 最終判定）",
        "function": {
          "en": "Mixed-Signal Sign-Off (top-level PV + final verdict). Inputs: phase3/mixed_signal/top_merged.gds. Outputs: reports/analog/mixed_signal/signoff.json.",
          "zh": "混訊簽核（頂層 PV + 最終判定）。輸入：phase3/mixed_signal/top_merged.gds。輸出：reports/analog/mixed_signal/signoff.json。",
          "inputs": [
            {
              "from": "M1",
              "path": "phase3/mixed_signal/top_merged.gds"
            }
          ],
          "outputs": [
            "reports/analog/mixed_signal/signoff.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_analog.py:prepare",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:execute"
          ],
          "consumer_entrypoints": [
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates"
          ],
          "entrypoint_refs": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_analog.py:project_population",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L174"
            },
            {
              "entrypoint": "execution_adapters_analog.py:adoption_destinations",
              "source_sha256": "215c304c3136b6a084040bedd17ff0410a13576b0c660b8292d7ce21899c65f3",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_analog.py#L82"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 5 references; destinations: vibeic_gate, librelane_config. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：5 個參照；目的地：vibeic_gate, librelane_config。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
            "tree": "e7c9f1f9304a3da58c80ca0837a97b66c727a389",
            "source_receipt": {
              "bytes": 4138,
              "sha256": "e6b2347baca915f28a3db283ca18fb2099f24019c4937346978b6deccac3d845"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 9c7a7df963ac; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 9c7a7df963ac；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/63"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "9c7a7df963ac9e3fea2b5e3ca3657ced4fa31457",
          "source_entrypoints": [
            "execution_adapters_analog.py:project_population",
            "execution_adapters_analog.py:adoption_destinations",
            "execution_adapters_analog.py:source_requirements",
            "execution_adapters_analog.py:prepare",
            "execution_adapters_analog.py:validate",
            "execution_adapters_analog.py:consume",
            "execution_analog_worker.py:source_produce",
            "execution_analog_worker.py:native_produce",
            "execution_analog_worker.py:validate_outputs",
            "execution_analog_worker.py:semantic_gates",
            "execution_analog_worker.py:execute"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/63"
            }
          ]
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/63"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/63"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/63"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "M4-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M4-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M4-H3",
              "declared_destination": "librelane_config"
            },
            {
              "id": "M4-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "M4-H5",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "40",
        "canonical_index": 64,
        "family_id": "F4",
        "title_en": "Fabrication (foundry mask-set + wafer fab — external)",
        "title_zh": "晶圓製造（foundry mask-set + fab · 外部）",
        "function": {
          "en": "Fabrication (foundry mask-set + wafer fab — external). Inputs: 38. Outputs: phase3/stage5_manufacturing/mask_set_received.json; phase3/stage5_manufacturing/wafer_lot_received.json.",
          "zh": "晶圓製造（foundry mask-set + fab · 外部）。輸入：38。輸出：phase3/stage5_manufacturing/mask_set_received.json；phase3/stage5_manufacturing/wafer_lot_received.json。",
          "inputs": [
            {
              "from": 38,
              "outputs": "all"
            }
          ],
          "outputs": [
            "phase3/stage5_manufacturing/mask_set_received.json",
            "phase3/stage5_manufacturing/wafer_lot_received.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "fabrication"
          ],
          "external_handoff": true,
          "handoff_en": "Declared physical handoff requires applicable external evidence; software source is not physical completion.",
          "handoff_zh": "此列宣告實體外部交付，須有適用的外部證據；軟體來源不構成實體完成。",
          "harvest_en": "Original HARVEST: 3 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：3 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory is an explicit external handoff.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 為明確外部 handoff。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/64"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "EXPLICIT_EXTERNAL_HANDOFF_NO_NATIVE_CREDIT"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/64"
            }
          ]
        },
        "mode_completion": {
          "state": "EXPLICIT_EXTERNAL_HANDOFF",
          "en": "External handoff registered; manufacturing / packaging / testing needs actual external evidence. No artificial multi-tool requirement.",
          "zh": "已登記外部 handoff；製造／封裝／測試須有實際外部證據，不增設人為多工具要求。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/64"
            }
          ],
          "default_source_disposition": "SOURCE_REGISTERED_EXTERNAL_HANDOFF",
          "ultra_source_disposition": "EXPLICIT_NO_ARTIFICIAL_MULTITOOL_HANDOFF"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/64"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/64"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "40-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "40-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "40-H3",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "41",
        "canonical_index": 65,
        "family_id": "F4",
        "title_en": "Wafer Sort / Probe Test (ATE + probe card)",
        "title_zh": "晶圓分選 / 探針測試（ATE + probe card）",
        "function": {
          "en": "Wafer Sort / Probe Test (ATE + probe card). Inputs: phase3/stage5_manufacturing/wafer_lot_received.json. Outputs: phase3/stage5_manufacturing/wafer_sort_yield.json; phase3/stage5_manufacturing/wafer_map.csv.",
          "zh": "晶圓分選 / 探針測試（ATE + probe card）。輸入：phase3/stage5_manufacturing/wafer_lot_received.json。輸出：phase3/stage5_manufacturing/wafer_sort_yield.json；phase3/stage5_manufacturing/wafer_map.csv。",
          "inputs": [
            {
              "from": 40,
              "path": "phase3/stage5_manufacturing/wafer_lot_received.json"
            }
          ],
          "outputs": [
            "phase3/stage5_manufacturing/wafer_sort_yield.json",
            "phase3/stage5_manufacturing/wafer_map.csv"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "ni_sts"
          ],
          "external_handoff": true,
          "handoff_en": "Declared physical handoff requires applicable external evidence; software source is not physical completion.",
          "handoff_zh": "此列宣告實體外部交付，須有適用的外部證據；軟體來源不構成實體完成。",
          "harvest_en": "Original HARVEST: 2 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：2 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory is an explicit external handoff.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 為明確外部 handoff。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/65"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "EXPLICIT_EXTERNAL_HANDOFF_NO_NATIVE_CREDIT"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/65"
            }
          ]
        },
        "mode_completion": {
          "state": "EXPLICIT_EXTERNAL_HANDOFF",
          "en": "External handoff registered; manufacturing / packaging / testing needs actual external evidence. No artificial multi-tool requirement.",
          "zh": "已登記外部 handoff；製造／封裝／測試須有實際外部證據，不增設人為多工具要求。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/65"
            }
          ],
          "default_source_disposition": "SOURCE_REGISTERED_EXTERNAL_HANDOFF",
          "ultra_source_disposition": "EXPLICIT_NO_ARTIFICIAL_MULTITOOL_HANDOFF"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/65"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/65"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "41-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "41-H2",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "42",
        "canonical_index": 66,
        "family_id": "F4",
        "title_en": "Packaging (assembly: wirebond / FC-CSP / WLCSP)",
        "title_zh": "封裝（wirebond / FC-CSP / WLCSP）",
        "function": {
          "en": "Packaging (assembly: wirebond / FC-CSP / WLCSP). Inputs: 41. Outputs: phase3/stage5_manufacturing/packaging_log.json.",
          "zh": "封裝（wirebond / FC-CSP / WLCSP）。輸入：41。輸出：phase3/stage5_manufacturing/packaging_log.json。",
          "inputs": [
            {
              "from": 41,
              "outputs": "all"
            }
          ],
          "outputs": [
            "phase3/stage5_manufacturing/packaging_log.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "assembly"
          ],
          "external_handoff": true,
          "handoff_en": "Declared physical handoff requires applicable external evidence; software source is not physical completion.",
          "handoff_zh": "此列宣告實體外部交付，須有適用的外部證據；軟體來源不構成實體完成。",
          "harvest_en": "Original HARVEST: 2 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：2 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory is an explicit external handoff.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 為明確外部 handoff。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/66"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "EXPLICIT_EXTERNAL_HANDOFF_NO_NATIVE_CREDIT"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/66"
            }
          ]
        },
        "mode_completion": {
          "state": "EXPLICIT_EXTERNAL_HANDOFF",
          "en": "External handoff registered; manufacturing / packaging / testing needs actual external evidence. No artificial multi-tool requirement.",
          "zh": "已登記外部 handoff；製造／封裝／測試須有實際外部證據，不增設人為多工具要求。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/66"
            }
          ],
          "default_source_disposition": "SOURCE_REGISTERED_EXTERNAL_HANDOFF",
          "ultra_source_disposition": "EXPLICIT_NO_ARTIFICIAL_MULTITOOL_HANDOFF"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/66"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/66"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "42-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "42-H2",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "43",
        "canonical_index": 67,
        "family_id": "F4",
        "title_en": "Final Test (ATE: functional + parametric + burn-in)",
        "title_zh": "最終測試（功能 + 參數 + burn-in）",
        "function": {
          "en": "Final Test (ATE: functional + parametric + burn-in). Inputs: phase3/stage5_manufacturing/packaging_log.json. Outputs: phase3/stage5_manufacturing/final_test_yield.json; phase3/stage5_manufacturing/burn_in_results.json.",
          "zh": "最終測試（功能 + 參數 + burn-in）。輸入：phase3/stage5_manufacturing/packaging_log.json。輸出：phase3/stage5_manufacturing/final_test_yield.json；phase3/stage5_manufacturing/burn_in_results.json。",
          "inputs": [
            {
              "from": 42,
              "path": "phase3/stage5_manufacturing/packaging_log.json"
            }
          ],
          "outputs": [
            "phase3/stage5_manufacturing/final_test_yield.json",
            "phase3/stage5_manufacturing/burn_in_results.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "ni_sts"
          ],
          "external_handoff": true,
          "handoff_en": "Declared physical handoff requires applicable external evidence; software source is not physical completion.",
          "handoff_zh": "此列宣告實體外部交付，須有適用的外部證據；軟體來源不構成實體完成。",
          "harvest_en": "Original HARVEST: 1 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：1 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory is an explicit external handoff.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 為明確外部 handoff。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/67"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "EXPLICIT_EXTERNAL_HANDOFF_NO_NATIVE_CREDIT"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/67"
            }
          ]
        },
        "mode_completion": {
          "state": "EXPLICIT_EXTERNAL_HANDOFF",
          "en": "External handoff registered; manufacturing / packaging / testing needs actual external evidence. No artificial multi-tool requirement.",
          "zh": "已登記外部 handoff；製造／封裝／測試須有實際外部證據，不增設人為多工具要求。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/67"
            }
          ],
          "default_source_disposition": "SOURCE_REGISTERED_EXTERNAL_HANDOFF",
          "ultra_source_disposition": "EXPLICIT_NO_ARTIFICIAL_MULTITOOL_HANDOFF"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/67"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/67"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "43-H1",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "44",
        "canonical_index": 68,
        "family_id": "F4",
        "title_en": "Reliability qualification (HTOL / FIT attestation)",
        "title_zh": "可靠度驗證（HTOL / FIT）",
        "function": {
          "en": "Reliability qualification (HTOL / FIT attestation). Inputs: 43. Outputs: phase3/stage5_manufacturing/htol_results.json.",
          "zh": "可靠度驗證（HTOL / FIT）。輸入：43。輸出：phase3/stage5_manufacturing/htol_results.json。",
          "inputs": [
            {
              "from": 43,
              "outputs": "all"
            }
          ],
          "outputs": [
            "phase3/stage5_manufacturing/htol_results.json"
          ],
          "producer_entrypoints": [
            "execution_adapters_release.py:prepare",
            "execution_release_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products"
          ],
          "entrypoint_refs": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "source_links": [
            {
              "entrypoint": "execution_adapters_release.py:population",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L93"
            },
            {
              "entrypoint": "execution_adapters_release.py:declared_identities",
              "source_sha256": "9dc43f03660bcdfd8ca328eac8086fb57e768ff2641dc58b81880a3b548b6ef4",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_adapters_release.py#L314"
            }
          ],
          "default_tool_ids": [
            "qualification"
          ],
          "external_handoff": true,
          "handoff_en": "Declared physical handoff requires applicable external evidence; software source is not physical completion.",
          "handoff_zh": "此列宣告實體外部交付，須有適用的外部證據；軟體來源不構成實體完成。",
          "harvest_en": "Original HARVEST: 4 references; destinations: vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：4 個參照；目的地：vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
            "tree": "184759090ad3e7bed0127a60d126678d1bb66b03",
            "source_receipt": {
              "bytes": 18412,
              "sha256": "f901870ee6098435367cb9f484f170c8d874264ace0948bf287f29e98ee6c01a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 8cc5cf8ffe4b; full default / ultra completion is separate. Source factory is an explicit external handoff.",
          "zh": "已有 adapter producer／consumer 入口，來源 8cc5cf8ffe4b；完整 default／ultra 完成分開記錄。來源 factory 為明確外部 handoff。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/68"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "8cc5cf8ffe4b32fc24cdf81430808f9c0fc6f457",
          "source_entrypoints": [
            "execution_adapters_release.py:population",
            "execution_adapters_release.py:declared_identities",
            "execution_adapters_release.py:prepare",
            "execution_adapters_release.py:semantic_consume",
            "execution_adapters_release.py:selected_current",
            "execution_release_worker.py:produce",
            "execution_release_worker.py:gates",
            "execution_release_worker.py:validate_products",
            "execution_release_worker.py:external_handoff"
          ],
          "registered_factory_kind": "EXPLICIT_EXTERNAL_HANDOFF_NO_NATIVE_CREDIT"
        },
        "finite_functional": {
          "state": "NO_STEP_SPECIFIC_END_TO_END_RESULT_CREDIT_FROM_FAMILY_REVIEW",
          "en": "Generic original family C/I integrity controls remain family-level; no automatic per-step runtime PASS",
          "zh": "本最小摘要未授予此步專屬端到端結果；家族 controls 保留於家族範圍，不自動換算逐步 runtime PASS。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/68"
            }
          ]
        },
        "mode_completion": {
          "state": "EXPLICIT_EXTERNAL_HANDOFF",
          "en": "External handoff registered; manufacturing / packaging / testing needs actual external evidence. No artificial multi-tool requirement.",
          "zh": "已登記外部 handoff；製造／封裝／測試須有實際外部證據，不增設人為多工具要求。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/68"
            }
          ],
          "default_source_disposition": "SOURCE_REGISTERED_EXTERNAL_HANDOFF",
          "ultra_source_disposition": "EXPLICIT_NO_ARTIFICIAL_MULTITOOL_HANDOFF"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/68"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/68"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "44-H1",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "44-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "44-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "44-H4",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      },
      {
        "step_id": "P0",
        "canonical_index": 69,
        "family_id": "F2",
        "title_en": "Structural-RTL pre-flight (chip-AGNOSTIC structural gates)",
        "title_zh": "結構化 RTL 預檢（77 個 chip-agnostic gate）",
        "function": {
          "en": "Structural-RTL pre-flight (chip-AGNOSTIC structural gates). Inputs: phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v. Outputs: .",
          "zh": "結構化 RTL 預檢（77 個 chip-agnostic gate）。輸入：phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v。輸出：。",
          "inputs": [
            {
              "from": 1,
              "path": "phase2/stage1/rtl/*.sv OR phase2/stage1/rtl/*.v"
            }
          ],
          "outputs": [],
          "producer_entrypoints": [
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce"
          ],
          "consumer_entrypoints": [
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "entrypoint_refs": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "source_links": [
            {
              "entrypoint": "execution_frontend_worker.py:contract",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L114"
            },
            {
              "entrypoint": "execution_frontend_worker.py:required_input_specs",
              "source_sha256": "35fd084d49d70963b738a65b043f40a630573a1392b53d26a16bf5e7ef2065a5",
              "source_url": "https://github.com/vibeic/vibe-ic/blob/1ae95c439a5c794d843a66327770d54ffe52b9ba/vibe-ic-marketplace/plugins/vibe-ic/programs/execution_frontend_worker.py#L201"
            }
          ],
          "default_tool_ids": [
            "librelane"
          ],
          "external_handoff": false,
          "handoff_en": "No physical handoff is declared for this row; qualification still requires applicable current evidence.",
          "handoff_zh": "此列未宣告實體外部交付；qualification 仍須適用的目前證據。",
          "harvest_en": "Original HARVEST: 6 references; destinations: drop, vibeic_gate. Existing disposition retained.",
          "harvest_zh": "原始 HARVEST：6 個參照；目的地：drop, vibeic_gate。保留既有 disposition。",
          "recorded_wiring_epoch": {
            "head": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
            "tree": "032048fc0bae2ee2abb29746ae2bb61d9f1b5e99",
            "source_receipt": {
              "bytes": 2902,
              "sha256": "2bf6c45183c67f4b82fc93f08b461da808a46ca3d4aadbf2dd2d2887f8c02f3a"
            }
          }
        },
        "implementation": {
          "state": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "en": "Adapter producer / consumer entrypoints present at 1ae95c439a5c; full default / ultra completion is separate. Source factory registers one producer arm.",
          "zh": "已有 adapter producer／consumer 入口，來源 1ae95c439a5c；完整 default／ultra 完成分開記錄。來源 factory 登記一個 producer arm。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/69"
            }
          ],
          "status": "IMMUTABLE_ADAPTER_PRODUCER_CONSUMER_ENTRYPOINTS_PRESENT_NOT_FULL_TWO_MODE_COMPLETION",
          "basis": "1ae95c439a5c794d843a66327770d54ffe52b9ba",
          "source_entrypoints": [
            "execution_frontend_worker.py:contract",
            "execution_frontend_worker.py:required_input_specs",
            "execution_frontend_worker.py:required_input_roots",
            "execution_frontend_worker.py:input_roots",
            "execution_frontend_worker.py:adoption_paths",
            "execution_frontend_worker.py:prepare_frontend",
            "execution_frontend_worker.py:produce",
            "execution_frontend_worker.py:semantic_consumer",
            "execution_frontend_worker.py:validate_frontend",
            "execution_frontend_worker.py:publish_selected",
            "execution_frontend_worker.py:consume_frontend"
          ],
          "registered_factory_kind": "ONE_PRODUCER_ARM"
        },
        "finite_functional": {
          "state": "BOUNDED_COMPONENT_FUNCTIONAL_AND_SHIPPING_ACCEPTED",
          "en": "real CPU progress/stall refusal/reaping + exact43 shipping; component v82 landed, not every controller step",
          "zh": "已接受 CPU progress／stall refusal／reaping 與精確 43 shipping controls；P0 component 已在 v82 落地，不構成所有 controller 步驟完成。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/69"
            }
          ],
          "receipt": {
            "bytes": 2246,
            "sha256": "09cf061c69ff1f8bac5061d807f0b59b48f81013a74b45745bc72389a5ab8bd3"
          }
        },
        "mode_completion": {
          "state": "DEFAULT_AND_ULTRA_PROVIDER_DISPOSITION_PENDING",
          "en": "Exact default provider priority / promotion / fallback and distinct-tool Ultra parallelism / independent AI adoption still need source disposition.",
          "zh": "仍須逐步確認 default provider 優先順序／promotion／fallback，以及 Ultra 不同工具並行／獨立 AI adoption 的來源實作。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/69"
            }
          ],
          "default_source_disposition": "ONE_PRODUCER_SOURCE_WIRED; promotion ingress/fallback/provider qualification partial",
          "ultra_source_disposition": "ONE_PRODUCER_REGISTERED; applicable DISTINCT alternatives need source implementation"
        },
        "native_measurement": {
          "state": "NOT_INFERRED",
          "en": "Native / physical accuracy is not inferred from source or finite SOURCE_FIXTURE controls.",
          "zh": "原始碼與有限 SOURCE_FIXTURE controls 不構成原生／實體準確度量測。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/69"
            }
          ]
        },
        "release_scope": {
          "state": "FIVE_FAMILY_SOURCE_UNLANDED",
          "en": "Five-family source release remains pending; this does not erase this step’s implemented source or scoped validation.",
          "zh": "五家族來源發布待完成；此全域狀態不抹除此步已實作來源或限定範圍驗證。",
          "bindings": [
            {
              "sha256": "98e59c003167cc49198cad52d79a1c9d754509b6fe65814e3a7a72ff80ccd002",
              "json_pointer": "/rows/69"
            }
          ]
        },
        "remaining_specific_step_proof": "Source and applicable routes qualification separated from finite case; no mandatory licensed second tool or repeat of accepted bounded proof",
        "harvest": {
          "items": [
            {
              "id": "P0-H1",
              "declared_destination": "drop"
            },
            {
              "id": "P0-H2",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "P0-H3",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "P0-H4",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "P0-H5",
              "declared_destination": "vibeic_gate"
            },
            {
              "id": "P0-H6",
              "declared_destination": "vibeic_gate"
            }
          ]
        }
      }
    ],
    "collector_matrix_sha256": "e6ae82a98ef63929fb1db7b9953167d59ee1d417d4d0242d2a9cb2bb4da9829c",
    "source_wiring_sha256": "28f69a7097f1446a55c84e1d72c921060fc12ca522ef537281ab4bce8b9e59cd",
    "status_export": "data/flow-tools.json"
  },
  "current_controller_repair_status": {
    "observed_utc": "2026-10-01T02:27:03.186497+00:00",
    "scope": "ADDITIVE_CURRENT_STATUS; old catalogs/70rows/sourceanalysis/proofepochs remain historical and unchanged",
    "official_release": "1.26.84",
    "v85": "ORIGINAL_369_SCOPE_RED217_RETURNED_FOR_REPAIR_NOT_LANDED",
    "common_default_adoption": "SOURCE_REPAIRED_BOUNDED_PENDING_SHIPPING",
    "default_source_software_controls": {
      "v2": {
        "passed": 16,
        "raw_rc": 1,
        "failure": "readonly selected-generation mutation setup failure"
      },
      "v3": {
        "changed_controls": 1,
        "semantic_pass": true,
        "numeric_raw_rc": null
      },
      "native_jobs": 0,
      "current_adoption_after_controls": "REFUSED by later Step9 negative; positive adoption bytes not retained; issued positive selected/copy/import artifacts retained",
      "existing_A1_9_E2E_ID_count_unchanged": true
    },
    "bounded_original_green_checks": {
      "count": 3,
      "scope": "One originalD9 ID plus two originalF3 IDs; not subtracting from original217 histogram, not whole70 completion",
      "ids": [
        "programs/tests/test_matrix_d9_verdict_consumed.py::test_d9_every_runner_that_invokes_the_checker_consumes_its_verdict",
        "programs/tests/test_issue2081_signoff_rollup_keeps_the_number.py::test_no_one_shot_runner_still_slices_a_step_detail_by_hand",
        "programs/tests/test_phase3_one_shot_runner.py::test_the_chip_top_producer_runs_first_and_can_stop_the_ring"
      ],
      "raw_rc": 0,
      "extra_two_load_by_path_offenders": "bounded --one0; not fullissue2104 PASS"
    },
    "source_open_obligations": [
      {
        "id": "STEP30_ISSUER_HOST_BOUNDARY",
        "state": "SOURCE_REPAIRED_BOUNDED_PENDING_PRODUCTION_CONSUMPTION",
        "brief_sha256": "8d178b467627ec58ff29b2d82fa97267998e29815291b1247d57fe9be49737b0",
        "source_sha256": "b254263f874f70f599f0177ec6491afde8a12f3d117b782a7caae49c602d407b",
        "remaining": "Broker and held-child placement source are bounded-validated; actual production placement/feasibility/concurrent consumer and Step30 tool qualification remain open"
      },
      {
        "id": "BACKEND_SAME_ROW_OPENROAD_SOURCE_ROUTING",
        "state": "SOURCE_ROUTING_OPEN",
        "steps": [
          "15",
          "17",
          "19",
          "20",
          "21"
        ],
        "brief_sha256": "c3e9580a508d5161160893e27ec507444c147b245a25663bc8ef2be653eb70e0",
        "step17_preparation": "8 bounded preparation checks accepted; genuine complete provider/factory/canonical/adoption routing still open",
        "direct_rows_preparation": "New preparation batch 9 passed, 1 failed to reach final expected refusal; complete provider/factory/canonical/adoption still open"
      },
      {
        "id": "FRONTEND_STEP1_CURRENT_INGRESS_AND_SHARED_CALLBACK_SEAM",
        "state": "SOURCE_ROUTING_OPEN",
        "step": "1",
        "owners": "Original F2 and F1 actors; same-family continuation",
        "gap": "Measured FAIL precedence is bounded-validated. D1/0.5ic real host ingress still stops at authentic issued-child scope consumption; complete frontend qualification remains open."
      }
    ],
    "root_authorities": {
      "default_adoption": {
        "sha256": "c70be05841b96e3d1f5cb72bf832683b48bc7d0bbbdaac1f4725cfd6bb4a2911",
        "scope": "BOUNDED_PROGRAM_DEFAULT_SOURCE_REPAIR_ACCEPTED_PENDING_SHIPPING"
      },
      "F4_one_D9_two_offenders": {
        "sha256": "90e73a549a839de3fb0cc0984c8033a81d81c525e6983077a5773d05ff46fa2f",
        "scope": "BOUNDED_SOURCE_ACCEPTANCE_F4_THREE_NECESSARY_HUNKS"
      },
      "F3_two_original_IDs": {
        "sha256": "2e9e9dfbbd4de4c71df98080cacbcb8488e1e32eec93e6727e66fd0db5a7b64b",
        "scope": "BOUNDED_F3_TWO_ORIGINAL_FAILURES_SOURCE_ACCEPTED"
      },
      "broker_host_aggregate_boundary": {
        "sha256": "0d1361fa961faf830081b3457891e81a874997b26d8d0eaee38ed8a954fdaa07",
        "scope": "BOUNDED_F1_BROKER_AND_HOST_AGGREGATE_SOURCE_ACCEPTED_PENDING_PRODUCTION_CONSUMPTION_AND_SHIPPING"
      },
      "step17_direct_preparation": {
        "sha256": "e69883021033307179200b4cc6ef45d647af74877be0200d87e34dd1ef93e956",
        "scope": "BOUNDED_F3_STEP17_DIRECT_PREPARATION_HELPER_SOURCE_ACCEPTED_PENDING_REAL_PROVIDER_CONSUMPTION_AND_SHIPPING"
      },
      "effective_host_child_limits": {
        "sha256": "a1201c2fe0c0723e4314b633d6c492b997fdf8b2b0f5a1671fe79a800d0a4d84",
        "scope": "ACCEPTED_BOUNDED_SOFTWARE_HOST_SCOPE_SOURCE"
      },
      "held_child_aggregate_host_placement": {
        "sha256": "c0129f9b59d7a7d065d3bb92b17d427b4992115a42086ce7dafddf3986b79acd",
        "scope": "ACCEPTED_BOUNDED_REAL_KERNEL_PLACEMENT_SOURCE"
      },
      "measured_canonical_failure_classifier": {
        "sha256": "5f74832bf9b6f1b45fb8f997a8212f8c5bc041afce459c34867b76a8b208a0a0",
        "scope": "ACCEPTED_BOUNDED_MEASURED_FAILURE_CLASSIFIER_HUNK"
      },
      "F5_ORIGINAL_TWO_CORRECTED_CONTROLS_BOUNDED_SOURCE_ACCEPTANCE.json": {
        "sha256": "5505ba71addff5e67f4330e2592380be2634a9b637f70b1b5bf9710eca817d4d",
        "scope": "ROOT_ACCEPTED_ORIGINAL_TWO_CHANGED_SOFTWARE_CONTROLS"
      },
      "F3_FINAL_DIRECT_ROW_PREPARATION_CONTROL_BOUNDED_ACCEPTANCE.json": {
        "sha256": "d5a5fcc6f677098883f9a4555dda6205b4a2e21de4837801dca464b670e10dae",
        "scope": "ROOT_ACCEPTED_BOUNDED_FINAL_PREPARATION_CONTROL"
      },
      "F2_STEP05_ACTUAL_SOFTWARE_CALLER_FAIL_PRESERVATION_BOUNDED_SOURCE_ACCEPTANCE.json": {
        "sha256": "fedc0cd62b590656fdd604f53a5176ff8806ce5453044dabe3bdda1982b4612d",
        "scope": "ROOT_ACCEPTED_BOUNDED_HOST_SOFTWARE_CALLER_FAIL_PRESERVATION"
      }
    },
    "source_assembly": "Necessary dirty-owned proposals pending exact source composition/shipping; no newfinalcandidate SHA claim",
    "native": "NOT_MEASURED",
    "whole70_complete": false,
    "unchanged_prior_counts": true,
    "source_open_obligations_scope": "Named current source gaps only; nonexhaustive. Original217 repair and other step-specific implementation/proof obligations remain tracked separately.",
    "accepted_bounded_source_repairs": {
      "broker_host_aggregate_boundary": {
        "status": "SOURCE_REPAIRED_BOUNDED_PENDING_PRODUCTION_CONSUMPTION_AND_SHIPPING",
        "checks": 5,
        "source_commit": "7cadea76bdc56163b58eee374ae7e1bf34d5bab6",
        "source_sha256": "b254263f874f70f599f0177ec6491afde8a12f3d117b782a7caae49c602d407b",
        "scope": "Real disposable broker/aggregate-host kernel-boundary source controls; original 13/7/7 proof epochs remain unchanged",
        "native_jobs": 0,
        "remaining": "Real feasibility, concurrent caller and common host-sibling placement; complete Step30 and shipping remain open"
      },
      "step17_direct_preparation": {
        "status": "BOUNDED_SOURCE_PREPARATION_ACCEPTED_PENDING_REAL_PROVIDER_CONSUMPTION_AND_SHIPPING",
        "checks": 8,
        "source_epoch": "f3c66a6d4fc29416655c8dbf2fe1de52fb61b423 plus dirty phase3 runner",
        "runner_sha256": "a48b5c3ee325143ce6c6a19304049e5e0ca24b8dc164e035f916caea454b2a52",
        "scope": "Current bound INPUT/placement-only preparation checks; external execution audit-fenced, no native placement or adoption claim",
        "native_jobs": 0,
        "remaining": "Real provider/registry/canonical validation and shipping; original af3 two-green epoch remains unchanged"
      },
      "effective_host_child_limits": {
        "status": "ACCEPTED_BOUNDED_SOFTWARE_HOST_SCOPE_SOURCE",
        "checks": 7,
        "source_modes_sha256": "a2a7689dc085fd444d8b3bb99cca08e8099e3e20207a69ab3e49a174e56b110f",
        "loaded_resource_sha256": "c2fb587d9feff0c258fa9e8f32408ef5e895845058b6006640907a5f6f95872e",
        "scope": "Genuine issued software worker host ceilings and immutable effective CPU/AS pin; not complete canonical producer qualification",
        "native_jobs": 0,
        "new_step_or_E2E_credit": 0
      },
      "held_child_aggregate_host_placement": {
        "status": "ACCEPTED_BOUNDED_REAL_KERNEL_PLACEMENT_SOURCE",
        "checks": 8,
        "source_commit": "bcd3a6c94e3c64c66f0b99e88bde6f227cde09c1",
        "source_sha256": "2e2ecbcc0f378cd733beaed17eb941739110c85c9c35154c806057434d76e43b",
        "scope": "Seven placement controls and one copied-lease admission control; actual production consumer and shipping remain open",
        "native_jobs": 0,
        "new_step_or_E2E_credit": 0
      },
      "measured_canonical_failure_classifier": {
        "status": "ACCEPTED_BOUNDED_MEASURED_FAILURE_CLASSIFIER_HUNK",
        "scope": "Actual measured content FAIL precedes expert handoff/incomplete verdict; later ingress source not runtime-restamped",
        "runtime_fixed_worker_sha256": "bbbbb7a8ed251d7640b85cae6e1abd8cf7ce66539fb12155a398a9e64633d139",
        "runtime_modes_sha256": "8729a041dde3f71c0a9630dbe41103ba799bb4b6ed3776ab8d3c9d4859987368",
        "runtime_production_sha256": "40d6205d2554f20d9ae3e091a31ab409feb911ab67820766cf57c08de50a7546",
        "native_jobs": 0,
        "new_step_or_E2E_credit": 0
      }
    },
    "no_new_complete_step_credit": true,
    "old_runtime_proof_epochs_preserved": true,
    "latest_changed_original_software_batches": {
      "analog_original_six": {
        "passed": 4,
        "failed": 2,
        "raw_rc": 1,
        "source_epoch": "b92/1c814/fd12/86ba/79e1",
        "scope": "Same six original SOURCE_FIXTURE software controls, new issued-child once; no new whole-step or E2E credit",
        "failed_reasons": [
          "Expected rollback refusal not raised",
          "Original runtime source mutation guard rejected programs-tree worker mutation"
        ],
        "native_jobs": 0
      },
      "backend_direct_preparation_new_ten": {
        "passed": 9,
        "failed_to_finish_expected_control": 1,
        "raw_rc": 1,
        "runner_sha256": "ee34f3c4764d036eac9cd71654be5a955c3fe88eb068efcac03aaf6a895c971d",
        "scope": "Ten new preparation controls; not real tool execution",
        "error": "DIRECT_ROW_INPUT_UNBOUND clock_plan.json before final ambiguous-seam expected refusal",
        "native_jobs": 0
      }
    },
    "existing_two_default_end_to_end_ids_unchanged": true,
    "public_copy": {
      "en": "Previous host-limit, placement and measured FAIL checks remain accepted. Analog checks retain four earlier passes, with the remaining two now passing; direct preparation retains nine earlier passes, with its final check now passing. Neither batch was rerun in full. Step 0.5ic reaches both real tools, but the current template check remains FAIL (NEVER_LOOKED), with no import. All seven controller functional areas remain under validation. Release 1.26.84 is current; v85 is unlanded and its original 217 failures are preserved. No new native result or completed-step credit; the two existing default examples are unchanged.",
      "zh": "先前主機上限、子程序安置與實測 FAIL 判定的有限檢查維持接受。類比保留先前 4 綠，剩餘 2 例已綠；直接路徑準備保留先前 9 綠，最後 1 例已綠，兩批都沒有整套重跑。0.5ic 已可呼叫兩個實際工具，但目前模板檢查仍為 FAIL（NEVER_LOOKED），沒有匯入。七個控制器功能類別仍待完整驗收。正式版為 1.26.84；v85 未落地，原 217 失敗紀錄保留。不新增原生工具成果或完成步驟，既有兩個預設模式例證不變。"
    },
    "scoped_software_followup_acceptances": {
      "analog_original_remaining_two": {
        "status": "ROOT_ACCEPTED_ORIGINAL_TWO_CHANGED_SOFTWARE_CONTROLS",
        "passed": 2,
        "raw_rc": 0,
        "test_sha256": "d9906bc5dd0d5f382ff56f4dee45cd8c8dd7940c85c652e4591cf32669940170",
        "source_epoch": "b92/1c814/fd12/86ba/d990/oldresource5b2311",
        "scope": "Only the two original failed controls ran after their correction; four earlier passes retained, no full-six rerun.",
        "prior_red_record": "latest_changed_original_software_batches.analog_original_six remains 4PASS/2FAIL/raw1 at its original79e1 epoch.",
        "authority": {
          "path": "/home/reyerchu/codex_tasks/out/codex0930/enhancement70-final/root/F5_ORIGINAL_TWO_CORRECTED_CONTROLS_BOUNDED_SOURCE_ACCEPTANCE.json",
          "bytes": 2859,
          "sha256": "5505ba71addff5e67f4330e2592380be2634a9b637f70b1b5bf9710eca817d4d"
        },
        "native_jobs": 0,
        "new_step_or_E2E_credit": 0
      },
      "backend_direct_final_preparation_control": {
        "status": "ROOT_ACCEPTED_BOUNDED_FINAL_PREPARATION_CONTROL",
        "passed": 1,
        "fixed_raw_rc": 0,
        "reverse_raw_rc": 1,
        "reverse_scope": "Fixture-only clock digest mismatch; no production reverse mutation claim.",
        "runner_sha256": "ee34f3c4764d036eac9cd71654be5a955c3fe88eb068efcac03aaf6a895c971d",
        "scope": "Only final original preparation control fixed/reverse; earlier nine passes retained, no full-ten rerun.",
        "prior_red_record": "latest_changed_original_software_batches.backend_direct_preparation_new_ten remains 9PASS/1unfinished/raw1 at its original fixture epoch.",
        "authority": {
          "path": "/home/reyerchu/codex_tasks/out/codex0930/enhancement70-final/root/F3_FINAL_DIRECT_ROW_PREPARATION_CONTROL_BOUNDED_ACCEPTANCE.json",
          "bytes": 1915,
          "sha256": "d5a5fcc6f677098883f9a4555dda6205b4a2e21de4837801dca464b670e10dae"
        },
        "complete_native_provider": "NOT_MEASURED",
        "native_jobs": 0,
        "new_step_or_E2E_credit": 0
      },
      "step05_actual_software_tools_measured_failure": {
        "status": "ROOT_ACCEPTED_BOUNDED_HOST_SOFTWARE_CALLER_FAIL_PRESERVATION",
        "step_id": "0.5ic",
        "worker_sha256": "7e4a5721253c66befe4610a2044a3336b0f82cf27ed1af42504739ae9336434c",
        "runtime_shared_source_epoch": "8729/40d6/oldresource5b2311; not current receiving source",
        "actual_tools": [
          {
            "program": "submission_template_ingest",
            "rc": 0
          },
          {
            "program": "tapeout_declaration_gen",
            "rc": 0
          }
        ],
        "canonical_status": "FAIL",
        "canonical_program": "submission_template_check",
        "canonical_rc": 1,
        "canonical_reason": "NEVER_LOOKED",
        "tapeout_declaration_check": "NOT_EXECUTED",
        "adoption": "NOT_PERFORMED",
        "scope": "Current retained owner INPUT lacks an actual operator template lookup; preserve measured FAIL and supplied inputs. Tool reachability is proven, no whole-step PASS.",
        "authority": {
          "path": "/home/reyerchu/codex_tasks/out/codex0930/enhancement70-final/root/F2_STEP05_ACTUAL_SOFTWARE_CALLER_FAIL_PRESERVATION_BOUNDED_SOURCE_ACCEPTANCE.json",
          "bytes": 1595,
          "sha256": "fedc0cd62b590656fdd604f53a5176ff8806ce5453044dabe3bdda1982b4612d"
        },
        "native_jobs": 0,
        "new_step_or_E2E_credit": 0
      }
    },
    "all_seven_controller_functional_areas_complete": false
  }
}
