# M10 Pass Sequence ## Pass 00 — Repo Audit and Setup Verification Goal: inspect repo, verify docs, identify missing package files, and create any minimal config files needed to run local development. ## Pass 01 — Backend Skeleton Goal: create FastAPI app structure, config, health endpoint, logging, error schema, and test setup. ## Pass 02 — Database Foundation Goal: add SQLAlchemy/SQLModel or chosen ORM structure, Alembic, PostGIS migration, and core tables. ## Pass 03 — Project and Area Domain Goal: implement project and area CRUD, geometry validation, GeoJSON input/output, and tests. ## Pass 04 — Dataset Manager Backend Goal: implement upload registry, storage paths, metadata model, dataset status state machine, and API contracts. ## Pass 05 — Vector Processing Core Goal: implement vector metadata extraction, GeoJSON import, clipping, CRS validation, and simple spatial metrics. ## Pass 06 — Raster Processing Core Goal: implement raster metadata extraction, bounds/resolution/bands, and safe unavailable states for advanced operations. ## Pass 07 — Frontend Foundation Goal: create React/Vite app, API client, layout, routing, design system primitives, and health/status view. ## Pass 08 — Map Workbench Goal: MapLibre page, project area drawing/import, layer toggles, vector display, and API integration. ## Pass 09 — Dataset Manager UI Goal: upload/list/status/metadata UI with error/empty/loading states. ## Pass 10 — Detection Pipeline Adapter Goal: implement detection run entity, adapter interface, demo/local adapter, result storage, and GeoJSON output. ## Pass 11 — QA/QC Engine Goal: implement polygon matching, IoU/precision/recall/F1, reference layer comparison, and QA output API. ## Pass 12 — Export Engine Goal: implement GeoJSON exports for areas, layers, detections, and QA findings. ## Pass 13 — Demo Workflow Goal: create a guided demo page for Geel building detection + QA against reference polygons using fixtures. ## Pass 14 — Smoke Test and Documentation Update Goal: add smoke scripts, update README quickstart, TODO, and pass report. ## Pass 15 — Polish Without Scope Creep Goal: improve UI clarity, validation copy, accessibility, and minor performance without changing scope.