{
  "$note": "ACAM Dossier Conformance Check procedure register SKELETON (work package A3). This is the published procedure set of SPEC 16.3: at each release it is VERSIONED AND HASHED - the signed check record pins {procedure_set_version, procedure_set_sha256} over the canonical bytes of this file, so any procedure-set drift is visible in the signed record. Executed in register order: the three family-A structural gates first, then denominator reconciliation (SPEC 11.1 D3), then the recomputation and disclosure procedures. v1 is deliberately 1:1 (PROC-nn detects EXC-nn); the shape permits many-to-many so later procedure versions can split or share detection without a taxonomy change. Keys recursively sorted; ASCII only. One release unit with acam/ACAM-EXCEPTIONS.md + acam/acam-exceptions.json.",
  "acam_version": "0.1.0-draft",
  "license": "CC BY 4.0",
  "procedure_set_version": "0.1.0-draft",
  "procedures": [
    {
      "description": "Schema validation: validate the dossier (and each composite contribution) against the published B1/B2 JSON Schema at its pinned version, applying the MX-2 exclusion list (constraints claimed by specific classes classify there).",
      "detects": [
        "EXC-01"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-01"
    },
    {
      "description": "Corpus-pin resolution and hash recomputation: resolve corpus_version/acam_version/annex pins to published releases; recompute manifest_sha256 and every per-control content_sha256 against the pinned object_hashes.json; resolve every control_uri.",
      "detects": [
        "EXC-02"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-02"
    },
    {
      "description": "Signature, identity, and conflicts verification: verify the producer Ed25519 signature over the JCS-canonical payload; resolve and match the identity binding (dns-txt / well-known); check the conflicts declaration complete and against the published prohibited-conflicts list; check reviewed_by != assessor_of_record; on composites, verify contributor signatures and recompute the contribution-manifest binding.",
      "detects": [
        "EXC-03"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-03"
    },
    {
      "description": "Denominator reconciliation (the first substantive lane procedure after the family-A gates): reconcile every control-level population declaration against the scoping-header system-of-record counts; type-check, arithmetically account, and evidence-check every recorded variance.",
      "detects": [
        "EXC-04"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-04"
    },
    {
      "description": "Enumeration-basis support check: on every population-governing control, check the basis enum value, the corroborating count where recorded obtainable, and the CAP-06/CAP-14 documented ceiling against the recorded effective_rung.",
      "detects": [
        "EXC-05"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-05"
    },
    {
      "description": "Sampling-cap recomputation: recompute the SPEC 11.2 caps (minimum-n per the pinned acam-sampling.json key, selection-method ceiling, deviation-on-blocking token) and compare each computed ceiling with the recorded effective_rung.",
      "detects": [
        "EXC-06"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-06"
    },
    {
      "description": "Procedure-block admissibility recomputation: disqualify workpapers per CAP-01/02/22 (assertion-only, empty observation, unqualified claims) and recompute each control's rung from the qualifying set; compare with the recorded effective_rung.",
      "detects": [
        "EXC-07"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-07"
    },
    {
      "description": "Reliability-floor recomputation: over evidence_role x evidence_class, apply CAP-03 (operational objective requires an automated- or third-party-class operating item) and CAP-12 (interview notes never sole support on a blocking control); compare ceilings with the recorded effective_rung.",
      "detects": [
        "EXC-08"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-08"
    },
    {
      "description": "IPE-basis presence check: verify ipe_basis present on every automated-class or execution-log-referenced evidence item and on every automated scoping-header system-of-record count.",
      "detects": [
        "EXC-09"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-09"
    },
    {
      "description": "Digest-coverage recount: recompute the three-part content-integrity fraction from the per-item digest_scope records; check the CAP-19 sum against declared_evidence_inventory; check metadata-only items excluded from gating coverage and carrying a digest_unavailable_reason consistent with component_operator.",
      "detects": [
        "EXC-10"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-10"
    },
    {
      "description": "Window/freshness/expiry recomputation: check every operating item in-window (W1), every design item within the W2 boundary with justification, staleness per the pinned freshness table, the 12-month window bound, the dossier_expires arithmetic, and that no override targets a non-overridable rule.",
      "detects": [
        "EXC-11"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-11"
    },
    {
      "description": "Disclosure completeness and regeneration check: regenerate every mandatory computed disclosure (cover consistency line, override count, corpus-currency stamp, SC-2 siblings, failure-token counts, R-1/AB-2/AB-4/RV-2 co-renderings, CAP-18 scope-limitation records) and compare with the rendered record; run the prohibited-terms machine list over the rendered language.",
      "detects": [
        "EXC-12"
      ],
      "machine_decidable": true,
      "procedure_id": "PROC-12"
    }
  ],
  "prose": "acam/ACAM-EXCEPTIONS.md",
  "source_section": "SPEC 16.3; ACAM-EXCEPTIONS 7",
  "spec": "acam/ACAM-SPEC.md"
}
