# Spectre public API — 0.3.0

This file is the normative public API manifest for Spectre `0.3.0`. It retains
the recoverable `0.1.6` conversational surface and adds the vNext operational
surface. Compatibility guarantees apply only to the modules and callables
listed below. Any module, function, macro, or callback not listed here is an
implementation detail even when it is exported or visible in generated docs.

Default arguments are expanded into every callable arity. For the listed
modules, documented types, opaque types, and documented struct fields are also
public. Modules with no callable row expose only their documented module,
type, and struct contract.

`test/public_api_manifest_test.exs` parses this manifest and verifies every
listed module, function, macro, and callback against the compiled BEAM surface;
it also requires this version header to match both `Spectre.version/0` and the
Mix project version.

## Manifest

- `Mix.Tasks.Spectre.Classifier.Dataset`
- `Mix.Tasks.Spectre.Classifier.DownloadModel`
- `Mix.Tasks.Spectre.Classifier.Train`
- `Mix.Tasks.Spectre.Eval`
- `Spectre`
  - functions: `activate/2`, `activate/3`, `activation/1`, `admit_event/2`, `admit_event/3`, `admitted_events/1`, `admitted_events/2`, `after_action/4`, `after_action/5`, `ask/2`, `ask/3`, `authorize_delivery/4`, `authorize_delivery/5`, `cancel/2`, `checkpoint/1`, `checkpoint_status/1`, `definition_lifecycle/1`, `definition_lifecycle/2`, `delivery_receipts/1`, `delivery_receipts/2`, `dismiss/2`, `drain_definition/1`, `drain_definition/2`, `drain_definition/3`, `ensure_instance/3`, `ensure_instance/4`, `execute/2`, `execute/3`, `flush_checkpoint/1`, `flush_checkpoint/2`, `instance/3`, `instance/4`, `lookup_instance/2`, `lookup_instance/3`, `loop/2`, `loop/3`, `loops/1`, `loops/2`, `operation_events/1`, `operation_events/2`, `pause_loop/2`, `pause_loop/3`, `put_delivery_consent/2`, `put_delivery_consent/3`, `quarantined_events/1`, `quarantined_events/2`, `reconcile_checkpoint/1`, `reconcile_checkpoint/2`, `record_delivery/4`, `record_delivery/5`, `register_vigil/3`, `register_vigil/4`, `renew_loop/3`, `renew_loop/4`, `reset/1`, `reset/2`, `resolve_loop/1`, `resolve_loop/2`, `resolve_loop/3`, `resolve_policy/3`, `resolve_policy/4`, `resume/3`, `resume/4`, `resume_loop/2`, `resume_loop/3`, `revoke_definition/1`, `revoke_definition/2`, `revoke_definition/3`, `revoke_delivery_consent/2`, `revoke_delivery_consent/3`, `start_controller/3`, `start_controller/4`, `start_execution/2`, `start_execution/3`, `start_work/3`, `start_work/4`, `state/1`, `skill_state/2`, `skill_state/3`, `skill_state_branches/2`, `skill_state_branches/3`, `stop_loop/2`, `stop_loop/3`, `stop_loop/4`, `subscribe_operation_events/1`, `subscribe_operation_events/2`, `summon/1`, `summon/3`, `transition_definition_lifecycle/4`, `transition_definition_lifecycle/5`, `transition_skill_state_retention/4`, `transition_skill_state_retention/5`, `trigger_loop/3`, `trigger_loop/4`, `turn/2`, `turn/3`, `unsubscribe_operation_events/1`, `update_and_resume_loop/3`, `update_and_resume_loop/4`, `update_loop/3`, `update_loop/4`, `update_skill_state/3`, `update_skill_state/4`, `version/0`
  - functions: `rollback/2`, `rollback/3`
- `Spectre.Action`
  - functions: `from_effect/1`, `matches_ref?/2`, `new/1`, `ref/1`, `split_ref/1`, `to_effect_attrs/1`, `valid_ref?/1`
- `Spectre.Action.Planner`
  - callbacks: `clean_reply/3`, `plan/3`, `plan_response/3`
- `Spectre.Action.Provider`
  - functions: `actions/1`, `actions/2`, `execute/3`
  - callbacks: `actions/1`, `execute/3`, `schema_hash/2`
- `Spectre.Action.Provider.Local`
- `Spectre.Action.Provider.Mount`
- `Spectre.Action.Spec`
  - functions: `hash/3`, `new/1`, `planner_visible?/1`
- `Spectre.ActionConfig`
  - functions: `actions/1`, `planner/1`, `planner_opts/2`, `provider/2`, `providers/1`
- `Spectre.ActionDispatcher`
  - functions: `dispatch/2`, `dispatch/3`
- `Spectre.ActionExecutor`
  - functions: `execute_pending/2`, `execute_pending/3`
- `Spectre.ActionHooks`
  - functions: `run/4`, `run/5`
- `Spectre.ActionPlanner`
  - functions: `clean_reply/1`, `clean_reply/2`, `plan/1`, `plan/2`, `plan_response/1`, `plan_response/2`
- `Spectre.ActionProtection`
  - functions: `protected_by/2`, `protected_by/3`
- `Spectre.Agent`
  - macros: `__using__/1`, `act/1`, `act/2`, `action/1`, `action/2`, `action_planner/1`, `action_planner/2`, `action_provider/2`, `action_provider/3`, `actions/1`, `actions/2`, `actions/3`, `after_action/2`, `arbitrator/1`, `arbitrator/2`, `ask/1`, `ask/2`, `before_action/2`, `call_operation/1`, `call_operation/2`, `checkpoint_store/1`, `checkpoint_store/2`, `classifier/1`, `classifier/2`, `embedding/1`, `embedding/2`, `fail/1`, `fail/2`, `flow/2`, `flow/3`, `history/1`, `history/2`, `idle/1`, `inject/1`, `inject/2`, `input_pipeline/1`, `interrupt/2`, `interrupt/3`, `journal/1`, `journal/2`, `memory/1`, `model/1`, `model/2`, `operation/2`, `operation/3`, `policy/2`, `protect/1`, `protect/2`, `reason/1`, `reason/2`, `reply/1`, `reply/2`, `requires_action/1`, `requires_action/2`, `requires_operation/1`, `requires_operation/2`, `requires_tool/1`, `requires_tool/2`, `route_operation_events/0`, `route_operation_events/1`, `router/1`, `run/1`, `run/2`, `shutdown/1`, `skill/1`, `skill/2`, `state/1`, `turn_handler/1`, `turn_handler/2`, `turn_handlers/1`, `work/1`, `work/2`
- `Spectre.AgentRef`
  - functions: `from_data/1`, `from_id/1`, `from_id/2`, `key/1`, `legacy_key/1`, `new/1`, `new/2`, `schema_version/0`, `to_data/1`
- `Spectre.Awaitable`
  - functions: `accept/2`, `cancel/1`, `expire/1`, `increment/1`, `open_policy/2`, `open_policy/3`, `reject/2`
- `Spectre.Authority.Envelope`
  - functions: `allows?/3`, `compose/2`, `compose!/2`, `digest/1`, `empty/0`, `from_data/1`, `new/1`, `new!/1`, `schema_version/0`, `to_data/1`
- `Spectre.Canonical.Value`
  - functions: `decode/1`, `decode/2`, `digest/1`, `digest/2`, `digest!/1`, `digest!/2`, `digest_algorithm/0`, `encode/1`, `encode/2`, `encode!/1`, `encode!/2`, `validate/1`, `validate/2`, `version/0`
- `Spectre.Classifier`
  - functions: `child_spec/1`, `classify/1`, `classify/2`, `classify_once/2`, `start_link/0`, `start_link/1`
- `Spectre.Classifier.Embedding`
  - callbacks: `download/2`, `embed/2`, `load/2`
- `Spectre.Classifier.Embeddings.ExFastembed`
- `Spectre.Classifier.Encoder`
  - functions: `default_model/0`, `download/0`, `download/1`, `download/2`, `embed/1`, `embed/2`, `load/0`, `load/1`, `load/2`
- `Spectre.Classifier.Math`
  - functions: `centroid/1`, `cosine/2`, `normalize/1`, `raw_cosine_score/1`
- `Spectre.Classifier.Trainer`
  - functions: `train/2`, `train/3`
- `Spectre.Context`
  - functions: `halt/1`, `lifecycle_run_id/1`, `put_error/2`, `put_trace/2`
- `Spectre.Definition`
  - functions: `after_actions/1`, `canonical/1`, `canonical/2`, `canonical!/1`, `canonical!/2`, `fetch/1`, `fetch!/1`, `for_scope/2`, `for_scope!/2`, `injections/2`, `manifest/1`, `manifest/2`, `manifest!/1`, `manifest!/2`, `mount/2`, `new/1`, `policy/2`, `policy_name/1`, `policy_ref/2`, `policy_scope/1`, `prompt_root/2`, `protections/1`, `rules/1`
- `Spectre.Definition.Canonical`
  - functions: `canonicalization_version/0`, `contract_version/0`, `decode/1`, `digest/1`, `encode/1`, `encode!/1`, `fetch_component/2`, `from_data/1`, `lower/1`, `lower/2`, `lower!/1`, `lower!/2`, `new/1`, `new!/1`, `ref/1`, `to_data/1`
- `Spectre.Definition.Candidate`
  - functions: `decode/1`, `digest/1`, `encode/1`, `from_data/1`, `from_resolution/1`, `from_resolution/2`, `new/1`, `new!/1`, `ref/1`, `schema_version/0`, `to_data/1`
- `Spectre.Definition.Candidate.Ref`
  - functions: `new/1`, `parse/1`, `to_string/1`, `valid?/1`, `verify/2`
- `Spectre.Definition.Component`
  - functions: `from_data/1`, `new/1`, `new!/1`, `to_data/1`
- `Spectre.Definition.ContractRegistry`
  - functions: `default/0`, `fetch/2`, `new/1`, `new!/1`, `register/2`, `snapshot/2`, `validate/2`, `verify_snapshot/3`
- `Spectre.Definition.Manifest`
  - functions: `contract_version/0`, `decode/1`, `digest/1`, `encode/1`, `encode!/1`, `from_data/1`, `new/1`, `new/3`, `new/4`, `new!/3`, `new!/4`, `schema_version/0`, `to_data/1`, `verify/2`, `verify/3`
- `Spectre.Definition.Ref`
  - functions: `new/1`, `parse/1`, `parse/2`, `to_string/1`, `valid?/1`, `verify/2`
- `Spectre.Definition.Resolver`
  - functions: `bootstrap_candidate/2`, `bootstrap_candidate/3`, `resolve/2`, `resolve/3`, `resolve!/2`, `resolve!/3`, `resolve_candidate_for_activation/2`, `resolve_candidate_for_activation/3`, `resolve_for_activation/2`, `resolve_for_activation/3`
- `Spectre.Definition.Store`
  - functions: `artifact_schema_version/0`, `candidate_artifact_schema_version/0`, `durability/1`, `fetch/2`, `fetch/3`, `fetch_candidate/2`, `fetch_candidate/3`, `identity/1`, `normalize/1`, `publish/3`, `publish/4`, `publish_candidate/2`, `publish_candidate/3`, `receipt_schema_version/0`, `validate_durability_pair/2`
  - functions: `fetch_gate_receipt/2`, `fetch_gate_receipt/3`, `gate_receipt_artifact_schema_version/0`, `publish_gate_receipt/2`, `publish_gate_receipt/3`
  - callbacks: `durability/1`, `get/2`, `identity/1`, `put/3`
- `Spectre.Definition.Store.Conformance`
  - functions: `read_after_restart/3`, `read_after_restart/4`, `run/3`, `run/4`
- `Spectre.Definition.Store.Memory`
  - functions: `count/1`, `start_link/0`, `start_link/1`
- `Spectre.Definition.Validator`
  - functions: `validate!/1`
- `Spectre.Effect`
  - functions: `al/1`, `approve/1`, `bind_run/2`, `cancel/1`, `cancel/2`, `complete/2`, `effect_key/1`, `executable?/1`, `fail/2`, `hooks/1`, `idempotency_key/1`, `outcome/1`, `owner/1`, `planned_by/1`, `restore/1`, `schema_hash/1`, `scope/1`, `selected_tool/1`, `source/1`, `stage/1`, `stage_action/3`, `terminal?/1`, `via/1`, `waiting_policy/2`
- `Spectre.Effect.Executor`
  - functions: `dispatch/2`, `dispatch/3`
  - callbacks: `execute/3`
- `Spectre.Effect.Executor.Mount`
- `Spectre.EffectConfig`
  - functions: `executor/2`, `executors/1`
- `Spectre.Eval`
  - functions: `load/1`, `run/2`, `run/3`
- `Spectre.Eval.Case`
  - functions: `expected_routes/1`, `new/1`, `to_data/1`
- `Spectre.Eval.Report`
  - functions: `acceptable?/1`, `acceptable?/2`, `format/1`, `new/1`, `to_map/1`
- `Spectre.Eval.Result`
  - functions: `new/2`, `to_map/1`
- `Spectre.Experience`
  - functions: `fetch/2`, `list/2`, `list/3`, `purge_expired/2`, `purge_expired/3`, `record/2`, `record/3`, `snapshot/2`, `snapshot/3`
- `Spectre.Experience.Evidence`
  - functions: `decode/1`, `digest/1`, `encode/1`, `expired?/2`, `from_data/1`, `new/1`, `new!/1`, `ref/1`, `schema_version/0`, `to_data/1`, `verify/1`
- `Spectre.Experience.Evidence.Ref`
  - functions: `new/1`, `parse/1`, `to_string/1`, `valid?/1`, `verify/2`
- `Spectre.Experience.Redactor`
  - functions: `redact/1`, `redact/2`
- `Spectre.Experience.Store`
  - functions: `artifact_schema_version/0`, `decode_snapshot/1`, `durability/1`, `empty_snapshot/2`, `encode_snapshot/1`, `fetch/2`, `identity/1`, `list_evidence/2`, `list_evidence/3`, `normalize/1`, `publish/2`, `purge_expired/2`, `purge_expired/3`, `snapshot/2`, `snapshot/3`, `snapshot_from_data/1`, `snapshot_to_data/1`, `verify_snapshot/1`
  - callbacks: `delete/2`, `durability/1`, `get/2`, `identity/1`, `list/1`, `put/3`
- `Spectre.Experience.Store.Memory`
  - functions: `count/1`, `start_link/0`, `start_link/1`
- `Spectre.Execution`
  - functions: `execute_pending/2`, `execute_pending/3`
- `Spectre.Execution.Closure`
  - functions: `compare_builds/2`, `digest/1`, `fingerprint/1`, `fingerprint_entry/2`, `fingerprint_entry/3`, `from_data/1`, `new/1`, `new!/1`, `schema_version/0`, `to_data/1`
- `Spectre.Execution.Expression`
  - functions: `evaluate/2`, `normalize/1`, `put/3`, `state_path/1`
- `Spectre.Execution.Handoff`
  - functions: `event/1`, `flow_to_work/4`, `flow_to_work/5`, `from_data/1`, `new/1`, `to_data/1`, `validate_target/2`, `work_to_flow/4`, `work_to_flow/5`, `work_to_work/4`, `work_to_work/5`
- `Spectre.Execution.Materialization`
  - functions: `to_data/1`, `verify/1`
- `Spectre.Execution.Materializer`
  - functions: `handoff/1`, `materialize/2`, `materialize/3`, `materialize/4`
- `Spectre.Execution.Migration`
  - functions: `commit/3`, `prepare/4`, `to_data/1`, `verify/1`
- `Spectre.Execution.Migration.Receipt`
  - functions: `from_data/1`, `to_data/1`
- `Spectre.Execution.Program`
  - functions: `fetch_node/2`, `from_compiled/1`, `from_data/1`, `new/1`, `new!/1`, `operation_definition/1`, `operation_refs/1`, `prompt_refs/1`, `to_data/1`, `validate_bindings/2`, `validate_state/2`
- `Spectre.Execution.Rehearsal`
  - functions: `input_digest/1`, `run/3`, `run/4`
- `Spectre.Execution.Rehearsal.Report`
- `Spectre.Execution.Runtime`
  - functions: `start/1`, `start/2`, `start/3`
- `Spectre.Execution.Work`
  - macros: `__using__/1`, `decide/2`, `fail/2`, `finish/1`, `finish/2`, `infer/2`, `migration/2`, `repeat/2`, `step/2`
- `Spectre.Extension`
  - functions: `action_planner/1`, `action_providers/1`, `effect_executors/1`, `expand_handler/3`, `fetch/2`, `merge_agent_config/2`, `register!/2`, `register!/3`
  - callbacks: `action_planner/1`, `action_providers/1`, `agent_config/1`, `api_version/0`, `compile/2`, `effect_executors/1`, `expand_handler/3`, `flow_constraints/2`, `id/0`, `inference_selector/1`, `setup/2`
- `Spectre.Extension.Mount`
- `Spectre.ExternalIdentity`
  - functions: `from_source/1`, `from_source/2`, `key/1`, `new/1`
- `Spectre.Forge`
  - functions: `evidence/2`, `operation_types/0`, `propose/4`, `propose/5`, `rebase/4`, `rebase/5`
- `Spectre.Forge.Critic`
  - functions: `contract_version/0`, `run/3`, `run/4`
  - callbacks: `critique/3`, `id/0`, `profile_ref/0`, `version/0`
- `Spectre.Forge.Critique`
  - functions: `case_digest/1`, `from_data/1`, `new/1`, `schema_version/0`, `to_data/1`, `verify/1`
- `Spectre.Forge.OracleApproval`
  - functions: `approves?/3`, `from_data/1`, `new/1`, `new!/1`, `ref/1`, `schema_version/0`, `to_data/1`, `verify/1`
- `Spectre.Forge.Proposal`
  - functions: `decode/1`, `encode/1`, `from_data/1`, `new/1`, `ref/1`, `schema_version/0`, `to_data/1`, `verify/1`
- `Spectre.Foundation.Conformance`
  - functions: `contract_version/0`, `matrix/0`, `verify_checkpoint/1`, `verify_definition/2`, `verify_forge_proposal/1`, `verify_instance_checkpoint/1`, `verify_reflection/5`, `verify_run/1`, `verify_state/1`
- `Spectre.Gate.Receipt`
  - functions: `decode/1`, `digest/1`, `encode/1`, `new/1`, `new!/1`, `ref/1`, `to_data/1`, `verify/2`, `verify/3`, `verify_binding/2`
- `Spectre.Gate.Receipt.Ref`
  - functions: `new/1`, `parse/1`, `to_string/1`, `valid?/1`, `verify/2`
- `Spectre.Governance.Approval`
  - functions: `approve/2`, `approve/3`, `reject/2`, `reject/3`
- `Spectre.Governance.Approval.Policy`
  - functions: `allows?/3`, `default/0`, `new/1`, `required_mode/2`
- `Spectre.Governance.CandidateState`
  - functions: `constitutional_gates/1`, `gate_classes/0`, `new/1`, `new!/1`, `proposal_digest/1`, `schema_version/0`, `to_data/1`, `transition/2`, `transition/3`
- `Spectre.Governance.ChangeSet`
  - functions: `decode/1`, `digest/1`, `encode/1`, `evidence_digest/1`, `evidence_digest/2`, `from_data/1`, `new/1`, `new!/1`, `schema_version/0`, `to_data/1`, `verify_base/2`, `verify_base/3`
- `Spectre.Governance.ChangeSet.Handler`
  - callbacks: `apply/3`, `component_classes/0`, `operation_types/0`
- `Spectre.Governance.ChangeSet.Operation`
  - functions: `new/1`, `to_data/1`
- `Spectre.Governance.ChangeSet.Registry`
  - functions: `apply/4`, `default/0`, `new/1`, `new!/1`, `register/2`
- `Spectre.Governance.Composition`
  - functions: `mark/4`, `new/1`, `update/2`
- `Spectre.Governance.Composer`
  - functions: `compose/2`, `compose/3`
- `Spectre.Governance.EvaluationDelta`
  - functions: `digest/1`, `from_data/1`, `new/2`, `new/3`, `new!/2`, `new!/3`, `protected_corpus_digest/1`, `protected_corpus_digest!/1`, `to_data/1`
- `Spectre.Governance.GC`
  - functions: `plan/2`, `plan/3`
- `Spectre.Governance.GC.Plan`
  - functions: `decode/1`, `encode/1`, `from_data/1`, `to_data/1`, `verify/1`
- `Spectre.Governance.Review`
  - functions: `evaluate/4`, `evaluate/5`
- `Spectre.Event.Envelope`
  - functions: `admit/2`, `admitted?/1`, `classes/0`, `decode/1`, `encode/1`, `from_data/1`, `intent_digest/1`, `new/1`, `new!/1`, `schema_version/0`, `to_data/1`
- `Spectre.Flow.Constraint`
  - functions: `filter_and_order/2`, `match?/2`
- `Spectre.Identity`
  - functions: `idempotency_key/1`, `uuid7/0`
- `Spectre.Inference`
- `Spectre.Inference.Constraints`
  - functions: `from_options/1`, `from_options/2`, `merge/2`
- `Spectre.Inference.Profile`
  - functions: `compatible?/3`
- `Spectre.Inference.Request`
  - functions: `for_classification/3`, `for_response/3`
- `Spectre.Inference.Response`
- `Spectre.Inference.Selection`
- `Spectre.Inference.Selector`
  - callbacks: `select/4`
- `Spectre.Inference.Selector.Default`
- `Spectre.Input`
  - functions: `fetch_meta/2`, `merge_meta/2`, `new/1`, `put_meta/3`
- `Spectre.Input.Pipeline`
  - functions: `init_specs/1`, `init_specs/2`, `run/3`
- `Spectre.Input.Pipeline.Spec`
- `Spectre.Input.Plug`
  - callbacks: `call/3`, `init/1`
- `Spectre.Input.Plugs.NormalizeText`
- `Spectre.Input.Source`
- `Spectre.Instance`
  - functions: `activate/2`, `activate/3`, `activation/1`, `admit_event/2`, `admit_event/3`, `admitted_events/1`, `admitted_events/2`, `ask/2`, `ask/3`, `authorize_delivery/4`, `authorize_delivery/5`, `checkpoint/1`, `checkpoint_status/1`, `definition_lifecycle/1`, `definition_lifecycle/2`, `delivery_receipts/1`, `delivery_receipts/2`, `drain_definition/1`, `drain_definition/2`, `drain_definition/3`, `flush_checkpoint/1`, `flush_checkpoint/2`, `info/1`, `loop/2`, `loop/3`, `loops/1`, `loops/2`, `operation_events/1`, `operation_events/2`, `pause_loop/2`, `pause_loop/3`, `put_delivery_consent/2`, `put_delivery_consent/3`, `quarantined_events/1`, `quarantined_events/2`, `reconcile_checkpoint/1`, `reconcile_checkpoint/2`, `record_delivery/4`, `record_delivery/5`, `ref/1`, `register_vigil/3`, `register_vigil/4`, `renew_loop/3`, `renew_loop/4`, `resolve_loop/1`, `resolve_loop/2`, `resolve_loop/3`, `resume/3`, `resume/4`, `resume_loop/2`, `resume_loop/3`, `revoke_definition/1`, `revoke_definition/2`, `revoke_definition/3`, `revoke_delivery_consent/2`, `revoke_delivery_consent/3`, `run/2`, `start_controller/3`, `start_controller/4`, `start_execution/2`, `start_execution/3`, `start_link/1`, `skill_state/2`, `skill_state/3`, `skill_state_branches/2`, `skill_state_branches/3`, `start_work/3`, `start_work/4`, `stop_loop/2`, `stop_loop/3`, `stop_loop/4`, `trace_id/1`, `transition_definition_lifecycle/4`, `transition_definition_lifecycle/5`, `transition_skill_state_retention/4`, `transition_skill_state_retention/5`, `trigger_loop/3`, `trigger_loop/4`, `turn/2`, `turn/3`, `update_and_resume_loop/3`, `update_and_resume_loop/4`, `update_loop/3`, `update_loop/4`, `update_skill_state/3`, `update_skill_state/4`
  - functions: `rollback/2`, `rollback/3`
- `Spectre.Instance.Activation`
  - functions: `authority_epoch/1`, `build/1`, `compare_and_swap/3`, `decode/1`, `encode/1`, `from_data/1`, `generation/1`, `new/3`, `schema_version/0`, `to_data/1`
- `Spectre.Instance.CheckpointStore`
  - functions: `load/3`, `migrate_instance_key/6`, `normalize/1`, `persist/6`
  - callbacks: `compare_and_swap/5`, `load/2`, `migrate_instance_key/5`
- `Spectre.Instance.Lifecycle`
  - functions: `activate/3`, `activate/4`, `authorize/2`, `fetch/2`, `fetch/3`, `from_activation/1`, `from_data/1`, `key/1`, `new/1`, `new!/1`, `schema_version/0`, `to_data/1`, `transition/3`, `transition/4`
- `Spectre.Instance.Owner`
  - functions: `assert_current/4`, `assert_current/5`, `claim/2`, `claim/3`, `normalize/1`, `release/3`, `release/4`, `validate/3`, `validate/4`
  - callbacks: `claim/2`, `release/3`, `validate/3`
- `Spectre.Instance.Owner.Lease`
  - functions: `current?/2`, `new/1`, `new!/1`
- `Spectre.Instance.Owner.Local`
  - functions: `claim/2`, `release/3`, `validate/3`
- `Spectre.Instance.Ref`
  - functions: `legacy/1`, `new/2`, `new/3`, `schema_version/0`
- `Spectre.Instance.Registry`
  - functions: `ensure_started/3`, `ensure_started/4`, `lookup/2`, `lookup/3`, `via/1`, `via/2`
- `Spectre.Invocation`
- `Spectre.Invocation.Receipt`
- `Spectre.Operation.Artifact`
  - functions: `new/1`, `validate/1`, `validate!/1`
- `Spectre.Operation.Attempt`
  - functions: `validate/1`
- `Spectre.Operation.Budget`
  - functions: `consume/2`, `exhausted/1`, `exhausted/2`, `new/0`, `new/1`, `new/2`, `remaining/2`, `validate/1`, `validate!/1`
- `Spectre.Operation.Control`
  - functions: `bump_generation/1`, `command_seen?/2`, `finish/2`, `new/1`, `request/2`, `terminal?/1`, `validate/1`
- `Spectre.Operation.Control.Command`
  - functions: `applied/1`, `committed/1`, `new/2`, `new/3`, `rejected/2`, `validate/1`
- `Spectre.Operation.Controller`
  - callbacks: `__spectre_loop_definition__/0`, `apply_result/4`, `apply_update/4`, `budget_exhausted/3`, `checkpoint_compatible?/2`, `complete/2`, `handle_trigger/3`, `init/2`, `next/2`
- `Spectre.Operation.Definition`
  - functions: `compatible?/3`, `load/1`, `new/1`, `operation/2`, `validate/1`, `validate!/1`
- `Spectre.Operation.Delivery`
  - functions: `authorize/5`, `authorize/6`, `authorized/1`, `authorized/2`, `delivered/2`, `delivered/3`, `failed/2`
- `Spectre.Operation.Delivery.Consent`
  - functions: `active?/2`, `new/1`, `revoke/1`, `revoke/2`, `validate/1`
- `Spectre.Operation.Delivery.Policy`
  - functions: `new/1`, `validate/1`
- `Spectre.Operation.Delivery.Receipt`
  - functions: `transition/3`, `transition/4`, `validate/1`, `validate!/1`
- `Spectre.Operation.Event`
  - functions: `new/2`, `new/3`, `to_input/1`, `validate/1`
- `Spectre.Operation.Events`
  - functions: `publish/2`, `subscribe/1`, `subscribe/2`, `unsubscribe/1`
- `Spectre.Operation.Execution`
  - functions: `new/1`, `new/2`, `normalize/1`, `validate/1`, `validate!/1`
- `Spectre.Operation.ExecutionContext`
  - functions: `progress/2`, `progress/3`
- `Spectre.Operation.Loop`
  - functions: `quiescent?/1`, `runnable?/1`, `terminal?/1`, `touch/1`, `touch/2`, `validate/1`
- `Spectre.Operation.Outcome`
  - functions: `new/1`, `new/2`, `validate/1`, `validate!/1`
- `Spectre.Operation.Progress`
  - functions: `validate/1`
- `Spectre.Operation.Ref`
  - functions: `from_loop/1`, `validate/1`, `validate!/1`
- `Spectre.Operation.Request`
  - functions: `new/1`, `new/2`, `new/3`, `validate/1`, `validate!/1`
- `Spectre.Operation.Registry`
  - functions: `all/2`, `registered?/2`, `resolve/3`, `resolve_id/2`
- `Spectre.Operation.Result`
  - functions: `new/3`, `new/4`, `validate/1`, `validate!/1`
- `Spectre.Operation.Retry`
  - functions: `delay/2`, `new/1`, `retry?/3`
- `Spectre.Operation.Spec`
  - functions: `new/1`, `validate/1`, `validate!/1`
- `Spectre.Operation.Update`
  - functions: `applied/2`, `applied/3`, `new/1`, `new/2`, `rejected/2`, `validate/1`
- `Spectre.Operation.Validator`
  - functions: `domain/3`, `validate/3`
- `Spectre.Operation.View`
  - functions: `from_loop/2`
- `Spectre.Operation.Wait`
  - functions: `new/1`, `new/2`, `validate/1`, `validate!/1`
- `Spectre.Journal`
- `Spectre.Journal.Buffer`
  - functions: `child_spec/1`, `enqueue/1`, `enqueue/2`, `stats/0`, `stats/1`
- `Spectre.Journal.Record`
  - functions: `new/1`, `restore/1`, `to_json_map/1`
- `Spectre.Journal.Recorder`
  - functions: `record_extension/4`, `record_persistence/2`, `record_result/2`, `record_routing/1`
- `Spectre.Journal.Store`
  - callbacks: `append/2`
- `Spectre.LLM`
  - functions: `complete/1`, `complete/2`, `complete_once/1`, `complete_once/2`, `provider_opts/1`, `provider_opts/2`, `runtime_opt_keys/0`
  - callbacks: `complete/2`, `complete_plan/2`
- `Spectre.Lifecycle`
  - functions: `apply/2`, `approve_effect/2`, `cancel_pending/1`, `cancel_pending/2`, `cancel_pending/3`, `complete_effect/3`, `expire_policy/2`, `fail_effect/3`, `next/1`, `policy_attempt/2`, `projection/1`, `replay_effect/2`, `resolve_policy/3`, `resolve_policy/4`, `stage/2`, `stage/3`
- `Spectre.LinkIntent`
- `Spectre.Monitor`
  - functions: `dispatch/3`, `fallback_text/3`, `fallback_text/4`
- `Spectre.Morph`
  - functions: `activate/1`, `activate/2`, `approve/1`, `approve/2`, `change/1`, `change/2`, `disable_skill/2`, `evaluate/1`, `evaluate/2`, `explain/1`, `mount_skill/2`, `mount_skill/3`, `rebase/1`, `rebase/2`, `reject/1`, `reject/2`, `replace_skill/2`, `replace_skill/3`, `resume/2`, `resume/3`, `status/1`
- `Spectre.Morph.Change`
- `Spectre.Morph.DSL`
  - macros: `morph/1`
- `Spectre.Morph.Surface`
  - functions: `allows?/2`, `applicability_ceilings/2`, `digest/1`, `from_canonical/1`, `from_data/1`, `new/1`, `new!/1`, `operation_types/0`, `schema_ref/0`, `to_data/1`
- `Spectre.Pipeline`
  - functions: `init_specs/1`, `init_specs!/1`, `run/2`
  - macros: `__using__/1`, `pipeline/1`, `plug/1`, `plug/2`
- `Spectre.Pipeline.Spec`
- `Spectre.Policy`
  - functions: `awaiting?/1`, `decide/2`, `new/1`, `resolve/3`, `resume/2`
- `Spectre.Policy.Matcher`
  - functions: `match/2`
- `Spectre.Policy.Resolution`
  - functions: `new/3`, `new/4`, `to_tuple/1`
- `Spectre.Projection`
  - functions: `generate/1`, `generate/2`, `generate/3`, `verify/2`
  - callbacks: `id/0`, `project/2`, `version/0`
- `Spectre.Projection.Audit`
  - functions: `id/0`, `project/2`, `version/0`
- `Spectre.Projection.Execution`
  - functions: `id/0`, `project/2`, `version/0`
- `Spectre.Projection.HumanReport`
  - functions: `decode/1`, `encode/1`, `from_data/1`, `id/0`, `project/2`, `project/3`, `to_data/1`, `verify/1`, `version/0`
- `Spectre.Projection.Reflection`
  - functions: `from_data/5`, `from_data/6`, `generate/4`, `generate/5`, `id/0`, `project/2`, `to_data/1`, `verify/5`, `verify/6`, `version/0`
- `Spectre.Projection.Routing`
  - functions: `id/0`, `project/2`, `version/0`
- `Spectre.Prompt`
  - functions: `build/3`, `build/4`, `render/3`, `render/4`, `resolve/3`, `resolve/4`
- `Spectre.Prompt.Fragment`
  - functions: `base/1`, `canonical/1`, `canonical!/1`, `canonical_data/1`, `close_template/1`, `new/2`, `new/3`
- `Spectre.Prompt.Materializer`
  - functions: `materialize/4`, `render/3`
- `Spectre.Prompt.Operation`
  - functions: `new/2`, `new/3`, `normalize/2`, `put_scope/2`
- `Spectre.Prompt.Plan`
  - functions: `compose/3`, `legacy/1`, `metadata/1`, `sections/1`
- `Spectre.Prompt.Receipt`
  - functions: `from_data/1`, `to_data/1`
- `Spectre.Provider.Call`
  - functions: `run/2`, `run/3`
- `Spectre.Provider.Failure`
- `Spectre.Result`
  - functions: `action_outcome/1`, `completions/1`, `latest_completion/1`, `lifecycle/1`, `open_awaitable/1`, `pending_effect/1`, `visible_reply?/1`
- `Spectre.Reply.Sanitizer`
  - functions: `sanitize/1`, `sanitize/2`
- `Spectre.Reflection`
  - functions: `reflect/3`, `reflect/4`
- `Spectre.Reflection.Operation`
  - functions: `execute/2`, `spec/0`
- `Spectre.Reflection.Policy`
  - functions: `authorize/3`, `new/1`, `new!/1`
- `Spectre.Route`
  - functions: `from_rule/3`, `new/1`
- `Spectre.Router`
  - functions: `candidate_rules/2`, `evaluate/2`, `evaluate/3`, `route/2`, `route_context/2`, `route_from_context/1`
- `Spectre.Router.Arbitration`
  - functions: `from_context/1`
- `Spectre.Router.Arbitrator`
  - callbacks: `decide/2`
- `Spectre.Router.Arbitrators.Default`
  - functions: `explain/2`
- `Spectre.Router.Candidate`
  - functions: `from_result/3`, `from_result/4`, `from_rule/3`, `from_rule/4`, `new/1`, `to_route/1`, `to_route/2`
- `Spectre.Router.Context`
  - functions: `add_candidate/2`, `add_candidates/2`, `halt/1`, `halted?/1`, `hard_candidate?/1`, `hard_candidate_locked?/1`, `put_arbitration/2`, `put_error/2`, `put_input/2`, `put_local_result/2`, `put_route/2`, `put_trace/2`
- `Spectre.Router.IndexProfile`
  - functions: `default/0`, `digest/1`, `from_data/1`, `new/1`, `new!/1`, `schema_version/0`, `to_data/1`
- `Spectre.Router.DefaultPipeline`
- `Spectre.Router.LLMClassifier`
  - functions: `available?/1`, `classify/2`, `classify/3`, `enabled?/1`
- `Spectre.Router.LocalClassifier`
  - functions: `classify/2`
- `Spectre.Router.Plug`
  - callbacks: `call/2`, `init/1`
- `Spectre.Router.Plugs.Arbitrate`
- `Spectre.Router.Plugs.BagDistance`
- `Spectre.Router.Plugs.EmbeddingSimilarity`
- `Spectre.Router.Plugs.JaroDistance`
- `Spectre.Router.Plugs.LLMFallback`
- `Spectre.Router.Plugs.LocalClassifier`
- `Spectre.Router.Plugs.Regex`
- `Spectre.Router.Plugs.SemanticCacheExact`
- `Spectre.Router.Plugs.SemanticCacheSearch`
- `Spectre.Router.Plugs.Terminalize`
- `Spectre.Router.Receipt`
  - functions: `from_context/2`, `from_error/2`
- `Spectre.Router.SemanticCache`
  - functions: `clear/1`, `clear/2`, `delete/2`, `delete/3`, `examples/1`, `examples/2`, `get_example/2`, `get_example/3`, `learn_eligibility/2`, `learnable?/2`, `load_snapshot/2`, `load_snapshot/3`, `lookup/2`, `put/3`, `relabel/3`, `relabel/4`, `snapshot/1`, `snapshot/2`, `update_example/3`, `update_example/4`, `verify/2`, `verify/3`
  - callbacks: `clear/2`, `delete/3`, `examples/2`, `get_example/3`, `load_snapshot/3`, `lookup/2`, `put/3`, `relabel/4`, `snapshot/2`, `update_example/4`, `verify/3`
- `Spectre.Router.SemanticCache.Learned`
  - functions: `clear/1`, `clear/2`, `delete/2`, `delete/3`, `examples/1`, `examples/2`, `get_example/2`, `get_example/3`, `load_snapshot/2`, `load_snapshot/3`, `lookup/2`, `online_revision/1`, `put/3`, `relabel/3`, `relabel/4`, `rows/1`, `snapshot/1`, `snapshot/2`, `update_example/3`, `update_example/4`, `verify/2`, `verify/3`
- `Spectre.Router.SemanticCache.Owner`
  - functions: `child_spec/1`
- `Spectre.Router.Support`
  - functions: `ambiguity_reason/2`, `ambiguous_labels/2`, `ambiguous_labels/3`, `fallback_route/3`, `format_reason/1`, `labels_for/1`, `log/3`, `log_route/4`, `route_from_result/4`, `route_from_rule/4`, `rules_for/2`, `rules_for/3`, `summarize_local/1`, `terminalize/2`, `with_labels/2`
- `Spectre.Rule`
  - functions: `checks_match?/2`, `match?/2`, `new/1`
- `Spectre.Run`
  - functions: `checkpoint/1`, `checkpoint/2`, `ref/3`, `ref/4`, `restore/1`, `restore/2`
- `Spectre.Run.Boundary`
- `Spectre.Run.Ref`
  - functions: `token/1`
- `Spectre.Run.Request`
- `Spectre.Runner`
  - functions: `action/3`, `action/4`, `ask/3`, `ask/4`, `reply/3`, `reply/4`, `run/2`, `run_function/3`
- `Spectre.Runtime`
  - functions: `advance/1`, `advance/2`, `execute/2`, `execute/3`, `handle/3`, `load_context/3`, `resolve_policy/3`, `resolve_policy/4`, `restore_state/2`, `resume/2`, `resume/3`, `start/2`, `start/3`
- `Spectre.Session`
  - functions: `agent/1`, `ask/2`, `ask/3`, `child_spec/1`, `execute/2`, `execute/3`, `reset/1`, `reset/2`, `resolve_policy/3`, `resolve_policy/4`, `start_link/1`, `state/1`, `turn/2`, `turn/3`
- `Spectre.Skill`
  - macros: `__using__/1`
- `Spectre.Skill.Applicability`
  - functions: `conflicts?/2`, `from_data/1`, `matches?/2`, `new/1`, `new!/1`, `schema_version/0`, `specificity/1`, `to_data/1`
- `Spectre.Skill.Definition`
  - functions: `anti_hijack/1`, `applicability/1`, `canonical/1`, `equivalent?/2`, `from_canonical/1`, `from_compiled/1`, `from_compiled/2`, `new/1`, `new!/1`, `operation_refs/1`, `origin/1`, `prompt_budget/1`, `prompt_fragments/1`, `ref/1`, `route/2`, `routes/1`, `runtime/1`, `semantic_ir/1`, `work/2`, `works/1`
- `Spectre.Skill.PromptBudget`
  - functions: `digest/1`, `from_data/1`, `new/1`, `new/2`, `new!/1`, `new!/2`, `schema_version/0`, `to_data/1`
- `Spectre.Skill.Runtime`
  - functions: `capability/1`, `claim_continuation/3`, `claim_continuation/4`, `continuation/2`, `disable/2`, `disable/3`, `mount/3`, `mount/4`, `mounts/1`, `new/2`, `new/3`, `new!/2`, `new!/3`, `release_continuation/2`, `release_continuation/3`, `replace/3`, `replace/4`, `respond/2`, `respond/3`, `respond/4`, `route/2`, `route/3`, `status/2`
- `Spectre.Skill.Runtime.Response`
- `Spectre.Skill.StateBinding`
  - functions: `activation_pointer/1`, `activation_pointer?/1`, `decode/1`, `encode/1`, `from_data/1`, `new/1`, `new!/1`, `schema_version/0`, `to_data/1`, `transition_retention/3`, `transition_status/3`, `update/3`
- `Spectre.Skill.Mount`
  - functions: `new/3`, `scope/1`
- `Spectre.Stack`
  - functions: `config/2`, `definition/1`, `installation/2`, `resolve/3`, `start_link/1`, `start_link/2`
  - macros: `__using__/0`, `__using__/1`, `install/1`, `install/2`, `install/3`
- `Spectre.Stack.Binding`
  - functions: `config/2`, `installation/2`, `refs/1`
- `Spectre.Stack.Contract.V1`
  - functions: `assert_installable!/1`, `to_v2/1`, `to_v2/2`, `verify_installable/1`, `verify_manifest/2`, `version/0`
- `Spectre.Stack.Contract.V2`
  - functions: `from_compiled/2`, `from_compiled/3`, `from_v1/1`, `from_v1/2`, `from_v1!/1`, `from_v1!/2`, `new/2`, `new!/2`, `to_data/1`, `version/0`
- `Spectre.Stack.Conformance`
  - functions: `contract_version/0`, `run/1`, `run/2`
- `Spectre.Stack.DSL`
  - functions: `compile!/3`
- `Spectre.Stack.Definition`
  - functions: `fetch/1`, `fetch!/1`, `installation/2`, `manifest/1`, `resolve/3`, `validate/1`, `validate!/1`
- `Spectre.Stack.Installable`
  - functions: `contract_version/0`, `verify/1`, `verify/2`, `verify!/1`, `verify!/2`
  - macros: `__using__/1`
  - callbacks: `child_specs/2`, `compile/3`, `manifest/0`
- `Spectre.Stack.Installation`
  - functions: `from_extension_mount/1`, `from_provider_mount/1`
- `Spectre.Stack.Package`
  - functions: `compatible?/2`, `entry_id/1`, `new!/2`
- `Spectre.Stack.Ref`
  - functions: `key/1`, `valid?/1`
- `Spectre.Stack.Runtime`
  - functions: `child_spec/1`, `child_specs/1`, `child_specs/2`, `resolve/2`, `start_link/1`, `start_link/2`
- `Spectre.State`
  - functions: `approve_pending_effect/2`, `awaiting_policy?/1`, `awaiting_policy?/2`, `bump_revision/1`, `cancel_pending/1`, `clear_open_awaitables/1`, `clear_pending/1`, `complete_pending_effect/2`, `fail_pending_effect/2`, `new/1`, `open_policy_awaitable/1`, `open_policy_awaitable/2`, `pending_effect/1`, `pending_effect/2`, `put_pending_effect/3`, `record_turn/4`, `replace_awaitable/2`, `resolved_effect/2`, `trace/2`
- `Spectre.State.Codec`
  - functions: `decode/1`, `decode!/1`, `encode/1`, `encode_json/1`
- `Spectre.State.Store`
  - callbacks: `compare_and_swap/5`, `load/3`
- `Spectre.Subject`
  - functions: `key/1`, `new/1`, `new/2`
- `Spectre.Subject.Registry`
  - functions: `bind/3`, `bind/4`, `confirm_link/3`, `confirm_link/4`, `confirm_source/2`, `confirm_source/3`, `intent/1`, `links/2`, `open_link/4`, `open_link/5`, `resolve/2`, `revoke/1`, `revoke/2`, `start_link/0`, `start_link/1`
- `Spectre.SubjectLink`
- `Spectre.Supervisor`
  - functions: `child_spec/1`, `dismiss/1`, `dismiss/2`, `instance/2`, `instance/3`, `instance/4`, `start_link/0`, `start_link/1`, `summon/1`, `summon/2`, `summon/3`
- `Spectre.Telemetry`
  - functions: `emit/1`, `emit/2`, `emit/3`, `emit/4`
- `Spectre.Training.Dataset`
  - functions: `from_agent/1`, `from_agent/2`
- `Spectre.Transition`
- `Spectre.Turn`
  - functions: `from_result/4`, `from_step/4`, `resolve_policy/2`, `resolve_policy/3`, `run/2`, `run/3`
- `Spectre.Turn.Dispatcher`
  - functions: `dispatch/2`, `dispatch/3`
  - callbacks: `action_result/3`, `deliver_reply/3`, `execute?/3`, `fallback_reply/2`, `no_response/2`, `policy_request/3`, `satisfied_resolution/2`, `suppressed/3`
- `Spectre.Turn.Decision`
  - functions: `decide/1`
- `Spectre.Turn.Handler`
  - callbacks: `handle_turn/2`
- `Spectre.Turn.Handler.Reply`
  - functions: `new/1`, `new/2`
- `Spectre.Turn.Handler.Request`
- `Spectre.Vigil`
  - functions: `complete/1`, `fail/1`, `observe/2`, `observe/3`, `wait/1`, `wait/2`, `wait_for/2`
  - macros: `__using__/1`, `operation/2`, `operation/3`, `uses_operation/1`
- `Spectre.Work`
  - functions: `blocked/1`, `complete/1`, `fail/1`, `run/2`, `run/3`, `wait/1`, `wait/2`
  - macros: `__using__/1`, `operation/2`, `operation/3`, `uses_operation/1`
