Skip to content

Phases

Platform version: v0.1.0-alpha.1 · Total: 11 phases (Phase 0 → Phase 10)

Count
✅ Completed 2 (Phase 0, Phase 1)
⏳ Active / partial 8 (Phases 2, 3, 4, 5, 6, 7, 9, 10)
⬜ Remaining 1 (Phase 8)

Source of truth for phase status. When a phase finishes, update this file first, then ROADMAP.md, PROJECT_STATUS.md, and README.md.


Status table

Phase Name Status
0 Project setup & open source ✅ Done
1 Local MVP (Docker, core, simulator) ✅ Done
2 Dashboard + database ⏳ In progress
3 Tomato greenhouse reasoner ⏳ Partial — HF adapter + guarded local Ollama/GGUF runtime; model quality hardening pending
4 Safety checker ⏳ Partial — deterministic tomato and actuator gates implemented; full chain pending
5 Agronomist LLM adapter ⏳ Partial — HF adapter + model-router contract; live backend wiring pending
6 Automation engine ⏳ Partial — YAML rules, suggestions, and manual approve/reject live in services/automation-engine; dashboard integration (evaluate, list, approve/reject) live in services/dashboard
7 Public browser demo ⏳ Partial — static guarded demo live; full platform playground still planned
8 ESP32 / real devices ⬜ Planned — see EDGE_CONTROLLER_DESIGN_NOTES.md (exploratory, pre-implementation)
9 Model registry standard ⏳ Partial — public YAML registry and HF lifecycle metadata
10 Fine-tune pipeline ⏳ Partial — dataset builders, validators, Colab training, and clean evaluation

Legend: ✅ Done · ⏳ Active or partial · ⬜ Planned

Phase status measures product completion. It is intentionally separate from platform and model versions; see VERSIONING.md.


Current Phase 2 checkpoint

Phase 2 is partially implemented locally, with its local Docker validation checkpoint complete:

  • Core persists sensor events in SQLite and survives a service restart.
  • The dashboard monitoring views show readings, guarded pipeline output, audit summaries, service status, and runtime status.
  • Local automation history persists on a separate Compose volume. Manual decisions record an optional unverified reviewer label and a timestamp; they never execute hardware. MAX_SUGGESTIONS bounds history retention.
  • make demo-local runs three offline tomato scenarios using the actual rules, without a server, model downloads, persistent suggestions, or approvals.
  • make local-check runs the service tests and the temporary-state four-service validation runner.
  • make docker-config validates Compose syntax, and the local Docker Compose smoke benchmark passes all four scenarios.

Phase 2 remains partial because production hardening and hardware validation are separate milestones. The local Docker deployment, simulation, backup, and recovery gates are complete.

What works after Phase 1

  • ./scripts/up.sh — MQTT + core + model-router
  • ./scripts/sim.sh — greenhouse sensor simulator
  • REST API + demo advisor (stub)

Next milestone: Continue owner-approved local runtime integration and hardware-preparation validation without enabling autonomous actuator control.


When you complete a phase — update these files

  1. docs/PHASES.md (this file) — change ⬜/⏳ to ✅, set next phase to ⏳
  2. docs/ROADMAP.md — sync the status column
  3. docs/PROJECT_STATUS.md — add deliverables + completion date
  4. README.md — sync the phase table under "Project phases"
  5. private/DAILY_LOG.md — optional personal note (local only)

Partial progress: use "⏳ partial" in PHASES + note in PROJECT_STATUS only.

Detailed deliverables (maintainer): private/planning/ROADMAP.full.md