Files
trips/AGENTS.md

44 lines
2.0 KiB
Markdown

# Repository Guidelines
## Project Structure & Module Organization
- `src/`: SvelteKit application source.
- `src/routes/`: File-based routes and server handlers (e.g., `+page.server.ts`).
- `src/lib/`: Shared UI and server modules (`components/`, `server/`, `assets/`).
- `src/tests/`: Test helpers and stubs; unit tests live alongside code and match `src/**/*.test.ts`.
- `static/`: Public assets served as-is.
- `build/`: Production build output (generated).
- `trips.db`: Local SQLite database for development.
## Build, Test, and Development Commands
- `npm run dev`: Start the Vite dev server.
- `npm run build`: Create a production build.
- `npm run preview`: Serve the production build locally.
- `npm run check`: Typecheck with `svelte-check`.
- `npm run lint`: Run ESLint on `src`.
- `npm run format`: Format with Prettier (Svelte + Tailwind plugins).
- `npm run test`: Run Vitest once.
- `npm run test:watch`: Watch mode for Vitest.
- `npm run test:coverage`: Coverage for `src/lib/server/**/*.ts` (db layer excluded).
## Coding Style & Naming Conventions
- Indentation: tabs (see `.prettierrc`).
- Quotes: single quotes; trailing commas disabled.
- Svelte components use `.svelte`; TypeScript modules use `.ts`.
- Routes follow SvelteKit conventions (e.g., `+page.svelte`, `+layout.server.ts`).
- Use `$lib` alias for `src/lib` imports.
## Testing Guidelines
- Framework: Vitest with `node` environment.
- Test file pattern: `src/**/*.test.ts`.
- Keep tests near the code they cover; use `src/tests/stubs` for runtime stubbing.
## Commit & Pull Request Guidelines
- Commit messages currently follow a light “scope) message” pattern, e.g.,
- `trips) adding package-tours option`
- `trip) adding support for lodgings`
- PRs should include a clear description of intent, testing performed (or why not), and any relevant screenshots for UI changes.
## Configuration & Environment
- Copy `.env.example` to `.env` for local secrets and auth settings.
- SQLite data lives in `trips.db`; avoid committing local data changes unless intentional.