docs(openspec): решения R-13, R-14 по итогам финального ревью (#87)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev 2026-10-23 23:31:02 +04:00
parent 2673bac5d8
commit b4fb858817

View File

@ -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. Цена ошибки: нулевая.