Строит гипотезу из ОПУБЛИКОВАННЫХ провалов, а не подтверждений: null results, failed replications, противоречащие исследования, эффекты, исчезающие при смене условий. Не атакует уже готовую гипотезу (это /sci-evidence falsify) и не работает с ОСТАТКАМИ своей собственной модели (это narrow-discovery-engines Engine 1/4) — ищет сигнал во внешней литературе неудач, кластеризует конфликты по типу, строит Repair Hypothesis, которая объясняет ОДНОВременно почему эффект иногда есть и почему иногда ис...
Scanned 9/2/2026
Install to Claude Code
npx -y skills add sergeeey/Claude-cod-top-2026 --skill negative-space-miner --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Negative Space Miner?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/sergeeey-negative-space-miner)More formats (shields.io, HTML) on the badges page.
---
name: negative-space-miner
description: >
Строит гипотезу из ОПУБЛИКОВАННЫХ провалов, а не подтверждений: null results,
failed replications, противоречащие исследования, эффекты, исчезающие при
смене условий. Не атакует уже готовую гипотезу (это /sci-evidence falsify) и
не работает с ОСТАТКАМИ своей собственной модели (это narrow-discovery-engines
Engine 1/4) — ищет сигнал во внешней литературе неудач, кластеризует конфликты
по типу, строит Repair Hypothesis, которая объясняет ОДНОВременно почему
эффект иногда есть и почему иногда исчезает.
Triggers: /negative-space-miner, /negative-space, зона молчания, null results,
failed replications, почему это не сработало, провалившиеся эксперименты,
противоречащие исследования, boundary conditions, negative-space hypothesis,
что скрывает file drawer problem.
[STATUS: described] [CONFIDENCE: n=1, 2026-08-30 — реальный прогон на ego
depletion / strength model of self-control (Baumeister 1998), с реальным
WebSearch (не по памяти): нашёл RRR 2016 null result, bias-corrected
meta-анализ, критику глюкозного механизма (Kurzban 2013) и хрупкий
moderator (Job/Dweck/Walton 2010 + его собственная 2023 реплика). Все 9
этапов отработали, ACH-матрица (Этап 7) реально нашла дешёвый
дискриминирующий тест. Прогон нашёл 2 доработки, обе применены: (1) "макс 5
гипотез" не означает "минимум 5" — явно разрешено меньше; (2) Novelty Check
без делегирования `/novelty-assessment` не может подниматься выше `closely
related`. Второй прогон (2026-08-30, microbiome/obesity causal claim, тоже
реальный WebSearch) дал репаир-гипотезу, которую НЕЗАВИСИМЫЙ skeptic-агент
(context-asymmetric, только claim+evidence) оценил как WEAKENED, на грани
FALSIFIED-AS-STATED: пересказ существующего caveat, а не синтез, и
unfalsifiable-by-confounder-appeal. Это НЕ провал скилла — это найденный им
же самим (через собственный процесс) реальный сбой исполнения на Этапах 3-4
и 6, приведший к 2 новым gate'ам: Ruling Theory Trap gate (Этап 3, не
останавливаться на первом правдоподобном кандидате без явного отклонения
остальных) и Rescue-unfalsifiability check (Этап 4, Duhem-Quine оговорка не
должна покрывать ЛЮБОЙ мыслимый негативный результат). Честный итог: метод
реально работает на объектах с несколькими конкурирующими объяснениями
(ego depletion), но давал слабый результат на объекте с одним консенсусным
объяснением в поле — само по себе полезная граница применимости, найденная
адверсариальной проверкой, а не самооценкой. Тот же microbiome-объект
прогнан ПОВТОРНО с обоими новыми гейтами (третий реальный прогон,
2026-08-30) — второй независимый skeptic-аудит нашёл РЕАЛЬНОЕ улучшение
(3 из 5 гипотез — NEEDS-REAL-DATA с конкретными, в основном tight
falsifiers, вместо WEAKENED/FALSIFIED у всех), но и НОВУЮ находку на уровень
выше: Ruling Theory Trap воспроизвёлся в списке КАНДИДАТОВ (generic
чек-лист Этапа 3 сам не domain-complete — пропустил publication bias в
ПОЛОЖИТЕЛЬНОЙ мышиной литературе, провалившиеся человеческие FMT-испытания,
host-genotype взаимодействие), и рекомендованный "самый дешёвый тест"
оказался НЕ дискриминирующим (одинаковый ожидаемый результат под 2 разными
гипотезами — нарушение собственного правила ach_matrix.md, прочитанного, но
не применённого построчно). Добавлены Exhaustion Completeness check (Этап 3,
делегирует narrow-discovery-engines Engine 4) и Full-row diagnosticity check
(Этап 7). Третий, независимый объект — minimum wage/employment (Card-Krueger
1994 vs Neumark-Wascher 1996) — дал ТРЕТИЙ skeptic-вердикт хуже двух первых:
"worse than a competent economist reading a review for 20 minutes". Причина
— новый, ещё более тонкий класс сбоя: generic-чек-лист Этапа 1/3 находит
КОНФЛИКТУЮЩИЕ РЕЗУЛЬТАТЫ, но не находит то, что само поле называет причиной
разногласия (выбор дизайна идентификации — border-pairs vs synthetic
control — не "источник данных", как я предположил без явного поиска именно
методологического спора); плюс H2 использовала необнаруженный
unfalsifiable threshold-механизм ("эффект есть до определённого порога", без
числа), и Full-row check не поймал confound самой переменной стратификации
(концентрация рынка коррелирует со скрытым фактором ДРУГОЙ гипотезы).
Добавлены ещё 3 gate'а: обязательный поиск "методологический спор поля"
как отдельная категория в Этапе 1 (не покрывается поиском null result),
numeric-threshold requirement для механизмов "до порога" (Этап 4), и
Stratifier-confound check (Этап 7, отдельно от Full-row check — та же
проблема класса "выглядело диагностичным, не было", но на уровне причины
предсказания, не самого предсказания). ЭТО ТРЕТИЙ ЦИКЛ "прогон → skeptic →
фикс" подряд без чистого LGTM — по Evaluator-Optimizer Guard из CLAUDE.md
здесь остановлена автономная итерация, эскалировано пользователю вместо
тихого 4-го цикла на новом объекте. Паттерн по трём объектам: метод
надёжен на объектах со СТАНДАРТНЫМИ типами конфликта (измерение,
confounding, reverse causation — ego depletion, частично microbiome), но
систематически слаб там, где ключевой спор поля — это выбор МЕТОДА/дизайна
идентификации, а не биологический/поведенческий механизм (современная
причинная эконометрика). Это картированная, не гипотетическая граница.
Собран 2026-08-30 по итогам сравнения внешнего промпта "ЗОНА
МОЛЧАНИЯ" с каталогом: закрывает единственный из трёх выявленных пробелов,
для которого не нашлось существующего скилла (в отличие от Outcome
Interpretation → hypothesis-arbiter и Assumption Taxonomy →
narrow-discovery-engines, обе добавлены как патчи, не новые скиллы).]
НЕ для: атаки гипотезы, которой уже доверяешь (→ /sci-evidence falsify),
работы с остатками СВОЕЙ модели или СВОИМИ null_results (→
narrow-discovery-engines Engine 1/4, /research-audit), выбора между уже
сформулированными конкурирующими гипотезами (→ /hypothesis-arbiter),
генерации гипотез с нуля без опоры на провалы (→ /cross-domain,
narrow-discovery-engines Engine 2).
effort: high
tokens: ~1600
triggers: [/negative-space-miner, /negative-space, "зона молчания", "null results", "failed replications", "почему это не сработало", "провалившиеся эксперименты", "противоречащие исследования", "boundary conditions", "negative-space hypothesis"]
---
<!-- BSV — Brief Skill View | поиск: BSV
Скил : negative-space-miner
TL;DR : Опубликованные провалы (null/failed replication/contradiction) → карта конфликтов → кластер → Repair Hypothesis, объясняющая и успех, и провал
Вызов : /negative-space-miner, зона молчания, null results, failed replications
НЕ для : Атаки готовой гипотезы (→ /sci-evidence falsify), своих null_results (→ narrow-discovery-engines Engine 4), выбора между готовыми H (→ /hypothesis-arbiter)
Выход : Baseline теории → карта конфликтов → кластер провалов → Repair Hypotheses (макс 5) → attack → решающий тест → novelty check
-->
# negative-space-miner — гипотезы из опубликованных провалов
## Роль
Data-детектив, который ищет сигнал не там, где его ищут по умолчанию. Обычный
research-промпт спрашивает "что подтверждает гипотезу?". Этот скилл спрашивает
обратное: что из опубликованного НЕ сработало, и какая скрытая структура
объясняет одновременно успехи и провалы?
Мотивация (file drawer problem): отрицательные результаты систематически
недопредставлены в литературе — значит, они содержат сигнал, который никто не
собрал в одну картину, просто потому что каждый провал живёт в отдельной
статье, а не в общем реестре.
## HARD RULES
1. **Источник — внешняя литература, не выдумка.** Null results/failed
replications ищутся через WebSearch/литературные MCP. Ненайденный результат
помечается `SOURCE_NOT_FOUND`, не придумывается для полноты картины.
2. **Проверить СВОИ провалы первым, дёшево.** Прежде чем искать во внешней
литературе — `grep` по `null_results/INDEX.md` и `parked/INDEX.md` текущего
проекта (если это research-проект). Если тема уже там — прочитать
decision.md, не начинать поиск с нуля. Это разграничение с
`narrow-discovery-engines` Engine 4 (Exhaustion Mapping): Engine 4 работает
с УЖЕ известными нам null-результатами этого проекта, этот скилл — с
внешними, ещё не собранными в одну карту.
3. **EstimandOps L0 обязателен для итоговой Repair Hypothesis** — как и для
любой гипотезы в этом каталоге (`rules/estimand-ops.md`): классифицировать
descriptive/predictive/causal, прежде чем формулировать финал.
**Конкретная цена пропуска (найдено 2026-08-31, E-G геномика): гипотеза,
протестированная чисто предсказательным тестом (AUC), была сформулирована
словами "carries real signal", "interaction", "effect" — то есть неявно
выдавала причинную интерпретацию (физический контакт хроматина причинно
опосредует регуляцию), не подкреплённую ни DAG, ни проверкой 4
identifiability-допущений. Независимый делегированный skeptic поймал это
как отдельную находку, не как часть формального вердикта — L0 классификация
должна была отловить это ДО финализации, не постфактум чужой атакой.**
4. **Duhem-Quine qualifier при формулировке репаир-гипотезы** (заимствовано из
`hypothesis-arbiter`): repair-гипотеза объясняет конъюнкцию `наблюдение ∧
измерительный аппарат ∧ препроцессинг ∧ вспомогательные допущения`
КАЖДОГО источника в карте конфликтов — не сам эффект в вакууме. Явно
писать, при каких допущениях каждого исследования гипотеза работает.
5. **Novelty check обязателен перед выдачей финала** — не называть гипотезу
новой только потому, что она сформулирована здесь. Делегировать
`/novelty-assessment` или минимум 3 раунда поиска инлайн.
6. **Каждый вывод — evidence marker** (`[VERIFIED-REAL]` для найденного
источника с URL/DOI, `[INFERRED]` для вывода из подтверждённых фактов,
`[UNKNOWN]` для непроверенного).
## Этап -1 — Фильтр темы (до всякой работы)
Прежде чем запускать Этап 0 — один явный вопрос (найдено 2026-08-31 при
взгляде на всю историю прогонов сразу, не одним прогоном): существует ли
уже АГРЕГИРОВАННАЯ карта провалов по этой теме — registered replication
report (RRR), мета-анализ нулей, названный методологический спор поля?
Если да — основная ценность этого скилла (свести рассеянные по разным
статьям провалы в одну карту) уже создана другими; на выходе в лучшем
случае будет пересказ существующего caveat, не синтез (ровно это дал
2026-08-30 второй прогон на microbiome/obesity — независимый skeptic
назвал результат пересказом существующей оговорки). Не отклонять тему
автоматически, но явно понизить ожидание в Финальном выводе: результат не
может претендовать на новую структуру, только на подтверждение уже
известной.
Признак хорошей темы для этого скилла — обратный: провалы существуют, но
каждый живёт в отдельной статье, и никто их не свёл в реестр (file drawer
problem в буквальном виде, не знаменитая публичная контроверза). Все три
реальных объекта этого скилла на сегодня (ego depletion, microbiome/obesity,
minimum wage) были со стороны уже агрегированной карты — это и объясняет,
почему метод там давал устойчиво более слабые независимые вердикты, чем на
теме без готовой карты.
## Этап 0 — Baseline
Зафиксировать явно, до поиска провалов:
1. Доминирующая теория/объяснение.
2. Предполагаемый механизм.
3. Ключевые ПОДТВЕРЖДАЮЩИЕ наблюдения (то, что обычно приводят как доказательство).
4. Переменные, которые теория считает существенными.
5. Что теория ДОЛЖНА предсказывать, если верна.
## Этап 1 — Поиск негативного пространства
Отдельные (не объединённые через OR) запросы:
- `"[тема]" null result`
- `"[тема]" failed replication`
- `"[тема]" contradictory evidence`
- `"[тема]" no effect`
- `"[тема]" negative result`
- `"[тема]" replication` (без failed — иногда репликация просто слабее оригинала)
- `"[тема]" boundary conditions`
- `"[тема]" criticism`
- `"[тема]" unexpected result`
**Отдельная обязательная категория — методологический спор самого поля**
(найдено при третьем реальном прогоне, 2026-08-30 — minimum wage/employment:
все выше запросы нашли КОНФЛИКТУЮЩИЕ РЕЗУЛЬТАТЫ (Card-Krueger vs
Neumark-Wascher), но ни один не вывел на то, что поле само называет ПРИЧИНОЙ
разногласия — выбор дизайна идентификации (border-pairs vs synthetic control),
а не "источник данных", как я ошибочно предположил без этого поиска;
независимый skeptic-аудит: "a labor economist would name at least [this]
immediately"). В методологически изощрённых областях (причинный вывод,
эконометрика, клинические испытания с конкурирующими дизайнами) конфликт
результатов и спор о МЕТОДЕ — разные вещи, и вторую generic-запросы не ловят:
- `"[тема]" methodological debate` / `"[тема]" методологический спор`
- `"[тема]" identification strategy debate` (для причинных claims)
- `"[тема]" what researchers disagree about` / `"[тема]" ongoing controversy`
Если это возвращает называемый по имени методологический спор (не просто
"есть разногласия", а конкретный назван выбор дизайна/метода) — этот спор
ПЕРВИЧЕН для Этапа 2/3, конфликты из основных запросов выше интерпретируются
через его призму, не параллельно с ним.
Отсутствие публикации по запросу — не доказательство отсутствия эффекта
(file drawer problem работает и здесь, рекурсивно). Помечать `SOURCE_NOT_FOUND`,
не интерпретировать как "эффект точно есть".
## Этап 2 — Карта конфликтов
Таблица на каждый значимый результат:
| Источник | Год | Размер эффекта | Что ожидалось | Что произошло | Метод | Выборка/система | Условия | Возможное объяснение |
|---|---|---|---|---|---|---|---|---|
`Год` и `Размер эффекта` добавлены 2026-08-31 — карта конфликтов до этого
фиксировала метод и условия, но не время и величину, а самый диагностичный
сигнал негативного пространства — decline effect (систематическое затухание
величины эффекта от оригинала к репликациям) — количественный и агрегируемый
именно по этим двум колонкам. Он различает "эффект контекстно-зависим" от
"эффект был артефактом отбора/publication bias" — то, что качественная
кластеризация по методу/условиям одна не различает. Если размер эффекта
неизвестен по источнику — `<unknown>`, не оценивать на глаз.
Классификация конфликта (ровно одна метка на строку, не смешивать):
`methodological` | `measurement` | `population-specific` | `temporal` |
`scale-dependent` | `context-dependent` | `model-dependent` | `causal` | `unexplained`
## Этап 3 — Структура провалов
Не рассматривать отрицательные результаты по одному. Кластеризовать по общей
метке конфликта или по общему условию проведения. Для каждого кластера:
> Какая скрытая переменная могла бы ОДНОВРЕМЕННО объяснить несколько провалов
> в этом кластере?
Кандидаты (проверять по порядку, не исчерпывающий список): масштаб, время,
стадия процесса, скрытая гетерогенность выборки, пороговый эффект,
нелинейность, взаимодействие переменных, обратная причинность, selection
effects, measurement error, feedback loop, adaptation, environmental regime,
**decline effect** (добавлено 2026-08-31 — отдельный от общего "время"
кандидат: систематическое падение `Размер эффекта` из Этапа 2 по мере роста
`Год`/порядка публикации, не просто "эффект со временем меняется". Проверка
— регрессия/визуальный тренд размера эффекта по году; если тренд
монотонно убывающий и начинается с самого сильного оригинального
исследования — сильный кандидат на winner's curse/publication-bias
происхождение, а не на подлинную context-dependence).
Кластер без общей переменной — не структура, а шум. Не форсировать гипотезу
на кластер, который её не даёт (симметрично HARD RULE 5 из `boyko-leverage-map`
про паттерны — здесь та же дисциплина применена к провалам, не к успехам).
**Ruling Theory Trap gate (найдено при втором реальном прогоне, 2026-08-30 —
microbiome/obesity: остановился на "diet confounding" как единственном
кандидате, хотя список выше явно содержал ещё как минимум 2 равноправных
кандидата — measurement error и, отдельно, экстремальность/нерепрезентативность
самой модели; независимый skeptic-аудит поймал это как произвольный выбор из
меню, не обоснованный отбор). Перед тем как перейти к Этапу 4 с одним
кандидатом на скрытую переменную — явно пройтись по ВСЕМ пунктам списка выше
и для каждого НЕ выбранного написать одну фразу, почему он хуже объясняет
именно ЭТОТ кластер (не "не подумал о нём", а "рассмотрел и отклонил, потому
что..."). Если ≥2 кандидата одинаково хорошо объясняют один и тот же кластер —
оба идут в Этап 4 как отдельные H_N, не сливаются в один по принципу "первый
показавшийся правдоподобным". То же самое HARD RULE 3 из `hypothesis-arbiter`
("У меня одна хорошая гипотеза" → Ruling Theory trap → обязательно выдвинуть
конкурентов), применённое здесь к скрытым переменным кластера, а не к
готовым гипотезам.
**Exhaustion Completeness check (найдено при ТРЕТЬЕМ реальном прогоне,
2026-08-30, тот же microbiome-объект после первого фикса — независимый
skeptic поймал Ruling Theory Trap на уровень ВЫШЕ: 5 гипотез структурно
разнообразны, но сам generic-список кандидатов выше НЕ domain-complete — не
покрывает publication bias в положительной литературе — в отличие от Этапа 2,
которая уже проверяет негативное пространство, но не спрашивает "не раздут ли
сам ПОЛОЖИТЕЛЬНЫЙ полюс той же публикационной необъективностью" — не
покрывает провалившиеся человеческие интервенции того же типа что оригинальный
positive-результат, штаммовые/видовые различия, winner's curse конкретно для
оригинального foundational-исследования). Механический проход по generic-
списку выше НЕОБХОДИМ, но НЕ ДОСТАТОЧЕН. После него — один явный вопрос,
позаимствованный из `narrow-discovery-engines` Engine 4 (Exhaustion Mapping),
не переизобретённый здесь:
> Считая retained-кандидатов (H1..H_N) вместе — они правдоподобно ИСЧЕРПЫВАЮТ
> пространство объяснений для ЭТОГО конкретного кластера, или это просто
> список того, что подсказал generic-чек-лист, а не то, что специфично для
> ЭТОГО домена?
Если есть основания подозревать домен-специфичный кандидат вне generic-списка
(например: сам оригинальный положительный результат мог быть раздут тем же
publication bias, что и в Кластере A негативного пространства — симметрия,
которую стоит проверить явно) — искать его отдельным WebSearch-запросом,
прежде чем закрывать Этап 3. Не гарантирует полноты (Popperian regress —
всегда можно найти ещё один уровень), но останавливает механическое закрытие
после первого прохода generic-списка.
## Этап 4 — Repair Hypotheses
Максимум 5, **не минимум** — если карта конфликтов честно даёт 2-3 сильные
гипотезы, а не 5, не растягивать список ради формата (HARD RULE 3). Меньше
гипотез, каждая с реальным Duhem-Quine обоснованием, лучше пяти, из которых
две — вариации одной и той же идеи. **Но "меньше" должно быть результатом
Ruling Theory Trap gate выше, а не пропуском проверки остальных кандидатов —
разница между "честно нашёл только 1" и "остановился на первом
правдоподобном" реальна и её ловит только эта проверка.** Каждая обязана
объяснять ТРИ вещи одновременно:
1. Почему положительные результаты иногда возникают.
2. Почему отрицательные результаты также возникают.
3. Какое конкретное условие переключает систему между ними.
```
### Гипотеза H_N
**Механизм:** ...
**Положительные результаты, которые объясняет:** [источники из Этапа 2]
**Отрицательные результаты, которые объясняет:** [источники из Этапа 2]
**Переключающая переменная (boundary condition):** ...
**Duhem-Quine оговорка:** H_N совместима с [источник A] при допущениях
[измерительный аппарат/препроцессинг этого источника] — если эти допущения
сами под вопросом, H_N не проверена ЭТИМ источником, а не автоматически верна.
```
**Rescue-unfalsifiability check (найдено при втором реальном прогоне,
2026-08-30 — microbiome/obesity: Duhem-Quine оговорка "человеческие
исследования недостаточно проконтролировали диету" покрывала БУКВАЛЬНО ЛЮБОЙ
будущий null-результат — независимый skeptic-аудит верно назвал это
"unfalsifiability-by-confounder-appeal", а не легитимной оговоркой). Для
каждой написанной Duhem-Quine оговорки — задать явный вопрос:
> Покрывает ли это допущение (при котором H_N "не опровергнута" источником)
> ЛЮБОЙ возможный отрицательный результат, или только некоторые?
Если ЛЮБОЙ (нет мыслимого негативного результата, который допущение не может
объяснить задним числом) — H_N нарушает правило Этапа 6 про нефальсифицируемость
ПРЯМО СЕЙЧАС, на этапе формулировки, не только при атаке. Два легитимных
выхода: (а) заранее, ДО следующего теста, указать конкретный порог
"достаточного контроля" (что именно должно быть измерено/зафиксировано, чтобы
допущение считалось закрытым — тот же принцип, что Outcome map в
`hypothesis-arbiter`), или (б) понизить H_N до статуса "одна из нескольких
конкурирующих гипотез, не установленная", а не выдавать её финальным ответом.
**Количественный порог обязателен, не только качественная проверяемость
(найдено 2026-08-31, первый реальный прогон с делегированной атакой —
E-G геномика: обе Repair Hypotheses прошли формальную Rescue-unfalsifiability
check — их оговорки были технически фальсифицируемы — но независимый
делегированный skeptic поймал, что КАЖДАЯ оговорка содержала невыраженный
числом эскейп: H1's "стратифицированный ре-тест на подвыборке" не фиксировал
заранее минимальный n/мощность — при нулевом результате на маленькой
подвыборке защитник гипотезы предсказуемо скажет "недостаточно данных", не
формально нарушая оговорку, но и не подвергая её реальному риску; H2's "малая
доля" не имела числового порога — после реального подсчёта появится соблазн
сдвинуть, что считать "малым", задним числом). Формальная проверка "существует
ли мыслимый негативный результат" — необходима, но НЕ достаточна: она ловит
абсолютную нефальсифицируемость (оговорка покрывает ЛЮБОЙ исход), но не ловит
частичную — оговорку, которая технически фальсифицируема, но её порог
установлен настолько расплывчато, что его можно молча подвинуть после того,
как результат уже известен. Перед тем как считать Rescue-unfalsifiability
check пройденной — для каждой оговорки, ссылающейся на "достаточно",
"малая доля", "хорошо обеспеченная мощностью" и подобные качественные
пороги: зафиксировать КОНКРЕТНОЕ число (минимальный n, процентный порог,
ширина доверительного интервала) ДО того, как результат теста станет
известен. Оговорка без зафиксированного числа остаётся в статусе
"формально фальсифицируема, практически подвижна" — не считается закрытой.**
**Numeric-threshold requirement для механизмов с порогом (найдено при третьем
реальном прогоне, 2026-08-30 — minimum wage: H2 использовала механизм
"эффект есть до определённого порога X", falsifier был "результат ниже
теоретического порога" — сам Rescue check был формально применён, но не
поймал, что "порог" не операционализирован числом, поэтому ЛЮБОЙ негативный
результат можно списать на "порог на самом деле выше/ниже, чем думали";
skeptic верно назвал это "effectively unfalsifiable" несмотря на formally
existing falsifier). Если механизм H_N включает слова "до порога", "выше
определённого уровня", "при достаточной силе X" — вариант (а) выше НЕ
считается выполненным, пока порог не указан как конкретное число или как
независимо измеримая величина (индекс, единица измерения) — "теоретический
порог" без числа это то же самое, что "недостаточный контроль" без критерия:
рескьюит любой результат под видом строгости.
## Этап 5 — Неожиданное предсказание
Для каждой гипотезы — минимум одно наблюдение, которое:
- не пересказывает уже собранные данные;
- маловероятно при стандартной теории;
- ожидается именно при этой repair-гипотезе.
Формат: *"Если H_N верна, то при условиях X должно наблюдаться Y, тогда как
стандартная модель скорее предсказывает Z."*
## Этап 6 — Attack
Для каждой гипотезы: сильнейший контраргумент, альтернативное объяснение,
критическое допущение, наблюдение-опровержение, самый опасный confounder.
Гипотеза, совместимая с ЛЮБЫМ возможным результатом — нефальсифицируема,
отклонить (HARD RULE о запрете нефальсифицируемости, общая для всего каталога).
**Делегирование обязательно, потолок вердикта без делегирования (найдено
2026-08-31 — кросс-прогонный аудит всей истории файла сразу, не одним
прогоном): все пять доработок этого файла на сегодня (Ruling Theory Trap,
Rescue-unfalsifiability, Numeric-threshold, Full-row diagnosticity,
Stratifier-confound) найдены независимым skeptic-агентом ПОСЛЕ прогона —
ни одну не поймал именно этот Этап, хотя он для этого и предназначен: счёт
5 из 5 снаружи, 0 из 5 отсюда. Причина — agreeableness bias: тот же контекст,
который построил Repair Hypothesis (карта конфликтов, отклонённые кандидаты,
почему выбрана именно эта переключающая переменная), атакует её же и
склонен соглашаться со своим же построением. Этап 8 ниже уже решает ту же
проблему для Novelty Check через делегирование `/novelty-assessment` — этот
Этап исторически ссылался на тот же принцип прозой, но не применял его к
себе.**
Если Attack выполнен инлайн, той же сессией, что сформулировала гипотезу —
итоговый статус в Финальном выводе не может подниматься выше `survived weak
attack`, не `survived`. Статус `survived` требует делегированной атаки:
`Agent(skeptic, ...)`, которому передаётся ТОЛЬКО Repair Hypothesis (Этап 4)
+ её Duhem-Quine оговорка + список источников, которые она объясняет — БЕЗ
карты конфликтов целиком, БЕЗ отклонённых на Этапе 3 кандидатов и БЕЗ
рассуждения о том, почему выбрана именно эта переключающая переменная (тот
же Context Asymmetry Rule, что и в `rules/falsification-ladder.md`). Если
делегирование невозможно (нет доступа к отдельному агенту) — зафиксировать
это явно в Финальном выводе, не молчать о потолке.
## Этап 7 — Решающий тест
Не "самый дешёвый", а самый **различающий** — используй Cheapest Differentiating
Test Protocol из `rules/falsification-ladder.md`
(`max(differentiation + kill_power + rescue_power + reuse_value − circularity_risk) / cost`),
не отдельную новую формулу. Для survivor-гипотез после Этапа 6:
- independent variable / dependent variable / controls;
- expected outcome под каждой survivor-гипотезой (не одной);
- главный confounder;
- критерий фальсификации.
Если после Этапа 4 выжила >1 гипотеза одновременно — заполнить
`experiments/_template/ach_matrix.md` (Heuer ACH / Platt Strong Inference)
вместо линейного перебора: это тот же инструмент, что использует
`hypothesis-arbiter` для той же ситуации, не изобретать второй.
**Full-row diagnosticity check (найдено при ТРЕТЬЕМ реальном прогоне,
2026-08-30: тест был назван "самым дешёвым дискриминирующим" для H4, но
проверялся только по столбцу H4 — независимый skeptic показал, что тот же
положительный результат теста ОДИНАКОВО ожидается и под H1, и под H2, то есть
тест на деле НЕ дискриминирует ничего — прямое нарушение уже написанного в
`ach_matrix.md` правила "строка с одинаковым символом под всеми гипотезами —
non-diagnostic", которое было прочитано, но не применено построчно). Перед
тем как объявить тест "самым дешёвым дискриминирующим" — заполнить ЕГО СТРОКУ
целиком, под КАЖДОЙ выжившей гипотезой, не только под той, для которой тест
придуман. Если ≥2 гипотезы дают одинаковый ожидаемый результат в этой строке —
тест НЕ дискриминирующий для этой пары, сколько бы дешёвым он ни был; искать
другой, или явно констатировать, что дешёвого дискриминирующего теста для
этой пары пока нет.
**Stratifier-confound check (найдено при ЧЕТВЁРТОМ реальном прогоне,
2026-08-30 — minimum wage/employment: строка была честно заполнена под каждой
гипотезой по отдельности — H2 и H5 давали РАЗНЫЕ предсказания на бумаге — но
сама переменная стратификации (концентрация рынка труда) коррелирует со
скрытым фактором ДРУГОЙ гипотезы (сельские рынки одновременно более
концентрированы И менее комплаентны) — независимый skeptic: "reversal by HHI
stratum is equally predicted by monopsony threshold and enforcement varies
with market structure". Full-row check ловит совпадение ПРЕДСКАЗАНИЙ, но не
ловит совпадение ПРИЧИН предсказаний через общую скрытую переменную самого
критерия стратификации — это другая ошибка, не устраняется тем же способом).
Перед финализацией любого стратифицированного/квазиэкспериментального
решающего теста — отдельный явный вопрос:
> Коррелирует ли САМА переменная стратификации/сравнения с движущей
> переменной какой-либо ДРУГОЙ выжившей гипотезы (не только с предсказанием
> целевой)?
Если да — тест нужно либо контролировать по этой второй переменной отдельно
(двойная стратификация), либо явно признать его недостаточно чистым для
одной конкретной пары гипотез, даже если он различает остальные.
## Этап 8 — Novelty Check
Делегировать `/novelty-assessment` (multi-round search, harsh critic) на
итоговую repair-гипотезу. Пять статусов, как в исходном шаблоне:
`documented` | `closely related` | `plausible extension` |
`apparently novel but unverified` | `cannot determine novelty`.
**Потолок статуса без делегирования (найдено при первом реальном прогоне,
2026-08-30):** если `/novelty-assessment` не вызван как отдельный процесс, а
Этап 8 сделан урезанно, инлайн, в рамках этого же цикла — статус не может
подниматься выше `closely related`. `apparently novel` требует именно
делегированного, отдельного multi-round поиска — не быстрой прикидки той же
сессией, которая сформулировала гипотезу (тот же принцип context asymmetry,
что и в Attack на Этапе 6).
## Финальный вывод
```markdown
## 1. Главная аномалия
[какой результат существующая теория объясняет хуже всего]
## 2. Самый информативный кластер провалов
[какой кластер даёт наибольший общий сигнал]
## 3. Лучшая Repair Hypothesis
[тезис + механизм + Duhem-Quine оговорка]
## 4. Неожиданное предсказание
[что должны увидеть, если гипотеза верна]
## 5. Решающий тест
[самый различающий, не самый дешёвый — см. Этап 7]
## 6. Novelty status
[из /novelty-assessment, с указанием числа раундов поиска]
## 7. Confidence (раздельно, не одна цифра)
- evidence strength: ...
- novelty: ...
- plausibility: ...
- falsifiability: ...
- experimental tractability: ...
- attack status: `survived` (Этап 6 делегирован отдельному агенту) /
`survived weak attack` (Этап 6 выполнен инлайн той же сессией — потолок,
см. Этап 6)
```
Не оптимизировать под оригинальность звучания. Оптимизировать под способность
объяснить то, что нынешняя модель считает исключением.
## Null Results Protocol
Если ни одна repair-гипотеза не пережила Этап 6 — это тоже результат: карта
конфликтов сама по себе информативна (кластер существует, но объяснения нет).
Сохранить в `null_results/` проекта (если research-проект) или
`~/.claude/memory/raw/`, per Kill Analysis из `falsification-ladder.md`: что
именно убито (repair-гипотезы), что НЕ убито (сама карта конфликтов и
кластеризация остаются валидными для следующей попытки).
## Связанные скилы
- `narrow-discovery-engines` Engine 1 (Orphan Data Miner) / Engine 4
(Exhaustion Mapping) — тот же принцип "провал = сигнал", но на СВОИХ
остатках модели и СВОИХ null_results, не на внешней литературе.
- `sci-evidence` FALSIFY — противоположное направление: атакует гипотезу,
которой уже доверяют, а не строит новую из чужих провалов.
- `hypothesis-arbiter` — если Этап 4 дал >1 survivor-гипотезу, ACH/kill-test
дискриминация между ними — этот скилл сюда не дублирует логику, а передаёт.
- `novelty-assessment` — обязательный Этап 8, не переизобретён здесь.
- `hd-mavp-router` — режим `negative_space` маршрутизирует сюда.
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!