Architecture Rules
Язык документации
Вся документация в /docs/ (ARCHITECTURE.md, CHANGELOG.md, HANDOVER.md) пишется на русском языке. Имена файлов, путей, API-эндпоинтов и идентификаторов в коде — как в проекте (латиница).
Stack selection (обязательно при init)
Перед scaffold нового проекта спроси и зафиксируй ответ:
- Framework:
vue(Nuxt + Nuxt UI) |react(Next.js App Router) - UI kit (только React):
shadcn(дефолт) |primereact - Vue: UI kit всегда Nuxt UI (
@nuxt/ui). Не спрашивать альтернативы. Не ставить другие Vue UI-библиотеки.
Запиши в docs/ARCHITECTURE.md секцию Стек (шаблон ниже), включая точные версии. Дальше агент не меняет стек без явной просьбы пользователя.
Детект существующего проекта
Если проект уже есть — не спрашивай меню. Порядок: ARCHITECTURE → package.json → configs → импорты UI. При неоднозначности — один уточняющий вопрос.
Latest stable versions (обязательно до install)
Перед любым npx nuxi, create-next-app, npm install фреймворка или UI-kit на новом проекте:
- Запроси latest stable (dist-tag
latest, без alpha/beta/rc):npm view nuxt version npm view @nuxt/ui version npm view next version - Сверь с официальными docs, если major выглядит неожиданно.
- Ставь только эти версии. Не копируй номера из этого скилла, из памяти модели или из старого проекта.
- Зафиксируй resolved versions в секции Стек.
Не апгрейдить существующий проект до latest без явной просьбы.
ARCHITECTURE.md — секция Стек (шаблон)
## Стек
- **Framework:** Nuxt x.y.z | Next.js x.y.z (App Router)
- **Language:** TypeScript
- **UI kit:** Nuxt UI x.y.z | shadcn/ui | PrimeReact x.y.z
- **State:** Pinia | Zustand / React context | …
- **Docs:** `/docs/` на русском
- **Версии сняты:** `npm view … version` на YYYY-MM-DD
ARCHITECTURE.md Contents
Must include:
- Stack and versions (секция выше)
- Directory structure and conventions
- State management approach
- API layer design
- Routing structure
- Component hierarchy
- Design system tokens location
- Build and deployment notes
Keep concise. Update only when architecture changes. Текст разделов — на русском.
Scaffold по стеку
Vue (Nuxt + Nuxt UI)
- Latest stable Nuxt, TypeScript,
<script setup lang="ts"> - UI: только
@nuxt/ui(module + Tailwind per current Nuxt UI docs) - Nuxt UI = база всего визуала: Button, Input, Form, Table, Modal, Toast, DatePicker и т.д.
- Структура:
/docs/,/mocks/,components/,composables/,app/(Nuxt 4 layout)
React (Next.js App Router)
- Latest stable Next.js App Router, TypeScript
- UI:
- shadcn/ui → Tailwind +
components/ui(копируемые компоненты) - PrimeReact →
primereact+ theme
- shadcn/ui → Tailwind +
- Структура:
/docs/,/mocks/,app/,components/,lib/илиhooks/
Не смешивать Vue- и React-пакеты в одном проекте.
CHANGELOG.md Format
## YYYY-MM-DD — Краткое название изменения
- **Что**: Что сделано (фича, рефакторинг, секция, анимация)
- **Зачем**: Зачем (гипотеза, тест, требование дизайна)
- **Файлы**: Затронутые файлы
- **Mock**: Какие данные замоканы и реальный эндпоинт
- **Техдолг / Заметки**: Временные решения, что передать разработчикам
- **Блокеры**: Блокирующие проблемы (если есть)
Логировать только крупные изменения: фичи, рефакторинги, контракты API, обновления дизайн-системы, роутинг, auth, адаптивные переписывания, вынос компонентов, сборка/деплой. Не логировать: мелкие визуальные правки, микро-подгонки, однострочные CSS-твики.