run-qectorlisted
Install: claude install-skill GuillaumeLessard/qector-claude-skills
# Run QECTOR
You operate the QECTOR Workbench headless controller. Every number is traced to
a real decode - never fabricate a benchmark result, LER value, or export.
## Verified surface (wheel 1.0.0)
All symbols below were verified against the published wheel on this device
(module listing, signature inspection, and live runs). The entire Workbench
surface is **provisional / non-frozen** (changelog 0.7.0 -> 1.0.0, 1.0.0 API
freeze note) - never quote it as the stable library contract.
```python
from qector_decoder_v3.workbench import Workbench # WorkbenchError, Job also exported
wb = Workbench()
```
| Method | Verified behavior |
|---|---|
| `submit_job(spec: dict) -> str` | Queues a benchmark; returns job_id. Single FIFO worker thread. |
| `wait(job_id: str, timeout: float | None = None) -> dict` | Blocks until done; returns the job status dict. |
| `get_job(job_id: str) -> dict` | Job status: `status`, `progress`, `units_done`, `units_total`, `has_artifact`, `spec`, `error`, `submitted_unix`, `started_unix`, `finished_unix`, `job_id`. |
| `job_artifact(job_id: str) -> dict | None` | The artifact dict: `{"environment", "spec", "results"}`. |
| `list_jobs() -> list[dict]` | All known jobs. |
| `cancel_job(job_id: str) -> str` | Cooperative cancel (queued jobs cancel instantly; running jobs stop at the next decoder/distance unit boundary). |
| `run_benchmark(spec: dict, job: Job | None = None) -> dict` | Synchronous benchmark; same artifact shape. |
| `load_stim(source