# AGENTS.md
## Build / Lint / Test
- **dev** – Start dev server
`npm run dev` (or `yarn dev`)
- **build** – Build production assets
`npm run build`
- **preview** – Preview local build
`npm run preview`
- **lint** – Run ESLint (if configured)
`npx eslint . --ext .js,.vue`
*(install ESLint first if missing: `npm i -D eslint`)*
- **test** – Run all Vitest tests
`npx vitest`
- **test:one** – Run a single test file (replace `Path/To/Test.vue`)
`npx vitest src/__tests__/Path/To/Test.vue`
## Code‑Style Guidelines
| Topic | Guideline |
|-------|-----------|
| **Imports** | Keep external imports at the top, sorted alphabetically. Local relative imports follow. Separate groups by a blank line. |
| **Formatting** | Use Prettier (installed via `npm i -D prettier`) – `npx prettier --write .`. Two‑space indent, single quotes, trailing commas where possible. |
| **Type‑Safety** | Add JSDoc types or TypeScript (`*.ts`/`*.tsx`). When using Vue 3, define component props/types in `script setup`. |
| **Naming** | - Components: PascalCase (`MoviePosterCard.vue`).
- Variables/Props: camelCase.
- Constants: UPPER_SNAKE_CASE. |
| **Error Handling** | Prefer `try…catch` around async API calls; log errors to console and surface user‑friendly messages using `alert` or Snackbar. |
| **Testing** | Write tests in `src/__tests__/` with the same relative path as the source file. Use `vitest` – snapshots for component rendering. |
| **Linting** | Enforce no‑undef, no‑unused-vars, and camelcase rules. Add a `.eslintrc.cjs` if missing. |
| **Commit style** | Conventional commits (`feat:`, `fix:`, `refactor:`) – not mandatory but recommended. |
## Cursor / Copilot Rules
*(None currently found. Add rules in `.cursor/rules/` or `.cursorrules` if needed.)*
---
**Tip:** Run `npm run dev` then hit **Ctrl+C** to exit; repeat for preview/build. Use `npx vitest` to run all tests. For a single file, pass the path to the test as shown above.