Design notes and roadmap
The canonical engineering documents live in the repository and stay there (single source of truth); this page is the map.
| Document | Content |
|---|---|
docs/PLAN.md | public technical plan: scope, architecture, quality, release policy |
docs/ROADMAP.md | executable milestones M0–M4 with exit criteria and technical notes |
docs/DECISIONS.md | decision log (ADR-style): what was chosen, why, what was rejected |
docs/OPEN_CORE.md | authoritative repository boundary and public-release runbook |
docs/algorithm.md | solver math: ADMM splitting, SMW reduction, scaling, certificates, polishing, L1 prox |
docs/factor_structure_note.md | short technical note: why factor structure is worth exploiting, with measured evidence |
docs/cvxpy_migration.md | cvxpy → Ledge mappings, executed in CI |
docs/SMOKE_TIMINGS.md | self-timing smoke matrix numbers |
Design pillars (short form)
- Never form Σ. The ADMM x-update solves through a Sherman–
Morrison–Woodbury reduction of dimension
r = factors + explicit rows; every feature (scaling, polishing, L1, templates) is designed to keeprsmall. - Trust before speed. Residuals are audited independently on original data; polish is adopted only when the audit improves; infeasibility claims carry checkable certificates; benchmark claims follow a written protocol with raw samples.
- Rolling is the product. Warm starts, the workspace factorization cache, sequences, and batch exist because rebalancing is a repeated solve, not a one-shot.
- Small dependency surface. Default builds have no BLAS/LAPACK, no
native dependencies;
serdeandrayonare opt-in features.
Milestone status
M0 (foundations), M1 engineering (scaling, over-relaxation, comparisons),
M2 (L1, certificates, polishing, workspace, sequences, tracking), and the
M3 engineering items (templates, batch, serialization, this docs site) are
complete; the public 0.2.0 crates, Python wheels, and documentation site
are live. Remaining roadmap items are adoption- and decision-driven:
external real workloads and the 1.0 compatibility review. Sparse F
support is deliberately deferred until a real workload needs it.