runbook-tutorials/workplans/archived/260929-RBT-WP-0003-engine-core-run-state-and-evidence.md
tegwick 8eaf0c77b0
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 3s
Tests / tests (push) Failing after 35s
Work Records / validate (push) Successful in 12s
Archive the finished runbook-tutorials workplans
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: sonnet
Assistant-Process: 295952@bnt-lap001
Assistant-Session: e93f64ad-516c-46eb-9666-aad8d300c477
2026-09-29 21:48:05 +02:00

2.1 KiB

id type title domain repo status flavor owner topic_slug created updated depends_on state_hub_workstream_id
RBT-WP-0003 workplan Engine core: run state and evidence infotech runbook-tutorials finished implementation claude stack 2026-09-29 2026-09-29
RBT-WP-0002
b7f2568a-96a2-5e92-8d04-4e7ac7b6da9b

Goal

Give the engine memory: a run of a pack keeps non-secret parameter values, per-step state and evidence, and is the only thing allowed to change a pack's exercise status.

Design the run record

id: RBT-WP-0003-T01
status: done
priority: high
state_hub_task_id: "e61fbba9-d69f-59d4-ad86-c1fab69e8171"

Specified in docs/run-spec.md: runbook-run/v0.1: pack id and revision, operator label, parameter values, per-step state (todo|running|done|failed|skipped), timestamps, evidence facts, verification results. Non-secret only, with the same secret-marker rejection as packs. Stored under .local/runbook-runs/ in the repo being operated.

Implement the run store and step state machine

id: RBT-WP-0003-T02
status: done
priority: high
state_hub_task_id: "fb10ebd1-d122-5b5f-9fd5-83d08539f8c1"

Create, resume and list runs. Enforce order, block a step until the previous one verified, record failures without losing state. Tests for restart and resume.

Implement verification

id: RBT-WP-0003-T03
status: done
priority: medium
state_hub_task_id: "870980df-c1e8-51e5-9a00-643f63404783"

manual, exit-0 and output-contains checks. Commands are shown to the operator; the engine runs a verify command only when the operator confirms it, with a timeout and captured output size only (no output stored).

Exercise-status writer

id: RBT-WP-0003-T04
status: done
priority: medium
state_hub_task_id: "bad99b81-2b64-520f-b92f-1b8c6457659b"

When every step of a run has verified, offer to write exercise_status: exercised <date> by <operator> into pack.yaml via a reviewable diff. Never edit automatically.

Acceptance Criteria

  • A run survives restart and records outcomes without secrets.
  • A pack becomes exercised only through a completed, verified run.