diff --git a/docs/superpowers/specs/2026-06-25-secretary-fluffy-EPIC-status-handoff.md b/docs/superpowers/specs/2026-06-25-secretary-fluffy-EPIC-status-handoff.md index 1e7c4f9..1ab6d6f 100644 --- a/docs/superpowers/specs/2026-06-25-secretary-fluffy-EPIC-status-handoff.md +++ b/docs/superpowers/specs/2026-06-25-secretary-fluffy-EPIC-status-handoff.md @@ -1,7 +1,50 @@ # Эпик «пушистое дерево» секретаря — СТАТУС и HANDOFF (для следующей сессии) -**Дата:** 2026-06-25 · **Состояние main:** `1b40f2d` (A+B+C влиты, забэкаплены в gitea) · полная сюита -`tools` — **4665 зелёных + 1 todo** · флаг `SECRETARY_FLUFFY` **выключен** → живой секретарь не тронут. +**Дата:** 2026-06-25 (A/B/C) → **обновлено 26.06.2026 (v2)** · **Состояние main:** `91ded23` (v2 влит) · +секретарский свод — **269 зелёных + 1 todo** · флаг `SECRETARY_FLUFFY` **ВКЛЮЧЁН** → v2 активен на живом +секретаре. **Свежее — в разделе «⭐ ОБНОВЛЕНИЕ 26.06» ниже; разделы про A/B/C — исторические.** + +## ⭐ ОБНОВЛЕНИЕ 26.06.2026 — v2 «архив + стрижка + двусторонний мост» РЕАЛИЗОВАН и в main + +После A/B/C владелец прогнал живого секретаря и заказал крупную доработку. Спроектировано диалогом и +реализовано TDD (инлайн, 11 задач). **Дизайн:** `…/specs/2026-06-25-secretary-archive-and-pruning-design.md` +(§12 — авторитетная сводка; §10 — кнопка-аудит отложена; §11 — ревизия конвейера). **План:** +`…/plans/2026-06-25-secretary-fluffy-pipeline-v2.md`. **Коммит:** `91ded23` (main, 20 файлов, +1501) + +follow-up тема-калибровка. + +**Что нового против A/B/C:** +- **Две грядки + двусторонний мост:** брейншторм пасёт КАНДИДАТОВ (рождает + точит/мутирует своих + критик + полноты `gaps` + видит ВСЕ шаги); садовник пасёт ВЕТКИ (close/мутировал/отпал/carry/reopen) + мост + `сплав↓` (ветка→кандидат, потеряла опору) / `повысить↑` (кандидат→ветка, владелец заговорил всерьёз). +- **Смерть только: close(пруф) · отпал(вытеснение стволом). Таймера НЕТ** (спящая ветка живёт — основа ТЗ). + Анти-пинг-понг: переход моста по событию. +- **Тема + важность** при рождении (🔴🟡⚪ для владельца-не-программиста) → **ёлочка-пульт** (мёртвое в пульт не идёт). +- **Прозревший ловец** (видит все шаги + волю + реестр + надгробия — ловит ЗАБЫТОЕ, не дублируя). +- **Два рендера:** `protocol.md` (чистый пульт-ёлочка) + НОВЫЙ `tools/secretary-render-archive.mjs` → + `архив.md` (полный леджер со статусами + родословной по шагам — сырьё ТЗ). Воркер пишет ОБА под флагом. +- **Кандидаты первоклассны** (фикс §1 — переживают reconcile: `preserveRegistry`+снимок distill). +- **Скромный садовник** (несёт, почти не убивает — принцип «здоровое дерево, не красивое»; кнопка-парикмахер + declutter В УТИЛЬ; тема/важность ОРГАНИЗУЮТ, не прячут). +- **Модель по ролям:** дефолт флэш на 5 ролях; про — только БУДУЩАЯ кнопка-аудит здоровья (§10, формат + «рецензент ИСТОЧНИКА, а не конспекта» — вердикт: слой-1 одной сессии ≈ 1.27М токенов, перечитать целиком нельзя). + +**Тесты:** секретарский свод **269 зелёных + 1 todo** (27 файлов). Классический путь (флаг OFF) сохранён как fallback. + +**Дело «секретарь-лидерра» ПЕРЕСОБРАНО** продакшн-конвейером v2 на флэше (`.scratch/sec/liderra-rebuild.mjs`, +сессия `c77e33d7`) и ПОДМЕНЕНО в `docs/secretary/секретарь-лидерра/` (старое сохранено как `protocol.old.*` — +прибрано после приёмки). Критик полноты поймал реальные дыры (защита сырых логов, health-чек, нагрузка). + +**Песочница `.scratch/sec/` ВОССТАНОВЛЕНА и АКТИВНА** (`v3.mjs` — эталон-прототип всей v2-конструкции на живом +флэше; `liderra-rebuild.mjs` — пересборка дела). **НЕ удалять — продолжаем.** (Раздел «Уборка сделана 25.06» +ниже про удаление песочницы — УСТАРЕЛ.) + +**Хвосты v2 (follow-up, не блокеры):** (1) дробление тем на МАЛЕНЬКИХ делах — флэш плодит близкие синонимы +(«настройка дела»/«управление делами»); предметность тем починена калибровкой, слияние синонимов — задача +про-аудита или лёгкого пост-прохода. (2) Кнопка-аудит здоровья (§10) — отложена на будущее. (3) Гравитация +кандидат→ствол — всё ещё `it.todo` (суждение редактора). + +--- +**Ниже — ИСТОРИЧЕСКИЙ статус A/B/C (25.06).** ## Что это за эпик Превратить вывод секретаря из «ободранного дерева» (ствол + куча статичных скрытых веток) в **пушистое @@ -71,7 +114,9 @@ живой секретарь их уже берёт; без ключа воркер моделей не вызовет (тихий no-LLM, только сырьё+шаг). **После включения:** прогнать реальную тему, глянуть `protocol.md` (догоняющий — растёт по мере фон-разбора). -Если ок — убрать песочницу `.scratch/sec/*` (CLAUDE.md п.11) и удалить ветку `feat/secretary-worker-b`. + +**Уборка сделана 25.06:** песочница `.scratch/sec/` удалена (промпты в боевом коде A), ветка +`feat/secretary-worker-b` удалена (слита в main). Осталось только включение (выше). ## Два честных хвоста (follow-up, не блокеры) - **Гравитация** — не реализована (см. выше). Если нужна — отдельная задача: доработка редактор-промпта, @@ -84,7 +129,7 @@ ## Опорные файлы (карта) - **Находки + дизайн-решения + макет:** `docs/secretary/протокол-наставника/прогон/НАХОДКИ.md` (раздел «ДИЗАЙН-РЕШЕНИЯ 25.06»), `…/прогон/ФИНАЛЬНЫЙ-ВИД-макет.md`. -- **Песочница (источник промптов A):** `.scratch/sec/v2.mjs` (убрать после живого прогона). +- **Песочница** `.scratch/sec/` — УДАЛЕНА 25.06 (промпты перенесены в боевой код A: `secretary-{harvest,gardener,apply,armor}.mjs`). - **Спеки/планы A,B,C:** `docs/superpowers/specs/2026-06-25-secretary-*.md`, `…/plans/2026-06-25-secretary-*.md`. - **Боевой код B:** `tools/secretary-{queue,lock,spawn,worker,enqueue}.mjs` + правки `{stop-hook,harvest,index,flag}.mjs` + `.test.mjs`. diff --git a/tools/secretary-harvest.mjs b/tools/secretary-harvest.mjs index b0717d5..dee2fec 100644 --- a/tools/secretary-harvest.mjs +++ b/tools/secretary-harvest.mjs @@ -20,7 +20,9 @@ const PASSPORT = [ // Доп-поля при рождении (тема/важность — для ёлочки-пульта и группировки; title — заголовок карточки/надгробия). const TITLE_ADD = '\nДОП-ПОЛЯ в КАЖДЫЙ объект-находку/идею:' + '\n "title" — короткий заголовок ≤8 слов;' - + '\n "тема" — ярлык темы 1-2 слова для группировки (ПЕРЕИСПОЛЬЗУЙ из «СПИСКА ТЕМ», новую — только если не подходит);' + + '\n "тема" — ШИРОКИЙ ярлык ПРЕДМЕТНОЙ области (О ЧЁМ пункт: напр. «хранилище», «поиск», «перенос», «безопасность»), 1-2 слова.' + + '\n ЭТО НЕ тип проблемы и НЕ имя линзы — «хрупкость»/«доказательства»/«допущение» как тему ЗАПРЕЩЕНО (это про КАК, а нужно про ЧТО).' + + '\n СТРОГО переиспользуй ярлык из «СПИСКА ТЕМ»; новую заводи ТОЛЬКО если предметная область совсем иная. Темы — это разделы ТЗ, держи их ШИРОКИМИ.' + '\n "важность" — для ВЛАДЕЛЬЦА-не-программиста: "high"|"medium"|"low" (влияние НА ДЕЛО, не на технику).'; // Брейншторм v2: точит СВОИХ кандидатов (мутация) + критик полноты (зияющий пробел целого пласта).