The rules detection runs at startup — the single source of truth, one entry shape per ADR-003 §2. Editing is the approval-gated write path deferred to ADR-004; this view is read-only.
▚
orders
5 rules
orders_amount_matches_crm_billing
warning
manual
cross_system_value_mismatch
field:amount
initial migration from DOMAIN_CONFIG (harness/run_poc.py)
orders_orderref_and_customer_required
high
manual
structural_not_null
fields:order_ref, customer
order_ref is the identity field; customer is required (structural axis, ADR-006)
orders_present_in_all_systems
high
manual
cross_system_missing_upstream
expected_systems:crm, billing
initial migration from DOMAIN_CONFIG (harness/run_poc.py)
orders_schema_stable
high
manual
cross_system_schema_drift
expected_fields:order_ref, amount, customer, status
initial migration from DOMAIN_CONFIG (harness/run_poc.py)
orders_status_enum
warning
manual
structural_format
field:status · pattern:^(pending|paid|shipped)$
status must be one of the known order states (structural axis, ADR-006)
▚
products
5 rules
products_present_in_all_systems
high
manual
cross_system_missing_upstream
expected_systems:a, b, c
initial migration from DOMAIN_CONFIG (harness/run_poc.py)
products_price_matches_across_systems
warning
manual
cross_system_value_mismatch
field:price
initial migration from DOMAIN_CONFIG (harness/run_poc.py)
products_schema_stable
high
manual
cross_system_schema_drift
expected_fields:sku, price, name, stock
initial migration from DOMAIN_CONFIG (harness/run_poc.py)
products_sku_and_name_required
high
manual
structural_not_null
fields:sku, name
sku is the identity field; name is required (structural axis, ADR-006)
products_stock_nonneg
warning
manual
structural_range
field:stock · min:0
stock cannot be negative (structural axis, ADR-006)