visual-test
Visual Test Workflow
Iterating on visual UI changes requires a tight feedback loop: change code, build, capture screenshots, read the PNGs to verify, adjust, repeat. This skill documents the proven pattern using named pipes and stdin JSON commands.
Core Loop
- Edit the Rust UI code
cargo build- Run a shell test script that drives the app via stdin JSON
- Read the resulting PNG screenshots to visually verify
- Adjust and repeat from step 1
Named Pipe Pattern
The app reads JSON commands from stdin. To send multiple commands over time, use a named pipe with a persistent file descriptor. This is the critical technique — without it the pipe closes after the first write and the app exits.
More from johnlindquist/script-kit-next
dev-loop
Run ./dev.sh in background, monitor logs, iterate on code changes until the expected behavior is observed. Use when making changes that need runtime verification — UI behavior, protocol handling, camera capture, keyboard events. Spawns cargo-watch, tails logs, checks for expected output.
1gpui-patterns
GPUI framework patterns for Script Kit. Use when writing UI code, handling keyboard events, managing state, or working with layouts. Covers layout chains, lists, themes, events, focus, and window management.
1testing-skill
A brief description of what this skill does
1script-kit-hive
Hive/beads task management for Script Kit agents. Use when working with the issue tracking system, managing beads, or coordinating agent work. Covers issue lifecycle, progress reporting, and file reservations.
1layout-inspector
Layout debugging for GPUI windows. Use when diagnosing layout bugs — missing elements, clipped content, flex sizing issues, overflow problems. Covers debug div probing, layout dump JSON protocol, computed bounds assertions, and the agentic fix-verify loop.
1script-kit-scripting
Script metadata and scriptlet bundle patterns for Script Kit. Use when writing scripts, test files, or scriptlet bundles. Covers global metadata, legacy comment-based metadata, and YAML frontmatter for bundles.
1