pridany AGENTS.md
This commit is contained in:
45
AGENTS.md
Normal file
45
AGENTS.md
Normal 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.
|
||||
Reference in New Issue
Block a user