Risk level: LOW (documentation-only; no executable behavior or contract change).
Summary
Consolidate product, UI, and deployment plans in docs/product/implementation-roadmap.md.
Preserve the historical UI register, permanent source links, <=2 CSS px geometry tolerance at 1280×800, and the normative filter-panel ornament requirement as an unresolved implementation gap.
Keep operational facts in runbooks; document existing production and inactive CD accurately.
Ignore generated /reports/ and /tmp/ by default while retaining all 17 tracked evidence files. Publish only an individually reviewed, sanitized report with git add -f.
Merge current main (9a98fafefb4efab722ceba4030d79348bb657b6b) into this branch; retain PR #61 search docs and reflect Search API 0.13.4, frontend 0.3.4, and algorithm search-8 in the README/footer.
Source map and gates
The removed UI and pixel-perfect plans are linked at base commit 7ece39f212b67e497a8dfb360d5d271ab088ef57; UI-01–UI-33 are traced to PR #54 and the UI follow-up commits.
Backup policy: never write full archive or temporary copy to VPS; stream to the fixed D:\Dev\akyldash\.backups; cold backup stops Compose in an owner-agreed window. Keep the prior verified external copy until replacement is published and checked; only the owner decides subsequent retention.
The existing production endpoint returned HTTP 200 in the 2026-10-25 observation; deployed SHA remains unknown. The roadmap describes a controlled update, not a first deployment.
README distinguishes ingestion CLI 0.9.3, normalization CLI 0.10.0, normalizer manifest version 1.1.0, and relevance format relevance-set-v1; the ambiguous data-processing 0.8.0 label is removed. Search/API and frontend versions were refreshed to code versions 0.13.4/0.3.4 from merged main; production deployment remains unverified.
Corpus transfer is gated by CORPUS_HANDOFF.md, linked from the roadmap, docs index, and backend guide. It covers source/staging inventory and checksum comparison, code 6 disposition, safe publication, and index/alias validation; commands are not duplicated.
Checks
git diff --check passed.
Relative Markdown targets resolve in the seven retained Markdown files changed by this PR.
Gitea CI run #702 passed in 2m47s; runner smoke #703 passed in 3s at head 826c1d8ca541f7b4e428fc523db2c4e7dc0c0630.
Application tests were not run locally for this documentation-only change; both required Gitea jobs passed.
No VPS, production, secrets, app-code changes from this PR, or tracked benchmark files were changed. The original dirty source checkout remains untouched.
No merge or deployment was performed by DEV.
Risk level: LOW (documentation-only; no executable behavior or contract change).
## Summary
- Consolidate product, UI, and deployment plans in `docs/product/implementation-roadmap.md`.
- Preserve the historical UI register, permanent source links, <=2 CSS px geometry tolerance at 1280×800, and the normative filter-panel ornament requirement as an unresolved implementation gap.
- Keep operational facts in runbooks; document existing production and inactive CD accurately.
- Ignore generated `/reports/` and `/tmp/` by default while retaining all 17 tracked evidence files. Publish only an individually reviewed, sanitized report with `git add -f`.
- Merge current `main` (`9a98fafefb4efab722ceba4030d79348bb657b6b`) into this branch; retain PR #61 search docs and reflect Search API `0.13.4`, frontend `0.3.4`, and algorithm `search-8` in the README/footer.
## Source map and gates
- The removed UI and pixel-perfect plans are linked at base commit `7ece39f212b67e497a8dfb360d5d271ab088ef57`; UI-01–UI-33 are traced to [PR #54](https://git.vakanaut.ru/admin/akyldash/pulls/54) and the UI follow-up commits.
- Backup policy: never write full archive or temporary copy to VPS; stream to the fixed `D:\Dev\akyldash\.backups`; cold backup stops Compose in an owner-agreed window. Keep the prior verified external copy until replacement is published and checked; only the owner decides subsequent retention.
- The existing production endpoint returned HTTP 200 in the 2026-10-25 observation; deployed SHA remains unknown. The roadmap describes a controlled update, not a first deployment.
- README distinguishes ingestion CLI `0.9.3`, normalization CLI `0.10.0`, normalizer manifest version `1.1.0`, and relevance format `relevance-set-v1`; the ambiguous data-processing `0.8.0` label is removed. Search/API and frontend versions were refreshed to code versions `0.13.4`/`0.3.4` from merged main; production deployment remains unverified.
- Corpus transfer is gated by [CORPUS_HANDOFF.md](https://git.vakanaut.ru/admin/akyldash/src/commit/7ece39f212b67e497a8dfb360d5d271ab088ef57/docs/operations/CORPUS_HANDOFF.md), linked from the roadmap, docs index, and backend guide. It covers source/staging inventory and checksum comparison, code 6 disposition, safe publication, and index/alias validation; commands are not duplicated.
## Checks
- `git diff --check` passed.
- Relative Markdown targets resolve in the seven retained Markdown files changed by this PR.
- Gitea CI run #702 passed in 2m47s; runner smoke #703 passed in 3s at head `826c1d8ca541f7b4e428fc523db2c4e7dc0c0630`.
- Application tests were not run locally for this documentation-only change; both required Gitea jobs passed.
- No VPS, production, secrets, app-code changes from this PR, or tracked benchmark files were changed. The original dirty source checkout remains untouched.
No merge or deployment was performed by DEV.
Проверен весь PR #60 на ba9564fca2 относительно 7ece39f212: 8 файлов diff, исходные планы, DESIGN, код/версии, операционные документы, ссылки и 17 tracked benchmark-файлов. CI #678/#679 успешны. Обнаружены блокирующие пробелы переноса требований; формальное ревью REQUEST_CHANGES содержит точные места и исправления. Слияние в этой фазе не выполняется. [pr60-initial-ba9564f-20261102]
Проверен весь PR #60 на ba9564fca2442ad19bb2bbaf4bc226696f9bfc12 относительно 7ece39f212b67e497a8dfb360d5d271ab088ef57: 8 файлов diff, исходные планы, DESIGN, код/версии, операционные документы, ссылки и 17 tracked benchmark-файлов. CI #678/#679 успешны. Обнаружены блокирующие пробелы переноса требований; формальное ревью REQUEST_CHANGES содержит точные места и исправления. Слияние в этой фазе не выполняется. [pr60-initial-ba9564f-20261102]
Проверил полный diff PR #60 на ba9564fca2442ad19bb2bbaf4bc226696f9bfc12 и документы базового main (7ece39f212b67e497a8dfb360d5d271ab088ef57). CI #678 и #679 успешны. Нужны исправления:
[P1] Сохранить обязательную политику backup в едином плане (docs/product/implementation-roadmap.md, §2.3, строки 289–326). Сейчас там только общие «backup readiness»/«external backup» и ссылка на runbooks. docs/operations/CURRENT_STATE.md и BACKUP.md требуют, чтобы полный архив никогда, даже временно, не записывался на VPS; поток идёт на фиксированный D:\Dev\akyldash\.backups, старые VPS cold-backup команды запрещены, предыдущую внешнюю копию хранят до проверки замены и решения владельца о retention. При удалении исходных планов эти ограничения должны быть явным gate нового roadmap, с разницей между неактивным CD и уже работающим production. «Первое применение» не должно выглядеть как новый first deploy существующего сервиса.
[P1] Уточнить правило для генерируемых reports/ (.gitignore, новые строки 20–22). /reports/tmp/ игнорирует лишь одну папку; другие временные результаты, например reports/deployment-readiness-*, по-прежнему попадают в git status. Это оставляет уборку локального generated bulk незавершённой. 17 уже отслеживаемых файлов reports/search-benchmark-wave-2-2026-09-25/ сохранятся даже при /reports/; выберите общий ignore с документированной адресной публикацией через git add -f либо конкретные шаблоны всех генерируемых подкаталогов.
[P1] Не терять визуальные критерии и различить цель от текущей реализации (docs/product/implementation-roadmap.md, строки 206–215 и §2.2/приёмка). Удаляемый frontend-pixel-perfect-plan.md задаёт допуск до 2 CSS px для границ зон и отступов/размеров управления при 1280×800; в новом плане и сохраняемом visual-review/README.md этого критерия нет. DESIGN.md (§Shapes) по-прежнему требует небольшой золотистый SVG-орнамент в свободной нижней части desktop-фильтров, а новый план лишь сообщает, что декоративный SVG и резерв удалены в follow-up. Явно сохраните нормативную цель и отметьте её текущее состояние/необходимость дизайнерского решения; удаление не равно выполнению требования.
[P2] Дать постоянные ссылки на исторические источники (implementation-roadmap.md, строки 65–70, 176–232). Формулы «план на main» и «исходный документ» ссылаются на файлы, которые этот PR удаляет. Добавьте ссылку на interface-correction-plan.md и frontend-pixel-perfect-plan.md на указанном базовом SHA, а также на PR #54/конкретные commits для утверждений о реализации и follow-up. Тогда читатель сможет проверить исторические наблюдения после удаления путей из текущей ветки.
Подтверждено: UI-01—UI-33, 13 Figma node URL для 15 состояний, три target PNG, локальные ссылки нового плана и 17 tracked benchmark-файлов сохранены; версии Search API 0.13.3, frontend 0.3.3 и bot 0.2.2 соответствуют коду. Внешние локальные drafts AKYLDASH_DEPLOY_PLAN_UPDATED.md/vps.md в этом Linux checkout недоступны; их побайтовую сверку с source до последующего local apply должен выполнить оркестратор. Текущий PR не сливать.
Проверил полный diff PR #60 на `ba9564fca2442ad19bb2bbaf4bc226696f9bfc12` и документы базового `main` (`7ece39f212b67e497a8dfb360d5d271ab088ef57`). CI #678 и #679 успешны. Нужны исправления:
1. **[P1] Сохранить обязательную политику backup в едином плане** (`docs/product/implementation-roadmap.md`, §2.3, строки 289–326). Сейчас там только общие «backup readiness»/«external backup» и ссылка на runbooks. `docs/operations/CURRENT_STATE.md` и `BACKUP.md` требуют, чтобы полный архив никогда, даже временно, не записывался на VPS; поток идёт на фиксированный `D:\Dev\akyldash\.backups`, старые VPS cold-backup команды запрещены, предыдущую внешнюю копию хранят до проверки замены и решения владельца о retention. При удалении исходных планов эти ограничения должны быть явным gate нового roadmap, с разницей между неактивным CD и уже работающим production. «Первое применение» не должно выглядеть как новый first deploy существующего сервиса.
2. **[P1] Уточнить правило для генерируемых `reports/`** (`.gitignore`, новые строки 20–22). `/reports/tmp/` игнорирует лишь одну папку; другие временные результаты, например `reports/deployment-readiness-*`, по-прежнему попадают в `git status`. Это оставляет уборку локального generated bulk незавершённой. 17 уже отслеживаемых файлов `reports/search-benchmark-wave-2-2026-09-25/` сохранятся даже при `/reports/`; выберите общий ignore с документированной адресной публикацией через `git add -f` либо конкретные шаблоны всех генерируемых подкаталогов.
3. **[P1] Не терять визуальные критерии и различить цель от текущей реализации** (`docs/product/implementation-roadmap.md`, строки 206–215 и §2.2/приёмка). Удаляемый `frontend-pixel-perfect-plan.md` задаёт допуск до 2 CSS px для границ зон и отступов/размеров управления при 1280×800; в новом плане и сохраняемом `visual-review/README.md` этого критерия нет. `DESIGN.md` (§Shapes) по-прежнему требует небольшой золотистый SVG-орнамент в свободной нижней части desktop-фильтров, а новый план лишь сообщает, что декоративный SVG и резерв удалены в follow-up. Явно сохраните нормативную цель и отметьте её текущее состояние/необходимость дизайнерского решения; удаление не равно выполнению требования.
4. **[P2] Дать постоянные ссылки на исторические источники** (`implementation-roadmap.md`, строки 65–70, 176–232). Формулы «план на main» и «исходный документ» ссылаются на файлы, которые этот PR удаляет. Добавьте ссылку на `interface-correction-plan.md` и `frontend-pixel-perfect-plan.md` на указанном базовом SHA, а также на PR #54/конкретные commits для утверждений о реализации и follow-up. Тогда читатель сможет проверить исторические наблюдения после удаления путей из текущей ветки.
Подтверждено: UI-01—UI-33, 13 Figma node URL для 15 состояний, три target PNG, локальные ссылки нового плана и 17 tracked benchmark-файлов сохранены; версии Search API 0.13.3, frontend 0.3.3 и bot 0.2.2 соответствуют коду. Внешние локальные drafts `AKYLDASH_DEPLOY_PLAN_UPDATED.md`/`vps.md` в этом Linux checkout недоступны; их побайтовую сверку с source до последующего local apply должен выполнить оркестратор. Текущий PR не сливать.
Повторное независимое ревью всего PR #60 на 4cf96e3fa9: исправления review #373 подтверждены; UI-01–UI-33, Figma/PNG, ссылки, 17 benchmark-файлов и оба CI (#680/#681) проверены. Остались два блокирующих документационных пробела: текущая версия обработки данных в README и ссылка на действующий runbook передачи корпуса. Подробности — в формальном REQUEST_CHANGES. PR остаётся открытым; merge не выполняется. [pr60-initial-4cf96e3-20261103]
Повторное независимое ревью всего PR #60 на 4cf96e3fa9ef95873657284af954c9ab3b629683: исправления review #373 подтверждены; UI-01–UI-33, Figma/PNG, ссылки, 17 benchmark-файлов и оба CI (#680/#681) проверены. Остались два блокирующих документационных пробела: текущая версия обработки данных в README и ссылка на действующий runbook передачи корпуса. Подробности — в формальном REQUEST_CHANGES. PR остаётся открытым; merge не выполняется. [pr60-initial-4cf96e3-20261103]
Повторно проверен весь diff PR #60 на 4cf96e3fa9ef95873657284af954c9ab3b629683 относительно 7ece39f212b67e497a8dfb360d5d271ab088ef57. Исправления review #373 подтверждены: ban полного backup на VPS, фиксированный внешний D: путь, одна retained verified copy и agreed cold window; /reports/ с сохранением 17 tracked benchmark-файлов; допуск 2 CSS px; нормативный SVG-орнамент отмечен как невыполненный; исторические ссылки закреплены за commit. CI #680/#681 успешны. Остались два замечания.
[P2] Уточнить текущую версию обработки правовых данных (README.md, строка 28). Таблица в разделе «Текущее состояние» оставляет Сбор и обработка правовых данных | 0.8.0, хотя в коде базового SHA backend/ingestion/minjust_cbd.py имеет APP_VERSION = 0.9.3, а backend/normalization/minjust_cbd.py — 0.10.0. Это особенно сбивает с толку рядом с обновлённым backend/README.md, который называет загрузчик 0.9.3. Если 0.8.0 относится к отдельному компоненту, назовите его и приведите точный источник версии; иначе покажите актуальные версии загрузки и нормализации или обозначьте 0.8.0 как исторический этап.
[P2] Связать gate корпуса с действующей процедурой передачи (docs/product/implementation-roadmap.md, §2.3 пункт 2; docs/README.md, операционный индекс). Исторический deployment draft требовал воспроизводимую цепочку source → staging → manifest/checksum → безопасную публикацию → индексирование и отказ при неполных данных. Новому плану оставлена общая формулировка, а действующий docs/operations/CORPUS_HANDOFF.md не указан ни здесь, ни в новом индексе runbooks; backend/README.md также не ведёт к нему. Этот runbook содержит конкретные проверки nonempty source/staging, checksums, disposition code 6, запрет перезаписи корпуса и проверку alias до публикации. Добавьте точную ссылку и назовите его обязательным gate без копирования команд — тогда важная часть исходного требования останется доступной после удаления старых планов.
Исторические Windows drafts AKYLDASH_DEPLOY_PLAN_UPDATED.md и vps.md были переданы в полном тексте через назначение; я сравнил их существенные требования с текущим планом и base runbooks. Устаревшие утверждения о неразвёрнутом VPS/DNS/пакетах обоснованно не перенесены как нынешние факты. Их исходные файлы и SHA-256 в этой Linux среде я сам не открывал и не вычислял. Для последующего local apply оркестратору всё ещё нужен preimage guard всех write/delete путей. Merge в initial_review запрещён.
Повторно проверен весь diff PR #60 на `4cf96e3fa9ef95873657284af954c9ab3b629683` относительно `7ece39f212b67e497a8dfb360d5d271ab088ef57`. Исправления review #373 подтверждены: ban полного backup на VPS, фиксированный внешний D: путь, одна retained verified copy и agreed cold window; `/reports/` с сохранением 17 tracked benchmark-файлов; допуск 2 CSS px; нормативный SVG-орнамент отмечен как невыполненный; исторические ссылки закреплены за commit. CI #680/#681 успешны. Остались два замечания.
1. **[P2] Уточнить текущую версию обработки правовых данных** (`README.md`, строка 28). Таблица в разделе «Текущее состояние» оставляет `Сбор и обработка правовых данных | 0.8.0`, хотя в коде базового SHA `backend/ingestion/minjust_cbd.py` имеет `APP_VERSION = 0.9.3`, а `backend/normalization/minjust_cbd.py` — `0.10.0`. Это особенно сбивает с толку рядом с обновлённым `backend/README.md`, который называет загрузчик 0.9.3. Если 0.8.0 относится к отдельному компоненту, назовите его и приведите точный источник версии; иначе покажите актуальные версии загрузки и нормализации или обозначьте 0.8.0 как исторический этап.
2. **[P2] Связать gate корпуса с действующей процедурой передачи** (`docs/product/implementation-roadmap.md`, §2.3 пункт 2; `docs/README.md`, операционный индекс). Исторический deployment draft требовал воспроизводимую цепочку source → staging → manifest/checksum → безопасную публикацию → индексирование и отказ при неполных данных. Новому плану оставлена общая формулировка, а действующий `docs/operations/CORPUS_HANDOFF.md` не указан ни здесь, ни в новом индексе runbooks; `backend/README.md` также не ведёт к нему. Этот runbook содержит конкретные проверки nonempty source/staging, checksums, disposition code 6, запрет перезаписи корпуса и проверку alias до публикации. Добавьте точную ссылку и назовите его обязательным gate без копирования команд — тогда важная часть исходного требования останется доступной после удаления старых планов.
Исторические Windows drafts `AKYLDASH_DEPLOY_PLAN_UPDATED.md` и `vps.md` были переданы в полном тексте через назначение; я сравнил их существенные требования с текущим планом и base runbooks. Устаревшие утверждения о неразвёрнутом VPS/DNS/пакетах обоснованно не перенесены как нынешние факты. Их исходные файлы и SHA-256 в этой Linux среде я сам не открывал и не вычислял. Для последующего local apply оркестратору всё ещё нужен preimage guard всех write/delete путей. Merge в initial_review запрещён.
Полное повторное ревью PR #60 на ee03dc6cc7: исправления #373 и #374 подтверждены, README-версии и ссылки CORPUS_HANDOFF сверены с кодом, 33 UI пункта/13 Figma nodes/3 PNG/17 tracked benchmark сохранены, CI #682/#683 успешны. Остался один блокирующий пробел в критерии безопасной передачи корпуса: атомарное размещение и возобновляемый отказ из исторического deployment draft пока не перенесены явно. Формальное REQUEST_CHANGES содержит детали. Merge не выполняется. [pr60-initial-ee03dc6-20261103]
Полное повторное ревью PR #60 на ee03dc6cc77b0a82a82aebbe7bf9912ce2fe1a4d: исправления #373 и #374 подтверждены, README-версии и ссылки CORPUS_HANDOFF сверены с кодом, 33 UI пункта/13 Figma nodes/3 PNG/17 tracked benchmark сохранены, CI #682/#683 успешны. Остался один блокирующий пробел в критерии безопасной передачи корпуса: атомарное размещение и возобновляемый отказ из исторического deployment draft пока не перенесены явно. Формальное REQUEST_CHANGES содержит детали. Merge не выполняется. [pr60-initial-ee03dc6-20261103]
Повторно проверен полный diff PR #60 на ee03dc6cc77b0a82a82aebbe7bf9912ce2fe1a4d относительно 7ece39f212b67e497a8dfb360d5d271ab088ef57, исходные UI-планы, DESIGN, код и операционные runbooks. Исправления review #373/#374 подтверждены: правила backup, /reports/, 2 CSS px, нормативный SVG, постоянные исторические ссылки, раздельные версии ingestion/normalization/relevance и ссылки на CORPUS_HANDOFF.md. UI-01—UI-33, Figma/PNG, локальные ссылки и 17 tracked benchmark-файлов сохранены. CI #682/#683 успешны.
[P1] Сохранить gate атомарной передачи корпуса (docs/product/implementation-roadmap.md, §2.3 пункт 2, примерно строки 326–337). Полный исторический AKYLDASH_DEPLOY_PLAN_UPDATED.md, этап A.4, требовал цепочку source → staging → checksum/manifest → атомарная публикация в $DATA_ROOT/minjust-normalized → валидация → загрузка в OpenSearch, с возобновлением и безопасным отказом. Новый план заменяет это общим «безопасная публикация» и ссылкой на CORPUS_HANDOFF.md. Действующий runbook проверяет непустые source/staging, их равенство и индекс/alias, но для размещения файлов в DATA_ROOT говорит лишь «then consider placing it»; атомарный switch и восстановление после прерванного копирования не определены. Атомарный switch OpenSearch alias — отдельная операция и этот пробел не закрывает. Укажите явный gate для будущей процедуры передачи: проверенный staging публикуется атомарно или через отдельно описанный равнонадёжный механизм; неполная/прерванная передача не подменяет действующий корпус и допускает безопасное возобновление либо отказ. Не нужно заявлять, что механизм уже реализован, или дублировать команды runbook.
Исторические Windows drafts ранее переданы оркестратором полными текстами; я перечитал их требования по мере сверки, но исходные файлы и их SHA-256 в этой Linux среде не открывал и не вычислял. Устаревшие факты о пустом VPS не перенесены как текущие, что корректно. Это initial_review: PR не сливать; после исправления требуется новый полный review на новом SHA.
Повторно проверен полный diff PR #60 на `ee03dc6cc77b0a82a82aebbe7bf9912ce2fe1a4d` относительно `7ece39f212b67e497a8dfb360d5d271ab088ef57`, исходные UI-планы, DESIGN, код и операционные runbooks. Исправления review #373/#374 подтверждены: правила backup, `/reports/`, 2 CSS px, нормативный SVG, постоянные исторические ссылки, раздельные версии ingestion/normalization/relevance и ссылки на `CORPUS_HANDOFF.md`. UI-01—UI-33, Figma/PNG, локальные ссылки и 17 tracked benchmark-файлов сохранены. CI #682/#683 успешны.
**[P1] Сохранить gate атомарной передачи корпуса** (`docs/product/implementation-roadmap.md`, §2.3 пункт 2, примерно строки 326–337). Полный исторический `AKYLDASH_DEPLOY_PLAN_UPDATED.md`, этап A.4, требовал цепочку source → staging → checksum/manifest → **атомарная публикация** в `$DATA_ROOT/minjust-normalized` → валидация → загрузка в OpenSearch, с возобновлением и безопасным отказом. Новый план заменяет это общим «безопасная публикация» и ссылкой на `CORPUS_HANDOFF.md`. Действующий runbook проверяет непустые source/staging, их равенство и индекс/alias, но для размещения файлов в `DATA_ROOT` говорит лишь «then consider placing it»; атомарный switch и восстановление после прерванного копирования не определены. Атомарный switch OpenSearch alias — отдельная операция и этот пробел не закрывает. Укажите явный gate для будущей процедуры передачи: проверенный staging публикуется атомарно или через отдельно описанный равнонадёжный механизм; неполная/прерванная передача не подменяет действующий корпус и допускает безопасное возобновление либо отказ. Не нужно заявлять, что механизм уже реализован, или дублировать команды runbook.
Исторические Windows drafts ранее переданы оркестратором полными текстами; я перечитал их требования по мере сверки, но исходные файлы и их SHA-256 в этой Linux среде не открывал и не вычислял. Устаревшие факты о пустом VPS не перенесены как текущие, что корректно. Это initial_review: PR не сливать; после исправления требуется новый полный review на новом SHA.
Полное initial review PR #60 на 849c7537ed завершено: все замечания #373–#375 исправлены, исходные UI/инфраструктурные требования и текущие runbooks сверены, 33 UI пункта, Figma/PNG, ссылки и 17 tracked benchmark-файлов сохранены. CI #684 и #685 успешны на этом SHA. Блокирующих замечаний нет; публикую формальное APPROVED. Этот этап не разрешает merge, PR остаётся открытым до отдельной финальной проверки. [pr60-initial-849c753-20261103]
Полное initial review PR #60 на 849c7537ed134831a8da46999d5cbdde1772e4bb завершено: все замечания #373–#375 исправлены, исходные UI/инфраструктурные требования и текущие runbooks сверены, 33 UI пункта, Figma/PNG, ссылки и 17 tracked benchmark-файлов сохранены. CI #684 и #685 успешны на этом SHA. Блокирующих замечаний нет; публикую формальное APPROVED. Этот этап не разрешает merge, PR остаётся открытым до отдельной финальной проверки. [pr60-initial-849c753-20261103]
Полный независимый initial review PR #60 на 849c7537ed134831a8da46999d5cbdde1772e4bb относительно 7ece39f212b67e497a8dfb360d5d271ab088ef57 завершён. Повторно проверены весь diff и контекст, исправления #373/#374/#375, оба ранее переданных исторических infrastructure drafts (data/network/Docker/secrets/backup/rollback/CI/readiness/roles), исходные UI-планы, DESIGN, README, runbooks и точные source versions. Новый gate корпуса явно требует all-or-nothing staging → DATA_ROOT, не заменяет текущий корпус при прерывании и отделяет файловую публикацию от OpenSearch alias; отсутствие реализованного механизма честно отмечено. Сохранены UI-01—UI-33, 13 Figma node URL для 15 состояний, 3 target PNG и 17 tracked benchmark-файлов; локальные ссылки разрешаются. CI #684 и #685 completed/success на текущем SHA. Блокирующих замечаний нет.
Это только initial_review: APPROVED не разрешает merge. После отдельного changelog push требуется новый полный final review по отдельному назначению; текущий PR должен оставаться открытым.
Полный независимый initial review PR #60 на `849c7537ed134831a8da46999d5cbdde1772e4bb` относительно `7ece39f212b67e497a8dfb360d5d271ab088ef57` завершён. Повторно проверены весь diff и контекст, исправления #373/#374/#375, оба ранее переданных исторических infrastructure drafts (data/network/Docker/secrets/backup/rollback/CI/readiness/roles), исходные UI-планы, DESIGN, README, runbooks и точные source versions. Новый gate корпуса явно требует all-or-nothing staging → DATA_ROOT, не заменяет текущий корпус при прерывании и отделяет файловую публикацию от OpenSearch alias; отсутствие реализованного механизма честно отмечено. Сохранены UI-01—UI-33, 13 Figma node URL для 15 состояний, 3 target PNG и 17 tracked benchmark-файлов; локальные ссылки разрешаются. CI #684 и #685 completed/success на текущем SHA. Блокирующих замечаний нет.
Это только `initial_review`: APPROVED не разрешает merge. После отдельного changelog push требуется новый полный final review по отдельному назначению; текущий PR должен оставаться открытым.
Полное финальное ревью PR #60 на 7437aef346 завершено: проверены весь diff и changelog, исправления #373–#375, требования двух исторических infrastructure drafts, UI-01–UI-33/Figma/PNG, версии, ссылки, backup/корпус/CD gates и 17 tracked benchmark-файлов. CI #686/#687 completed/success на этом SHA. Блокирующих замечаний нет; формальное APPROVED публикуется отдельно. По явному поручению пользователя merge запрещён: PR остаётся открытым. [pr60-final-7437aef-20261103]
Полное финальное ревью PR #60 на 7437aef346cd103a4f7f1d63cc5a48d319bf9ae0 завершено: проверены весь diff и changelog, исправления #373–#375, требования двух исторических infrastructure drafts, UI-01–UI-33/Figma/PNG, версии, ссылки, backup/корпус/CD gates и 17 tracked benchmark-файлов. CI #686/#687 completed/success на этом SHA. Блокирующих замечаний нет; формальное APPROVED публикуется отдельно. По явному поручению пользователя merge запрещён: PR остаётся открытым. [pr60-final-7437aef-20261103]
Полный независимый final review PR #60 на 7437aef346cd103a4f7f1d63cc5a48d319bf9ae0 относительно 7ece39f212b67e497a8dfb360d5d271ab088ef57 завершён. Проверены весь текущий diff, все исправления review #373–#375, новая changelog-запись, README/source versions, DESIGN, удаляемые UI-планы, действующие runbooks и требования двух ранее переданных полных исторических infrastructure drafts по данным, сети, Docker, секретам, backup, rollback, CI, readiness и ролям. Changelog сохраняет прежние записи, а новый текст верно указывает, что механизм атомарной публикации корпуса остаётся нереализованным gate. UI-01—UI-33, 13 Figma node URL для 15 состояний, три target PNG, локальные ссылки и 17 tracked benchmark-файлов проверены. CI #686 и #687 completed/success на текущем SHA. Новых блокирующих замечаний нет.
NO MERGE PER USER: это одобрение ревью не разрешает слияние; PR должен оставаться открытым. Никаких действий с production, исходным грязным checkout или локальным apply не выполнялось.
Полный независимый final review PR #60 на `7437aef346cd103a4f7f1d63cc5a48d319bf9ae0` относительно `7ece39f212b67e497a8dfb360d5d271ab088ef57` завершён. Проверены весь текущий diff, все исправления review #373–#375, новая changelog-запись, README/source versions, DESIGN, удаляемые UI-планы, действующие runbooks и требования двух ранее переданных полных исторических infrastructure drafts по данным, сети, Docker, секретам, backup, rollback, CI, readiness и ролям. Changelog сохраняет прежние записи, а новый текст верно указывает, что механизм атомарной публикации корпуса остаётся нереализованным gate. UI-01—UI-33, 13 Figma node URL для 15 состояний, три target PNG, локальные ссылки и 17 tracked benchmark-файлов проверены. CI #686 и #687 completed/success на текущем SHA. Новых блокирующих замечаний нет.
**NO MERGE PER USER:** это одобрение ревью не разрешает слияние; PR должен оставаться открытым. Никаких действий с production, исходным грязным checkout или локальным apply не выполнялось.
[pr60-826-docs-readme-version] [P2] docs/README.md:58 — после обновления ветки от main footer изменённого документа всё ещё указывает Backend 0.13.3 / Frontend 0.3.3. На текущем head код и уже согласованные README.md / backend/README.md указывают 0.13.4 / 0.3.4 (search-8). Это индекс действующей документации, а не датированная историческая запись; версии теперь противоречат соседним файлам и текущему коду. Обновите footer docs/README.md до 0.13.4 / 0.3.4, сохранив исторические версии в датированном roadmap и обе записи changelog.
[pr60-826-docs-readme-version] [P2] `docs/README.md:58` — после обновления ветки от `main` footer изменённого документа всё ещё указывает Backend `0.13.3` / Frontend `0.3.3`. На текущем head код и уже согласованные `README.md` / `backend/README.md` указывают `0.13.4` / `0.3.4` (`search-8`). Это индекс действующей документации, а не датированная историческая запись; версии теперь противоречат соседним файлам и текущему коду. Обновите footer `docs/README.md` до `0.13.4` / `0.3.4`, сохранив исторические версии в датированном roadmap и обе записи changelog.
REQUEST_CHANGES на 826c1d8ca5: одно замечание по версии в docs/README.md (комментарий #2715). Полный diff, исправления #373–#375, merge-конфликт CHANGELOG, ссылки и 17 отслеживаемых отчётов проверены; CI #702/#703 успешны. После узкой правки нужен новый SHA и повторное финальное ревью; merge сейчас не выполняется.
REQUEST_CHANGES на 826c1d8ca541: одно замечание по версии в `docs/README.md` (комментарий #2715). Полный diff, исправления #373–#375, merge-конфликт CHANGELOG, ссылки и 17 отслеживаемых отчётов проверены; CI #702/#703 успешны. После узкой правки нужен новый SHA и повторное финальное ревью; merge сейчас не выполняется.
[review-final-pr60-9fc2692] Полное финальное ревью PR #60: замечания #373–#375 и #383 исправлены. После слияния main сохранены обе записи CHANGELOG, актуальные версии Search API 0.13.4 / Frontend 0.3.4, обязательный gate передачи корпуса и исторические UI-критерии. На текущем SHA успешны CI #704 и runner smoke #705; 49 относительных ссылок разрешаются, UI-01–UI-33 и 17 tracked benchmark-файлов сохранены. Этот PR меняет документацию и правила игнорирования generated reports; production и app-код не затрагивает. Блокирующих замечаний нет.
[review-final-pr60-9fc2692] Полное финальное ревью PR #60: замечания #373–#375 и #383 исправлены. После слияния `main` сохранены обе записи CHANGELOG, актуальные версии Search API `0.13.4` / Frontend `0.3.4`, обязательный gate передачи корпуса и исторические UI-критерии. На текущем SHA успешны CI #704 и runner smoke #705; 49 относительных ссылок разрешаются, UI-01–UI-33 и 17 tracked benchmark-файлов сохранены. Этот PR меняет документацию и правила игнорирования generated reports; production и app-код не затрагивает. Блокирующих замечаний нет.
APPROVED для PR #60 на 9fc269283b. Проверены весь текущий diff относительно base 9a98fafefb, исправления #373–#375/#383, разрешение конфликта и версии. Текущие CI #704/#705 successful; подробности и пределы: комментарий #2718. Merge выполняется только после повторной проверки серверных gate на этом exact head.
APPROVED для PR #60 на 9fc269283bba6e4298c7472304102b9d7e57ed60. Проверены весь текущий diff относительно base 9a98fafefb4e, исправления #373–#375/#383, разрешение конфликта и версии. Текущие CI #704/#705 successful; подробности и пределы: комментарий #2718. Merge выполняется только после повторной проверки серверных gate на этом exact head.
agent
merged commit f19faf628e into main2026-11-03 06:08:34 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Risk level: LOW (documentation-only; no executable behavior or contract change).
Summary
docs/product/implementation-roadmap.md./reports/and/tmp/by default while retaining all 17 tracked evidence files. Publish only an individually reviewed, sanitized report withgit add -f.main(9a98fafefb4efab722ceba4030d79348bb657b6b) into this branch; retain PR #61 search docs and reflect Search API0.13.4, frontend0.3.4, and algorithmsearch-8in the README/footer.Source map and gates
7ece39f212b67e497a8dfb360d5d271ab088ef57; UI-01–UI-33 are traced to PR #54 and the UI follow-up commits.D:\Dev\akyldash\.backups; cold backup stops Compose in an owner-agreed window. Keep the prior verified external copy until replacement is published and checked; only the owner decides subsequent retention.0.9.3, normalization CLI0.10.0, normalizer manifest version1.1.0, and relevance formatrelevance-set-v1; the ambiguous data-processing0.8.0label is removed. Search/API and frontend versions were refreshed to code versions0.13.4/0.3.4from merged main; production deployment remains unverified.Checks
git diff --checkpassed.826c1d8ca541f7b4e428fc523db2c4e7dc0c0630.No merge or deployment was performed by DEV.
Проверен весь PR #60 на
ba9564fca2относительно7ece39f212: 8 файлов diff, исходные планы, DESIGN, код/версии, операционные документы, ссылки и 17 tracked benchmark-файлов. CI #678/#679 успешны. Обнаружены блокирующие пробелы переноса требований; формальное ревью REQUEST_CHANGES содержит точные места и исправления. Слияние в этой фазе не выполняется. [pr60-initial-ba9564f-20261102]Проверил полный diff PR #60 на
ba9564fca2442ad19bb2bbaf4bc226696f9bfc12и документы базовогоmain(7ece39f212b67e497a8dfb360d5d271ab088ef57). CI #678 и #679 успешны. Нужны исправления:[P1] Сохранить обязательную политику backup в едином плане (
docs/product/implementation-roadmap.md, §2.3, строки 289–326). Сейчас там только общие «backup readiness»/«external backup» и ссылка на runbooks.docs/operations/CURRENT_STATE.mdиBACKUP.mdтребуют, чтобы полный архив никогда, даже временно, не записывался на VPS; поток идёт на фиксированныйD:\Dev\akyldash\.backups, старые VPS cold-backup команды запрещены, предыдущую внешнюю копию хранят до проверки замены и решения владельца о retention. При удалении исходных планов эти ограничения должны быть явным gate нового roadmap, с разницей между неактивным CD и уже работающим production. «Первое применение» не должно выглядеть как новый first deploy существующего сервиса.[P1] Уточнить правило для генерируемых
reports/(.gitignore, новые строки 20–22)./reports/tmp/игнорирует лишь одну папку; другие временные результаты, напримерreports/deployment-readiness-*, по-прежнему попадают вgit status. Это оставляет уборку локального generated bulk незавершённой. 17 уже отслеживаемых файловreports/search-benchmark-wave-2-2026-09-25/сохранятся даже при/reports/; выберите общий ignore с документированной адресной публикацией черезgit add -fлибо конкретные шаблоны всех генерируемых подкаталогов.[P1] Не терять визуальные критерии и различить цель от текущей реализации (
docs/product/implementation-roadmap.md, строки 206–215 и §2.2/приёмка). Удаляемыйfrontend-pixel-perfect-plan.mdзадаёт допуск до 2 CSS px для границ зон и отступов/размеров управления при 1280×800; в новом плане и сохраняемомvisual-review/README.mdэтого критерия нет.DESIGN.md(§Shapes) по-прежнему требует небольшой золотистый SVG-орнамент в свободной нижней части desktop-фильтров, а новый план лишь сообщает, что декоративный SVG и резерв удалены в follow-up. Явно сохраните нормативную цель и отметьте её текущее состояние/необходимость дизайнерского решения; удаление не равно выполнению требования.[P2] Дать постоянные ссылки на исторические источники (
implementation-roadmap.md, строки 65–70, 176–232). Формулы «план на main» и «исходный документ» ссылаются на файлы, которые этот PR удаляет. Добавьте ссылку наinterface-correction-plan.mdиfrontend-pixel-perfect-plan.mdна указанном базовом SHA, а также на PR #54/конкретные commits для утверждений о реализации и follow-up. Тогда читатель сможет проверить исторические наблюдения после удаления путей из текущей ветки.Подтверждено: UI-01—UI-33, 13 Figma node URL для 15 состояний, три target PNG, локальные ссылки нового плана и 17 tracked benchmark-файлов сохранены; версии Search API 0.13.3, frontend 0.3.3 и bot 0.2.2 соответствуют коду. Внешние локальные drafts
AKYLDASH_DEPLOY_PLAN_UPDATED.md/vps.mdв этом Linux checkout недоступны; их побайтовую сверку с source до последующего local apply должен выполнить оркестратор. Текущий PR не сливать.Повторное независимое ревью всего PR #60 на
4cf96e3fa9: исправления review #373 подтверждены; UI-01–UI-33, Figma/PNG, ссылки, 17 benchmark-файлов и оба CI (#680/#681) проверены. Остались два блокирующих документационных пробела: текущая версия обработки данных в README и ссылка на действующий runbook передачи корпуса. Подробности — в формальном REQUEST_CHANGES. PR остаётся открытым; merge не выполняется. [pr60-initial-4cf96e3-20261103]Повторно проверен весь diff PR #60 на
4cf96e3fa9ef95873657284af954c9ab3b629683относительно7ece39f212b67e497a8dfb360d5d271ab088ef57. Исправления review #373 подтверждены: ban полного backup на VPS, фиксированный внешний D: путь, одна retained verified copy и agreed cold window;/reports/с сохранением 17 tracked benchmark-файлов; допуск 2 CSS px; нормативный SVG-орнамент отмечен как невыполненный; исторические ссылки закреплены за commit. CI #680/#681 успешны. Остались два замечания.[P2] Уточнить текущую версию обработки правовых данных (
README.md, строка 28). Таблица в разделе «Текущее состояние» оставляетСбор и обработка правовых данных | 0.8.0, хотя в коде базового SHAbackend/ingestion/minjust_cbd.pyимеетAPP_VERSION = 0.9.3, аbackend/normalization/minjust_cbd.py—0.10.0. Это особенно сбивает с толку рядом с обновлённымbackend/README.md, который называет загрузчик 0.9.3. Если 0.8.0 относится к отдельному компоненту, назовите его и приведите точный источник версии; иначе покажите актуальные версии загрузки и нормализации или обозначьте 0.8.0 как исторический этап.[P2] Связать gate корпуса с действующей процедурой передачи (
docs/product/implementation-roadmap.md, §2.3 пункт 2;docs/README.md, операционный индекс). Исторический deployment draft требовал воспроизводимую цепочку source → staging → manifest/checksum → безопасную публикацию → индексирование и отказ при неполных данных. Новому плану оставлена общая формулировка, а действующийdocs/operations/CORPUS_HANDOFF.mdне указан ни здесь, ни в новом индексе runbooks;backend/README.mdтакже не ведёт к нему. Этот runbook содержит конкретные проверки nonempty source/staging, checksums, disposition code 6, запрет перезаписи корпуса и проверку alias до публикации. Добавьте точную ссылку и назовите его обязательным gate без копирования команд — тогда важная часть исходного требования останется доступной после удаления старых планов.Исторические Windows drafts
AKYLDASH_DEPLOY_PLAN_UPDATED.mdиvps.mdбыли переданы в полном тексте через назначение; я сравнил их существенные требования с текущим планом и base runbooks. Устаревшие утверждения о неразвёрнутом VPS/DNS/пакетах обоснованно не перенесены как нынешние факты. Их исходные файлы и SHA-256 в этой Linux среде я сам не открывал и не вычислял. Для последующего local apply оркестратору всё ещё нужен preimage guard всех write/delete путей. Merge в initial_review запрещён.Полное повторное ревью PR #60 на
ee03dc6cc7: исправления #373 и #374 подтверждены, README-версии и ссылки CORPUS_HANDOFF сверены с кодом, 33 UI пункта/13 Figma nodes/3 PNG/17 tracked benchmark сохранены, CI #682/#683 успешны. Остался один блокирующий пробел в критерии безопасной передачи корпуса: атомарное размещение и возобновляемый отказ из исторического deployment draft пока не перенесены явно. Формальное REQUEST_CHANGES содержит детали. Merge не выполняется. [pr60-initial-ee03dc6-20261103]Повторно проверен полный diff PR #60 на
ee03dc6cc77b0a82a82aebbe7bf9912ce2fe1a4dотносительно7ece39f212b67e497a8dfb360d5d271ab088ef57, исходные UI-планы, DESIGN, код и операционные runbooks. Исправления review #373/#374 подтверждены: правила backup,/reports/, 2 CSS px, нормативный SVG, постоянные исторические ссылки, раздельные версии ingestion/normalization/relevance и ссылки наCORPUS_HANDOFF.md. UI-01—UI-33, Figma/PNG, локальные ссылки и 17 tracked benchmark-файлов сохранены. CI #682/#683 успешны.[P1] Сохранить gate атомарной передачи корпуса (
docs/product/implementation-roadmap.md, §2.3 пункт 2, примерно строки 326–337). Полный историческийAKYLDASH_DEPLOY_PLAN_UPDATED.md, этап A.4, требовал цепочку source → staging → checksum/manifest → атомарная публикация в$DATA_ROOT/minjust-normalized→ валидация → загрузка в OpenSearch, с возобновлением и безопасным отказом. Новый план заменяет это общим «безопасная публикация» и ссылкой наCORPUS_HANDOFF.md. Действующий runbook проверяет непустые source/staging, их равенство и индекс/alias, но для размещения файлов вDATA_ROOTговорит лишь «then consider placing it»; атомарный switch и восстановление после прерванного копирования не определены. Атомарный switch OpenSearch alias — отдельная операция и этот пробел не закрывает. Укажите явный gate для будущей процедуры передачи: проверенный staging публикуется атомарно или через отдельно описанный равнонадёжный механизм; неполная/прерванная передача не подменяет действующий корпус и допускает безопасное возобновление либо отказ. Не нужно заявлять, что механизм уже реализован, или дублировать команды runbook.Исторические Windows drafts ранее переданы оркестратором полными текстами; я перечитал их требования по мере сверки, но исходные файлы и их SHA-256 в этой Linux среде не открывал и не вычислял. Устаревшие факты о пустом VPS не перенесены как текущие, что корректно. Это initial_review: PR не сливать; после исправления требуется новый полный review на новом SHA.
Полное initial review PR #60 на
849c7537edзавершено: все замечания #373–#375 исправлены, исходные UI/инфраструктурные требования и текущие runbooks сверены, 33 UI пункта, Figma/PNG, ссылки и 17 tracked benchmark-файлов сохранены. CI #684 и #685 успешны на этом SHA. Блокирующих замечаний нет; публикую формальное APPROVED. Этот этап не разрешает merge, PR остаётся открытым до отдельной финальной проверки. [pr60-initial-849c753-20261103]Полный независимый initial review PR #60 на
849c7537ed134831a8da46999d5cbdde1772e4bbотносительно7ece39f212b67e497a8dfb360d5d271ab088ef57завершён. Повторно проверены весь diff и контекст, исправления #373/#374/#375, оба ранее переданных исторических infrastructure drafts (data/network/Docker/secrets/backup/rollback/CI/readiness/roles), исходные UI-планы, DESIGN, README, runbooks и точные source versions. Новый gate корпуса явно требует all-or-nothing staging → DATA_ROOT, не заменяет текущий корпус при прерывании и отделяет файловую публикацию от OpenSearch alias; отсутствие реализованного механизма честно отмечено. Сохранены UI-01—UI-33, 13 Figma node URL для 15 состояний, 3 target PNG и 17 tracked benchmark-файлов; локальные ссылки разрешаются. CI #684 и #685 completed/success на текущем SHA. Блокирующих замечаний нет.Это только
initial_review: APPROVED не разрешает merge. После отдельного changelog push требуется новый полный final review по отдельному назначению; текущий PR должен оставаться открытым.New commits pushed, approval review dismissed automatically according to repository settings
Полное финальное ревью PR #60 на
7437aef346завершено: проверены весь diff и changelog, исправления #373–#375, требования двух исторических infrastructure drafts, UI-01–UI-33/Figma/PNG, версии, ссылки, backup/корпус/CD gates и 17 tracked benchmark-файлов. CI #686/#687 completed/success на этом SHA. Блокирующих замечаний нет; формальное APPROVED публикуется отдельно. По явному поручению пользователя merge запрещён: PR остаётся открытым. [pr60-final-7437aef-20261103]Полный независимый final review PR #60 на
7437aef346cd103a4f7f1d63cc5a48d319bf9ae0относительно7ece39f212b67e497a8dfb360d5d271ab088ef57завершён. Проверены весь текущий diff, все исправления review #373–#375, новая changelog-запись, README/source versions, DESIGN, удаляемые UI-планы, действующие runbooks и требования двух ранее переданных полных исторических infrastructure drafts по данным, сети, Docker, секретам, backup, rollback, CI, readiness и ролям. Changelog сохраняет прежние записи, а новый текст верно указывает, что механизм атомарной публикации корпуса остаётся нереализованным gate. UI-01—UI-33, 13 Figma node URL для 15 состояний, три target PNG, локальные ссылки и 17 tracked benchmark-файлов проверены. CI #686 и #687 completed/success на текущем SHA. Новых блокирующих замечаний нет.NO MERGE PER USER: это одобрение ревью не разрешает слияние; PR должен оставаться открытым. Никаких действий с production, исходным грязным checkout или локальным apply не выполнялось.
New commits pushed, approval review dismissed automatically according to repository settings
[pr60-826-docs-readme-version] [P2]
docs/README.md:58— после обновления ветки отmainfooter изменённого документа всё ещё указывает Backend0.13.3/ Frontend0.3.3. На текущем head код и уже согласованныеREADME.md/backend/README.mdуказывают0.13.4/0.3.4(search-8). Это индекс действующей документации, а не датированная историческая запись; версии теперь противоречат соседним файлам и текущему коду. Обновите footerdocs/README.mdдо0.13.4/0.3.4, сохранив исторические версии в датированном roadmap и обе записи changelog.REQUEST_CHANGES на
826c1d8ca5: одно замечание по версии вdocs/README.md(комментарий #2715). Полный diff, исправления #373–#375, merge-конфликт CHANGELOG, ссылки и 17 отслеживаемых отчётов проверены; CI #702/#703 успешны. После узкой правки нужен новый SHA и повторное финальное ревью; merge сейчас не выполняется.[review-final-pr60-9fc2692] Полное финальное ревью PR #60: замечания #373–#375 и #383 исправлены. После слияния
mainсохранены обе записи CHANGELOG, актуальные версии Search API0.13.4/ Frontend0.3.4, обязательный gate передачи корпуса и исторические UI-критерии. На текущем SHA успешны CI #704 и runner smoke #705; 49 относительных ссылок разрешаются, UI-01–UI-33 и 17 tracked benchmark-файлов сохранены. Этот PR меняет документацию и правила игнорирования generated reports; production и app-код не затрагивает. Блокирующих замечаний нет.APPROVED для PR #60 на
9fc269283b. Проверены весь текущий diff относительно base9a98fafefb, исправления #373–#375/#383, разрешение конфликта и версии. Текущие CI #704/#705 successful; подробности и пределы: комментарий #2718. Merge выполняется только после повторной проверки серверных gate на этом exact head.