open-standards/.github/workflows
Repository files (latest commit first)
Filename Latest commit message Latest commit date
David Charlot 4b05fd80e1
All checks were successful
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 2m15s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 1m22s
standards workspaces build + test / aac-rs (pull_request) Successful in 2m31s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 54s
standards workspaces build + test / map-rs (pull_request) Successful in 55s
standards workspaces build + test / mesh-rs (pull_request) Successful in 55s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 56s
standards workspaces build + test / openpay (pull_request) Successful in 3m4s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 4m36s
lockfiles / every Cargo.lock is current (pull_request) Successful in 40s
spec citations resolve / Code cites no section its SPEC lacks (pull_request) Successful in 4s
standards workspaces build + test / arl-rs (pull_request) Successful in 1m10s
standards workspaces build + test / eoc-rs (pull_request) Successful in 2m0s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 1m12s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m31s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 1m11s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m19s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m12s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m22s
workflow hygiene / every workflow supersedes its own queue (pull_request) Successful in 4s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 3m46s
ci: a citation to a section that does not exist is now a failure
The commit before this fixed five of them. They were written long before
anyone read them, and the one in #190 — `jcp-runtime` citing `SPEC §4.10` in
six places, with no §4.10 — survived a gate-enforcing, tested mechanism for
months. Reading the tree once finds these; reading it every time is a check.

`scripts/check-spec-refs.py` resolves every `SPEC §N` in a standard's `*.rs`
against the numbered headings of the `SPEC.md` beside it. 1454 citations
across 15 standards resolve today.

Three decisions worth stating, because each is a way the check could have been
written to find nothing:

  - Parents are not synthesised. A cited `§4` needs its own `§4` heading; a
    `§4.10` heading does not satisfy it. Otherwise a standard citing a section
    it never wrote is excused by a child it happens to have.
  - A citation resolves against the SPEC.md of its own directory. Every
    cross-standard citation in the tree today is a self-reference that names
    its standard for the reader ("JouleClaw SPEC §1.3", inside jouleclaw/), so
    this is right for all of them; the header says what to do instead if that
    ever stops being true, rather than loosening the check.
  - Sections of a `spec/*.md` subfile are not sections of `SPEC.md`.

The self-test asserts the check can fail, in the four ways that matter: an
unresolvable citation fails, both heading spellings (`## 4.` and `## §4`) are
accepted, a child heading does not satisfy its parent, and one standard's
section does not excuse another's citation. A regex that quietly stops matching
would otherwise find nothing and exit 0 — the failure mode this repo has
already met in gated and skipped tests.

The workflow carries no `paths:` filter, deliberately. The check is a second of
Python with no toolchain, and a correct filter would have to name every
standard's `**/*.rs` and every `SPEC.md`; `standards-build.yml` records that
`**`-prefixed globs do not match on this forge and that a gate which quietly
fails to fire is worse than none, since it reports nothing and that reads as
green.

This is `check-wai-section-refs.py`'s complement, not a duplicate: that one
checks WAI markdown against WAI markdown, this one checks every standard's
code against its spec.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-13 03:07:23 -04:00
..
conformance.yml ci: one run per branch at a time — no workflow declared a concurrency group 2026-10-05 12:01:57 -04:00
energy-hardware.yml ci: run the new platform-gated meter tests where their platform is 2026-10-10 18:11:22 -04:00
joule-code-conformance.yml joule-moq: receipt chains recover (P-J2, P-J3); public text by capability; the conformance gate parses its count 2026-10-06 10:39:21 -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
lockfiles.yml ci: every committed Cargo.lock is current 2026-10-12 20:16:43 -04:00
no-vanity-metrics.yml ci: touch one workflow to test that the new group supersedes its own queue 2026-10-05 12:03:07 -04:00
spec-refs.yml ci: a citation to a section that does not exist is now a failure 2026-10-13 03:07:23 -04:00
standards-build.yml Merge pull request 'joule-code: close the two gaps its conformance gate cannot see' (#210) from dcharlot/joule-code-pack-test into main 2026-10-13 02:40:36 -04:00
wai-byte-equality.yml ci: one run per branch at a time — no workflow declared a concurrency group 2026-10-05 12:01:57 -04:00
wai-conformance.yml wai-quantum 0.4.3: metered runs, placement by run, and the fabric wrapper 2026-10-12 05:25:03 -04:00
wai-energy-receipts.yml wai-quantum circuit2: sections read as I-JSON, a reject payload for every refusal, review fixes 2026-10-09 16:20:47 -04:00
wai-formal-verification.yml wai-ops proofs: the rans64 totality proof runs where its memory fits 2026-10-12 09:50:31 -04:00
wai-http.yml falsify: every mutation names the cases it must fail; receipt-surrogates reaches one 2026-10-10 01:42:38 -04:00
wai-jpegai-e2e.yml CI: the formal-verification job in shards; the scale-path golden runs where its bundle is 2026-10-10 23:27:46 -04:00
wai-neural-e2e.yml ci: one run per branch at a time — no workflow declared a concurrency group 2026-10-05 12:01:57 -04:00
wai-neural-gates.yml ci: one run per branch at a time — no workflow declared a concurrency group 2026-10-05 12:01:57 -04:00
wai-ops.yml wai-ops CI: the external sets' certificates from both certifiers 2026-10-10 10:26:38 -04:00
wai-pack.yml Merge wai/d1-record-true (with #205, #197 and main) into wai/w4-4-staged-packages 2026-10-10 17:40:02 -04:00
wai-quantum-webgpu.yml wai-quantum WebGPU member: tile review fixes 2026-10-11 23:12:21 -04:00
wai-section-refs.yml check-wai-section-refs: read wai/SECURITY.md too 2026-10-09 17:15:06 -04:00
wai-sota-vectors.yml wai-ops CI: the external sets' certificates from both certifiers 2026-10-10 10:26:38 -04:00
wai-vector.yml wai-vector: the default stroke set and the test repertoire, as WSF1 sources expanded by Annex A; the text vectors (D7-5) 2026-10-11 17:41:08 -04:00
wai-web-reach.yml wai-web reach: the record leg runs the record's own demo scripts 2026-10-11 03:44:06 -04:00
wai-web-wasm.yml ci(wai-web-wasm): the native unit-test count is 32 with the OTT grade test 2026-10-11 17:01:29 -04:00
workflow-hygiene.yml ci: workflow hygiene — restore the comment marker on the header's first prose line 2026-10-09 16:29:23 -04:00