Glossary
Sandbox — a live, disposable preview environment for a single PR, deployed automatically at <branch>.sandbox.anastawfik.com by the existing Sandbox GitHub Actions workflow (.github/workflows/sandbox.yml). Torn down when the PR closes. Not new in this PR — this feature builds on it.
sandbox-shots — the host-side orchestrator this PR's new workflow step invokes (/opt/homelab/sandbox/bin/sandbox-shots). Per the PR description, it gates on whether the diff touches UI packages, runs the screenshot agent, publishes images, and posts/updates the PR comment. Lives outside this repository — see Feature breakdown.
Detached step — a workflow step that starts a background process and returns immediately rather than waiting for it to finish, so the self-hosted CI runner is freed for the next job. Used for both the existing sandbox-docs step and this PR's new sandbox-shots step.
The gate — the cheap, deterministic check (per the PR description, no AI cost) that sandbox-shots runs first: it exits immediately unless the PR's diff touches packages/clinic-web/ or packages/clinic-mobile/. Distinct from the gate job already defined in sandbox.yml (.github/workflows/sandbox.yml:50-84), which decides whether to deploy a sandbox at all — same word, two different, unrelated checks.
📸 UI changes comment — the single, self-updating PR comment the screenshot agent posts/updates with the screenshots it captured. Follows the same "find existing comment by marker, update in place, else create" pattern already used by the sandbox-URL comment (.github/workflows/sandbox.yml:453-475).
SHOTS_MOBILE — a flag (default off) gating mobile/Expo-web screenshot support in sandbox-shots. Off by default because clinic-mobile has no env-var override for its API host — see packages/clinic-mobile/src/utils/variables.js:13-18.
sandbox-qa-agent image — per the PR description, the existing container image that already runs headless Claude Code + Playwright MCP agents against sandboxes; this PR's screenshot agent reuses it rather than introducing new infrastructure.
Homelab-scope rule — referenced in the PR description as the existing convention that sandbox-owned tooling (the sandbox, sandbox-docs, sandbox-ops, and now sandbox-shots CLIs) lives on the CI runner host under /opt/homelab/sandbox, not inside the application repository. Not documented anywhere in /work/repo.