# T455 build handoff

Built **Quantiles of the $F$-distribution**, https://numberdb.org/T455 (canonical slug `Quantiles_of_the_F-distribution`), from numberdb-data family #197. The draft is filled, unpublished, and not offered for review. The separate critique and repair stages belong to the controller. No publication, offer, review, queue-completion, Git, deployment, or source-tree edit was performed.

## Convention and range

The central distribution is `(U/d1)/(V/d2)` for independent chi-squared U,V. Parameters are `(d1,d2,p)` in that order; p is a lower-tail probability, encoded as an exact rational. The table has all 700 combinations of d1,d2 = 1,...,10 and p = 1/100, 1/40, 1/20, 1/2, 19/20, 39/40, 99/100. Entries are ordered by d1, d2, then p.

The issue fixes the quantile convention but only says the F probability grid is coarser. Its referenced archived full report was unavailable (HTTP 404 at the given repository path), and the local proposal lesson directory was absent. The build selected the median, the one-sided 1% and 5% critical levels and their complements, and the cutoffs for an equal-tail 5% test. The degrees cover a complete initial small-sample square from NIST's tables. There are no infinite-degree limits or noncentral quantiles. The table states the unbounded positive-integer degree domain separately from its finite coverage.

## Screening and links

Read the family first, and both the local and live skills; the stricter local parameter-selection rule was used. `already_here`, `already_asked`, searches for quantiles/Fisher/Snedecor, sample `api/lookup` requests, and tag checks found no existing F-quantile table. One sample value coincides with a matrix condition number; this is a different family, not duplication. The atomic claim created T455 without entries.

Existing `probability theory` and `special values` tags are used. `statistics` exists but has zero published tables. The proposed statistics tag would fit T452, T453, T454, and T455; no new tag was created. Related published slugs were read from search results and their documents read from the API. T454 is an unpublished companion and is linked by its stable T-number, not a guessed slug. The two remaining family quantile tables were not found; no nonexistent links were invented.

## Computation and evidence

`generate.py` uses named Sage imports after `numberdb.sage`. It inverts the regularized incomplete beta CDF by exact-rational bisection, with certified ComplexBall hypergeometric evaluation. Complement symmetry avoids evaluation near z=1. It returns a ball containing the entire transformed bracket. At 100 requested digits the working precision is 461 bits; every nonexact returned ball retained at least 356 relative bits in the measured run.

There are 668 decimal enclosures at 100 significant digits and 32 exact rational values. Rational cases follow from the d1=2/d2=2 power formulas with exact integer-root tests, or equal-degree medians. They are not inferred from decimal zeros. The shared dry-run checks passed: no float/exactness failures or exact-in-disguise warnings. The raw balls took 118.6 KB; written values have maximum length 105 characters. The helper's written-block estimate is 99.1 KB.

`checks.py` independently evaluates the CDF using four elementary half-integer beta bases and finite integration-by-parts recurrences. It calls neither gamma nor hypergeometric functions. Known uniform/arcsine beta values and deliberately nonzero signs control the method. On the database readback:

- All 668 decimal intervals have strict opposite CDF signs at their exact last-place endpoints (1336 signs).
- All 32 exact rows satisfy their exact construction and independent CDF check.
- All 700 reciprocal identities pass; all 10 equal-degree medians equal 1 exactly.
- The F(1,1) tangent formula, both degree-two formulas, monotonicity in p, and 100 equal-tail conversions pass.
- All 700 SciPy F quantiles agree within relative error 2.761e-15; all 70 d1=1 rows agree with SciPy Student-t squares within the declared check tolerance.
- Thirty overlapping independent T454 values square to overlapping 100-digit F intervals.
- All 100 NIST 5% critical values are within one unit of their last printed decimal place. Ninety-nine are nearest-three-decimal roundings. NIST prints 238.882 for (8,1,19/20); the certified value is 238.882694802524..., also confirmed by mpmath inversion at 150 digits. The draft's rigour details and `lessons.md` record this source discrepancy.
- The mpmath Programs snippet was executed and lies in the corresponding 100-digit interval. The R call matches the official qf documentation; no R runtime test was performed.

`verify_stored.py` confirmed all 700 entry strings and their order after normalizing the API's nested Numbers representation. `verify(sample=None)` reported 700/700 matched, zero differing, zero missing, zero extra. The independent checks were repeated on readback. See `verify-stored.log`.

## Audit and limitations

The first site audit requested a parameter-selection explanation, a shorter definition, and moving a definition cross-reference. Those prose changes were applied without changing any numbers. `audit-final.json` is clean with no findings. Outward-link crawling through `audit_table --links` was unavailable without a database; primary R, NIST, and DLMF pages were read during the build. NIST and DLMF resisted direct urllib downloads but were readable through the web tool.

The first external test fixture contained transcription mistakes, which were corrected against NIST before the final comparison. An initial supplemental/readback checker assumed flat entry lists, while the API returned nested mappings; the client's `_stored_entries` normalizer resolved this shape mismatch. No stored numerical value was repaired. Failure logs and lessons remain in the run workspace.

A genuinely unauthenticated urllib API request returns that T455 does not exist, consistent with the draft remaining unpublished. `Client(api_key='')` is not an anonymous check because it discovers the default credential. The key was used only for NumberDB authenticated API operations and was never placed in an artifact.

## Reproduction

Download the attached generator and checks together with `check.py`, `entries.json`, `document.json`, and the companion fixture `T454.json`. With SageMath and the numberdb client installed, run:

```
sage -python dry_run.py generate.py
sage -python checks.py
sage -python supplement.py
sage -python checks.py --stored
sage -python generate.py
```

Reading the private draft requires an authorized NumberDB key. On this build machine all Sage computations used `agents/sage.sh`; the saved `verify_stored.py` reads the key from stdin. No computation is left running. The source snapshot was not modified outside this run's artifacts and required table-ID handoff.
