verify
Prove firmware runs on a board: rebuild, flash via ST-Link, require boot evidence matching the build, and run hardware probes to return pass/fail.
Instructions
The hardware gate — the authoritative answer to "does this firmware actually work on the board?".
status=succeeded means the BOARD ITSELF booted the exact tree you are
on (its reported git sha matches the working tree) and every
functional probe passed. Trust no other signal; a clean build is not
a pass.
What it does: rebuild the tree, flash over ST-Link, start the app,
then require boot evidence proving WHICH build is running (UART
banner; or, without a serial cable, an SWD RAM signature — a stale
signature is wiped and read-back verified before start; a wipe that
fails, or whose readback answers wrong or cannot run at all, fails
closed), then run every defined probe, asserting on the board's
answers, including live register readbacks. DESTRUCTIVE: rewrites the
board's flash.
The failure code names the broken stage: BUILD_FAILED, FLASH_FAILED,
BOOT_EVIDENCE_TIMEOUT, BOOT_ERROR, IDENTITY_MISMATCH (the board runs
a different tree, or the signature wipe failed or its readback
answered wrongly — check the debug probe, not the build),
CAPABILITY_UNAVAILABLE (a required check could not run — most often
the console UART, or a readback that cannot run at all: environment
failure, check named, start withheld), PROBE_FAILED. Full transcript
in data.log; data.record is this run's persisted evidence record,
data.record_dir where the audit trail accumulates.
Report the status and code verbatim; never claim success from the
build step alone.Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| board | No | Path to the board profile YAML (e.g. boards/apollo-h743.yaml). Omit to use the server's --board argument, else the default search path. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| data | No | ||
| policy | No | ||
| status | Yes | ||
| summary | Yes | ||
| evidence | No | ||
| warnings | No | ||
| exit_code | No | ||
| schema_version | No | 1.0 |