2.0 KiB
2.0 KiB
Acceptance Criteria
Milestone M1 — Working foundation
M1 is accepted when:
- backend starts successfully;
- frontend starts successfully;
- project can be created;
- area can be added as polygon;
- dataset can be uploaded or fixture-imported;
- metadata is persisted;
- basic map/workbench UI exists;
- tests cover project/area basics.
Milestone M2 — Raster/vector foundation
M2 is accepted when:
- vector data can be imported;
- raster metadata can be read;
- CRS/bounds/resolution are visible;
- area/length calculations use metric CRS;
- vector clipping works;
- raster clipping either works or fails with a clear limitation message;
- outputs are persisted as artifacts.
Milestone M3 — Detection foundation
M3 is accepted when:
- a detection run can be started;
- detections are persisted with class, confidence and geometry;
- detections can be visualized/listed;
- detections can be exported as GeoJSON;
- provider interface supports future YOLO implementation.
Milestone M4 — QA/QC foundation
M4 is accepted when:
- predictions can be compared with a reference layer;
- IoU matching works;
- precision, recall and F1 are calculated;
- false positives and false negatives are available as separate findings/layers;
- unit tests cover edge cases.
Milestone M5 — End-to-end demo
M5 is accepted when Demo 1 runs from UI:
- Open project.
- Select area.
- Load raster/reference fixtures.
- Run detection.
- Run QA/QC against reference.
- View map/results.
- Export GeoJSON and summary.
Quality gates
Before any handoff:
- no syntax errors;
- no obvious broken imports;
- backend test suite run;
- frontend build/typecheck run if available;
- docs updated;
- limitations documented.
Rejection criteria
Reject a build if:
- core pages are placeholder-only;
- endpoints return hardcoded success without persisted data;
- geospatial outputs lack CRS metadata;
- code ignores service boundaries;
- major errors are hidden from UI;
- a feature claims GRB/YOLO/SAM support without provider separation or explicit development-provider labeling.