Skip to content

Latest commit

 

History

History
213 lines (147 loc) · 13.8 KB

data_types.md

File metadata and controls

213 lines (147 loc) · 13.8 KB

Ateles — Neotoma Data Types

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.


Governance schemas

execution_policy

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

checkpoint_brief

Schema ID: b0bfcfab-1f07-4526-8fa5-d5ace343b004 · v1.0

Snapshot record of a checkpoint review: what was assessed, what was decided, by whom.


Attribution schemas

participation_record

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]

retrieval_event

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]

agent_action_observation

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]


Policy schemas

agent_policy

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.


Agent identity schemas

agent_definition

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.


Observability schemas

daemon_report

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.

harness_event

Schema ID: 689230f4-cd83-49b6-baa7-a752cf70629d · v1.0

Low-level harness lifecycle events (gate open, artifact emit, gate close).

escalation

Escalation entities are created by any daemon or agent when a condition requires operator attention. Anthus forwards all escalations to Ateles via Telegram.


Strategy hierarchy schemas

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.

business_strategy

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.

domain_strategy

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]

agent_strategy

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]

strategy_drift_signal

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.

strategy_revision_proposal

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]

strategy_evaluation_report

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]


Payment schemas

payment_profile

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.