{
  "schema_version": 1,
  "optional_extras": {
    "adsb": {
      "disposition": "installed_failure_boundary",
      "scenario": "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata",
      "reason": "pyModeS is installed, but the native ADS-B source is an explicit unsupported runtime boundary; this test proves its current role remains discoverable from installed metadata."
    },
    "dev": {
      "disposition": "test_tooling",
      "reason": "developer tooling, not an RFGen runtime feature."
    },
    "gemini": {
      "disposition": "external_manual",
      "reason": "requires GEMINI_API_KEY and an explicit billed provider call; provider-free CI exercises the SDS annotation runner with deterministic test clients."
    },
    "gcs": {
      "disposition": "external_manual",
      "reason": "Signal Dataset's own GCS backend requires real Google Cloud Storage credentials and a bucket; local CI has neither. Exercised by the manual Dataproc Serverless verification recorded in .agent-state/architecture-decisions/open-core-findings.md, which also found the maintained image never installed this extra."
    },
    "sigmf": {
      "disposition": "installed_exercised",
      "scenario": "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata",
      "reason": "The installed extra loads the native SigMF source role; focused replay and identity tests exercise the reference reader separately."
    },
    "sionna": {
      "disposition": "installed_exercised",
      "scenario": "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata",
      "reason": "The installed extra loads every declared Sionna role; focused typed and provisioned RT tests run separately."
    },
    "spark": {
      "disposition": "external_manual",
      "reason": "distributed generation qualification requires a JVM and approved cloud infrastructure."
    },
    "torchsig": {
      "disposition": "installed_exercised",
      "scenario": "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
    }
  },
  "scenarios": {
    "rfgen.commands": {
      "init": [
        "tests/integration/local/test_cli_generate_sds_installed.py::test_installed_cli_generate_publishes_reopenable_sds"
      ],
      "validate": [
        "tests/integration/local/test_cli_generate_sds_installed.py::test_installed_cli_generate_publishes_reopenable_sds"
      ],
      "explain": [
        "tests/integration/local/test_cli_generate_sds_installed.py::test_installed_cli_generate_publishes_reopenable_sds"
      ],
      "generate": [
        "tests/integration/local/test_cli_generate_sds_installed.py::test_installed_cli_generate_publishes_reopenable_sds"
      ],
      "inspect": [
        "tests/integration/local/test_cli_generate_sds_installed.py::test_installed_cli_generate_publishes_reopenable_sds"
      ],
      "list-nodes": [
        "tests/integration/local/test_cli_generate_sds_installed.py::test_installed_cli_generate_publishes_reopenable_sds"
      ]
    },
    "rfgen.nodes.source": {
      "am": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "constellation": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "fm": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "fsk": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "lora": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "ofdm": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "sigmf_capture": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "tone": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "torchsig_comms": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "torchsig_fsk": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "torchsig_ofdm": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "torchsig_am": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "torchsig_fm": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "torchsig_chirp": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "torchsig_tone": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "torchsig_target_constellations": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "apsk": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "oqpsk": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "chirp_radar": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "pulsed_radar": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "nr_pusch": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "nr_ofdm_conformant": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "fec_constellation": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ]
    },
    "rfgen.nodes.transform": {
      "apply_cir": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "carrier_translation": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_roles_execute_a_real_typed_chain"
      ],
      "cir_to_cfr": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "converter_scaling": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "converter_rounding": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "converter_clipping": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "converter_reconstruction": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "rapp_pa": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "saleh_pa": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "leeson_phase_noise": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "phase_rotation": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "pdp_rayleigh_fading": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "placement_evidence": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_roles_execute_a_real_typed_chain"
      ],
      "receiver_input_boundary": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "receiver_voltage_limiter": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "transmitter_crest_limiter": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "iq_imbalance": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "carrier_frequency_offset": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "awgn": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "receiver_mixer": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "if_fir_response": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "if_scalar_gain": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "fir_group_delay_realignment": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "rational_resampler": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "sample_clock_offset": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "receiver_thermal_noise": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "receiver_lo_error": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "automatic_gain_control": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "sionna_uma": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "tr38901_pathloss": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "sionna_umi": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "sionna_rma": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "sionna_tdl": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "sionna_cdl": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ],
      "scene_placement": [
        "tests/integration/local/test_cli_generate_sds_installed.py::test_installed_cli_generate_publishes_reopenable_sds"
      ],
      "time_placement": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_roles_execute_a_real_typed_chain"
      ],
      "transmit_power": [
        "tests/integration/local/test_local_entry_points.py::test_installed_node_entry_points_load_from_distribution_metadata"
      ]
    },
    "rfgen.annotation_executors": {},
    "rfgen.executors": {
      "local": [
        "tests/integration/local/test_cli_generate_sds_installed.py::test_installed_cli_generate_publishes_reopenable_sds"
      ]
    },
    "rfgen.storage": {
      "sds": [
        "tests/integration/local/test_cli_generate_sds_installed.py::test_installed_cli_generate_publishes_reopenable_sds"
      ]
    },
    "rfgen.metrics": {
      "paes": [
        "tests/integration/local/test_local_entry_points.py::test_installed_auxiliary_entry_points_load_and_execute"
      ]
    },
    "rfgen.backend_capabilities": {
      "sionna": [
        "tests/integration/local/test_cli_generate_sds_installed.py::test_installed_cli_generate_publishes_reopenable_sds"
      ],
      "torchsig": [
        "tests/integration/local/test_cli_generate_sds_installed.py::test_installed_cli_generate_publishes_reopenable_sds"
      ]
    }
  },
  "covered": {
    "rfgen.commands": [
      "init",
      "validate",
      "explain",
      "generate",
      "inspect",
      "list-nodes"
    ],
    "rfgen.nodes.source": [
      "am",
      "constellation",
      "fm",
      "fsk",
      "lora",
      "ofdm",
      "sigmf_capture",
      "tone",
      "torchsig_comms",
      "torchsig_fsk",
      "torchsig_ofdm",
      "torchsig_am",
      "torchsig_fm",
      "torchsig_chirp",
      "torchsig_tone",
      "torchsig_target_constellations",
      "apsk",
      "oqpsk",
      "chirp_radar",
      "pulsed_radar",
      "nr_pusch",
      "nr_ofdm_conformant",
      "fec_constellation"
    ],
    "rfgen.nodes.transform": [
      "apply_cir",
      "carrier_translation",
      "cir_to_cfr",
      "converter_scaling",
      "converter_rounding",
      "converter_clipping",
      "converter_reconstruction",
      "rapp_pa",
      "saleh_pa",
      "transmit_power",
      "leeson_phase_noise",
      "phase_rotation",
      "pdp_rayleigh_fading",
      "receiver_input_boundary",
      "receiver_voltage_limiter",
      "transmitter_crest_limiter",
      "iq_imbalance",
      "carrier_frequency_offset",
      "awgn",
      "receiver_mixer",
      "if_fir_response",
      "if_scalar_gain",
      "fir_group_delay_realignment",
      "rational_resampler",
      "sample_clock_offset",
      "receiver_thermal_noise",
      "receiver_lo_error",
      "automatic_gain_control",
      "sionna_uma",
      "tr38901_pathloss",
      "sionna_umi",
      "sionna_rma",
      "sionna_tdl",
      "sionna_cdl",
      "scene_placement",
      "placement_evidence",
      "time_placement"
    ],
    "rfgen.annotation_executors": [],
    "rfgen.executors": [
      "local"
    ],
    "rfgen.storage": [
      "sds"
    ],
    "rfgen.metrics": [
      "paes"
    ],
    "rfgen.backend_capabilities": [
      "sionna",
      "torchsig"
    ]
  },
  "excluded": {
    "rfgen.commands": {},
    "rfgen.nodes.source": {
      "adsb": "pyModeS is installed and the explicit Pass-1 generator stub is exercised as a failure boundary, not a runnable signal path",
      "analog_fpv_video": "specialized counter-UAS source covered by focused canonical node tests, not a declared golden path",
      "ble": "requires GNU Radio OOT runtime",
      "droneid": "specialized counter-UAS source covered by focused canonical node tests, not a declared golden path",
      "fhss_rc_link": "specialized counter-UAS source covered by focused canonical node tests, not a declared golden path",
      "lora_sdr": "requires GNU Radio OOT runtime",
      "lte": "requires srsRAN non-PyPI runtime",
      "ocusync_surrogate": "specialized counter-UAS source covered by focused canonical node tests, not a declared golden path",
      "remote_id": "specialized counter-UAS source covered by focused canonical node tests, not a declared golden path",
      "wifi": "requires GNU Radio OOT runtime",
      "zigbee": "requires GNU Radio OOT runtime"
    },
    "rfgen.nodes.transform": {
      "ray_tracing": "ad-hoc local integration; excluded from normal PR CI",
      "sionna_rayleigh_block": "requires the optional Sionna runtime; its typed dependency and backend-routing contracts are covered by focused node tests",
      "sionna_flat_fading": "requires the optional Sionna runtime; typed dependencies and backend routing are covered by focused node tests"
    },
    "rfgen.inference_clients": {
      "gemini": "external live provider and credentials are excluded",
      "gemini-3.1-flash-lite": "external live provider and credentials are excluded"
    },
    "rfgen.annotation_executors": {
      "vertex_batch": "external_manual: a live Vertex Batch job requires approved GCP identity, model eligibility, billed infrastructure, and test-owned GCS targets; deterministic unit tests cover request preparation, polling, response decoding, and publication."
    },
    "rfgen.backend_capabilities": {
      "sionna_rt": "requires excluded Sionna/RT runtime"
    },
    "rfgen.executors": {
      "dataproc_serverless": "external_manual: live Dataproc Serverless validation requires explicit GCP approval, credentials, and test-owned GCS targets; it is intentionally outside the provider-free CI E2E collection."
    }
  }
}
