HAL Status Normalisation Policy¶
This document defines the frozen canonical status contract for hardware HAL adapters. Any alias change is a contract change and must follow the evidence gate below.
Canonical status set¶
submittedqueuedrunningcompletedcancelledfailedunknown(fallback only)
Frozen alias matrix¶
Two contract tiers are enforced:
- Extended tier (Azure, Braket, qBraid, Qiskit, IonQ, Strangeworks, Pasqal, OQC, IQM, Quantinuum): full matrix below.
- Baseline tier (currently QuEra Bloqade): only completion/queue/running/ cancellation/failure aliases.
| Canonical | Accepted aliases |
|---|---|
completed |
complete, completed, success, succeeded |
running |
running, in_progress, in-progress, inprogress |
submitted |
submitted, initializing, initialising, starting, creating, created |
queued |
queued, pending |
cancelled |
cancelled, canceled, aborting, cancelling, canceling |
failed |
failed, error |
Evidence-gated alias extension rule¶
New aliases are forbidden unless all conditions hold:
- A real provider token is captured in artifact evidence (
job metadata, provider payload, or execution logs) and linked from the session report. - The alias is added to the frozen matrix tests in
tests/test_hardware_hal_status_normalisation_contract.py. - Adapter-level tests are updated for impacted backends.
- Full HAL regression (
tests/test_hardware_hal_*.py) remains green. - This policy file is updated in the same change.
Without these five conditions, reject alias additions.
Baseline-tier completion extras¶
Baseline-tier adapters may additionally accept done and finished as
completion aliases, but those aliases are not part of the extended-tier common
contract.