Move the v0.2 showcase into its own runbook directory so the UI can open it
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 3s
Work Records / validate (push) Has been cancelled

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 14:43:45 +02:00
parent 9224b8235b
commit c9ec4fb382
6 changed files with 9 additions and 12 deletions

View file

@ -1,11 +1,8 @@
# DRAFT - not loaded by the engine. Written against docs/pack-spec-v0.2.md.
# Purpose: an acceptance test for the proposed model. If the model cannot express
# this story without special cases, the proposal must change. When v0.2 is adopted
# this file becomes pack.yaml (and the v0.1 file is retired or kept as a
# compatibility fixture).
# The same story as ../showcase-lighthouse, written in the v0.2 model: stages, parallel steps, alternatives, gates, actors,
# datapoints with dimensions, artefacts, irreversible confirmation, timeouts. It is the reference pack for the v0.2 walk-through UI.
spec: runbook-pack/v0.2
id: rtut.showcase-lighthouse
title: "Showcase: a night at the lighthouse"
id: rtut.showcase-lighthouse-v2
title: "Showcase: a night at the lighthouse (v0.2)"
owner: runbook-tutorials
outcome: You have played a short interactive story that touches every feature of the runbook engine, using only harmless echo, printf and a scratch file under /tmp/rtut-.
exercise_status: unexercised

View file

@ -10,7 +10,7 @@ import yaml
from rtut import pack as P, run as R1, run2 as R
ROOT = Path(__file__).resolve().parent.parent
SRC = yaml.safe_load((ROOT / "runbooks/showcase-lighthouse/pack.v0.2.yaml").read_text())
SRC = yaml.safe_load((ROOT / "runbooks/showcase-lighthouse-v2/pack.yaml").read_text())
PHRASE = "I understand this cannot be undone"

View file

@ -25,7 +25,7 @@ def psrv(tmp_path):
hello["parameters"] = [{"id": "host", "label": "Host to ping", "type": "string", "pattern": "[a-zA-Z0-9.-]+"},
{"id": "count", "label": "Ping count", "type": "int", "default": 1}]
write(repo / "runbooks/hello/pack.yaml", hello)
v2 = yaml.safe_load((ROOT / "runbooks/showcase-lighthouse/pack.v0.2.yaml").read_text())
v2 = yaml.safe_load((ROOT / "runbooks/showcase-lighthouse-v2/pack.yaml").read_text())
v2["id"] = "rtut.showcase-lighthouse-v2"
write(repo / "runbooks/lh2/pack.yaml", v2)
for f in (ROOT / "attribute-sets").glob("*.yaml"):

View file

@ -18,7 +18,7 @@ _scratch = []
@pytest.fixture
def s2(tmp_path):
d = tmp_path / "runbooks" / "lh"; d.mkdir(parents=True)
shutil.copy(ROOT / "runbooks/showcase-lighthouse/pack.v0.2.yaml", d / "pack.yaml")
shutil.copy(ROOT / "runbooks/showcase-lighthouse-v2/pack.yaml", d / "pack.yaml")
s = ui.serve([tmp_path], 0)
threading.Thread(target=s.serve_forever, daemon=True).start()
yield s

View file

@ -7,7 +7,7 @@ import yaml
from rtut import pack as P, run as R, v2
ROOT = Path(__file__).resolve().parent.parent
FILE = ROOT / "runbooks/showcase-lighthouse/pack.v0.2.yaml"
FILE = ROOT / "runbooks/showcase-lighthouse-v2/pack.yaml"
GOOD = yaml.safe_load(FILE.read_text())

View file

@ -103,7 +103,7 @@ 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.yaml` expresses the same story in the proposed v0.2 model
UI refinement. `runbooks/showcase-lighthouse-v2/pack.yaml` expresses the same story in the proposed v0.2 model
(stages, parallel steps, alternatives, gates, actors, datapoints, artefacts, irreversible
confirmation). It validates against the v0.2 schema and semantic checks and can be run by the v0.2 engine (`rtut/run2.py`); a UI for it is RBT-WP-0004.