prompt-atoms-composition-v1

draft 1.0.0 json-schema
idschema-atoms/json-schema/prompt-atoms-composition-v1
created2026-05-26

prompt-atoms-composition-v1.json json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://prompt-atoms.com/schemas/composition-v1.json",
  "title": "prompt-atoms v1 composition",
  "description": "A prompt composition assembling persona + constraints + format + tool-use + refusal patterns + output schema into a complete system message.",
  "type": "object",
  "required": ["schema", "type", "id", "version", "name", "references"],
  "additionalProperties": false,
  "properties": {
    "schema": {
      "type": "string",
      "const": "https://prompt-atoms.com/schemas/composition-v1.json"
    },
    "type": { "type": "string", "const": "prompt" },
    "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
    },
    "vendors": {
      "type": "array",
      "items": { "type": "string", "enum": ["claude", "gpt", "llama", "gemini", "mistral", "any"] },
      "uniqueItems": true
    },
    "references": {
      "type": "object",
      "required": ["persona"],
      "additionalProperties": false,
      "properties": {
        "persona":            { "$ref": "#/$defs/ref" },
        "constraints":        { "type": "array", "items": { "$ref": "#/$defs/ref" }, "uniqueItems": true },
        "format_instruction": { "$ref": "#/$defs/ref" },
        "tool_use_template":  { "$ref": "#/$defs/ref" },
        "refusal_patterns":   { "type": "array", "items": { "$ref": "#/$defs/ref" }, "uniqueItems": true },
        "output_schema":      { "$ref": "#/$defs/ref" }
      }
    }
  },
  "$defs": {
    "ref": {
      "type": "object",
      "required": ["ref", "version"],
      "additionalProperties": false,
      "properties": {
        "ref": {
          "type": "string",
          "pattern": "^prompt-atoms://atoms/[a-z-]+/[a-z0-9-]+$"
        },
        "version": {
          "type": "string",
          "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[A-Za-z0-9.-]+)?$"
        }
      }
    }
  }
}

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

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

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