← ClaudeAtlas

tabletoplisted

Use when the user wants a use case walked end to end the way a user lives it — narrate the journey as the persona, execute every read-only or dry-run step, compare what the docs promise against what actually happens, and record the disagreements as owned findings. Evidence only; never changes the repo.
LucaDominici/arbiter · ★ 0 · AI & Automation · score 72
Install: claude install-skill LucaDominici/arbiter
# Tabletop (use-case exercise) **Goal:** walk one concrete journey the way a user lives it and record every point where the documentation, the CLI, a hook, a gate or CI disagree. Tests assert expectations someone already had; a tabletop walks the composition and asks, at each step, whether what the doc says matches what happens. **Input:** a scenario slug from `docs/internal/METHOD/TABLETOP-SCENARIOS.md`, or a free-text use case — slugify it (`^[a-z0-9]+(-[a-z0-9]+)*$`) and supply the five fields yourself. **Evidence only.** A tabletop never modifies the repository: no edits, no commits, no generated files, no `--fix`, no issue opened mid-walk. A step that would write is executed as `--dry-run` or described and left unrun. --- ## Step 1 — Open the scenario State, before walking: **persona**, **starting state**, **goal**, **the docs the user would read** (real paths), **the exit criterion**. Pin the tree: `git rev-parse HEAD`. ## Step 2 — Walk the journey in character Narrate each step in the first person as the persona — what they want, what they type, what they see. At every step do all three: - **(a) Execute** what is safely executable read-only or dry-run: `arbiter <cmd> --dry-run`, `<cmd> --help`, rendering a template with the project's config, reading the doc the user would read, running an existing check. Never a mutating command. - **(b) State the promise** — quote what the documentation says happens here, with `path:line`. - **(c) Record observed vs pro