Skip to content

Validation gates

Every gate this project runs, as gates.yaml declares it. A gate is declared at Phase 0 with the phase it starts at, so a subsystem has to specify its gates one phase ahead of implementing them, and roadmap validate fails a work package in the open phase that references a gate still at status declared.

Three statuses, and the required field set widens with each:

Status Owes
declared a unique id, a first phase, and a standing flag
specified plus an assertion, what falsifies it, and its kind's fields
implemented plus a test on disk and the command the phase-exit runner calls

just gate phase-exit <phase> runs every gate in force at a phase. A gate in that set which is not implemented fails the run rather than being skipped, because the registry already promised it at the phase it starts at.

The registry (143 gates)

Gate First phase Kind Standing Status Owner
VAL-GATE-A11Y-001 P1 validation yes implemented docs/design/ui-direction.md
VAL-GATE-ABC-001 6a17 invariant no declared docs/design/back-office.md
VAL-GATE-ABSENT-SEAM-001 6a14 invariant no declared docs/design/human-sustain.md
VAL-GATE-ACT-001 P1 policy yes implemented docs/design/repo-craft.md
VAL-GATE-ADOPT-001 P5 invariant no declared docs/design/repo-craft.md
VAL-GATE-AGT-001 P2 invariant yes specified docs/design/ai-layer.md
VAL-GATE-ATP-001 6a12 invariant no declared docs/design/back-office.md
VAL-GATE-AUTON-001 P6-W4 invariant no declared docs/design/ai-layer.md
VAL-GATE-BATCH-001 P3i invariant no declared docs/design/production-quality.md
VAL-GATE-CAPA-001 6a11 invariant no declared docs/design/production-quality.md
VAL-GATE-CART-001 P3g invariant no declared docs/design/planning-supply.md
VAL-GATE-CAU-001 CAUSAL ground_truth no declared docs/design/ai-layer.md
VAL-GATE-CAU-002 CAUSAL ground_truth no declared docs/design/ai-layer.md
VAL-GATE-CBAM-001 ECON validation no declared docs/design/back-office.md
VAL-GATE-CC-001 P0 validation yes implemented CONTRIBUTING.md
VAL-GATE-CFG-001 P0 invariant yes implemented docs/design/foundations.md 5.6
VAL-GATE-CI-001 P0 policy yes implemented docs/design/repo-craft.md
VAL-GATE-CLA-001 P1 invariant yes implemented CLA.md section 7
VAL-GATE-COLD-001 P3h invariant no declared docs/design/sensor-catalog.md
VAL-GATE-CONF-001 P6-W2 invariant no declared docs/design/ai-layer.md
VAL-GATE-CONFTUT-001 P3 budget no declared docs/design/repo-craft.md
VAL-GATE-COVER-001 P6-W6 invariant no declared docs/design/roadmap.md
VAL-GATE-CV-001 P4 invariant no declared docs/design/twin-core.md
VAL-GATE-DATA-001 P6-W6 invariant no declared docs/design/foundations.md
VAL-GATE-DEMO-001 P1 budget yes implemented docs/design/repo-craft.md
VAL-GATE-DET-001 P0 invariant yes implemented docs/design/foundations.md 5.2
VAL-GATE-DET-002 P0 invariant yes implemented docs/design/foundations.md 5.2
VAL-GATE-DOC-001 P1 invariant yes implemented docs/DOCUMENTATION-STANDARD.md
VAL-GATE-DOCSITE-001 P3 policy no declared docs/design/repo-craft.md
VAL-GATE-DORA-001 6a15 invariant no declared docs/design/back-office.md
VAL-GATE-DRIFT-001 P6-W2 invariant no declared docs/design/ai-layer.md
VAL-GATE-E1-001 P2 invariant yes specified docs/design/dashboard-replay.md
VAL-GATE-ECO-001 P6-W3 invariant no declared docs/design/planning-supply.md
VAL-GATE-EDGE-001 P6-W1 invariant no declared docs/design/iot-fleet.md
VAL-GATE-EHB-001 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-EHB-002 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-EHB-003 P3 validation no declared docs/design/lss-engine.md
VAL-GATE-EHB-004 6a11 validation no declared docs/design/production-quality.md
VAL-GATE-EHB-005 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-ENG-001 P3b invariant no declared docs/design/twin-core.md
VAL-GATE-ENV-001 P0 invariant yes implemented docs/design/foundations.md 5.5
VAL-GATE-EPCIS-001 P3 validation no declared docs/design/iot-fleet.md
VAL-GATE-ERG-SEAM-001 6a10 invariant no declared docs/design/human-sustain.md
VAL-GATE-ESG-001 P6-W5 invariant no declared docs/design/back-office.md
VAL-GATE-FCST-001 P3d invariant no declared docs/design/planning-supply.md
VAL-GATE-FCST-002 P3d invariant no declared docs/design/planning-supply.md
VAL-GATE-FED-001 P6-W3 invariant no declared docs/design/planning-supply.md
VAL-GATE-FIN-001 ECON invariant no declared docs/design/back-office.md
VAL-GATE-FINOPS-001 P6-W5 invariant no declared docs/design/back-office.md
VAL-GATE-FVA-001 6a16 invariant no declared docs/design/back-office.md
VAL-GATE-GL-001 6a17 invariant no declared docs/design/back-office.md
VAL-GATE-GLEC-001 P3h validation no declared docs/design/planning-supply.md
VAL-GATE-GNN-001 P6-W2 invariant no declared docs/design/ai-layer.md
VAL-GATE-GOV-001 ECON invariant no declared docs/design/back-office.md
VAL-GATE-HEIN-001 6a10 invariant no declared docs/design/human-sustain.md
VAL-GATE-HIL-001 P6-W1 invariant no declared docs/design/iot-fleet.md
VAL-GATE-HR-001 6a14 invariant no declared docs/design/human-sustain.md
VAL-GATE-INJ-001 P3 invariant no declared docs/design/ai-layer.md
VAL-GATE-INJ-002 6a11 invariant no declared docs/design/ai-layer.md
VAL-GATE-INS-001 P6-W5 invariant no declared docs/design/back-office.md
VAL-GATE-INV-001 P3d invariant no declared docs/design/planning-supply.md
VAL-GATE-IPH-001 P0 policy yes implemented docs/design/repo-craft.md
VAL-GATE-LEDGER-001 P6-W4 invariant no declared docs/design/ai-layer.md
VAL-GATE-LIC-001 P0 policy yes implemented docs/design/repo-craft.md
VAL-GATE-MAS-001 P6-W4 invariant no declared docs/design/ai-layer.md
VAL-GATE-MEIO-001 P3h ground_truth no declared docs/design/planning-supply.md
VAL-GATE-MEIO-002 P3h validation no declared docs/design/planning-supply.md
VAL-GATE-MSA-001 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-MSA-002 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-MTB-001 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-MTB-002 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-MTB-003 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-MTLS-001 P5 invariant no declared docs/design/repo-craft.md
VAL-GATE-MULTI-001 P6-W3 invariant no declared docs/design/planning-supply.md
VAL-GATE-NETDES-001 P6-W3 invariant no declared docs/design/planning-supply.md
VAL-GATE-NIOSH-001 6a10 validation no declared docs/design/human-sustain.md
VAL-GATE-NIST-001 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-NIST-002 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-NIST-003 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-NIST-004 P3 validation no declared docs/design/lss-engine.md
VAL-GATE-NPV-001 6a17 invariant no declared docs/design/back-office.md
VAL-GATE-NTIER-001 RISK invariant no declared docs/design/planning-supply.md
VAL-GATE-OEE-001 P3i invariant no declared docs/design/production-quality.md
VAL-GATE-OPCUA-001 P5 validation no declared docs/design/iot-fleet.md
VAL-GATE-OPT-001 P3b invariant no declared docs/design/twin-core.md
VAL-GATE-ORDER-001 6a12 invariant no declared docs/design/back-office.md
VAL-GATE-OTA-001 P6-W1 invariant no declared docs/design/iot-fleet.md
VAL-GATE-OTIF-001 P3e invariant no declared docs/design/planning-supply.md
VAL-GATE-OTSEC-001 OTDRILL invariant no declared docs/design/iot-fleet.md
VAL-GATE-P2P-001 6a13 invariant no declared docs/design/back-office.md
VAL-GATE-PDM-001 P3 invariant no declared docs/design/iot-fleet.md
VAL-GATE-PERF-001 P3 budget yes declared docs/design/repo-craft.md
VAL-GATE-PERFORD-001 6a12 invariant no declared docs/design/back-office.md
VAL-GATE-PM-001 P3c ground_truth no declared docs/design/lss-engine.md
VAL-GATE-PM-002 P3c ground_truth no declared docs/design/lss-engine.md
VAL-GATE-PM-003 P3c validation no declared docs/design/lss-engine.md
VAL-GATE-PROMO-001 6a16 invariant no declared docs/design/back-office.md
VAL-GATE-PROV-001 P1 validation yes implemented docs/design/repo-craft.md
VAL-GATE-QS-001 P1 budget yes specified docs/design/repo-craft.md
VAL-GATE-RECALL-001 6a11 budget no declared docs/design/production-quality.md
VAL-GATE-RECALL-002 P6-W3 budget no declared docs/design/production-quality.md
VAL-GATE-REG-001 P0 invariant yes implemented docs/testing-policy.md
VAL-GATE-REL-001 P0 validation yes implemented docs/design/foundations.md 5.8
VAL-GATE-RELBUD-001 P1 budget yes specified docs/design/roadmap.md 7.5
VAL-GATE-RET-001 P3f invariant no declared docs/design/planning-supply.md
VAL-GATE-RF-001 P3 validation no declared docs/design/sensor-catalog.md
VAL-GATE-RF-002 P3 validation no declared docs/design/sensor-catalog.md
VAL-GATE-RL-001 P6-W2 invariant no declared docs/design/ai-layer.md
VAL-GATE-RMAP-001 P0 invariant yes implemented docs/design/roadmap.md 7.4
VAL-GATE-RNG-001 P0 invariant yes implemented docs/design/variability-and-faults.md A.7
VAL-GATE-ROST-001 ROST invariant no declared docs/design/human-sustain.md
VAL-GATE-RPO-001 6a15 invariant no declared docs/design/back-office.md
VAL-GATE-RST-001 RISK invariant no declared docs/design/planning-supply.md
VAL-GATE-RULA-001 6a10 validation no declared docs/design/human-sustain.md
VAL-GATE-RUNBOOK-001 P6-W5 invariant no declared docs/design/back-office.md
VAL-GATE-SAST-001 P1 policy yes implemented docs/design/repo-craft.md
VAL-GATE-SCH-001 P0 invariant yes implemented docs/design/foundations.md 5.5
VAL-GATE-SEC-001 P0 validation yes implemented CONTRIBUTING.md
VAL-GATE-SIM-001 P2 ground_truth no specified docs/design/lss-engine.md
VAL-GATE-SLM-001 P6-W1 invariant no declared docs/design/iot-fleet.md
VAL-GATE-SMED-001 P3i invariant no declared docs/design/production-quality.md
VAL-GATE-SNF-001 P4 invariant no declared docs/design/twin-core.md
VAL-GATE-SOE-001 SOE invariant no declared docs/design/back-office.md
VAL-GATE-SOP-001 6a16 invariant no declared docs/design/back-office.md
VAL-GATE-SOPGEN-001 P6-W4 invariant no declared docs/design/ai-layer.md
VAL-GATE-SPARK-001 P1 validation no specified docs/design/iot-fleet.md
VAL-GATE-SPARK-002 P3 validation no declared docs/design/iot-fleet.md
VAL-GATE-SPEND-001 6a13 invariant no declared docs/design/back-office.md
VAL-GATE-SUP-001 P3e invariant no declared docs/design/planning-supply.md
VAL-GATE-SURR-001 P6-W2 invariant no declared docs/design/ai-layer.md
VAL-GATE-TAR-001 ECON invariant no declared docs/design/back-office.md
VAL-GATE-TIER-001 P1 invariant yes implemented docs/design/foundations.md
VAL-GATE-VAR-001 6a17 invariant no declared docs/design/back-office.md
VAL-GATE-VLM-001 P6-W2 invariant no declared docs/design/ai-layer.md
VAL-GATE-VMI-001 P6-W3 invariant no declared docs/design/planning-supply.md
VAL-GATE-VSM-001 P3c invariant no declared docs/design/lss-engine.md
VAL-GATE-WE-001 P2 validation no specified docs/design/lss-engine.md
VAL-GATE-WEBHOOK-001 P3 invariant no declared docs/design/iot-fleet.md
VAL-GATE-WX-001 P6-W5 invariant no declared docs/design/back-office.md
VAL-GATE-XDOCK-001 P3g invariant no declared docs/design/planning-supply.md
VAL-GATE-YARD-001 P3d invariant no declared docs/design/planning-supply.md
VAL-GATE-Z14-001 6a11 validation no declared docs/design/production-quality.md
VAL-GATE-ZONE-001 6a15 invariant no declared docs/design/back-office.md

What each gate asserts

VAL-GATE-A11Y-001

Asserts. axe-core reports zero critical and zero serious violations, the demo path is completable by keyboard alone, severity is encoded by shape and by text and never by color alone, and reduced motion is honored.

Falsified by. One critical or serious axe-core violation, one demo step unreachable by keyboard, or one severity encoded by color alone.

Reference. Web Content Accessibility Guidelines 2.1, W3C recommendation, level AA. https://www.w3.org/TR/WCAG21/

Runs. just a11y, tested by packages/twinflow-dashboard/tests/test_accessibility_floor.py, packages/twinflow-dashboard/tests/browser/axe-gate.mjs.

VAL-GATE-ABC-001

Declared at 6a17, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-ABSENT-SEAM-001

Declared at 6a14, owned by docs/design/human-sustain.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-ACT-001

Asserts. Every action a workflow uses is pinned to a commit SHA, and the workflow security audit reports no finding that .github/zizmor.yml does not record a reason for.

Falsified by. One action pinned to a tag or branch, or one audit finding with no recorded reason.

Runs. uv run pytest tests/test_workflow_supply_chain.py -q, tested by tests/test_workflow_supply_chain.py.

VAL-GATE-ADOPT-001

Declared at P5, owned by docs/design/repo-craft.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-AGT-001

Asserts. From v0.3.0 onward the E27 eval suite runs at every tag, accuracy and the abstention rate are recorded in the release notes, and accuracy above the abstention threshold is at least 0.98.

Falsified by. A tag whose release notes carry no eval figures, or accuracy above the abstention threshold below 0.98.

VAL-GATE-ATP-001

Declared at 6a12, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-AUTON-001

Declared at P6-W4, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-BATCH-001

Declared at P3i, owned by docs/design/production-quality.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-CAPA-001

Declared at 6a11, owned by docs/design/production-quality.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-CART-001

Declared at P3g, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-CAU-001

Declared at CAUSAL, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-CAU-002

Declared at CAUSAL, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-CBAM-001

Declared at ECON, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-CC-001

Asserts. Every commit since the previous tag parses as a conventional commit with a type from the set scripts/hooks/commit-msg declares, and the semver bump those types imply is the bump the tag being cut makes over the previous one.

Falsified by. One commit message that does not parse, or a tag whose bump is smaller than the commit types since the previous tag make honest.

Reference. Conventional Commits 1.0.0. https://www.conventionalcommits.org/en/v1.0.0/

Runs. uv run python scripts/checks/commit-message-gate.py --all, tested by tests/test_commit_message_gate.py.

VAL-GATE-CFG-001

Asserts. Every shipped config validates and every invalid fixture produces a line-numbered error carrying a suggestion. Meta-schema conformance belongs to VAL-GATE-SCH-001, whose tests call check_schema against the $schema each registry schema names, and is not restated here: two gates claiming one check means neither is read when it moves.

Falsified by. A shipped config that fails to load, or an invalid fixture whose error carries no line number or no suggestion.

Runs. uv run pytest packages/twinflow-config/tests/test_config_validation.py -q, tested by packages/twinflow-config/tests/test_config_validation.py.

VAL-GATE-CI-001

Asserts. A GitHub Actions workflow runs lint, the type check, and the test tiers on every pull request, across the declared interpreter matrix, and one aggregate job depends on every leg so a skipped leg cannot read as a pass. Whether that aggregate job is required for merge is branch protection state, which no checkout can read; the Scorecard Branch-Protection check is what reports it.

Falsified by. A pull request that merges with no CI run, or a matrix leg named in the workflow that never executes.

Runs. uv run python scripts/checks/ci-matrix-gate.py, tested by tests/test_ci_matrix_gate.py.

VAL-GATE-CLA-001

Asserts. The contributor agreement job passes the three checks CLA.md section 7 names: the pull request author's handle is in the signatories list, every signatory line matches the published expression, and every commit carries a Signed-off-by trailer.

Falsified by. A pull request that merges having failed any of the three checks.

Runs. uv run pytest tests/test_cla_gate.py -q, tested by tests/test_cla_gate.py.

VAL-GATE-COLD-001

Declared at P3h, owned by docs/design/sensor-catalog.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-CONF-001

Declared at P6-W2, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-CONFTUT-001

Declared at P3, owned by docs/design/repo-craft.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-COVER-001

Declared at P6-W6, owned by docs/design/roadmap.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-CV-001

Declared at P4, owned by docs/design/twin-core.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-DATA-001

Declared at P6-W6, owned by docs/design/foundations.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-DEMO-001

Asserts. The ten-minute scripted demo runs headless and green in under 600 seconds, with each scripted beat asserting on an observable rather than on a sleep.

Falsified by. A run over 600 seconds, or one beat that asserts on a sleep.

Noise floor. The run-to-run standard deviation of the demo wall time over five runs on the reference runner, published beside the measured value.

Runs. just demo, tested by tests/test_demo.py.

VAL-GATE-DET-001

Asserts. Two runs at the same run seed, the same config, the same platform, and the same pinned dependency set produce byte-identical event logs, per doctrine D-05 tier one.

Falsified by. One differing byte between the two event logs.

Runs. just determinism, tested by packages/twinflow-kernel/tests/test_scenario.py, packages/twinflow-rng/tests/test_derive.py, packages/twinflow-rng/tests/test_rng_known_answers.py.

VAL-GATE-DET-002

Asserts. Two runs at the same run seed and config on different platforms produce identical business events, and every continuous field agrees within the tolerance this file carries from measured divergence. The observed maximum divergence is published on every run.

Falsified by. A business event that differs across platforms, or a continuous field outside the recorded tolerance once that tolerance exists.

Noise floor. Not yet measured. The first two-platform run sets it, and until that run exists the gate publishes divergence and asserts no bound.

Runs. uv run pytest tests/test_compare_runs.py -q, tested by tests/test_compare_runs.py.

VAL-GATE-DOC-001

Asserts. The docs link check passes, the prose gate reports zero errors, and every filled metric marker resolves to a committed artifact under artifacts/measured/ that names its tool, seed, and run id. From v0.3.0 the first three lines of README carry the E1 replay URL and exactly one metric marker resolving to a headline_metric in ops.release.tagged.v1, which is the tag the bundle and the seeded number first exist at. The docs site build is asserted by VAL-GATE-DOCSITE-001 from v0.4.0, per docs/design/roadmap.md 5.3.

Falsified by. A broken link, one prose gate finding, a number in the docs that no committed artifact produced, or from v0.3.0 an opening README that carries no replay URL or more than one metric marker.

Runs. uv run python scripts/checks/docs-gate.py, tested by tests/test_docs_gate.py.

VAL-GATE-DOCSITE-001

Declared at P3, owned by docs/design/repo-craft.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-DORA-001

Declared at 6a15, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-DRIFT-001

Declared at P6-W2, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-E1-001

Asserts. From v0.3.0 onward the E1 replay bundle is re-recorded from the code of the tag being cut, the static viewer loads it, and the bundle's agent transcript passes the grounding checker.

Falsified by. A tag that publishes a bundle recorded from earlier code, a viewer that fails to load it, or a transcript the grounding checker rejects.

VAL-GATE-ECO-001

Declared at P6-W3, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-EDGE-001

Declared at P6-W1, owned by docs/design/iot-fleet.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-EHB-001

Asserts. The center line and both control limits match every digit the handbook prints, to half a unit in the last printed place, using the published unbiasing constants, and the sample mean and sample standard deviation underneath those limits reach log relative error 13 against the StRD univariate sets. Both figures are reported, so a pass on the printed check that fails the estimator check is visible.

Falsified by. Any published digit that disagrees at the printed tolerance, or an underlying estimator below log relative error 13.

Reference. NIST/SEMATECH e-Handbook of Statistical Methods, section 6.3.2, What are Variables Control Charts?, the X-bar and R and individuals worked examples. The e-Handbook prints rounded results rather than certified ones, typically to four significant figures, which is why this gate carries two tolerances and reports both. https://www.itl.nist.gov/div898/handbook/pmc/section3/pmc32.htm

VAL-GATE-EHB-002

Asserts. Cp, Cpk, Pp, Ppk, the sigma level, and DPMO match every printed digit to half a unit in the last printed place, and the mean and standard deviation feeding each index reach log relative error 13 against StRD. Both figures are reported.

Falsified by. Any published digit that disagrees at the printed tolerance, or an underlying estimator below log relative error 13.

Reference. NIST/SEMATECH e-Handbook of Statistical Methods, section 6.1.6, What is Process Capability?, the capability worked example, which prints Cpk as 0.6667 and Cpl as 1.3333. https://www.itl.nist.gov/div898/handbook/pmc/section1/pmc16.htm

VAL-GATE-EHB-003

Declared at P3, owned by docs/design/lss-engine.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-EHB-004

Declared at 6a11, owned by docs/design/production-quality.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-EHB-005

Asserts. The EWMA statistic and its variance-adjusted limits match every printed digit to half a unit in the last printed place, and the recursion reaches log relative error 12 against a closed-form expansion of the same weights. Both figures are reported.

Falsified by. Any published digit that disagrees at the printed tolerance, or a recursion below log relative error 12 against the closed form.

Reference. NIST/SEMATECH e-Handbook of Statistical Methods, section 6.3.2.4, EWMA Control Charts, the worked EWMA example. https://www.itl.nist.gov/div898/handbook/pmc/section3/pmc324.htm

VAL-GATE-ENG-001

Declared at P3b, owned by docs/design/twin-core.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-ENV-001

Asserts. Every event carries producer_id, the sequence number is dense per (run_id, producer_id), and (sim_ts, producer_id, seq) is a total order over the log, per doctrine D-07.

Falsified by. A gap in the sequence, a duplicate, or a tie in the total order.

Runs. uv run pytest packages/twinflow-schemas/tests/test_log_invariants.py -q, tested by packages/twinflow-schemas/tests/test_log_invariants.py.

VAL-GATE-EPCIS-001

Declared at P3, owned by docs/design/iot-fleet.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-ERG-SEAM-001

Declared at 6a10, owned by docs/design/human-sustain.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-ESG-001

Declared at P6-W5, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-FCST-001

Declared at P3d, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-FCST-002

Declared at P3d, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-FED-001

Declared at P6-W3, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-FIN-001

Declared at ECON, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-FINOPS-001

Declared at P6-W5, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-FVA-001

Declared at 6a16, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-GL-001

Declared at 6a17, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-GLEC-001

Declared at P3h, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-GNN-001

Declared at P6-W2, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-GOV-001

Declared at ECON, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-HEIN-001

Declared at 6a10, owned by docs/design/human-sustain.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-HIL-001

Declared at P6-W1, owned by docs/design/iot-fleet.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-HR-001

Declared at 6a14, owned by docs/design/human-sustain.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-INJ-001

Declared at P3, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-INJ-002

Declared at 6a11, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-INS-001

Declared at P6-W5, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-INV-001

Declared at P3d, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-IPH-001

Asserts. No client name, employer name, internal document, or proprietary dataset appears anywhere in the tracked tree or in the commit history.

Falsified by. One banned term found in a tracked file or a commit message.

Runs. uv run python scripts/checks/banned-terms-gate.py --all, tested by tests/test_banned_terms_gate.py.

VAL-GATE-LEDGER-001

Declared at P6-W4, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-LIC-001

Asserts. The repository root carries a license file whose bytes match the published Apache-2.0 text, and every distributed package carries the same file and the NOTICE beside it.

Falsified by. A missing license file, or one byte different from the published text.

Reference. Apache License 2.0. https://www.apache.org/licenses/LICENSE-2.0.txt

Runs. uv run python scripts/checks/license-bytes-gate.py, tested by tests/test_license_bytes_gate.py.

VAL-GATE-MAS-001

Declared at P6-W4, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-MEIO-001

Declared at P3h, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-MEIO-002

Declared at P3h, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-MSA-001

Asserts. The full ANOVA table and the %Study Var, %Tolerance, and ndc figures match every digit the manual prints, to half a unit in the last printed place.

Falsified by. Any printed figure that disagrees at the printed tolerance.

Reference. AIAG Measurement Systems Analysis Reference Manual, 4th edition, the long-form ANOVA Gage R and R worked study, repeatability error term. The manual is sold rather than served, so the fixture encodes the study's data values only and the test docstring cites the edition and the table caption instead of reprinting the table. This repository has not retrieved the primary text and does not state its numbers as independently established fact. https://www.aiag.org/store/publications/details?ProductCode=MSA-4

VAL-GATE-MSA-002

Asserts. Both error-term results are printed side by side in the capability report, so the choice of error term is visible rather than hidden, and each matches its own source to the printed place.

Falsified by. Either result disagreeing with its source at the printed tolerance, or a report that prints one error term without the other.

Reference. AIAG Measurement Systems Analysis Reference Manual, 4th edition, Appendix A convention, operator-by-part interaction error term, cross-checked against the R package SixSigma, function ss.rr with errorTerm set to interaction, on the same data. https://www.aiag.org/store/publications/details?ProductCode=MSA-4

VAL-GATE-MTB-001

Asserts. The proportions, the center line, and the variable control limits match every printed digit to half a unit in the last printed place.

Falsified by. Any printed digit that disagrees at the printed tolerance.

Reference. Minitab p-chart documentation example. The dataset is encoded in the test suite and the docstring cites the page; nothing is redistributed in bulk. https://support.minitab.com/en-us/minitab/help-and-how-to/quality-and-process-improvement/control-charts/how-to/attributes-charts/p-chart/before-you-start/example/

VAL-GATE-MTB-002

Asserts. The category ordering matches the cited page exactly, and the cumulative percentages match every printed digit to half a unit in the last printed place.

Falsified by. A category ordering that differs from the page, or any printed digit that disagrees at the printed tolerance.

Reference. Minitab Pareto chart documentation example. The dataset is encoded in the test suite and the docstring cites the page; nothing is redistributed in bulk. https://support.minitab.com/en-us/minitab/help-and-how-to/quality-and-process-improvement/quality-tools/how-to/pareto-chart/before-you-start/example/

VAL-GATE-MTB-003

Asserts. The statistic, the degrees of freedom, the p-value, and the confidence interval match to the printed place, and the assumption checker selects the same test the cited page used.

Falsified by. Any printed digit that disagrees at the printed tolerance, or an assumption checker that selects a different test than the page.

Reference. Minitab two-sample t and Mann-Whitney documentation examples. The datasets are encoded in the test suite and the docstring cites both pages; nothing is redistributed in bulk. https://support.minitab.com/en-us/minitab/help-and-how-to/statistics/basic-statistics/how-to/2-sample-t/before-you-start/example/

VAL-GATE-MTLS-001

Declared at P5, owned by docs/design/repo-craft.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-MULTI-001

Declared at P6-W3, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-NETDES-001

Declared at P6-W3, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-NIOSH-001

Declared at 6a10, owned by docs/design/human-sustain.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-NIST-001

Asserts. Log relative error of the mean, the standard deviation, and the lag-1 autocorrelation against the certified values is at least 13 digits on every listed set except NumAcc4, where at least 10 is asserted and the shortfall is documented in the test docstring.

Falsified by. Any listed set whose log relative error falls below its stated floor.

Reference. NIST Statistical Reference Datasets, univariate summary statistics: Lottery, Lew, Mavro, Michelso, NumAcc1 to NumAcc4, and PiDigits, whose certified values are computed in multiple precision and published to 15 significant digits. https://www.itl.nist.gov/div898/strd/

VAL-GATE-NIST-002

Asserts. Log relative error of the F statistic and of the between and within mean squares is at least 10 on the low-difficulty sets and at least 8 on SmLs07 to SmLs09.

Falsified by. Any listed set whose log relative error falls below its stated floor.

Reference. NIST Statistical Reference Datasets, one-way analysis of variance: SiRstv, SmLs01 to SmLs09, and AtmWtAg. https://www.itl.nist.gov/div898/strd/

VAL-GATE-NIST-003

Asserts. Log relative error of every estimated coefficient and of the residual standard deviation is at least 7 on Filip and at least 10 on every other listed set, and the test docstring records the solver as QR or SVD.

Falsified by. Any coefficient below its floor, or a solver that reaches the estimates through the normal equations.

Reference. NIST Statistical Reference Datasets, linear regression: Norris, Pontius, NoInt1, NoInt2, Filip, Longley, and Wampler1 to Wampler5. https://www.itl.nist.gov/div898/strd/

VAL-GATE-NIST-004

Declared at P3, owned by docs/design/lss-engine.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-NPV-001

Declared at 6a17, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-NTIER-001

Declared at RISK, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-OEE-001

Declared at P3i, owned by docs/design/production-quality.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-OPCUA-001

Declared at P5, owned by docs/design/iot-fleet.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-OPT-001

Declared at P3b, owned by docs/design/twin-core.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-ORDER-001

Declared at 6a12, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-OTA-001

Declared at P6-W1, owned by docs/design/iot-fleet.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-OTIF-001

Declared at P3e, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-OTSEC-001

Declared at OTDRILL, owned by docs/design/iot-fleet.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-P2P-001

Declared at 6a13, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-PDM-001

Declared at P3, owned by docs/design/iot-fleet.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-PERF-001

Declared at P3, owned by docs/design/repo-craft.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-PERFORD-001

Declared at 6a12, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-PM-001

Declared at P3c, owned by docs/design/lss-engine.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-PM-002

Declared at P3c, owned by docs/design/lss-engine.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-PM-003

Declared at P3c, owned by docs/design/lss-engine.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-PROMO-001

Declared at 6a16, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-PROV-001

Asserts. The release workflow builds every artifact twice from a pinned SOURCE_DATE_EPOCH and compares them byte for byte, attests SLSA build provenance over each one, and reads the PEP 740 attestation back off the index before the run is called successful.

Falsified by. Two builds of one commit that differ, an artifact published with no provenance attestation, or an index that serves no attestation for a published file.

Reference. SLSA v1.0 Build Level 3, and PEP 740 index support for digital attestations. https://slsa.dev/spec/v1.0/levels

Runs. uv run pytest tests/test_workflow_supply_chain.py -q -k provenance, tested by tests/test_workflow_supply_chain.py.

VAL-GATE-QS-001

Asserts. The five-minute quickstart runs from a clean container against the published instructions in under 300 seconds on the CI reference runner, ending on a live dashboard serving non-empty state, with no network access beyond the pinned image.

Falsified by. A run over 300 seconds, a run that needs a cloud account, or a dashboard serving empty state at the end of it.

Noise floor. The run-to-run standard deviation of the quickstart wall time over five runs on the reference runner, published beside the measured value.

VAL-GATE-RECALL-001

Declared at 6a11, owned by docs/design/production-quality.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-RECALL-002

Declared at P6-W3, owned by docs/design/production-quality.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-REG-001

Asserts. Every commit since v0.1.0 whose type is fix touches at least one test file, or records a Regression-Test trailer giving at least twenty characters of reason why the defect has no test that could fail.

Falsified by. One fix commit that changes no test and carries no exemption trailer, or an exemption whose reason is shorter than the floor.

Reference. Conventional Commits 1.0.0, which defines fix as a commit that patches a bug. https://www.conventionalcommits.org/en/v1.0.0/

Runs. uv run python scripts/checks/regression-test-gate.py --range v0.1.0..HEAD, tested by tests/test_regression_test_gate.py.

VAL-GATE-REL-001

Asserts. CHANGELOG has a section for this tag, the semver bump matches the C9 policy for package APIs, REST and MCP contracts, event schemas, and facility.yaml, and the C6 compatibility table lists which recorded runs and configs this release loads.

Falsified by. A tag with no CHANGELOG section, or a bump that no C9 trigger in the same release record justifies.

Reference. Semantic Versioning 2.0.0, and Keep a Changelog 1.1.0. https://semver.org/spec/v2.0.0.html

Runs. uv run python scripts/checks/release-gate.py, tested by tests/test_release_gate.py.

VAL-GATE-RELBUD-001

Asserts. The release ritual completes inside the release wall-time budget on the pinned reference runner, and the measured duration is published on ops.release.tagged.v1 whatever it is.

Falsified by. A ritual run over the published budget on the reference runner.

Noise floor. The run-to-run standard deviation of the ritual duration over the releases cut so far, published beside the measured value.

VAL-GATE-RET-001

Declared at P3f, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-RF-001

Declared at P3, owned by docs/design/sensor-catalog.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-RF-002

Declared at P3, owned by docs/design/sensor-catalog.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-RL-001

Declared at P6-W2, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-RMAP-001

Asserts. roadmap validate, roadmap coverage, roadmap graph-lint, and roadmap drift all pass, zero requirement ids are unplaced, no issue carrying a req: label is closed as not planned, and no banned label exists in the repository.

Falsified by. An unplaced requirement id, a cycle in the work-package graph, a banned label, or a tracker state that disagrees with roadmap.yaml.

Runs. just roadmap-gate, tested by tools/roadmap/tests/test_roadmap.py, tools/roadmap/tests/test_completeness.py, tools/roadmap/tests/test_drift.py, tools/roadmap/tests/test_sync.py.

VAL-GATE-RNG-001

Asserts. Every draw in the 64-name known-answer corpus matches numpy exactly, and the corpus on disk is the corpus the generator produces, so a second language implementing A.7 has one frozen answer to meet rather than a negotiation with whatever Python does today.

Falsified by. One draw differing from the corpus, or a corpus that the generator no longer reproduces.

Reference. numpy's SeedSequence entropy mixing and the PCG64DXSM bit generator, which docs/design/variability-and-faults.md A.7 specifies the derivation against byte for byte. The registry carries this as VG-VAR-07 and foundations 7.3 states the same claim as RUST-1. https://numpy.org/doc/stable/reference/random/bit_generators/pcg64dxsm.html

Runs. uv run pytest packages/twinflow-rng/tests/test_rng_known_answers.py -q && uv run python tools/gen_rng_kat.py --check, tested by packages/twinflow-rng/tests/test_rng_known_answers.py, packages/twinflow-rng/tests/test_derive.py.

VAL-GATE-ROST-001

Declared at ROST, owned by docs/design/human-sustain.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-RPO-001

Declared at 6a15, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-RST-001

Declared at RISK, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-RULA-001

Declared at 6a10, owned by docs/design/human-sustain.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-RUNBOOK-001

Declared at P6-W5, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-SAST-001

Asserts. Static analysis runs over every language this repository ships and over its workflows, on a pull request and on a schedule, and its findings reach the repository security tab.

Falsified by. A language in the tree that no analysis covers, or a scan whose results are not published.

Runs. uv run pytest tests/test_workflow_supply_chain.py -q -k analysis, tested by tests/test_workflow_supply_chain.py.

VAL-GATE-SCH-001

Asserts. Producer and consumer contract tests pass, and the schema differ reports no field removal and no type narrowing within a major version.

Falsified by. A removed field or a narrowed type inside one major version.

Runs. uv run pytest packages/twinflow-schemas/tests/test_schema_registry.py -q, tested by packages/twinflow-schemas/tests/test_schema_registry.py.

VAL-GATE-SEC-001

Asserts. pip-audit and cargo-audit are clean or waived with an expiry date, every resolved dependency matches a row in the CONTRIBUTING.md allowlist including the MPL-2.0 row scoped to development dependencies, and the SBOM is attached to the release.

Falsified by. An unwaived advisory, a resolved dependency with no allowlist row, or a release with no SBOM attached.

Reference. The advisory database each tool names: the PyPI advisory database for pip-audit and the RustSec advisory database for cargo-audit, plus the SPDX license allowlist in CONTRIBUTING.md. https://github.com/pypa/advisory-database

Runs. uv run python scripts/checks/license-allowlist-gate.py, tested by tests/test_license_allowlist_gate.py, tests/test_workflow_supply_chain.py.

VAL-GATE-SIM-001

Asserts. The 95 percent confidence interval the engine reports for each variance component covers the injected truth in at least 91 of 100 runs, and the observed count is published whatever it is. The threshold is the exact one-sided binomial acceptance region rather than a chosen number: at n = 100 and alpha = 0.05, P(X <= 90) = 0.0282 rejects and P(X <= 91) = 0.0631 accepts, and the test docstring carries both probabilities.

Falsified by. Coverage at 90 of 100 or fewer for any variance component, or a run that does not publish its observed count.

Truth source. Repeated measures generated with injected operator variance, part variance, and repeatability, over the seed set recorded in the fixture.

Null model. An interval of the same nominal width placed at the grand mean, which covers the injected truth at chance for the variance components.

Noise floor. The seed-to-seed standard deviation of each estimated variance component, measured over the same 100 seeds and published.

VAL-GATE-SLM-001

Declared at P6-W1, owned by docs/design/iot-fleet.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-SMED-001

Declared at P3i, owned by docs/design/production-quality.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-SNF-001

Declared at P4, owned by docs/design/twin-core.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-SOE-001

Declared at SOE, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-SOP-001

Declared at 6a16, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-SOPGEN-001

Declared at P6-W4, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-SPARK-001

Asserts. The edge-node profile passes with zero failures against a device emitting NBIRTH, DBIRTH, NDATA, and NDEATH with metric aliasing.

Falsified by. One compatibility kit failure on the edge-node profile.

Reference. Eclipse Sparkplug specification version 3.0.0, dated 2022-11-16, and the Technology Compatibility Kit the Eclipse Sparkplug project publishes for it, edge node profile. https://projects.eclipse.org/projects/iot.sparkplug

VAL-GATE-SPARK-002

Declared at P3, owned by docs/design/iot-fleet.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-SPEND-001

Declared at 6a13, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-SUP-001

Declared at P3e, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-SURR-001

Declared at P6-W2, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-TAR-001

Declared at ECON, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-TIER-001

Asserts. Every package in the uv workspace appears in the RA-a layer map with its ISA-95 level, its Purdue level, its compute tier, and its latency budget filled.

Falsified by. One unfilled cell in the layer map, or one package with no row.

Runs. uv run python scripts/checks/layer-map-gate.py, tested by tests/test_layer_map_gate.py.

VAL-GATE-VAR-001

Declared at 6a17, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-VLM-001

Declared at P6-W2, owned by docs/design/ai-layer.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-VMI-001

Declared at P6-W3, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-VSM-001

Declared at P3c, owned by docs/design/lss-engine.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-WE-001

Asserts. For each of the 8 Nelson tests and each of the 4 Western Electric zone rules, a hand-constructed minimal series triggers exactly that rule and no other, and a near-miss series triggers none.

Falsified by. Any series that triggers a second rule, or a near-miss series that triggers any rule.

Reference. Two rule sets the industry routinely conflates, cited separately. Lloyd S. Nelson, The Shewhart Control Chart, Tests for Special Causes, Journal of Quality Technology 16(4), 237 to 239, October 1984, for the eight tests. The Western Electric Statistical Quality Control Handbook for the four zone rules, which this gate names as the source and does not quote, its text not having been retrieved here. https://doi.org/10.1080/00224065.1984.11978921

VAL-GATE-WEBHOOK-001

Declared at P3, owned by docs/design/iot-fleet.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-WX-001

Declared at P6-W5, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-XDOCK-001

Declared at P3g, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-YARD-001

Declared at P3d, owned by docs/design/planning-supply.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-Z14-001

Declared at 6a11, owned by docs/design/production-quality.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

VAL-GATE-ZONE-001

Declared at 6a15, owned by docs/design/back-office.md. Its assertion is specified one phase before it is implemented, which is what stops a gate being written to fit the code that was going to be written anyway.

Exit sets by phase

Derived from the registry: every gate whose first phase is this one, plus every standing gate already in force. Never authored, so the phase table and the registry cannot disagree.

Phase Gates in force
P0 14
P1 25
P2 39
P3 38
P3b 29
P3c 31
P3d 31
P3e 29
P3f 28
P3g 29
P3h 31
P3i 30
ECON 31
6a10 31
6a11 32
ROST 28
6a12 30
RISK 29
6a13 29
6a14 29
OTDRILL 28
6a15 30
CAUSAL 29
6a16 30
SOE 28
6a17 31
P4 29
P5 30
P6-W1 31
P6-W2 33
P6-W3 33
P6-W4 31
P6-W5 32
P6-W6 29