{
      "tool_id": "art-142-nis2-art21-gap-checker",
      "tool_version": "1.0.0",
      "display_name": "NIS2 Article 21 Gap Checker (Ten Cybersecurity Risk-Management Measures)",
      "mcp_name": "check_nis2_art21_measures",
      "mandate_type": "compliance_mandate",
      "wave": 26,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-142-nis2-art21-gap-checker.html",
      "description": "Check presence and maturity of all ten NIS2 Article 21(2)(a)–(j) cybersecurity risk-management measures. Derives per-measure maturity (0=absent, 1=documented-only, 2=implemented, 3=implemented+tested), aggregates to compliance score 0–100 and grade A–F, emits critical-gap list and prioritised remediation list. Consumes art-141 scope verdict; feeds penalty exposure calculator art-143.",
      "input_schema_ref": "chaingraph/art-142-nis2-art21-gap-checker.html#manifest",
      "consumes": [
        "art-141-nis2-entity-scope-classifier"
      ],
      "feeds": [
        "art-143-nis2-penalty-exposure-calculator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1e2ae5da118e19c5c3b8960fcc173a82582f8ecc9952ef30fb521b8d5e0a16b7","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "I0U2RrzLXmdmpkYnzOIPxAj7IWUus5Vk4lNtSQhimrgS1Hg0w8Nl1Nu6nDkxXaTIBKtEQptTx5T9N/jR4dTOTgPdKj19RN7n80q34xui3QNoYndQlxXqtn+t0iA0E6WFLc8tOWj80ZM3qwOYTcrKuj9xRg+ZEOxBjwcW+UMjdawRcmNfprsYC/D2VskhGees3d0YsOVj5McvCkm5fZO7SS97V3czzRs+SvElU2HfXyTl9H3G3FPdTx+JU4ESfoVFBDa9pbugZX81ZeLMc3Wp8Z1EnZkV2c2mk2SShJuoprMi6XNwMfj4iKQO1oLPij8cgCxPMD69QCwPWKWBmjdlcQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:bc2eae2bec7dca52ad1bd76a78b883c23813eeb5a8a7a58a4e67937e5b8a72bc",
          "output": {
            "compliance_score": 100,
            "critical_gaps": [],
            "measures_summary": [
              {
                "maturity": 3,
                "measure_id": "a"
              },
              {
                "maturity": 3,
                "measure_id": "b"
              },
              {
                "maturity": 3,
                "measure_id": "c"
              },
              {
                "maturity": 3,
                "measure_id": "d"
              },
              {
                "maturity": 3,
                "measure_id": "e"
              },
              {
                "maturity": 3,
                "measure_id": "f"
              },
              {
                "maturity": 3,
                "measure_id": "g"
              },
              {
                "maturity": 3,
                "measure_id": "h"
              },
              {
                "maturity": 3,
                "measure_id": "i"
              },
              {
                "maturity": 3,
                "measure_id": "j"
              }
            ],
            "overall_grade": "A",
            "remediation_priority": []
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    }
