|
| 1 | +# first-run/ — the guided first-run tutorial |
| 2 | + |
| 3 | +The ordered, conversational track the liaison drives when a user says **help** |
| 4 | +on a not-yet-armed instance. This README **is** the tutorial script: it lists |
| 5 | +the stages in run order with a one-line abstract each, and it carries the |
| 6 | +**interaction norms** that bind the liaison driving it. There is deliberately no |
| 7 | +separate tutorial script to drift from — this ordered tree is the single source |
| 8 | +of truth, and each stage page is read just-in-time as the liaison reaches it. |
| 9 | +Read here to run the tour, to resume a half-finished one, or to answer a |
| 10 | +first-run question. Day-2 operation of a running instance is a sibling tree, |
| 11 | +`../operations/README.md`. |
| 12 | + |
| 13 | +Bare **help** starts at stage 1 and walks through. **start the garden** jumps |
| 14 | +straight to stage 4 (the user who wants motion, not a tour). On an |
| 15 | +**already-armed** instance, bare `help` skips the walk and degenerates to a |
| 16 | +status summary (units, board counts, leadership, drain state) plus the |
| 17 | +`help <topic>` menu — the stage pages double as the topic answers, so nothing |
| 18 | +is written twice. |
| 19 | + |
| 20 | +## Interaction norms (binding on the liaison driving the track) |
| 21 | + |
| 22 | +- **Ask before acting, act on approval.** Every mutating step is proposed in one |
| 23 | + sentence with the exact command shown, then run **by the liaison itself** on a |
| 24 | + yes — never printed for the human to copy. Read-only checks (probes, status |
| 25 | + reads) run freely without asking. |
| 26 | +- **Verify after each stage** — a unit list, a `gh auth status`, a board read — |
| 27 | + and show the one-line result, so trust accumulates stage by stage. |
| 28 | +- **Resumable and idempotent.** Every stage begins with its own probe and skips |
| 29 | + cleanly when already done, so `help` after a half-finished first run continues |
| 30 | + where it left off, and `help` on a healthy instance degenerates to the status |
| 31 | + summary. |
| 32 | +- **Escalate, don't improvise, on policy.** Stages that touch permissioned |
| 33 | + surfaces (watch-set widening, the ferry, identity switches) are *described* |
| 34 | + but never *performed* in the tutorial; route to the maintainer-authorization |
| 35 | + paths that govern them rather than acting. |
| 36 | + |
| 37 | +## The stages |
| 38 | + |
| 39 | +1. **Welcome.** One paragraph on what the garden is and what the tutorial will |
| 40 | + do, ending with "shall we?". No page — it is this framing. |
| 41 | + |
| 42 | +2. **Identity → [identity.md](identity.md).** Confirm we are in-container (the |
| 43 | + guard already ran), read `.garden`, and ask the one question only the human |
| 44 | + can answer: is this name unique among your running instances? On a collision, |
| 45 | + offer the rename and run it on approval. |
| 46 | + |
| 47 | +3. **Bot credentials → [auth.md](auth.md).** Probe `gh auth status` and `.ssh/`. |
| 48 | + For missing pieces: generate the bot ssh key, print the public half and wait |
| 49 | + while the human adds it to the **bot** account, run `gh auth login` and relay |
| 50 | + the device code. Verify by whoami-ing the `gh` wrapper. |
| 51 | + |
| 52 | +4. **Starting the garden → [first-job.md](first-job.md) for the board, and the |
| 53 | + command-level substance in `../operations/starting.md`.** The conversational |
| 54 | + pivot: on **start the garden** the liaison performs the whole bring-up itself |
| 55 | + — linger, install and enable units, size the pool, designate the leader on a |
| 56 | + first host, arm its own Monitors, offer the optional armings — asking before |
| 57 | + each consequential step and verifying after. The commands live in |
| 58 | + `../operations/starting.md` (agent-facing detail the liaison executes on |
| 59 | + demand), deliberately **not** here: this stage stays a conversation. |
| 60 | + |
| 61 | +5. **First job → [first-job.md](first-job.md).** Offer to post a small real job, |
| 62 | + watch it cross `todo/ → doin/ → tada/`, and read the report back — teaching |
| 63 | + the board's shape and the core verbs. |
| 64 | + |
| 65 | +6. **Where to go next.** Point at `help <topic>` (the `../operations/` tree), |
| 66 | + the control surfaces, and the README's conceptual §§ 2–3 for the architecture |
| 67 | + tour. No page — it is this handoff. |
| 68 | + |
| 69 | +## Children (stage pages) |
| 70 | + |
| 71 | +- **[identity.md](identity.md)** — the `GARDEN` shard identity: the `.garden` |
| 72 | + file as the one naming knob, the `GARDEN=… ./garden` convenience form, the |
| 73 | + uniqueness requirement, and the rename / parallel-pool moves. |
| 74 | +- **[auth.md](auth.md)** — the three credentials (claude login or API key, bot |
| 75 | + ssh key, bot gh token): probes, the liaison-run halves, the human-only browser |
| 76 | + clicks, and the conservative non-bypass launch variant. |
| 77 | +- **[first-job.md](first-job.md)** — posting a first job, the board's states, |
| 78 | + and the core verbs with pointers to the vocabulary table. |
0 commit comments