{
  "schema": "semiagora.har-metric-contract.v1",
  "version": "2026-08-28-har-v1",
  "experimentId": "SA-PROC-ETCH-HAR-011",
  "stateContractVersion": "2026-08-28-har-v1",
  "executionMode": "original_dimensionless_precomputed_replay_only",
  "coefficientOrigin": "All coefficients and thresholds are original SemiAgora teaching choices. None are copied, fitted, calibrated, reverse engineered, or inferred from a source publication, vendor page, named tool, customer run, chamber, geometry, measurement, or physical recipe.",
  "sourceNumericUse": "none",
  "roundDigits": 9,
  "numericClosureTolerance": 1e-8,
  "sweep": {
    "rows": 6912,
    "physicalRows": 3456,
    "evidencePairs": 3456,
    "axes": {
      "application_family": 4,
      "aspect_ratio_burden": 3,
      "neutral_transport_state": 3,
      "charge_deflection_state": 3,
      "sidewall_protection": 2,
      "mask_resilience": 2,
      "ordered_state": 8,
      "evidence_posture": 2
    },
    "rowOrder": [
      "application_family",
      "aspect_ratio_burden",
      "neutral_transport_state",
      "charge_deflection_state",
      "sidewall_protection",
      "mask_resilience",
      "ordered_state",
      "evidence_posture"
    ],
    "fastestChangingAxis": "evidence_posture",
    "sampling": "Complete Cartesian product. Evidence rows are adjacent pairs and every non-evidence field must be byte-identical."
  },
  "axisCoefficients": {
    "applicationFamilies": [
      {
        "id": "dram_capacitor_like",
        "transportSensitivity": 0.82,
        "chargeSensitivity": 0.74,
        "sidewallDemand": 0.72,
        "maskDemand": 0.8,
        "bowingSensitivity": 0.68,
        "twistingSensitivity": 0.66,
        "notchingSensitivity": 0.5,
        "microtrenchingSensitivity": 0.4
      },
      {
        "id": "nand_channel_like",
        "transportSensitivity": 0.9,
        "chargeSensitivity": 0.86,
        "sidewallDemand": 0.79,
        "maskDemand": 0.88,
        "bowingSensitivity": 0.76,
        "twistingSensitivity": 0.9,
        "notchingSensitivity": 0.7,
        "microtrenchingSensitivity": 0.48
      },
      {
        "id": "contact_like",
        "transportSensitivity": 0.76,
        "chargeSensitivity": 0.82,
        "sidewallDemand": 0.7,
        "maskDemand": 0.72,
        "bowingSensitivity": 0.64,
        "twistingSensitivity": 0.82,
        "notchingSensitivity": 0.63,
        "microtrenchingSensitivity": 0.42
      },
      {
        "id": "tsv_like",
        "transportSensitivity": 0.68,
        "chargeSensitivity": 0.54,
        "sidewallDemand": 0.84,
        "maskDemand": 0.64,
        "bowingSensitivity": 0.72,
        "twistingSensitivity": 0.52,
        "notchingSensitivity": 0.58,
        "microtrenchingSensitivity": 0.78
      }
    ],
    "aspectRatioBurdenStates": [
      {
        "id": "lower",
        "scale": 0.28
      },
      {
        "id": "intermediate",
        "scale": 0.58
      },
      {
        "id": "higher",
        "scale": 0.88
      }
    ],
    "neutralTransportStates": [
      {
        "id": "starved_like",
        "scale": 0.3
      },
      {
        "id": "transitional_like",
        "scale": 0.6
      },
      {
        "id": "available_like",
        "scale": 0.9
      }
    ],
    "chargeDeflectionStates": [
      {
        "id": "low",
        "scale": 0.18
      },
      {
        "id": "mid",
        "scale": 0.48
      },
      {
        "id": "high",
        "scale": 0.8
      }
    ],
    "sidewallProtectionStates": [
      {
        "id": "lean_like",
        "scale": 0.3
      },
      {
        "id": "retained_like",
        "scale": 0.76
      }
    ],
    "maskResilienceStates": [
      {
        "id": "fragile_like",
        "scale": 0.38
      },
      {
        "id": "resilient_like",
        "scale": 0.84
      }
    ],
    "orderedStates": [
      "H00",
      "H01",
      "H02",
      "H03",
      "H04",
      "H05",
      "H06",
      "H07"
    ],
    "evidencePostures": [
      "teaching_assumption",
      "replacement_slot"
    ]
  },
  "proxyEquations": {
    "ordered_state_norm": "stateIndex / 7",
    "aspect_burden_proxy": "clamp(aspect.scale * family.transportSensitivity * (0.78 + 0.22 * ordered_state_norm), 0, 1)",
    "neutral_bottom_access_proxy": "clamp(neutral.scale * (1 - 0.58 * aspect_burden_proxy) * (0.94 - 0.12 * ordered_state_norm), 0, 1)",
    "charge_deflection_proxy": "clamp(charge.scale * family.chargeSensitivity * (0.68 + 0.32 * ordered_state_norm) * (0.78 + 0.22 * aspect_burden_proxy), 0, 1)",
    "ion_bottom_access_proxy": "clamp((0.92 - 0.50 * aspect_burden_proxy) * (1 - 0.62 * charge_deflection_proxy) * (0.88 + 0.12 * mask.scale), 0, 1)",
    "sidewall_protection_retention_proxy": "clamp(sidewall.scale * (0.92 + 0.08 * family.sidewallDemand) * (1 - 0.30 * ion_bottom_access_proxy) * (1 - 0.12 * ordered_state_norm), 0, 1)",
    "mask_loss_proxy": "clamp((0.38 * ion_bottom_access_proxy + 0.24 * charge_deflection_proxy + 0.22 * aspect_burden_proxy + 0.16 * (1 - sidewall_protection_retention_proxy)) * (1 - mask.scale) * (0.72 + 0.28 * ordered_state_norm) * family.maskDemand, 0, 1)",
    "mask_retention_proxy": "clamp(1 - 0.82 * mask_loss_proxy, 0, 1)",
    "bottom_removal_proxy": "clamp(0.34 * neutral_bottom_access_proxy + 0.38 * ion_bottom_access_proxy + 0.28 * sqrt(neutral_bottom_access_proxy * ion_bottom_access_proxy) - 0.12 * (1 - sidewall_protection_retention_proxy), 0, 1)",
    "lateral_removal_proxy": "clamp(0.31 * (1 - sidewall_protection_retention_proxy) + 0.24 * charge_deflection_proxy + 0.23 * aspect_burden_proxy + 0.22 * (1 - ion_bottom_access_proxy), 0, 1)",
    "arde_burden_proxy": "clamp(0.40 * aspect_burden_proxy + 0.34 * (1 - neutral_bottom_access_proxy) + 0.26 * (1 - ion_bottom_access_proxy), 0, 1)",
    "bowing_burden_proxy": "clamp(family.bowingSensitivity * (0.34 * (1 - sidewall_protection_retention_proxy) + 0.23 * charge_deflection_proxy + 0.24 * aspect_burden_proxy + 0.19 * lateral_removal_proxy), 0, 1)",
    "twisting_burden_proxy": "clamp(family.twistingSensitivity * (0.43 * charge_deflection_proxy + 0.27 * aspect_burden_proxy + 0.18 * (1 - mask_retention_proxy) + 0.12 * (1 - ion_bottom_access_proxy)), 0, 1)",
    "notching_burden_proxy": "clamp(family.notchingSensitivity * (0.46 * charge_deflection_proxy + 0.22 * (1 - sidewall_protection_retention_proxy) + 0.18 * ion_bottom_access_proxy + 0.14 * ordered_state_norm), 0, 1)",
    "microtrenching_burden_proxy": "clamp(family.microtrenchingSensitivity * (0.38 * charge_deflection_proxy + 0.34 * ion_bottom_access_proxy * (1 - sidewall_protection_retention_proxy) + 0.28 * lateral_removal_proxy), 0, 1)",
    "bottom_opening_proxy": "clamp(0.50 * bottom_removal_proxy + 0.19 * mask_retention_proxy + 0.16 * sidewall_protection_retention_proxy + 0.15 * (1 - arde_burden_proxy), 0, 1)",
    "distortion_burden_proxy": "clamp(0.34 * bowing_burden_proxy + 0.30 * twisting_burden_proxy + 0.18 * notching_burden_proxy + 0.18 * microtrenching_burden_proxy, 0, 1)",
    "profile_control_proxy": "clamp(0.23 * bottom_opening_proxy + 0.18 * mask_retention_proxy + 0.16 * sidewall_protection_retention_proxy + 0.13 * (1 - arde_burden_proxy) + 0.12 * (1 - bowing_burden_proxy) + 0.08 * (1 - twisting_burden_proxy) + 0.05 * (1 - notching_burden_proxy) + 0.05 * (1 - microtrenching_burden_proxy), 0, 1)",
    "stability_proxy": "clamp(1 - 0.24 * arde_burden_proxy - 0.21 * distortion_burden_proxy - 0.18 * mask_loss_proxy - 0.14 * abs(neutral_bottom_access_proxy - ion_bottom_access_proxy) - 0.13 * charge_deflection_proxy - 0.10 * lateral_removal_proxy, 0, 1)"
  },
  "integerLedgerEquations": {
    "neutral_total_tokens": "round(700 + 600 * neutral.scale + 160 * ordered_state_norm)",
    "neutral_bottom_tokens": "round(neutral_total_tokens * clamp(0.18 + 0.62 * neutral_bottom_access_proxy, 0, 0.80))",
    "neutral_sidewall_tokens": "round((neutral_total_tokens - neutral_bottom_tokens) * clamp(0.15 + 0.40 * sidewall_protection_retention_proxy, 0, 0.65))",
    "neutral_unavailable_tokens": "neutral_total_tokens - neutral_bottom_tokens - neutral_sidewall_tokens",
    "neutral_ledger_residual": "neutral_total_tokens - neutral_bottom_tokens - neutral_sidewall_tokens - neutral_unavailable_tokens",
    "ion_total_tokens": "round(820 + 260 * (1 - charge.scale) + 140 * ordered_state_norm)",
    "ion_bottom_tokens": "round(ion_total_tokens * clamp(0.12 + 0.65 * ion_bottom_access_proxy, 0, 0.82))",
    "ion_sidewall_tokens": "round((ion_total_tokens - ion_bottom_tokens) * clamp(0.10 + 0.46 * lateral_removal_proxy, 0, 0.60))",
    "ion_deflected_tokens": "round((ion_total_tokens - ion_bottom_tokens - ion_sidewall_tokens) * clamp(0.15 + 0.60 * charge_deflection_proxy, 0, 0.75))",
    "ion_unassigned_tokens": "ion_total_tokens - ion_bottom_tokens - ion_sidewall_tokens - ion_deflected_tokens",
    "ion_ledger_residual": "ion_total_tokens - ion_bottom_tokens - ion_sidewall_tokens - ion_deflected_tokens - ion_unassigned_tokens",
    "mask_start_tokens": "round(800 + 500 * mask.scale)",
    "mask_lost_tokens": "min(mask_start_tokens, round(mask_start_tokens * mask_loss_proxy))",
    "mask_remaining_tokens": "mask_start_tokens - mask_lost_tokens",
    "mask_ledger_residual": "mask_start_tokens - mask_lost_tokens - mask_remaining_tokens"
  },
  "profileRegimePrecedence": [
    "transport-starved when neutral_bottom_access_proxy < 0.32 and arde_burden_proxy > 0.52",
    "charging-deflected when charge_deflection_proxy > 0.47 and either twisting_burden_proxy or notching_burden_proxy exceeds 0.30",
    "bottom-open-limited when bottom_opening_proxy < 0.48",
    "distortion-dominant when either bowing_burden_proxy or twisting_burden_proxy exceeds 0.42",
    "mask-limited when mask_retention_proxy < 0.92",
    "sidewall-protection-limited when sidewall_protection_retention_proxy < 0.36 and bowing_burden_proxy > 0.28",
    "notch-microtrench-risk when either notching_burden_proxy or microtrenching_burden_proxy exceeds 0.28",
    "bounded-profile otherwise"
  ],
  "decisionThresholds": {
    "measurement_traceability_gate": "replacement-evidence-required for every row",
    "upstream_rie_evidence_gate": "replacement-evidence-required for every row; categorical labels never import an upstream physical state",
    "upstream_pmc_evidence_gate": "replacement-evidence-required for every row; categorical labels never import particle trajectories or geometry",
    "downstream_profile_evidence_gate": "replacement-evidence-required for every row",
    "teaching_profile_handoff_gate": "teaching-profile-handoff-ready when profile_control_proxy >= 0.63, bottom_opening_proxy >= 0.57, mask_retention_proxy >= 0.84, distortion_burden_proxy <= 0.34, and arde_burden_proxy <= 0.58; otherwise profile-handoff-blocked",
    "operator_gate": "review-charge-deflection above 0.46; else review-mask-retention below 0.95; else bounded-trace-ready",
    "process_engineer_gate": "review-transport when profile regime is transport-starved or ARDE burden exceeds 0.62; else review-sidewall-protection below 0.34; else review-profile-control below 0.61; else bounded-comparison-ready",
    "integration_gate": "profile-handoff-blocked when downstream handoff is blocked; otherwise teaching-profile-handoff-ready",
    "yield_gate": "review-bottom-open below 0.46; else review-mask-loss below 0.88 mask retention; else review-distortion above 0.36; else bounded-profile-monitor"
  },
  "bandRules": {
    "upstream_rie_mechanism_band": "neutral-limited below 0.36 neutral access; else ion-limited below 0.34 ion access; else passivation-limited above 0.55 sidewall retention with bottom removal below 0.50; otherwise synergy-dominant",
    "upstream_rie_directionality_band": "focused-like at ion access >= 0.58 and charge deflection < 0.35; mixed-like at ion access >= 0.38; otherwise broad-like",
    "upstream_rie_particle_mix_band": "neutral-weighted when neutral access exceeds ion access by more than 0.15; ion-weighted for the inverse; otherwise balanced-like",
    "upstream_pmc_transport_band": "starved-like below 0.34 neutral access; transitional-like below 0.58; otherwise available-like",
    "upstream_pmc_surface_interaction_band": "sidewall-weighted when lateral removal > 0.52; bottom-weighted when bottom removal exceeds lateral removal by more than 0.15; otherwise mixed-like",
    "downstream_profile_shape_band": "bowed-like when bowing is the largest defect proxy and at least 0.34; twisted-like when twisting is largest and at least 0.32; notched-like when notching >= 0.30; microtrenched-like when microtrenching >= 0.28; otherwise bounded-like",
    "downstream_bottom_open_band": "limited-like below 0.46; transitional-like below 0.62; otherwise open-like",
    "downstream_mask_state_band": "retained-like at or above 0.92; transitional-like at or above 0.80; otherwise depleted-like",
    "downstream_metrology_priority_band": "profile-distortion when distortion > 0.36; else bottom-open when bottom opening < 0.50; else mask-loss when mask retention < 0.88; otherwise bounded-review"
  },
  "roleGatePrecedence": {
    "operator": [
      "review-charge-deflection",
      "review-mask-retention",
      "bounded-trace-ready"
    ],
    "processEngineer": [
      "review-transport",
      "review-sidewall-protection",
      "review-profile-control",
      "bounded-comparison-ready"
    ],
    "integration": [
      "profile-handoff-blocked",
      "teaching-profile-handoff-ready"
    ],
    "yield": [
      "review-bottom-open",
      "review-mask-loss",
      "review-distortion",
      "bounded-profile-monitor"
    ]
  },
  "serialization": {
    "csv": "UTF-8 with LF line endings, fixed column order, booleans serialized as 0 or 1, and finite numbers rounded to nine decimal places.",
    "json": "UTF-8 pretty-printed JSON with metadata, contracts, source spine, fixed columns, and all rows.",
    "evidencePairIdentity": "All non-evidence fields in adjacent teaching_assumption/replacement_slot rows must be byte-identical."
  },
  "validationGates": [
    "source and scope lock passes",
    "exact Cartesian count and row order",
    "same-input byte repeatability",
    "all normalized equations independently replay",
    "all profile regimes and role gates independently replay",
    "all bridge bands independently replay",
    "three exact integer ledgers close at zero",
    "evidence-pair physical identity",
    "CSV and JSON row identity",
    "every prohibited field exists and remains numeric zero",
    "all required application families and phenomena remain represented",
    "no physical unit, source numeric value, recipe, equipment action, or named-tool output enters the packet",
    "compact manifest, artifact hashes, source reachability, and text hygiene pass"
  ]
}
