← All docs

Papyrus Lint CLI report

The JSON document emitted by PapyrusLinterCLI --json.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/idrinth/papyrus-lint/the-one/docs/papyrus-lint-report.schema.json",
  "title": "Papyrus Lint CLI report",
  "description": "The JSON document emitted by PapyrusLinterCLI --json.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "files",
    "scripts_checked",
    "files_with_diagnostics",
    "total_diagnostics",
    "files_fixed",
    "success"
  ],
  "properties": {
    "files": {
      "description": "Every resolved Papyrus script, including scripts with no diagnostics.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/fileReport"
      }
    },
    "scripts_checked": {
      "description": "The number of resolved Papyrus scripts checked by this run.",
      "type": "integer",
      "minimum": 0
    },
    "files_with_diagnostics": {
      "description": "The number of checked scripts that produced at least one diagnostic.",
      "type": "integer",
      "minimum": 0
    },
    "total_diagnostics": {
      "description": "The total number of diagnostics across all files.",
      "type": "integer",
      "minimum": 0
    },
    "files_fixed": {
      "description": "The number of scripts changed by automatic fixes, or null when the fix subcommand was not used.",
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "success": {
      "description": "Whether the lint result exits successfully under the configured failure thresholds.",
      "type": "boolean"
    }
  },
  "$defs": {
    "fileReport": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "path",
        "diagnostics"
      ],
      "properties": {
        "path": {
          "description": "The resolved script path as displayed by the CLI.",
          "type": "string",
          "minLength": 1
        },
        "diagnostics": {
          "description": "The diagnostics reported for this script, or an empty array when it is clean.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/diagnostic"
          }
        }
      }
    },
    "diagnostic": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "line",
        "column",
        "rule",
        "level",
        "message"
      ],
      "properties": {
        "line": {
          "description": "The 1-indexed source line where the diagnostic starts.",
          "type": "integer",
          "minimum": 1
        },
        "column": {
          "description": "The 1-indexed source column where the diagnostic starts.",
          "type": "integer",
          "minimum": 1
        },
        "rule": {
          "description": "The stable, hyphenated identifier of the lint rule.",
          "type": "string",
          "minLength": 1,
          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "level": {
          "description": "The diagnostic severity. Untagged external diagnostics are classified as errors.",
          "type": "string",
          "enum": [
            "error",
            "warning",
            "info"
          ]
        },
        "message": {
          "description": "The human-readable diagnostic message, including its severity prefix when classified.",
          "type": "string",
          "minLength": 1
        }
      }
    }
  }
}

View raw source on GitHub →