fix(secretary): тема = предметная область (не тип проблемы) + статус-handoff v2

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Дмитрий
2026-06-26 06:09:05 +03:00
parent 91ded23462
commit eacd97c1f0
2 changed files with 52 additions and 5 deletions
@@ -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`.
+3 -1
View File
@@ -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: точит СВОИХ кандидатов (мутация) + критик полноты (зияющий пробел целого пласта).