Canonical reference for all Neotoma entity types owned or consumed by the Ateles swarm. Each entry lists the schema version, key fields, and relationships to other entity types.
Schema IDs are stable Neotoma UUIDs; use them when calling retrieve_entity_by_identifier or when registering schema-linked relationships.
Schema ID: 0e61f23f-b1bd-46a3-8824-9dde710db9e6 · v1.0
Per-plan autonomy calibration for swarm execution. Defines permission scope, quality criteria, blocking checkpoints, and fallback instructions.
| Field | Type | Required | Notes |
|---|---|---|---|
title |
string | ✓ | Human-readable label |
plan_entity_id |
string | The plan this policy governs | |
swarm_confidence |
string | ✓ | low / medium / high |
permission_scope |
array | ✓ | List of allowed action types |
quality_criteria |
array | Pass/fail acceptance criteria | |
checkpoints |
array | Blocking review gates | |
assigned_agents |
array | AAuth subs of authorised agents | |
fallback_instruction |
string | What to do on failure | |
status |
string | active / paused / retired |
Schema ID: b0bfcfab-1f07-4526-8fa5-d5ace343b004 · v1.0
Snapshot record of a checkpoint review: what was assessed, what was decided, by whom.
Schema ID: 682a3df1-1d1c-4f9d-8c95-52f1c1130b43 · v1.2.0
Gate-progression persistence. One record per (work_entity_id, gate_name) pair. Written by Anthus at dispatch; updated at satisfaction/skip.
| Field | Type | Required | Notes |
|---|---|---|---|
work_entity_id |
string | ✓ | The issue/PR entity being worked |
gate_name |
string | ✓ | Workflow gate (canonical_name anchor) |
agent |
string | ✓ | AAuth sub of the dispatched agent |
status |
string | ✓ | pending / dispatched / satisfied / skipped |
workflow_definition_id |
string | Entity ID of the active workflow_definition | |
dispatched_at |
string | ISO 8601 | |
satisfied_at |
string | ISO 8601 | |
skipped_at |
string | ISO 8601 | |
artifact_ref |
string | Entity ref of the emitted artifact | |
skip_reason |
string | Why the gate was skipped | |
aauth_token_jti |
string | JTI of the AAuth token used | |
agent_definition_ref |
string | Entity ID of the agent_definition at dispatch | |
agent_definition_observation_id |
string | Observation ID that produced the loaded snapshot | |
agent_strategy_ref |
string | Active agent_strategy entity at dispatch | |
version |
string | Schema version stamp |
canonical_name_fields: [work_entity_id, gate_name]
Schema ID: 23d7a165-bd82-4804-9f3c-4811317f2df5 · v1.0
Records every retrieve_* call made by a dispatched agent. Created automatically by mcpsrv_neotoma when ATELES_PARTICIPATION_REF is set in the environment (see ateles#23).
| Field | Type | Required | Notes |
|---|---|---|---|
agent_sub |
string | ✓ | AAuth sub of the calling agent |
tool_call_name |
string | ✓ | e.g. retrieve_entities, retrieve_entity_by_identifier |
query |
string | Free-text search query if used | |
filters |
object | Structured filters (entity_type, etc.) | |
result_entity_ids |
array | Entity IDs returned | |
result_count |
number | Count of results | |
truncated |
boolean | Whether the result was capped by limit | |
latency_ms |
number | Round-trip latency | |
participation_record_ref |
string | Links to the enclosing participation_record | |
at |
string | ISO 8601 timestamp |
canonical_name_fields: [agent_sub, tool_call_name, at]
Schema ID: dffff4f3-c8bd-4a25-9185-085e51cbaf75 · v1.0
Records a single tool call or decision emitted by an agent during a gate. Written by the harness at artifact emit.
| Field | Type | Required | Notes |
|---|---|---|---|
agent_sub |
string | ✓ | AAuth sub |
tool |
string | ✓ | Tool or action name |
pat_attribution |
string | GitHub PAT identity used | |
owner |
string | GitHub owner | |
repo |
string | GitHub repo | |
started_at |
string | ISO 8601 | |
finished_at |
string | ISO 8601 | |
success |
boolean | Whether the action succeeded | |
result_summary |
string | Short human-readable outcome | |
error |
string | Error message on failure | |
aauth_token_jti |
string | JTI of AAuth token | |
participation_record_ref |
string | Links to the enclosing participation_record | |
inputs_consulted |
array | Subset of retrieval_events the agent relied on; each item: {entity_id, schema_version, retrieved_via_event_ref} |
canonical_name_fields: [agent_sub, tool, started_at]
Schema ID: 74c79ceb-161b-49d4-b2ef-de2ef5c2168f · v1.0
Declarative policy rules scoped to an agent or domain. Used by the harness to gate tool calls and by Ateles to surface override conflicts.
| Field | Type | Required | Notes |
|---|---|---|---|
scope |
string | ✓ | global / agent / domain |
rule_kind |
string | ✓ | allow / deny / require / prefer |
description |
string | ✓ | Human-readable rule text |
agent_sub |
string | AAuth sub if agent-scoped | |
domain |
string | Domain tag (canonical_name anchor) | |
rule |
string | Machine-readable rule expression | |
effective_from |
string | ISO 8601 | |
effective_until |
string | ISO 8601 (null = indefinite) | |
supersedes |
string | Entity ID of superseded policy | |
overridable_by |
string | AAuth sub that may override | |
status |
string | provisional / active / suspended / retired |
canonical_name_fields: [domain, rule_kind, description]
Agent-local generalization, as proposals (lib/daemon_runtime/generalizer.py): when ≥ the agent's agent_strategy.drift_signal_threshold independent same-theme strategy_drift_signals accumulate, the generalizer proposes an agent_policy; it never writes one (operator ruling on ateles#1270, 2026-09-25). The proposal is a strategy_revision_proposal with target_entity_type: agent_policy, target_entity_id the agent the rule would bind, and proposed_change the canonical JSON {op: create, entity_type: agent_policy, fields: {...}} of the exact row (scope: agent, rule_kind: advisory, overridable_by: columba@ateles-swarm, operator, and a body maturation record with auto_generated: true). A contradicting signal against a live auto-generated policy produces a proposal {op: correct, entity_id, fields: {status: suspended}} in the same shape. A proposal becomes a live rule only when a different signed swarm identity approves it through a checkpoint, plus the operator's approval when the rule reaches sessions; that approval step is not built yet. The approval must check the verified signer on the stored record, not a field, and per field — and the signer is identified by its key, not by a label: every observation that set proposed_change, target_entity_type or target_entity_id must carry provenance.agent_sub equal to the proposer's swarm identity AND provenance.agent_thumbprint equal to the RFC 7638 thumbprint of the proposer's own key, at a verified-signature tier (neotoma_signed.check_observation_attribution, passed the proposer's NeotomaWriter.thumbprint), at least one of them must have set proposed_change, and otherwise the proposal is refused. agent_sub alone is not enough: the check compares the key thumbprint Neotoma records for the observation, not the agent_sub label alone; the thumbprint is what the signature actually proves, and it is the same value an agent_grant's match_thumbprint pins. Some other signed observation on the entity (a signed evidence correction, say) does not count. proposing_agent_sub is self-reported and anyone holding the bearer can write it. The approver applies only proposed_change and approves its digest; for a suspension, target_entity_id must equal proposed_change.entity_id. One open proposal per rule: a proposal's identity is its proposed change (canonical rule text, scope, target agent_sub, applies_when), never its evidence. Before opening one, the generalizer reads the open (status and operator_decision pending or unset) proposals against agent_policy; when one has the same identity, a cluster that has grown since only adds its new signals to that proposal's drift_signal_refs, leaving proposed_change untouched. With Anthus's switch shadow or on, it adds evidence only to a proposal whose defining fields pass that same per-field signer check as anthus@ateles-swarm; a same-rule proposal someone wrote with the bearer is passed over and a signed one opened beside it, and if the signer cannot be read nothing is opened that tick. If that read fails, nothing is opened that tick. Operator/Columba-authored policies are never proposed for supersession. Writes are signed as anthus@ateles-swarm when ATELES_SIGNED_WRITES_ANTHUS is shadow or on (switch-on runbook: aauth/signed_daemon_writes.md). Revert a legacy auto-policy with scripts/revert_auto_policy.py.
Schema: in Neotoma (ent_99ace4dd6673aa36ed08b1fe references key IDs) · v1.5.0
Canonical identity record for every agent in the swarm. Loaded by AgentLoader at daemon startup and by Anthus at gate dispatch.
See taxonomy.md for the full agent roster and AAuth sub assignments.
Schema ID: a9ea8131-502f-44e7-87a6-8149bab7d55c · v1.0
Structured status/error report emitted by T3 daemons. Anthus surfaces error and critical severity reports to Ateles.
Schema ID: 689230f4-cd83-49b6-baa7-a752cf70629d · v1.0
Low-level harness lifecycle events (gate open, artifact emit, gate close).
Escalation entities are created by any daemon or agent when a condition requires operator attention. Anthus forwards all escalations to Ateles via Telegram.
Four-layer DAG: business_strategy → domain_strategy → agent_strategy → agent_definition. Execution-only agents (Cicada, Vanellus, Struthio, Regulus) inherit from domain_strategy without a personal agent_strategy layer.
Schema ID: 21a8a4bb-c5ca-465e-b4ed-2e703a18a8c5 · v1.0
Root strategy entity. One per product/company. Fields: title (required), vision, north_star_metric, time_horizon, success_criteria (array), constraints (array), status, version, notes.
Schema ID: 7089442f-413d-4713-a85c-c4d38ee0893b · v1.0
Per-product-area strategy (product, eng, GTM, compliance, ops). Links to business_strategy_ref. Fields: title + domain (required), plus objective, key_results, success_criteria, assigned_agents, time_horizon, status.
canonical_name_fields: [domain, title]
Schema ID: 47f33921-8649-4e42-82d1-35cf6a20013c · v1.0
Per-strategic-agent strategy (Pavo, Waxwing, Accipiter, Ciconia, Buteo, Columba). Links to domain_strategy_ref. Fields: agent_sub + title (required), plus objective, success_criteria, evaluation_schedule, drift_signal_threshold, status.
canonical_name_fields: [agent_sub, title]
Schema: registered in Neotoma · v1.0
One emitted drift signal: an agent flagging that observed reality diverges from its encoded guidance (the optional [<agent>] strategy_drift_signal: … response line). Persisted by the generalizer (one entity per signal) so evidence accumulates across work entities and over time, then clustered by content to drive agent-local policy learning.
Fields: emitting_agent + observation + severity (required), plus work_entity_id, relates_to_assumption, proposed_revision.
Schema ID: b4577273-5775-49e6-af63-7d96e0b40168 · v1.0
Created automatically when a pattern of strategy_drift_signal lines accumulates. The generalizer opens one (operator_decision: pending) for every cluster that reaches threshold: against the agent's agent_definition for clusters outside the agent-local envelope (cross-cutting/strategy themes, a conflict with an operator-authored policy, or the per-agent cap), and against agent_policy for agent-local clusters and contradicted auto-policies (see agent_policy above, including the rule an approver must follow: check the signer on the stored record and refuse an unsigned proposal). An agent-local rule has at most one open proposal; later evidence is added to it. Fields: proposing_agent_sub + target_entity_id + proposed_at (required), plus target_entity_type, summary, drift_signal_refs, proposed_change, affects_higher_layer, operator_decision, operator_notes, status.
canonical_name_fields: [proposing_agent_sub, target_entity_id, proposed_at]
Schema ID: 94a29cad-f663-42af-8953-2ab02c1d976d · v1.0
Periodic self-evaluation by a strategic agent against its agent_strategy. Fields: agent_sub + agent_strategy_ref + evaluated_at (required), plus period_start, period_end, observations_reviewed, criteria_scores, overall_score, drift_signals_found, revision_proposals, summary, status.
canonical_name_fields: [agent_sub, agent_strategy_ref, evaluated_at]
Schema ID: 8f10fe72-2924-422c-b2ee-d537d9952576 · v1.0
Recurring payment configuration used by Monedula. Contains IBANs and transfer amounts — never commit this schema's entity data to plaintext files.