Docker images / prepare-release (push) Successful in 4s
Docker images / backend-image (push) Failing after 2m36s
Docker images / frontend-image (push) Successful in 2m22s
Docker images / notify-webhook (push) Skipped
Docker images / updater-image (push) Successful in 55s
Docker images / publish-release (push) Skipped
Подключить App Switcher, NavUser, OpsPanel и AlertDialog вместо Card-shell. Co-authored-by: Cursor <cursoragent@cursor.com>
85 lines
6.6 KiB
Plaintext
85 lines
6.6 KiB
Plaintext
---
|
||
description: Next.js App Router + shadcn/ui — эталон /servers, поиск по репозиторию, формат ответа и проверки
|
||
alwaysApply: true
|
||
---
|
||
|
||
# Next.js 16 (App Router, Turbopack) + shadcn/ui — правила проекта
|
||
|
||
Стек ориентира: **Next.js 16.2.4** (App Router, Turbopack), **React**, **shadcn/ui**. При расхождении с документацией — верифицировать по официальным источникам для вашей версии.
|
||
|
||
**Язык:** все ответы пользователю — **только на русском**.
|
||
|
||
**Git / Generate Commit Message:** subject и body — **на русском**; `feat` только для новой UX-фичи, иначе `fix`/`chore`. См. **`commit-messages-ru.mdc`** и **`release-versioning.mdc`**.
|
||
|
||
## 1. Документация в первую очередь
|
||
|
||
- Решения сверять с **официальной** документацией Next.js и shadcn/ui (актуальные версии проекта).
|
||
- Не выдумывать API и «недокументированные» паттерны; предпочитать стабильные, описанные в доках решения.
|
||
|
||
## 2. Эталон UI/UX: `/servers` (CRUD) + Frame+DataGrid (оболочка)
|
||
|
||
- **`app/(main)/servers`** — эталон **поведения** CRUD: фильтры, сортировка, пагинация, диалоги, формы, плотность.
|
||
- **Оболочка ops-списков / dashboard / KPI:** **ReUI Frame + DataGrid**, не shadcn `Card` как page shell. Preview: [frame](https://reui.io/docs/components/base/frame) · [data-grid](https://reui.io/docs/components/base/data-grid) · [stats-12](https://reui.io/preview/base/stats-12) · [icon-tile](https://reui.io/docs/components/base/icon-tile).
|
||
- `DataPageCard` — ops list shell на ReUI Frame (`components/data-page-card.tsx`). Внутренние панели — `OpsPanel` / Frame, не shadcn Card как page shell.
|
||
- Переиспользовать паттерны `/servers` для CRUD; **не** вводить Card-grid как новый SoT.
|
||
|
||
## 3. Большой репозиторий (критично)
|
||
|
||
- **Перед изменениями** искать по проекту: похожие компоненты, существующие паттерны, общие утилиты, хуки, UI-абстракции.
|
||
- **Не дублировать:** если похожее решение уже есть — расширять или переиспользовать, а не писать с нуля.
|
||
|
||
## 4. Согласованность между файлами
|
||
|
||
При правке фичи проверять и при необходимости обновлять **все** связанное: компоненты, хуки, route handlers / server actions, типы, стили/обёртки UI — не только открытый файл.
|
||
|
||
## 5. Зависимости и влияние
|
||
|
||
Перед реализацией: от чего зависит целевой файл, где используется, какие побочные эффекты; избегать ломающих изменений без явной необходимости.
|
||
|
||
## 6. Нативные возможности фреймворка
|
||
|
||
- Next.js: App Router, Server Components, Server Actions, Route Handlers — по умолчанию предпочтительнее кастомных обходных путей.
|
||
- UI: компоненты **shadcn/ui**; не плодить самописное, если стандартное решение покрывает задачу.
|
||
|
||
## 7. Практики качества
|
||
|
||
- Рекомендации Next.js: загрузка данных, рендеринг, производительность.
|
||
- Минимизировать `'use client'` там, где достаточно серверных компонентов.
|
||
- Композиция shadcn/ui и доступность (a11y).
|
||
|
||
## 8. Валидация каждого изменения (обязательно)
|
||
|
||
В ответе явно указать:
|
||
|
||
- **Почему** это согласуется с Next.js, shadcn/ui, CRUD `/servers` и оболочкой Frame+DataGrid.
|
||
- **Server vs Client Component** и обоснование.
|
||
- Что **переиспользовано** из проекта (паттерны/компоненты).
|
||
- Какие **файлы проанализированы**.
|
||
|
||
## 9. Turbopack и консоль разработки
|
||
|
||
После правок: проверить сборку/типы (по возможности запустить проверки проекта), ошибки гидратации, предупреждения; критичное исправить; не игнорировать предупреждения о плохих практиках.
|
||
|
||
## 10. Правки кода
|
||
|
||
- Минимальные, но **полные** (все зависимые места обновлены).
|
||
- Не рефакторить несвязанную логику.
|
||
|
||
## 11. Формат ответа (обязательная структура)
|
||
|
||
1. **Шаг 0:** список проанализированных файлов.
|
||
2. **Шаг 1:** что изменено.
|
||
3. **Шаг 2:** почему (Next.js + shadcn/ui + CRUD `/servers` + Frame+DataGrid + паттерны кодовой базы).
|
||
4. **Шаг 3:** анализ влияния (что ещё затронуто).
|
||
5. **Шаг 4:** код (диффы или несколько файлов).
|
||
6. **Шаг 5:** проверка dev/консоли (ошибки, предупреждения, исправления).
|
||
7. **Шаг 6:** опциональные улучшения.
|
||
|
||
## 12. Дублирование и антипаттерны
|
||
|
||
Явно указывать, если найдено дублирование или антипаттерн; ссылаться на существующую реализацию в проекте; предлагать переиспользование или рефакторинг вместо копипаста.
|
||
|
||
## Цель
|
||
|
||
Вести себя как **senior** в production-кодовой базе: консистентность, переиспользование, CRUD как на `/servers`, оболочка Frame+DataGrid (не Card-shell), безопасные масштабируемые изменения по best practices Next.js и shadcn/ui, готовый к продакшену код без ошибок сборки/рантайма по возможности.
|