Blacksite/.agents/skills/blacksite-native-qa/references/scenario-format.md
Rbanh 53dc1e44d8
Some checks are pending
CI / Format, lint, test, build (push) Waiting to run
feat: add production UI gallery and inspector system
2026-07-18 12:05:26 -04:00

2.1 KiB

Named native scenario format

Scenario files use these top-level fields:

name:
purpose:
preconditions:
build_lane:
package:
binary:
fixture:
steps:
assertions:
evidence:
cleanup:
invalidates:

package and binary are optional and default to editor. Focused tools such as the UI gallery can therefore use the same exact-window evidence and cleanup workflow without launching a project.

Keep steps deterministic and phrased as user actions. Assertions describe visible behavior, state transitions, persistence, and failure recovery. Evidence names the target window/crop and expected files. Cleanup must identify every spawned process and fixture mutation.

The runner exposes the scenario instead of pretending manual interactions are automated:

bash scripts/codex/native_qa.sh plan <scenario>
bash scripts/codex/native_qa.sh launch <scenario>
bash scripts/codex/native_qa.sh attach <scenario> <existing-editor-pid>
bash scripts/codex/native_qa.sh capture <scenario> <runner-pid>
bash scripts/codex/native_qa.sh record <scenario> <assertion-index> pass|fail [note]
bash scripts/codex/native_qa.sh status <scenario>
bash scripts/codex/native_qa.sh close <scenario> <runner-pid>
bash scripts/codex/native_qa.sh restore <scenario> --dry-run
bash scripts/codex/native_qa.sh restore <scenario> --apply

launch snapshots a workspace-contained regular-file fixture before the editor starts; attach does the same while reusing an existing editor and never closes that user-owned process. restore --apply prints and flushes the baseline/current hash plan, refuses to run while the recorded process is alive, validates the snapshot hash, and restores atomically. A scenario is accepted only when all named assertions are recorded as passing and the required evidence exists; visual interaction remains user-controlled unless explicitly delegated.

Recurring scenario families include Content Browser item/empty-space menus, multi-selection, destination-first import, move/reference repair, duplicate/undo/derived cleanup, material-slot assignment/inheritance, DefaultGrid Forward/Solari, and package launch.