open-standards/.github/workflows
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 5a7af57afb
All checks were successful
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 7s
standards workspaces build + test / joulehook-rs (joulehook/joulehook-rs, joulehook-rs, linux) (pull_request) Successful in 45s
standards workspaces build + test / jouledesk-rs (jouledesk/jouledesk-rs, jouledesk-rs, macos) (pull_request) Successful in 59s
standards workspaces build + test / pool-rs (pool/pool-rs, pool-rs, linux) (pull_request) Successful in 1m5s
standards workspaces build + test / arl-rs (arl/arl-rs, arl-rs, linux) (pull_request) Successful in 1m16s
standards workspaces build + test / jcp-rs (jcp-conformance, jcp/jcp-rs, -p jcp-energy --features nvml, jcp-rs, linux) (pull_request) Successful in 1m19s
standards workspaces build + test / proof-rs (proof-conformance, proof/proof-rs, proof-rs, linux, true) (pull_request) Successful in 44s
standards workspaces build + test / joule-ui-rs (joule-ui/joule-ui-rs, joule-ui-rs, linux) (pull_request) Successful in 1m41s
standards workspaces build + test / sense-rs (sense/sense-rs, sense-rs, linux) (pull_request) Successful in 34s
standards workspaces build + test / joulespec-rs (true, joulespec/joulespec-rs, joulespec-rs, linux) (pull_request) Successful in 38s
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 1m9s
standards workspaces build + test / eoc-rs (eoc/eoc-rs, -p eoc-meter --features cuda, eoc-rs, linux) (pull_request) Successful in 2m24s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 2m48s
standards workspaces build + test / smart-byte-rs (smart-byte/smart-byte-rs, smart-byte-rs, linux) (pull_request) Successful in 2m11s
standards workspaces build + test / aac-rs (aac-conformance, aac/aac-rs, aac-rs, linux-arm64) (pull_request) Successful in 4m7s
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 4m10s
standards workspaces build + test / joulecontract-rs (joulecontract/joulecontract-rs, joulecontract-rs, linux-arm64, true) (pull_request) Successful in 1m6s
standards workspaces build + test / map-rs (map-conformance, map/map-rs, map-rs, linux-arm64) (pull_request) Successful in 1m9s
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 1m4s
standards workspaces build + test / openpay (openpay, openpay, linux-arm64) (pull_request) Successful in 3m37s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 6m39s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 10m31s
joulespec: a standard for energy-accounted specification conformance
Specification-driven practice converged on prose an agent interprets and a
human reads. The difficulties catalogued wherever it is examined -- specs
drifting from the code they describe, generated artifacts trusted past their
evidence, no method for checking conformance, a review burden heavy enough
that practitioners report preferring to read the code -- are measurement
problems rather than methodology ones, and they persist for one reason: the
specification is a document. A clause cannot be addressed, so nothing binds
to it; conformance is a sentence in a review, so it cannot be graded or
capped; the cost of the ceremony is an anecdote, so the argument about
whether it earns its overhead has no units.

joulespec/1 leaves the prose alone and changes what the specification is.

Addressing (SPEC 1.2, 2.1). A clause carries a label AND an obligation: the
content address of its kind and text, with the label deliberately excluded.
Evidence binds to the obligation, so renaming a clause loses no evidence
while rewording one invalidates exactly that clause's evidence. Binding by
label inverts both halves -- it survives the edit that changed the
requirement and breaks on the edit that renamed it -- which is the mechanism
by which drift goes unobserved rather than a discipline failure.

This corrects our own prior art. joule-code-spec shipped the signed,
content-addressed clause and the citation binding a coding op to it, and its
citations bind by clause LABEL with a single notion of coverage: a clause is
covered when something claims it. That is the E0 rung here.

The ladder (SPEC 2.5, 2.6), ordered by one question -- how hard would it be
for this obligation to be violated without this evidence noticing?

  E0 cited        the implementer says so; where prevailing practice lands
  E1 reviewed     a second party read the artifact, once
  E2 exercised    a named check ran and passed -- and flatters: a test with
                  no assertion passes, as does one whose fixture never
                  reaches the condition the clause cares about
  E3 falsifiable  the same check is on record FAILING against a named
                  counter-artifact: the first rung where green means
                  something, and the cheapest strong one
  E4 proved       no input violates it, under a formalization cross-checked
                  by a key other than the prover's

A proof under a merely declared formalization grades E2, not E4: it is
machine-checked evidence that the something is this clause on the prover's
word. Demotion rather than refusal -- the proof is not fake. The crate never
formalizes a clause itself, and independence is computed from key
disjointness, never read from a producer's flag: a review signed by the
citing key is the citation again.

Evaluation (SPEC 3). A specification's grade is its WEAKEST owed obligation,
absent entirely when any has no surviving evidence; averaging would let nine
proved obligations conceal one nobody looked at. Non-goals are first-class
and excluded from the cap -- an unwitnessed non-goal is correct -- while
evidence that one WAS implemented is a flag that blocks conformance however
good the rest is. Nothing is dropped quietly: an unverifiable witness, one
naming another specification, and one naming an obligation the spec does not
state are each reported, that last being the normal aftermath of a rewording.
Ties break on address, so reordering the inputs cannot change the verdict.

Drift (SPEC 4) is a partition over addresses, not a warning: kept,
relabelled (editorial, no evidence lost), reworded (that clause's evidence
invalidated), added, removed -- from which the two sets a revision review
wants fall out. A freed label reused by a new clause is an addition, not a
rewording, because the old obligation still stands. The other direction needs
no diff: a witness is bound to the artifact state it observed, so evidence
from an earlier state is stale rather than counted.

Cost (SPEC 5). Witnesses and work each carry their joules, so the receipt
seals the specified share -- how much energy went into work citing no clause,
the measured form of agents producing features nobody requested -- and
microjoules per falsifiable obligation. That denominator is deliberately the
rung whose evidence can fail: a figure per ATTEMPTED obligation rewards
ceremony, and this family's other per-unit figures count accepted tokens and
verified proofs rather than attempts. Absent where nothing reaches the bar; a
cost per unit of nothing is not a small number.

Receipts (SPEC 6) are derived from the specification, artifact, witnesses and
work -- never from a verdict handed in. A verdict is an ordinary struct, and
an interface that signed one would let a producer construct the grade it
wanted. Sealed as joulespec/1 JCR-1 (canonical det-CBOR under COSE_Sign1,
Ed25519), byte-compatible with the family verifiers. The core admits no
nulls and several figures are legitimately absent, so those keys are OMITTED
rather than zeroed: a reader finding no grade knows none was established,
where one finding E0 would believe otherwise. Each receipt carries the
per-clause audit, because which obligation is the weak one is the actionable
fact and must be answerable from the receipt alone.

CI: joulespec-rs joins the standards matrix on `linux` with a new opt-in
`clippy: true` flag that gates the workspace at zero warnings on its own
runner. Deliberately not added to the macOS lint step -- that exists for code
only a macOS host can compile, and this workspace has no Apple anything. The
flag is per-entry rather than repo-wide because several workspaces are not at
zero yet, and a gate that fails on arrival teaches people to pass
--no-verify.

The modules cite their normative sections, so check-spec-refs binds the code
to the specification mechanically -- which this standard of all of them
should do.

cargo check/clippy/test --workspace --all-targets --locked: green, zero
warnings, on the M3 Ultra build host.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-11-01 08:04:52 -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 standard for energy-accounted specification conformance 2026-11-01 08:04:52 -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