Review it in 10 minutes¶
A guided path through the product and the engineering, for anyone evaluating the project.
The app in 5 minutes¶
Open the live app and click Try it as a guest.
- Overview. Five strategies solve the same shift in parallel. Read the recommendation card: it names the plan and why, and refuses to call a difference inside the noise margin a win.
- Floor plan. Click a job marked × (unassigned). The inspector shows, per strategy, who was chosen or why nobody could be: 4 not certified, 1 at max jobs.
- Drag a cost weight in the left panel. Every strategy re-solves; repeat plans come from cache.
- Ask the assistant (bottom right, or /): "Why is J006 assigned this way?" The answer matches the inspector exactly and cites its sources. Then ask "What's the weather in Paris?": it says it doesn't know.
- Live dispatch. Start a live shift, press +1 h, then turn on Tap floor to report a bottleneck down and click the floor. Open Copy link in a second window: both update live.
- Benchmark. Run it: strategies compared over many shifts with 95% confidence intervals, and each heuristic's gap to the proven optimum.
The engineering in 5 minutes¶
| Look at | Why it matters |
|---|---|
| Requirements map | Every item in the brief, where it lives in the app and the code. |
| Analysis | What comparing the algorithms taught: when each one wins, and why. |
| Decisions | 36 design decisions with context and trade-offs. |
| Design review Q&A | The questions a reviewer is likely to ask, answered with the evidence. |
planner.py |
The constraint engine every strategy shares: the reason the comparison is fair. |
algorithms/ |
Greedy, Hungarian, Regret-2, ALNS, PyVRP and the exact MILP. |
| AI transparency | How the assistant stays grounded, and how its quality is measured. |
| CI | Lint, three test layers, coverage floors, audits, accessibility, image builds. |
| Changelog | Versioned releases, including the security fix found in production. |
By the numbers¶
- 5 strategies plus an exact optimum, on 2 fabs with different floors, shifts and bottlenecks
- 767 automated tests across pytest, Vitest and Playwright (desktop and phone, with WCAG checks);
the count is checked by
backend/tests/test_release.py, so it is as current as the commit - Every assistant evaluation question must cite the right article and every off-topic one must be
refused (
backend/tests/test_assistant.py); each CI run publishes the scorecard in its job summary - Every deploy smoke-tested: health, schema, real auth, and app tables closed to the public API
Things worth noticing¶
- It refuses false positives. One shift is noise: a 1% cost "win" is called a tie (see how it decides).
- The tests found real bugs: a blank screen when rejoining a live shift, a phone layout wider than the screen, and an emailed code the sign-in screen couldn't accept. Each has a regression test.
- A real production incident, handled: Supabase exposed app tables through its public API by default. It was found, fixed with a migration, and is now checked after every deploy (v2.0.3).