events.jsonl as newline-delimited JSON. Each event represents a phase transition in the cognitive loop.
Current event schema version: 1.3.0 (JSON schema).
Integrity contract (events.jsonl)
events.jsonl is the canonical append-only trace for an episode. Noēsis treats corruption as a hard integrity failure.
- Reads fail closed: malformed records are not skipped.
iter_events()/read_events()raiseEventLogIntegrityErrorwhen a line has invalid UTF-8, invalid JSON, or a non-object JSON value.- Appends are guarded:
write_event()validates the existing log before writing and rejects append attempts if any existing record is corrupt (including corruption in the middle of the file).
- A truncated final line.
- Invalid UTF-8 bytes in any record.
- A malformed JSON record even when later lines are valid.
Event structure
Every event follows this base structure:string
required
Unique event identifier.
string
required
Event phase. Canonical values:
start, observe, interpret, plan, direction, governance, action_candidate, act, reflect, learn, runtime, terminate, insight, memory, intuition, reason, error. Extensions may emit additional phases.string
Subtype for
phase="runtime" events (for example run.interrupt, run.checkpoint, run.resume, run.state_projection).string
Identifier of the component that emitted the event.
object
required
Phase-specific payload data.
array
Optional evidence references carried forward into the event record.
object
Timing metrics for the event.
string
ID of the event that caused this one (for lineage tracking).
Event phases
Additional phases you may see:- start: episode initialization metadata.
- intuition: advisory/intuition policy events.
- memory: reads/writes performed by the memory port.
- insight: computed insight metrics (alias of events —phase insight).
- reason: reasoning traces from the planner.
- runtime: lifecycle and projection evidence (
run.*event types). - error: fatal errors.
observe
Captures the raw task and context at episode start.string
required
The task or goal for the episode.
object
User-provided metadata tags.
string
required
ISO 8601 timestamp of observation.
object
Additional context provided with the task.
intuition
Captures advisory/intervention/veto signals before interpretation and planning.string
required
Directive kind:
hint, intervention, veto.string
Optional risk posture:
low, moderate, high, critical.array
Optional salience cues:
task_complexity, normalization_gap, policy_hint, safety_boundary.array
Optional planning hints:
conservative, verify_first, retrieve_more, narrow_scope.array
Optional tool constraints:
no_side_effects, read_only, require_double_check.string
Optional review level:
normal, elevated, strict.interpret
Summarizes signals extracted from the observed input.array
required
List of detected signals.
string
Classified intent of the task.
string
Policy that performed interpretation.
plan
Records the selected action steps and projection metadata used to rebuildstate.json.
array
required
Compatibility labels in
<kind>:<description> format. Legacy consumers may rely on this field.array
Structured plan records used for deterministic plan-state projection.
string
Planner source identifier (for example,
planner.minimal). Runtime-emitted plan events always include this.string
Optional planner rationale.
direction
Records policy directives (meta mode only).string
required
Direction schema version (
1.2.0 at time of writing).string
required
Stable directive identifier derived from content.
string
Legacy UUID retained for compatibility.
string
required
Directive status:
applied, blocked, skipped.array
Structured mutations with
key, before, after.string
required
Why the directive status was produced.
string
required
Policy that issued the directive (typically
planner.meta).string
required
Policy version for compatibility and replay diagnostics.
string
required
Policy kind:
llm, rules, hybrid.string
When present, links this directive back to the originating intuition event.
string
Optional steering carry-over:
low, moderate, high, critical.string
Optional steering carry-over:
normal, elevated, strict.array
Evidence propagated from intuition (
payload.evidence_ids mirrors this when set).governance
Records governance decisions (meta mode only).string
required
Unique governance event identifier.
string
required
Governance decision:
allow, audit, veto.string
Rule that determined the decision.
number
Confidence score for the decision (0-1).
string
required
Governance policy identifier.
object
Additional governance details.
act
Logs tool or adapter invocations. The runtime emits an action projection that is intentionally close to the persistedstate.json action record so action outcomes are reconstructible from
events.jsonl.
string
Action record identifier (for example
act-1).string
Action kind (for example
tool).string
Tool that was invoked.
string
required
Truncated input for logging.
string
required
Compatibility status field for existing consumers.
string
Canonical action status mirrored from state (
ok, error, vetoed, etc.).string
required
Action outcome value.
string
Canonical action status string from the action record (for example,
ok).string
Plan step ID associated with this action.
string
Resulting status for
payload.step_id. This field is used to project final step status from act evidence.any
Extension keys from the action record. Only
x- prefixed extension keys are emitted.outcome and result_status currently carry the same status value. outcome
is retained for compatibility with older consumers.For runtime-emitted actions,
state.json action timestamps are aligned to the
event completion time before persistence, so
state.outcomes.actions[n].timestamp == act_event.timestamp.reflect
Evaluates outcomes against expectations.boolean
required
Whether the episode succeeded.
string
required
Human-readable explanation of the outcome.
array
List of expected outcomes.
array
List of actual outcomes.
array
List of issues encountered.
object
Evaluation metrics.
learn
Captures learning signals for future episodes. The minimal validator expects the following keys; runners may add extra detail.string
required
Policy that produced the learning signal.
array
required
Reasons or evidence that drove the learning update.
array
required
List of proposed updates (may be empty).
boolean
required
Whether the proposed updates were applied.
string
required
Update scope:
session, episode, policy, global.runtime (run.*)
Runtime events share phase="runtime" and use event_type as the stable subtype.
The current lifecycle family includes run.interrupt, run.checkpoint,
run.resume, and run.state_projection.
run.state_projection is emitted whenever state is persisted so state.json
outcome/link fields have explicit event evidence.
string
required
Always
run.state_projection for projection evidence records.string
required
Mirrors
payload.outcomes.status for compatibility with existing consumers.object
required
Trace-backed projection of persisted state outcome fields:
status, summary,
and metrics.object
required
Trace-backed projection of persisted
state.json.links.- Non-terminal runs:
events,learn - Terminal runs:
events,learn,summary,manifest
string
For runtime lifecycle/projection events, points to the latest prior event in the
trace when available.
terminate
Marks the end of an episode.string
required
Final status:
completed, errored, vetoed, aborted.string
required
Episode identifier.
number
required
Total episode duration in milliseconds.
Phase order (partial)
Current phases:start, observe, interpret, plan, direction, governance, action_candidate, act, reflect, learn, runtime, terminate, insight, memory, intuition, reason, error.
- Required:
startkicks off every episode;terminatemarks completion. - Typical loop:
observe→interpret→plan→ (direction/governancein meta mode) →act→reflect→ (learnoptionally). - Optional tail:
insightandmemorymay emit afterterminatefor scoring/persistence. - Partial order: phases follow the sequence above when present, but not every phase appears in every run.
Reading events
CLI
Python
Troubleshooting: verify plan derivability
Use the runtime projector to confirmstate.json.plan is derivable from events.jsonl.
- the latest
planpayload forstep_recordsandsource actpayload entries for bothstep_idandstep_status
events.jsonl is repaired or replaced.
Next steps
State schema
State artifact reference.
Cognitive loop
Understanding the phases.

