docs(secretary): статус-хендофф эпика пушистого дерева (A+C влиты, B остался) для следующей сессии
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# Эпик «пушистое дерево» секретаря — СТАТУС и HANDOFF (для следующей сессии)
|
||||
|
||||
**Дата:** 2026-06-25 · **Состояние main:** `d6dc0f7` (A+C влиты, забэкаплены в gitea) · полная сюита
|
||||
`tools` — **4639 зелёных** · флаг `SECRETARY_FLUFFY` **выключен** → живой секретарь не тронут.
|
||||
|
||||
## Что это за эпик
|
||||
Превратить вывод секретаря из «ободранного дерева» (ствол + куча статичных скрытых веток) в **пушистое
|
||||
дерево**: ствол + живые ветки (закрываются/сужаются/растут садовником) + заземлённый брейншторм-кандидаты
|
||||
+ горящие Л8/Л9, со сквозной прослеживаемостью и сворачиванием. Декомпозиция на 3 подпроекта (каждый —
|
||||
свой цикл спека→план→исполнение):
|
||||
|
||||
| | Подпроект | Статус |
|
||||
|---|---|---|
|
||||
| **A** | боевой конвейер веток (диагностика 8/8 ∥ ловец → брейншторм → садовник → применение) | ✅ ВЛИТ в main (`aded6b8`) |
|
||||
| **C** | рендер пушистого дерева (`renderFluffy` + развилка `renderDoc` + проводка в stop-хук) | ✅ ВЛИТ в main (`d6dc0f7`) |
|
||||
| **B** | фоновый воркер (очередь-один-писатель) + включение флага | ⬜ НЕ НАЧАТ |
|
||||
|
||||
## Сделано (A + C)
|
||||
- **A** (`docs/superpowers/specs/2026-06-25-secretary-pipeline-A-design.md` + план
|
||||
`…/plans/2026-06-25-secretary-pipeline-A.md`): новые модули `secretary-armor.mjs` (JSON-броня,
|
||||
опора-словарь, линзы), `secretary-trunkdiff.mjs`, `secretary-models.mjs` (5 слотов), `secretary-harvest.mjs`
|
||||
(диагностика 8/8/ловец/брейншторм без лимита), `secretary-gardener.mjs` (close-с-пруфом + В1-гейт),
|
||||
`secretary-apply.mjs` (ветки/кандидаты-накопление/тенд). Дирижёр `secretary-distill.mjs` — развилка по
|
||||
флагу (новый путь / старый аудит). 50 тестов. Промпты перенесены из доказанной песочницы `.scratch/sec/v2.mjs`.
|
||||
- **C** (`…/specs/2026-06-25-secretary-render-C-design.md` + `…/plans/2026-06-25-secretary-render-C.md`):
|
||||
`secretary-render-fluffy.mjs` — `renderFluffy(protocol,opts)` (markdown по макету) + `renderDoc(...,env)`
|
||||
(флаг ON → пушистый, OFF → старый `renderProtocol`). Проводка: `secretary-stop-hook.mjs:143,165` зовут
|
||||
`renderDoc`. 10 тестов.
|
||||
- **Флаг** `fluffyPipelineOn(env)` в `secretary-flag.mjs` (`SECRETARY_FLUFFY=1|true`). ВЫКЛ по умолчанию.
|
||||
|
||||
## Осталось — B (фоновый воркер). Дизайн уже решён владельцем
|
||||
**Все 8 архитектурных решений + рабочий поток + про кандидаты/прослеживаемость — в**
|
||||
`docs/secretary/протокол-наставника/прогон/НАХОДКИ.md`, раздел **«ДИЗАЙН-РЕШЕНИЯ 25.06»** (читать первым).
|
||||
Ключевое для B:
|
||||
- **Гонка, которую B обязан решить:** убежали на 3 хода → фон затирает свежий протокол старым (потерянное
|
||||
обновление). **Решение:** очередь с ОДНИМ работником, спаны по порядку, каждый берёт протокол-после-
|
||||
предыдущего; никогда два сразу. Протокол ДОГОНЯЮЩИЙ (отстаёт на N ходов), но не ломается. **Лаг принят.**
|
||||
- **Один протокол, ЕДИНСТВЕННЫЙ писатель — редактор.** Фон сам в файл не пишет — отдаёт результат
|
||||
редактору. Один писатель = нет затирания.
|
||||
- Ствол (редактор) — на критпути (или тоже в очередь); ветки (1.1/1.2/1.3/садовник) — в фон.
|
||||
- **B включает флаг** (`SECRETARY_FLUFFY=1`) — конвейер идёт вживую. Это повышает ставки → B самый рисковый.
|
||||
- **Непроверенное механикой (тест при B):** гравитация (продвижение кандидата в ствол, когда владелец
|
||||
заговорил об идее); reopen/обратный каскад (в тесте не было повода); сжатие длинной истории на масштабе.
|
||||
- Латентность, обосновавшая B: брейншторм 67-97с (см. НАХОДКИ «Латентность флэша»).
|
||||
|
||||
## Как поднять B (следующая сессия)
|
||||
1. **Включить штатный режим** (`да, штатный`) — экспериментальная работа секретаря шла в нём весь
|
||||
25.06 (стена опущена, пол/проверки остаются). Стена по умолчанию поднята в новой сессии.
|
||||
2. **Брейншторм** (передняя дверь) → спека B → план B → исполнение (как A/C). Дизайн B уже почти готов в
|
||||
НАХОДКИ — брейншторм будет коротким (формализация + решить, где физически живёт очередь и чем триггерится).
|
||||
3. Реализация — TDD, на ветке (не main), коммит/merge через терминал владельца (пол блокирует агента;
|
||||
`node tools/produce-verify-receipt.mjs` перед коммитом, `-m` ДО `--`, влитие fast-forward).
|
||||
|
||||
## Опорные файлы (карта)
|
||||
- **Находки + дизайн-решения + макет вида:** `docs/secretary/протокол-наставника/прогон/НАХОДКИ.md`,
|
||||
`…/прогон/ФИНАЛЬНЫЙ-ВИД-макет.md`.
|
||||
- **Доказанная песочница (источник промптов/логики):** `.scratch/sec/v2.mjs` (НЕ удалять до конца эпика —
|
||||
референс для B; после — прибрать по CLAUDE.md п.11).
|
||||
- **Спеки/планы A,C:** `docs/superpowers/specs/2026-06-25-secretary-*.md`, `…/plans/2026-06-25-secretary-*.md`.
|
||||
- **Боевой код:** `tools/secretary-{armor,trunkdiff,models,harvest,gardener,apply,render-fluffy,flag,distill,stop-hook}.mjs` + `.test.mjs`.
|
||||
|
||||
## Коммит-механика в этом репо (памятка)
|
||||
Пол блокирует коммит/merge агента. Путь: контроллер `git add` + `node tools/produce-verify-receipt.mjs`
|
||||
(зелёная сюита) → **владелец вставляет `git commit`/`git merge`/`git push gitea main` в свой терминал**
|
||||
(`-m` ДО `--`; на unlink-pack отвечать `n`). docs-only коммиты проходят сами, смешанные — нужна расписка.
|
||||
Reference in New Issue
Block a user