runbook-tutorials/workplans/RBT-WP-0003-engine-core-run-state-and-evidence.md
tegwick 535836054a
All checks were successful
Work Records / validate (push) Successful in 21s
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 17s
Add runbook pack spec, validator, legacy launcher, and workplans RBT-WP-0002..0006
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 00:24:05 +02:00

1.8 KiB

id type title domain repo status flavor owner topic_slug created updated depends_on
RBT-WP-0003 workplan Engine core: run state and evidence infotech runbook-tutorials ready implementation claude stack 2026-09-29 2026-09-29
RBT-WP-0002

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: todo
priority: high

Specify 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: todo
priority: high

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: todo
priority: medium

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: todo
priority: medium

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.