open-standards/.github/workflows
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 9ded4f4dad
All checks were successful
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 1m24s
standards workspaces build + test / joulehook-rs (joulehook/joulehook-rs, joulehook-rs, linux) (pull_request) Successful in 32s
standards workspaces build + test / pool-rs (pool/pool-rs, pool-rs, linux) (pull_request) Successful in 33s
standards workspaces build + test / joule-ui-rs (joule-ui/joule-ui-rs, joule-ui-rs, linux) (pull_request) Successful in 35s
standards workspaces build + test / jcp-rs (jcp-conformance, jcp/jcp-rs, -p jcp-energy --features nvml, jcp-rs, linux) (pull_request) Successful in 52s
standards workspaces build + test / sense-rs (sense/sense-rs, sense-rs, linux) (pull_request) Successful in 32s
standards workspaces build + test / proof-rs (proof-conformance, proof/proof-rs, proof-rs, linux, true) (pull_request) Successful in 52s
standards workspaces build + test / arl-rs (arl/arl-rs, arl-rs, linux) (pull_request) Successful in 1m30s
standards workspaces build + test / sandbox-rs (sandbox-conformance, sandbox/sandbox-rs, -p sandbox-tee --features amd-kds,intel-pcs, sandbox-rs, linux) (pull_request) Successful in 1m5s
standards workspaces build + test / joulespec-rs (true, joulespec/joulespec-rs, true, joulespec-rs, linux) (pull_request) Successful in 1m1s
standards workspaces build + test / eoc-rs (eoc/eoc-rs, -p eoc-meter --features cuda, eoc-rs, linux) (pull_request) Successful in 2m18s
standards workspaces build + test / smart-byte-rs (smart-byte/smart-byte-rs, smart-byte-rs, linux) (pull_request) Successful in 2m6s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 6m9s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 18m6s
standards workspaces build + test / jouledesk-rs (jouledesk/jouledesk-rs, jouledesk-rs, macos) (pull_request) Successful in 25m19s
standards workspaces build + test / jouleclaw-rs (-nodebug, jouleclaw/jouleclaw-rs, -p jouleclaw-energy --features rapl,nvml, jouleclaw-rs, linux-arm64, -C target-feature=+fp16) (pull_request) Successful in 19m52s
standards workspaces build + test / aac-rs (aac-conformance, aac/aac-rs, aac-rs, linux-arm64) (pull_request) Successful in 17m38s
standards workspaces build + test / joulecontract-rs (joulecontract/joulecontract-rs, joulecontract-rs, linux-arm64, true) (pull_request) Successful in 13m6s
standards workspaces build + test / map-rs (map-conformance, map/map-rs, map-rs, linux-arm64) (pull_request) Successful in 11m39s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 23m34s
standards workspaces build + test / mesh-rs (mesh/mesh-rs, -p mesh-engine-gguf -p mesh-openai --features mesh-engine-gguf/gguf,mesh-openai/server, mesh-rs, linux-arm64) (pull_request) Successful in 10m30s
standards workspaces build + test / openpay (openpay, openpay, linux-arm64) (pull_request) Successful in 17m5s
joulespec: a producer, and the standard applied to its own implementation
v0.2 was a kernel nobody could emit into. This adds the reference producer and
then points it at the implementation it describes -- which found two defects
inspection had not.

THE PRODUCER (joulespec-cli). `joulespec harvest` reads the clauses from a
published specification document, runs each declared check, runs it again
against a counter-artifact, and emits a signed witness at the rung the
observations support. Also `verify` (a sealed receipt) and `drift` (two spec
revisions).

It refuses to confuse the three ways a run can fail to pass, which is the
whole soundness story:

  * a test that did not RUN is not a test that passed. A harness filtered to a
    name nothing matches prints "running 0 tests", reports success and exits
    zero -- the shape of every check that silently stopped checking -- so the
    count is parsed and required;
  * a counter-artifact that did not COMPILE demonstrates nothing, because the
    check never ran. Treating it as E3 evidence would manufacture
    falsifiability out of a syntax error, which is the most misleading possible
    result;
  * a counter-artifact that compiled, ran and PASSED is a finding: the check
    cannot see the thing it is about.

Exit 2 on a finding, 3 below --require-grade, so a pipeline can gate. Mutations
revert on Drop, so a panic cannot leave one in place, and the CI step asserts
the tree is clean afterwards rather than trusting that.

Three things in the manifest are declared, because they are human judgements
the standard refuses to guess: which check stands for which obligation (the
same act as formalizing a clause, SPEC 2.6), each check's anchor, and each
check's footprint -- a harness that cannot observe its own reads must not guess
(SPEC 8). Everything else is computed, including the clauses: they are PARSED
from SPEC.md 7 rather than copied into the manifest, so the manifest cannot
drift from the specification. Reword an item and its obligation address moves.
Re-wrapping a paragraph does not, because continuation lines join on one space
-- a standard that punished `fmt` would teach people to avoid it.

WHAT IT FOUND, pointed at joulespec itself (SPEC 7.1, conformance/v1/README):

  1. A check whose assertion could not fail. A footprint test narrowed to a
     SINGLE member, and on a one-element footprint `all` and `any` are the same
     function -- so mutating the conjunction left it green and the conjunction
     was never checked. A second test now covers it.
  2. Dead logic in the implementation. `applies_at` guarded on the state having
     no enumerable parts, and that guard could not change a single verdict: an
     `all` over a non-empty footprint against no parts is already false. It
     looked like care. It is gone.

A third report was a mistake in the manifest -- a counter-artifact aimed at a
branch its check never takes -- which the harvester correctly reported as a
check that cannot see its subject. Telling those two readings apart is the
operator's job; the harvester reports what it observed rather than guessing.

Every conformance item C1-C11 now reaches E3 against a counter-artifact that
made its check fail. Attestation is reported ABSENT, not independent: no work
was declared, so no implementer is known, and the standard's own rule says
absence of information about who built something is not evidence that someone
else checked it. Inventing a figure there would have been the easy lie.

TWO CONFORMANCE PACKS, and the distinction matters:

  * conformance/v1/vectors/ -- the certifiable surface the charter means.
    Fixed keys, clauses, witnesses and FIXED energy, byte-stable, regenerable
    with JOULESPEC_GEN_VECTORS=1 and asserted byte-for-byte otherwise. One
    witness of every rung the format can express, plus one bound to a
    superseded state, so an implementation that mishandles any rung or
    mishandles staleness fails the pack rather than passing it quietly. A test
    asserts that coverage, because a pack exercising one rung certifies one
    rung. Its verdict is the doctrine in miniature: two obligations well
    evidenced, one carrying only the implementer's citation, specification
    therefore E0 at A0.
  * the self-conformance receipt -- a MEASUREMENT, not a vector. Its energy
    comes from a wall clock graded Estimator, so re-running produces different
    bytes. A pack that held measured energy fixed would publish a figure nobody
    measured.

CI gains a `harvest: true` matrix flag beside `clippy: true`, running the
harvest on every change to this standard. It is the only gate that keeps the
suite's falsifiability from decaying, which is precisely what inspection missed
twice above.

cargo check/clippy/test --workspace --all-targets --locked: green, zero
warnings; harvest exits 0 with the tree clean after every mutation, on the M3
Ultra build host.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-11-01 10:02:15 -05:00
..
conformance.yml ci: thirteen WAI workflows run only when the pull request's own diff touches them 2026-10-14 03:41:49 -04:00
energy-hardware.yml wip: registry, SPEC, CHANGELOG, CI jobs, reader tests, settle and generic machine description 2026-10-22 13:49:49 -04:00
joule-code-conformance.yml Merge #483 (wai/ingest-srt-rist @b54dc94c): SRT and RIST contribution ingest, with a signed link record 2026-10-26 08:41:50 -04:00
joule-moq-remote.yml joule-moq-room: a bound on the clock's record store of a remote session, which ends the session 2026-10-26 10:43:13 -04:00
joule-moq-room.yml Bring wai mcp, wai setup-agent, Create and the room service's API into the catalogue, renamed to N3 2026-10-27 05:54:20 -04:00
joule-moq-web.yml Merge #493 (wai/messaging-calls @01f3aac1): wai.live.message and wai.live.call, conversations and calls on live rooms 2026-10-26 12:23:34 -04:00
jouleclaw-fabrics.yml jouleclaw-omni: read mmap'd GGUF bytes without assuming their alignment 2026-10-20 17:09:37 -04:00
jouleclaw-public-surface-documented.yml ci: one run per branch at a time — no workflow declared a concurrency group 2026-10-05 12:01:57 -04:00
repo-checks.yml ci: gate on cargo-audit, so an advisory has to be read rather than accumulated 2026-10-22 12:49:04 -04:00
standards-build.yml joulespec: a producer, and the standard applied to its own implementation 2026-11-01 10:02:15 -05:00
wai-app.yml CI, the browser end-to-end and docs: Create under wai-app, wai create --from and wai dev 2026-10-27 05:14:19 -04:00
wai-audit.yml wai: native sink in CI, the changelog and SPEC §5, the package README and simulator runner 2026-10-25 23:23:19 -04:00
wai-breaking.yml conformance-results: conform-result/1 in the standard, its corpus and a second verifier 2026-10-27 11:17:05 -04:00
wai-byte-equality.yml int_mlicpp gate 2: the bundle decodes through wmb1/1 to its goldens 2026-10-15 21:44:10 -04:00
wai-catalogue.yml Merge remote-tracking branch 'origin/main' into wai/fast-channel-guide 2026-10-29 22:20:18 -04:00
wai-conformance.yml Merge pull request 'receipt-ledger: tariff version 3 prices media jobs per operation and bills the work done' (#550) from wai/ledger-work-priced into main 2026-10-31 08:50:17 -04:00
wai-energy-receipts.yml CI: the quantum set rerun test skipped on the linux leg until its path is left out 2026-10-30 00:33:34 -04:00
wai-examples.yml wai-examples.yml: the browser's path marked as the file path it is (allow-name) 2026-10-28 05:34:30 -04:00
wai-fleet.yml wai.delivery.fleet in the registry, SPEC §5 and the changelog; the fleet's steps in CI 2026-10-27 15:39:52 -04:00
wai-formal-verification.yml WIV1 and WIR1 gate 7 (WIP, committed before running): the direct predictors and step leave production 2026-10-17 12:04:26 -04:00
wai-fuzz.yml wai: coverage-guided fuzzing of the reader, and the container reservations it found 2026-10-14 10:58:29 -04:00
wai-http.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-jpegai-e2e.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-key-proxy.yml wai: register key release, its CI steps, SPEC §5 and the changelog 2026-10-25 21:45:41 -04:00
wai-ledger.yml receipt-ledger: tariff version 3 prices media jobs per operation and bills the work 2026-10-30 12:17:07 -04:00
wai-neural-e2e.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-neural-gates.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-ops-differential.yml wai: D2c M7b gate 4: the networks against the direct networks, on random networks 2026-10-18 01:07:07 -04:00
wai-ops-gpu.yml Merge #448 (wai/avatar-telepresence @9804962c): wai.avatar.face 2026-10-26 08:24:55 -04:00
wai-ops-npu.yml wai-ops-npu: the bench, CI, and the corpus held to npu.jsonl 2026-10-22 07:12:32 -04:00
wai-ops.yml ci: thirteen WAI workflows run only when the pull request's own diff touches them 2026-10-14 03:41:49 -04:00
wai-pack.yml route-record: second implementation, registration, CI; the catalogue's route.verify and package doors 2026-10-29 19:20:03 -04:00
wai-quantum-cli-release.yml wai-quantum-cli release: link the Linux binaries static, not static-pie 2026-10-20 22:24:10 -04:00
wai-quantum-cli.yml wai-quantum: a model scored by the engine on a task set, and each answer counted in tokens four ways 2026-10-28 08:42:54 -04:00
wai-quantum-contract.yml wai-quantum: the library's CI leg, its smoke checks, and an adder's reference with its inputs prepared 2026-10-31 09:48:42 -04:00
wai-quantum-cuda.yml wai-quantum CI: the CUDA and OpenCL hardware jobs on a second host, an aarch64 board (linux-arm64-hw) 2026-10-31 22:05:01 -04:00
wai-quantum-dataflow.yml wai-quantum-dataflow.yml: the instruction table's line matched anywhere in a line 2026-10-28 10:58:27 -04:00
wai-quantum-desktop-release.yml wai-quantum-desktop: the update manifest served by the website, not a standing pre-release 2026-10-30 10:49:03 -04:00
wai-quantum-docs.yml wai-quantum: documentation that runs in CI, its drift fixed, an index of every page, and a changelog entry 2026-10-28 08:43:06 -04:00
wai-quantum-dsp.yml CI: the editors' job in an image with glibc 2.39, the processor's library tests on their own features, the service smoke on the reader's table 2026-10-27 21:30:57 -04:00
wai-quantum-editors.yml wai/tools/wai-quantum-editor: the debugger, in the extension and the other editors 2026-10-27 23:44:27 -04:00
wai-quantum-estimate.yml wai-quantum: resource estimation from programs, calibrated from the crate's own decoders 2026-10-27 23:44:27 -04:00
wai-quantum-formats.yml wai-quantum: other formats bounded against hostile input, in CI 2026-10-31 07:16:32 -04:00
wai-quantum-fpga.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-quantum-hip.yml wai-quantum: sparse Pauli dynamics on the GPU, with the CPU's term set, order and bits 2026-10-31 22:05:00 -04:00
wai-quantum-js-release.yml wai-quantum for JavaScript: the engine as the npm package @transaction-science/wai-quantum 0.1.0 2026-10-29 08:14:24 -04:00
wai-quantum-js.yml wai-quantum for JavaScript: the engine as the npm package @transaction-science/wai-quantum 0.1.0 2026-10-29 08:14:24 -04:00
wai-quantum-lang.yml wai quantum-conformance/qasm3: the OpenQASM 3 corpus, run natively, under wasm32-wasip2 and in the browser 2026-10-27 19:51:34 -04:00
wai-quantum-metal.yml wai-quantum: the members certified on the Mac Studio run on the Studio 2026-10-29 14:31:18 -04:00
wai-quantum-npu-cores.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-quantum-npu.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-quantum-opencl.yml wai-quantum CI: the CUDA and OpenCL hardware jobs on a second host, an aarch64 board (linux-arm64-hw) 2026-10-31 22:05:01 -04:00
wai-quantum-processors.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-quantum-pulse.yml wai-web, CI: pulse calls in the page, and the pulse layer's bits held on every platform 2026-10-30 12:05:14 -04:00
wai-quantum-py-release.yml wai and wai-quantum release workflows: the x86_64 macOS legs on the Intel Mac (macos-x86_64) 2026-10-29 11:50:15 -04:00
wai-quantum-py.yml wai-quantum-py: WAI Quantum in Python and notebooks, in-process 2026-10-27 19:51:08 -04:00
wai-quantum-qec.yml ci: error correction and mitigation, each new test required by name 2026-10-28 08:42:54 -04:00
wai-quantum-qpu.yml wai-quantum-qpu.yml: the library's pinned count is 34, with the target placement's test 2026-10-28 01:05:14 -04:00
wai-quantum-registry.yml wai-quantum engine::registry: methods, passes, noise channels and formats behind traits, the built-ins registered through them 2026-10-31 23:30:48 -04:00
wai-quantum-service.yml wai-quantum-service smoke: paced within the client's window; the agent docs for pulse and other formats together 2026-10-31 07:16:32 -04:00
wai-quantum-sme.yml wai-quantum: the members certified on the Mac Studio run on the Studio 2026-10-29 14:31:18 -04:00
wai-quantum-studio.yml quantum-studio: open QIR and jeff files through the engine 2026-10-31 07:16:32 -04:00
wai-quantum-tensor-engine.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-quantum-tensor-program.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-quantum-variational.yml wai-quantum: the library's CI leg, its smoke checks, and an adder's reference with its inputs prepared 2026-10-31 09:48:42 -04:00
wai-quantum-vector.yml CI: the avx2 leg declares the units the runner's processor has 2026-10-26 11:36:49 -04:00
wai-quantum-verdict.yml wai-quantum: the answer view layer, its codes and conformance set, and correctness records 2026-10-28 08:42:54 -04:00
wai-quantum-views.yml wai-quantum: answers drawn as they arrive in the Studio, and a correctness record kept only when asked 2026-10-28 08:42:54 -04:00
wai-quantum-webgpu.yml wai-quantum CI: the WebGPU hardware job on the aarch64 board too (linux-arm64-hw) 2026-10-31 22:05:01 -04:00
wai-release.yml wai and wai-quantum release workflows: the x86_64 macOS legs on the Intel Mac (macos-x86_64) 2026-10-29 11:50:15 -04:00
wai-sink-android.yml wai-sink-android: read a tool's output whole before searching it (#488) 2026-10-26 18:43:13 -04:00
wai-sink-swift.yml wai-sink-swift: simulator tests hosted in TestHost, in a fresh simulator, every step bounded 2026-10-26 15:35:48 -04:00
wai-sota-vectors.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-studio.yml wai-studio.yml: the macOS job named for the browsers it runs 2026-10-28 02:13:20 -04:00
wai-vector.yml ci: thirteen WAI workflows run only when the pull request's own diff touches them 2026-10-14 03:41:49 -04:00
wai-web-reach.yml ci: run each suite for what can affect it; re-runs after a merge become nightly 2026-10-19 02:49:11 -04:00
wai-web-wasm.yml wai-quantum: gradients, optimisation, VQE, QAOA and the algorithm builders on every surface 2026-10-31 09:48:42 -04:00