Actions
Пользовательские требования¶
Требования сформулированы с позиции заказчика (пользователя продукта).
Формат: User Story + статус реализации.
Источники: frontend-issues.md, backend-issues.md, narrator-ai-issues.md, feature-roadmap.md, architecture-review.md
Сводка по доменам¶
| Домен | Реализовано | Открыто | Всего |
|---|---|---|---|
| Story Management | 14 | 2 | 16 |
| AI Narrator | 17 | 2 | 19 |
| Characters & World | 8 | 1 | 9 |
| Auth & Accounts | 5 | 4 | 9 |
| Export & Analytics | 3 | 0 | 3 |
| Collaboration | 0 | 2 | 2 |
| Quality (NFR) | 22 | 6 | 28 |
| Итого | 69 | 17 | 86 |
1. Story Management (Управление историей)¶
Реализованные¶
- REQ-SM-01 ✅ Как писатель, я хочу создавать проекты с главами и блоками текста, чтобы структурировать историю.
-
REQ-SM-02 ✅ Как писатель, я хочу перетаскивать блоки (drag-and-drop) для изменения порядка.
FR5, F5 - REQ-SM-03 ✅ Как писатель, я хочу редактировать текст блоков inline и сохранять по Ctrl+S.
-
REQ-SM-04 ✅ Как писатель, я хочу видеть подтверждение перед удалением блока.
F11 -
REQ-SM-05 ✅ Как писатель, я хочу вставлять блоки в середину главы, а не только в конец.
Narrator issue #28 -
REQ-SM-06 ✅ Как писатель, я хочу разделять блоки (split) и объединять (merge).
Narrator issue #23, #28 -
REQ-SM-07 ✅ Как писатель, я хочу видеть историю версий блока и восстанавливать предыдущие.
FR12 -
REQ-SM-08 ✅ Как писатель, я хочу мягкое удаление проектов/глав с возможностью восстановления.
Architecture D3 -
REQ-SM-09 ✅ Как писатель, я хочу изменять размер панели чата (drag-to-resize).
FR6, F24 -
REQ-SM-10 ✅ Как писатель, я хочу управлять сессиями чата: переключать, создавать, удалять.
FR7, F25, F26 -
REQ-SM-11 ✅ Как писатель, я хочу видеть количество слов при наведении на блок.
F30 -
REQ-SM-12 ✅ Как писатель, я хочу видеть подсветку блоков, изменённых AI.
F34, F35 -
REQ-SM-13 ✅ Как писатель, я хочу видеть табы чатов (как в Cursor/браузере) для быстрого переключения.
F33 -
REQ-SM-14 ✅ Как писатель, я хочу кликабельные quick-action кнопки в пустом чате.
F32
Открытые¶
-
REQ-SM-15 🔴 Как писатель, я хочу видеть diff-отображение AI-правок в стиле Git с возможностью частичного принятия.
F36, NAI-7 -
REQ-SM-16 🔴 Как писатель, я хочу экспорт в EPUB и PDF (помимо TXT/DOCX).
FR10 follow-up
2. AI Narrator (AI-ассистент)¶
Реализованные¶
-
REQ-AI-01 ✅ Как писатель, я хочу чтобы AI писал прозу по моему запросу, создавая блоки текста 800-2000 слов.
Narrator #12, #13 -
REQ-AI-02 ✅ Как писатель, я хочу чтобы AI автоматически создавал персонажей, лор и события при генерации прозы.
Narrator #21 -
REQ-AI-03 ✅ Как писатель, я хочу чтобы AI НЕ изобретал детали мира, а спрашивал меня.
Narrator #20 -
REQ-AI-04 ✅ Как писатель, я хочу видеть процесс работы AI в реальном времени (стриминг).
Narrator #1, #22, #27 -
REQ-AI-05 ✅ Как писатель, я хочу останавливать AI в любой момент (Stop button).
Narrator #4 -
REQ-AI-06 ✅ Как писатель, я хочу чтобы AI привязывал события к таймлайну.
Narrator #29, F41 -
REQ-AI-07 ✅ Как писатель, я хочу чтобы AI соблюдал причинно-следственную связь (персонаж не реагирует на неизвестное).
Narrator #30, NAI-9 -
REQ-AI-08 ✅ Как писатель, я хочу чтобы AI отслеживал местоположение персонажей.
Narrator #26 -
REQ-AI-09 ✅ Как писатель, я хочу чтобы AI расширял слишком короткие блоки (auto-expand).
Narrator #12 -
REQ-AI-10 ✅ Как писатель, я хочу давать AI пользовательские инструкции (стиль, правила).
FR9 -
REQ-AI-11 ✅ Как писатель, я хочу получать AI-подсказки для улучшения блоков (improve, expand, alternatives, plot hooks).
FR13 -
REQ-AI-12 ✅ Как писатель, я хочу чтобы AI не дублировал себя и не зацикливался.
Narrator #16, #17 -
REQ-AI-13 ✅ Как писатель, я хочу чтобы AI знал, какую главу я сейчас редактирую.
Narrator #24 -
REQ-AI-14 ✅ Как писатель, я хочу чтобы AI не создавал дубликатов персонажей при опечатках (fuzzy matching).
Narrator #15, NAI-11 -
REQ-AI-15 ✅ Как писатель, я хочу чтобы AI извлекал упомянутые сущности из моего запроса для контекста.
F37 -
REQ-AI-16 ✅ Как писатель, я хочу чтобы AI обновлял сущности напрямую, а не создавал новые блоки.
F40 -
REQ-AI-17 ✅ Как писатель, я хочу чтобы AI учился на моих правках (Project Style Memory).
NAI-3
Открытые¶
-
REQ-AI-18 🔴 Как писатель, я хочу выбирать между разными AI-моделями (GPT vs Claude) и сравнивать результаты.
F38 -
REQ-AI-19 🔴 Как писатель, я хочу чтобы AI использовал multi-agent orchestrator для сложных задач.
NAI-12
3. Characters & World (Персонажи и мир)¶
Реализованные¶
-
REQ-CW-01 ✅ Как писатель, я хочу создавать/редактировать/удалять персонажей с трейтами и фрагментами.
FR4 -
REQ-CW-02 ✅ Как писатель, я хочу создавать/редактировать/удалять события на таймлайне.
FR4 -
REQ-CW-03 ✅ Как писатель, я хочу создавать/редактировать/удалять лор-записи с категориями и тегами.
FR4 -
REQ-CW-04 ✅ Как писатель, я хочу видеть локации как страницу проекта.
F29 - REQ-CW-05 ✅ Как писатель, я хочу чтобы сущности имели темпоральные рамки (что когда действительно).
-
REQ-CW-06 ✅ Как писатель, я хочу чтобы AI использовал лор с учётом таймлайна.
Narrator #25 -
REQ-CW-07 ✅ Как писатель, я хочу inline-редактирование на страницах сущностей.
FR4, F28 -
REQ-CW-08 ✅ Как писатель, я хочу видеть health-отчёт по персонажам без фрагментов, блокам без событий и т.д.
NAI-1
Открытые¶
-
REQ-CW-09 🔴 Как писатель, я хочу задавать правила для книги (Book Rules) в структурированном виде, которые AI обязан соблюдать.
FR17
4. Auth & Accounts (Авторизация и аккаунты)¶
Реализованные¶
-
REQ-AU-01 ✅ Как пользователь, я хочу регистрироваться и входить по email + пароль.
FR1 -
REQ-AU-02 ✅ Как пользователь, я хочу подписки с лимитами (Free / Pro / Enterprise).
FR2 -
REQ-AU-03 ✅ Как пользователь, я хочу настройки профиля, темы и языка.
FR3 -
REQ-AU-04 ✅ Как пользователь, я хочу сброс пароля.
AUTH3 -
REQ-AU-05 ✅ Как пользователь, я хочу чтобы мои данные были защищены (авторизация на все endpoints).
B1, B2, S1
Открытые¶
-
REQ-AU-06 🔴 Как пользователь, я хочу входить через Google OAuth.
AUTH1 -
REQ-AU-07 🔴 Как пользователь, я хочу подтверждение email при регистрации.
AUTH2 -
REQ-AU-08 🔴 Как пользователь, я хочу видеть пользовательское соглашение и политику конфиденциальности.
AUTH4 — Critical для продакшена -
REQ-AU-09 🔴 Как пользователь, я хочу лендинг-страницу продукта.
PROD1
5. Export & Analytics (Экспорт и аналитика)¶
Реализованные¶
-
REQ-EA-01 ✅ Как писатель, я хочу экспортировать историю в TXT и DOCX.
FR10 -
REQ-EA-02 ✅ Как писатель, я хочу видеть статистику: слова, главы, персонажи, прогресс по дням.
FR14 -
REQ-EA-03 ✅ Как писатель, я хочу видеть мини-статистику прямо на канвасе.
FR14
6. Collaboration (Совместная работа)¶
Открытые¶
-
REQ-CO-01 🔴 Как писатель, я хочу делиться проектами с другими пользователями (роли: owner, editor, viewer).
FR11 -
REQ-CO-02 🔴 Как писатель, я хочу видеть присутствие других пользователей в проекте в реальном времени.
FR16
7. Quality — Non-Functional Requirements (Нефункциональные)¶
Реализованные¶
-
REQ-NF-01 ✅ Система должна обрабатывать ошибки API с уведомлением пользователя.
F4, F5, FE8 -
REQ-NF-02 ✅ WebSocket должен автоматически переподключаться.
F10 -
REQ-NF-03 ✅ Система должна работать на мобильных устройствах (responsive layout).
FR15 -
REQ-NF-04 ✅ Стримы должны иметь timeout (5 минут).
F7 -
REQ-NF-05 ✅ Должна быть защита от race condition при быстрой отправке команд.
F3 -
REQ-NF-06 ✅ Должна быть защита от дублирования запросов.
Narrator #17 -
REQ-NF-07 ✅ API endpoints должны валидировать UUID.
S3, A4 -
REQ-NF-08 ✅ API должно иметь rate limiting (60 req/min global, 10 req/min AI).
S2 -
REQ-NF-09 ✅ Ошибки OpenAI не должны раскрывать API ключ.
S4 -
REQ-NF-10 ✅ Должна быть единая CORS конфигурация.
S5 -
REQ-NF-11 ✅ Должен быть health check endpoint.
B6 -
REQ-NF-12 ✅ Должны быть индексы на FK в PostgreSQL.
D1, D2 -
REQ-NF-13 ✅ Должна быть Error Boundary в React.
F2 -
REQ-NF-14 ✅ Должно быть структурированное логирование запросов.
B10 -
REQ-NF-15 ✅ Должен быть graceful shutdown.
R1 -
REQ-NF-16 ✅ Ретраи при ошибках OpenAI (429, 500, 502, 503).
R2 -
REQ-NF-17 ✅ Stores должны очищаться при смене проекта.
FE2 -
REQ-NF-18 ✅ mergeBlocks/splitBlock должны сохранять junction-связи.
R3 -
REQ-NF-19 ✅ ARIA labels для доступности.
F16 -
REQ-NF-20 ✅ Мемоизация компонентов (React.memo).
F19 -
REQ-NF-21 ✅ Чат не должен зависать при недоступном сервере (10с timeout).
F31 -
REQ-NF-22 ✅ Валидация temporal данных (validFrom <= validUntil).
A5
Открытые¶
-
REQ-NF-23 🔴 Мобильный UI требует глубокой доработки: hover→touch, bottom-sheet NarratorPanel, touch targets >=48px.
F39 -
REQ-NF-24 🔴 N+1 запросы в CharactersService требуют оптимизации.
A3 -
REQ-NF-25 🔴 Temporal data consistency: блоки могут ссылаться на невалидные трейты.
Backend D1 -
REQ-NF-26 🔴 fullStory endpoint загружает весь граф проекта — нужна пагинация/lazy loading.
Architecture P2 -
REQ-NF-27 🔴 Abort mid-tool может оставлять orphaned entities.
Architecture B1 -
REQ-NF-28 🔴 Нет shared types между frontend и backend.
Architecture A1
Фичи для будущих версий (Backlog)¶
- REQ-BL-01 🔮 Аудио-ввод через Whisper API. FEAT1
- REQ-BL-02 🔮 Story Health Report в контексте AI. NAI-1 (реализовано backend, можно расширять)
- REQ-BL-03 🔮 Project metadata: жанр, формат, целевой объём, акты. NAI-8
Последнее обновление: 2026-02-16
Updated by Hardelele User about 9 hours ago · 1 revisions