Automated summary
Runs layer 5 of quokka's QA strategy: it drives the real qk binary against attached iOS/Android devices through tmux, applies deterministic verifiers, and writes a timestamped report.
Strengths
- Pass/fail comes only from deterministic predicates (exit code, regex over output or frame, golden-frame equality, JSON validity), never from the model's own judgment
- Cases whose required platform is missing are recorded as SKIP with a reason rather than failing the run
- tmux sessions are always torn down even on failure, and each case keeps its captured frame for debugging
- An optional exploratory UX pass (layer 6) is offered but stays advisory and never gates the result
Limitations
- Strict prerequisites: tmux, jq, a cargo debug build, and at least one attached device
- Tightly coupled to the quokka repo layout (tests/llm/*.yaml, tests/llm/lib/drive.sh, golden directory) and not reusable as-is elsewhere
- Does not author test cases — existing YAML files with verify/interact blocks are required
- golden_frame matching is an exact equality check, so it is brittle to any cosmetic UI change
Run it before a release, or whenever you need a reproducible pass/fail verdict on the real qk binary running on connected hardware.
For unit or component tests, or when no device is attached and no YAML case files exist.
Security analysis
CautionThe skill is not malicious: it does not exfiltrate secrets, download-and-execute remote payloads, obfuscate commands, or disable safety controls. However, it relies on shell execution, tmux automation, a repo-local driver script, and real hardware, so it should be treated as a powerful local testing tool rather than a no-execution-risk skill.
- •Requires and drives powerful local tools: cargo build, tmux, shell script tests/llm/lib/drive.sh, and connected iOS/Android devices.
- •Executes commands defined in repository YAML test cases, so the skill inherits trust in those test definitions and the drive.sh helper.
- •Writes report files under tests/llm/reports/ and interacts with live device sessions; teardown is explicitly required.
- •The optional exploratory pass suggests disruptive actions such as unplugging a device mid-command, though only when the user is present and only as advisory UX testing.
Examples
Run /qa against my connected iPhone before we cut the release.Test against the real device — run the device QA suite on the Pixel I just plugged in.Run /qa, and since this is pre-release also do the exploratory UX pass afterwards and list any UX smells.name: qa description: > Run quokka's real-device E2E layer (QA strategy layer 5): drive the real qk binary against connected iPhone/Android devices through tmux, apply deterministic verifiers, and write a report. Use when the user asks to "run /qa", "run the device QA suite", "test against the real device", or before a release. Optionally finishes with an advisory exploratory UX pass (layer 6).
/qa — real-device E2E runner
You are the driver for layer 5 of the QA strategy
(docs/superpowers/specs/2026-06-01-qa-strategy-design.md). You run the real
binary against attached hardware and decide pass/fail deterministically.
Hard rule
Pass/fail is decided ONLY by the deterministic predicates below (exit code, regex over captured text, golden-frame compare, JSON validity). You do not use your own judgment to pass or fail a case. Subjective UX judgment belongs to the optional exploratory pass at the end, which is advisory and never a gate.
Preconditions
tmuxandjqinstalled. Iftmuxis missing, stop and tell the userbrew install tmux.- A current build: run
cargo build(debugqkattarget/debug/qk). - At least one device attached. Detect platforms:
tests/llm/lib/drive.sh platforms→ printsiosand/orandroid. If empty, stop and tell the user to connect a device.
All mechanics go through tests/llm/lib/drive.sh (see its header for the
subcommands). Never reimplement the tmux dance inline.
Procedure
Read every tests/llm/*.yaml (not lib/, not golden/, not reports/). For
each case, in file order:
-
Check
requiresagainst the detected platforms.any→ at least one device present.ios/android→ that platform present.- Not met → record SKIP with the reason. Never fail on absence.
-
Run it.
- No
interactblock (non-interactive):drive.sh run <command>. The output ends with__QA_EXIT__=<code>. The captured text above that line is the output. - Has
interact(interactive TUI):drive.sh start <session> <command>(use a unique session likeqa_<id>).- For each step:
wait_for: X→drive.sh wait <session> "X" <timeout>;keys: [..]→drive.sh keys <session> <k1> <k2> .... - After the steps, capture the frame:
drive.sh capture <session>. - Send
quit_keys(defaultq) anddrive.sh stop <session>. - If
waittimes out, that is a FAIL (the TUI never reached the expected state).
- No
-
Apply every
verifypredicate against the captured output/frame: | Predicate | Check | |-----------|-------| |exit_code: N| the__QA_EXIT__value equals N | |output_matches: R| regex R matches the captured output | |frame_matches: R| regex R matches the captured frame | |frame_excludes: R| regex R does not match the frame | |json_valid: true| the captured output parses as JSON (jq . <<<output) | |golden_frame: name| the frame equalstests/llm/golden/<name>.txtexactly | A case PASSES only if every predicate holds. A case with no predicates and a clean run is a PASS but flag it as "smoke-only". -
Always tear the session down even on failure (
drive.sh stop).
Report
Write tests/llm/reports/<YYYY-MM-DD-HHMM>.md containing:
- a summary line:
N passed, M failed, K skippedand the detected platforms; - per case: id, status (PASS/FAIL/SKIP), which predicate failed (if any), and the captured frame in a fenced block (the trajectory, for debugging).
Then print the summary to the user. If anything failed, lead with the failures.
Optional: exploratory UX pass (layer 6, advisory)
Only if the user asks for it, or it is pre-release. After the deterministic suite, drive a connected device freely beyond the scripted cases — open each TUI, trigger an error path (e.g. unplug mid-command if the user is present), resize, navigate. Report UX smells ("this error doesn't say what to do", "the dashboard wraps awkwardly at 80 cols") as observations, NOT pass/fail. The user decides what becomes a ticket. Never gate a release on this pass.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/real-device-e2e-qa-runner-mrzxuojk/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/real-device-e2e-qa-runner-mrzxuojk' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/real-device-e2e-qa-runner-mrzxuojk/download' --output '.skill-downloads/real-device-e2e-qa-runner-mrzxuojk/SKILL.md.part' && mv '.skill-downloads/real-device-e2e-qa-runner-mrzxuojk/SKILL.md.part' '.skill-downloads/real-device-e2e-qa-runner-mrzxuojk/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/real-device-e2e-qa-runner-mrzxuojk/SKILL.md' && test -s '.skill-downloads/real-device-e2e-qa-runner-mrzxuojk/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/qa' && cp -R '.skill-downloads/real-device-e2e-qa-runner-mrzxuojk' '.claude/skills/qa'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/real-device-e2e-qa-runner-mrzxuojk'openskills read 'real-device-e2e-qa-runner-mrzxuojk'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/real-device-e2e-qa-runner-mrzxuojk/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
ClickHouse Performance Comparison
Testing
Evaluate ClickHouse performance test results, check PR performance changes, compare with history, and assess whether a result is actionable.
Analyze CI Performance Reports
Testing
Analyze CI performance comparison reports for a ClickHouse PR. Cross-references master history to distinguish real regressions from flaky tests.
Santa Method
Testing
Multi-agent adversarial verification with two independent reviewers. Output is checked twice and iteratively fixed until both pass before shipping.