Agent skill · subsy
testing-tui-runtime
How to drive the ralph-tui TUI (`run`, watch mode, pause/quit paths) end-to-end in a real terminal with a fake agent and a scratch beads tracker, without AI credentials.
What it needs
About 6k tokens when loaded.
What this skill does
Runtime/E2E testing of the ralph-tui TUI Use this when a change must be proven in the real TUI (watch mode, engine status labels, pause/resume, shutdown/quit paths) rather than with unit tests. Build & run Run the built CLI (not bun run dev) so behaviour matches shipped code: Scratch tracker (never touch the repo's own .beads) Create a throwaway project dir with its own beads store and drive scenarios with bd: A fresh dir per run, not a fixed one: a reused dir carries over .beads tasks, the .ralph-tui session file, locks and guards — exactly the things most scenarios here assert on, so a Recovered stale session banner or a stale-lock prompt from the previous run reads as a finding of the build under test. The unique dir also gives the run a unique epic id, which is how you address its process (see the signal trap below). Gotchas: bd commands must be run with the scratch dir as the working directory, otherwise you get "no beads database found". With --tracker beads, the TUI requires --epic <id>; without it the TUI shows "No epics found" and interactive epic selection blocks automation. br (beads-rust) may not be installed even though AGENTS.md references it; bd works. Fake agents (no AI credentials needed) Put plugins in ~/.config/ralph-tui/plugins/agents/: echo.ts — returns echo-agent: local fake response\n<promise>COMPLETE</promise> instantly. slowecho.ts — same but sleeps ~25s in interruptible 500 ms chunks. Essential for testing quit/pause mid-iteration; an instant agent gives you no window to interrupt. Select with --agent echo / --agent slowecho. Making timing visible on screen Wrap the CLI so quit latency is provable in the recording: Typical invocation: ./runwatch.sh --watch --poll 60 --agent echo --tracker beads --epic <epic-id> --no-setup --force Use a long --poll (60s) to make a stalled pause/quit obvious, and a short one (10s) when you want auto-pickup to happen quickly. TUI keys s start · p pause/resume · q → quit dialog → y · d dashboard · r refresh. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills subsy/testing-tui-runtime