THE KNOWN GOOD FIXTURE. Recorded 29 July 2026 to make the D18 standing rule enforceable. WHY THIS FILE EXISTS. The rule added to Gate D from finding D18 says no change to a resource limit or a runtime constraint counts until a recorded known good fixture has been rerun and matched its written numbers. A rule with no fixture to match against is an intention, which is exactly the criticism this build levelled at the positive control library before that got a file. So the fixture is written down here, with numbers. WHAT D18 WAS, in one paragraph, because the numbers below only mean something with it. The PDF library was moved into a child process, correctly, and that child was given an RLIMIT_AS of 1 GiB. RLIMIT_AS bounds VIRTUAL address space and the Go runtime reserves large virtual arenas at startup, so every worker died instantly before reading a byte. Every worker failure falls back to the weaker hand rolled reader, which is right for an unreadable document and wrong for a readable one, so a limit aimed at ONE pathological file degraded extraction for ALL of them. 04_PWS_original went from 55 chunks to 3 and the run reported ok=1. No test failed. Nothing was red. The only reason it did not ship is that 55 had been written down. THE FIXTURE IS THE TWO REAL SOLICITATION PACKAGES, pulled from sam.gov public endpoints, 16 documents, stored in missionmatch_staging. Every count below was produced by the SETTLED pipeline: staging extract binary 481c1f6bba42700f, with the process isolated PDF worker, no rlimit, GOMEMLIMIT as a soft hint, the table reader, and the readability bar. COHERENCE NOTE, because a baseline that mixes binaries is not a baseline. Three documents still carried counts from an earlier binary when this file was first drafted: 04b_PWS_unlocked at 33, 02_Amendment_SF30 at 38, and 06_RFC_Log at 4. All three were re extracted by the settled pipeline before these numbers were recorded, and all three went UP, which is the table reader earning its place rather than noise. ================================================================================ THE NUMBERS. file, status, reason, chunks, of which table chunks ================================================================================ 01_Solicitation_FA448426R0001.pdf failed encrypted_or_locked 0 0 01_Solicitation_W912CN26QA031_17JUL2026.pdf done - 137 1 02_Amendment_0001_SF30.pdf package A failed encrypted_or_locked 0 0 02_Amendment_0001_SF30.pdf package B done - 40 2 03_Amendment_0001_Conformed_Solicitation.pdf done - 137 1 03_Conformed_Solicitation_Amendment_0001.pdf failed encrypted_or_locked 0 0 04_PWS_FCTx_FY27_EOS.pdf failed encrypted_or_locked 0 0 04_PWS_original_10JUL26.pdf done - 55 1 04b_PWS_FCTx_FY27_EOS_unlocked.pdf done - 45 12 05_PWS_amended_23JUL26.pdf done - 391 91 05_PWS_Att4_Course_Schedule.xlsx failed unsupported_format 0 0 06_QASP_draft.pdf done - 23 9 06_RFC_Log_Government_Responses.pdf done - 5 1 07_SCA_Wage_Determination_15-4191_Rev32.pdf failed no_text_layer 0 0 07_TE6_Deliverables.pdf failed no_text_layer 0 0 08_Past_Performance_Questionnaire.pdf done - 3 0 TOTALS 16 documents, 9 done, 7 failed, 0 pending 836 chunks, of which 118 are table chunks ================================================================================ HOW TO USE IT ================================================================================ AFTER ANY CHANGE to an rlimit, a memory cap, a worker or concurrency count, a pool size, or a timeout: 1. Reset all 16 documents to pending and clear their chunks. 2. Run the extractor once. 3. Compare every row above. EVERY count and EVERY status must match. 4. Record the comparison. A limit change with no recorded matching rerun is provisional. THE SEVEN FAILURES ARE PART OF THE FIXTURE, NOT NOISE. Each carries a NAMED reason and stores ZERO chunks, and that combination is the assertion. A failure whose reason changed, or which started storing chunks, or which started succeeding, is as much a regression as a drop in a chunk count. In particular: encrypted_or_locked x4 genuinely encrypted PDFs. Package A ships a LOCKED PWS and an UNLOCKED variant of the same document on purpose, so the locked one failing while 04b yields 45 chunks is the designed test passing. unsupported_format x1 the xlsx, refused by the allowlist by name. Closed by owner decision for Phase 2. no_text_layer x2 the wage determination, whose text layer decodes to mojibake, and 07_TE6, whose library read is OOM killed and contained. BOTH must store ZERO chunks. If either starts storing chunks, the readability bar or the isolation has regressed. THE MOST SENSITIVE SINGLE NUMBER IS 55, on 04_PWS_original. That is the number D18 turned into 3 while reporting success. If a limit change is ever made and this file is not reread, that is the number that will be wrong.