Files
.pouch/skills/test-preflight/SKILL.md
T

2.7 KiB

name, description
name description
test-preflight Verify or prepare a mobile/integration test environment from a declared matrix: artifacts, tester bindings, HOST/PUBLIC_HOST, service probes, and fixture/cleanup contracts. Use before tester runs; it is not a deployment, build, or business-data skill.

test-preflight

Use this skill before integration or journey tests. It answers whether the declared environment can start a run and emits one YAML and one CSV evidence file. It never logs in, creates business data, builds/downloads an artifact, or deploys production.

Modes

  • verify is read-only: validate the matrix, artifact identity, binding, actual tester-node platform/device state, DNS/TCP/HTTP probes, backend probes, and fixture/cleanup declarations. It must not install, launch, or deploy.
  • prepare is side-effecting only within the test environment: call the caller-supplied deployer command contract, run the same checks, then use the tester-node command contract to install and launch the already supplied APK or IPA. It never calls a builder and refuses environment: prod.

The command is:

python3 <skill-dir>/scripts/preflight.py verify \
  --config <matrix.yaml> --yaml <preflight.yaml> --csv <preflight.csv>
python3 <skill-dir>/scripts/preflight.py prepare \
  --config <matrix.yaml> --yaml <preflight.yaml> --csv <preflight.csv>

Read references/schema.md for the input contract and references/boundaries.md before wiring a real agent-runtime/deployer adapter. The included command-contract fixture is the safe way to test remote-node behavior without pretending that this machine is a Mac or that a deployment happened.

Overall status is ready, blocked, or environment-fail:

  • blocked means a required declaration, artifact, binding, runner, fixture, cleanup contract, or authorization is absent/unsafe.
  • environment-fail means a declared environment exists but DNS/TCP/HTTP, device/toolchain, installation, launch, or deployment execution failed.
  • ready means every recorded check passed. A ready preflight permits the caller to continue with integration; this skill does not run test cases.

This project assumes the client has the required album picker, photo permission, and Chinese IME capabilities. Preflight does not probe or gate these capabilities, and does not read AUTHORIZE_ALBUM or IME_PINYIN. Their real behavior is exercised by journey cases; a failure there is a product test failure, not an environment block.

Do not treat a preflight report as a product result. A preflight failure means no client session may be created; the tester owns not-run propagation and must write one result row per selected testcase with blocked_by: [test-preflight].