# 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).
spec:runbook-pack/v0.2
id:rtut.showcase-lighthouse
title:"Showcase: a night at the lighthouse"
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
engine:native
confirm_phrase:I understand this cannot be undone
framing:# shown first; things to keep in mind, not gates
- This showcase never handles a secret. Datapoints hold references and facts, never secret values.
- Only /tmp/rtut-* is ever written or removed.
- Several things below can be done in any order; the guide recommends one.
actors:
- id:keeper
role:Lighthouse keeper
description:Runs the lamp and the signals. Does the everyday work.
goal:The lamp is lit and the weather is known before dark.
steps: # no requires among these:they are parallel; list order is the recommended order
- id:read-the-sign
title:Read the poem over the door
actor:keeper
owner:the-lighthouse
command:printf '%s\n' 'Tower of stone, and a patient flame,' 'you keep no name, yet call each name' 'across the dark, across the foam:' 'come home, come home, come home.'
reversible:true
verify:{done_when: You read the poem, expect:manual}
- id:light-lamp
title:Light the lamp
actor:keeper
owner:the-lighthouse
uses:[keeper_name, lamp_fuel]
produces:[lamp_lit]
command:echo "{{keeper_name}} lights the {{lamp_fuel}} lamp."