62 lines
3.3 KiB
Markdown
62 lines
3.3 KiB
Markdown
# S08-009: Реализовать unread/preview reducer
|
||
|
||
> Generated from planning/tasks.json; status is in state/tasks.json.
|
||
|
||
- Этап: S08
|
||
- Оператор: protocol
|
||
- Reviewer: qa
|
||
- Зависимости: S07-013, S08-003, S08-008
|
||
- Требования: READ-001, MSG-006
|
||
|
||
## Один результат
|
||
|
||
New incoming changes unread/lastActivity exactly once, active view suppresses unread.
|
||
|
||
## Разрешённые пути
|
||
|
||
- `src/adapters/xmpp/unread-preview.*`
|
||
- `tests/protocol/unread-preview.*`
|
||
|
||
Не изменять другие modules, shared contracts или spec snapshots без изменения плана. Stem без расширения разрешает принятые stack-specific extensions и focused test рядом.
|
||
|
||
## Прочитать
|
||
|
||
- docs/WEB_PROFILE.md
|
||
- docs/ARCHITECTURE.md
|
||
- docs/CONTRACTS.md
|
||
- docs/TESTING.md
|
||
- roles/protocol.md
|
||
- docs/decisions/README.md
|
||
- docs/decisions/0001-stack.md (upstream artifact; отсутствие после S00 gate — blocker)
|
||
- docs/contracts/xmpp.md (upstream artifact S01)
|
||
- docs/contracts/models.md (upstream artifact S01)
|
||
- docs/contracts/lifecycle.md (upstream artifact S01)
|
||
|
||
## Шаги
|
||
|
||
1. Прочитать приведённые requirements, контракт через реестр и evidence прямых dependencies.
|
||
2. Описать input/output этого модуля или документа; использовать accepted stack/ports без расширения scope.
|
||
3. Работать только над одним указанным outcome. Если для него нужен новый shared contract — создать отдельную remediation через escalate, заблокировать original и завершить запуск; не расширять текущий scope.
|
||
4. New incoming changes unread/lastActivity exactly once, active view suppresses unread.
|
||
5. Добавить focused fixtures/checks из списка ниже, выполнить их и записать фактический результат.
|
||
|
||
## Приёмка
|
||
|
||
1. New incoming changes unread/lastActivity exactly once, active view suppresses unread.
|
||
2. Replay no count growth
|
||
3. active chat no unread
|
||
4. Нет изменений вне scope; реальный результат/evidence и handoff позволяют другому агенту продолжить.
|
||
|
||
## Focused checks
|
||
|
||
1. Replay no count growth
|
||
2. active chat no unread
|
||
|
||
## Блокер и завершение запуска
|
||
|
||
Для всех ролей scope — только эта задача. При блокере создать issue JSON по state/ISSUE_TEMPLATE.json, вызвать escalate с текущим ID/role/agent, проверить status=blocked и resolution_task, затем немедленно завершить запуск. Не решать blocker и не выбирать следующую задачу самому. Новый агент назначается runner. Правки metadata через CLI — единственное исключение scope.
|
||
|
||
## Передача
|
||
|
||
Сохранить evidence/handoff; submit → review и завершить запуск. Reviewer также выполняет только эту задачу, включая обязательное escalate при блокере.
|