agent-rule-v1

draft 1.0.0 json-schema
idschema-atoms/json-schema/agent-rule-v1
created2026-05-24

agent-rule-v1.json json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://agent-atoms.com/schemas/rule-v1.json",
  "title": "agent-atoms v1 rule",
  "description": "A rule constrains how atoms and compositions can be combined. Examples: capability-grant, isolation-rule, communication-pattern, supervision-hierarchy.",
  "type": "object",
  "required": ["schema", "type", "id", "version", "name", "predicate", "effect"],
  "additionalProperties": false,
  "properties": {
    "schema": { "type": "string", "const": "https://agent-atoms.com/schemas/rule-v1.json" },
    "type": {
      "type": "string",
      "enum": ["capability-grant", "isolation-rule", "communication-pattern", "supervision-hierarchy"]
    },
    "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$" },
    "version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[A-Za-z0-9.-]+)?$" },
    "name": { "type": "string", "minLength": 1, "maxLength": 80 },
    "description": { "type": "string", "maxLength": 500 },
    "tags": { "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 40 }, "uniqueItems": true },
    "predicate": {
      "type": "object",
      "required": ["subject_ref", "condition", "value"],
      "additionalProperties": false,
      "properties": {
        "subject_ref": { "type": "string", "pattern": "^agent-atoms://(atoms|agents|rules)/[a-z-]+(?:/[a-z0-9-]+)?$" },
        "condition": { "type": "string", "enum": ["eq", "neq", "in", "not_in", "gte", "lte", "matches"] },
        "value": {}
      }
    },
    "effect": { "type": "string", "enum": ["require", "forbid", "warn"] },
    "rationale": { "type": "string", "maxLength": 500 }
  }
}

atom.toml
id          = "schema-atoms/json-schema/agent-rule-v1"
version     = "1.0.0"
content_hash = ""
lifecycle   = "draft"
created_at  = "2026-05-24T00:00:00Z"

[spec]
class          = "json-schema"
schema_version = "2020-12"
root_schema_id = "https://agent-atoms.com/schemas/rule-v1.json"
asset          = "agent-rule-v1.json"

[protocol]
provenance = "https://github.com/convergent-systems-co/agent-atoms/blob/main/schemas/rule-v1.json — agent-atoms v1"
license    = "Apache-2.0"