{
  "$id": "https://crow.sg/research/llm-wallet-guard-study/artifact-manifest.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Machine-readable JSON Schema for the generated public artifact manifest.",
  "properties": {
    "artifacts": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "bytes": {
            "minimum": 0,
            "type": "integer"
          },
          "contentType": {
            "enum": [
              "application/json",
              "application/pdf",
              "application/schema+json",
              "application/x-bibtex",
              "application/x-tex",
              "image/png",
              "image/svg+xml",
              "text/csv",
              "text/html",
              "text/markdown"
            ],
            "type": "string"
          },
          "description": {
            "minLength": 1,
            "type": "string"
          },
          "filename": {
            "enum": [
              "artifact-manifest.schema.json",
              "attacker-rankings.csv",
              "data-readme.md",
              "guardian-rankings.csv",
              "llm-wallet-guard-study-print.html",
              "llm-wallet-guard-study.bib",
              "llm-wallet-guard-study.pdf",
              "llm-wallet-guard-study.tex",
              "outcome-map.png",
              "outcome-map.svg",
              "pairwise-matrix.csv",
              "pairwise-results.csv",
              "retry-results.csv",
              "study-summary.json",
              "study-summary.schema.json"
            ],
            "type": "string"
          },
          "name": {
            "enum": [
              "Artifact manifest schema",
              "Attacker effectiveness ranking CSV",
              "BibTeX citation",
              "Data README",
              "Guardian resilience ranking CSV",
              "LaTeX source",
              "Ordered pair matrix CSV",
              "Outcome map PNG",
              "Outcome map SVG",
              "Paper PDF",
              "Printable HTML paper",
              "Public summary JSON",
              "Retry envelope CSV",
              "Sanitized first-pass trial CSV",
              "Summary JSON schema"
            ],
            "type": "string"
          },
          "path": {
            "enum": [
              "/research/llm-wallet-guard-study/artifact-manifest.schema.json",
              "/research/llm-wallet-guard-study/attacker-rankings.csv",
              "/research/llm-wallet-guard-study/data-readme.md",
              "/research/llm-wallet-guard-study/guardian-rankings.csv",
              "/research/llm-wallet-guard-study/llm-wallet-guard-study-print.html",
              "/research/llm-wallet-guard-study/llm-wallet-guard-study.bib",
              "/research/llm-wallet-guard-study/llm-wallet-guard-study.pdf",
              "/research/llm-wallet-guard-study/llm-wallet-guard-study.tex",
              "/research/llm-wallet-guard-study/outcome-map.png",
              "/research/llm-wallet-guard-study/outcome-map.svg",
              "/research/llm-wallet-guard-study/pairwise-matrix.csv",
              "/research/llm-wallet-guard-study/pairwise-results.csv",
              "/research/llm-wallet-guard-study/retry-results.csv",
              "/research/llm-wallet-guard-study/study-summary.json",
              "/research/llm-wallet-guard-study/study-summary.schema.json"
            ],
            "type": "string"
          },
          "sha256": {
            "pattern": "^[0-9a-f]{64}$",
            "type": "string"
          },
          "url": {
            "enum": [
              "https://crow.sg/research/llm-wallet-guard-study/artifact-manifest.schema.json",
              "https://crow.sg/research/llm-wallet-guard-study/attacker-rankings.csv",
              "https://crow.sg/research/llm-wallet-guard-study/data-readme.md",
              "https://crow.sg/research/llm-wallet-guard-study/guardian-rankings.csv",
              "https://crow.sg/research/llm-wallet-guard-study/llm-wallet-guard-study-print.html",
              "https://crow.sg/research/llm-wallet-guard-study/llm-wallet-guard-study.bib",
              "https://crow.sg/research/llm-wallet-guard-study/llm-wallet-guard-study.pdf",
              "https://crow.sg/research/llm-wallet-guard-study/llm-wallet-guard-study.tex",
              "https://crow.sg/research/llm-wallet-guard-study/outcome-map.png",
              "https://crow.sg/research/llm-wallet-guard-study/outcome-map.svg",
              "https://crow.sg/research/llm-wallet-guard-study/pairwise-matrix.csv",
              "https://crow.sg/research/llm-wallet-guard-study/pairwise-results.csv",
              "https://crow.sg/research/llm-wallet-guard-study/retry-results.csv",
              "https://crow.sg/research/llm-wallet-guard-study/study-summary.json",
              "https://crow.sg/research/llm-wallet-guard-study/study-summary.schema.json"
            ],
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "bytes",
          "contentType",
          "description",
          "filename",
          "name",
          "path",
          "sha256",
          "url"
        ],
        "type": "object"
      },
      "maxItems": 15,
      "minItems": 15,
      "type": "array",
      "uniqueItems": true
    },
    "notes": {
      "items": {
        "minLength": 1,
        "type": "string"
      },
      "minItems": 1,
      "type": "array"
    },
    "schemaVersion": {
      "enum": [
        1
      ],
      "type": "integer"
    },
    "study": {
      "additionalProperties": false,
      "properties": {
        "articleDate": {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        "attemptsUpdatedAt": {
          "minLength": 1,
          "type": "string"
        },
        "author": {
          "minLength": 1,
          "type": "string"
        },
        "slug": {
          "enum": [
            "llm-wallet-guard-study"
          ],
          "type": "string"
        },
        "sourceDatabase": {
          "minLength": 1,
          "type": "string"
        },
        "sourceUpdatedAt": {
          "minLength": 1,
          "type": "string"
        },
        "title": {
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "articleDate",
        "attemptsUpdatedAt",
        "author",
        "slug",
        "sourceDatabase",
        "sourceUpdatedAt",
        "title"
      ],
      "type": "object"
    },
    "summaryJson": {
      "additionalProperties": false,
      "properties": {
        "dataDictionary": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "description": {
                "minLength": 1,
                "type": "string"
              },
              "fieldNames": {
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "type": "array"
              },
              "fields": {
                "minimum": 0,
                "type": "integer"
              },
              "key": {
                "enum": [
                  "attackerModels",
                  "attackerProviderSummary",
                  "attemptDistributions",
                  "caveats",
                  "compromiseSubtypeCounts",
                  "errorTaxonomy",
                  "familySummary",
                  "guardianModels",
                  "guardianProviderSummary",
                  "insights",
                  "mainOutcomeCounts",
                  "mainStatusCounts",
                  "pairMatrix",
                  "policySummary",
                  "retryAwareOutcomeCounts",
                  "retryAwareStatusCounts",
                  "retryOutcomeCounts",
                  "retryResults",
                  "retryStatusCounts",
                  "selfPlayResults",
                  "study"
                ],
                "type": "string"
              },
              "records": {
                "minimum": 0,
                "type": "integer"
              },
              "type": {
                "enum": [
                  "array",
                  "object"
                ],
                "type": "string"
              }
            },
            "required": [
              "description",
              "key",
              "type"
            ],
            "type": "object"
          },
          "maxItems": 21,
          "minItems": 21,
          "type": "array"
        },
        "metricDefinitions": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "description": {
                "minLength": 1,
                "type": "string"
              },
              "name": {
                "enum": [
                  "compromiseRate",
                  "errorRate",
                  "mainAttemptsCompleted",
                  "meanAttemptsToCompromise",
                  "medianAttemptsToCompromise",
                  "policyBlockRate",
                  "resilienceRate",
                  "retryAttemptsCompleted",
                  "retryAwareCompromiseRate",
                  "retryAwareResilienceRate",
                  "retryResolvedRate",
                  "transferAttemptRate",
                  "unsafeIntentRate"
                ],
                "type": "string"
              }
            },
            "required": [
              "description",
              "name"
            ],
            "type": "object"
          },
          "maxItems": 13,
          "minItems": 13,
          "type": "array"
        },
        "path": {
          "enum": [
            "/research/llm-wallet-guard-study/study-summary.json"
          ],
          "type": "string"
        },
        "recordCounts": {
          "additionalProperties": {
            "minimum": 0,
            "type": "integer"
          },
          "propertyNames": {
            "enum": [
              "attackerModels",
              "attackerProviderSummary",
              "attemptDistributions",
              "caveats",
              "compromiseSubtypeCounts",
              "errorTaxonomy",
              "familySummary",
              "guardianModels",
              "guardianProviderSummary",
              "mainOutcomeCounts",
              "mainStatusCounts",
              "pairMatrix",
              "retryAwareOutcomeCounts",
              "retryAwareStatusCounts",
              "retryOutcomeCounts",
              "retryResults",
              "retryStatusCounts",
              "selfPlayResults"
            ]
          },
          "type": "object"
        },
        "schemaPath": {
          "enum": [
            "/research/llm-wallet-guard-study/study-summary.schema.json"
          ],
          "type": "string"
        },
        "schemaUrl": {
          "enum": [
            "https://crow.sg/research/llm-wallet-guard-study/study-summary.schema.json"
          ],
          "format": "uri",
          "type": "string"
        },
        "url": {
          "enum": [
            "https://crow.sg/research/llm-wallet-guard-study/study-summary.json"
          ],
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "dataDictionary",
        "metricDefinitions",
        "path",
        "recordCounts",
        "schemaPath",
        "schemaUrl",
        "url"
      ],
      "type": "object"
    }
  },
  "required": [
    "artifacts",
    "notes",
    "schemaVersion",
    "study",
    "summaryJson"
  ],
  "title": "When LLMs Guard a Wallet artifact manifest schema",
  "type": "object"
}
