docs(spec): router overhaul — этап 2 упрощён после параллельной починки парсера
Параллельная сессия 23.05 13:16-13:38 закрыла 60% этапа 2 через коммиты 3baeaa12/b685bf9b/04a9c12b (spec observer-parser-skill-hook-expand v3): - candidates_considered whitelist filter (KNOWN_NODES) - schema_version 2 → 3 forward-only - primary_rationale.recommended_node (для direct эпизодов) - events[].hook_fired.scripts (reverse-lookup settings.json) - analyzer accepts schema >=2 (v2+v3 mix) + recommended_node_for_direct ось Скорректирован этап 2 spec — отмечено что сделано, оставшаяся работа: disciplinePercentByClassification/routerStepReached/boundariesAppliedRate срезы analyzer, переключение missed-activations на реестр из этапа 1, блок "Метрики дисциплины" в STATUS.md, baseline snapshot. План этапа 1 (реестр) — без изменений, парсер не задействует. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -136,15 +136,23 @@
|
||||
|
||||
### Этап 2 — Измерения (baseline до enforcement)
|
||||
|
||||
**Цель:** починить парсер + добавить метрики, получить **honest «точку До»** дисциплины.
|
||||
**Цель:** добавить метрики разбивки дисциплины по типам задач, получить **honest «точку До»** дисциплины.
|
||||
|
||||
**Артефакты:**
|
||||
**Что УЖЕ сделано параллельной сессией 23.05 (коммиты `4665c537`, `6192d395`, `6a9df652` — spec `2026-05-23-observer-parser-skill-hook-expand-design.md`):**
|
||||
|
||||
- ✅ Fix `tools/observer-transcript-parser.mjs` — `candidates_considered` whitelist filter (`tools/observer-known-nodes.txt` + `observer-chain-map.json`); проза/процедуры/код отсекаются. Forward-only.
|
||||
- ✅ Schema v3 — `schema_version` 2 → 3. Старые v2-эпизоды не правим (append-only).
|
||||
- ✅ `primary_rationale.recommended_node` — поле есть в v3, заполняется из `observer-classification-map.json` (этап 2 переключит на реестр).
|
||||
- ✅ `events[].hook_fired.scripts` — reverse-lookup имени скрипта из `.claude/settings.json` + user.
|
||||
- ✅ `tools/brain-retro-analyzer.mjs` accepts schema ≥2 (v2+v3 mix); добавлена `recommended_node_for_direct` факторная ось.
|
||||
|
||||
**Что осталось делать в этапе 2:**
|
||||
|
||||
- **Fix `tools/observer-transcript-parser.mjs`** — `candidates_considered` сейчас заполняется булитами ответа. Заменить на честное поле: либо «узлы, реально матченные триггерами шага 3 роутера», либо пустой массив. Forward-only — старые v2-эпизоды не правим, добавляем `schema_version: 3` маркер.
|
||||
- **`tools/brain-retro-analyzer.mjs`** — новые срезы:
|
||||
- `disciplinePercentByClassification` — % эпизодов с матченным триггером, разбивка по `task_classification`.
|
||||
- `routerStepReached` — на каком шаге роутера эпизод действительно остановился (если step=1 для всех — это баг парсера, отметить).
|
||||
- `boundariesAppliedRate` — % эпизодов с непустым `boundaries_applied`.
|
||||
- **`tools/missed-activations.mjs`** — переключить с `observer-classification-map.json` на реестр из этапа 1 (`docs/registry/nodes.yaml`). Маппинг classification → recommended_nodes теперь автоматический через `nodes[i].triggers[].classification`.
|
||||
- **`docs/observer/STATUS.md` generator** — добавить блок «Метрики дисциплины»:
|
||||
|
||||
```
|
||||
@@ -156,15 +164,14 @@
|
||||
| analysis | 8 | 50% | 50% |
|
||||
```
|
||||
|
||||
- **`tools/missed-activations.mjs`** — обновить, чтобы использовать реестр из этапа 1 (а не текущий `observer-classification-map.json`). Маппинг classification → recommended_nodes теперь автоматический через `nodes[i].triggers[].classification`.
|
||||
- **Baseline snapshot** в `docs/observer/baselines/2026-XX-XX-pre-enforcement.md` — фиксируем цифры «до» (% дисциплины, missed activations, % regulated, % границ применено), чтобы потом сравнить.
|
||||
|
||||
**Definition of done:**
|
||||
|
||||
- Парсер `candidates_considered` пишет имена узлов (или `[]`), не булиты ответа. Проверка: ни в одном новом эпизоде нет строк длиннее 50 символов в `candidates_considered`.
|
||||
- STATUS.md показывает разбивку дисциплины по типам задач.
|
||||
- Baseline snapshot закоммичен.
|
||||
- Существующие тесты `brain-retro-analyzer.test.mjs` + новые срезы — GREEN.
|
||||
- Существующие тесты `brain-retro-analyzer.test.mjs` + новые срезы (`disciplinePercentByClassification`/`routerStepReached`/`boundariesAppliedRate`) — GREEN.
|
||||
- `missed-activations.mjs` читает реестр из этапа 1; результат на тех же данных не должен сильно дрейфить от текущего (sanity check). Тесты GREEN.
|
||||
|
||||
**Точка остановки:** ты видишь цифры «27% дисциплины, 0% на feature», говоришь «продолжаем» → этап 3.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user