46 lines
1.9 KiB
Markdown
46 lines
1.9 KiB
Markdown
# Frontend AGENTS
|
|
|
|
This directory is a Vite + React + TypeScript frontend. Follow the current split between pages, shared state/helpers, auth context, and reusable UI.
|
|
|
|
## Frontend layout
|
|
|
|
- `src/pages`: route-level screens and page-scoped state modules.
|
|
- `src/lib`: API helpers, cache helpers, schedule utilities, shared types, and test files.
|
|
- `src/auth`: authentication context/provider.
|
|
- `src/components/layout`: page shell/layout components.
|
|
- `src/components/ui`: reusable UI primitives.
|
|
- `src/index.css`: global styles.
|
|
|
|
## Real frontend commands
|
|
|
|
Run these from `front/`:
|
|
|
|
- `npm run dev`
|
|
- `npm run build`
|
|
- `npm run preview`
|
|
- `npm run clean`
|
|
- `npm run lint`
|
|
- `npm run test`
|
|
|
|
Run this from the repository root for OSS publishing:
|
|
|
|
- `node scripts/deploy-front-oss.mjs`
|
|
- `node scripts/deploy-front-oss.mjs --dry-run`
|
|
- `node scripts/deploy-front-oss.mjs --skip-build`
|
|
|
|
Important:
|
|
|
|
- `npm run lint` is the current TypeScript check because it runs `tsc --noEmit`.
|
|
- There is no separate ESLint script.
|
|
- There is no separate `typecheck` script beyond `npm run lint`.
|
|
- OSS publishing uses `scripts/deploy-front-oss.mjs`, which reads credentials from environment variables or the repository root `.env` file, with `.env.oss.local` kept only as a legacy fallback.
|
|
|
|
## Frontend rules
|
|
|
|
- Keep route behavior in `src/pages` and shared non-UI logic in `src/lib`.
|
|
- Add or update tests next to the state/helper module they exercise, following the existing `*.test.ts` pattern.
|
|
- Preserve the current Vite alias usage: `@/*` resolves from the `front/` directory root.
|
|
- If a change depends on backend API behavior, verify the proxy expectations in `vite.config.ts` before hardcoding URLs.
|
|
- Use the existing `npm run build`, `npm run test`, and `npm run lint` commands for validation; do not invent a separate frontend verification command.
|
|
- For release work, let the deployer agent publish `front/dist` through `scripts/deploy-front-oss.mjs` instead of manual object uploads.
|