Runner step contracts
What you'll find here
The two contracts that bound one phase of the single-agent execution
loop — craik.runner_step_request and craik.runner_step_result.
Authority stays explicit.
The policy envelope and intent lock remain explicit so a runner step cannot float away from the authority and scope that produced it.
Step requests
craik.runner_step_request contains:
run_id & task_id
Loop phase
Stable runner metadata
policy_envelope_id
And optional intent_lock_id.
Capability grants
And expected output schemas.
input_prompt
Bounded context
redaction_required
Step results
craik.runner_step_result contains:
Originating request_id
Same run_id · task_id · phase · runner metadata
Status
completed · blocked · failed · partial.
Human-readable summary
Structured observed_output
Diagnostics
Receipt ids
Memory proposal ids
Artifacts
redacted flag
Contracts, not authority.
Provider-specific details belong under structured output fields and must remain redacted before persistence or handoff. Step contracts do not grant authority, perform side effects, or decide continuation — the loop executor will consume them with policy checks and task-run state.