The contract for asking another service what work has been performed on one item: the work-order record shape, and the parse rules that return a three-state observation so an unreachable feed reads as undetermined and never as an item with no work orders.
| Tier | domain |
| Role | capability |
| Path | crates/domain/work-order-feed |
(Written by hand at sprint 4.88. Every other crate README in this repository is rendered by `tools-corpus corpus readme --write`, which could not run at this commit — `tools-corpus` does not build while `operations-control-plane` is mid-edit in another session. Re-render this file when it builds; the generator is the source of truth for the shape of this page.)
What it is for
A repair shop, a refurbishment bench and a cobbler all answer the same question about an item they were handed: what was wrong with it, what was done, and the state it was left in. That record is a work order (EN 13306). This crate is the contract for fetching one item's work orders across a service boundary — the record shape, the request, and the parse rules.
What is not here
- No HTTP. A transport fetches;
parse_work_ordersreads. The split
follows domain-domain-survey::rdap: the false readings come from the parse rules, and the parse rules are worth testing without a network.
- No party. A work order is about an item. Who brought it in belongs on the
encounter — domain-encounters, which Gate 0.5 names among the types never to reinvent. One encounter may carry several items, and one item may be worked on across several encounters.
- No three-state observation of its own. That is
domain-research-intel::observed, reused.
The distinction this crate exists for
An unreachable feed and an item that was never repaired are different answers.
Ok(Some(orders)) the feed answered, and named these work orders
Ok(None) the feed answered, and this item has no work orders
Err(Unknown) the feed did not answer; nothing is known about the item
Ok(None) is reachable only through an EmptySuccess witness, which a failure cannot mint. A stopped endpoint therefore cannot be written down as a clean repair history — by construction, not by convention.
Tests
Seventeen, each named for the defect it prevents. The acceptance criterion the crate was built for (sprint 4.88, AC 4.88.2) is tests/unavailable_is_not_empty.rs.