# Project Agent Guide ## Project overview This repository contains **juri-merger**, a German-language SvelteKit application whose current UI is branded as **beA-Edit**. The main route lets users select or drag ZIP files in the browser. It currently displays the selected filenames; no server-side upload or archive-processing flow is present in this version. The application also contains German legal pages for the imprint and privacy policy. ## Technology stack - SvelteKit 2 - Svelte 5 with runes mode forced for project source files - TypeScript with strict mode - Vite 8 - Tailwind CSS 4 through `@tailwindcss/vite` - Skeleton 4 with a custom `nominandum` theme - pnpm and `pnpm-lock.yaml` - `@sveltejs/adapter-auto` - Prettier with the Svelte and Tailwind plugins Use **pnpm**, not npm or yarn, when installing packages or running project scripts. ## Commands ```sh pnpm install # Install dependencies pnpm dev # Start the development server pnpm build # Create a production build pnpm preview # Preview the production build pnpm check # Run Svelte and TypeScript diagnostics pnpm check:watch # Run diagnostics in watch mode pnpm lint # Check formatting with Prettier pnpm format # Format the repository with Prettier ``` There is currently no automated unit or end-to-end test suite. For code changes, run at least: ```sh pnpm check pnpm lint pnpm build ``` If pre-existing warnings remain outside the files being changed, report them rather than making unrelated edits. ## Repository structure ```text src/ ├── app.html # German document shell and Skeleton theme selection ├── app.d.ts # SvelteKit application type declarations ├── lib/ │ ├── assets/ # Bundled favicon and Nunito font files │ ├── components/ # Reusable Svelte components │ │ ├── Button.svelte │ │ ├── Card.svelte │ │ └── ZipDropzone.svelte │ ├── index.ts # Public `$lib` exports │ └── nom-theme.css # Custom Skeleton theme tokens └── routes/ ├── +layout.svelte # Shared logo header and branded footer ├── +page.svelte # Main ZIP-selection page ├── layout.css # Tailwind/Skeleton imports and global font setup ├── datenschutz/+page.svelte # Privacy policy └── impressum/+page.svelte # Imprint static/ # Files served unchanged from the site root ``` Generated directories such as `.svelte-kit/`, `build/`, and `node_modules/` must not be edited or committed. ## Svelte conventions - Use Svelte 5 runes and current event syntax. Prefer `$props()`, `$state`, `$derived`, snippets, `{@render ...}`, and handlers such as `onclick` over legacy APIs. - Keep component scripts typed with `