Skip to main content
Version: MVP

Runner step contracts

2 min readReferenceUpdated 2026-05-19

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.

What's next