Appearance
ADR-0022: Restrictions are reconciled across the whole document, at Curation time
Status: Accepted — supersedes ADR-0015 Date: 2026-09-02
Decisions
D-44 A restriction anywhere in an SDS that bears on a displayed span must be reconciled before that span enters a Chemical Record
Scope is the whole document, not one Section. Reconciliation happens at Curation, by a human, once per document. The reconciled content — including any caveat the human attaches — is what the Corpus stores and what the runtime displays.
D-49 A cross-section detector is a Curation tool, not a runtime feature
It flags materials and entities named in a candidate span that also appear in restriction, exclusion, incompatibility or negation language elsewhere in the document. It surfaces candidates for human judgement. It never resolves them, and it never runs at display time.
D-50 Selection happens at Curation time
D-16 granted the model the power to choose which spans are shown but never said when. It is Curation. The runtime displays a curated record and makes no selection decisions.
Context
ADR-0015 hypothesised a Section 8 span reading "not compatible with nitrile" being silently dropped, and scoped its rule within a Section. The curation spike found a materially identical case in a real document, positioned exactly where that scope cannot reach (R-38):
- Doc B Section 8 (Hand Protection) recommends ถุงมือไนไตร — nitrile gloves.
- Doc B Section 7 (Storage) says ห้ามเก็บรวมกันกับ… ยางไนไตร — do not store together with nitrile rubber.
- Doc B Section 10 lists natural and synthetic rubber under Conditions to Avoid.
R-37 found zero restriction spans in Section 8 of either spike document. So a PPE card built from Section 8 alone satisfies D-26 in full, is entirely verbatim and correctly sourced, and still tells a Handler to wear nitrile. The exact failure ADR-0015 was written to prevent passes ADR-0015's own rule. Its premise was right and its mechanism was wrong.
The reason the fix is human and not mechanical: this is a tension, not a proven contradiction. A bulk-storage incompatibility is not automatically a prohibition on a splash glove, and Doc C's Section 8 calls nitrile the long-duration choice — arguably the opposite ordering. A detector can surface the conflict; only a Safety Officer can resolve it.
Curation is the right home for that judgement because it is where every other irreversible call already lives: D-11 and D-12 put translation there for the same reason, and R-35 found review already dominates the cost, so the marginal expense is small.
Rejected options
- Widen the rule to cross-section at runtime — mechanical and testable, rejected because it surfaces a storage incompatibility on a PPE card where it may mislead, and because it puts an unresolved conflict in front of a Handler mid-task who needs one answer.
- Show whole Sections, abandon selection — cannot omit anything, and reverts to the long, hard-to-read problem R-27 and R-32 exist to solve.
- Accept the gap as a documented limitation — rejected: it knowingly ships the failure ADR-0015 exists to prevent.
This ruling may not be re-decided
If a change contradicts this ADR: stop and raise it. Do not implement over it. Do not move selection or reconciliation to runtime because Curation is slow — the slowness is the human judgement, and moving it means removing it.
Coverage
| Upstream | Landed in | Evidence | Note |
|---|---|---|---|
| R-37 | D-44 | zero Section 8 restrictions is why within-section scope fails | |
| R-38 | D-44, D-49 | the Doc B Section 7 vs 8 nitrile case is worked in Context | |
| R-36 | D-50 | parsing is cheap, so Curation can afford to carry selection |