# v2 Pilot Eval Plan

## Цель пилота

Проверить устойчивость `Normalizer v2` как decomposition-first pre-router без дорогих массовых прогонов.

## Наборы пилота

1. `calibration set` (существующий стабильный набор)
2. `challenge-30` (новая тридцатка)
3. `long-stream set` (2-3 длинных сообщения-потока)

## Что мерим (v2 метрики)

- `schema_validation_pass_rate`
- `scope_detection_accuracy`
- `fragment_split_accuracy`
- `out_of_scope_filter_accuracy`
- `route_flag_accuracy`
- `route_decision_accuracy`
- `false_cross_entity_activation_rate`
- `false_causal_activation_rate`
- `multi_intent_handling_accuracy`

## Минимальный план запуска

### Этап A: mock/prompt sanity (дешево)
- `use_mock=true`
- проверить схему, фрагментацию, deterministic route simulation
- без API затрат

### Этап B: малый real run (контролируемо)
- 10-15 сообщений (`temperature=0`)
- фиксированный `promptVersion=normalizer_v2`
- без sweep-повторов

### Этап C: challenge replay
- прогнать `challenge-30` как fragment/scope benchmark
- отдельно оценить out-of-scope filtering

## Бюджет

- Не делать массовые sweep run на старте.
- Сначала валидировать архитектуру и метрики, потом масштабировать.

## Критерии go/no-go

`Go`, если:
- `schema_validation_pass_rate >= 99%`
- `scope_detection_accuracy >= 90%`
- `route_decision_accuracy >= 85%`
- `multi_intent_handling_accuracy >= 85%`
- `false_cross_entity_activation_rate <= 10%`

Иначе:
- правим decomposition/flags/routing rules,
- не возвращаемся к single-intent prompt patching как основному методу.
