# T657 build handoff

Built **Minimal polynomials of monstrous McKay–Thompson CM values** as the
private draft https://numberdb.org/T657 . It contains 100 exact monic
irreducible polynomials over Z, with variable x, indexed by g,r. It has not
been offered, published or reviewed. The controller must run the separate
critique and repair stages before any offer. No independent argument-review
acceptance has been created in this build.

## Instructions and scope

The family was read first with `python3 agents/queue.py show 289`, and archived
as family-289.md. The controlling skill manifest is
`agents/runs/20261101T181018Z-build-skills/manifest.json`; both its local and
live versions were read and verified to have SHA-256
`a2b28d9953264d7b0ca62663785c2952190c5be6d6d3597fd695d9a54d606278`.
A copy is attached as skill-manifest.json. The campaign gate and
agents/argument_review.py were read; fingerprint.json is a binding record,
not an independent mathematical acceptance.

Coverage follows the re-assessed proposal: 2A,2B,3A,3B,5A,5B,7A,7B,13A,13B,
each at 1 <= r <= 10. The first parameter is a complete discrete slice of
Fricke and non-Fricke classes at prime genus-zero levels; the second is an
arithmetic family of principal rectangular CM orders across fields and
conductors. The endpoint is noncanonical and practical. The largest input
Hilbert polynomial degree is two, the largest elimination/output degree is
28, and the longest stored polynomial is 888 characters (13A,r=8). With
entry-specific links the measured block is 51.2 KiB. See argument-selection.md.

## Corpus and source checks

The cheap screening used already_here, already_asked, api/lookup and the live
tag page. Lookup found no x-544 or x-536 polynomial; the corresponding scalar
values belong to T634. The closed follow-up #258 was read, but no existing
minimal-polynomial table was found. No queue item was marked built for an
unpublished draft. No published table was changed.

Live T79, T129, T255, T308, T309, T634, T635, T636, T643 and T652 were read.
T634 fixes the normalization and embedding; T129 supplies H_{-4r}; T309 uses
m_p=C_p/R_p, not R_p. Every row links to its actual T634 value, T129 order and
T309 level entry. Slugs came from live search results. Weber and Faber
comparisons are explained separately. Sources were checked in Matsusaka's
introduction before Theorem 1.1, Tomiyama arXiv:2505.05135v4 Proposition 3.7
and Theorem 3.9, the PARI ellmodulareqn manual, and Sage's certified Hilbert
polynomial documentation. Sources and downloaded pages are retained locally.

Existing tags used: number theory, polynomial, modular function, algebraic,
groups. The live tag list still lacks **complex multiplication**, appropriate
to T129, T308, T634 and T657, and **moonshine**, appropriate to T634–T636,
T652 and T657. These are recommendations only; no tags were created or edited.

## Computation and verification

The generator constructs an exact annihilator from H and the canonical
modular equation, factors over Q, and uses a 640-bit Arb eta enclosure to
exclude all other factors. It translates the selected quotient polynomial
for B and uses exact elimination for A. Every output is monic, integral and
irreducible. Integer-relation recognition was not used.

The independent builder check uses real Euler products at 768 bits with
160 factors and an explicit geometric tail bound. It substitutes directly
into the modular equation and uses PARI resultants, rather than the
generator's reciprocal-polynomial construction. Exact divisibility plus
nonvanishing of the quotient after removing the selected factor proves
correct-factor identification. All 100 entries passed, before filling and
again on the values read back from T657. All 50 A/B polynomial relations
passed. Input H polynomials agree with PARI polclass and FLINT's certified
algorithm; canonical equations agree with PARI's data. These source checks
supplement the independently computed analytic enclosures; the PARI canonical
data comparison itself is not an independent theorem proof.

Known controls include the empty Euler product, T_2A(i)=544, T_2B(i)=536
and a known polynomial factor. Four deliberately wrong/wide/nonfinite cases
were rejected. Independent product enclosures retain at least 753 relative
bits; generator enclosures retain at least 630. All agree with T634, including
containment in its 98 approximate entry intervals and its two exact integers.
The polynomials themselves are exact, so no decimal precision is claimed for
coefficients.

The final dry_run.py completed with no complaints. Generator verify(sample=None)
reported 100/100 matched, no differing, missing or extra entries. The site
/api/table/T657/audit returned findings=[] and clean=true. It did not run the
DB-only outward-link audit; target slugs and entry identities were resolved
from the live companion documents.

## Reproduction and next stage

Download generate.py, checks.py, cm-inputs.json and argument-selection.md from
T657 into one directory. With Sage and numberdb installed, `sage -python
checks.py` performs the private arithmetic checks; `sage -python checks.py
--stored` repeats them on the table (the private draft requires its API key).
`sage -python generate.py` verifies all entries. The generation source and
input dependencies are bound by fingerprint.json and
build-evidence-manifest.json. A fresh independent critic must fingerprint at
least these four attachments and write its own sidecar with its own run ID.

The main choices left by the proposal were computational: certified factor
exclusion instead of numerical recognition, exact handling of multiplicities,
640/768 working bits and 160 Euler factors. No mathematical convention was
changed. An empty-draft prose-update refusal was worked around by filling the
same draft, then applying the completed document while preserving the entries;
see environment-findings.md. All scratch, results and proposed lessons remain
in this run's work directory. No source changes, commits or deployments were
made.
