verifylisted
Install: claude install-skill artyomsv/quil
# Verifying quil changes
Quil is a Go client-daemon TUI. Host has no Go/make — everything runs in Docker.
## Build (dev binaries, review-fix aware)
CRLF in shell scripts breaks `./scripts/dev.sh build`; build directly:
```bash
MSYS_NO_PATHCONV=1 docker run --rm -v "$(pwd -W):/src" -v quil-gomod:/go/pkg/mod -w //src golang:1.25-alpine sh -c \
'VER=$(cat VERSION | tr -d "\r") && F="-s -w -X main.version=$VER-dev" && \
F_DEV="$F -X main.buildDevMode=true -X main.buildLogLevel=debug -X main.daemonBinary=quild-dev" && \
GOOS=windows GOARCH=amd64 go build -ldflags "$F_DEV" -o quil-dev.exe ./cmd/quil && \
GOOS=windows GOARCH=amd64 go build -ldflags "$F_DEV" -o quild-dev.exe ./cmd/quild && echo BUILD_OK'
```
Windows target needs the gitignored `internal/pty/winconpty/bins/{conpty.dll,OpenConsole.exe}`; copy them from the main checkout if absent.
## Drive the daemon surface (headless)
The full-screen TUI can't be driven headlessly here; the **daemon is a real socket surface**. Never touch the production daemon (`~/.quil`) — always dev (`.quil/` in the worktree, `QUIL_HOME` set).
Start the dev daemon in the background (it restores `.quil/workspace.json`):
```bash
QUIL_HOME="$(pwd -W)/.quil" ./quild-dev.exe --background & sleep 6
```
Observe the real spawn/resize decisions in `.quil/quild.log`. Scope to the current run — the log APPENDS, it does not rotate, so old runs' lines linger:
```bash
awk '/quild v.*starting/{f=1} f' .quil/quild.log | grep -E 'spawn: pane|r