Roadmap
Cortex is built phase by phase against a 12-phase roadmap (docs/plan/bootstrap-plan.md).
Each phase is an epic of single-issue PRs, landed on green CI.
Phases
Section titled “Phases”| Phase | Epic | Status |
|---|---|---|
| 0 | Foundation — build, CI, release flow | ✅ complete (details) |
| 1 | Rust Resource Manager + cxx bridge | ✅ complete (details) |
| 2 | Math layer (Lie, NLS, cameras) | ✅ complete (details) |
| 3 | Visual-Inertial Odometry (MSCKF) | ✅ complete (details) |
| 4 | SLAM (loop closure, mapping) | ⏳ next |
| 5 | 3D Scene Graph | planned |
| 6 | Unified configuration | planned |
| 7 | Daemons (Zenoh integration) | planned |
| 8 | SITL system integration | planned |
| 9 | Profiling (Tracy + Valgrind) | planned |
| 10 | Deployment (OCI + Yocto) | planned |
| 11 | Documentation | in progress (this site) |
Plus a parked hardware track (the phase-soc-deferred label, issues #21–#23): the IPC
broker, crash-only recovery, and the KPU allocation arbiter — deferred until the
silicon path is active.
How a phase runs
Section titled “How a phase runs”The workflow is consistent across phases and recorded in CLAUDE.md + the project
memory:
- One PR per issue. Branch
<cc-type>/<slug>, PR title is the Conventional Commits message. - Ready PR → CodeRabbit review → address findings → CI green → merge. No
auto-merge; no direct commits to
main. - Both compilers. Every C++ change builds under gcc and clang locally before push.
- Clean-room. Implement from papers, cite the source, write independent test oracles (provenance).
- Phase close. A retrospective page (these pages) + a session log + a memory entry.
Standing decisions
Section titled “Standing decisions”- No GPL, including test oracles.
- Type-generic math — never hardcode
double. BUILD_TARGET_KPUis the single FFI-spanning build flag.- Rust pinned exactly in
rust-toolchain.toml; bumps are their own PRs.