Когда не знаешь почему что-то происходит — выдвигает 4-6 конкурирующих объяснений и систематически убивает ложные через kill-тесты и confidence scores. Метод Chamberlin + Platt: вместо угадывания одного ответа — параллельная проверка всех. Для ARCHCODE (механизмы генома), отладки сложных багов, любого research-вопроса. НЕ для: одной гипотезы (→ /sci-hypothesis), атаки одной идеи (→ /skeptic). Triggers: /hyparb, /strong-inference, конкурирующие гипотезы, kill-test, почему это происходит.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add sergeeey/Claude-cod-top-2026 --skill hypothesis-arbiter --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Hypothesis Arbiter?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/sergeeey-hypothesis-arbiter)More formats (shields.io, HTML) on the badges page.
---
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: ~2350 # measured: 2337 words / 26069 bytes, 2026-07-28. Same-day history: an 8-class
# taxonomy briefly added to Этап 1 was REVERTED after
# experiments/20260728-hypothesis-arbiter-taxonomy-pilot/decision.md (filed in
# parked/, not null_results/ -- see FL Rescue Layer) found its pre-registered
# MCID not met on n=1. Separately, Этап 4's Oracle Adequacy Gate was corrected
# to point at the pre-existing canonical `docs/oracle-adequacy-gate.md`
# (2026-06-30, PR #149/#153) instead of duplicating its checklist -- an
# external review caught the duplication before it reached main.
---
<!-- 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` → вычислительная проверка (если есть код/данные)
**Outcome map — зафиксировать ДО запуска теста (обязательно, не после):**
Для решающего теста распиши explicit: какой результат убивает какую гипотезу И что
конкретно делаем дальше при ЭТОМ КОНКРЕТНОМ исходе (не путать с Этапом 5, где действие
привязано к агрегатному числу выживших после ВСЕХ тестов цикла — здесь действие привязано
к одному конкретному результату одного конкретного теста, до того как он получен). Писать
это *после* получения результата — рационализация задним числом, а не предсказание.
```
Если результат = [A] → убивает: [H_i, H_j], усиливает: [H_k],
next action: [конкретный шаг — какой тест/анализ дальше, а не "проанализировать результаты"]
Если результат = [B] → убивает: [H_k], усиливает: [H_i],
next action: [конкретный шаг]
Если результат = [substrate-fail] → НЕ убивает НИЧЕГО, статус = BLOCKED-INFRASTRUCTURE,
next action: почини substrate, повтори ЭТОТ ЖЕ тест — не переходи к следующему пункту
```
**Anti-pattern:** `next action` вида "проанализировать результаты" / "посмотреть что получилось" —
это отсутствие action, замаскированное под action. Требуется имя следующего теста, следующего
источника поиска, или явное решение остановиться — то, что можно начать делать без дополнительного
раздумья сразу после получения этого конкретного результата.
**Substrate check (перед тем как считать результат опровержением):** тест физически смог
выполниться честно (данные доступны, инструмент не сломан, нет искажения от самой проверки)?
«Тест не смог выполниться» ≠ «гипотеза опровергнута» — если substrate сломан, это НЕ evidence
против любой гипотезы, повтори тест после починки substrate, не записывай ❌.
---
### Этап 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. [Граничное условие, при котором гипотеза ломается]
АЛЬТЕРНАТИВНОЕ ОБЪЯСНЕНИЕ:
Какая другая гипотеза из набора объясняет те же данные?
ПРОВЕРКА БРИТВЫ ОККАМА:
Нарушает ли гипотеза принцип парсимонии? (да/нет + обоснование)
```
**Oracle Adequacy Gate (обязательно для гипотезы с Confidence ≥ 0.60, исправлено 2026-07-28 —
это уже существующий канонический механизм, `docs/oracle-adequacy-gate.md` от 2026-06-30,
компонент 2 Oracle-Aware Core в `/evolve-solution`; здесь раньше дублировался его список
вопросов вместо ссылки на него):** прежде чем доверять вердикту red-team, проверь сам механизм
проверки, не только гипотезу — прогони `docs/oracle-adequacy-gate.md` (5 проверок: Gameable? /
Real vs theater? / Negative control? / Reproducible? / Measures the intent?) → ADEQUATE /
WEAK / INADEQUATE.
**Добавка специфичная для hypothesis-arbiter (не покрыта каноническим гейтом):**
| Вопрос | Если ответ "нет"/"неизвестно" |
|---|---|
| Independent от generator (context asymmetry)? | Делегируй `/skeptic` с **только** claim + evidence, без цепочки рассуждений этого цикла |
| Ловит намеренно внесённую ошибку? | Внести известную ошибку в тестовые данные, проверить, что evaluator её находит |
| Не использует те же данные, на которых сформулирована гипотеза (no data leakage)? | Отметить и исключить перекрывающиеся источники |
INADEQUATE (канонический гейт) ИЛИ провал добавки → статус гипотезы `ORACLE_INADEQUATE`,
отдельно от ✅/⚠️/❌: результат теста не засчитывается ни за, ни против гипотезы, пока
evaluator не почищен.
После red-team → обновить Confidence score (может понизиться).
---
### Этап 5 — ARBITRATE: Синтез и следующий цикл
**Итоговая таблица:**
| ID | Гипотеза | Статус | Final Confidence | Kill-test для следующего цикла |
|----|----------|--------|-----------------|-------------------------------|
| H₁ | ... | ✅ | 0.XX | [Что нужно проверить] |
**Формулировка вердикта (Duhem–Quine qualifier, обязательна для статуса ❌):**
Ни один kill-тест не опровергает гипотезу изолированно — он опровергает конъюнкцию
`H ∧ (измерительный аппарат) ∧ (препроцессинг) ∧ (вспомогательные допущения)`. Пиши:
> «H₁ **несовместима** с результатом R **при допущениях** A1–An **и substrate** S1»
Никогда голое «H₁ опровергнута» — это не педантизм, это то, что позволяет позже спасти H₁,
оспорив вспомогательное допущение, а не сам механизм.
**Синтез:**
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 (поиск литературы)
```
**Противопоказания (routing на альтернативу, не просто "не сюда"):**
| Условие | Почему | Вместо этого |
|---|---|---|
| Точный детерминированный lookup ("что делает флаг X?") | нечего дискриминировать | `Grep` / чтение кода |
| Только один механически возможный путь | нет конкуренции | `/sci-hypothesis` (одна гипотеза) |
| Нет наблюдаемого исхода, различающего кандидатов | тест не может быть решающим → циркулярность | сначала собрать данные; `/estimand-bridge` |
| Спор про внутреннюю валидность ОДНОЙ идеи | не конкурирующие механизмы | `/skeptic` / `/claim-decomposer` |
| Чисто описательный/предиктивный вопрос | неверный класс estimand (см. EstimandOps L0) | `/analyst` / `/data-analysis` |
| Нужна методология целого исследовательского проекта | другой масштаб | `/scientific-research` |
---
## Протокол источников (обязателен на Этапе 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 |
| Все H₁-H₄ умирают от ОДНОГО и того же теста по ОДНОЙ и той же причине | Correlated candidates — гипотезы делят скрытое допущение, не механизм | Пересформулируй Этап 1: каждая H должна называть ДРУГОЙ причинный путь |
| Outcome map написан ПОСЛЕ того как увидел результат теста | Post-hoc rationalization, не предсказание | Отменить тест как решающий; повторить с outcome map, зафиксированным ДО |
---
## Шаблон состояния (сохранять в ~/.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` — точечная атака на одну гипотезу (обязателен для oracle-независимости, Этап 4)
- `/scientific-research` — методология исследовательского проекта
- `/analyst` — MECE / Bayesian / First Principles анализ проблемы
- `/research-scout` — поиск статей для in-silico проверки
- `/boyko-scientific-consortium` — консорциум-обёртка, делегирует сюда арбитраж конкурирующих гипотез
- `/construct-measurement-gate` — вызывает как downstream adjudication layer для Step 10 (финальное решение о влиянии measurement uncertainty на вывод)
- `/negative-space-miner` — вызывает, если Этап 4 (Repair Hypotheses) даёт >1 survivor-гипотезу, для ACH/kill-test дискриминации между ними
## Полный контракт (deep-spec, читать при необходимости)
`references/strong-inference-contract.md` — полная спецификация метода: provenance
(Platt 1964, Chamberlin 1890), applicability, каталог adversarial failure modes,
oracle design в деталях, benchmark-методология. Этот SKILL.md — runtime-протокол
(что делать); reference — почему это работает и как это ломается. Читать reference
при: споре о корректности метода, проектировании benchmark, обучении новых hypotheses
разработчиков.
`references/ach_matrix.md` — шаблон prediction-matrix (Heuer 1999 ACH) для Этапа 1-2,
когда одновременно живы ≥3 гипотезы и нужна явная hypotheses × evidence таблица
вместо построчных kill-тестов.
**Кто вызывает этот скил** (по `depends_on` в `skills/registry.yaml`):
- `/hd-mavp-router` — маршрутизирует сюда сложные аудиты (run_mode)
- `/boyko-why-ladder` — вызывает при обрыве why-цепочки на конкурирующих объяснениях
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!