# Calibration extract-takes corpus (v0.36.1.0 / D13' / D19)

**Privacy contract:** every page in this corpus is SYNTHETIC. None of these
pages, names, companies, funds, deals, or events refer to any real person,
organization, or transaction. They are anonymized mirrors of the structural
patterns we see in real brain pages, generated by CC during the v0.36.1.0
wave per Garry's D13' constraint ("can't you do it?" + the privacy rule from
CLAUDE.md).

CI guard `scripts/check-synthetic-corpus-privacy.sh` greps every fixture in
these directories for patterns that look like real-world specificity (dollar
amounts, named decisions, specific dates that map to private context) and
fails the build if any are found. The intent is: when a contributor adds a
new fixture, the guard catches accidental leakage.

## Structure

- `extract-takes-corpus/` — 50-page training set (stratified by genre).
  Each `.md` file is one mock brain page. The `extract-takes` prompt is
  iterated against these until F1 >= 0.85 against the labels in
  `extract-takes-corpus/labels.json`.

- `holdout/` — 10-page ground-truth holdout. The 3-model extraction
  pass does NOT see these. The labels file `holdout/labels.json` is
  authored independently by the operator. Production prompt's F1 must
  hit >= 0.8 on this holdout for the prompt to ship.

## Placeholder names (per CLAUDE.md)

- People: `alice-example`, `charlie-example`, `you`
- Companies: `acme-example`, `widget-co`
- Funds: `fund-a`, `fund-b`, `fund-c`
- Deals: `acme-seed`, `widget-series-a`
- Meetings: `meetings/2026-04-03`

## Generating the corpus

v0.36.1.0 ships with a SMALL representative corpus (~5 example pages per
genre) as proof of structure. The full 50-page corpus + 10-page holdout
is generated by the operator running:

```
gbrain calibration build-corpus --output test/fixtures/calibration/
```

(That subcommand is a v0.37 follow-up; for now the operator can add
synthetic pages by hand or via CC. The privacy CI guard catches
violations either way.)

## What this corpus IS

A stable regression set for the extract-takes prompt. Future prompt
changes get tested against it. The corpus is checked into the repo
specifically so prompt-tuning has a durable target.

## What this corpus IS NOT

Real brain content. Real names. Real outcomes. Anything that would leak
the operator's network if surfaced in public output.
