← ClaudeAtlas

test-t3-applisted

Launch, retain, and test the Kata Code web app in isolated development environments, including first-try browser authentication with one-time pairing URLs, pairing-token recovery, worktree-safe state directories, cross-turn dev server lifecycle, and direct SQLite inspection or fixture seeding. Use when an agent needs to run T3 locally, iteratively test UI behavior with a human, recover from an expired or consumed pairing token, isolate dev state, or prepare test data in state.sqlite.
gannonh/kata-code · ★ 1 · Testing & QA · score 67
Install: claude install-skill gannonh/kata-code
# Test T3 App Use this skill for the web client. For iOS Simulator, Android Emulator, or physical-device testing against an isolated T3 backend, use the sibling [`test-t3-mobile`](../test-t3-mobile/SKILL.md) skill. ## Start an isolated web environment 1. Run commands from the repository root. 2. Choose a base directory that belongs only to the current worktree or test: - Use the repository's ignored `.katacode` directory for reusable worktree-local state. - Use `mktemp -d /tmp/t3code-test.XXXXXX` for disposable state and retain the printed absolute path. 3. Start the full web stack with `vp run dev`. Add `--share` when the user needs to open it from another tailnet device. In a linked worktree it defaults to that worktree's gitignored `.katacode`; pass `--home-dir <base-dir>` only when the test needs a different isolated directory. 4. Keep the terminal session alive and read the selected server port, web port, base directory, and pairing URL from its output. Treat a base directory as disposable only when it was created or deliberately selected for the current test. Never delete or directly seed the shared `~/.katacode` directory. Prefer starting with a new temporary base directory over clearing state of uncertain ownership. The worktree-local default deliberately outranks an ambient `KATACODE_HOME`; do not pass the shared home through to a worktree dev server. Ports are derived from the worktree path but can shift when occupied. Always read the actual values from