Fix PRD-WEB.md - mark incomplete tasks, clarify Success Criteria

Marked 11 tasks as NOT done (were incorrectly marked complete):
- Phase 4: Beneficiary Detail, Add Beneficiary
- Phase 5: All BLE tasks (service, scanner, WiFi, sensor pages)
- Phase 6: All error handling hooks
- Phase 8: All tests

Added note that Success Criteria are NOT tasks (to prevent
Ralphy from treating them as executable items).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Sergei 2026-02-01 14:23:28 -08:00
parent 9e2c9bc827
commit 68aba0cb77

View File

@ -177,45 +177,45 @@
- Компоненты: Список beneficiaries, добавление нового, summary cards - Компоненты: Список beneficiaries, добавление нового, summary cards
- Готово когда: отображает всех beneficiaries с корректными данными - Готово когда: отображает всех beneficiaries с корректными данными
- [x] @worker2 **Реализовать Beneficiary Detail Page** - [ ] @worker2 **Реализовать Beneficiary Detail Page**
- Файл: `app/(main)/beneficiaries/[id]/page.tsx` - Файл: `app/(main)/beneficiaries/[id]/page.tsx`
- Переиспользует: `api.getWellNuoBeneficiary(id)`, логику из мобильного detail экрана - Переиспользует: `api.getWellNuoBeneficiary(id)`, логику из мобильного detail экрана
- Компоненты: Табы (Обзор, Сенсоры, История), статус сенсоров, actions - Компоненты: Табы (Обзор, Сенсоры, История), статус сенсоров, actions
- Готово когда: показывает все данные beneficiary и список подключенных сенсоров - Готово когда: показывает все данные beneficiary и список подключенных сенсоров
- [x] @worker2 **Создать Add Beneficiary Flow** - [ ] @worker2 **Создать Add Beneficiary Flow**
- Файл: `app/(auth)/add-loved-one/page.tsx` - Файл: `app/(auth)/add-loved-one/page.tsx`
- Переиспользует: Валидацию из мобильного приложения - Переиспользует: Валидацию из мобильного приложения
- Готово когда: создает beneficiary и правильно редиректит через NavigationController - Готово когда: создает beneficiary и правильно редиректит через NavigationController
### Phase 5: Web Bluetooth Integration @worker1 ### Phase 5: Web Bluetooth Integration @worker1
- [x] @worker1 **Реализовать Web Bluetooth Service** - [ ] @worker1 **Реализовать Web Bluetooth Service**
- Файл: `services/webBluetooth.ts` - Файл: `services/webBluetooth.ts`
- Переиспользует: UUIDs и логику из `services/ble/BLEManager.ts` - Переиспользует: UUIDs и логику из `services/ble/BLEManager.ts`
- Функции: `scanForDevices()`, `connectToDevice()`, `writeCharacteristic()`, `readCharacteristic()` - Функции: `scanForDevices()`, `connectToDevice()`, `writeCharacteristic()`, `readCharacteristic()`
- Готово когда: успешно находит и подключается к WP сенсорам - Готово когда: успешно находит и подключается к WP сенсорам
- [x] @worker1 **Создать BLE Scanner Component** - [ ] @worker1 **Создать BLE Scanner Component**
- Файл: `components/BLEScanner.tsx` - Файл: `components/BLEScanner.tsx`
- Переиспользует: Логику из мобильного BLE scanner - Переиспользует: Логику из мобильного BLE scanner
- Компоненты: Список найденных устройств, signal strength, connect buttons - Компоненты: Список найденных устройств, signal strength, connect buttons
- Готово когда: отображает найденные WP устройства с возможностью подключения - Готово когда: отображает найденные WP устройства с возможностью подключения
- [x] @worker1 **Реализовать WiFi Setup Flow** - [ ] @worker1 **Реализовать WiFi Setup Flow**
- Файл: `components/WiFiSetup.tsx` - Файл: `components/WiFiSetup.tsx`
- Переиспользует: Логику из `services/espProvisioning.ts` - Переиспользует: Логику из `services/espProvisioning.ts`
- Компоненты: Список WiFi сетей, поля для SSID/пароль, progress indicator - Компоненты: Список WiFi сетей, поля для SSID/пароль, progress indicator
- Готово когда: успешно настраивает WiFi на сенсоре через BLE - Готово когда: успешно настраивает WiFi на сенсоре через BLE
- [x] @worker1 **Создать Sensor Management Pages** - [ ] @worker1 **Создать Sensor Management Pages**
- Файл: `app/(main)/beneficiaries/[id]/add-sensor/page.tsx` - Файл: `app/(main)/beneficiaries/[id]/add-sensor/page.tsx`
- Интеграция: BLE scanner + WiFi setup + API attachment - Интеграция: BLE scanner + WiFi setup + API attachment
- Готово когда: полный flow от поиска до прикрепления сенсора к beneficiary - Готово когда: полный flow от поиска до прикрепления сенсора к beneficiary
### Phase 6: Error Handling & Edge Cases @worker3 ### Phase 6: Error Handling & Edge Cases @worker3
- [x] @worker3 **Реализовать BLE Error Handling (из рекомендации 3)** - [ ] @worker3 **Реализовать BLE Error Handling (из рекомендации 3)**
- Файл: `hooks/useBLE.ts`, `components/BLEErrorFallback.tsx` - Файл: `hooks/useBLE.ts`, `components/BLEErrorFallback.tsx`
- Сценарии: Bluetooth disabled, permission denied, device not found, connection lost - Сценарии: Bluetooth disabled, permission denied, device not found, connection lost
- Компоненты: - Компоненты:
@ -225,12 +225,12 @@
4. Общий fallback: "Не получается? Попробуйте другой браузер или скачайте приложение" 4. Общий fallback: "Не получается? Попробуйте другой браузер или скачайте приложение"
- Готово когда: все BLE ошибки обрабатываются с понятными сообщениями и recovery actions - Готово когда: все BLE ошибки обрабатываются с понятными сообщениями и recovery actions
- [x] @worker3 **Добавить Network Error Handling** - [ ] @worker3 **Добавить Network Error Handling**
- Файл: `hooks/useApiWithRetry.ts` - Файл: `hooks/useApiWithRetry.ts`
- Переиспользует: Error handling patterns из мобилки - Переиспользует: Error handling patterns из мобилки
- Готово когда: API ошибки показывают appropriate messages и retry options - Готово когда: API ошибки показывают appropriate messages и retry options
- [x] @worker3 **Создать Online Status Check** - [ ] @worker3 **Создать Online Status Check**
- Файл: `hooks/useOnlineStatus.ts` - Файл: `hooks/useOnlineStatus.ts`
- Что сделать: Простая проверка `navigator.onLine`, показать баннер если нет сети - Что сделать: Простая проверка `navigator.onLine`, показать баннер если нет сети
- Готово когда: при потере сети показывается сообщение "Нет подключения к интернету" - Готово когда: при потере сети показывается сообщение "Нет подключения к интернету"
@ -253,47 +253,54 @@
### Phase 8: Testing & Quality Assurance @worker1 ### Phase 8: Testing & Quality Assurance @worker1
- [x] @worker1 **Создать E2E тесты для критичных flows** - [ ] @worker1 **Создать E2E тесты для критичных flows**
- Файлы: `tests/e2e/auth.spec.ts`, `tests/e2e/ble-setup.spec.ts` - Файлы: `tests/e2e/auth.spec.ts`, `tests/e2e/ble-setup.spec.ts`
- Сценарии: Полный auth flow, BLE scan и setup, beneficiary management - Сценарии: Полный auth flow, BLE scan и setup, beneficiary management
- Готово когда: тесты проходят на Chrome и Edge - Готово когда: тесты проходят на Chrome и Edge
- [x] @worker1 **Добавить Unit тесты для BLE сервиса** - [ ] @worker1 **Добавить Unit тесты для BLE сервиса**
- Файл: `services/__tests__/webBluetooth.test.ts` - Файл: `services/__tests__/webBluetooth.test.ts`
- Mock: Web Bluetooth API для тестирования - Mock: Web Bluetooth API для тестирования
- Готово когда: покрытие >80% для BLE логики - Готово когда: покрытие >80% для BLE логики
## Success Criteria ## Success Criteria
- [x] ✅ **Browser Support**: Работает в Chrome/Edge/Opera, показывает понятную ошибку в Safari/Firefox > **НЕ ЗАДАЧИ!** Это критерии приёмки — проверять после выполнения всех задач.
- [x] ✅ **Authentication**: Auth flow идентичен мобилке, JWT токен корректно управляется
- [x] ✅ **BLE Integration**: Сканирование находит WP сенсоры, WiFi setup работает полностью
- [x] ✅ **Data Sync**: Все изменения синхронизируются с тем же backend что и мобильное приложение
- [x] ✅ **Error Handling**: Все ошибки (BLE, Network, Validation) обрабатываются с user-friendly messages
- [x] ✅ **Responsive Design**: Корректно отображается от 768px до 4K мониторов
- [x] ✅ **Performance**: Первичная загрузка <3 секунд, BLE операции <10 секунд
## ✅ Статус - [ ] **Browser Support**: Работает в Chrome/Edge/Opera, показывает понятную ошибку в Safari/Firefox
- [ ] **Authentication**: Auth flow идентичен мобилке, JWT токен корректно управляется
- [ ] **BLE Integration**: Сканирование находит WP сенсоры, WiFi setup работает полностью
- [ ] **Data Sync**: Все изменения синхронизируются с тем же backend что и мобильное приложение
- [ ] **Error Handling**: Все ошибки (BLE, Network, Validation) обрабатываются с user-friendly messages
- [ ] **Responsive Design**: Корректно отображается от 768px до 4K мониторов
- [ ] **Performance**: Первичная загрузка <3 секунд, BLE операции <10 секунд
**PRD ГОТОВ К ИСПОЛНЕНИЮ** ## 📊 Статус
Все вопросы отвечены: **Выполнено:** Phase 1-3 + Dashboard (14 задач)
- ✅ BLE UUIDs извлечены из кодовой базы **Осталось:** 11 задач (Phase 4-8)
- ✅ Домен: wellnuo.smartlaunchhub.com
- ✅ Offline: не требуется
Принятые рекомендации (добавлены в задачи): ### ✅ Сделано:
- ✅ Shared UI Components Library — общие компоненты mobile/web - Next.js проект + Tailwind CSS
- ✅ Browser/BLE Fallback Strategy — graceful degradation при проблемах - Browser compatibility check
- Auth flow (login, OTP, middleware, store)
- Dashboard page
- UI компоненты (Button, Input, Skeleton, Layout)
Отклонённые рекомендации: ### ❌ Не сделано (требует доработки Web Bluetooth API документации):
- ❌ PWA — не для MVP - Beneficiary Detail Page
- ❌ WebSocket real-time updates — не для MVP - Add Beneficiary Flow
- ❌ Analytics/Sentry — не для MVP - Web Bluetooth Service
- BLE Scanner Component
- WiFi Setup Flow
- Sensor Management Pages
- BLE Error Handling
- Network Error Handling
- Online Status Check
- E2E тесты
- Unit тесты BLE
Задачи распределены между воркерами: @worker1 (Backend/BLE), @worker2 (Auth/API), @worker3 (UI/UX). **Следующий шаг:** Доработать PRD с детальной документацией Web Bluetooth API, затем:
**Следующий шаг:**
```bash ```bash
cd ~/Documents/Projects/WellNuo && ralphy-sonnet --prd PRD-WEB.md cd ~/Documents/Projects/WellNuo && ralphy-opus --prd PRD-WEB.md
``` ```