Skip to main content
Meerkat uses executable machine definitions for state that must have one semantic owner. The goal is simple: for any important lifecycle question, there should be one authoritative answer to what state exists, which transitions are legal, and what effects follow.

Canonical Machines

The canonical registry is canonical_machine_schemas() in meerkat-machine-schema/src/catalog/mod.rs.
MachineProduction ownerScope
MeerkatMachinemeerkat-runtimeSession runtime lifecycle, input admission, turn execution, tool visibility, comms drain, peer interaction.
MobMachinemeerkat-mobMob lifecycle, roster, member runtime bindings, wiring, flows, tasks, and supervisor handoffs.
AuthMachinemeerkat-runtime auth handlesPer-binding auth lease and OAuth flow lifecycle.
ApprovalLifecycleMachinemeerkat-coreApproval request and decision lifecycle and gating.
SessionDocumentMachinemeerkat-coreSession document, transcript, system-context, and pending-continuation lifecycle.
SessionTurnAdmissionMachinemeerkat-sessionPer-turn input admission and classification lifecycle.
ScheduleLifecycleMachinemeerkat-scheduleSchedule definition lifecycle, trigger state, and revision handling.
OccurrenceLifecycleMachinemeerkat-scheduleClaimed occurrence delivery and terminal outcomes.
WorkGraphLifecycleMachinemeerkat-workgraphWork item lifecycle, readiness, dependency eligibility, claim leases, terminal state, and evidence revision handling.
WorkAttentionLifecycleMachinemeerkat-workgraphGoal attention binding lifecycle, pause/resume/supersession/stop state, and binding revision handling.
MeerkatMachine and MobMachine are the two runtime kernels. Auth and scheduling are auxiliary authority machines that protect specific perimeter state. WorkGraph is an optional subsystem authority for durable agent commitments, dependency-aware claim state, and goal attention bindings.

Canonical Compositions

The canonical registry is canonical_composition_schemas() in meerkat-machine-schema/src/catalog/mod.rs.
CompositionPurpose
meerkat_mob_seamSession-runtime and mob-runtime handoffs.
auth_lease_bundleAuth authority publication into runtime credential consumers.
schedule_bundleSchedule and occurrence lifecycle coordination.
schedule_runtime_bundleOccurrence delivery into runtime sessions.
schedule_mob_bundleOccurrence delivery into mob runs.
workgraph_attention_bundleWorkGraph lifecycle and attention binding coordination.
These compositions are not marketing concepts or public APIs. They are contributor-facing guardrails for the runtime implementation.

Generated Artifacts

Generated and checked artifacts live in:
ArtifactPath
Catalog DSLmeerkat-machine-schema/src/catalog/dsl/
Generated kernelsmeerkat-machine-kernels/src/generated/
Machine specsspecs/machines/
Composition specsspecs/compositions/
Code generationmeerkat-machine-codegen/

Contribution Rules

When a change affects lifecycle, routing, admission, credential state, mob membership, or scheduling, treat it as a machine-authority change until proven otherwise. Use this checklist:
  1. Identify the semantic owner.
  2. Add or update the catalog DSL if the legal states or transitions changed.
  3. Regenerate machine artifacts.
  4. Update production bridge code to call the generated authority path.
  5. Run the machine verification gates.
Do not add a side map, status enum, or handwritten reducer that decides the same fact in parallel with a machine.

Validation

Use the Make surface:
make machine-codegen
make machine-check-drift
make machine-verify
make seam-inventory
make agent-gate and CI run the relevant gates for normal development. Use the direct targets when you are touching the catalog, generated kernels, composition routes, or runtime bridge code.

See Also