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. # The same story as ../showcase-lighthouse, written in the v0.2 model: stages, parallel steps, alternatives, gates, actors,
# Purpose: an acceptance test for the proposed model. If the model cannot express # datapoints with dimensions, artefacts, irreversible confirmation, timeouts. It is the reference pack for the v0.2 walk-through UI.
# 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).
spec: runbook-pack/v0.2 spec: runbook-pack/v0.2
id: rtut.showcase-lighthouse id: rtut.showcase-lighthouse-v2
title: "Showcase: a night at the lighthouse" title: "Showcase: a night at the lighthouse (v0.2)"
owner: runbook-tutorials 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-. 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 exercise_status: unexercised

View file

@ -10,7 +10,7 @@ import yaml
from rtut import pack as P, run as R1, run2 as R from rtut import pack as P, run as R1, run2 as R
ROOT = Path(__file__).resolve().parent.parent 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" 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.-]+"}, hello["parameters"] = [{"id": "host", "label": "Host to ping", "type": "string", "pattern": "[a-zA-Z0-9.-]+"},
{"id": "count", "label": "Ping count", "type": "int", "default": 1}] {"id": "count", "label": "Ping count", "type": "int", "default": 1}]
write(repo / "runbooks/hello/pack.yaml", hello) 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" v2["id"] = "rtut.showcase-lighthouse-v2"
write(repo / "runbooks/lh2/pack.yaml", v2) write(repo / "runbooks/lh2/pack.yaml", v2)
for f in (ROOT / "attribute-sets").glob("*.yaml"): for f in (ROOT / "attribute-sets").glob("*.yaml"):

View file

@ -18,7 +18,7 @@ _scratch = []
@pytest.fixture @pytest.fixture
def s2(tmp_path): def s2(tmp_path):
d = tmp_path / "runbooks" / "lh"; d.mkdir(parents=True) 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) s = ui.serve([tmp_path], 0)
threading.Thread(target=s.serve_forever, daemon=True).start() threading.Thread(target=s.serve_forever, daemon=True).start()
yield s yield s

View file

@ -7,7 +7,7 @@ import yaml
from rtut import pack as P, run as R, v2 from rtut import pack as P, run as R, v2
ROOT = Path(__file__).resolve().parent.parent 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()) 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, `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 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 (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. 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.