diff --git a/openspec/changes/hub-modules/design.md b/openspec/changes/hub-modules/design.md index bda5418..73becdf 100644 --- a/openspec/changes/hub-modules/design.md +++ b/openspec/changes/hub-modules/design.md @@ -225,3 +225,20 @@ Обоснование: `ensure_defaults` (настройки ядра) и `ensure_ascii` (json) — не понятия Jira; подстрока дала бы ложные срабатывания. Докстринги ядра с именами типов команд (`ensure_attachment` в `files.py`, `api.py`) переписываются нейтрально. Цена ошибки: тест границы пропустит новое слово вне списка — список в тесте расширяется вручную. +- 23.10.2026 — **R-13 (I-1 финального ревью): расхождения текста design.md и кода, принятые планом.** + (а) `agent publish` остаётся подкомандой ядра (`core/cli.py`), а не модуля jira: команда публикует релиз агента в + `release/`, который в этом change общий (решение 5); в модуль jira уходит только `import`. Решения 2 и 9 в части + «`agent publish` — подкоманда модуля» читать с этой поправкой. + (б) Вместо одного `check_result` в `CommandHooks` четыре хука: `check_result` (статус и текст ошибки до записи + команды), `on_result` (в той же транзакции), `after_result` (после фиксации — `reconcile` у jira), `on_late_result` + (отчёт по уже терминальной команде). Решение 12 («вместо одного `check_result` — `on_result`») читать так. + (в) Функция `files.sweep_downloads` остаётся в `core/files.py` (общая работа с каталогом), в модуль jira переехал + вызов — `downloads_tick`; решение 12 («`downloads/` и `sweep_downloads` — фоновая работа модуля») в этой части + уточняется. + (г) Сигнатуры: `tail(cmds)` вместо `tail_command(keys)`, `on_project_created(conn, project, author)` вместо + `(conn, project)` — автор нужен для заголовка пакета «Новый проект». Цена ошибки: нулевая; при следующем модуле + контракт брать из `core/modules.py`, а не из текста решений. +- 23.10.2026 — **R-14: Minor-находки финального ревью M-1 (неточности `ARCHITECTURE.md`) и M-2 (две метки долга в + `core/api.py`) исправляются в fix wave; M-3 (оценка пакета читает `pacing` на каждый тип) откладывается.** + Обоснование: M-1/M-2 — документация и комментарии; M-3 — N лёгких запросов к локальному SQLite, оптимизация + (хук паузы на пакет) при подключении wiki. Цена ошибки: нулевая.