Initial GeoIntel V1 foundation
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# START HERE — GeoIntel Day 1 Master Prompt
|
||||
|
||||
You are Codex working on GeoIntel Kempen.
|
||||
|
||||
GeoIntel is a GeoAI Workbench for the Belgian Kempen. It must demonstrate geospatial data engineering, raster/vector processing, AI detection readiness, QA/QC against reference data and exportable GIS outputs.
|
||||
|
||||
## Required reading before edits
|
||||
|
||||
Read:
|
||||
|
||||
- `README.md`
|
||||
- `AGENTS.md`
|
||||
- `docs/V1_SCOPE_FREEZE.md`
|
||||
- `docs/REPOSITORY_CONVENTIONS.md`
|
||||
- `docs/SERVICE_ARCHITECTURE.md`
|
||||
- `docs/15-tomorrow-execution/M8_TOMORROW_EXECUTION_PACK.md`
|
||||
- `docs/16-autonomy-governance/AUTONOMY_BOUNDARIES.md`
|
||||
- `docs/16-autonomy-governance/QUALITY_GATE_MATRIX.md`
|
||||
|
||||
## Work rules
|
||||
|
||||
- Work pass by pass.
|
||||
- Do not skip validation.
|
||||
- Do not introduce mock-only business logic.
|
||||
- Preserve contracts.
|
||||
- Update docs and logs when changes are made.
|
||||
- Stop only for red-zone decisions or impossible dependency blockers.
|
||||
|
||||
## First action
|
||||
|
||||
Run pass `01_REPO_AUDIT_AND_PLAN.md`.
|
||||
@@ -0,0 +1,24 @@
|
||||
# Pass 01 — Repository Audit and Build Plan
|
||||
|
||||
## Goal
|
||||
|
||||
Audit the repository and produce a concrete build plan for the first implementation day. Do not implement product features in this pass.
|
||||
|
||||
## Tasks
|
||||
|
||||
1. Inspect the repo structure.
|
||||
2. Confirm required docs are present.
|
||||
3. Identify missing foundation files.
|
||||
4. Decide exact implementation sequence for the day, staying within existing docs.
|
||||
5. Update `docs/CODEX_EXECUTION_LOG.md` with the audit result.
|
||||
6. Update `docs/TODO.md` only if tasks need clearer sequencing.
|
||||
|
||||
## Validation
|
||||
|
||||
- No broken files introduced.
|
||||
- No product scope changes.
|
||||
- No dependency changes unless only adding documentation.
|
||||
|
||||
## Completion output
|
||||
|
||||
Use the standard pass completion format.
|
||||
@@ -0,0 +1,32 @@
|
||||
# Pass 02 — Backend Foundation
|
||||
|
||||
## Goal
|
||||
|
||||
Create the minimal FastAPI backend foundation.
|
||||
|
||||
## Implement
|
||||
|
||||
- `backend/app/main.py` or equivalent app entrypoint.
|
||||
- config/settings module using environment variables.
|
||||
- health endpoint.
|
||||
- consistent response envelope.
|
||||
- structured error handling foundation.
|
||||
- backend test setup.
|
||||
|
||||
## Constraints
|
||||
|
||||
- Health endpoint must not require database.
|
||||
- No geospatial logic in route handlers.
|
||||
- Keep service layer boundaries ready.
|
||||
- Do not add auth.
|
||||
|
||||
## Validation commands
|
||||
|
||||
Run the available backend tests/import checks. If package tooling does not exist yet, add minimal test tooling according to dependency policy.
|
||||
|
||||
## Acceptance
|
||||
|
||||
- App imports cleanly.
|
||||
- Health endpoint returns deterministic response.
|
||||
- Tests pass for health/config.
|
||||
- Execution log updated.
|
||||
@@ -0,0 +1,32 @@
|
||||
# Pass 03 — Database and Domain Foundation
|
||||
|
||||
## Goal
|
||||
|
||||
Add the PostGIS-ready database/domain foundation.
|
||||
|
||||
## Implement
|
||||
|
||||
- SQLAlchemy database setup.
|
||||
- Alembic migration setup.
|
||||
- Core models: Project, Area, Dataset, AnalysisRun, Export.
|
||||
- Pydantic schemas matching API contract style.
|
||||
- Geometry handling strategy ready for PostGIS.
|
||||
|
||||
## Constraints
|
||||
|
||||
- Do not store geometry as arbitrary strings in final domain models.
|
||||
- If test environment cannot run PostGIS, isolate integration tests and keep unit tests safe.
|
||||
- Do not remove future raster/AI fields because V1 starts smaller.
|
||||
|
||||
## Validation
|
||||
|
||||
- Backend imports.
|
||||
- Model metadata initializes.
|
||||
- Migration command documented or executed if environment allows.
|
||||
- Unit tests pass.
|
||||
|
||||
## Acceptance
|
||||
|
||||
- Domain model can support project -> area -> dataset -> analysis.
|
||||
- Geometry metadata and CRS are represented.
|
||||
- Execution log updated.
|
||||
@@ -0,0 +1,31 @@
|
||||
# Pass 04 — Project, Area and Dataset API
|
||||
|
||||
## Goal
|
||||
|
||||
Implement first real API slice.
|
||||
|
||||
## Implement
|
||||
|
||||
- Project create/list/read.
|
||||
- Area create/list/read for a project.
|
||||
- Dataset registration endpoint and metadata placeholder contract.
|
||||
- Validation for GeoJSON polygon areas.
|
||||
- Contract tests with fixtures.
|
||||
|
||||
## Constraints
|
||||
|
||||
- No frontend-only fake data assumptions.
|
||||
- Invalid geometry must produce structured error.
|
||||
- Dataset upload may be scaffolded, but response contracts must be stable.
|
||||
|
||||
## Validation
|
||||
|
||||
- API tests.
|
||||
- Contract fixture comparison where possible.
|
||||
- Backend import.
|
||||
|
||||
## Acceptance
|
||||
|
||||
- A client can create a project, add an area, register a dataset and retrieve them.
|
||||
- Responses follow the documented envelope.
|
||||
- Execution log updated.
|
||||
@@ -0,0 +1,32 @@
|
||||
# Pass 05 — Frontend Shell
|
||||
|
||||
## Goal
|
||||
|
||||
Create the GeoIntel Workbench frontend shell.
|
||||
|
||||
## Implement
|
||||
|
||||
- React + TypeScript app foundation if not present.
|
||||
- Route layout: Home, Project Workspace, Map Workbench, Dataset Manager, Raster Lab, Vector Lab, Detection Lab, QA/QC, Exports.
|
||||
- API client with typed methods for implemented backend endpoints.
|
||||
- Empty/loading/error states.
|
||||
- Environment-based API base URL.
|
||||
|
||||
## Constraints
|
||||
|
||||
- Do not build a generic admin dashboard.
|
||||
- Do not hardcode success data.
|
||||
- UI must reflect GeoAI Workbench identity.
|
||||
|
||||
## Validation
|
||||
|
||||
- TypeScript check/build.
|
||||
- Frontend tests if configured.
|
||||
- Manual smoke note in execution log.
|
||||
|
||||
## Acceptance
|
||||
|
||||
- Frontend starts/builds.
|
||||
- Navigation works.
|
||||
- API client can call health/project endpoints.
|
||||
- Execution log updated.
|
||||
@@ -0,0 +1,31 @@
|
||||
# Pass 06 — Raster and Vector Metadata Foundation
|
||||
|
||||
## Goal
|
||||
|
||||
Add first geospatial metadata services.
|
||||
|
||||
## Implement
|
||||
|
||||
- GeoJSON/vector metadata extraction using GeoPandas/Shapely where available.
|
||||
- Raster metadata service interface using Rasterio where available.
|
||||
- Controlled unavailable-state if Rasterio/GDAL is not installed.
|
||||
- Metadata endpoint connected to dataset records.
|
||||
- Fixture-driven tests.
|
||||
|
||||
## Constraints
|
||||
|
||||
- Do not fake metadata as real processing.
|
||||
- Unsupported file types must produce controlled errors.
|
||||
- Keep CRS/bounds/resolution fields explicit.
|
||||
|
||||
## Validation
|
||||
|
||||
- Vector metadata tests pass.
|
||||
- Raster service imports or unavailable-state test passes.
|
||||
- API contract remains stable.
|
||||
|
||||
## Acceptance
|
||||
|
||||
- Demo GeoJSON fixture returns deterministic metadata.
|
||||
- Dataset metadata can be retrieved.
|
||||
- Execution log updated.
|
||||
@@ -0,0 +1,28 @@
|
||||
# Pass 07 — Vertical Slice Stabilization
|
||||
|
||||
## Goal
|
||||
|
||||
Stabilize the first working slice and prepare for next-day AI/GIS expansion.
|
||||
|
||||
## Implement
|
||||
|
||||
- Smoke script or documented smoke command sequence.
|
||||
- Changelog entry.
|
||||
- Updated TODO checklist.
|
||||
- Known limitations section.
|
||||
- Any missing tests for touched modules.
|
||||
|
||||
## Validate
|
||||
|
||||
Run all available checks:
|
||||
|
||||
- backend tests;
|
||||
- frontend build/typecheck;
|
||||
- smoke script;
|
||||
- import checks.
|
||||
|
||||
## Acceptance
|
||||
|
||||
- Foundation can be started or limitations are clearly documented.
|
||||
- No hidden failing imports.
|
||||
- Next recommended pass is listed.
|
||||
Reference in New Issue
Block a user