WEB-649 · Задача · — · web
Bus factor / BF-08: Актуальность при новых функциях и релизах
Закрыт
P2
ведёт: —
эпик: WEB-641
Суть
# WEB-649 — Bus factor / BF-08: Актуальность при новых функциях и релизах
## 1. Суть
Зафиксировать правило, по которому книга/фабрика обновляются при каждом релизе и каждой новой функции: что считается изменением, кто и в какой момент правит, автоматическая проверка (гейт, который падает, если релиз тронул файлы из книги, а книга не тронута — названы файлы и условие), что делать при падении, и список «книга протухла, если…». Change-impact встраивается в существующий release/PR/паспорт/WEB-449 процесс, без второго канона.
## 2. ГДЕ МЫ СЕЙЧАС (13.09.2026)
Формально 0/8 по эпику. Политика написана: `out/BF08-FRESHNESS-POLICY.md` (эта волна). Ранее: 3517 → BF08-DRAFT.md; 3539 → BF08-RELEASE-UPDATE-l115f-r2.md (8.2К, GO по документации входов, таблица изменений l115a→l115f-r2). Сам change-impact к живой линии НЕ применён: гейт в release-конвейер не встроен (нужен доступ к release-карточке — решение владельца). Книга/фабрика валидированы на манифесте l115f-r2; текущий прод 13.09 — l115j (source 133fe00c…, PROD-FACTS.md).
## 3. ХРОНОЛОГИЯ (волнами)
- 12.09 09:11Z: карточка создана (BF-08 эпика WEB-641).
- 12.09: 3517 → BF08-DRAFT.md.
- 12.09 22:25Z: обогащение 3572 — BF08-RELEASE-UPDATE-l115f-r2.md (волна 3539, GO по документации); change-impact для l115g не применён.
- 13.09 (эта волна): BF08-FRESHNESS-POLICY.md — классификация, роли, гейт, действия при падении, 5 признаков протухания.
## 4. КАРТА ДОКУМЕНТОВ
- Эта волна: `out/BF08-FRESHNESS-POLICY.md`, `out/BOARD-APPLY.json`, `out/NOTES.md`.
- Intel: `/Users/annakorin/nc-ops-scripts/takeover-20260912/TAKEOVER-NC-R1.md`; `shift-20260912-resume/3539/collected/out/BF08-RELEASE-UPDATE-l115f-r2.md`.
- Книга: `BF04-EXECUTABLE-RUNBOOK-v9.md` (во входах). Паспорт: M1 `livepush/docs/PASSPORT/`. Родитель: WEB-641.
## 5. ОСТАТОК (с ответственными)
1. Встроить гейт актуальности в реальный release/PR/паспорт/WEB-449 конвейер — только владелец (доступ к release-карточке/CI).
2. Прогнать change-impact на живой линии (l115j) с evidence на новом SHA — координатор при ближайшей посадке.
3. Полный независимый прогон перед бетой после freeze — владелец (стенд + дата) + координатор.
4. BF-FIX-4: доказать, что старое приложение читает новую схему, до разрешения отката — координатор + владелец БД.
## 6. КРИТЕРИЙ ЗАКРЫТИЯ
Change-impact встроен в существующий процесс: feature/paths → операции → документы → retest → evidence на новом SHA; новая очередь/миграция → адресный повтор; невлияющая правка → NONE с причиной; перед бетой/выпуском — полный независимый прогон.
---
## История (до 13.09.2026)
TAKEOVER-NC-R1:BF-08
Правила обогащения: WEB-449.
Цель/сдача/приёмка: Change-impact в существующем процессе: feature/paths → операции → документы → retest → evidence на новом SHA. Новая очередь/миграция требует адресного повтора, пропущенное evidence не переносит PASS; невлияющая правка имеет причину NONE. Перед бетой/выпуском полный независимый прогон.
Зависимости: BF-01
КАРТА ДОКУМЕНТОВ
Полная адаптация: WEB-641; Intel /Users/annakorin/nc-ops-scripts/takeover-20260912/TAKEOVER-NC-R1.md; оригинал Downloads/NC-TAKEOVER-PROOF-R1.md. Связанные WEB-093/626/082/470/515/320.
ЭВОЛЮЦИЯ
12.09.2026: запрос владельца; подготовка на малом ходу, без нового восьмичасового обещания. Экзамен ещё не проведён.
KNOWN ISSUES / ТРАБЛШУТИНГ
Паспорт l115a расходится с последней измеренной l115e; сверить 00-INDEX/CANON с расписками всех служб, обновить канонический снимок и повторить затронутые шаги. Остальные пробелы фиксировать по доказательствам.
## HANDOFF-20260912T1721:WEB-649 — точка входа для нового агента
Правила обогащения: [[WEB-449]]. Наблюдение: 12.09.2026 18:21:36 Europe/Dublin / 17:21:36 UTC. Автор: координатор. История выше сохранена; эту запись читать как текущий handoff на указанное время.
**Задача.** Bus factor / BF-08: Актуальность при новых функциях и релизах
**Что подтверждено и что остаётся.** Принято0/8 по обязательным критериям эпика.3517 дала карту и drafts с пробелами;3527 — документальный runbook GO, практической проверки нет. Экспорты трёх досок получены; полнота payload вложений и независимое чтение автономного пакета пока не доказаны. Экзамен BF05 NOT_RUN.
**Как устроено / почему остановилось.** Человек/агент начинает только с START и независимой копии. Доступ к текущему чату, M1, Intel или сайту доски не должен быть скрытой зависимостью экзамена. Наличие архива/бандла не доказывает restore. Human access, Web technical, iOS и bitwise — отдельные строки.
**Следующая операция.** Встроить change-impact в существующий release/WEB-449 процесс: paths→операции→документы→retest→evidence на новомSHA. Проверить synthetic queue/migration changes и NONE для невлияющей правки. Полный независимый прогон перед beta; старый PASS не переносить автоматически.
**Исполнитель и приёмка.** Подготовка пакета — исполнитель BF; coordinator отвечает за входные файлы и отдельный контур. Автор START и оператор blind-экзамена должны различаться.3531 имеет готовый бриф, живой старт M4 на последней wave-health не подтверждён.
**Условие закрытия.** Change-impact в существующем процессе: feature/paths → операции → документы → retest → evidence на новом SHA. Новая очередь/миграция требует адресного повтора, пропущенное evidence не переносит PASS; невлияющая правка имеет причину NONE. Перед бетой/выпуском полный независимый прогон.
**КАРТА ДОКУМЕНТОВ**
- Intel: /Users/annakorin/nc-ops-scripts/takeover-20260912/TAKEOVER-NC-R1.md
- Intel: /Users/annakorin/nc-ops-scripts/ops/busfactor-3531/3531-busfactor-offline-package-brief.md
- Intel: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/three-board-export-receipt.json
- Intel: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3527/3527BUSFACTOROPERATINGRUNBOOK-REPORT.md
- M4: /Users/milamarty/waves/inputs/3531-busfactor-offline-package/ (передачу/SHA проверить); /Users/milamarty/waves/3531BUSFACTOROFFLINEPACKAGE-REPORT.md (ожидаемый)
**Порядок:** BF01/BF02/BF04→BF05→BF06→BF07; BF03 и BF08 ведутся отдельно. Родитель: [[WEB-641]]. Human-access OPEN не останавливает подготовку пакета.
SHIFT-STOP-20260912:FINAL:WEB-649
Bus factor / BF-08: Актуальность при новых функциях и релизах
Срез перед остановкой 12.09.2026. По поручению владельца 18:13:55 UTC новые волны и экзамены остановлены.
3531 LIMITED_PACKAGE_READBACK_PASS сохранён на Intel: HEAD7c380efb2eccd59162e14239a5d7fde142dd26fa, archive SHA150c3e194528fa45a788b0de9d3de1f4d889c198d306c14b713e7ca3ada1e1f8. Получены48 файлов с hash verification, clean/ancestry/bundle PASS. Package49 files, manifest47, SHA checks48; tamper negative exit1, links0 errors.
Это ограниченный offline package: 3 sanitized board exports, docs/runbook, manifest/SHA/verifier; 5783 attachment references, 0 collected attachment payloads. Полный OFFLINE_KNOWLEDGE PASS не выдан. Bus factor принято0/8, BF05 practical exam NOT_RUN, HUMAN_ACCESS_CONTINUITY OPEN.
Passport l115a stale; package source facts l115e не подтверждают новый l115f-r2. Для operational использования сначала актуализировать release/source/artifact/backup chain и совместимый rollback. Архивные команды обсуждений не выполнять вслепую.
Файлы Intel: /Users/annakorin/nc-ops-scripts/ops/busfactor-3531/3531-collection-receipt.json; delivery/3531BUSFACTOROFFLINEPACKAGE-REPORT.md; readback/package/ (проверенная распаковка). Source archive и bundle остаются на M4; local delivery сохранена.
ИНДИВИДУАЛЬНЫЙ ОСТАТОК
Проверить обновление пакета после изменения продукта/нового релиза и повторить затронутые gates; draft/synthetic правила не заменяют этот прогон.
Следующая смена начинает только после возобновления владельцем. Исторический status сохранён; STOPPED означает отсутствие выполняемой работы, не закрытие задачи.
---
## история (тело до 13.09.2026)
TAKEOVER-NC-R1:BF-08
Правила обогащения: WEB-449.
Цель/сдача/приёмка: Change-impact в существующем процессе: feature/paths → операции → документы → retest → evidence на новом SHA. Новая очередь/миграция требует адресного повтора, пропущенное evidence не переносит PASS; невлияющая правка имеет причину NONE. Перед бетой/выпуском полный независимый прогон.
Зависимости: BF-01
КАРТА ДОКУМЕНТОВ
Полная адаптация: WEB-641; Intel /Users/annakorin/nc-ops-scripts/takeover-20260912/TAKEOVER-NC-R1.md; оригинал Downloads/NC-TAKEOVER-PROOF-R1.md. Связанные WEB-093/626/082/470/515/320.
ЭВОЛЮЦИЯ
12.09.2026: запрос владельца; подготовка на малом ходу, без нового восьмичасового обещания. Экзамен ещё не проведён.
KNOWN ISSUES / ТРАБЛШУТИНГ
Паспорт l115a расходится с последней измеренной l115e; сверить 00-INDEX/CANON с расписками всех служб, обновить канонический снимок и повторить затронутые шаги. Остальные пробелы фиксировать по доказательствам.
## HANDOFF-20260912T1721:WEB-649 — точка входа для нового агента
Правила обогащения: [[WEB-449]]. Наблюдение: 12.09.2026 18:21:36 Europe/Dublin / 17:21:36 UTC. Автор: координатор. История выше сохранена; эту запись читать как текущий handoff на указанное время.
**Задача.** Bus factor / BF-08: Актуальность при новых функциях и релизах
**Что подтверждено и что остаётся.** Принято0/8 по обязательным критериям эпика.3517 дала карту и drafts с пробелами;3527 — документальный runbook GO, практической проверки нет. Экспорты трёх досок получены; полнота payload вложений и независимое чтение автономного пакета пока не доказаны. Экзамен BF05 NOT_RUN.
**Как устроено / почему остановилось.** Человек/агент начинает только с START и независимой копии. Доступ к текущему чату, M1, Intel или сайту доски не должен быть скрытой зависимостью экзамена. Наличие архива/бандла не доказывает restore. Human access, Web technical, iOS и bitwise — отдельные строки.
**Следующая операция.** Встроить change-impact в существующий release/WEB-449 процесс: paths→операции→документы→retest→evidence на новомSHA. Проверить synthetic queue/migration changes и NONE для невлияющей правки. Полный независимый прогон перед beta; старый PASS не переносить автоматически.
**Исполнитель и приёмка.** Подготовка пакета — исполнитель BF; coordinator отвечает за входные файлы и отдельный контур. Автор START и оператор blind-экзамена должны различаться.3531 имеет готовый бриф, живой старт M4 на последней wave-health не подтверждён.
**Условие закрытия.** Change-impact в существующем процессе: feature/paths → операции → документы → retest → evidence на новом SHA. Новая очередь/миграция требует адресного повтора, пропущенное evidence не переносит PASS; невлияющая правка имеет причину NONE. Перед бетой/выпуском полный независимый прогон.
**КАРТА ДОКУМЕНТОВ**
- Intel: /Users/annakorin/nc-ops-scripts/takeover-20260912/TAKEOVER-NC-R1.md
- Intel: /Users/annakorin/nc-ops-scripts/ops/busfactor-3531/3531-busfactor-offline-package-brief.md
- Intel: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/three-board-export-receipt.json
- Intel: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3527/3527BUSFACTOROPERATINGRUNBOOK-REPORT.md
- M4: /Users/milamarty/waves/inputs/3531-busfactor-offline-package/ (передачу/SHA проверить); /Users/milamarty/waves/3531BUSFACTOROFFLINEPACKAGE-REPORT.md (ожидаемый)
**Порядок:** BF01/BF02/BF04→BF05→BF06→BF07; BF03 и BF08 ведутся отдельно. Родитель: [[WEB-641]]. Human-access OPEN не останавливает подготовку пакета.
SHIFT-STOP-20260912:FINAL:WEB-649
Bus factor / BF-08: Актуальность при новых функциях и релизах
Срез перед остановкой 12.09.2026. По поручению владельца 18:13:55 UTC новые волны и экзамены остановлены.
3531 LIMITED_PACKAGE_READBACK_PASS сохранён на Intel: HEAD7c380efb2eccd59162e14239a5d7fde142dd26fa, archive SHA150c3e194528fa45a788b0de9d3de1f4d889c198d306c14b713e7ca3ada1e1f8. Получены48 файлов с hash verification, clean/ancestry/bundle PASS. Package49 files, manifest47, SHA checks48; tamper negative exit1, links0 errors.
Это ограниченный offline package: 3 sanitized board exports, docs/runbook, manifest/SHA/verifier; 5783 attachment references, 0 collected attachment payloads. Полный OFFLINE_KNOWLEDGE PASS не выдан. Bus factor принято0/8, BF05 practical exam NOT_RUN, HUMAN_ACCESS_CONTINUITY OPEN.
Passport l115a stale; package source facts l115e не подтверждают новый l115f-r2. Для operational использования сначала актуализировать release/source/artifact/backup chain и совместимый rollback. Архивные команды обсуждений не выполнять вслепую.
Файлы Intel: /Users/annakorin/nc-ops-scripts/ops/busfactor-3531/3531-collection-receipt.json; delivery/3531BUSFACTOROFFLINEPACKAGE-REPORT.md; readback/package/ (проверенная распаковка). Source archive и bundle остаются на M4; local delivery сохранена.
ИНДИВИДУАЛЬНЫЙ ОСТАТОК
Проверить обновление пакета после изменения продукта/нового релиза и повторить затронутые gates; draft/synthetic правила не заменяют этот прогон.
Следующая смена начинает только после возобновления владельцем. Исторический status сохранён; STOPPED означает отсутствие выполняемой работы, не закрытие задачи.
Чем закрывается (приёмка)
Change-impact в существующем процессе: feature/paths → операции → документы → retest → evidence на новом SHA. Новая очередь/миграция требует адресного повтора, пропущенное evidence не переносит PASS; невлияющая правка имеет причину NONE. Перед бетой/выпуском полный независимый прогон.
Доказательства
HANDOFF-20260912T1721:WEB-649 — автономный handoff добавлен в body: причина, механизм, подтверждённое/OPEN, следующая операция, ответственный, критерий закрытия и карта документов. Срез фактов 2026-09-12T17:21:36.454887+00:00. Исторические отказы и статусы сохранены. Полный аудит записи: Intel /Users/annakorin/nc-ops-scripts/release-l115f/handoff-tickets/.
SHIFT-STOP-20260912:FINAL:WEB-649
Bus factor / BF-08: Актуальность при новых функциях и релизах
Срез перед остановкой 12.09.2026. По поручению владельца 18:13:55 UTC новые волны и экзамены остановлены.
3531 LIMITED_PACKAGE_READBACK_PASS сохранён на Intel: HEAD7c380efb2eccd59162e14239a5d7fde142dd26fa, archive SHA150c3e194528fa45a788b0de9d3de1f4d889c198d306c14b713e7ca3ada1e1f8. Получены48 файлов с hash verification, clean/ancestry/bundle PASS. Package49 files, manifest47, SHA checks48; tamper negative exit1, links0 errors.
Это ограниченный offline package: 3 sanitized board exports, docs/runbook, manifest/SHA/verifier; 5783 attachment references, 0 collected attachment payloads. Полный OFFLINE_KNOWLEDGE PASS не выдан. Bus factor принято0/8, BF05 practical exam NOT_RUN, HUMAN_ACCESS_CONTINUITY OPEN.
Passport l115a stale; package source facts l115e не подтверждают новый l115f-r2. Для operational использования сначала актуализировать release/source/artifact/backup chain и совместимый rollback. Архивные команды обсуждений не выполнять вслепую.
Файлы Intel: /Users/annakorin/nc-ops-scripts/ops/busfactor-3531/3531-collection-receipt.json; delivery/3531BUSFACTOROFFLINEPACKAGE-REPORT.md; readback/package/ (проверенная распаковка). Source archive и bundle остаются на M4; local delivery сохранена.
ИНДИВИДУАЛЬНЫЙ ОСТАТОК
Проверить обновление пакета после изменения продукта/нового релиза и повторить затронутые gates; draft/synthetic правила не заменяют этот прогон.
Следующая смена начинает только после возобновления владельцем. Исторический status сохранён; STOPPED означает отсутствие выполняемой работы, не закрытие задачи.
Лента
2026-09-12T09:11:17.884Z · coordinatorTAKEOVER-LINKS:BF-08
Parent WEB-641; зависимости WEB-642; полная спецификация в родительском эпике.
2026-09-12T18:27:04.907Z · coordinatorSHIFT-STOP-20260912:FINAL:WEB-649
Bus factor / BF-08: Актуальность при новых функциях и релизах
Срез перед остановкой 12.09.2026. По поручению владельца 18:13:55 UTC новые волны и экзамены остановлены.
3531 LIMITED_PACKAGE_READBACK_PASS сохранён на Intel: HEAD7c380efb2eccd59162e14239a5d7fde142dd26fa, archive SHA150c3e194528fa45a788b0de9d3de1f4d889c198d306c14b713e7ca3ada1e1f8. Получены48 файлов с hash verification, clean/ancestry/bundle PASS. Package49 files, manifest47, SHA checks48; tamper negative exit1, links0 errors.
Это ограниченный offline package: 3 sanitized board exports, docs/runbook, manifest/SHA/verifier; 5783 attachment references, 0 collected attachment payloads. Полный OFFLINE_KNOWLEDGE PASS не выдан. Bus factor принято0/8, BF05 practical exam NOT_RUN, HUMAN_ACCESS_CONTINUITY OPEN.
Passport l115a stale; package source facts l115e не подтверждают новый l115f-r2. Для operational использования сначала актуализировать release/source/artifact/backup chain и совместимый rollback. Архивные команды обсуждений не выполнять вслепую.
Файлы Intel: /Users/annakorin/nc-ops-scripts/ops/busfactor-3531/3531-collection-receipt.json; delivery/3531BUSFACTOROFFLINEPACKAGE-REPORT.md; readback/package/ (проверенная распаковка). Source archive и bundle остаются на M4; local delivery сохранена.
ИНДИВИДУАЛЬНЫЙ ОСТАТОК
Проверить обновление пакета после изменения продукта/нового релиза и повторить затронутые gates; draft/synthetic правила не заменяют этот прогон.
Следующая смена начинает только после возобновления владельцем. Исторический status сохранён; STOPPED означает отсутствие выполняемой работы, не закрытие задачи.
2026-09-12T22:25:57.459Z · coordinator[12.09 22:25Z координатор] ОБОГАЩЕНИЕ 12.09 (3572-enrich-web641):
Сделано: BF08-DRAFT.md (3517) → BF08-RELEASE-UPDATE-l115f-r2.md 8.2К (3539, GO по документации входов) — таблица изменений l115a→l115f-r2.
На проде: нет — документ вне app-дерева; change-impact для l115g не применён.
Доказано: nc-ops-scripts/shift-20260912-resume/3539/collected/out/BF08-RELEASE-UPDATE-l115f-r2.md.
Осталось: change-impact процесс feature/paths→операции→документы→retest→evidence на новом SHA l115g; полный независимый прогон перед бетой.
Кто следующий: координатор (retest после посадки l115g).
Ссылки: wave 3517 / 3539; nc-ops-scripts/shift-20260912-resume/3539/collected/out/BF08-RELEASE-UPDATE-l115f-r2.md; /Users/annakorin/nc-ops-scripts/takeover-20260912/3517-delivery/
Отчёт волны: /Users/milamarty/waves/3572ENRICH*-REPORT.md (M4), копия nc-ops-scripts/shift-20260912-resume/wash-20260912/enrich-collected/.
2026-09-13T10:46:49.148Z · coordinator[13.09 10:46Z координатор] Волна 3659. BF08-FRESHNESS-POLICY.md написан (out/): классификация изменений, роли/момент, гейт актуальности (book-covered файлы + условие + скрипт-текст), действия при падении, 5 признаков «книга протухла». Карточка остаётся in_progress: гейт в release-конвейер не встроен (решение владельца), change-impact на живой линии l115j не прогнан. Поправка координатора: цифра «123 прогона и один пропущенный класс» относится к пакету ДО исправления. На исправленном пакете независимый экзамен 3655 получил 132 прогона и ноль пропусков — это и есть текущее число.
2026-09-15T01:33:57.704Z · coordinator[15.09 01:33Z координатор]
## 15.09 02:35Z — ТЕЛО ЭТОГО ТИКЕТА УСТАРЕЛО НА ТРОЕ СУТОК. Читай отсюда.
Предыдущий handoff в теле датирован **12.09 17:21 UTC** и утверждает «Принято 0/8», «Экзамен BF05 NOT_RUN», «практической проверки нет». **Всё это больше не так.** Если действовать по тому тексту, будешь переделывать сделанное — я сама на этом попалась 14.09 и переоткрывала готовое.
### Что изменилось с 12.09
- **WEB-646 (BF-05, экзамен) — закрыт.** Экзамен прогнан.
- **WEB-644 (BF-03, доступ без владельца) — закрыт.**
- **WEB-647 (BF-06, исправление пробелов и повтор) — закрыт.**
- **WEB-656 (практический экзамен A, доступ без владельца) — закрыт.**
- **WEB-657 (схема хранения и прав: книга отдельно, ключи отдельно) — закрыт.**
- **WEB-663 (доказательство восстановления) — закрыт.** Полный цикл **13 мин 47 с**, само восстановление **8 мин 10 с**, чистая распаковка до открытия документа **1 мин 13 с**. Все контрольные числа совпали с продом, включая `DocumentChunk` 107 817 = 107 817. Это укладывается в цель владельца RTO 15 минут.
- Появились **ПОПРАВКИ-К-КНИГЕ.md** внутри пакета доступов: ошибки книги, ответы на вопросы Q24–Q29, ответы на шесть блокеров, решение по SIP (мягкая проба), обратное чтение совместимости и раздел **ЖИВАЯ МИШЕНЬ** (127.0.0.1:55445, четыре способа убедиться, что это копия, а не прод).
- Решение владельца: **папка одна**, хранителю уходит **письмо**, а не папка. Хранитель не специалист — он передаёт письмо инженеру или ИИ.
- Репетиция поймала реальные дефекты моей передачи (см. `rehearsal-caught-my-handover-defects`): доверенный список я собрала заново без `public_key_pem`, хотя правильный лежал в `.secrets` с 13.09, и `verify_kit.py` не отправила вовсе. Обе ошибки исправлены, файл проверки теперь в папке.
### Состояние папки передачи на 15.09 02:32Z (проверено командой)
`/Users/annakorin/Downloads/БАС-ФАКТОР-ПЕРЕДАЧА/` — **восемь предметов, все зашифрованные**:
```
ПИСЬМО.md 21 866 б (без секретов, пересылаемое)
доступ-в-хранилище.txt 825 б (права 600, субаккаунт Hetzner)
доступы.tar.age 372 602 б sha256 8750dc7870b1c8d4…
доступы.sig.json 1 012 б (подпись Ed25519, подписант owner-busfactor)
ключ-хранителя.age-key 184 б (права 600)
комплект/{START-HERE.md, kit.tar.age 164 170 б sha256 db34454615571200…, manifest.json, manifest.sig.json}
проверка/{verify_kit.py, canonical_trust.py, age_backend.py, trusted-signers.json, bin/age, bin/age-keygen, ops/web409/trust.py}
```
### 🔴 НАЙДЕНО И УСТРАНЕНО ПРЯМО СЕЙЧАС: репетиция оставила секреты в открытом виде
После вчерашней репетиции в той же папке лежали **расшифрованные** копии:
`kit.tar` (160 К), `доступы.tar` (364 К), каталоги `распаковано-доступы/` и `распаковано-комплект/`, плюс `проверка/__pycache__/`.
Внутри `распаковано-доступы/доступы/` в открытом виде лежали: **закрытый ssh-ключ хранителя** (`ssh/busfactor-keeper-ssh`), **учётные данные базы** (`db/a1-db-roles.env`, `db/a1-web-dburl.env`), **секрет резервного копирования** (`backup/a1-hetzbk.env`).
Если бы папку отдали в таком виде, шифрование пакета не значило бы ничего.
**Убрано 15.09 02:32Z**, зашифрованные оригиналы проверены на целостность до удаления. **Правило:** репетиция обязана распаковывать во временный каталог ВНЕ папки передачи и убирать за собой; после любой репетиции папка проверяется на отсутствие `*.tar`, `распаковано-*` и `__pycache__`.
### Что действительно осталось по эпику
Владелец 15.09: «аварии ждать не надо, гонять надо чтобы закрыть эпик». То есть закрывающий шаг — **живой прогон книги**, а не ещё один документ.
1. **Раздел B (сборка и посадка) — прогнать живьём.** Прогон делается на живой мишени `127.0.0.1:55445` (учение `drill-target-3945`, `safe_to_break=YES`), не на проде.
2. **Раздел C (откат) — прогнать живьём.** Блокер к нему выписан отдельно: WEB-653 требует доказательства, что старый релиз читает уже мигрировавшую вперёд схему. Без этой квитанции откат — авария, а не спасение.
3. **WEB-652** — раздел F обещает проверки, которых команды раздела не делают. Это корневой блокер, названный внешним разбором.
4. **WEB-654** — шаги F5/F6/F8 на чистом операторском сеансе: печать имён переменных и `<redacted>` не доказывает, что значения существуют и работают у нового оператора.
5. **WEB-655** — практический экзамен B свежей агентной сессией.
### 🔴 Новая находка 15.09: расписки в пакете доступов отстали от прода
Внутри `доступы.tar.age` лежат расписки линии **l115n** и **l115m**: `l115n-artifact.json`, `l115n-deployed.json`, `l115n-flip.log`, `l115n-migration-apply-receipt.json`, `spend-activation-l115n.json`, `l115m-deployed.json`, `СОСТОЯНИЕ-ПРОДА.txt`, `verified-l115l-ПОСЛЕДНЯЯ-ГДЕ-ЕСТЬ.json`.
**А прод с 00:56Z 15.09 работает на l115o** (`68e25d8df5ae8263c5ac5466353631f57a17cfcc`, артефакт `cd2773f65d66b09ec03d39b553041d2814ce09413e72d72b07bc9de89df536c8`). То есть человек, который откроет пакет сегодня, увидит состояние позавчерашнего прода и будет действовать по нему.
**Это прямое доказательство, что механизма из BF-08 (WEB-649) не существует:** посадка произошла, а пакет передачи не обновился и никто об этом не узнал. Сама находка — не «надо подправить файлик», а «нет процедуры». Пакет надо обновить и **написать процедуру обновления**, иначе это повторится на следующей же посадке.
2026-09-15T01:42:52.946Z · coordinator[15.09 01:42Z координатор] ## 15.09 02:45Z — BF-08 СДЕЛАН ПО СУЩЕСТВУ: механизм есть, пакет обновлён, процедура записана скриптом
Тикет назывался «актуальность при новых функциях и релизах». До сегодня это была формулировка без механизма. Сегодня нашлось доказательство, что механизма нет, и механизм написан.
### Доказательство отсутствия механизма
Прод переехал на l115o 15.09 в 00:56Z. Внутри `доступы.tar.age` продолжали лежать расписки **l115n и l115m**: `l115n-artifact.json`, `l115n-deployed.json`, `l115n-flip.log`, `l115n-migration-apply-receipt.json`, `spend-activation-l115n.json`, `l115m-deployed.json`, `СОСТОЯНИЕ-ПРОДА.txt`, `verified-l115l-ПОСЛЕДНЯЯ-ГДЕ-ЕСТЬ.json`.
Человек, открывший пакет утром 15.09, увидел бы позавчерашний прод и действовал бы по нему. **Посадка произошла — пакет не обновился — никто бы не узнал.**
### Что сделано
**Написан `nc-ops-scripts/refresh-access-pack.sh`** — обновление пакета одной командой:
```
refresh-access-pack.sh <линия> <коммит> <sha256-артефакта> <tgz-с-расписками>
```
Семь шагов, каждый с проверкой:
1. расписки обновляются **в рабочей копии** (`~/Documents/…/рабочие-материалы/`), в папку выдачи ничего не распаковывается;
2. **гейт на литеральные секреты** в расписках — при срабатывании ничего не пакуется;
3. упаковка и шифрование на двух получателей (владелец и хранитель), получатели читаются из ключей, а не вписаны в скрипт;
4. подпись описи Ed25519, номер ревизии берётся из предыдущей описи и увеличивается сам;
5. прежний пакет уезжает в `архив-пакетов/` с меткой времени — не удаляется;
6. **гейт папки выдачи**: если в ней остался `*.tar` или `распаковано-*` — отказ (`__pycache__` убирается молча, это не секрет);
7. **обратное чтение**: пакет расшифровывается во временный каталог и сверяется, что расписки новой линии внутри и sha256 совпадает с подписанным.
### Прогон на l115o — выполнен
```
расписок перенесено ... 12
размер пакета ......... 404 874 байта (было 372 602)
sha256 ................ e0ef8b194e6badd6d00ca48aba1cfe7f5b4e6b1c1ea7483e4ef227e023caf0f9
ревизия ............... 10 (было 9)
обратное чтение ....... 11 файлов линии l115o внутри, sha256 совпал с подписью
папка выдачи .......... 7 предметов, всё шифрованное
```
В опись добавлены поля `prod_line`, `prod_commit`, `prod_artifact_sha256` — теперь актуальность пакета видна **из подписанной описи**, без расшифровки.
`СОСТОЯНИЕ-ПРОДА.txt` пересобран: что стоит сейчас, куда откатываться (l115n `d85bb2da…`, командой `transition-l115o.py rollback`), предупреждение про квитанцию совместимости перед откатом, чем подтверждена посадка (включая платную пробу), и что линия принесла.
### 🔴 Гейт сработал на настоящей находке
Шаг 6 отказался завершать работу: в `проверка/ops/__pycache__` и `проверка/ops/web409/__pycache__` лежали скомпилированные `.pyc` от запуска проверяльщика. Я их до этого не заметила, хотя чистила папку двадцатью минутами раньше — искала только на верхнем уровне. Гейт нашёл вложенные. Это ровно та причина, по которой процедура должна быть скриптом, а не памятью.
### Остаток BF-08
**Комплект (`kit.tar.age`) всё ещё пришпилен к l115n:** в `START-HERE.md:54` стоит отпечаток релиза `d85bb2dad15a3ba52c773b0a2362748009a2c3b9`, версия комплекта `2026.09.14-r2`.
Обновление комплекта — операция с участием владельца: хранителю **голосом диктуются два отпечатка по 64 знака** (ключа доверия и связки проверяльщика), и откат кода их не отзывает — они живут у человека в блокноте. Процедура перепаковки лежит в сдаче волны 3854 (`repack.sh`). Матрица `pack × verify` из волны 3838 показала, что опасны оба несовпадения, и худший случай — новый комплект со старым проверяльщиком: возвращается `ok`, но `START-HERE.md` подписью **не проверяется**, то есть подмена первого файла, который хранитель читает, пройдёт незамеченной.
Поэтому перепаковку комплекта делаем **одним действием вместе с выдачей отпечатков**, и она требует тридцати секунд владельца. Пакет доступов от неё не зависит и уже актуален.
2026-09-15T14:05:06.443Z · coordinator[15.09 14:05Z координатор] [15.09 14:03Z координатор] Readback 4036: VERDICT=INCOMPLETE, report и 6/6 SHA256 проверены. Access-pack rev10 действительно соответствует l115o 68e25d8df, создан после посадки; public manifest, hash, reverse-read receipt и семь гейтов refresh-access-pack.sh подтверждены. Это отдельный предмет от kit.tar.age: публичный kit manifest всё ещё pinned к l115n. WEB-649 закрывать нельзя: обязательный change-impact hook changed paths→operations/documents→retest/evidence не интегрирован и post-landing receipt для него отсутствует. Статус остаётся review; следующий шаг — встроить и исполнить hook в реальном release/PR/passport/WEB-449 flow.
2026-09-15T14:10:49.558Z · coordinator[15.09 14:10Z координатор] [15.09 14:09Z координатор] BF-08 readback 4036: VERDICT=INCOMPLETE. Access-pack rev10 действительно создан после посадки l115o, семь гейтов refresh-access-pack.sh и public reverse-read подтверждены; kit отдельно остаётся на l115n. Закрытие WEB-649 блокирует один точный пробел: proposed bf08-freshness-gate.sh не интегрирован и не запускался, post-landing changed-paths→impacted operations/documents→retest receipt отсутствует. Нужен исполняемый hook в release/PR/passport flow и receipt на l115o.
2026-09-15T14:42:58.745Z · coordinator[15.09 14:42Z координатор] 4041 доставил исполняемый BF-08 gate: deterministic path→impact→retest/evidence mapping, exact OLD/NEW/LINE receipts, stale-PASS rejection, fail-closed unknown paths и docs-only NONE только с явным reason+link/hash. Gate включён первым шагом `post-landing-checks.sh`; synthetic matrix PASS 10/10, syntax PASS, evidence 3/3 SHA256. Авторский VERDICT=INCOMPLETE только потому, что локальная ops-папка не имела Git-объектов l115n→l115o; исторический receipt честно FAIL с `changed-paths-provenance=UNAVAILABLE`. На Neo созданы постоянные refs l115n=`d85bb2da…`, l115o=`68e25d8d…`; 4050 поставлена на независимую проверку механизма и реальный historical diff/evidence census. Статус review→in_progress до независимого GO и точного решения по недостающим current-line receipts.
2026-09-15T14:54:29.717Z · coordinator[15.09 14:54Z координатор] 4050 independent acceptance on Neo: NO-GO, full SHA package verified. The existing BF-08 gate is deterministic on the real l115n→l115o range (296 changed paths) and correctly reports eight missing exact retest classes, but four source-level fail-closed defects remain: duplicate current PASS receipts are accepted, traversal-form changed paths are accepted, a symlinked changed-path file is accepted, and a symlinked evidence directory is traversed. WEB-649 stays in_progress. Local Luna/4054 is repairing exactly these four gaps; fresh independent acceptance is required afterward.
2026-09-15T15:40:18.235Z · coordinator[15.09 15:40Z координатор] Независимая Neo/4060: GO для исправленного механизма BF-08, SHA 11/11. Все классы ремонта воспроизведены RED→GREEN: дубли exact-current receipts, traversal/absolute/non-normalized paths, symlink changed-path/evidence root/evidence file; stale identity, missing evidence, unknown operational path, docs-only NONE и deterministic receipt сохранены. Ранний post-landing seam fail-closed до readiness/browser/paid stages подтверждён. Реальный диапазон l115n→l115o содержит 296 путей и честно остаётся FAIL по восьми отсутствующим свежим классам расписок. WEB-649 остаётся in_progress до создания этих реальных receipts и полного учения; ничего не выдумано.
2026-09-15T15:47:17.420Z · coordinator[15.09 15:47Z координатор] Local Luna/4062 собрала и атомарно установила единую репетиционную папку `/Users/annakorin/Downloads/БАС-ФАКТОР-ПЕРЕДАЧА/` для свежего Codex. Тестовые ключи owner/keeper/engineer и rehearsal signer созданы агентом; в выдаче нет private key, plaintext archive, `.env`, распакованных доступов или `__pycache__`. pack/sign/verify, reverse-read всеми тремя получателями, fresh-directory verifier, hygiene и SHA gates зелёные; evidence SHA 4/4. Это READY подготовки, не прохождение B/C: свежий Codex владельца обязан сам выполнить посадку/откат и выдать PASS/FAIL receipts. WEB-649 остаётся in_progress до свежих восьми классов расписок и полного учения.
2026-09-15T22:16:59.014Z · coordinatorENRICH-4135-WEB-649
DRAFT_DELTA (append-only; правила обогащения: WEB-449, блок KNOWN ISSUES — канон
`web_issues.body id=WEB-449`, дамп `_extract/WEB-449.canon.txt` строки 85–86).
Волна 4135, M1/DeepSeek Flash 4.1, read-only аудит.
Источник: `/Users/poolpooly/waves-ds/4130/4130ENRICHBUSFACTOR-REPORT.md` + `_extract/`.
## 1. UTC / КТО / ВЕРДИКТ и точный статус
Тело (§2) держит «Формально **0/8** по эпику». Живая цепочка вердиктов лежит только
в комментариях:
| UTC | Что |
|---|---|
| `2026-09-15T01:42:52.946Z` | «BF-08 СДЕЛАН ПО СУЩЕСТВУ»: `refresh-access-pack.sh`, прогон на l115o, rev 9→10 |
| `2026-09-15T14:05:06.443Z` / `14:10:49.558Z` | readback 4036: **`VERDICT=INCOMPLETE`** |
| `2026-09-15T14:42:58.745Z` | 4041: гейт доставлен; исторический receipt честно **FAIL** с `changed-paths-provenance=UNAVAILABLE` |
| `2026-09-15T14:54:29.717Z` | 4050: **NO-GO**, четыре fail-closed дефекта |
| `2026-09-15T15:40:18.235Z` | 4060: **GO** для исправленного механизма, SHA 11/11 |
| `2026-09-15T15:47:17.420Z` | 4062: **READY подготовки, не прохождение B/C** |
Точный статус в живой доске: **`in_progress`** (12 комментариев, последний —
`2026-09-15T15:47:17.420Z`). «СДЕЛАН ПО СУЩЕСТВУ» вердиктом не является: оно отозвано
позднейшими INCOMPLETE и NO-GO.
## 2. МЕХАНИЗМ / КОРЕНЬ
Механизм (тело, §1 «Суть» + §6 «Критерий закрытия»): change-impact встроен в **существующий**
release/PR/паспорт/WEB-449 процесс, без второго канона. Цепочка: feature/paths → операции →
документы → retest → evidence на новом SHA. Новая очередь/миграция требует адресного
повтора, пропущенное evidence не переносит PASS; невлияющая правка имеет причину `NONE`.
Гейт падает, если релиз тронул файлы из книги, а книга не тронута — с названными файлами
и условием.
Корень: **механизма не существовало, и это доказано фактом.** Прод переехал на l115o
15.09 в 00:56Z, а внутри `доступы.tar.age` продолжали лежать расписки **l115n и l115m**:
`l115n-artifact.json`, `l115n-deployed.json`, `l115n-flip.log`,
`l115n-migration-apply-receipt.json`, `spend-activation-l115n.json`, `l115m-deployed.json`,
`СОСТОЯНИЕ-ПРОДА.txt`, `verified-l115l-ПОСЛЕДНЯЯ-ГДЕ-ЕСТЬ.json`. Формулировка находки
(`2026-09-15T01:33:57.704Z`, повторено `2026-09-15T01:42:52.946Z`): «Посадка произошла —
пакет не обновился — никто бы не узнал»; это «не «надо подправить файлик», а «нет процедуры»».
Механизм написан как **скрипт, а не память**: `nc-ops-scripts/refresh-access-pack.sh`
с семью шагами, каждый с проверкой (обновление расписок в рабочей копии; гейт на
литеральные секреты; упаковка и шифрование на двух получателей, читаемых из ключей;
подпись описи Ed25519 с автоинкрементом ревизии; прежний пакет в `архив-пакетов/`
с меткой времени; гейт папки выдачи на `*.tar`/`распаковано-*`; обратное чтение
во временный каталог со сверкой sha256 с подписью).
## 3. КАРТА ДОКУМЕНТОВ (точные пути)
- Скрипт: `nc-ops-scripts/refresh-access-pack.sh` (`2026-09-15T01:42:52.946Z`)
- Перепаковка комплекта: `repack.sh` из сдачи волны **3854**; матрица `pack × verify` —
волна **3838** (там же)
- Единая папка выдачи: `/Users/annakorin/Downloads/БАС-ФАКТОР-ПЕРЕДАЧА/`
(`HANDOFF-LIVE.md` строка 27; состав 8 предметов — WEB-648 `2026-09-15T01:33:56.445Z`)
- Опись пакета: `/Users/annakorin/Downloads/БАС-ФАКТОР-ПЕРЕДАЧА/доступы.tar.age`
(404 874 байта, rev 10, sha256 `e0ef8b194e6badd6d00ca48aba1cfe7f5b4e6b1c1ea7483e4ef227e023caf0f9`)
- `СОСТОЯНИЕ-ПРОДА.txt` — пересобран: что стоит сейчас, куда откатываться (l115n
`d85bb2da…`, командой `transition-l115o.py rollback`), предупреждение про квитанцию
совместимости перед откатом (там же)
- Тело (§4): `out/BF08-FRESHNESS-POLICY.md`, `out/BOARD-APPLY.json`, `out/NOTES.md`;
`shift-20260912-resume/3539/collected/out/BF08-RELEASE-UPDATE-l115f-r2.md`;
паспорт M1 `livepush/docs/PASSPORT/` — **устарел**
- Отчёт этой волны: `/Users/poolpooly/waves-ds/4135/4135ENRICHBUSFACTORCOMMENTS-REPORT.md`
## 4. ЭВОЛЮЦИЯ и отозванные утверждения
1. **«СДЕЛАН ПО СУЩЕСТВУ» (`2026-09-15T01:42:52.946Z`) отозвано** последующими INCOMPLETE
(`14:05:06.443Z`, `14:10:49.558Z`) и NO-GO (`14:54:29.717Z`). Тело этого не фиксирует.
2. **Четыре fail-closed дефекта 4050** (`2026-09-15T14:54:29.717Z`): принимаются
дублирующиеся current PASS-расписки; принимаются пути в форме обхода (traversal);
принимается симлинк на файле изменённых путей; обходится симлинк на каталоге evidence.
Все четыре отремонтированы и воспроизведены RED→GREEN независимой Neo/4060
(`2026-09-15T15:40:18.235Z`).
3. **Честный FAIL сохраняется, а не закрашивается.** Реальный диапазон l115n→l115o
содержит **296 путей** и «честно остаётся FAIL по восьми отсутствующим свежим классам
расписок» (`14:42:58.745Z`, `15:40:18.235Z`). Исторический receipt — FAIL с
`changed-paths-provenance=UNAVAILABLE`, потому что локальная ops-папка не имела
Git-объектов l115n→l115o; постоянные refs созданы на Neo: l115n `d85bb2da…`,
l115o `68e25d8d…` (`14:42:58.745Z`).
4. **Статус менялся дважды**: `review` → `in_progress` (`14:42:58.745Z`).
5. **Находка про комплект не перенесена в тело.** `kit.tar.age` всё ещё пришпилен к l115n:
`START-HERE.md:54` держит отпечаток `d85bb2dad15a3ba52c773b0a2362748009a2c3b9`, версия
комплекта `2026.09.14-r2` (`01:42:52.946Z`; подтверждено `14:10:49.558Z` и
WEB-642 `2026-09-15T14:10:48.668Z`).
6. **Готовность пакета ≠ исполнение B/C** (`15:47:17.420Z`, дословно): «Это READY
подготовки, не прохождение B/C: свежий Codex владельца обязан сам выполнить
посадку/откат и выдать PASS/FAIL receipts»; `HANDOFF-LIVE.md` строка 27.
7. Новое 15.09: попытка посадки **l115p** дала post-landing NO-GO и была штатно откачена
(`HANDOFF-LIVE.md` строки 38–45, тик 21:15Z; живые комментарии WEB-635
`2026-09-15T21:18:29.795Z`, WEB-626 `2026-09-15T21:18:43.811Z`). Кандидат
`ca6c06effbceb281151f39a71e4ca149251c21de`, артефакт `3387e9af…`; машинный verify был
зелёный, живая браузерная проба — нет (`/api/realtime/socket` HTTP 500, editor пуст);
прод снова l115o. Канон зафиксировал это как отдельный случай к правилу 9
(WEB-449 `2026-09-15T22:05:58.111Z`).
## 5. KNOWN ISSUES / ТРАБЛШУТИНГ
В R2-теле блока нет (вхождения `knownissues` — внутри дописанной «истории»); проверки
за 2 минуты нет ни в одном.
**KI-1. Пакет передачи молча отстаёт от линии — это и есть отсутствие BF-08.**
- Симптом: человек, открывший пакет утром 15.09, увидел бы состояние позавчерашнего прода
и действовал бы по нему.
- **Проверка за 2 минуты (read-only):** сверить `prod_commit` подписанной описи пакета
с живым `checks.release.sourceCommit` из `/api/ready`. Поля `prod_line`, `prod_commit`,
`prod_artifact_sha256` добавлены в опись именно затем, чтобы актуальность была видна
**из подписанной описи, без расшифровки** (`2026-09-15T01:42:52.946Z`).
- Причина: процедуры не было; посадка не запускала обновление пакета (там же).
- Лечение/статус: механизм написан (`refresh-access-pack.sh`, 7 шагов) и принят
независимо (4060 GO, SHA 11/11); остаток — свежие расписки и комплект.
- Ссылки: `4130ENRICHBUSFACTOR-REPORT.md` §2.3 и §4 WEB-649.
**KI-2. Гейт нашёл реальный дефект там, где человек не нашёл.**
- Симптом: шаг 6 отказался завершать работу — в `проверка/ops/__pycache__` и
`проверка/ops/web409/__pycache__` лежали скомпилированные `.pyc` от запуска проверяльщика;
координатор чистила папку двадцатью минутами раньше и искала только на верхнем уровне.
- **Проверка за 2 минуты (read-only):** `find` по папке выдачи на `__pycache__`, `*.tar`,
`распаковано-*` — включая **вложенные** каталоги, не только верхний уровень
(`2026-09-15T01:42:52.946Z`).
- Причина: репетиция распаковывала внутрь папки передачи, а не во временный каталог вне её
(WEB-642 `2026-09-15T01:33:51.976Z`; убрано 15.09 02:32Z).
- Лечение/статус: закрыто гейтом шага 6; значения не воспроизводятся, секретные файлы
не читались.
**KI-3. Худший случай матрицы `pack × verify`.**
- Симптом: новый комплект со старым проверяльщиком возвращает `ok`, но `START-HERE.md`
подписью **не проверяется** — подмена первого файла, который хранитель читает, пройдёт
незамеченной (волна 3838, `2026-09-15T01:42:52.946Z`).
- **Проверка за 2 минуты (read-only):** сверить версию комплекта и версию проверяльщика
в описи; несовпадение в любую сторону = не запускать.
- Причина: перепаковка комплекта и выдача отпечатков — разные операции, а откат кода
отпечатки у человека в блокноте не отзывает.
- Лечение/статус: перепаковка делается **одним действием вместе с выдачей отпечатков**,
требует ~30 секунд владельца (там же).
## 6. ТОЧНЫЙ ОСТАТОК (граница владелец / исполнитель)
Тело, §5 «Остаток» из 13.09 (встроить гейт, прогнать change-impact на l115j) **не
соответствует** живой находке. Действующий остаток (`2026-09-15T15:47:17.420Z`,
`14:05:06.443Z`):
- **Свежие восемь классов расписок** на l115o и полное учение — **исполнитель** (свежий
Codex владельца), там же.
- **Свежий Codex владельца обязан сам выполнить посадку/откат и выдать PASS/FAIL receipts**
— **владелец** (`15:47:17.420Z`).
- **Перепаковать `kit.tar.age` под l115o и получить новый reverse-read receipt** —
**владелец** (два отпечатка по 64 знака голосом) + **исполнитель** (`repack.sh`, волна
3854); точный остаток — WEB-642 `2026-09-15T14:10:48.668Z`.
- **Квитанция совместимости схемы до разрешения отката** (BF-FIX-4, тело §5 пункт 4) —
**координатор + владелец БД**; без неё откат — авария, а не спасение
(WEB-648 `2026-09-15T01:33:56.445Z`).
- Встроить гейт в реальный release/PR/паспорт/WEB-449 конвейер как исполняемый hook —
**координатор** (тело §5 пункт 1; 4041 уже включил гейт первым шагом
`post-landing-checks.sh`, `14:42:58.745Z`).
## 7. ПЕРВЫЙ ШАГ НУЛЕВОГО АГЕНТА (без агентов)
Прочитать `2026-09-15T15:47:17.420Z` и `2026-09-15T14:54:29.717Z` — они старше тела и
снимают «СДЕЛАН ПО СУЩЕСТВУ». Затем выполнить проверку KI-1 (сверка `prod_commit` описи
с `/api/ready`). **Не считать GO 4060 закрытием тикета:** GO относится к механизму гейта,
а не к восьми отсутствующим классам расписок; `in_progress`.
2026-09-16T01:19:13.242Z · coordinatorPOSTQA-L115Q-BF08-REV14-20260916
[16.09 01:17Z координатор] Независимая перепроверка после посадки l115q обнаружила и устранила неполное обновление выдачи: rev13 обновил access ciphertext, но публичные документы, kit, B/C templates и корневой SHA256SUMS оставались от l115o/rev11. Такая папка свежему Codex не выдавалась.
Текущий результат BF-08 / readiness:
- одна выдаваемая папка атомарно пересобрана как rev14;
- current: l115q, source cc278e1810e1e03ac277b8e3a5fe06a2aebfba30, artifact e9cdd5b041c29d058ef3c06e11ac39862e4de57d4ea307e79a7902d2d6535d86;
- rollback: l115o, source 68e25d8df5ae8263c5ac5466353631f57a17cfcc, artifact cd2773f65d66b09ec03d39b553041d2814ce09413e72d72b07bc9de89df536c8;
- SHA manifest 29/29 PASS; один внешний Ed25519 trust anchor для access+kit; reverse-read access 3/3 и kit 3/3; запрещённого plaintext/symlink/__pycache__ residue нет;
- полный fail-closed verifier PASS на финальном пути;
- негативный control с подменённым commit отказал по пяти identity-признакам;
- отдельный control с 3→2 recipients отказал first-class причиной access-recipient-count.
Исправлен механизм, не только папка: refresh-access-pack.sh теперь собирает staging, шифрует на трёх rehearsal recipients, делает 3/3 readback, строит полный SHA manifest, запускает verify_busfactor_distribution_freshness.py и лишь после PASS атомарно заменяет выдачу с восстановимой копией. Частичный refresh больше не может завершиться «ГОТОВО».
Вердикт карточки: REVIEW — механизм актуальности и текущая выдача подтверждены. Это НЕ закрытие WEB-641/WEB-655 и НЕ живая репетиция B/C: B/C templates намеренно executed=false; свежий Codex ещё должен выполнить build/land/verify и rollback и выдать PASS/FAIL receipts.
Доказательства: nc-ops-scripts/HANDOFF-LIVE.md (тик 01:06Z), nc-ops-scripts/refresh-access-pack.sh, nc-ops-scripts/verify_busfactor_distribution_freshness.py, Downloads/БАС-ФАКТОР-ПЕРЕДАЧА/SHA256SUMS.
2026-09-16T02:00:33.568Z · coordinatorPOSTQA-WEB649-REV14-ACC-4141
[16.09 координатор] Независимая приёмка rev14 завершена: GO.
- Волна: Neo/Luna 4141, отдельный повтор после исправления гонки упаковки первого материала 4137.
- Immutable archive SHA-256: `521fd9795aa35d9d4423e65920901e4077b2631c41e19376d193e615f656388d`.
- `material-SHA256SUMS`: 33/33; distribution manifest: 29/29 exact coverage.
- Full freshness verifier: `ok=true`, current `l115q` / `cc278e1810e1e03ac277b8e3a5fe06a2aebfba30`, rollback `l115o` / `68e25d8df5ae8263c5ac5466353631f57a17cfcc`.
- Внешний trust store 422 байта; оба пакета подписаны одним внешним Ed25519 anchor и имеют по 3 X25519 recipients.
- 8 отрицательных контролей дали ожидаемый fail-closed отказ: recipient count, current identity, public navigation, ciphertext, SHA coverage, symlink, plaintext tar, stale B template.
- Финальный пакет приёмки: `4141WEB649REV14ACC-REPORT.md`, evidence 5 файлов, `4141WEB649REV14ACC-SHA256SUMS`; readback 6/6 OK.
Граница: это закрывает readiness/актуальность механизма BF-08 и WEB-649. Это НЕ доказательство выполнения B/C, не закрывает WEB-641 или WEB-655 и не утверждает, что свежий Codex уже выполнил живой build/land/verify/rollback.
Воркер
не проверен
4141:rev14-independent-acceptance-GO
neo
движение в панели: неизвестно
Подключиться и смотреть/перехватить руками. Колесо мыши листает; клавишами — Ctrl-b затем [, выход из прокрутки q. Отсоединиться — Ctrl-b затем d:
Прочитать историю панели без подключения — листается и ищется (/ поиск, q выход), воркеру не помешает:
Обновлён
2026-09-16T02:00:33.570Z