2.2 KiB
Integration boundaries
test-preflight is an orchestration and evidence layer. It consumes existing
skills instead of implementing their policy or storage formats.
| Boundary | Caller-supplied contract | What preflight does | What it must not do |
|---|---|---|---|
| agent-runtime | resolved tester.<name> binding: binding id, node, environment, project/path, and a node runner |
validate that the binding is explicit and route node probes through the runner | parse Orca state, invent a host, or create/reuse a terminal |
| deployer | prepare only: an argv command returning a JSON deployment receipt for environment: test |
call it once and record its receipt/status | copy Compose/Argo logic, SSH directly, or accept production |
| builder/obtain | caller-provided local artifact path (and optional remote path), hash, source commit, package/bundle identity | hash and inspect the exact file; pass it to install contract | build, guess an old artifact, or silently download/upload |
Deployer command contract
prepare requires:
deployment:
environment: test
command: [python3, /path/to/existing-deployer-adapter.py]
The command receives JSON on stdin:
{"operation":"prepare","environment":"test","project_root":"/abs/project","host":"...","public_host":"..."}
It must return { "status": "ready", "observed": "..." } (an optional
checks mapping is recorded). Non-zero/invalid output is an
environment-fail; absent command or a non-test environment is blocked.
The adapter owns deployer-specific configuration, receipts, cleanup, and
authorization.
Device contract
The node runner owns remote execution. For a local node the implementation uses
read-only adb/xcrun simctl checks in verify; prepare alone invokes
adb install/launch or simctl install/launch. For a remote node the same
operations are JSON requests to the runner. Missing xcrun on Linux, Android
unauthorized/offline, a missing device, or a failed install/start is an
environment-fail, not a product failure.
No client session is created by this skill. The runner's install and start
operations are the only device mutations, and are never called by verify.