Files
geointel/docs/12-build-control/BUILD_SEQUENCE_LOCK.md
T
Jens faeb58ef6d
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
Initial public release
2026-08-31 21:56:53 +02:00

3.2 KiB

Build Sequence Lock

This file freezes the order in which Codex should build GeoIntel V1. Codex can split passes into smaller chunks, but it must not reorder major dependencies.

Phase 0 — Repository Verification

  • Verify folder structure.
  • Verify documentation set exists.
  • Verify .env.example and docker-compose exist.
  • Verify scripts are executable or document how to run them.
  • Verify fixtures are valid GeoJSON.

Exit criteria:

  • all preflight scripts run or have clear remediation notes.

Phase 1 — Backend Foundation

  • FastAPI app shell.
  • Health endpoint.
  • Settings/config loader.
  • Structured error response model.
  • CORS configured for local frontend.
  • Logging baseline.

Exit criteria:

  • backend imports successfully.
  • /health returns service status.
  • config is read from environment.

Phase 2 — Database Foundation

  • SQLAlchemy or SQLModel models.
  • Alembic migrations.
  • PostGIS extension migration.
  • project, area, dataset, analysis_run base tables.
  • geometry storage strategy implemented.

Exit criteria:

  • migrations run against PostGIS.
  • seed script creates one project and one area.

Phase 3 — Project, Area and Dataset APIs

  • CRUD for projects.
  • CRUD for areas.
  • dataset upload endpoint.
  • metadata extraction queue boundary.
  • file storage path convention.

Exit criteria:

  • OpenAPI docs expose complete endpoints.
  • API tests pass for create/list/read flows.

Phase 4 — Geospatial Metadata

  • vector metadata extraction.
  • raster metadata extraction.
  • CRS validation.
  • bounds extraction.
  • geometry validation.

Exit criteria:

  • sample GeoJSON returns feature count, bounds and CRS status.
  • sample raster placeholder or documented stub returns safe metadata response.

Phase 5 — Frontend Shell

  • React app.
  • routing.
  • layout.
  • API client.
  • project list.
  • project workspace.
  • map workspace placeholder.

Exit criteria:

  • frontend starts.
  • health check visible.
  • project list loads from API.

Phase 6 — Map and Layer Foundation

  • MapLibre map.
  • draw/select area.
  • layer manager.
  • vector layer rendering.
  • dataset detail panel.

Exit criteria:

  • fixture GeoJSON renders on map.
  • drawn area can be saved through API.

Phase 7 — QA/QC Foundation

  • load predicted and reference polygons.
  • compute IoU-based matching.
  • compute precision, recall and F1.
  • create QA result payload.
  • render QA dashboard.

Exit criteria:

  • fixture QA returns deterministic metrics.
  • false positives and false negatives are exported as GeoJSON.

Phase 8 — Detection Interface Boundary

  • detection run model.
  • detection service interface.
  • model registry stub.
  • deterministic fixture-based inference fallback.
  • later YOLO integration boundary.

Exit criteria:

  • detection run can produce geospatial detections using fixture mode.
  • output is stored and visible as layer.

Phase 9 — Export Pipeline

  • export GeoJSON.
  • export metrics JSON.
  • prepare report shell.
  • export provenance metadata.

Exit criteria:

  • user can download GeoJSON output from UI.

Phase 10 — Stabilization

  • smoke tests.
  • contract tests.
  • docs update.
  • changelog.
  • known limitations.

Exit criteria:

  • V1 vertical slice is demonstrable end-to-end.