ROADMAP / ORDERED BY WHAT IT UNBLOCKS

What is next, in the order it unblocks other work.

Ordered by what unblocks the most, not by size. Every item names the work that owns it, so this page cannot drift away from the backlog.

In order of what it unblocks

NOW / 01

Incremental support graph

Pairwise contact construction is gone in all four engines, but constraint-heavy candidates still rebuild the graph. Retaining state plus a candidate delta has to be proven equal to the from-scratch graph.

tracked in team/TEAM-ROADMAP.md
NOW / 02

A fair speed frontier

Measure Python, PHP, Rust and the forced JavaScript path separately on one pinned architecture, reporting cold and warm solve time, throughput, peak memory and uncertainty. Until that lands there is no speed claim.

tracked in team/TEAM-ROADMAP.md
NEXT / 03

Optimality gaps and certificates

After a global container-set beam, so optimal becomes a proof rather than a label. 3D packing stays NP-hard; a truthful bounded-search gap is worth more than a promise of exactness.

tracked in team/TEAM-ROADMAP.md
NEXT / 04

Carrier connectors

The contract, harness and registry have landed with a worked connector for a carrier that does not exist. What remains is connectors for ones that do, and the live rate-card ingestion behind them.

tracked in team/TEAM-ROADMAP.md
LATER / 05

Irregular and deformable items

shape_type is reserved in the schema and rejected everywhere, so a caller who never opts in is unaffected forever. Convex hulls and compressible goods follow after 1.0.

tracked in team/TEAM-ROADMAP.md
LATER / 06

One quality level everywhere

Rust and the JavaScript fallback are held to validity and an objective floor, not to the reference engines' quality. Closing that gap matters more than any new capability.

tracked in team/TEAM-ROADMAP.md
HOW WORK LANDS

How a request field becomes a supported capability.

The sequence exists so the gate can see the change. Skipping a step does not make the work smaller, it makes it unverifiable.

  1. 01Add the field to the request schema
  2. 02Reject it explicitly in every engine that does not implement it
  3. 03Implement it, one engine per change
  4. 04Recompute it independently in the validator
  5. 05Add the fixture and its field-matrix row
  6. 06Document it, then move the row to supported
STATUS

Status: pre-1.0.

The suite is pre-1.0: the API is not frozen, coverage and the performance audit are open, and the known gaps are published by name rather than discovered by users.

See where to help ↗