Adds python/spectral_codebook_db.py: sync codebook rows into
ene.rrc_predictions on the neon-64gb Postgres (NEON_PG convention from
scripts/auto/auto_pipeline.py, default research_stack DB).
- Row shape (flat, SQL-typed, Spark-JDBC readable): equation_id,
proxy_pred = cluster codeword C0..C8, exact_pred = shape from exact
lambda under CURRENT ClassifyN.lean thresholds (1.5/4.0 Q16.16,
integer semantics mirrored), matrix_hash =
'charpoly=<c1..c8>;pos10=<base-10 positional hash>' (similarity +
injective identity keys), confidence = 1.0 unique fingerprint / 1/k
in k-way charpoly collision class; deterministic uuid5 ids so reruns
upsert idempotently.
- SAFE BY DEFAULT: dry run prints summary + sample SQL and writes
nothing; --apply required to insert (psycopg2, with --emit-sql
data/spectral_codebook_sync.sql fallback when the driver is absent).
--apply has NOT been run; live DB untouched. --verify-schema does a
read-only column check; schema verified offline against
scripts/auto/ene_schema.sql in tests (live check left to the user
per the ask-before-DB-work rule).
- spectral_codebook.py gains --sync-db (always dry-run from that entry
point). Dry-run counts: 250 rows; C0=35 C1=20 C2=13 C3=79 C4=29
C5=15 C6=22 C7=19 C8=18; Logogram=69 Signal=131 CognitiveLoad=50;
183 rows at confidence 1.0.
- docs: 'Neon data layer' section — ENE table map, stale
ene.rrc_classifications finding (120 rows with artifact spectral
radii 0.3-0.85 predating the exact-eigenvalue fix; recommend
re-classification via this codebook), empty landing tables, Spark
JDBC snippet, arxiv-pg (podman-exec only) citation layer note.
- tests: 8 new dry-run/no-network tests (23 total).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>