{
  "tool_id": "art-495-avax-permissioning-control-classifier",
  "note": "golden_hash filled by golden-parity.test.mjs --update; output_payload filled by fill-fixture-payloads.mjs. Vector 1: Evergreen default genesis -- TX + Contract AllowList active (protocol_enforced), the other three precompiles inactive with a mix of declared application control and confirmed absence, validator manager PoA (application_enforced). Vector 2: fully protocol/application enforced genesis -- all five precompiles active, PoS validator manager -- zero gaps, zero judgment calls. Vector 3: fully permissionless genesis -- every precompile explicitly inactive, no application control declared for any, no validator manager deployed -- every control lands in the gap register, demonstrating AVAX_PERMISSIONING_NO_PROTOCOL_CONTROLS. Vector 4: nothing declared at all -- every control resolves to judgment_required, each naming the undetermined fact and the input that resolves it, never a bare flag.",
  "vectors": [
    {
      "name": "evergreen_default_mixed",
      "description": "Evergreen genesis: TX + Contract Deployer AllowList active (protocol_enforced); Native Minter and Reward Manager inactive with confirmed absence of an application control (absent); Fee Manager inactive with a declared application control (application_enforced); validator-manager mode PoA (application_enforced under ACP-77).",
      "policy_parameters": {
        "precompiles": {
          "txallowlist": {
            "activated": true
          },
          "deployerallowlist": {
            "activated": true
          },
          "nativeminter": {
            "activated": false
          },
          "feemanager": {
            "activated": false
          },
          "rewardmanager": {
            "activated": false
          }
        },
        "application_controls": {
          "fee_policy_control": true,
          "native_asset_issuance_control": false,
          "reward_distribution_control": false
        },
        "validator_manager_mode": "poa"
      },
      "output_payload": {
        "controls": [
          {
            "control_id": "transaction_permissioning",
            "label": "Transaction submission (TX AllowList)",
            "precompile_key": "txallowlist",
            "status": "protocol_enforced",
            "basis": "precompile_active_in_genesis"
          },
          {
            "control_id": "contract_deployment_permissioning",
            "label": "Contract deployment (Contract Deployer AllowList)",
            "precompile_key": "deployerallowlist",
            "status": "protocol_enforced",
            "basis": "precompile_active_in_genesis"
          },
          {
            "control_id": "native_asset_issuance_control",
            "label": "Native asset issuance (Native Minter)",
            "precompile_key": "nativeminter",
            "status": "absent",
            "basis": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "fee_policy_control",
            "label": "Fee policy (Fee Manager)",
            "precompile_key": "feemanager",
            "status": "application_enforced",
            "basis": "app_level_control_declared"
          },
          {
            "control_id": "reward_distribution_control",
            "label": "Reward distribution (Reward Manager)",
            "precompile_key": "rewardmanager",
            "status": "absent",
            "basis": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "validator_set_membership_control",
            "label": "Validator set membership (validator-manager contract, ACP-77)",
            "precompile_key": null,
            "status": "application_enforced",
            "basis": "validator_manager_mode_poa"
          }
        ],
        "gap_register": [
          {
            "control_id": "native_asset_issuance_control",
            "label": "Native asset issuance (Native Minter)",
            "reason": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "reward_distribution_control",
            "label": "Reward distribution (Reward Manager)",
            "reason": "precompile_inactive_no_app_control"
          }
        ],
        "judgment_required": [],
        "controls_evaluated": 6,
        "protocol_enforced_count": 2,
        "application_enforced_count": 2,
        "absent_count": 2,
        "judgment_required_count": 0
      },
      "golden_hash": "45f1f6fd9d8a47934f2a1218a99376d586786c1c33313303a840300a0e57084d"
    },
    {
      "name": "fully_enforced_no_gaps",
      "description": "All five precompiles active at genesis; validator-manager mode PoS. Every control resolves to protocol_enforced or application_enforced -- zero gaps, zero judgment calls.",
      "policy_parameters": {
        "precompiles": {
          "txallowlist": {
            "activated": true
          },
          "deployerallowlist": {
            "activated": true
          },
          "nativeminter": {
            "activated": true
          },
          "feemanager": {
            "activated": true
          },
          "rewardmanager": {
            "activated": true
          }
        },
        "application_controls": {},
        "validator_manager_mode": "pos"
      },
      "output_payload": {
        "controls": [
          {
            "control_id": "transaction_permissioning",
            "label": "Transaction submission (TX AllowList)",
            "precompile_key": "txallowlist",
            "status": "protocol_enforced",
            "basis": "precompile_active_in_genesis"
          },
          {
            "control_id": "contract_deployment_permissioning",
            "label": "Contract deployment (Contract Deployer AllowList)",
            "precompile_key": "deployerallowlist",
            "status": "protocol_enforced",
            "basis": "precompile_active_in_genesis"
          },
          {
            "control_id": "native_asset_issuance_control",
            "label": "Native asset issuance (Native Minter)",
            "precompile_key": "nativeminter",
            "status": "protocol_enforced",
            "basis": "precompile_active_in_genesis"
          },
          {
            "control_id": "fee_policy_control",
            "label": "Fee policy (Fee Manager)",
            "precompile_key": "feemanager",
            "status": "protocol_enforced",
            "basis": "precompile_active_in_genesis"
          },
          {
            "control_id": "reward_distribution_control",
            "label": "Reward distribution (Reward Manager)",
            "precompile_key": "rewardmanager",
            "status": "protocol_enforced",
            "basis": "precompile_active_in_genesis"
          },
          {
            "control_id": "validator_set_membership_control",
            "label": "Validator set membership (validator-manager contract, ACP-77)",
            "precompile_key": null,
            "status": "application_enforced",
            "basis": "validator_manager_mode_pos"
          }
        ],
        "gap_register": [],
        "judgment_required": [],
        "controls_evaluated": 6,
        "protocol_enforced_count": 5,
        "application_enforced_count": 1,
        "absent_count": 0,
        "judgment_required_count": 0
      },
      "golden_hash": "8f3233f70e77492a80ec26e2056ae4cadaa051264fac84e1cc3eeec3f0ba5bc8"
    },
    {
      "name": "fully_permissionless_all_absent",
      "description": "Every precompile explicitly declared inactive, every application control explicitly confirmed absent, no validator-manager contract deployed. All six controls land in the gap register -- AVAX_PERMISSIONING_NO_PROTOCOL_CONTROLS fires alongside AVAX_PERMISSIONING_GAPS_FOUND.",
      "policy_parameters": {
        "precompiles": {
          "txallowlist": {
            "activated": false
          },
          "deployerallowlist": {
            "activated": false
          },
          "nativeminter": {
            "activated": false
          },
          "feemanager": {
            "activated": false
          },
          "rewardmanager": {
            "activated": false
          }
        },
        "application_controls": {
          "transaction_permissioning": false,
          "contract_deployment_permissioning": false,
          "native_asset_issuance_control": false,
          "fee_policy_control": false,
          "reward_distribution_control": false,
          "validator_set_membership_control": false
        },
        "validator_manager_mode": "none"
      },
      "output_payload": {
        "controls": [
          {
            "control_id": "transaction_permissioning",
            "label": "Transaction submission (TX AllowList)",
            "precompile_key": "txallowlist",
            "status": "absent",
            "basis": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "contract_deployment_permissioning",
            "label": "Contract deployment (Contract Deployer AllowList)",
            "precompile_key": "deployerallowlist",
            "status": "absent",
            "basis": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "native_asset_issuance_control",
            "label": "Native asset issuance (Native Minter)",
            "precompile_key": "nativeminter",
            "status": "absent",
            "basis": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "fee_policy_control",
            "label": "Fee policy (Fee Manager)",
            "precompile_key": "feemanager",
            "status": "absent",
            "basis": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "reward_distribution_control",
            "label": "Reward distribution (Reward Manager)",
            "precompile_key": "rewardmanager",
            "status": "absent",
            "basis": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "validator_set_membership_control",
            "label": "Validator set membership (validator-manager contract, ACP-77)",
            "precompile_key": null,
            "status": "absent",
            "basis": "no_validator_manager_no_app_control"
          }
        ],
        "gap_register": [
          {
            "control_id": "transaction_permissioning",
            "label": "Transaction submission (TX AllowList)",
            "reason": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "contract_deployment_permissioning",
            "label": "Contract deployment (Contract Deployer AllowList)",
            "reason": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "native_asset_issuance_control",
            "label": "Native asset issuance (Native Minter)",
            "reason": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "fee_policy_control",
            "label": "Fee policy (Fee Manager)",
            "reason": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "reward_distribution_control",
            "label": "Reward distribution (Reward Manager)",
            "reason": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "validator_set_membership_control",
            "label": "Validator set membership (validator-manager contract, ACP-77)",
            "reason": "no_validator_manager_no_app_control"
          }
        ],
        "judgment_required": [],
        "controls_evaluated": 6,
        "protocol_enforced_count": 0,
        "application_enforced_count": 0,
        "absent_count": 6,
        "judgment_required_count": 0
      },
      "golden_hash": "16e6cf5a16e1820c6d5b4754b32679dc2f20f9ddf5d56ab450d2de60b2140f26"
    },
    {
      "name": "nothing_declared_all_judgment_required",
      "description": "No precompile activation state and no validator-manager mode declared at all. Every one of the six controls resolves to judgment_required, each naming the specific undetermined fact and the input that would resolve it -- never a bare flag.",
      "policy_parameters": {
        "precompiles": {},
        "application_controls": {},
        "validator_manager_mode": ""
      },
      "output_payload": {
        "controls": [
          {
            "control_id": "transaction_permissioning",
            "label": "Transaction submission (TX AllowList)",
            "precompile_key": "txallowlist",
            "status": "judgment_required",
            "judgment": {
              "undetermined": "activation state of precompile 'txallowlist' for control 'transaction_permissioning'",
              "resolving_input": "precompiles.txallowlist.activated (boolean, transcribed from genesis)",
              "decided_by": "the L1 operator supplying the genesis configuration"
            }
          },
          {
            "control_id": "contract_deployment_permissioning",
            "label": "Contract deployment (Contract Deployer AllowList)",
            "precompile_key": "deployerallowlist",
            "status": "judgment_required",
            "judgment": {
              "undetermined": "activation state of precompile 'deployerallowlist' for control 'contract_deployment_permissioning'",
              "resolving_input": "precompiles.deployerallowlist.activated (boolean, transcribed from genesis)",
              "decided_by": "the L1 operator supplying the genesis configuration"
            }
          },
          {
            "control_id": "native_asset_issuance_control",
            "label": "Native asset issuance (Native Minter)",
            "precompile_key": "nativeminter",
            "status": "judgment_required",
            "judgment": {
              "undetermined": "activation state of precompile 'nativeminter' for control 'native_asset_issuance_control'",
              "resolving_input": "precompiles.nativeminter.activated (boolean, transcribed from genesis)",
              "decided_by": "the L1 operator supplying the genesis configuration"
            }
          },
          {
            "control_id": "fee_policy_control",
            "label": "Fee policy (Fee Manager)",
            "precompile_key": "feemanager",
            "status": "judgment_required",
            "judgment": {
              "undetermined": "activation state of precompile 'feemanager' for control 'fee_policy_control'",
              "resolving_input": "precompiles.feemanager.activated (boolean, transcribed from genesis)",
              "decided_by": "the L1 operator supplying the genesis configuration"
            }
          },
          {
            "control_id": "reward_distribution_control",
            "label": "Reward distribution (Reward Manager)",
            "precompile_key": "rewardmanager",
            "status": "judgment_required",
            "judgment": {
              "undetermined": "activation state of precompile 'rewardmanager' for control 'reward_distribution_control'",
              "resolving_input": "precompiles.rewardmanager.activated (boolean, transcribed from genesis)",
              "decided_by": "the L1 operator supplying the genesis configuration"
            }
          },
          {
            "control_id": "validator_set_membership_control",
            "label": "Validator set membership (validator-manager contract, ACP-77)",
            "precompile_key": null,
            "status": "judgment_required",
            "judgment": {
              "undetermined": "which validator-manager mode (poa / pos / managed / none) governs this L1",
              "resolving_input": "validator_manager_mode (string: \"poa\" | \"pos\" | \"managed\" | \"none\")",
              "decided_by": "the L1 operator supplying the genesis and validator-manager deployment record"
            }
          }
        ],
        "gap_register": [],
        "judgment_required": [
          {
            "control_id": "transaction_permissioning",
            "label": "Transaction submission (TX AllowList)",
            "undetermined": "activation state of precompile 'txallowlist' for control 'transaction_permissioning'",
            "resolving_input": "precompiles.txallowlist.activated (boolean, transcribed from genesis)",
            "decided_by": "the L1 operator supplying the genesis configuration"
          },
          {
            "control_id": "contract_deployment_permissioning",
            "label": "Contract deployment (Contract Deployer AllowList)",
            "undetermined": "activation state of precompile 'deployerallowlist' for control 'contract_deployment_permissioning'",
            "resolving_input": "precompiles.deployerallowlist.activated (boolean, transcribed from genesis)",
            "decided_by": "the L1 operator supplying the genesis configuration"
          },
          {
            "control_id": "native_asset_issuance_control",
            "label": "Native asset issuance (Native Minter)",
            "undetermined": "activation state of precompile 'nativeminter' for control 'native_asset_issuance_control'",
            "resolving_input": "precompiles.nativeminter.activated (boolean, transcribed from genesis)",
            "decided_by": "the L1 operator supplying the genesis configuration"
          },
          {
            "control_id": "fee_policy_control",
            "label": "Fee policy (Fee Manager)",
            "undetermined": "activation state of precompile 'feemanager' for control 'fee_policy_control'",
            "resolving_input": "precompiles.feemanager.activated (boolean, transcribed from genesis)",
            "decided_by": "the L1 operator supplying the genesis configuration"
          },
          {
            "control_id": "reward_distribution_control",
            "label": "Reward distribution (Reward Manager)",
            "undetermined": "activation state of precompile 'rewardmanager' for control 'reward_distribution_control'",
            "resolving_input": "precompiles.rewardmanager.activated (boolean, transcribed from genesis)",
            "decided_by": "the L1 operator supplying the genesis configuration"
          },
          {
            "control_id": "validator_set_membership_control",
            "label": "Validator set membership (validator-manager contract, ACP-77)",
            "undetermined": "which validator-manager mode (poa / pos / managed / none) governs this L1",
            "resolving_input": "validator_manager_mode (string: \"poa\" | \"pos\" | \"managed\" | \"none\")",
            "decided_by": "the L1 operator supplying the genesis and validator-manager deployment record"
          }
        ],
        "controls_evaluated": 6,
        "protocol_enforced_count": 0,
        "application_enforced_count": 0,
        "absent_count": 0,
        "judgment_required_count": 6
      },
      "golden_hash": "d8712dc0e38b5a470a423b545d1f2cb3f150c74a47a6cb0bfa307098be5f48dd"
    }
  ]
}
