# MANIFEST — Popper Engine adversarial-rivals stage, first run

**Built:** 2026-08-06. **Protocol:** `docs/DESIGN_POPPER_RIVALS_STAGE_20260806.md`
(binding, read first). **Inputs:** the 43 registered survivors of r3-b1 (24) and
r2-edh-b1 (19) — see `docs/generated/popper_v2_rung3_registration_20260804.md`
and `docs/generated/popper_r2_edh_registration_20260806.md` respectively.

## Operator correction received mid-run

Partway through this run, the orchestrator relayed an operator correction:
**Codex is not funded right now.** Family A execution was cancelled outright —
not attempted, not test-fired against any conjecture. Before the correction
arrived, the only Codex-related action taken was locating and version-
checking the binary (see "Family A" below); no prompt was ever sent to it, so
there is no auth/billing failure to report for this run. Priority shifted, per
the correction, to: the frozen template, all 43 evidence blocks, the Grok pack
as the primary deliverable, and this manifest.

## 1. Frozen prompt template

- **File:** `PROMPT_TEMPLATE_v1.md`
- **SHA-256:** `4344aabfacfe88362c56d89b6c89d594a7bf3a221e18a16b0e351482447e512f`
- Identical wrapper for every item and every family; the only thing that
  differs per run is the evidence block spliced in at the `{{EVIDENCE_BLOCK}}`
  placeholder. Requires strict JSON output
  (`{"rivals":[...], "no_viable_rival": bool, "notes": str}`, up to 3 rivals),
  explicitly instructs that a weak invented rival is worse than declaring
  none, and withholds our pass/fail margins, other conjectures' outcomes, and
  verdict machinery — the model sees only this one item's claim, mechanism,
  training evidence, and holdout outcome.

## 2. Evidence blocks — 43/43 written

`docs/generated/popper_rivals/evidence/<id>.md`, one file per survivor,
shared by both families. 24 from r3-b1, 19 from r2-edh-b1 — see the index
below for the full id list with one-line claims. Word counts: min 194, max
403 (`r3-b1-31`, the one conjecture with a genuinely tangled holdout outcome
to explain honestly), average 260 — most sit near the ~350-word target; the
two or three longest needed the extra room to state a multi-part holdout
result without either compressing it into ambiguity or leaking adjudication
jargon.

**Sourcing discipline:** every claim, training value, and holdout value below
came from the registered docs named in the brief (r3-b1's registration +
minted_1..4.json + pinned_instruments_a/b/c.json for statements and frozen
training values; the registration doc's nine dated validation-event entries
for holdout outcomes; r2-edh-b1's pinned_blockA.json for statements/scopes,
the registration doc's VALIDATION EVENT 1 for verdicts, and
`popper_r2_edh_scoring_values_20260806.json` for the actual landed numbers).
**Zero database reads were performed** — every deciding number needed was
already present in the docs, so the "DB reads only if genuinely missing"
allowance was never invoked.

**Verified clean by direct grep, post-build** (see the build log for the
exact commands): no evidence file mentions our internal risk/adjudication
vocabulary (near-threshold, watchlist, WITHHELD, T1–T5, orchestrator,
countersign, graveyard, etc.), and no evidence file references any conjecture
ID other than its own — both required by the protocol's "no cross-
contamination between items" rule. Two early drafts used the word "margin" in
a way that could read as disclosing pass/fail closeness (`r3-b1-27`,
`r2-edh-b1-23`); both were rephrased before this manifest was written.

**Honesty note baked into the data itself:** six of the 24 r3-b1 survivors
(`r3-b1-03/04/05/06/07/09`) have never actually been tested against any
holdout — they are decided only by future non-India source landings. Their
evidence blocks say so plainly ("No holdout test has been run for this
conjecture") rather than implying a test occurred. One item (`r3-b1-31`)
survived only on the literal wording of its own kill condition while its
substantive content was contradicted by two further holdout states; its
evidence block states this plainly rather than reporting a bare "survived."
`r3-b1-18` and `r2-edh-b1-11/12` are existence-type claims that were
confirmed rather than merely not-refuted; worded accordingly.

## 3. Family A (Codex/GPT) — DEFERRED, not attempted

**Status: Family A deferred — Codex unfunded (operator, 2026-08-06).** Per
the correction relayed mid-run, no rival-minting prompt was sent to Codex for
any of the 43 items. Nothing under `docs/generated/popper_rivals/r3-b1/codex/`
or `.../r2-edh-b1/codex/` exists yet; those directories were not even
created, since there is nothing to archive into them.

What was done before the correction arrived (informational only, not an
execution attempt): the bridge binary was located and version-checked.
- Two `openai.chatgpt-*` extension directories exist under
  `~/.vscode-server/extensions/`; the newer one by both version string and
  mtime is `openai.chatgpt-26.707.31428-linux-x64` (2026-07-10), containing
  `bin/linux-x86_64/codex`.
- `codex --version` → `codex-cli 0.144.0-alpha.4`, exit 0.
- No `codex exec` invocation was run against any prompt, so no auth/billing
  error was observed for this batch. The frozen template and all 43 evidence
  files are ready to feed it unchanged whenever Family A is funded — the
  template is family-agnostic by construction (no family name appears
  anywhere inside it), so nothing needs to be rebuilt.

## 4. Family B (Grok paste-back) — PRIMARY deliverable, pack complete

- **Index/instructions file:** `GROK_PACK_20260806.md` — operator
  instructions (one fresh Grok conversation per block, save each reply
  verbatim to the matching drop folder, don't edit the frozen wrapper), a
  part-file index, and a full 43-row id/claim index table.
- **Part files (43 blocks total, each fully self-contained — template +
  that item's evidence, ready to paste with no other file open):**
  - `GROK_PACK_20260806_part1.md` — r3-b1 items 1–12 of 24 (12 blocks)
  - `GROK_PACK_20260806_part2.md` — r3-b1 items 13–24 of 24 (12 blocks)
  - `GROK_PACK_20260806_part3.md` — r2-edh-b1 items 1–10 of 19 (10 blocks)
  - `GROK_PACK_20260806_part4.md` — r2-edh-b1 items 11–19 of 19 (9 blocks)
  - Total: **43 blocks**, verified by count and by id-set equality against
    the registered survivor lists (see build log).
- **Drop folders created and ready:** `r3-b1/grok/` and `r2-edh-b1/grok/`
  under this same `popper_rivals/` directory — both empty, both present on
  disk, no setup needed before the operator starts pasting.
- Pack status: **built, unworked.** No block has been pasted into Grok yet;
  that is an operator action outside this run's scope.

## 5. The 43 ids

### r3-b1 (NAMAMI / India), 24 survivors

| id | one-line claim |
|---|---|
| r3-b1-01 | NAMAMI's dated-fraction stays under 1% training-wide; ≥1 order of magnitude below every other landed source |
| r3-b1-03 | Binding-waste fragment collections converge on a mean date distinct from (and later than) Genizah fragments |
| r3-b1-04 | Korea's medium_class mix is stable within ±10pp per category as the source grows |
| r3-b1-05 | ContainedText-per-manuscript density is source-specific, not a universal constant |
| r3-b1-06 | Iran's FANKHA has materially lower institutional-attribution completeness than every other large source |
| r3-b1-07 | SfarData's ≥2-scribe-attestation share is a stable structural baseline as the corpus grows |
| r3-b1-08 | NAMAMI's leaf-count field is populated under 1% vs. a comparator's large majority |
| r3-b1-09 | Exact-dating rate is source-specific but stable per source as each source grows |
| r3-b1-16 | Distinct-institution density never exceeds 103/1,000 records in any complete state |
| r3-b1-17 | Institution-holdings rank–count log–log slope stays in [-3.0,-0.3] in every complete state |
| r3-b1-18 | At least one small single-city holdout UT beats every large state's top-1 institution share |
| r3-b1-19 | No holdout institution beats the training exemplar's top Tibetan institution, unless itself a Tibetan-exile center |
| r3-b1-21 | The sanskrit-tradition umbrella exceeds 20% of records in every complete state |
| r3-b1-23 | Routing abstention never exceeds 45% of records in any complete state |
| r3-b1-24 | The "unrecognised evidence" routing curation-gap basis never exceeds 35% of a complete state's records |
| r3-b1-25 | The genuinely-blank-field routing basis never exceeds 15% of a complete state's records |
| r3-b1-26 | The script-only routing basis never exceeds 2% of a complete state's records |
| r3-b1-27 | The rarest routing basis never exceeds 0.1% of a complete state's records |
| r3-b1-31 | Sanskritic language-group outnumbers vernacular indo_aryan in every complete state except one |
| r3-b1-32 | The single most common routing basis accounts for ≥35% of records in every complete state |
| r3-b1-33 | Non-Latin institution-name share is cleanly higher in Hindi-belt states than non-belt states |
| r3-b1-34 | A holdings-vs-origin integrity flag is set correctly on 100% of records in every complete state |
| r3-b1-35 | date_precision equals 'unknown' on 100% of records in every complete state |
| r3-b1-40 | The leaf-count field is populated on under 0.5% of records in every complete state |

### r2-edh-b1 (EDH / Roman inscriptions), 19 survivors

| id | one-line claim |
|---|---|
| r2-edh-b1-01 | The top-5 holdout provinces hold ≥45% of the 32-province holdout total |
| r2-edh-b1-02 | No single holdout province holds ≥30% of the 32-province holdout total |
| r2-edh-b1-03 | The training slice's heavy-tailed province-size shape recurs in holdout |
| r2-edh-b1-04 | Province date-coverage is heterogeneous, not centrally clustered |
| r2-edh-b1-06 | Exact-precision dating stays at or under 40% of dated rows in every eligible province |
| r2-edh-b1-07 | Genre diversity is ≥8 distinct inscription types in every eligible province |
| r2-edh-b1-08 | Material diversity is ≥5 distinct material values in every eligible province |
| r2-edh-b1-09 | Epitaph/votive inscription is the plurality genre in ≥85% of eligible large provinces |
| r2-edh-b1-11 | At least one of two named upper-Danube provinces shows elevated instrumentum domesticum |
| r2-edh-b1-12 | At least one of the same two named provinces carries ≥3 military-diploma finds |
| r2-edh-b1-13 | Latin-West/Greek-East non-Latin-language-share divide (the Jireček line) |
| r2-edh-b1-14 | The busiest century is the 1st/2nd c. AD in every eligible province except one named exception |
| r2-edh-b1-16 | ≥90% of a province's dated rows fall within a 6-century window around its own peak |
| r2-edh-b1-18 | Bracket-density stays ≥35% in every eligible province |
| r2-edh-b1-19 | Uncertain monument-type IDs stay under 25% of monument-typed rows in every eligible province |
| r2-edh-b1-20 | Monument-type documentation coverage is heterogeneous, not centrally clustered |
| r2-edh-b1-23 | One named northern-Italian province shows an elevated stele share, matching a single training exemplar |
| r2-edh-b1-24 | Average resolved date-range width stays within 20–250 years in every eligible province |
| r2-edh-b1-25 | Photographic-documentation coverage is heterogeneous, not centrally clustered |

## 6. Constraints observed

- No git commits made (orchestrator reviews and commits).
- No database writes; no database reads at all (every deciding number was
  already in the docs).
- No other lane's files touched — confirmed by `git status --short`
  immediately before writing this manifest: the only changes are the new,
  untracked `docs/generated/popper_rivals/` tree. The concurrent conjectures-
  app ingestion lane's own changes (`apps/conjectures/...`) are untouched by
  this run and appear unchanged in status before and after.
- Codex received no repo access, no prompt, and no data of any kind (moot,
  since Family A was cancelled before any invocation).
- Nothing here was committed to a public surface; all output is
  draft/generated docs for orchestrator review.

## 7. Items needing an orchestrator ruling

1. **Family A relaunch, when funded.** No ruling needed now — noted here so
   the next session doesn't have to rediscover it: relaunching Family A
   later requires no rebuild. Point `codex exec` at
   `PROMPT_TEMPLATE_v1.md` with each `evidence/<id>.md` spliced into the
   `{{EVIDENCE_BLOCK}}` slot, run the 43 items serially with Codex's workdir
   set to a scratch directory containing only that one prompt file, and
   archive raw output to the (not-yet-created) `r3-b1/codex/` and
   `r2-edh-b1/codex/` directories under this same `popper_rivals/` tree.
2. **Paraphrase vs. verbatim registered wording.** Evidence-block "Claim"
   fields are faithful condensations of the registered statement text, not
   always byte-identical to it (the full registered statements run long —
   some are 100+ words with clause-by-clause eligibility detail that isn't
   needed for a rival-mechanism task). Every number, threshold, and named
   scope element was preserved; nothing substantive was cut. Flagging so the
   orchestrator can confirm this is the right register for this stage, or
   ask for verbatim statements if a future audit needs byte-for-byte
   traceability to the registration docs.
3. **`r3-b1-31`'s evidence block explains its own kill-condition mechanics**
   (a fixed three-state named set, one state unavailable, two of three
   testable, one flipped) to make an otherwise-confusing "survived but
   substantively contradicted" outcome legible to a rival-generating model.
   This is more procedural detail than any other evidence block carries.
   Judgment call: this is describing what *this claim's own registered
   wording* requires, not our downstream adjudication apparatus, so it
   doesn't violate the "no verdict machinery" rule — but it's the one
   evidence block where that line is closest to being tested. Worth a
   second look.
4. **Grok pack execution itself is entirely unworked** (by design — that's
   an operator action). Nothing here required a ruling; noted only so the
   report doesn't overstate progress: 43/43 blocks are *built*, 0/43 have
   been *run*.

## Family B execution log (append-only)

- 2026-08-06: operator commences paste-back via the orchestrator chat window,
  model identity declared: **Grok 4.5 expert** (chat subscription, no API).
  Workflow adaptation: replies return through the orchestrator conversation;
  the orchestrator archives each verbatim into the drop folders with
  frontmatter (model, date, template v1 hash 4344aabf...) upon receipt.
  Part 1 handed over: 12 blocks (r3-b1-01, 03, 04, 05, 06, 07, 08, 09, 16,
  17, 18, 19).

- 2026-08-06: **FAMILY B COLLECTION COMPLETE — 43/43** (24 r3-b1 + 19 r2-edh-b1),
  all via operator paste-back of Grok 4.5 expert, all valid strict JSON. 84 rivals
  total + 1 no_viable_rival declaration (r2-edh-b1-13, the language divide). Known
  paste incidents (all caught by content-matching, none archived wrongly): one
  clipboard duplicate (r3-b1-40's reply resent as r2-edh-b1-01's), one block pasted
  twice into Grok (07 answered twice; second answer discarded), one truncated first
  paste (r3-b1-33, complete re-paste archived). Tranche 1+2 (r3-b1) adjudicated and
  countersigned; tranche 3 (all 19 EDH) launched.

- 2026-08-07: Family A model pinned to **gpt-5.6-sol** (operator directive; the
  subscription GUI's "5.6 Sol" resolved to this slug — bare gpt-5.6 refused by the
  backend). The 4 gpt-5.5 archives from the acceptance run + interrupted first sweep
  moved to codex_gpt5.5_superseded/ (preserved as provenance; the 5.5 acceptance run
  of r2-edh-b1-13 remains a notable artifact: 3 rivals where Grok declared none).
  Full 43-item sweep relaunched under gpt-5.6-sol; subscription-auth hard guards in
  the runner (ChatGPT-login assertion + API-key env scrub).

- 2026-08-07: **FAMILY A COMPLETE — 43/43 on gpt-5.6-sol** via the hands-free runner
  (ops/popper/run_rivals_codex.py), ChatGPT-subscription auth, no API billing.
  All 43 returned schema-valid JSON: 39 items × 3 rivals, 3 × 2, 1 × 1 = **126 rivals**,
  zero no-viable declarations. Both families now hold rivals for every survivor
  (Family B: 84 rivals + 1 declaration; Family A: 126). Provenance correction logged
  in each archive's frontmatter: the first write mis-stamped the model as gpt-5.5
  (stamper read config.toml's default rather than the -m flag actually passed); the
  runs were gpt-5.6-sol throughout, and the detector is fixed.


---

## RELEASE ERRATUM (appended 11 August 2026 — the record above is unchanged)

The Family A completion entry above states "= 126 rivals"; its own arithmetic (39 items x 3 rivals + 3 x 2 + 1 x 1) equals 124, and the deposited archive contains 124 Family A (Codex) rivals. With Family B's 84, the programme total is 208, as countersigned. The "126" was a transcription slip at the time of writing.
