---
name: hypothesis-arbiter
description: >
  Когда не знаешь почему что-то происходит — выдвигает 4-6 конкурирующих объяснений
  и систематически убивает ложные через kill-тесты и confidence scores.
  Метод Chamberlin + Platt: вместо угадывания одного ответа — параллельная проверка всех.
  Для ARCHCODE (механизмы генома), отладки сложных багов, любого research-вопроса.
  НЕ для: одной гипотезы (→ /sci-hypothesis), атаки одной идеи (→ /skeptic).
  Triggers: /hyparb, /strong-inference, конкурирующие гипотезы, kill-test, почему это происходит.
effort: high
tokens: ~1000
---

<!-- BSV — Brief Skill View | поиск: BSV
Скил   : hypothesis-arbiter
TL;DR  : Оркестрация конкурирующих гипотез по Chamberlin (1890) + Platt (1964): spawn → kill-design → in-silico → redteam → arbitrate
Вызов  : /hypothesis-arbiter, /hyparb, /strong-inference, "выдвини гипотезы", "множественные гипотезы", "конкурирующие объяснения"
НЕ для : Генерация одной гипотезы (→ /sci-hypothesis), критика одной идеи (→ /skeptic), план эксперимента (→ /scientific-research)
-->

# Hypothesis Arbiter
## Метод множественных рабочих гипотез + Сильная инференция

> **Философия:** Наука прогрессирует не через доказательство истинного, а через систематическое
> исключение ложного. Ценность цикла — количество убитых гипотез, а не накопленных подтверждений.
> — Chamberlin (1890), Platt (1964), Popper (1934)

---

## Контекст пользователя (применять к этим проектам)

| Проект | Когда применять hypothesis-arbiter |
|--------|-------------------------------------|
| **ARCHCODE** | Конкурирующие механизмы хроматиновых петель, альтернативные объяснения ClinVar вариантов |
| **Reflexio** | Конкурирующие гипотезы о причинах падения точности транскрипции |
| **CogniRouter** | Конкурирующие архитектуры маршрутизации (embedding, rules, hybrid) |
| **GeoMiro** | Конкурирующие объяснения спектральных аномалий в геоданных |
| **Любая отладка** | Конкурирующие причины бага (не угадывать, а систематически убивать) |

---

## Протокол (5 этапов, всегда в этом порядке)

### Этап 1 — SPAWN: Генерация конкурирующих гипотез

**Правила генерации:**
- Минимум **4 гипотезы**, максимум **6** (меньше — underfit, больше — неуправляемо)
- Обязательно включить гипотезу **"нет эффекта / нулевая гипотеза" (H₀)**
- Обязательно включить гипотезу **"механизм ещё неизвестен"** (если применимо)
- Запрещено: формулировки "возможно", "наверное". Только чёткие, фальсифицируемые утверждения
- Запрещено: дублирующиеся гипотезы, отличающиеся только деталями

**Формат таблицы гипотез:**
| ID | Гипотеза | Механизм | Логическое основание |
|----|----------|----------|---------------------|
| H₀ | [Нулевая] | — | Baseline: нет эффекта |
| H₁ | [Формулировка] | [Как работает] | [Почему правдоподобно] |
| H₂ | [Формулировка] | [Как работает] | [Почему правдоподобно] |
| ... | | | |

**Если пользователь уже дал гипотезы:**
→ Оцени полноту, добавь недостающие, убери дублирующиеся
→ Переходи сразу к Этапу 2

---

### Этап 2 — KILL-DESIGN: Проектирование kill-тестов

Для каждой гипотезы разработай **минимальный решающий тест** (crucial experiment).
Критерий минимальности: самый дешёвый по времени/ресурсам тест, дающий чистый сигнал.

**Формат:**
| ID | Kill-критерий | Минимальный тест | Ожидаемый результат если НЕВЕРНА |
|----|--------------|-----------------|----------------------------------|
| H₁ | [Что опровергает] | [Как проверить] | [Конкретный результат] |

**Приоритизация тестов:**
Если несколько тестов конкурируют за ресурсы → используй матрицу:
- `Информативность × (1/Стоимость)` — максимизируй

**Инструменты для kill-тестов (использовать если доступны):**
- `biorxiv MCP` → поиск статей опровергающих гипотезу
- `WebSearch` → поиск контр-эвиденса в literature
- `Bash` → вычислительная проверка (если есть код/данные)

---

### Этап 3 — IN-SILICO: Проверка на имеющихся данных

Проведи проверку каждой гипотезы по 5 суб-чекам. Без нового эксперимента.

**5 суб-чеков (проводить по порядку, пропускать только если нет данных):**
```
[L] Literature check    — поиск peer-reviewed статей / preprints (biorxiv MCP, WebSearch)
[D] Dataset check       — есть ли публичные данные, подтверждающие/опровергающие?
[M] Mechanistic check   — логически ли состоятелен механизм?
[S] Statistical check   — если есть числа: правдоподобны ли effect sizes, p-values?
[C] Contradiction check — поиск явных опровержений в литературе
```

Для каждого суб-чека: найти источник или пометить `SOURCE_NOT_FOUND`.

---

**Evidence grading — присваивать для каждой выжившей гипотезы:**

| Grade | Определение |
|-------|-------------|
| **A** | Прямое экспериментальное доказательство (RCT, контролируемый эксперимент) |
| **B** | Сильное наблюдательное / когортное доказательство (≥2 независимых источника) |
| **C** | Косвенная поддержка (механистически правдоподобно, 1 источник) |
| **D** | Только computational / in-silico evidence |
| **E** | Спекулятивная гипотеза — логически возможно, нет эмпирической базы |

---

**Confidence formula (вычислять по шагам, не угадывать):**

```
Step 1: База
  Confidence(Hᵢ) = 0.50

Step 2: Прибавить за поддерживающий эвиденс
  + 0.15 per supporting source (max +0.30 за ≥2 источника)

Step 3: Вычесть за контр-эвиденс
  − 0.20 per contradicting source

Step 4: Штрафы
  − 0.30 если kill-test не сформулирован (нефальсифицируемая гипотеза)
  − 0.10 per confounder из Этапа 4 (применяется после red-team)

Step 5: Жёсткие потолки (caps — обязательны, нельзя обходить)
  Evidence A required → max 0.90 без grade A
  Evidence B required → max 0.75 без ≥2 независимых источников
  Kill-test required  → max 0.60 без kill-test
  Strong alternative  → max 0.55 если есть конкурирующая гипотеза с Confidence > 0.60

Step 6: Clip в [0.00, 1.00]
```

**Статусы по итогу:**
- ✅ **ВЫЖИЛА** — Confidence ≥ 0.55, нет прямого опровержения
- ⚠️ **ПОД ВОПРОСОМ** — Confidence 0.40–0.54 или источник одиночный
- ❌ **УБИТА** — Confidence < 0.40 или найдено прямое опровержение (grade A/B)

**Формат результата:**
| ID | Статус | Evidence Grade | Confidence | Ключевой источник / контр-эвиденс |
|----|--------|---------------|-----------|-----------------------------------|
| H₀ | ✅/⚠️/❌ | A–E | 0.XX | [DOI / URL / SOURCE_NOT_FOUND] |

---

### Этап 4 — RED-TEAM: Атака выживших гипотез

Для каждой ✅ и ⚠️ гипотезы:

```
КОНФАУНДЕРЫ (3 штуки для каждой):
  1. [Альтернативный механизм, дающий тот же результат]
  2. [Систематическая ошибка в данных/методе]
  3. [Граничное условие, при котором гипотеза ломается]

АЛЬТЕРНАТИВНОЕ ОБЪЯСНЕНИЕ:
  Какая другая гипотеза из набора объясняет те же данные?

ПРОВЕРКА БРИТВЫ ОККАМА:
  Нарушает ли гипотеза принцип парсимонии? (да/нет + обоснование)
```

После red-team → обновить Confidence score (может понизиться).

---

### Этап 5 — ARBITRATE: Синтез и следующий цикл

**Итоговая таблица:**
| ID | Гипотеза | Статус | Final Confidence | Kill-test для следующего цикла |
|----|----------|--------|-----------------|-------------------------------|
| H₁ | ... | ✅ | 0.XX | [Что нужно проверить] |

**Синтез:**
1. Сколько гипотез выжило?
   - 0 → все ложны → нужна новая генерация (вызов /sci-hypothesis)
   - 1 → кандидат на принятие (временное!). Нужен ещё один цикл sub-гипотез
   - 2-3 → нужен crucial experiment, разделяющий их
   - 4+ → kill-тесты были слабые, нужно усилить

2. Требуется ли **комбинация** нескольких гипотез?
   (Как у Чемберлина для Великих озёр: речная эрозия + ледник + деформация коры)

3. **Решающий эксперимент** для следующего шага:
   ```
   CRUCIAL EXPERIMENT:
   Если провести [КОНКРЕТНЫЙ ТЕСТ] и получить [РЕЗУЛЬТАТ A]:
     → Подтверждает H₁, исключает H₂, H₃
   Если получить [РЕЗУЛЬТАТ B]:
     → Подтверждает H₂, исключает H₁
   Стоимость теста: [оценка времени/ресурсов]
   Рекомендация: [проводить немедленно / можно отложить]
   ```

4. **Sub-гипотезы** для следующего цикла:
   Если H₁ выжила → что именно в её механизме нужно уточнить?
   Выдвини 2-3 sub-гипотезы → рецикл с Этапа 2

---

## Режимы вызова

### `/hypothesis-arbiter` или `/hyparb` — полный цикл (все 5 этапов)
Запускать когда: нужен полный анализ конкурирующих объяснений

### `/hyparb spawn [тема]` — только Этап 1: генерация гипотез
Пример: `/hyparb spawn "почему снижается точность Reflexio после 20:00"`

### `/hyparb kill [гипотезы]` — только Этап 2: kill-test design
Когда гипотезы уже есть, нужны только тесты

### `/hyparb insilico` — только Этап 3: проверка на имеющихся данных
Когда kill-тесты уже спроектированы

### `/hyparb redteam [гипотезы]` — только Этап 4: атака выживших
Когда хочешь проверить конкретные выжившие гипотезы

### `/hyparb arbitrate` — только Этап 5: синтез
Когда данные собраны, нужно решение

### `/hyparb cycle` — следующая итерация с sub-гипотезами
Продолжает цикл от точки остановки

---

## Интеграция с экосистемой скилов

```
sci-hypothesis ──→ [hypothesis-arbiter] ──→ scientific-research
(нашёл нетривиальную)  (управляет набором)   (запускает проект)
                              ↑↑
                    skeptic (точечная атака на одну)
                    biorxiv MCP (поиск контр-эвиденса)
                    WebSearch (поиск литературы)
```

**Когда НЕ использовать:**
- Нужна одна нетривиальная гипотеза → `/sci-hypothesis`
- Нужно атаковать одну готовую идею → `/skeptic`
- Нужна методология целого исследовательского проекта → `/scientific-research`
- Нужен простой анализ проблемы → `/analyst`

---

## Протокол источников (обязателен на Этапе 3)

**Иерархия доверия:**
```
1. Peer-reviewed journals (PubMed, Nature, Science, Cell) → grade A или B
2. Preprints с рецензиями (bioRxiv, arXiv с review) → grade B или C
3. Preprints без рецензий → grade C максимум
4. Databases (ClinVar, UniProt, ENCODE, GEO) → grade B (если прямые данные)
5. Computational models / simulations → grade D
6. Expert opinion / review без данных → grade E
```

**Правила цитирования:**
- Каждое утверждение confidence > 0.60 → обязателен источник с DOI или URL
- Если источник не найден → пометить `SOURCE_NOT_FOUND` (не замалчивать)
- Запрещено: утверждение "известно, что..." без citation
- Запрещено: confidence > 0.75 без ≥2 независимых источников

**Инструменты для поиска (использовать в этом порядке):**
1. `biorxiv MCP` → биологические preprints
2. `WebSearch` → PubMed, Google Scholar, Semantic Scholar
3. `WebFetch` → прямой доступ к статье по DOI
4. `Bash` → локальные данные/датасеты если есть

---

## Антипаттерны (следить за этим)

| Сигнал | Диагноз | Действие |
|--------|---------|---------|
| "У меня одна хорошая гипотеза" | Ruling Theory trap (Chamberlin) | Выдвинуть ещё 3 конкурента обязательно |
| Confidence > 0.85 после 1 цикла | Confirmation bias | Запустить дополнительный red-team |
| "Эти данные подтверждают H₁" | Мыслишь подтверждением, не опровержением | Спросить: "Что опровергло бы H₁?" |
| Все гипотезы выжили (confidence ~0.5) | Kill-тесты слишком слабые | Усилить kill-criteria, добавить бремя доказательства |
| "Красивая" гипотеза без фальсификации | Нефальсифицируемая гипотеза | Автоматически -0.30 к confidence |
| Confidence > 0.75 без источников | Произвольная уверенность | Применить caps из формулы |
| "Известно, что..." без citation | Hallucination risk | Пометить SOURCE_NOT_FOUND, найти или признать gap |

---

## Шаблон состояния (сохранять в ~/.claude/memory/hypotheses_active.md)

```markdown
# Активный цикл гипотез

## Тема: [название]
## Цикл: [N]/∞
## Дата: [YYYY-MM-DD]

## Гипотезы
| ID | Статус | Confidence | Следующий тест |
|----|----|----|----|
| H₀ | ✅ | 0.50 | — |
| H₁ | ⚠️ | 0.55 | biorxiv поиск по [тема] |
| H₂ | ❌ | 0.00 | убита: [источник] |

## Решающий эксперимент
[описание]

## Sub-гипотезы для следующего цикла
[список]
```

---

## Связанные скилы

- `/sci-hypothesis` — генерация нетривиальных гипотез для набора
- `/skeptic` — точечная атака на одну гипотезу
- `/scientific-research` — методология исследовательского проекта
- `/analyst` — MECE / Bayesian / First Principles анализ проблемы
- `/research-scout` — поиск статей для in-silico проверки
