Add specs, Claude commands, and config updates
This commit is contained in:
parent
5c8c3665da
commit
1d0bf73222
58
.claude/commands/spec.md
Normal file
58
.claude/commands/spec.md
Normal file
@ -0,0 +1,58 @@
|
||||
# GitHub Spec Kit Flow
|
||||
|
||||
Пользователь хочет работать по методологии GitHub Spec Kit.
|
||||
|
||||
## Что это значит
|
||||
|
||||
**Spec Kit Flow** — это структурированный подход к задачам:
|
||||
|
||||
1. **Сначала спека** — перед кодом создаём документ с планом
|
||||
2. **Потом реализация** — идём по шагам из спеки
|
||||
3. **Отмечаем прогресс** — чекбоксы в файле
|
||||
|
||||
## Твоя задача сейчас
|
||||
|
||||
Скажи пользователю:
|
||||
|
||||
---
|
||||
|
||||
**Spec Kit Flow активирован.**
|
||||
|
||||
Теперь опиши задачу — я создам спеку и пойду по ней.
|
||||
|
||||
Примеры:
|
||||
- "Добавить push-уведомления в WellNuo"
|
||||
- "Пофиксить баг с логином"
|
||||
- "Отрефакторить API сервис"
|
||||
|
||||
Или если спека уже есть — скажи какая (например "FEATURE-001").
|
||||
|
||||
---
|
||||
|
||||
## Когда пользователь опишет задачу
|
||||
|
||||
1. **Создай спеку** в нужной папке:
|
||||
- `specs/wellnuo/` — для основного приложения
|
||||
- `specs/wellnuo-lite/` — для Lite версии
|
||||
- `specs/shared/` — для backend/API
|
||||
|
||||
2. **Заполни спеку**:
|
||||
- Overview — что и зачем
|
||||
- Requirements — что должно работать
|
||||
- Technical Design — как реализовать
|
||||
- Implementation Steps — пошаговый план
|
||||
|
||||
3. **Покажи спеку пользователю** и спроси всё ли ок
|
||||
|
||||
4. **Начни реализацию** по Implementation Steps
|
||||
|
||||
5. **Отмечай прогресс** — после каждого шага ставь [x] в файле
|
||||
|
||||
## Формат имени файла
|
||||
|
||||
`{TYPE}-{NUMBER}-{slug}.md`
|
||||
|
||||
Примеры:
|
||||
- `FEATURE-002-push-notifications.md`
|
||||
- `BUG-001-login-crash.md`
|
||||
- `TASK-001-refactor-api.md`
|
||||
47
CLAUDE.md
47
CLAUDE.md
@ -210,6 +210,53 @@ ROUTES.BENEFICIARY.SHARE(id) // /(tabs)/beneficiaries/:id/share
|
||||
IOS_SIMULATOR_UDID=6BB240A2-0F2F-41E4-B568-9FFAF9B7FBA2 npx expo start --port 8081 --ios
|
||||
```
|
||||
|
||||
## Specs (Спецификации задач)
|
||||
|
||||
**Структурированные спецификации для планирования и отслеживания задач.**
|
||||
|
||||
### Структура
|
||||
```
|
||||
specs/
|
||||
├── wellnuo/ # Основное приложение
|
||||
├── wellnuo-lite/ # Lite версия
|
||||
├── shared/ # Общие задачи (backend, API)
|
||||
└── templates/ # Шаблоны
|
||||
```
|
||||
|
||||
### Типы спек
|
||||
- `FEATURE-XXX` — новая функциональность
|
||||
- `BUG-XXX` — исправление бага
|
||||
- `TASK-XXX` — техническая задача
|
||||
|
||||
### Как работать со спеками
|
||||
|
||||
**Создать спеку:**
|
||||
```
|
||||
Создай спеку для фичи "название" в specs/wellnuo/
|
||||
```
|
||||
|
||||
**Начать работу:**
|
||||
```
|
||||
Прочитай specs/wellnuo/FEATURE-001-voice-integration.md и начни реализацию
|
||||
```
|
||||
|
||||
**Продолжить:**
|
||||
```
|
||||
Продолжи по спеке FEATURE-001 с шага 3
|
||||
```
|
||||
|
||||
**Обновить статус:**
|
||||
```
|
||||
Отметь шаги 1-3 как выполненные в FEATURE-001
|
||||
```
|
||||
|
||||
### Важно
|
||||
- Спека = план работы. Claude следует шагам из Implementation Steps
|
||||
- Статусы: 🔴 Not Started | 🟡 In Progress | 🟢 Done
|
||||
- Подробности в `specs/README.md`
|
||||
|
||||
---
|
||||
|
||||
## Правила разработки (Development Approach)
|
||||
|
||||
**Методология и подход к качеству кода и тестированию.**
|
||||
|
||||
14
app.json
14
app.json
@ -14,7 +14,9 @@
|
||||
"appleTeamId": "UHLZD54ULZ",
|
||||
"deploymentTarget": "16.0",
|
||||
"infoPlist": {
|
||||
"ITSAppUsesNonExemptEncryption": false
|
||||
"ITSAppUsesNonExemptEncryption": false,
|
||||
"NSSpeechRecognitionUsageDescription": "Allow $(PRODUCT_NAME) to use speech recognition.",
|
||||
"NSMicrophoneUsageDescription": "Allow $(PRODUCT_NAME) to use the microphone."
|
||||
}
|
||||
},
|
||||
"android": {
|
||||
@ -26,7 +28,11 @@
|
||||
"monochromeImage": "./assets/images/android-icon-monochrome.png"
|
||||
},
|
||||
"edgeToEdgeEnabled": true,
|
||||
"predictiveBackGestureEnabled": false
|
||||
"predictiveBackGestureEnabled": false,
|
||||
"permissions": [
|
||||
"android.permission.RECORD_AUDIO",
|
||||
"android.permission.MODIFY_AUDIO_SETTINGS"
|
||||
]
|
||||
},
|
||||
"web": {
|
||||
"output": "static",
|
||||
@ -72,9 +78,9 @@
|
||||
"extra": {
|
||||
"router": {},
|
||||
"eas": {
|
||||
"projectId": "b06920f8-cbe7-4d6e-a5c2-5e60e1791d65"
|
||||
"projectId": "a845255d-c966-4f12-aa60-c452c2d0c60d"
|
||||
}
|
||||
},
|
||||
"owner": "serter2069"
|
||||
"owner": "serter20692"
|
||||
}
|
||||
}
|
||||
|
||||
67
specs/README.md
Normal file
67
specs/README.md
Normal file
@ -0,0 +1,67 @@
|
||||
# WellNuo Specs
|
||||
|
||||
Структурированные спецификации для задач проекта.
|
||||
|
||||
## Структура
|
||||
|
||||
```
|
||||
specs/
|
||||
├── wellnuo/ # Основное приложение WellNuo
|
||||
├── wellnuo-lite/ # WellNuo Lite версия
|
||||
├── shared/ # Общие задачи (backend, API, инфра)
|
||||
└── templates/ # Шаблоны для новых спек
|
||||
```
|
||||
|
||||
## Типы спек
|
||||
|
||||
| Префикс | Описание | Шаблон |
|
||||
|---------|----------|--------|
|
||||
| `FEATURE-XXX` | Новая функциональность | `templates/feature.md` |
|
||||
| `BUG-XXX` | Исправление бага | `templates/bug.md` |
|
||||
| `TASK-XXX` | Техническая задача (рефакторинг, настройка) | `templates/task.md` |
|
||||
|
||||
## Статусы
|
||||
|
||||
- 🔴 **Not Started** — ещё не начато
|
||||
- 🟡 **In Progress** — в работе
|
||||
- 🟢 **Done** — завершено
|
||||
- ⏸️ **On Hold** — приостановлено
|
||||
|
||||
## Как использовать с Claude Code
|
||||
|
||||
### 1. Создать спеку
|
||||
|
||||
```
|
||||
Создай спеку для фичи "голосовые напоминания" в specs/wellnuo/
|
||||
```
|
||||
|
||||
### 2. Начать работу по спеке
|
||||
|
||||
```
|
||||
Прочитай specs/wellnuo/FEATURE-001-voice-integration.md и начни реализацию
|
||||
```
|
||||
|
||||
### 3. Продолжить работу
|
||||
|
||||
```
|
||||
Продолжи работу по specs/wellnuo/FEATURE-001-voice-integration.md с шага 3
|
||||
```
|
||||
|
||||
### 4. Обновить статус
|
||||
|
||||
```
|
||||
Отметь шаги 1-3 как выполненные в спеке FEATURE-001
|
||||
```
|
||||
|
||||
## Нумерация
|
||||
|
||||
- Каждая папка имеет свою нумерацию
|
||||
- `wellnuo/FEATURE-001`, `wellnuo-lite/FEATURE-001` — это разные спеки
|
||||
- Номера не переиспользуются (даже после удаления)
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Одна спека = одна задача** — не смешивай несколько фич
|
||||
2. **Детальные шаги** — чем подробнее, тем лучше Claude понимает
|
||||
3. **Обновляй статусы** — помогает отслеживать прогресс
|
||||
4. **Добавляй Notes** — любые находки, проблемы, решения
|
||||
41
specs/templates/bug.md
Normal file
41
specs/templates/bug.md
Normal file
@ -0,0 +1,41 @@
|
||||
# BUG-XXX: [Краткое описание бага]
|
||||
|
||||
## Status: 🔴 Not Started
|
||||
<!-- 🔴 Not Started | 🟡 In Progress | 🟢 Done -->
|
||||
|
||||
## Project: wellnuo | wellnuo-lite | shared
|
||||
|
||||
## Priority: 🔴 Critical | 🟠 High | 🟡 Medium | 🟢 Low
|
||||
|
||||
## Description
|
||||
<!-- Что происходит не так -->
|
||||
|
||||
## Steps to Reproduce
|
||||
1. Step 1
|
||||
2. Step 2
|
||||
3. Step 3
|
||||
|
||||
## Expected Behavior
|
||||
<!-- Как должно работать -->
|
||||
|
||||
## Actual Behavior
|
||||
<!-- Как работает сейчас -->
|
||||
|
||||
## Environment
|
||||
- Device: iPhone 16 Pro Max / Simulator
|
||||
- OS: iOS 18.x
|
||||
- App Version: x.x.x
|
||||
- Build: xxx
|
||||
|
||||
## Screenshots / Logs
|
||||
<!-- Скриншоты или логи ошибок -->
|
||||
|
||||
## Root Cause Analysis
|
||||
<!-- После исследования: почему это происходит -->
|
||||
|
||||
## Fix Steps
|
||||
- [ ] 1. Fix step
|
||||
- [ ] 2. Verify fix
|
||||
- [ ] 3. Test edge cases
|
||||
|
||||
## Notes
|
||||
52
specs/templates/feature.md
Normal file
52
specs/templates/feature.md
Normal file
@ -0,0 +1,52 @@
|
||||
# FEATURE-XXX: [Название фичи]
|
||||
|
||||
## Status: 🔴 Not Started
|
||||
<!-- 🔴 Not Started | 🟡 In Progress | 🟢 Done | ⏸️ On Hold -->
|
||||
|
||||
## Project: wellnuo | wellnuo-lite | shared
|
||||
<!-- Какой проект затрагивает -->
|
||||
|
||||
## Overview
|
||||
<!-- 2-3 предложения: что это и зачем нужно -->
|
||||
|
||||
## User Story
|
||||
**Как** [роль пользователя]
|
||||
**Я хочу** [действие]
|
||||
**Чтобы** [ценность/результат]
|
||||
|
||||
## Requirements
|
||||
<!-- Что должно работать (функциональные требования) -->
|
||||
- [ ] Requirement 1
|
||||
- [ ] Requirement 2
|
||||
- [ ] Requirement 3
|
||||
|
||||
## Technical Design
|
||||
|
||||
### API Changes (если нужно)
|
||||
```
|
||||
POST /api/xxx
|
||||
GET /api/xxx
|
||||
```
|
||||
|
||||
### Database Changes (если нужно)
|
||||
<!-- Новые таблицы, поля -->
|
||||
|
||||
### Frontend Changes
|
||||
<!-- Новые экраны, компоненты -->
|
||||
|
||||
### Backend Changes
|
||||
<!-- Новые endpoints, сервисы -->
|
||||
|
||||
## Implementation Steps
|
||||
<!-- Разбей на конкретные шаги. Claude будет следовать этому плану -->
|
||||
- [ ] 1. Step one
|
||||
- [ ] 2. Step two
|
||||
- [ ] 3. Step three
|
||||
|
||||
## Testing
|
||||
<!-- Как проверить что работает -->
|
||||
- [ ] Manual testing scenario 1
|
||||
- [ ] Manual testing scenario 2
|
||||
|
||||
## Notes
|
||||
<!-- Дополнительные заметки, ссылки, вопросы -->
|
||||
27
specs/templates/task.md
Normal file
27
specs/templates/task.md
Normal file
@ -0,0 +1,27 @@
|
||||
# TASK-XXX: [Название задачи]
|
||||
|
||||
## Status: 🔴 Not Started
|
||||
<!-- 🔴 Not Started | 🟡 In Progress | 🟢 Done -->
|
||||
|
||||
## Project: wellnuo | wellnuo-lite | shared
|
||||
|
||||
## Type: refactor | chore | docs | config | test
|
||||
|
||||
## Description
|
||||
<!-- Что нужно сделать и зачем -->
|
||||
|
||||
## Scope
|
||||
<!-- Какие файлы/модули затронуты -->
|
||||
- `path/to/file1`
|
||||
- `path/to/file2`
|
||||
|
||||
## Steps
|
||||
- [ ] 1. Step one
|
||||
- [ ] 2. Step two
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- Когда задача считается выполненной -->
|
||||
- [ ] Criteria 1
|
||||
- [ ] Criteria 2
|
||||
|
||||
## Notes
|
||||
85
specs/wellnuo/FEATURE-001-voice-integration.md
Normal file
85
specs/wellnuo/FEATURE-001-voice-integration.md
Normal file
@ -0,0 +1,85 @@
|
||||
# FEATURE-001: Voice Integration (Голосовая интеграция)
|
||||
|
||||
## Status: 🔴 Not Started
|
||||
|
||||
## Project: wellnuo
|
||||
|
||||
## Overview
|
||||
Интеграция голосового управления и голосовых напоминаний в приложение WellNuo.
|
||||
Пользователь сможет управлять приложением голосом и получать голосовые уведомления.
|
||||
|
||||
## User Story
|
||||
**Как** пользователь WellNuo
|
||||
**Я хочу** управлять приложением голосом и получать голосовые напоминания
|
||||
**Чтобы** было удобнее использовать приложение, особенно для пожилых людей
|
||||
|
||||
## Requirements
|
||||
- [ ] Голосовые команды для навигации
|
||||
- [ ] Голосовые напоминания о приёме лекарств
|
||||
- [ ] Text-to-Speech для озвучивания уведомлений
|
||||
- [ ] Speech-to-Text для голосового ввода
|
||||
- [ ] Настройки голоса (вкл/выкл, громкость, голос)
|
||||
|
||||
## Technical Design
|
||||
|
||||
### Libraries
|
||||
- `expo-speech` — Text-to-Speech
|
||||
- `expo-av` — Audio recording
|
||||
- `@react-native-voice/voice` — Speech recognition (или альтернатива)
|
||||
|
||||
### API Changes
|
||||
```
|
||||
POST /api/voice/settings — сохранить настройки голоса
|
||||
GET /api/voice/settings — получить настройки
|
||||
```
|
||||
|
||||
### Database Changes
|
||||
```sql
|
||||
ALTER TABLE users ADD COLUMN voice_settings JSONB DEFAULT '{}';
|
||||
-- voice_settings: { enabled: boolean, volume: number, voice: string }
|
||||
```
|
||||
|
||||
### Frontend Changes
|
||||
- Новый экран: `VoiceSettings` — настройки голоса
|
||||
- Компонент: `VoiceButton` — кнопка голосового ввода
|
||||
- Интеграция в: Dashboard, Reminders, Chat
|
||||
|
||||
### Backend Changes
|
||||
- Endpoint для настроек голоса
|
||||
- Опционально: серверный TTS для push-уведомлений
|
||||
|
||||
## Implementation Steps
|
||||
|
||||
### Phase 1: Базовая интеграция
|
||||
- [ ] 1. Установить expo-speech и протестировать TTS
|
||||
- [ ] 2. Создать VoiceService для управления голосом
|
||||
- [ ] 3. Добавить экран VoiceSettings в профиль
|
||||
- [ ] 4. Интегрировать TTS в напоминания
|
||||
|
||||
### Phase 2: Speech Recognition
|
||||
- [ ] 5. Выбрать и установить библиотеку для STT
|
||||
- [ ] 6. Создать компонент VoiceButton
|
||||
- [ ] 7. Добавить голосовой ввод в чат
|
||||
- [ ] 8. Тестирование на устройстве
|
||||
|
||||
### Phase 3: Голосовые команды
|
||||
- [ ] 9. Определить список голосовых команд
|
||||
- [ ] 10. Реализовать распознавание команд
|
||||
- [ ] 11. Интегрировать в навигацию
|
||||
- [ ] 12. Полное тестирование
|
||||
|
||||
## Testing
|
||||
- [ ] TTS работает на iOS симуляторе
|
||||
- [ ] TTS работает на реальном устройстве
|
||||
- [ ] STT корректно распознаёт русскую речь
|
||||
- [ ] Настройки сохраняются и применяются
|
||||
- [ ] Голосовые команды работают корректно
|
||||
|
||||
## Notes
|
||||
- Для STT на iOS может потребоваться разрешение на микрофон
|
||||
- Русский язык должен поддерживаться
|
||||
- Учесть offline режим (expo-speech работает offline)
|
||||
|
||||
## References
|
||||
- [expo-speech docs](https://docs.expo.dev/versions/latest/sdk/speech/)
|
||||
- [React Native Voice](https://github.com/react-native-voice/voice)
|
||||
Loading…
x
Reference in New Issue
Block a user