45 lines
2.2 KiB
Markdown
45 lines
2.2 KiB
Markdown
# 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:
|
|
|
|
```yaml
|
|
deployment:
|
|
environment: test
|
|
command: [python3, /path/to/existing-deployer-adapter.py]
|
|
```
|
|
|
|
The command receives JSON on stdin:
|
|
|
|
```json
|
|
{"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`.
|