Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions .cursor/commands/commit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
Создай commit message для текущих изменений:

**Формат:**

```
[branch-name] type: short description
```

**Требования:**

- В начале всегда указывать название текущей ветки
- Использовать conventional commits (feat, fix, refactor, docs, test, chore)
- Краткое описание на английском (до 50 символов)
- Понятное описание WHY, а не только WHAT
- **ВАЖНО:** Коммит должен содержать ТОЛЬКО одну строку с кратким описанием
- **НЕ ДОБАВЛЯТЬ** детальное описание изменений, списки файлов или bullet points
- Commit message должен быть максимально лаконичным

**Шаги:**

1. **ОБЯЗАТЕЛЬНО:** Запусти команду "Review" для проверки качества кода
2. **ОБЯЗАТЕЛЬНО:** Изучи изменения в текущей ветки и обнови документацию:
- Обнови CLAUDE.md (правила разработки, архитектура)
- Обнови структуру проекта в CLAUDE.md (если изменилась структура файлов/папок)
3. **ОБЯЗАТЕЛЬНО:** Обнови версию PWA в ngsw-config.json (только для изменений кода приложения):
- Открой файл ngsw-config.json
- Увеличь номер версии в поле "version" (например: "1.0.7" → "1.0.8")
- НЕ обновляй версию для изменений только в тестах, документации или конфигурации
- Обновляй версию только при изменениях в коде приложения (src/)
4. Посмотри git status и git diff
5. Определи текущую ветку
6. Если находимся в ветке master - создай новую ветку с названием согласно разрабатываемой фиче
7. Сформируй КОРОТКИЙ commit message (одна строка)
8. Предложи команду для коммита

**Пример правильного коммита:**

```
feature/user-auth feat: add JWT authentication
```

**Пример НЕПРАВИЛЬНОГО коммита (слишком детальный):**

```
feature/user-auth feat: add JWT authentication

- Add JWT token generation
- Create auth middleware
- Update user service
- Add refresh token logic
```
62 changes: 62 additions & 0 deletions .cursor/commands/component.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
Создай Angular компонент согласно FSD архитектуре:

**Требования:**

- Используй standalone компоненты без NgModules
- Используй signals для state management
- Используй inject() вместо constructor injection
- Используй OnPush change detection strategy
- Следуй FSD архитектуре (app → pages → widgets → features → entities → shared)
- Используй Taiga UI компоненты для UI
- Используй BEM методологию для CSS классов
- Все функции с явными типами возвращаемых значений
- БЕЗ КОММЕНТАРИЕВ в коде
- Все строки на английском языке

**Структура компонента:**

```typescript
@Component({
selector: 'app-component-name',
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [CommonModule, TuiButton, TuiInputModule],
templateUrl: './component-name.component.html',
styleUrls: ['./component-name.component.scss']
})
export class ComponentNameComponent {
private readonly service = inject(SomeService);

readonly inputData = input.required<string>();
readonly optionalInput = input(false);
readonly dataChanged = output<string>();

readonly computedValue = computed(() =>
this.inputData().toUpperCase()
);
}
```

**Шаги:**

1. Определи в каком слое FSD должен быть компонент
2. Создай структуру файлов:
- `component-name.component.ts`
- `component-name.component.html`
- `component-name.component.scss`
- `component-name.component.spec.ts`
- `index.ts` (barrel export)
3. Реализуй компонент с современным Angular синтаксисом
4. Добавь типизацию и signals
5. Создай тесты с `configureZonelessTestingModule()`
6. Обнови barrel exports

**Примеры компонентов:**

- Страница: `src/pages/dashboard/ui/dashboard.component.ts`
- Виджет: `src/widgets/calorie-widget/calorie-widget.component.ts`
- Фича: `src/features/calorie-calculation/ui/basic-data-form/basic-data-form.component.ts`
- Сущность: `src/entities/calorie/ui/calorie-display.component.ts`
- Общий: `src/shared/ui/back-layout/back-layout.component.ts`

Создай компонент и покажи результат.
58 changes: 58 additions & 0 deletions .cursor/commands/execute-plan-auto.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
Выполни план разработки маленькой фичи автоматически:

**Требования:**

- Прочитай план из папки `plans/`
- Следуй правилам проекта из CLAUDE.md
- Выполняй все шаги автоматически без остановок
- Применяй все правила проекта:
- Все функции с явными типами возвращаемых значений
- Современный Angular синтаксис (standalone компоненты, signals, inject())
- БЕЗ КОММЕНТАРИЕВ в коде (код должен быть самодокументируемым)
- Naming без слов-паразитов (data, info) - используй конкретные, описательные названия
- **КРИТИЧЕСКИ ВАЖНО: Принцип YAGNI** - создавай ТОЛЬКО те функции, компоненты, методы и утилиты, которые реально используются в текущей задаче
- **ВСЕГДА используй алиасы (@/) для импортов** вместо относительных путей
- Имена переменных, функций, типов — только английский
- Тексты в пользовательском интерфейсе (UI) — только русский
- Используй standalone компоненты без NgModules
- Используй signals для state management
- Используй inject() вместо constructor injection
- Используй OnPush change detection strategy
- Следуй FSD архитектуре (Feature-Sliced Design)

**Шаги:**

1. Найди и прочитай указанный план в папке `plans/`
2. Изучи правила проекта из CLAUDE.md и проверь соответствие плана этим правилам. Если информация в плане противоречит правилам, согласуй со мной изменения в плане
3. Покажи список всех шагов из плана
4. **АВТОМАТИЧЕСКИ** выполни ВСЕ шаги подряд:
- Реализуй каждый шаг полностью
- Покажи что было сделано после каждого шага
- НЕ останавливайся для подтверждения
- Переходи к следующему шагу сразу
5. После завершения всех шагов:
- Запусти линтер и TypeScript проверку
- Покажи итоговый статус выполнения плана
6. перед финальной проверкой:
- Убедись, что все пункты плана выполнены
- Удали файл плана из папки `plans/`

**Формат отчёта после каждого шага:**

```
✅ Шаг [N]: [название шага]

Выполнено:
- [действие 1]
- [действие 2]

Созданные/изменённые файлы:
- [файл 1]
- [файл 2]
```

**Важно:**

- Выполняй ВСЕ шаги подряд без остановок
- Показывай прогресс после каждого шага
- Если возникнут ошибки - остановись и покажи проблему
67 changes: 67 additions & 0 deletions .cursor/commands/execute-plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
Выполни план разработки фичи пошагово:

**Требования:**

- Прочитай план из папки `plans/`
- Следуй правилам проекта из CLAUDE.md
- Выполняй шаги последовательно
- **ВАЖНО: После каждого шага с изменениями в коде ОБЯЗАТЕЛЬНО спрашивай подтверждение перед переходом к следующему**
- Применяй все правила проекта:
- Все функции с явными типами возвращаемых значений
- Современный Angular синтаксис (standalone компоненты, signals, inject())
- БЕЗ КОММЕНТАРИЕВ в коде (код должен быть самодокументируемым)
- Naming без слов-паразитов (data, info) - используй конкретные, описательные названия
- **КРИТИЧЕСКИ ВАЖНО: Принцип YAGNI** - создавай ТОЛЬКО те функции, компоненты, методы и утилиты, которые реально используются в текущей задаче
- **ВСЕГДА используй алиасы (@/) для импортов** вместо относительных путей
- Имена переменных, функций, типов — только английский
- Тексты в пользовательском интерфейсе (UI) — только русский
- Используй standalone компоненты без NgModules
- Используй signals для state management
- Используй inject() вместо constructor injection
- Используй OnPush change detection strategy
- Следуй FSD архитектуре (Feature-Sliced Design)

**Шаги:**

1. Найди и прочитай указанный план в папке `plans/`
2. Изучи правила проекта из CLAUDE.md и проверь соответствие плана этим правилам. Если информация в плане противоречит правилам, согласуй со мной изменения в плане
3. Покажи список всех шагов из плана
4. Начни выполнение первого шага:
- Реализуй шаг полностью
- Покажи что было сделано
- **Если были изменения в коде, спроси подтверждение: "Шаг [N] завершён. Перейти к шагу [N+1]?"**
- Дождись ответа пользователя (только при наличии изменений в коде)
5. Переходи к следующему шагу ТОЛЬКО после подтверждения (при наличии изменений в коде)
6. Повторяй пункт 4-5 для каждого шага
7. После завершения всех шагов:
- Запусти линтер и TypeScript проверку
- Покажи итоговый статус выполнения плана
8. **АВТОМАТИЧЕСКИ** (без подтверждения пользователя) выполни финальную проверку:
- Убедись, что все пункты плана выполнены
- Удали файл плана из папки `plans/`

**Формат отчёта после каждого шага:**

```
✅ Шаг [N]: [название шага]

Выполнено:
- [действие 1]
- [действие 2]

Созданные/изменённые файлы:
- [файл 1]
- [файл 2]

Готов перейти к следующему шагу?
```

**Важно:**

- НЕ выполняй несколько шагов подряд без подтверждения (кроме финальной проверки)
- **Подтверждение требуется ТОЛЬКО при наличии изменений в коде**
- Давай пользователю возможность проверить результат каждого шага с изменениями
- Если пользователь попросит изменения - внеси их перед переходом к следующему шагу
- **ИСКЛЮЧЕНИЯ:**
- Шаги без изменений в коде выполняются без подтверждения
- После успешной проверки линтера и TypeScript автоматически выполни финальную проверку и удали файл плана
82 changes: 82 additions & 0 deletions .cursor/commands/feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
Реализуй фичу автоматически:

**Требования:**

- Применяй ВСЕ правила проекта из CLAUDE.md
- Выполняй фичу полностью автоматически без остановок
- Создавай только то, что реально используется (принцип YAGNI)
- Применяй все правила кодирования:
- Все функции с явными типами возвращаемых значений
- Современный Angular синтаксис (standalone компоненты, signals, inject())
- БЕЗ КОММЕНТАРИЕВ в коде (код должен быть самодокументируемым)
- Naming без слов-паразитов (data, info) - используй конкретные, описательные названия
- **КРИТИЧЕСКИ ВАЖНО: Принцип YAGNI** - создавай ТОЛЬКО те функции, компоненты, методы и утилиты, которые реально используются в текущей задаче
- **ВСЕГДА используй алиасы (@/) для импортов** вместо относительных путей
- Имена переменных, функций, типов — только английский
- Тексты в пользовательском интерфейсе (UI) — только русский
- Используй standalone компоненты без NgModules
- Используй signals для state management
- Используй inject() вместо constructor injection
- Используй OnPush change detection strategy
- Следуй FSD архитектуре (Feature-Sliced Design)

**Шаги выполнения:**

1. **Анализ задачи** - определи что именно нужно реализовать
2. **Планирование** - определи какие файлы нужно создать/изменить
3. **Реализация** - создай/измени все необходимые файлы:
- Компоненты с правильной типизацией
- Сервисы с типизированными методами
- Типы и интерфейсы
- Интеграция с существующими store
- Обновление barrel exports
4. **Проверка** - запусти линтер и TypeScript проверку
5. **Финальная проверка** - убедись что все работает

**Правила реализации:**

- Используй только существующие UI компоненты из `@/shared/ui`
- Интегрируйся с существующими сервисами через `@/shared/services`
- Используй `HttpClient` из Angular для API запросов
- Создавай типы рядом с использующим их кодом
- Всегда добавляй barrel exports в `index.ts`
- Используй современные Angular паттерны (standalone компоненты, signals, inject())
- Следуй FSD архитектуре (app → pages → widgets → features → entities → shared)
- Используй Taiga UI компоненты для UI
- Используй BEM методологию для CSS классов

**Формат отчёта:**

```
🚀 Фича: [название]

✅ Анализ: [что делаем]
✅ Планирование: [какие файлы создаём/изменяем]
✅ Реализация: [что создано/изменено]
✅ Проверка: [результаты линтера и TypeScript]
✅ Готово: [фича полностью реализована]

Созданные/изменённые файлы:
- [файл 1] - [описание изменений]
- [файл 2] - [описание изменений]
```

**Важно:**

- Выполняй ВСЕ шаги подряд без остановок
- НЕ создавай лишний код "на будущее"
- Используй только то, что реально нужно для текущей задачи
- Всегда проверяй что код компилируется без ошибок
- Применяй все правила из CLAUDE.md

**Примеры фич:**

- Добавить новое поле в форму с Taiga UI
- Создать простой компонент отображения данных
- Добавить новую кнопку с функциональностью
- Создать утилиту для форматирования
- Добавить валидацию в существующую форму
- Создать новый виджет для dashboard
- Добавить новую страницу с роутингом
- Создать новый feature с бизнес-логикой
- Добавить новую entity с моделью данных
21 changes: 21 additions & 0 deletions .cursor/commands/fix-linter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Исправь все ошибки линтера в проекте:

**Шаги:**

1. Запусти линтер и получи список ошибок
2. Запусти TypeScript проверку (tsc --noEmit)
3. Проанализируй каждую ошибку
4. Исправь ошибки согласно правилам проекта:
- Все функции с явными типами возвращаемых значений
- Современный Angular синтаксис (standalone компоненты, signals, inject())
- Без комментариев
- Naming без слов-паразитов
- Все строки на английском
- Используй OnPush change detection strategy
- Следуй FSD архитектуре
- Используй Taiga UI компоненты

5. Убедись что исправления не нарушают функциональность
6. Запусти линтер и TypeScript проверку повторно для проверки

Исправь все ошибки и покажи результат.
Loading