Skip to content

suite: --bindings reports which delegated invariants repos bind - #22

Merged
csecrestjr merged 1 commit into
mainfrom
suite/bindings-report-1
Oct 14, 2026
Merged

csecrestjr merged 1 commit into
mainfrom
suite/bindings-report-1

Conversation

@csecrestjr

Copy link
Copy Markdown
Contributor

Signed-off-by: Calvin Secrest dev@calvinsecrest.com

Adds --bindings REPO [REPO ...] to jfa-conformance-suite.py.

It scans sibling repos' test files for TestInvariant__ functions (Go and JS/TS) and marks each implementation invariant they cite as BOUND — the binding P1-001 §9.14(b) defines. It does not run those tests: pass/fail stays with each repo's CI, so nothing is reported as passing (§9.15). Instrument- and document-bound citations are listed, not counted. A citation of an unregistered ID fails the run. Standard library only, offline.

The plain run is unchanged (byte-identical output), so the Conformance check and pre-push hook are unaffected. This is suite maintenance under §9.17: no registry ID, anchor or binding changes.

Against Cloudy main: 7 of 23 implementation-bound invariants bound; 20 of 27 delegated remain self-attested.
Not included: running --bindings in Janus CI (it's a required check, and a cross-repo checkout would let another repo's typo block Janus). Suggest that for Phase 3.

Noticed, not changed: CONTRIBUTING.md says twenty-five invariants are anchored; the registry now has thirty.

Signed-off-by: Calvin Secrest <dev@calvinsecrest.com>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested at 3ad6c9b (content identical to 73d97c7, tested earlier): plain run and --list byte-identical to main; --bindings ../Cloudy gives 7 of 23 bound and 20 of 27 self-attested, as described; scanned all five sibling repos; planted fixtures confirm unregistered IDs and missing paths fail the run, instrument/document IDs are listed not counted, and hyphenated and L10-vs-L1 IDs resolve correctly. DCO now green.

Follow-up (non-blocking): a commented-out JS test and a Go test file under //go:build ignore are both reported BOUND though neither ever runs. Anchoring JS_TEST to line start (^\s*, re.M) and skipping Go files whose header has //go:build ... ignore fixes both; verified it leaves the real-repo counts and the plain run unchanged.

Approved.

@csecrestjr
csecrestjr merged commit 0dabe96 into main Oct 14, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants