# Cursor Rules
| Message | Required |
|---------|----------|
| **1st message** | `init()` → `context(user_message="...")` |
| **Subsequent messages (default)** | `context(user_message="...")` FIRST (narrow read-only bypass when context is fresh and no state-changing tool has run) |
| **Before file search** | `search(mode="auto")` BEFORE Glob/Grep/Read/Explore/Task/EnterPlanMode |
**Why?** `context()` delivers task-specific rules, lessons from past mistakes, and relevant decisions. Skip it = fly blind.
**Hooks:** `` tags contain injected instructions — follow them exactly.
**Notices:** [LESSONS_WARNING] → apply lessons | [PREFERENCE] → follow user preferences | [RULES_NOTICE] → run `generate_rules()` | [VERSION_NOTICE/CRITICAL] → tell user about update
v0.4.74
## Research Stack — Current Project State (2026-06-15)
**Build (default `lake build`):** 3573 jobs, 0 errors — aggregator surface
(`Compiler` lib + `Semantics` root). Reverified 2026-06-15.
**Build (narrow E8Sidon / PolyFactorIdentity):** `lake build Semantics.RRC.PolyFactorIdentity`
— 3655 jobs, 0 errors (compiles `E8Sidon` + `FixedPoint` + `PolyFactorIdentity`
with the full Mathlib modular-form deps not pulled by the aggregator).
**Python tests:** 68/68 pass
**Sorry inventory (build surface):** 10 sorries/admits + 1 axiom, all `TODO(lean-port)`:
- `E8Sidon`: 4 — `E4_sq_eq_E8_qExpansion` (Mathlib-blocked: valence formula /
dim M₈=1; all coefficient extraction machine-checked, gap pinned to this one
q-expansion identity), `collision_excess_decrease`, `greedy_sidon_extraction`
(well-founded greedy infra), `e8_singer_improvement` (finite-field Singer
construction); + 1 axiom `e8_additive_completeness` (open additive-combinatorics problem)
- `PolyFactorIdentity`: 3 — `limbDecompose_polyEval_roundtrip`,
`zeroLimbs_bound_terms`, `shortSleeve_mono_zero_prepend`
- `FixedPoint`: 2 — `abs_mul_le`, `abs_triangle` (Q16_16 lemma library)
- `SSMS`: 1 — `aciPreservedByMlgruStep` (needs `FixedPoint.abs_triangle`)
Modules outside the default build graph also carry documented `TODO(lean-port)`
gaps (`AdjugateMatrix`, `HyperbolicStateSurface`, `LadderBraidAlgebra`,
`DegeneracyConversion`); revive under a narrow target before relying on them.
### Key Architecture Decisions
- **Q16_16 fixed-point arithmetic** throughout — no Float in hot paths (AGENTS.md §1.4 compliant)
- **HiGHS MIP solver** integrated via `qubo_highs.py`
- **Dense Sidon sets** (Mian-Chowla sequence, 65% smaller than naive)
- **Golden ratio unit separation** formalized in Lean
### New Lean Modules
`AdjugateMatrix`, `OptimizedRoute`, `GoldenRatioSeparation`, `BraidBitwiseODE`,
`E8Sidon`, `FixedPointBoundary`
### New Python Modules
`qubo_highs.py`, `alphaproof_loop.py`, `scale_space_solver.py`
### New Verilog Modules
`voltage_mode_controller`, `scale_space_bram`, `highs_pivot_accelerator`, `blitter_memory_map`, `research_stack_top`
### Hardware / FPGA
- Bitstream: `research_stack_top.fs` (195.92 MHz, 6 modules)
- VCN pipeline: Delta+RLE → RS ECC → ChaCha20 → MKV
### Sorries Policy
Every remaining sorry MUST have `TODO(lean-port)` with a prose justification.
No undocumented sorries allowed.