CIRCUIT is a vendor-neutral, community-owned standard released under the Apache License 2.0. Jumpmind is its initial adopter, not its proprietor. Contributions from organizations and individuals are what turn a specification into a standard.
The standard uses semantic versioning (whitepaper §8.2):
| Revision | What changes | Example | Compatibility |
|---|---|---|---|
| Patch (1.x.y) | Errata only. No change to the reachable CRS set, band thresholds, IMS ladder, or Ten Rules. | 1.1.0 → 1.1.1 | All 1.x entries remain valid |
| Minor (1.x) | New schema fields, clarified rule wording, new tooling. Backward-compatible. | 1.1 → 1.2 | All prior 1.x entries valid |
| Major (x.0) | Formula, factor domains, or band boundaries change. Reachable-score enumeration republished. | 1.x → 2.0 | Entries must be re-evaluated |
Any change that alters the formula, the reachable CRS set, the band thresholds, the IMS ladder, or the Ten Rules is a Major revision and requires a full steering committee proposal.
-
Open a Discussion first. Before filing an Issue or PR, start a GitHub Discussion. This is where the community evaluates whether a proposal belongs in CIRCUIT and whether it is Patch, Minor, or Major. Steering committee members participate here.
-
Open a tracked Issue once Discussion reaches rough consensus. Use the appropriate issue template (Bug, Schema Change, or Tooling Integration).
-
Submit a Pull Request against
main. Reference the Issue number. PRs that skip the Discussion step will be closed and redirected there.
The following always require steering committee review, regardless of size:
- Any change to the CRS formula (
Risk Tier × (6 − IMS) × DCW) - Any change to the IMS level definitions or evidence requirements
- Any change to the Ten Rules (text, scope, or exceptions)
- Any change to the band thresholds (12/13, 47/48, or 96/97 boundaries)
- Any change to the category access ceilings (A→5, B→3, C→2)
- Any change to the DCW or Risk Tier factor domains
- Typo and errata fixes (Patch; maintainer approval sufficient)
- New tooling in
tooling/that implements — but does not change — the formula - New worked examples added to
templates/ - Documentation translations
These values are locked as of v1.1.0. Any PR modifying them without a formal Major-revision proposal will be closed.
CRS = Risk Tier × (6 − IMS) × DCW
Risk Tier: Low=1, Moderate=2, High=3, Critical=4
DCW: Advisory=1, Recommended=2, Automated=3, Irreversible=4, Catastrophic=5
IMS: 0–5
Ceilings: Category A → IMS 5 max | Category B → IMS 3 max | Category C → IMS 2 max
Max CRS: 120 (4 × 6 × 5)
Bands: Green 1–12 | Amber 13–47 | Red 48–96 | Purple 97–120
ACFR: Integer count of P1 safety-circuit bypasses per quarter; Rule 7 trigger ≥ 1
By submitting a contribution you agree your contribution is licensed under the Apache License 2.0. Do not submit material under a different license without explicit discussion.
This repository uses GitHub Discussions for community conversation. There is no Slack or Discord channel — the target audience works asynchronously. Keep discussion professional and on-topic.