Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/bitwikiorg/continuity/llms.txt

Use this file to discover all available pages before exploring further.

BINDING.schema.json is the JSON Schema that defines the structure of a Continuity binding — a finite, machine-readable authorization for a recursive computation. A binding specifies who runs a computation, what the objective is, which tools are allowed, what resource budgets apply, and when the computation must stop. For agents that delegate work recursively — spawning child agents, subagents, or bounded subtasks — a binding is the contract that governs that delegation. This file lives at the workspace root and is an Advanced-tier feature.

Full schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Binding",
  "description": "Finite authorization for a recursive computation",
  "type": "object",
  "required": [
    "binding_id",
    "who",
    "what",
    "budget",
    "allowed_tools",
    "stop_conditions"
  ],
  "properties": {
    "binding_id": {
      "type": "string",
      "description": "Unique identifier"
    },
    "who": {
      "type": "object",
      "required": ["name", "role"],
      "properties": {
        "name": { "type": "string" },
        "role": { "type": "string" },
        "parent": { "type": "string" }
      }
    },
    "what": {
      "type": "object",
      "required": ["objective"],
      "properties": {
        "objective": { "type": "string" },
        "success_criteria": { "type": "string" }
      }
    },
    "budget": {
      "type": "object",
      "properties": {
        "max_seconds": { "type": "integer" },
        "max_tokens": { "type": "integer" },
        "max_turns": { "type": "integer" },
        "max_depth": { "type": "integer" },
        "max_disk_mb": { "type": "integer" }
      }
    },
    "allowed_tools": {
      "type": "array",
      "items": { "type": "string" }
    },
    "checkpoint": {
      "type": "object",
      "properties": {
        "type": {
          "enum": ["manual", "scripted", "evidence"]
        },
        "triggers": {
          "type": "array",
          "items": { "type": "string" }
        }
      }
    },
    "evidence": {
      "type": "object",
      "properties": {
        "required_evidence": {
          "type": "array",
          "items": { "type": "string" }
        },
        "validation_method": { "type": "string" }
      }
    },
    "stop_conditions": {
      "type": "array",
      "items": { "type": "string" }
    },
    "writeback": {
      "type": "object",
      "properties": {
        "to": { "type": "string" },
        "format": { "type": "string" }
      }
    }
  }
}

Field reference

Top-level required fields

binding_id
string
required
Unique identifier for this binding. Used to reference the binding in logs, audits, and parent-agent state files. Should be descriptive enough to identify the task at a glance.Example: "bind-auth-refactor-2026-06-27"
who
object
required
Identifies the agent running this binding — its name, operational role, and optional parent agent.
what
object
required
Defines the objective of this binding and the criteria for considering it successfully completed.
allowed_tools
string[]
required
The explicit list of tools this agent is authorized to use. Any tool not listed here is implicitly denied. This is the capability boundary of the binding.Example: ["read_file", "write_file", "run_tests", "git_commit"]
stop_conditions
string[]
required
Conditions under which the agent must halt and report back to its parent, regardless of whether the objective is complete. Used to prevent runaway computation.Example: ["budget exhausted", "test suite regression detected", "scope exceeds auth module"]
budget
object
required
Resource limits for this binding. All limits are enforced by the runtime — the agent must not exceed them regardless of whether the objective is complete.

Optional fields

checkpoint
object
Configures the approval gate that governs when the agent must pause and seek human or parent-agent confirmation.
evidence
object
Defines what artifacts or outputs must exist before the binding is considered complete. Enforces the Continuity evidence requirement: a task is complete only when a reviewable artifact exists.
writeback
object
Specifies where and in what format the agent should write its result when the binding concludes.

Example binding

A complete binding for a bounded auth-refactor subtask:
{
  "binding_id": "bind-auth-refactor-2026-06-27",
  "who": {
    "name": "BackendSubagent",
    "role": "backend coder",
    "parent": "bind-orchestrator-root"
  },
  "what": {
    "objective": "Refactor src/auth/jwt.ts to use RS256 signing instead of HS256.",
    "success_criteria": "All existing auth tests pass. No RS256-specific regressions. PR branch created."
  },
  "budget": {
    "max_seconds": 1800,
    "max_tokens": 50000,
    "max_turns": 30,
    "max_depth": 1,
    "max_disk_mb": 10
  },
  "allowed_tools": [
    "read_file",
    "write_file",
    "run_tests",
    "git_diff",
    "git_commit"
  ],
  "checkpoint": {
    "type": "evidence",
    "triggers": [
      "before modifying any file outside src/auth/",
      "before committing"
    ]
  },
  "evidence": {
    "required_evidence": [
      "passing test suite (npm test exits 0)",
      "git commit SHA recorded in writeback"
    ],
    "validation_method": "run npm test and verify zero failures"
  },
  "stop_conditions": [
    "budget exhausted",
    "test suite regression with no clear fix path",
    "scope expands outside src/auth/"
  ],
  "writeback": {
    "to": "completed/2026-06-27-auth-refactor.md",
    "format": "completed-entry"
  }
}

Binding lifecycle

A binding moves through seven phases from creation to release:
POTENTIAL → BIND → RECURSE → COMPOSE → VERIFY → PERSIST → UNBIND
PhaseWhat happens
POTENTIALCapability exists but is not yet authorized
BINDParent creates the binding; agent receives authorization
RECURSEAgent executes; may spawn child bindings (up to max_depth)
COMPOSEResults from child bindings are assembled
VERIFYEvidence is validated against evidence.required_evidence
PERSISTResults written to writeback.to
UNBINDAuthorization released; binding is closed

When to use

BINDING.schema.json is an Advanced-tier feature. Most agents do not need it. Use it when:
  • An orchestrator agent spawns child agents with bounded scopes
  • You need machine-readable enforcement of capability boundaries
  • You need a verifiable audit trail of what each subagent was authorized to do
  • You need max_depth controls to prevent unbounded recursive delegation
For single agents, CHECKPOINT.md and WARNING.md are sufficient. The binding schema is for recursive multi-agent delegation.
For the full binding lifecycle, safety inheritance rules, and runtime integration details, see Runtime Contracts.

Build docs developers (and LLMs) love