# Agent Instructions This is a SvelteKit 5 project with TypeScript and Tailwind CSS for a router dashboard interface. ## Build Commands ```bash # Development server npm run dev # Build for production npm run build # Preview production build npm run preview # Type checking npm run check npm run check:watch # Linting and formatting npm run lint npm run format ``` ## Code Style Guidelines ### TypeScript - Use strict TypeScript mode - Use `import type` for type-only imports - Prefer interfaces over type aliases for object shapes - Use PascalCase for types, interfaces, enums, and components - Use camelCase for functions, variables, and properties - Enum values use PascalCase (e.g., `IPv4`, `Static`) - Use explicit return types on exported functions ### Svelte 5 Runes - Use `$props()` for component props with typed interfaces - Use `$derived()` for computed values - Always define Props interface for component props - Example: ```svelte ``` ### Formatting - Use 2 spaces for indentation - Single quotes for strings - Trailing commas enabled - No semicolons - Print width: 100 - Tailwind CSS class sorting enabled ### Imports - Use `$lib/` alias for imports from src/lib - Group imports: external libraries, then $lib imports, then relative imports - Use type imports: `import type { NetworkInterface } from '$lib/types'` ### Error Handling - Use optional chaining (`?.`) and nullish coalescing (`??`) for safe property access - Provide default values for optional props - Use proper TypeScript narrowing with type guards when needed ### Component Structure - One component per file - Use `.svelte` extension for components - Place reusable UI components in `$lib/components/ui/` - Place feature-specific components in `$lib/components//` - Use `Snippet` type from svelte for children props ### Styling - Use Tailwind CSS classes - Prefer utility classes over custom CSS - Use color utilities from the project's palette (green-600, yellow-600, red-600, etc.) ## MCP Tools You have access to Svelte 5 and SvelteKit documentation via MCP: ### 1. list-sections Use FIRST to discover available documentation sections. ### 2. get-documentation Fetch documentation for specific sections after listing. ### 3. svelte-autofixer MUST use this tool whenever writing Svelte code before sending to the user. Keep calling until no issues remain. ### 4. playground-link Generate Svelte Playground links after user confirmation. Never use if code was written to project files. ## Project Structure ``` src/ routes/ # SvelteKit routes lib/ components/ # Svelte components ui/ # Reusable UI primitives network/ # Network-specific components types.ts # TypeScript type definitions utils/ # Utility functions static/ # Static assets ```