CI / Check (pull_request) Successful in 5m44s
CI / Detect Changes (pull_request) Has been skipped
CI / Deploy Agent (pull_request) Has been skipped
CI / Deploy Dashboard (pull_request) Has been skipped
CI / Deploy Docs (pull_request) Has been skipped
CI / Deploy MCP (pull_request) Has been skipped
The shared, dependency-free vocabulary the control plane and the Werkbank execution runner agree on: Job (declarative — TOML on disk, JSON on the wire), JobType (plc-provision/qemu-boot/dast/pentest), Executor (shell/docker/k8s), JobStatus lifecycle, InputRef (blob/url — the artifact resolves on the runner, never through the control plane), JobRuntime, JobCollect, and JobResult (reusing Finding/DastFinding/SbomEntry so the runner produces exactly what the control plane persists). Lives in a mongodb/axum-feature-free module so the runner can depend on compliance-core without the server stack (verified: cargo check -p compliance-core --no-default-features). Tests round-trip through JSON and parse the exact plc-provision + qemu-boot TOML from the Werkbank design doc. First story of the Werkbank epic (sharang/werkbank#1); implements sharang/werkbank#2. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>