# EvoBGP — руководство для ИИ-агентов Краткая карта репозитория. Полная архитектура: [docs/architecture.md](docs/architecture.md). HTTP: [docs/openapi.yaml](docs/openapi.yaml). ## Monorepo (фронтенд) ``` EvoBGP/ ├── cmd/, internal/ # Go API /v1 ├── apps/web/ # SvelteKit SPA (@evobgp/web) ├── packages/ui/ # @evobgp/ui — shadcn-svelte primitives ├── packages/shared/ # @evobgp/shared — types, Zod contracts └── pnpm-workspace.yaml ``` | Слой | Импорт | |------|--------| | Примитивы | `@evobgp/ui/components/*` | | CSS | `@evobgp/ui/styles/globals.css` | | Типы/контракты | `@evobgp/shared/types/*`, `@evobgp/shared/contracts/*` | | Паттерны UI | `$lib/components/*`, `$lib/components/patterns/*` | | Queries | `$lib/queries/*` (`@tanstack/svelte-query`) | ## С чего начать 1. **Правила:** [engineering.mdc](.cursor/rules/engineering.mdc), [web-shadcn.mdc](.cursor/rules/web-shadcn.mdc), [frontend-monorepo.mdc](.cursor/rules/frontend-monorepo.mdc) 2. **Фронт:** [apps/web/README.md](apps/web/README.md) 3. **Go:** `internal/httpapi/`, `internal/store/`, `internal/pipeline/` ## Команды ```powershell pnpm install pnpm --filter @evobgp/web dev pnpm --filter @evobgp/web build pnpm --filter @evobgp/web check pnpm --filter @evobgp/web lint ``` После правок `apps/web/**` — **обязательно** `check` и `lint` (WEB-19). ## UX-эталон (vps-tracker, без ReUI) - **Shell:** `layout/app-shell.svelte` — sidebar-07, `collapsible="icon"`, 5 nav-групп (`nav.ts`), `AppBrand`, `ThemeMenu` в top header, breadcrumb с parent - **Страница:** `PageShell` → `PageHeader` (без icon) → `QueryState` / контент - **Метрики:** `SectionCards` (не KpiMetricsGrid) - **Таблицы:** `DataTableCard` + `AppDataTable` (не голый `Card` + `Table`) - **Tabs:** line-variant через `LINE_TAB_TRIGGER_CLASS` (`$lib/ui/app/tabs.ts`) - **Тема:** `packages/ui/src/styles/globals.css` синхронизирован с vps-tracker (semantic tokens) ## Коммиты При запросе коммита: [conventional-commits.mdc](.cursor/rules/conventional-commits.mdc), скилл `.cursor/skills/commit-message/SKILL.md`.