# FOLDER OWNERSHIP AND RESPONSIBILITIES Codex must keep responsibilities separated. ## `backend/app/api/` HTTP routes only. No heavy business logic. ## `backend/app/schemas/` Pydantic request/response models and API DTOs. ## `backend/app/models/` Database ORM models. ## `backend/app/services/` Business logic and orchestration. ## `backend/app/repositories/` Database access patterns if repository layer is used. ## `backend/app/workers/` RQ/Celery/background job entry points. ## `backend/app/geo/` GIS-specific helpers: CRS, geometry validation, bounds, area calculations. ## `backend/app/storage/` File storage logic. ## `backend/tests/` Backend tests. Tests should not live beside production modules unless project conventions are changed deliberately. ## `frontend/src/pages/` Route-level pages. ## `frontend/src/components/` Reusable UI components. ## `frontend/src/features/` Feature-oriented frontend modules, e.g. projects, datasets, map, exports. ## `frontend/src/services/` API client/services. ## `frontend/src/stores/` Client state only if needed. ## `docs/` Architecture, specs and governance. Update docs when contracts or build rules change. ## `demo/` Small golden fixtures and demo manifests. Not production storage. ## `datasets/` Local development data folders. Do not commit large real datasets. ## `storage/` Runtime storage. Keep `.gitkeep`, do not commit generated artifacts.