[
  {
    "rule_no": "CR-01",
    "rule_kind": "classify",
    "path_glob": "src/api/**",
    "line_pattern": null,
    "target_class": "api",
    "check_code": "file_class"
  },
  {
    "rule_no": "CR-02",
    "rule_kind": "classify",
    "path_glob": "src/ui/**",
    "line_pattern": null,
    "target_class": "ui",
    "check_code": "file_class"
  },
  {
    "rule_no": "CR-03",
    "rule_kind": "classify",
    "path_glob": "src/batch/**",
    "line_pattern": null,
    "target_class": "batch",
    "check_code": "file_class"
  },
  {
    "rule_no": "CR-04",
    "rule_kind": "classify",
    "path_glob": "deploy/**/*.yaml",
    "line_pattern": null,
    "target_class": "config",
    "check_code": "file_class"
  },
  {
    "rule_no": "CR-05",
    "rule_kind": "classify",
    "path_glob": "tests/**",
    "line_pattern": null,
    "target_class": "test",
    "check_code": "file_class"
  },
  {
    "rule_no": "CR-06",
    "rule_kind": "pair",
    "path_glob": "tests/api/**",
    "line_pattern": null,
    "target_class": "api",
    "check_code": "test_pair"
  },
  {
    "rule_no": "CR-07",
    "rule_kind": "pair",
    "path_glob": "tests/batch/**",
    "line_pattern": null,
    "target_class": "batch",
    "check_code": "test_pair"
  },
  {
    "rule_no": "CR-08",
    "rule_kind": "pair",
    "path_glob": "tests/ui/**",
    "line_pattern": null,
    "target_class": "ui",
    "check_code": "test_pair"
  },
  {
    "rule_no": "CR-09",
    "rule_kind": "pattern",
    "path_glob": null,
    "line_pattern": "^\\+\\s*validate_[a-z_]+\\(",
    "target_class": "api",
    "check_code": "validator_call"
  },
  {
    "rule_no": "CR-10",
    "rule_kind": "pattern",
    "path_glob": null,
    "line_pattern": "^\\+\\s*if not isinstance\\(",
    "target_class": "api",
    "check_code": "validator_call"
  },
  {
    "rule_no": "CR-11",
    "rule_kind": "pattern",
    "path_glob": null,
    "line_pattern": "^\\+\\s*[a-z_]+ = [A-Za-z]+Schema\\(\\)\\.load\\(",
    "target_class": "api",
    "check_code": "validator_call"
  },
  {
    "rule_no": "CR-12",
    "rule_kind": "pattern",
    "path_glob": null,
    "line_pattern": null,
    "target_class": "batch",
    "check_code": "validator_call"
  }
]