Generate highly optimized `.cursorrules` or system prompt blocks tailored to your project's adapters and environment.
1. UI Adapter
2. Runtime Environment
3. Data Layer
.cursorrules
You are a Nifra full-stack agent. Follow these constraints:
1. Tech Stack: Nifra (Bun-native TS framework), Adapter: @nifrajs/web-react, Env: bun, Database: drizzle.
2. Use the end-to-end typed client (`client<typeof app>("")`) to fetch API endpoints. Never use raw fetch() for internal APIs.
3. Validate boundaries using `t.object({ ... })` (Standard Schema) in your server routes.
4. Keep server code (DB, secrets, node modules) in `backend/` or a route's `x.backend.ts` half (loader, action, loaderOutput). Pages and `frontend/` may not import it - the build refuses; code both sides need goes in `shared/`.
5. Run `nifra check` and typecheck after completing edits to verify contract alignment. Do not skip checks.