# Agentic Contract Map (Current Stack) This file maps `PROJECT_INSTRUCTIONS.md` architecture intent to the current repository stack. ## Current stack - Backend: Express (`backend/`) - Frontend: React + Vite (`frontend/`) ## Contract mapping ### API Route Handlers (`app/api/**/route.ts` intent) Current equivalent: - `backend/routes/*.js` - `backend/controllers/*.js` Expectation: - Keep these thin for parsing/validation and response shape. - Delegate DB and authorization-heavy logic to model/service layers. ### Server Services (`lib/server/*` intent) Current equivalent: - `backend/models/*.js` - `backend/middleware/*.js` - `backend/db/*` Expectation: - Concentrate DB access and authorization logic in these backend layers. - Avoid raw DB usage directly in route files unless no service/model exists. ### Client Wrappers (`lib/client/*` intent) Current equivalent: - `frontend/src/api/*.js` Expectation: - Centralize fetch/axios calls and error normalization here. - Always send credentials/authorization headers as required. ### Hooks (`hooks/use-*.ts` intent) Current equivalent: - `frontend/src/context/*` - `frontend/src/utils/*` for route guards Expectation: - Keep components free of direct raw network calls where possible. - Favor one canonical state propagation mechanism per concern. ## Notes - This map does not force a framework migration. - It defines how to apply the contract consistently in the existing codebase.