Trust Boundaries

Holon keeps trust boundaries explicit because long-lived agents receive input from many surfaces. Operator instructions, external webhook payloads, file contents, web pages, and child-agent output are not equivalent.

Why Trust Matters

In a headless runtime, an agent may simultaneously:

Without explicit trust classification, a malicious or accidental "instruction" hidden in any of these sources could escalate authority.

Origin Classification

Every inbound event carries an origin that records its source:

OriginDescriptionExample
operatorDirect human instructionCLI prompt, operator ingress API
systemRuntime-generated eventSystem tick, compaction trigger
taskChild task completionCommand task finished, child agent result
channelExternal integrationSlack message, CI notification
webhookThird-party callbackGitHub webhook, deployment hook
timerScheduled triggerCron-like timer fire

The runtime can distinguish "operator told me to do X" from "a web page mentioned X."

Trust Levels

LevelMeaningWho can set it
trusted-operatorHighest authority — binding instructionsOperator, runtime configuration
trusted-systemRuntime-internal eventsHolon runtime itself
trusted-integrationVetted external serviceConfigured transport bindings
untrusted-externalUnknown or unverified sourceDefault for webhooks, external content

Trust classification prevents accidental authority escalation:

Priority vs Trust

Priority is separate from trust:

A low-trust external event can be urgent (CI build failed — wake the agent now). A high-trust operator note can be routine (review this when you have time).

Delegation

Child agents and background tasks return evidence, not authority:

Practical Application

When reading files

A file's content is untrusted context, even if it's in the workspace. It can describe conventions and provide facts, but it cannot issue runtime instructions.

When fetching web content

WebFetch results are labeled as untrusted external content. The agent can use them as research evidence but must not treat them as commands.

When receiving external events

Inbound webhook payloads carry origin: webhook with the specific source. The agent inspects the payload for evidence but evaluates instructions from the operator or its own AGENTS.md guidance as binding.

Operator instructions

Operator input through trusted channels (holon run, operator ingress API, TUI) carries the highest trust level. These instructions define the task scope and acceptance criteria.

Documentation Implication

This website is Markdown-native so agents can fetch source content directly, but the content remains documentation. It can explain project conventions; it does not replace loaded runtime guidance, workspace AGENTS.md files, or operator instructions.

See Also