Implements the Next Steps of docs/SPECTRAL_CODEBOOK_ANALYSIS.md as
python/spectral_codebook.py (stdlib-only; NumPy optional fast path):
- Parses the 250 8x8 braid adjacency matrices from PIST/Matrices250.lean.
- Primary fingerprint: exact integer characteristic-polynomial
coefficients via Faddeev-LeVerrier in Fraction arithmetic (196 unique
over 238 distinct matrices, vs 179 unique lambda at 4dp; 6 cospectral
non-identical groups; 11 exact-duplicate matrix groups / 23 ids).
- Corrects the analysis doc: the 9 'mid band' lambda in (0.5,1) are
power-iteration non-convergence artifacts - exact rho = 1.0 for all 9
(peripheral spectra). spectral_radius is now the exact max root
modulus (numpy eigvals or Durand-Kerner on the exact char poly);
power-iteration lambda kept only for traceability.
- Gap-aware quantization: dedupe to 238 distinct matrices, boundaries at
gaps > 3x median gap, min-support guard (>=10 distinct per cluster),
sparse-tail outlier flagging above lambda ~= 7.66. Result: 9 clusters.
- Round trip encode(matrix) -> (codeword, index) -> decode -> equation_id
verified bijective over all 250 in tests/test_spectral_codebook.py.
- 278-row RRC/Q16_16Manifold corpus: 28 extra rows are repeated ids;
boundaries reproduce exactly, no new gaps or clusters.
- Emits data/spectral_codebook.json (schema spectral_codebook_v2) with
explicit collision classes; docs/SPECTRAL_CODEBOOK_GENERATOR.md notes
the hashMatrix base-5 injectivity gap and the ClassifyN threshold
(1.5/4.0 Q16.16) vs analysis-doc (0.5/1.0) mismatch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>