Adopt spec v0.2: schema, semantic validator, operating modes; workplans updated
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 2s
Work Records / validate (push) Successful in 13s

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
This commit is contained in:
tegwick 2026-09-29 10:49:10 +02:00
parent b6868a3a58
commit 79996ab249
15 changed files with 1090 additions and 64 deletions

View file

@ -61,27 +61,24 @@ unsafe characters.
```task
id: RBT-WP-0002-T04
status: progress
status: done
priority: high
```
`docs/pack-spec-v0.2-proposal.md` (stages and hierarchy, dependency graph with a
`docs/pack-spec-v0.2.md` (stages and hierarchy, dependency graph with a
recommended serialization, datapoints with `nil/set/err/ok`, QA gates tied to stages
and goals, actors and roles, artefacts, reversibility-based confirmation, framing).
Review with Bernd, resolve the five open questions, and decide: freeze v0.1 as
shipped and adopt v0.2. Supersedes the earlier plan to freeze v0.1 alone.
Done 2026-09-29: Bernd answered the five questions; v0.2 adopted as `docs/pack-spec-v0.2.md` (with operating modes, overrides, deviations); v0.1 stays as shipped. Supersedes the earlier plan to freeze v0.1 alone.
## Write the v0.2 schema and validator
```task
id: RBT-WP-0002-T05
status: wait
status: done
priority: high
```
After T04: `schema/runbook-pack-v0.2.schema.json`, semantic checks (acyclic
requires, gate and datapoint references resolve, one stage per gate, no secret
datapoints), v0.1 packs still load, tests.
Done 2026-09-29: `schema/runbook-pack-v0.2.schema.json` and `rtut/v2.py` (acyclic requires, references resolve, nesting depth 3, irreversible steps need a confirm phrase, no secret datapoints). v0.1 packs still load. 61 tests including one negative test per rule.
## Port the in-repo and NetKingdom packs
@ -106,10 +103,9 @@ state_hub_task_id: "6740457f-81a7-5761-a768-b9b0faee7552"
`runbooks/showcase-lighthouse/` is a harmless interactive-fiction runbook (poem, story,
scratch logbook under /tmp/rtut-*). `pack.yaml` (v0.1) runs today and is the test bed for
UI refinement. `pack.v0.2.draft.yaml` expresses the same story in the proposed v0.2 model
UI refinement. `pack.v0.2.yaml` expresses the same story in the proposed v0.2 model
(stages, parallel steps, alternatives, gates, actors, datapoints, artefacts, irreversible
confirmation). The draft is checked for internal consistency by tests. When v0.2 is adopted
the validator must accept it unchanged, or the proposal changes.
confirmation). It now validates against the v0.2 schema and semantic checks. It cannot be run until RBT-WP-0007 lands.
## Acceptance Criteria

View file

@ -29,7 +29,7 @@ priority: high
state_hub_task_id: "8309d778-3688-5cb3-bb34-18f87b66dbf3"
```
Done 2026-09-29 with Bernd. Findings and consequences are in `docs/ux-review-2026-09-29.md`; the model they imply is proposed in `docs/pack-spec-v0.2-proposal.md`.
Done 2026-09-29 with Bernd. Findings and consequences are in `docs/ux-review-2026-09-29.md`; the model they imply is proposed in `docs/pack-spec-v0.2.md`.
## Build the step view
@ -146,6 +146,18 @@ state_hub_task_id: "ddbca5e1-dcf6-5c2a-b3e2-497d2a82ba23"
Confirm button for reversible steps, typed phrase for irreversible ones, per the v0.2
`reversible` field.
## Mode switch and override dialog
```task
id: RBT-WP-0004-T11
status: wait
priority: high
```
Depends on RBT-WP-0007 T06-T07. Choose manual or autopilot per run (with timeout and
push-through controls). In manual mode, an override dialog lists unmet preconditions and
the downstream risk before continuing; deviations show in the overview.
## Acceptance Criteria
- Bernd can complete the SSH tutorial pack in the UI without pasting outputs to an agent.

View file

@ -56,3 +56,15 @@ state_hub_task_id: "ce82d1ae-76a3-59c8-9d26-4813e8dc9745"
Operator feedback on a step feeds an assistant that knows the runbook and may
diagnose the deployment (read-only access first), giving a feedback, retry,
feedback, confirm loop. Needs decisions on access, identity and what is sent where.
## Dependencies between runbooks
```task
id: RBT-WP-0006-T04
status: wait
priority: low
```
Packs declare `requires_packs` with a required result (exercised, or a named gate
passed), instead of deeper nesting (v0.2 caps nesting at three levels). Needs a decision
on how a pack in another repo is identified and trusted.

View file

@ -23,7 +23,7 @@ a dimension view and an overview from the same run data.
```task
id: RBT-WP-0007-T01
status: wait
status: todo
priority: high
state_hub_task_id: "55dd86f9-5f89-59a2-8a0a-85fbedd95483"
```
@ -35,7 +35,7 @@ canonical order; explain what a blocked item waits for.
```task
id: RBT-WP-0007-T02
status: wait
status: todo
priority: high
state_hub_task_id: "571e8685-6eeb-54ce-bb1a-4616ea951f81"
```
@ -47,7 +47,7 @@ how `ok` is reached (check or recorded manual confirmation).
```task
id: RBT-WP-0007-T03
status: wait
status: todo
priority: high
state_hub_task_id: "707cca55-24a1-5355-8722-10740c5a2862"
```
@ -59,7 +59,7 @@ exit, record waivers with who, when and why.
```task
id: RBT-WP-0007-T04
status: wait
status: todo
priority: medium
state_hub_task_id: "73307bb9-2739-563b-92c7-a034a360b444"
```
@ -70,7 +70,7 @@ state_hub_task_id: "73307bb9-2739-563b-92c7-a034a360b444"
```task
id: RBT-WP-0007-T05
status: wait
status: todo
priority: medium
state_hub_task_id: "0933ff4a-8478-50d9-aa99-991948bc2379"
```
@ -78,6 +78,33 @@ state_hub_task_id: "0933ff4a-8478-50d9-aa99-991948bc2379"
Derive confirm button versus typed phrase from `reversible`; enforce the phrase in the
engine so no renderer can skip it.
## Operating modes: manual and autopilot
```task
id: RBT-WP-0007-T06
status: todo
priority: high
```
A run has a mode (`docs/pack-spec-v0.2.md`). Manual: the operator confirms; every
check, gate and precondition is shown with its state. Autopilot: the engine confirms
when all preconditions are met. `autopilot: manual-only` steps and irreversible steps
are never auto-confirmed without a recorded pre-authorization.
## Overrides, waivers, push-through and the deviation record
```task
id: RBT-WP-0007-T07
status: todo
priority: high
```
Override in manual mode when preconditions are unmet: name the unmet items and the
declared `downstream_risk`, require explicit confirmation and a reason, record a
deviation. Waivers only where a gate declares `waivable`. Autopilot timeouts
(`stop` or `push-through`) record a deviation and, for push-through, move on. A run with
any deviation is flagged and can never exercise a pack.
## Acceptance Criteria
- The old console's stages, gates and datapoints can be expressed and computed