Canonical Diagrams

Visual representations of SMALL state flow and artifact relationships.


The Continuity Loop

Intent and Constraints define the boundary. Plan defines intended work. Progress records evidenced work. Handoff summarizes the current state for resume.

flowchart TD
  subgraph Human["Human-Owned"]
    Intent["intent.small.yml"]
    Constraints["constraints.small.yml"]
  end

  subgraph Agent["Agent-Owned"]
    Plan["plan.small.yml"]
    Progress["progress.small.yml"]
    Handoff["handoff.small.yml"]
  end

  Intent --> Plan
  Constraints --> Plan
  Plan --> Progress
  Progress --> Handoff
  Handoff --> Plan

The loop is closed: handoff enables any agent to resume from a known state.


Handoff-Driven Resume

A new agent starts from handoff.small.yml, not chat history. This ensures continuity without context loss.

sequenceDiagram
  participant Human
  participant Agent1 as Agent A
  participant Handoff as handoff.small.yml
  participant Agent2 as Agent B

  Human->>Agent1: Assign task
  Agent1->>Agent1: Read intent + constraints
  Agent1->>Agent1: Execute plan
  Agent1->>Handoff: Generate handoff
  Note over Handoff: Deterministic resume point

  Human->>Agent2: Resume work
  Agent2->>Handoff: Read handoff
  Agent2->>Agent2: Continue from known state
  Agent2->>Handoff: Update handoff

Artifact Ownership

SMALL defines clear ownership boundaries between human and agent artifacts.

flowchart LR
  subgraph HumanOwned["Human-Owned (Read-Only for Agents)"]
    Intent["Intent"]
    Constraints["Constraints"]
  end

  subgraph AgentOwned["Agent-Owned (Append-Only)"]
    Plan["Plan"]
    Progress["Progress"]
    Handoff["Handoff"]
  end

  Intent -->|"informs"| Plan
  Constraints -->|"bounds"| Plan
  Plan -->|"executed as"| Progress
  Progress -->|"summarized in"| Handoff

Agents may not modify intent or constraints without explicit human instruction.


Validation Flow

All SMALL artifacts are validated against schemas before acceptance.

flowchart LR
  Input["Artifact Input"]
  Schema["JSON Schema"]
  Validator["Validator"]
  Valid["Valid Artifact"]
  Invalid["Rejected + Error"]

  Input --> Validator
  Schema --> Validator
  Validator -->|"passes"| Valid
  Validator -->|"fails"| Invalid

Validation is non-optional. Invalid artifacts are rejected.


Why These Diagrams Matter

Most "agent memory" is unstructured chat history. SMALL makes execution state:

  • Inspectable - Every artifact is readable and versioned
  • Validated - Schemas enforce correct structure
  • Portable - Any agent can resume from handoff
  • Auditable - Progress is append-only evidence

For detailed primitive specifications, see Primitive Specification v1.

For the execution model diagrams, see Execution Model.