pridany AGENTS.md

This commit is contained in:
2026-08-01 20:06:27 +02:00
parent dc7341c97f
commit 27f96afb89

45
AGENTS.md Normal file
View File

@ -0,0 +1,45 @@
# Repository Guidelines
## Project Structure & Module Organization
The application lives in `frontend/`; run Node and npm commands there. Vue source is under `frontend/src/`:
- `components/` contains the canvas editor, toolbar, settings, lists, and export UI.
- `views/` owns page-level layout; `stores/mosaic.ts` is the primary Pinia state and workflow coordinator.
- `utils/` contains framework-light color conversion, flood fill, RLE masks, persistence, and export logic.
- `types/` defines shared TypeScript models; `composables/` contains viewport behavior.
- `assets/` is for bundled assets, while `public/` contains favicons and static files copied unchanged.
Repository documentation is in `README.md`; screenshots belong in `doc/`. Generated `frontend/dist/` and root `dist/` outputs are not source files.
## Build, Test, and Development Commands
From `frontend/`:
```bash
npm install # install dependencies
npm run dev # start the Vite development server
npm run type-check # run vue-tsc
npm run lint # run Oxlint and ESLint with automatic fixes
npm run format # format src/ with Prettier
npm run build # type-check and create frontend/dist/
npm run preview # serve the production build locally
```
Node.js must satisfy `^22.18.0 || >=24.12.0`. The root `build.bat` creates the deployable root `dist/` on Windows.
## Coding Style & Naming Conventions
Use Vue 3 Composition API and `<script setup lang="ts">`. Indent with two spaces, omit semicolons, prefer single quotes, and keep lines near 100 characters. Use PascalCase for Vue components (`MosaicCanvas.vue`), camelCase for functions and variables, and `useXxx` for composables. Keep UI text Slovak and code identifiers English. Avoid `any`; share types from `src/types/`. Keep large `ImageData`, `Blob`, canvas, and typed-array values shallow or marked raw.
## Testing Guidelines
No test runner or coverage threshold is currently configured. Every change must pass `npm run type-check`, `npm run lint`, and `npm run build`. Keep algorithmic logic in `utils/` so it can be tested without browser automation. If a test framework is introduced, use focused `*.test.ts` files and cover color math, flood fill, RLE operations, serialization, and backward compatibility.
## Commit & Pull Request Guidelines
History uses short, descriptive Slovak commit subjects (for example, `aktualizovany README.md`) rather than Conventional Commits. Keep each commit focused and describe the outcome. Pull requests should include a concise summary, verification commands and results, linked issue when applicable, and screenshots for visible UI changes. Call out project-format or IndexedDB compatibility changes explicitly.
## Security & Deployment
Image processing must remain local to the browser; do not add uploads or external APIs without explicit approval. `deploy.bat` targets a specific remote host and deletes its deployment directory before syncing—never run it without repository-owner authorization.