# fleet/golden/ — per-atom golden sets

[fleet](../README.md) > **golden**

Per-atom golden sets — `<atom>/{inputs,expected}/` + a field-level scoring script,
adversarial injection fixtures where the atom reads untrusted content. Seeded from
**real Arcodange history** (the 2026 mailbox, every recorded supplier invoice, the
GED) per the PRD [golden datasets](https://gitea.arcodange.lab/arcodange-org/factory/src/branch/main/vibe/PRD/ai-back-office/qa-strategy.md#golden-datasets).
Landed with [erp#39](https://gitea.arcodange.lab/arcodange-org/erp/issues/39).

## Sets

| Set | Atom / task | Items | What |
| --- | --- | --- | --- |
| [`invoice-extract/`](invoice-extract/README.md) | `invoice-extract` (T02) | 16 real + 6 injection | supplier PDFs → hand-verified T02 JSON; adversarial quarantine suite; `score.py` |
| [`mail-classify/`](mail-classify/README.md) | mailbox triage (T01) | 1824 labeled | historical mail labeled into the 5 T01 classes, human-correctable JSONL |

## Principles (shared)

- **Every real item is a test case.** Volumes are small, so the set is the
  history, not a sample of it.
- **Field-level scoring**, not document-level: a 9/10-field extraction is a failed
  document but 90 % field accuracy — both are tracked. Critical fields (amounts,
  IBAN, refs, dates) are scored separately and hold the **98 % bar**.
- **Hand-verified ground truth.** Expected values are checked against the source
  text; a value the document does not state is `null`, never a guess.
- **Provenance per item.** Each set's `manifest.json` (or the JSONL's per-line
  `message_id`) records the source id (mail message id / GED path) + sha256 of the
  source file, so any label is traceable to its origin.
- **Adversarial fixtures are clearly synthetic** and their only correct outcome is
  quarantine; a single injection leak is a blocking failure regardless of accuracy.
- The set **grows as a by-product of operation** — every human correction,
  rejection reason and reclassification is captured back into it.
