Skip to content

Sizing note: the "once per Corpus" Curation artifacts

Produced: 2026-09-10, resolving issues/08-size-the-once-per-corpus-bucket.mdStatus: input to an owner decision, not a ruling. Declares no ids.

The question this was asked

D-58 measures Curation at half a day to a full day per document and D-59 calls that a floor. ADR-0028 concludes that corpus size is the schedule. Five artifacts have since accumulated that were each described as costing something once per Corpus — outside that per-document figure and outside corpus size. Nobody had added them up.

The headline finding: the label is wrong for three of the five

The bucket was supposed to be a cost that does not scale with the number of documents. Reading each artifact's own definition, only two of the five actually behave that way.

ArtifactRulingScales with corpus size?
Escalation Trigger phrase listD-70No. Thai and English phrases for emergencies. Independent of which chemicals are held.
Curated EscalationD-95, D-98No. Three acts, site-specific, shipped with the app shell. Once per site.
Routing ThresholdD-67Recurring. One number, but calibrated against retrieval over this Corpus. Adding documents shifts the score distribution, so it needs revalidation per sync — not re-authoring, but not free either.
Curated Explanation glossaryD-90Partly. Core GHS vocabulary is shared across all documents; product-specific terms arrive with each new document.
Routing FixtureD-71, D-102Yes, directly. Its mandatory negative cases are about Corpus contents: a chemical outside the Corpus, a question the SDS never answers, a chemical name held by two supplier records. More documents means more chemicals, more collisions, more questions the fixture must cover to remain meaningful.

So ADR-0028's ruling is more true than the bucket suggested, not less. The reason to look at this was a suspicion that "corpus size is the schedule" no longer covered the whole cost. It turns out most of the bucket is corpus-size cost that was filed under a label implying otherwise.

Two artifacts are genuinely fixed. Those two are also the two that must exist before the app can show an emergency flow at all.

What each artifact contains

Escalation Trigger — a phrase list in Thai and English matched in the browser. D-100 made it an accelerator rather than a path, so its list being incomplete costs a tap rather than the call. That ruling also bounds this artifact's cost: it never needs to be exhaustive, which is the property that would have made it unbounded.

Curated Escalation — the escalation acts themselves: call 1669, evacuate, seek medical attention. Closed set by D-95. Site-specific, because evacuate-and-call is The Plant's procedure. Needs a named reviewer, and D-95 makes the name the point of the artifact.

Routing Threshold — a single confidence floor, fixed at Curation. The work is not writing a number but establishing one that holds, which means running questions against the Corpus and looking at where the answers stop being right.

Curated Explanation glossary — plain-language explanations of terms a Handler will not know. Bounded in its core: GHS vocabulary is finite and shared. Unbounded at its edge: each document may introduce terms of its own.

Routing Fixture — questions paired with exact outcomes, including the negative cases above and the three adversarial-intent cases D-102 added.

Who does the work, which is a separate constraint

Two of the five need someone the project does not employ:

  • Curated Escalation needs a site authority — evacuate-and-call is The Plant's procedure, and D-95 requires a named reviewer who can stand behind it.
  • Escalation Trigger needs someone who knows how Handlers actually phrase an emergency, in Thai, on that floor.

The other three are curator work. This matters more than the hours: the two site-dependent artifacts are gated on the same access as the binder and the Study Area, so they belong with those blockers rather than in a schedule the project controls.

Why this note states no hours

D-58's figure exists because a two-document spike was run and timed. No equivalent spike has been run for any artifact here, and D-30's discipline forbids inventing a number the spec has no basis for — a figure with no measurement behind it would be quoted back later as though it had one, which is exactly what happened to jsqr.

What a measurement would take, if the owner wants one: draft the Curated Escalation and the Escalation Trigger for a single area and time it, since those two are fixed costs and are on the critical path for emergency flows. The three that scale should be measured per document and folded into D-58's figure rather than sized separately — which is the practical consequence of the headline finding.

What this changes

Nothing in ADR-0028 needs restating. Its ruling survives contact with this bucket, and the bucket turns out to be mostly the thing that ruling already governs.

What is worth recording is that "once per Corpus" was a label applied by the ADRs that introduced each artifact, one at a time, and never checked against the others. Three of the five were filed under it wrongly. That is the same mechanism as every other finding this week: each decision was correct about the thing it was deciding and inherited a classification nobody re-read.