Files
EvoBGP/AGENTS.md
T
Denozordec 3859983ae5
CI / changes (push) Successful in 7s
CI / commitlint (push) Skipped
CI / openapi (push) Skipped
CI / web (push) Successful in 1m7s
CI / go (push) Successful in 2m11s
CI / bird2 (push) Successful in 17s
CI / release (push) Successful in 3m46s
refactor: update UI components to utilize Frame for improved layout and consistency
Refactored multiple components, including PanelCard, SettingsCard, and DataGridShell, to replace Card with Frame for better organization and presentation. Enhanced the DataGridToolbar to support optional ReUI filters and improved the overall structure of the KPI stat grid. Updated .gitignore to include .env.local for local environment configurations, ensuring better management of environment variables.
2026-07-17 15:30:41 +07:00

6.8 KiB
Raw Blame History

Руководство для ИИ-агентов (экономия контекста)

Краткие ориентиры по репозиторию EvoBGP, чтобы не тратить токены на полное сканирование дерева и повторное чтение одних и тех же файлов.

С чего начать (минимум чтения)

  1. Инженерные правила — при изменении кода следовать .cursor/rules/engineering.mdc; для apps/web/ + packages/ui/.cursor/rules/web-shadcn.mdc; для birdfmt / pipeline / BIRD — .cursor/rules/networking-bird.mdc. Context7 (документация библиотек) — закреплённые ID стека: .cursor/rules/context7-stack.mdc; скилл .cursor/skills/context7-evobgp/SKILL.md.
  2. docs/README.md — оглавление и роли читателя.
  3. docs/architecture.md — компоненты cmd/, карта internal/, потоки данных (одного этого файла обычно достаточно для ориентации).
  4. Задача-специфично: docs/api.md, docs/access.md — только если меняете API или доступ.

Источник правды по HTTP-контракту: docs/openapi.yaml. Не дублируйте длинные фрагменты спецификации в ответах — ссылайтесь на путь и тег/операцию.

Карта кода (куда смотреть)

Область Где искать
REST, auth, CORS internal/httpapi/
Бизнес-слой и абстракция хранилища internal/store/
PostgreSQL internal/repository/, internal/db/, migrations/
Фоновые задачи internal/jobs/
Цепочка refresh модуля (ingest+render, BIRD preview) internal/pipeline/
Конфиг BIRD, birdc internal/birdfmt/, internal/birddeploy/
Бандлы и подписи internal/bundle/, internal/signing/
Точки входа процессов cmd/*/
Веб (SvelteKit) web/
Compose, деплой deploy/compose/

Точки входа бинарников и их роли — в таблице в начале docs/architecture.md.

Как не раздувать контекст

  • Сначала узкий поиск: grep/поиск по символу или короткий семантический запрос по одной папке (internal/httpapi/, internal/pipeline/, …), а не чтение всех .go подряд.
  • Читайте файлы целиком только при необходимости: большие файлы — с offset/limit или по найденным строкам.
  • Не подтягивайте в контекст: web/node_modules/, сгенерированные артефакты сборки, бинарники, полный openapi.html, если достаточно openapi.yaml.
  • Повторное использование: если docs/architecture.md уже описывает поток — не пересказывайте его длинно; укажите документ и конкретный подпункт задачи.
  • Длинные планы: .cursor/plans/*.plan.md — для истории решений; для навигации пользователю достаточно docs/; не читайте план целиком без причины.

Коммиты (Conventional Commits)

Если пользователь просит коммит, commit message, закоммить, git commit, /commit-message или это следует из плана — сразу:

  1. Shell: powershell -NoProfile -File scripts/commit/staged-context.ps1 (первый вызов, до текста коммита).
  2. Скилл .cursor/skills/commit-message/SKILL.md и правило .cursor/rules/conventional-commits.mdc.

Без вывода скрипта (exit 0) не придумывать сообщение коммита. Заголовок — EN, тело — RU; несвязанные области — auto-split (скилл).

Кнопка Generate commit message в Source Control skill/rule не использует. Для сообщений по правилам EvoBGP — Agent Chat → /commit-message (см. .cursor/commands/commit-message.md).

Команды и среда

  • Консоль пользователя: PowerShell; пути в стиле deploy\compose.
  • Быстрый старт и переменные: docs/quickstart.md, README.md.
  • Go: после правок — gofmt -w, go vet ./..., scripts/lint-go.ps1 (как CI golangci-lint).

Язык документации проекта

Пользовательская документация в docs/ — преимущественно на русском. Комментарии и имена в коде — в существующем стиле репозитория.

Frontend (React + shadcn/ui + ReUI)

При правках apps/web/** или packages/ui/** следуйте .cursor/rules/web-shadcn.mdc (WEB-19): перед завершением задачи обязательно:

pnpm --filter @evobgp/web run typecheck
pnpm --filter @evobgp/web run lint
pnpm --filter @evobgp/web run build

Все три команды должны exit 0. CI job web не пропускает без этого.

Стек: React 19, TanStack Router/Query, shadcn/ui (base-nova, registry @shadcn + @reui), Tailwind v4, lucide-react. Legacy Svelte — в web-legacy-svelte/ (архив, только референс при миграции).

UI design contract: docs/ui-design-contract.md — surface frame, kit apps/web/src/components/reui-kit/.

UI-задачи начинаются с MCP user-reui (surface: "frame") + plugin-shadcn-shadcn, затем CLI pnpm dlx shadcn@latest add ... из apps/web. См. также .cursor/rules/context7-stack.mdc для Context7 ID стека.