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
|
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)
|
## Правила разработки (Development Approach)
|
||||||
|
|
||||||
**Методология и подход к качеству кода и тестированию.**
|
**Методология и подход к качеству кода и тестированию.**
|
||||||
|
|||||||
14
app.json
14
app.json
@ -14,7 +14,9 @@
|
|||||||
"appleTeamId": "UHLZD54ULZ",
|
"appleTeamId": "UHLZD54ULZ",
|
||||||
"deploymentTarget": "16.0",
|
"deploymentTarget": "16.0",
|
||||||
"infoPlist": {
|
"infoPlist": {
|
||||||
"ITSAppUsesNonExemptEncryption": false
|
"ITSAppUsesNonExemptEncryption": false,
|
||||||
|
"NSSpeechRecognitionUsageDescription": "Allow $(PRODUCT_NAME) to use speech recognition.",
|
||||||
|
"NSMicrophoneUsageDescription": "Allow $(PRODUCT_NAME) to use the microphone."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
@ -26,7 +28,11 @@
|
|||||||
"monochromeImage": "./assets/images/android-icon-monochrome.png"
|
"monochromeImage": "./assets/images/android-icon-monochrome.png"
|
||||||
},
|
},
|
||||||
"edgeToEdgeEnabled": true,
|
"edgeToEdgeEnabled": true,
|
||||||
"predictiveBackGestureEnabled": false
|
"predictiveBackGestureEnabled": false,
|
||||||
|
"permissions": [
|
||||||
|
"android.permission.RECORD_AUDIO",
|
||||||
|
"android.permission.MODIFY_AUDIO_SETTINGS"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"web": {
|
"web": {
|
||||||
"output": "static",
|
"output": "static",
|
||||||
@ -72,9 +78,9 @@
|
|||||||
"extra": {
|
"extra": {
|
||||||
"router": {},
|
"router": {},
|
||||||
"eas": {
|
"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