Meridian Field Services: instructional example, not project evidence
Who may change what, and how a rule lives: a rule change reaches code only through this catalog, never around it.
| Rule type by source | Change authority |
|---|---|
| Regulatory rules | Compliance sign-off: N. Duval |
| Contract-derived rules | The enterprise contract owner |
| Dispatch policy rules | M. Chen |
Agreed by the sponsor with N. Duval, July 10. Lifecycle: proposed → approved → active → retired, every transition dated. Volatility: union-agreement-derived rules are flagged; review at each collective-agreement renewal; structural rules carry no cadence they do not need.
One rule, one declarative statement, typed from the closed taxonomy, each with its authority and the enforcement point that implements it. Glossary terms used, never redefined.
| Id | Statement (atomic, declarative) | Type | Authority | Status | Enforced by |
|---|---|---|---|---|---|
| BR-01 | An eligible technician[1] holds the job's required certification and an active shift | definitional | Dispatch policy · M. Chen | active · Jul 10 | FR-002[2] + the suggestion filter (suggestions[3]) |
| BR-02 | A dispatcher may create assignments only within her hub | constraint | Dispatch policy · M. Chen | active · Jul 15 | Server-side (permission model[4], SR-004[5]) |
| BR-03 | An override requires a reason code | constraint · VOLATILE | Collective agreement (monitoring clauses); review at union renewal | active · Jul 15 | FR-013[2], overrides[3] |
| BR-04 | A job's response clock starts at ready and pauses during a customer-requested hold | derivation | Contract clause 9 | active · Jul 12 | FR-007[2] |
| BR-05 | When a job exceeds its response target, it enters exception review | action-enabler | Dispatch policy · M. Chen | active · Jul 12 | US-3[6] |
| BR-06 | Assignment records are retained seven years | constraint | Contract clause 14 | active · Jul 9 | The retention schedule (retention rules[7]): cited, not restated |
| BR-07 | Radio confirmation required for every assignment | constraint | Dispatch policy | RETIRED · Jul 12; superseded with the flow change (ADR-6[8]); kept with its end date | none |
Rule reduction, shown: the intake draft said "assignments require hub match and a recorded reason when overriding." That is two rules: BR-02 and BR-03, each enforceable alone.
Eligibility decision table: four interacting conditions; the prose version hid the certification-expired-plus-hub-transfer combination that the table forced into the open:
| Certification valid | Shift active | Hub match | Below job cap | → Eligible |
|---|---|---|---|---|
| yes | yes | yes | yes | yes |
| yes | yes | yes | no | no (at capacity) |
| yes | yes | no | any | no (wrong hub, mid-transfer included) |
| yes | no | any | any | no (off shift) |
| no | any | any | any | no (certification; expired counts, even mid-transfer) |
| default (any combination not matched above) | no | |||
Exact bounds citing field specs. The bound lives once, in the data model; this table binds it to a rule id and an error contract.
| Id | Bound (exact) | Cites | On violation |
|---|---|---|---|
| VR-01 | Position.lat ∈ [−90, 90] · Position.lon ∈ [−180, 180] | Position[9] | validation_failed (error registry[3]) |
| VR-02 | Position.observed_at ≤ now + 300 s | Position[9]: a business choice, flagged (decided with A. Reyes) | Reading dropped; counts toward the feed health indicator (INT-1[10]) |
| VR-03 | Assignment.reason_code ∈ the closed set | reason codes[9] | validation_failed |
| VR-04 | Job.scheduled_end > Job.scheduled_start | Cross-field predicate over named fields | validation_failed: inline field error on intake (SCR-003[11]) |
| Question | Owner | Answer by | Blocks |
|---|---|---|---|
| Does the union renewal in March change BR-03's reason-code set or only its notice text? (The volatility flag's first scheduled review; the flag exists so this question fires on schedule.) | N. Duval | Mar 1, 2027 | Nothing at pilot |