# Frontend context Read `ai/shared.md` first. This file covers frontend-specific rules. ## Project context **Stack:** Vue 3.5, TypeScript 6, Vite 8, Vue Router 5, Pinia 4, npm. **Location:** `frontend/website/`. The frontend is a standalone application. Keep its source, dependencies, development server, and production build independent from the backend unless the user explicitly requests integration. The scaffold uses: - `src/App.vue` as the root component. - `src/main.ts` to create the app and install the router and Pinia. - `src/router/index.ts` for routes. - `src/stores/` for Pinia stores. - `@` as an alias for `src/` in both Vite and TypeScript. There are no views, shared components, API layer, or test setup yet. Do not invent an architecture for them before requested behavior establishes one. ## Package management and commands Use npm and keep `package-lock.json` committed. Run commands from `frontend/website/`. Install dependencies in a fresh checkout or worktree: ```sh npm install ``` Start the development server on the port assigned by the shell hook: ```sh npm run dev -- --port "$VITE_PORT" ``` `process-compose` does not start or proxy the frontend. The available validation commands are: ```sh npm run format npm run lint npm run type-check npm run build ``` `npm run format` and `npm run lint` rewrite files. Review the resulting diff. `npm run build` runs type checking and the production build. Build output under `dist/` is generated and ignored. ## Vue conventions - Use the Composition API and `