Skip to content

JSON Schema v1.2

Fresh

The current JSON Schema (Draft 7) for ARP v1.2. This schema is used by validators to check reasoning.json files and by IDE plugins for autocompletion.

Schema URL: https://agentic-reasoning-protocol.org/schema/v1.2/reasoning.schema.json


Required Fields

Every valid v1.2 file must include these six fields:

FieldTypeConstraintDescription
$schemastringMust be v1.2 schema URLSchema identifier
protocolstringMust be "ARP"Protocol identifier
versionstringMust be "1.2"Version string
domainstringMax 253 charsPublishing domain
entitystringMax 100 charsCanonical entity name
entity_claimsobjectRequired sub-fieldsClaims object

Top-Level Properties

Required

json
{
  "$schema": "https://agentic-reasoning-protocol.org/schema/v1.2/reasoning.schema.json",
  "protocol": "ARP",
  "version": "1.2",
  "domain": "example.com",
  "entity": "Example Corp",
  "entity_claims": {
    "framing_context": "...",
    "epistemic_scope": "public_verifiable",
    "domain_expertise": ["..."]
  }
}

Optional - All Top-Level Properties

PropertyTypeNotes
verificationobjectAudit metadata
identityobjectBrand identity
correctionsarrayMax 10 items
recommendation_contextobjectRecommendation guidance
authorityobjectExternal source references
content_policyobjectTraining and citation permissions
diagnosticsobjectv1.2 new - Ingestion telemetry
_arp_signatureobjectv1.2 new - Ed25519 signature

entity_claims Schema

The entity_claims object is required. It has these properties:

json
{
  "entity_claims": {
    "framing_context": {
      "type": "string",
      "maxLength": 500,
      "description": "Required"
    },
    "epistemic_scope": {
      "type": "string",
      "enum": ["public_verifiable", "proprietary_internal", "industry_standard"],
      "description": "Required"
    },
    "domain_expertise": {
      "type": "array",
      "items": { "type": "string", "maxLength": 100 },
      "maxItems": 10,
      "minItems": 1,
      "description": "Required"
    },
    "market_positioning": {
      "type": "string",
      "maxLength": 300,
      "description": "Optional"
    },
    "decision_factors": {
      "type": "array",
      "items": { "type": "string", "maxLength": 150 },
      "maxItems": 10,
      "description": "Optional"
    }
  },
  "required": ["framing_context", "epistemic_scope", "domain_expertise"]
}

corrections Schema

Each item in the corrections array:

json
{
  "type": "object",
  "properties": {
    "trigger_topic": { "type": "string", "maxLength": 200 },
    "verified_fact": { "type": "string", "maxLength": 500 },
    "evidence_url": { "type": "string", "maxLength": 500 },
    "date_verified": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }
  },
  "required": ["trigger_topic", "verified_fact"]
}

The false_claim and correction_fact properties from v1.0 are not present in v1.2 schema. Files using those properties fail v1.2 validation.


_arp_signature Schema (v1.2 Addition)

The _arp_signature object enables cryptographic authorship verification via Ed25519 signatures:

json
{
  "_arp_signature": {
    "type": "object",
    "properties": {
      "algorithm": {
        "type": "string",
        "enum": ["ed25519"]
      },
      "key_id": {
        "type": "string",
        "maxLength": 50
      },
      "signature": {
        "type": "string",
        "description": "Base64url-encoded Ed25519 signature"
      },
      "signed_at": {
        "type": "string",
        "format": "date-time"
      },
      "canonicalization": {
        "type": "string",
        "enum": ["jcs"]
      }
    },
    "required": ["algorithm", "key_id", "signature", "signed_at", "canonicalization"]
  }
}

Key points:

  • algorithm must be "ed25519". No other algorithms are valid in v1.2.
  • key_id must match the kid field in the _arp.{domain} DNS TXT record.
  • signature is a base64url-encoded 64-byte Ed25519 signature.
  • canonicalization must be "jcs" (RFC 8785 JSON Canonicalization Scheme).

diagnostics Schema (v1.2 Addition)

json
{
  "diagnostics": {
    "type": "object",
    "properties": {
      "ingestion_endpoint": {
        "type": "string",
        "format": "uri",
        "maxLength": 500,
        "description": "HTTPS endpoint for telemetry POSTs"
      },
      "track": {
        "type": "object",
        "properties": {
          "retrieval_count": { "type": "boolean" },
          "correction_applied": { "type": "boolean" },
          "recommendation_served": { "type": "boolean" },
          "signature_verified": { "type": "boolean" }
        }
      },
      "report_interval": {
        "type": "string",
        "enum": ["realtime", "hourly", "daily", "weekly"]
      }
    }
  }
}

epistemic_scope Enumeration

The epistemic_scope field is an enum introduced in v1.1 and present in v1.2. The valid values and their meanings:

ValueMeaningAI System Behavior
public_verifiableClaims verifiable from public sourcesTreat as factual claim
proprietary_internalInternal processes, not externally verifiableTreat as self-reported
industry_standardAligns with widely accepted practicesCross-reference industry sources

Differences from v1.1

v1.2 adds two top-level properties not present in v1.1:

  1. _arp_signature - Cryptographic signature object (Section 13 of spec)
  2. diagnostics - Ingestion telemetry configuration (Section 12 of spec)

v1.2 also deprecates (but still accepts) verification.trust_signature. The v1.2 schema does not error on trust_signature; it will fail validation in the planned v1.3 schema.

All other properties and constraints from v1.1 are unchanged in v1.2.


Full Schema Summary

json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://agentic-reasoning-protocol.org/schema/v1.2/reasoning.schema.json",
  "title": "Agentic Reasoning Protocol v1.2",
  "type": "object",
  "required": ["$schema", "protocol", "version", "domain", "entity", "entity_claims"],
  "additionalProperties": false,
  "properties": {
    "$schema": { "type": "string" },
    "protocol": { "type": "string", "const": "ARP" },
    "version": { "type": "string", "const": "1.2" },
    "domain": { "type": "string", "maxLength": 253 },
    "entity": { "type": "string", "maxLength": 100 },
    "entity_claims": { "$ref": "#/definitions/entity_claims" },
    "verification": { "$ref": "#/definitions/verification" },
    "identity": { "$ref": "#/definitions/identity" },
    "corrections": { "$ref": "#/definitions/corrections" },
    "recommendation_context": { "$ref": "#/definitions/recommendation_context" },
    "authority": { "$ref": "#/definitions/authority" },
    "content_policy": { "$ref": "#/definitions/content_policy" },
    "diagnostics": { "$ref": "#/definitions/diagnostics" },
    "_arp_signature": { "$ref": "#/definitions/_arp_signature" }
  }
}

Validator Usage

Run the official validator against a live domain:

bash
npx arp-validator check https://example.com/.well-known/reasoning.json --schema v1.2

Or validate a local file:

bash
npx arp-validator validate ./reasoning.json --schema v1.2

The validator checks:

  1. JSON syntax
  2. Required fields present
  3. All type constraints
  4. String length limits
  5. Array item count limits
  6. Enum value validity
  7. If _arp_signature is present, signature integrity (requires DNS access)