Canonical mission runtime for Spec Kitty.
- YAML mission template loading.
- Deterministic mission discovery with precedence tiers.
- Deterministic step planner and mission
next()execution loop. - Prompt rendering for agent runtimes.
load_mission_template(path_or_key, context=None)discover_missions(context)start_mission_run(template_key, inputs, policy_snapshot, context=None, run_store=None)next_step(run_ref, agent_id, result="success", policy_snapshot=None, actor_context=None, context=None)render_prompt(decision, format="markdown")
RuntimeEventEmitter uses canonical payload-object methods aligned to
spec-kitty-events mission-next contracts:
emit_mission_run_started(payload)emit_next_step_issued(payload)emit_next_step_auto_completed(payload)emit_decision_input_requested(payload)emit_decision_input_answered(payload)emit_mission_run_completed(payload)
NullEmitter is the default no-op implementation for local-first/offline flows.
Mission steps declare their context requirements using step context contracts:
- requires: Contexts that MUST resolve before execution
- optional: Contexts that may enrich but aren't blocking
- emits: Contexts produced/updated on completion
See docs/contracts.md for the complete reference, V1 baseline context types, and integration guide for spec-kitty 2.x.
mission-pack.yaml
missions/<mission_key>/mission.yaml
missions/<mission_key>/templates/*.md
missions/<mission_key>/steps/*.yaml # optional