| ID | Severity | Rule |
|---|---|---|
| SIG001 | error | Every interface.from_ref and interface.to_ref system_id resolves in components[*].id. |
| SIG003 | error | Every party_id in signal.vendor_io_mappings[*] exists in parties[*].id. |
| SIG004 | error | function.id is unique within the project. |
| SIG005 | error | signal.id is unique within the project signal registry. |
| SIG006 | error | Every connections[*].signal matches an existing signals[*].id. |
| SIG007 | error | Each component.modes[*].id is unique within the component. |
| SIG008 | error | Every function.component_id reference resolves in components[*].id. |
| SIG014 | error | A released artefact (status: released) must define contract_version and published_at. |
| SIG015 | error | connectedTo must link Port -> Port only. |
| SIG016 | error | actUpon must link Port -> Signal only. |
| SIG021 | error | If port.direction is out, both port_type and protocol must be provided. |
| SIG022 | error | Every function.modes[*] entry must exist in component.modes[*].id for that function's component_id. |
| SIG023 | error | If port.module_id is set, it must exist in component.modules[*].id for that same component. |
| SIG018 | error | Artefact lifecycle coherence: deprecated/withdrawn lifecycle states require matching metadata fields. |
| SIG019 | error | Deprecated elements must set deprecated_at and sunset_at; withdrawn elements must set replaced_by. |
| SIG020 | error | Lineage hops must reference known parties and use contiguous step numbering with matching input/output contracts. |
| SIG024 | error | If component.vendor is set, the referenced parties[*] entry must have kind equal to vendor. |
SIG007, SIG022
mode and authority checks- SIG007: a component cannot define duplicate mode IDs in its canonical mode catalog.
- SIG022: function mode references must be a subset of the selected component's canonical mode IDs.
SIG015–SIG016, SIG021
ontology checks- SIG015: validate that each
connectedToedge references valid ports on both ends. - SIG016: validate that each
actUponedge references one valid port and one valid signal. - SIG021: enforce interface completeness for outbound ports by requiring
port_typeandprotocolwhendirection=out.