# 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.