Project

General

Profile

Requirements » History » Version 1

Hardelele User, 02/16/2026 11:21 AM
User requirements

1 1 Hardelele User
# Пользовательские требования
2
3
> Требования сформулированы с позиции заказчика (пользователя продукта).
4
> Формат: User Story + статус реализации.
5
> Источники: frontend-issues.md, backend-issues.md, narrator-ai-issues.md, feature-roadmap.md, architecture-review.md
6
7
---
8
9
## Сводка по доменам
10
11
| Домен | Реализовано | Открыто | Всего |
12
|-------|-------------|---------|-------|
13
| Story Management | 14 | 2 | 16 |
14
| AI Narrator | 17 | 2 | 19 |
15
| Characters & World | 8 | 1 | 9 |
16
| Auth & Accounts | 5 | 4 | 9 |
17
| Export & Analytics | 3 | 0 | 3 |
18
| Collaboration | 0 | 2 | 2 |
19
| Quality (NFR) | 22 | 6 | 28 |
20
| **Итого** | **69** | **17** | **86** |
21
22
---
23
24
## 1. Story Management (Управление историей)
25
26
### Реализованные
27
28
- **REQ-SM-01** ✅ Как писатель, я хочу создавать проекты с главами и блоками текста, чтобы структурировать историю.
29
- **REQ-SM-02** ✅ Как писатель, я хочу перетаскивать блоки (drag-and-drop) для изменения порядка.
30
  *FR5, F5*
31
- **REQ-SM-03** ✅ Как писатель, я хочу редактировать текст блоков inline и сохранять по Ctrl+S.
32
- **REQ-SM-04** ✅ Как писатель, я хочу видеть подтверждение перед удалением блока.
33
  *F11*
34
- **REQ-SM-05** ✅ Как писатель, я хочу вставлять блоки в середину главы, а не только в конец.
35
  *Narrator issue #28*
36
- **REQ-SM-06** ✅ Как писатель, я хочу разделять блоки (split) и объединять (merge).
37
  *Narrator issue #23, #28*
38
- **REQ-SM-07** ✅ Как писатель, я хочу видеть историю версий блока и восстанавливать предыдущие.
39
  *FR12*
40
- **REQ-SM-08** ✅ Как писатель, я хочу мягкое удаление проектов/глав с возможностью восстановления.
41
  *Architecture D3*
42
- **REQ-SM-09** ✅ Как писатель, я хочу изменять размер панели чата (drag-to-resize).
43
  *FR6, F24*
44
- **REQ-SM-10** ✅ Как писатель, я хочу управлять сессиями чата: переключать, создавать, удалять.
45
  *FR7, F25, F26*
46
- **REQ-SM-11** ✅ Как писатель, я хочу видеть количество слов при наведении на блок.
47
  *F30*
48
- **REQ-SM-12** ✅ Как писатель, я хочу видеть подсветку блоков, изменённых AI.
49
  *F34, F35*
50
- **REQ-SM-13** ✅ Как писатель, я хочу видеть табы чатов (как в Cursor/браузере) для быстрого переключения.
51
  *F33*
52
- **REQ-SM-14** ✅ Как писатель, я хочу кликабельные quick-action кнопки в пустом чате.
53
  *F32*
54
55
### Открытые
56
57
- **REQ-SM-15** 🔴 Как писатель, я хочу видеть diff-отображение AI-правок в стиле Git с возможностью частичного принятия.
58
  *F36, NAI-7*
59
- **REQ-SM-16** 🔴 Как писатель, я хочу экспорт в EPUB и PDF (помимо TXT/DOCX).
60
  *FR10 follow-up*
61
62
---
63
64
## 2. AI Narrator (AI-ассистент)
65
66
### Реализованные
67
68
- **REQ-AI-01** ✅ Как писатель, я хочу чтобы AI писал прозу по моему запросу, создавая блоки текста 800-2000 слов.
69
  *Narrator #12, #13*
70
- **REQ-AI-02** ✅ Как писатель, я хочу чтобы AI автоматически создавал персонажей, лор и события при генерации прозы.
71
  *Narrator #21*
72
- **REQ-AI-03** ✅ Как писатель, я хочу чтобы AI НЕ изобретал детали мира, а спрашивал меня.
73
  *Narrator #20*
74
- **REQ-AI-04** ✅ Как писатель, я хочу видеть процесс работы AI в реальном времени (стриминг).
75
  *Narrator #1, #22, #27*
76
- **REQ-AI-05** ✅ Как писатель, я хочу останавливать AI в любой момент (Stop button).
77
  *Narrator #4*
78
- **REQ-AI-06** ✅ Как писатель, я хочу чтобы AI привязывал события к таймлайну.
79
  *Narrator #29, F41*
80
- **REQ-AI-07** ✅ Как писатель, я хочу чтобы AI соблюдал причинно-следственную связь (персонаж не реагирует на неизвестное).
81
  *Narrator #30, NAI-9*
82
- **REQ-AI-08** ✅ Как писатель, я хочу чтобы AI отслеживал местоположение персонажей.
83
  *Narrator #26*
84
- **REQ-AI-09** ✅ Как писатель, я хочу чтобы AI расширял слишком короткие блоки (auto-expand).
85
  *Narrator #12*
86
- **REQ-AI-10** ✅ Как писатель, я хочу давать AI пользовательские инструкции (стиль, правила).
87
  *FR9*
88
- **REQ-AI-11** ✅ Как писатель, я хочу получать AI-подсказки для улучшения блоков (improve, expand, alternatives, plot hooks).
89
  *FR13*
90
- **REQ-AI-12** ✅ Как писатель, я хочу чтобы AI не дублировал себя и не зацикливался.
91
  *Narrator #16, #17*
92
- **REQ-AI-13** ✅ Как писатель, я хочу чтобы AI знал, какую главу я сейчас редактирую.
93
  *Narrator #24*
94
- **REQ-AI-14** ✅ Как писатель, я хочу чтобы AI не создавал дубликатов персонажей при опечатках (fuzzy matching).
95
  *Narrator #15, NAI-11*
96
- **REQ-AI-15** ✅ Как писатель, я хочу чтобы AI извлекал упомянутые сущности из моего запроса для контекста.
97
  *F37*
98
- **REQ-AI-16** ✅ Как писатель, я хочу чтобы AI обновлял сущности напрямую, а не создавал новые блоки.
99
  *F40*
100
- **REQ-AI-17** ✅ Как писатель, я хочу чтобы AI учился на моих правках (Project Style Memory).
101
  *NAI-3*
102
103
### Открытые
104
105
- **REQ-AI-18** 🔴 Как писатель, я хочу выбирать между разными AI-моделями (GPT vs Claude) и сравнивать результаты.
106
  *F38*
107
- **REQ-AI-19** 🔴 Как писатель, я хочу чтобы AI использовал multi-agent orchestrator для сложных задач.
108
  *NAI-12*
109
110
---
111
112
## 3. Characters & World (Персонажи и мир)
113
114
### Реализованные
115
116
- **REQ-CW-01** ✅ Как писатель, я хочу создавать/редактировать/удалять персонажей с трейтами и фрагментами.
117
  *FR4*
118
- **REQ-CW-02** ✅ Как писатель, я хочу создавать/редактировать/удалять события на таймлайне.
119
  *FR4*
120
- **REQ-CW-03** ✅ Как писатель, я хочу создавать/редактировать/удалять лор-записи с категориями и тегами.
121
  *FR4*
122
- **REQ-CW-04** ✅ Как писатель, я хочу видеть локации как страницу проекта.
123
  *F29*
124
- **REQ-CW-05** ✅ Как писатель, я хочу чтобы сущности имели темпоральные рамки (что когда действительно).
125
- **REQ-CW-06** ✅ Как писатель, я хочу чтобы AI использовал лор с учётом таймлайна.
126
  *Narrator #25*
127
- **REQ-CW-07** ✅ Как писатель, я хочу inline-редактирование на страницах сущностей.
128
  *FR4, F28*
129
- **REQ-CW-08** ✅ Как писатель, я хочу видеть health-отчёт по персонажам без фрагментов, блокам без событий и т.д.
130
  *NAI-1*
131
132
### Открытые
133
134
- **REQ-CW-09** 🔴 Как писатель, я хочу задавать правила для книги (Book Rules) в структурированном виде, которые AI обязан соблюдать.
135
  *FR17*
136
137
---
138
139
## 4. Auth & Accounts (Авторизация и аккаунты)
140
141
### Реализованные
142
143
- **REQ-AU-01** ✅ Как пользователь, я хочу регистрироваться и входить по email + пароль.
144
  *FR1*
145
- **REQ-AU-02** ✅ Как пользователь, я хочу подписки с лимитами (Free / Pro / Enterprise).
146
  *FR2*
147
- **REQ-AU-03** ✅ Как пользователь, я хочу настройки профиля, темы и языка.
148
  *FR3*
149
- **REQ-AU-04** ✅ Как пользователь, я хочу сброс пароля.
150
  *AUTH3*
151
- **REQ-AU-05** ✅ Как пользователь, я хочу чтобы мои данные были защищены (авторизация на все endpoints).
152
  *B1, B2, S1*
153
154
### Открытые
155
156
- **REQ-AU-06** 🔴 Как пользователь, я хочу входить через Google OAuth.
157
  *AUTH1*
158
- **REQ-AU-07** 🔴 Как пользователь, я хочу подтверждение email при регистрации.
159
  *AUTH2*
160
- **REQ-AU-08** 🔴 Как пользователь, я хочу видеть пользовательское соглашение и политику конфиденциальности.
161
  *AUTH4 — Critical для продакшена*
162
- **REQ-AU-09** 🔴 Как пользователь, я хочу лендинг-страницу продукта.
163
  *PROD1*
164
165
---
166
167
## 5. Export & Analytics (Экспорт и аналитика)
168
169
### Реализованные
170
171
- **REQ-EA-01** ✅ Как писатель, я хочу экспортировать историю в TXT и DOCX.
172
  *FR10*
173
- **REQ-EA-02** ✅ Как писатель, я хочу видеть статистику: слова, главы, персонажи, прогресс по дням.
174
  *FR14*
175
- **REQ-EA-03** ✅ Как писатель, я хочу видеть мини-статистику прямо на канвасе.
176
  *FR14*
177
178
---
179
180
## 6. Collaboration (Совместная работа)
181
182
### Открытые
183
184
- **REQ-CO-01** 🔴 Как писатель, я хочу делиться проектами с другими пользователями (роли: owner, editor, viewer).
185
  *FR11*
186
- **REQ-CO-02** 🔴 Как писатель, я хочу видеть присутствие других пользователей в проекте в реальном времени.
187
  *FR16*
188
189
---
190
191
## 7. Quality — Non-Functional Requirements (Нефункциональные)
192
193
### Реализованные
194
195
- **REQ-NF-01** ✅ Система должна обрабатывать ошибки API с уведомлением пользователя.
196
  *F4, F5, FE8*
197
- **REQ-NF-02** ✅ WebSocket должен автоматически переподключаться.
198
  *F10*
199
- **REQ-NF-03** ✅ Система должна работать на мобильных устройствах (responsive layout).
200
  *FR15*
201
- **REQ-NF-04** ✅ Стримы должны иметь timeout (5 минут).
202
  *F7*
203
- **REQ-NF-05** ✅ Должна быть защита от race condition при быстрой отправке команд.
204
  *F3*
205
- **REQ-NF-06** ✅ Должна быть защита от дублирования запросов.
206
  *Narrator #17*
207
- **REQ-NF-07** ✅ API endpoints должны валидировать UUID.
208
  *S3, A4*
209
- **REQ-NF-08** ✅ API должно иметь rate limiting (60 req/min global, 10 req/min AI).
210
  *S2*
211
- **REQ-NF-09** ✅ Ошибки OpenAI не должны раскрывать API ключ.
212
  *S4*
213
- **REQ-NF-10** ✅ Должна быть единая CORS конфигурация.
214
  *S5*
215
- **REQ-NF-11** ✅ Должен быть health check endpoint.
216
  *B6*
217
- **REQ-NF-12** ✅ Должны быть индексы на FK в PostgreSQL.
218
  *D1, D2*
219
- **REQ-NF-13** ✅ Должна быть Error Boundary в React.
220
  *F2*
221
- **REQ-NF-14** ✅ Должно быть структурированное логирование запросов.
222
  *B10*
223
- **REQ-NF-15** ✅ Должен быть graceful shutdown.
224
  *R1*
225
- **REQ-NF-16** ✅ Ретраи при ошибках OpenAI (429, 500, 502, 503).
226
  *R2*
227
- **REQ-NF-17** ✅ Stores должны очищаться при смене проекта.
228
  *FE2*
229
- **REQ-NF-18** ✅ mergeBlocks/splitBlock должны сохранять junction-связи.
230
  *R3*
231
- **REQ-NF-19** ✅ ARIA labels для доступности.
232
  *F16*
233
- **REQ-NF-20** ✅ Мемоизация компонентов (React.memo).
234
  *F19*
235
- **REQ-NF-21** ✅ Чат не должен зависать при недоступном сервере (10с timeout).
236
  *F31*
237
- **REQ-NF-22** ✅ Валидация temporal данных (validFrom <= validUntil).
238
  *A5*
239
240
### Открытые
241
242
- **REQ-NF-23** 🔴 Мобильный UI требует глубокой доработки: hover→touch, bottom-sheet NarratorPanel, touch targets >=48px.
243
  *F39*
244
- **REQ-NF-24** 🔴 N+1 запросы в CharactersService требуют оптимизации.
245
  *A3*
246
- **REQ-NF-25** 🔴 Temporal data consistency: блоки могут ссылаться на невалидные трейты.
247
  *Backend D1*
248
- **REQ-NF-26** 🔴 fullStory endpoint загружает весь граф проекта — нужна пагинация/lazy loading.
249
  *Architecture P2*
250
- **REQ-NF-27** 🔴 Abort mid-tool может оставлять orphaned entities.
251
  *Architecture B1*
252
- **REQ-NF-28** 🔴 Нет shared types между frontend и backend.
253
  *Architecture A1*
254
255
---
256
257
## Фичи для будущих версий (Backlog)
258
259
- **REQ-BL-01** 🔮 Аудио-ввод через Whisper API. *FEAT1*
260
- **REQ-BL-02** 🔮 Story Health Report в контексте AI. *NAI-1 (реализовано backend, можно расширять)*
261
- **REQ-BL-03** 🔮 Project metadata: жанр, формат, целевой объём, акты. *NAI-8*
262
263
---
264
265
*Последнее обновление: 2026-02-16*