Invariant Rules for Contributors¶
Rule: Check Before You Write¶
Before adding any new data structure, RPC, or dependency, verify it does not violate any invariant. The Traceability → Invariant Map maps each invariant to its enforcement point.
Quick Checks¶
You want to… |
Invariant risk |
Check |
|---|---|---|
Add a shared data store |
INV-01 |
Is it local-only? |
Import a gossip/CRDT library |
INV-02 |
|
Designate a “primary” node |
INV-03 |
Not allowed |
Increase memory per segment |
INV-07 |
Does it scale with fleet size? |
Add a peer RPC |
INV-09 |
mTLS required? |
Import |
INV-10 |
|
Adding a New FI Test¶
Add or update a Go FI test under
edge/fi/with//go:build integrationwhen the scenario is runtime-behavioral.Add or update a shell FI script under
edge/ci/tests/when environment orchestration is required.Execute
make fifor the non-root suite andmake fi-rootwhen validating root-required scenarios.Confirm
/tmp/edge-fi-report/traceability.mdincludes the new case and expected invariant mapping.Update
docs/fi-catalog/matrix.mdanddocs/fi-catalog/expected-outputs.mdwith the new case and evidence path.
Evidence¶
edge/fi/fi_assurance_test.goedge/fi/fi_quota_test.goedge/fi/fi_retry_test.goedge/ci/tests/run_all.shedge/ci/tests/gen_traceability_report.shMakefile(fi,fi-root)