{
  "tool_id": "art-462-je-ruleset-screen",
  "tool_version": "1.0.0",
  "display_name": "Journal-Entry Ruleset Screen",
  "mcp_name": "screen_je_ruleset",
  "mandate_type": "compliance_control",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-462-je-ruleset-screen.html",
  "description": "Runs a caller-declared, versioned journal-entry testing ruleset over a caller-declared JE extract and flags each entry that trips one or more rules: weekend/holiday postings, round-number entries, suspense/manual-account postings, post-close entries, and unusual user/account pairings. Every firm-specific convention (which rules are active, what counts as a round number, the weekend day set, the holiday calendar, the suspense-account list, the period-close date, the authorized user/account pairing list) is a caller-declared policy input, never a silent default; the ruleset_version string is echoed verbatim in the output so the artifact records exactly which policy vintage produced the flags. Optionally binds to a caller-declared extract_population_hash for audit-trail linkage to a hashed JE population (soft coupling only, e.g. to an art-460-style extract-integrity record if that node has landed). First of three ARCB-K-1 substantive audit-recalculation kernels. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-462-je-ruleset-screen.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:5f9f5a9b7c90cd52f8391fad3645938706315d2271784f07a1fb5a831b588599",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "C30cFXz7E39uTrbuoBOQd/Qkd58W4BU7DMDWABcbXe4SPWPgZr5QwzSGH04kWOPMLQvMfJOBvCdXLNZO4zGVUQVi4cL7XfqMich4Q00d4YupFs8m5lcdthSz8cDwwP8EArMR46jsRdBlUBR504ZYd+9lMbOJzFnkhTv3xvsm2agL7AU7HTsrPX0B68Cmw4bJbr6/M6hkKdenKawccTO5Ng5mwDwlraqoNxdHemGC4Y4XPqzYSxG9hGOKuAuFQdXPFYrPeC3VQxpqdCgRVxyoQrtNaXUvg40ddvBEaY34WxIUr6ZNxKOUE5fYPdc239uQzbl4YX6dcLTeiEdDgzaalA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5f9f5a9b7c90cd52f8391fad3645938706315d2271784f07a1fb5a831b588599",
      "output": {
        "active_rules": [
          "weekend_holiday",
          "round_number",
          "suspense_manual",
          "post_close",
          "unusual_user_account"
        ],
        "extract_population_hash": "sha256:abc123",
        "flagged_count": 4,
        "flagged_entries": [
          {
            "account_id": "1000-CASH",
            "amount": 5000,
            "entry_id": "JE-1",
            "highest_severity": "medium",
            "posting_date": "2026-01-10",
            "rules_tripped": [
              {
                "detail": "weekend_day",
                "rule_id": "weekend_holiday",
                "severity": "low"
              },
              {
                "detail": "multiple_of_1000",
                "rule_id": "round_number",
                "severity": "medium"
              }
            ],
            "user_id": "u1"
          },
          {
            "account_id": "9999-SUSPENSE",
            "amount": 1234.56,
            "entry_id": "JE-2",
            "highest_severity": "high",
            "posting_date": "2026-01-11",
            "rules_tripped": [
              {
                "detail": "weekend_day",
                "rule_id": "weekend_holiday",
                "severity": "low"
              },
              {
                "detail": "suspense_account",
                "rule_id": "suspense_manual",
                "severity": "high"
              },
              {
                "detail": "pair_not_in_authorized_list",
                "rule_id": "unusual_user_account",
                "severity": "medium"
              }
            ],
            "user_id": "u2"
          },
          {
            "account_id": "3000-EXP",
            "amount": 750,
            "entry_id": "JE-3",
            "highest_severity": "high",
            "posting_date": "2026-02-03",
            "rules_tripped": [
              {
                "detail": "posted_after_period_close",
                "rule_id": "post_close",
                "severity": "high"
              },
              {
                "detail": "pair_not_in_authorized_list",
                "rule_id": "unusual_user_account",
                "severity": "medium"
              }
            ],
            "user_id": "u1"
          },
          {
            "account_id": "4000-REV",
            "amount": 420,
            "entry_id": "JE-4",
            "highest_severity": "medium",
            "posting_date": "2026-01-12",
            "rules_tripped": [
              {
                "detail": "pair_not_in_authorized_list",
                "rule_id": "unusual_user_account",
                "severity": "medium"
              }
            ],
            "user_id": "u3"
          }
        ],
        "missing_policy_inputs": [],
        "rule_params_used": {
          "authorized_user_account_pairs_count": 2,
          "holiday_dates": [
            "2026-01-01"
          ],
          "post_close_date": "2026-01-31",
          "round_number_increment": 1000,
          "suspense_accounts": [
            "9999-SUSPENSE"
          ],
          "weekend_days": [
            0,
            6
          ]
        },
        "rule_trip_counts": {
          "post_close": 1,
          "round_number": 1,
          "suspense_manual": 1,
          "unusual_user_account": 3,
          "weekend_holiday": 2
        },
        "ruleset_version": "2026.1",
        "total_entries": 5
      }
    }
  }
}
