sci-search — поиск и верификация внешних фактов
Статус: production · Версия: 1.2.0 · Обновлён: 2026-08-23 · Область: все агенты контура
Роль: научный аналитик + библиограф + технический эксперт одновременно. Задача — не «найти ссылку», а получить проверяемую картину: отделить измеренное от оценённого, первоисточник от пересказа, факт от рекламы и от собственной галлюцинации.
Когда использовать
- Перед публикацией любого числа/норматива/формулы, взятого извне (обязательно).
- Аудит ссылочной массы чужой статьи или отчёта.
- Выбор оборудования, поиск datasheet, спецификаций, протоколов.
- Поиск стандарта или его актуального статуса (заменён / действует / отменён).
- Расхождение между источниками — развести и объяснить.
Когда НЕ использовать
- Факт выводится из первых принципов самим агентом (расчёт, вывод формулы) — тогда сначала вывод, а поиск только для сверки якоря порядка величины.
- Факт уже лежит в памяти/скилле контура с провенансом — не переискивать, но проверить дату: память point-in-time, стандарт мог быть заменён.
- Поиск по своему коду/репозиторию →
Grep/Glob, а не веб. - Большой многоисточниковый разбор «на неделю» → скилл
deep-research(фоновые субагенты со своим окном), этот скилл — про метод и достоверность.
1. Главный закон: citation-green
Совпадение библиографических реквизитов ≠ проверка утверждения.
Что журнал, том, страницы и DOI существуют — говорит только о том, что документ есть. Оно не подтверждает, что документ говорит то, что ему приписали. Это самая частая и самая незаметная ошибка: реквизиты идеальны, а число рядом с ними — чужое.
Отсюда три правила:
- Запрос строить по ФАКТУ, а не по документу. «Каков реальный диапазон X» — а не «есть ли статья Z на стр. N». Факт-запрос ловит и подмену числа, и подмену источника; библио-запрос — только опечатку в реквизитах.
- Триангуляция: утверждение подтверждать ≥2 независимыми источниками.
- Ловить рассинхрон «источник↔значение»: частый дефект — текст ссылается на источник A, а число взято из источника B. Проверять, что цитируемый источник даёт именно то число, которое напечатано.
Рабочие прецеденты (реальные кейсы расхождения реквизитов и значения) —
references/browser-fallback.md. Тот же принцип на этапе НАПИСАНИЯ статьи —
rn-article-style §12.2; на этапе АУДИТА кода/текста — fact-audit.
2. Обязательная разметка уровня проверки
Каждое утверждение маркируется одним из трёх уровней. Смешивать и умалчивать нельзя.
| Уровень | Что значит | Как выглядит в ответе |
|---|---|---|
| ✅ Проверено по содержанию | Прочитан текст первоисточника, число/формулировка видны | «подтверждено: PMC8583333, таблица 3» |
| 📗 Библиографически | Документ существует, реквизиты сходятся; содержимое НЕ читалось (пейволл/бот-стенка/бинарный PDF) | «реквизиты верны; по содержанию не проверено — пейволл» |
| ⚠️ Не подтверждено | Только вторичные упоминания, либо источники расходятся | «расхождение источников: 2,269 (LNHB) / 2,29 (ENSDF)» |
Выдавать 📗 за ✅ — прямое нарушение. Честное «не смог прочитать» полезнее уверенного пересказа абстракта.
✅ ставится только по прямому чтению первоисточника — не по пересказу. WebFetch
не отдаёт сырой текст, а пересказ модели-суммаризатора — это ещё один пересказ, а не
оригинал. Для решающего числа: просить у WebFetch ТОЧНУЮ цитату (не пересказ), для
критичных случаев предпочитать get_page_text через браузер (§5.1 ниже) — он отдаёт
видимый текст без модели-посредника. Число из точной цитаты — годится для ✅; число
из общего пересказа — остаётся 📗, пока не подтверждено цитатой. Прецеденты, где
пересказ смягчил или сочинил число вместе с атрибуцией — references/browser-fallback.md.
3. Приоритет источников
A — первоисточники: рецензируемые статьи с DOI; стандарты (ISO, IEC, ASTM, ГОСТ, IEEE); документы IAEA, ICRP, ICRU, UNSCEAR, WHO, OECD/NEA; официальные отчёты институтов (NIST, NRC, LNHB, NNDC); диссертации; патенты.
B — вторичные научные: обзоры, метаанализы, монографии, университетские курсы.
C — технические: datasheet и руководства производителя, application notes, официальные сайты организаций.
D — ориентировочные: Википедия, форумы, блоги, новости, вендорские блог-посты.
D используется только чтобы нащупать термин и выйти на A/B. В ответ уровень D не попадает как обоснование. Отдельно: вендорский блог ≠ технический источник — маркетинговая страница производителя это D, а его datasheet — C.
4. Реальная доступность источников
Половина «золотых» баз недоступна открытому вебу — это надо знать заранее, а не
выяснять пятью неудачными запросами. Полные таблицы «что не откроется / что
работает», лестница доступа при пейволле и разбор «упёрся инструмент vs документ
недоступен» (с транспортной альтернативой curl + локальный разбор) —
references/source-availability.md. Правило коротко: отказ WebFetch ≠ недоступность
документа — сменить транспорт ДО того, как источник помечен 📗.
5. Механика инструментов и браузер-фолбэк
WebSearch слаб по-русски (гонять RU+EN параллельно), WebFetch не ходит по
кросс-хостовым редиректам и кэширует 15 минут, PDF через него часто нечитаем.
WebFetch не исполняет JavaScript — на JS-челлендже/бот-стенке источник не
недоступен, а нужен встроенный браузер (mcp__Claude_Browser__*): он рендерит
страницу и проходит челлендж самим фактом того, что является браузером. CAPTCHA и
пейволл — принципиально другое (не наша задача, не наше право обходить). Полная
механика инструментов, различение трёх стен (JS-челлендж / CAPTCHA / пейволл),
пошаговая работа с браузером и живой прецедент — references/browser-fallback.md.
6. Алгоритм
Ш1. Формализация. Объект; область; временной диапазон; требуемая точность; тип документа (статья / стандарт / диссертация / патент / datasheet / статданные). Отдельно зафиксировать: какое именно утверждение надо подтвердить или опровергнуть.
Ш2. Запросы. Строить веером: основной RU + основной EN + научные синонимы + исторические названия + аббревиатуры + номер стандарта.
Ш3. Поиск. От общего к частному, деревом. Нашёл ключевую работу — идти по её ссылкам вниз (первоисточник) и по цитированиям вверх (актуальность, опровержения).
Ш4. Оценка каждого документа: первоисточник ли; DOI; рецензируемость; год; цитируемость; авторитет организации; соответствие запросу. Для стандартов обязательно: действует / заменён / отменён и чем заменён (типовая ловушка: ГОСТ 7.1-2003 в РФ вытеснен ГОСТ Р 7.0.100-2018, но действует в СНГ).
Ш5. Извлечение. Числа; формулы; определения; единицы; диапазоны; условия эксперимента; границы применимости. Фиксировать адрес: DOI, страница, номер таблицы/рисунка/раздела.
Ш6. Сопоставление при расхождении. Сравнить методики → условия → выяснить причину расхождения → оценить неопределённость. Не выбирать удобное число: если источники дают 2,269 и 2,29 — показать оба и назвать рекомендованное.
7. Формат ответа
### Вывод
2–5 предложений. Прямо: что установлено, с какой уверенностью.
### Источники
| Источник | Год | Тип | Уровень | Проверка |
|---|---|---|---|---|
| … | … | A/B/C/D | … | ✅ / 📗 / ⚠️ |
### Данные
величина — значение — единица (СИ) — условия — границы применимости
### Ссылки
DOI / прямой URL / PDF / раздел
### Расхождения и неопределённость
(если есть — обязательно, включая «источники расходятся на N %»)
### Уровень уверенности
Высокий / Средний / Низкий — с причиной
Единицы — СИ (references/gost-vak-oformlenie.md в rn-article-style: десятичная
запятая в RU, пробел число↔единица).
8. Режимы
Научный поиск · стандарты и нормативы · диссертации · патенты · датасеты · геоданные · ПО и открытые репозитории · оборудование и характеристики · ядерные/физические справочные данные.
Режим меняет только порядок баз, но не законы §1–§2: citation-green и разметка уровня проверки действуют всегда.
9. Корпус проверенных фактов
Каждый факт со статусом ✅ или 📗 обязательно дописывается в локальный корпус
(%USERPROFILE%\.claude\sci-search-corpus\verified-facts.jsonl, JSONL append-only,
вне git) — иначе следующая сессия ищет то же самое заново. Перед поиском — грепнуть
корпус; после верификации — сразу дописать строку, не «потом». Формат полей, порядок
работы, ловушка кодировки при записи на Windows — references/verified-facts-corpus.md.
Анти-паттерны
- ❌ Выдать совпадение реквизитов за проверку утверждения (citation-green).
- ❌ Пересказать абстракт как содержимое статьи (в абстракте часто нет тех чисел).
- ❌ Молча проглотить пейволл/бот-стенку и ответить «по данным работы X…».
- ❌ Сдаться на JS-челлендже, не попробовав браузер (§5) — это не отказ доступа.
- ❌ Поставить 📗/⚠️, не пройдя лестницу транспорта (§4) —
WebFetchупёрся ещё не значит, что документ недоступен;curl+ локальный разбор пробуются ДО пометки. - ❌ Принять HTTP-код за истину о доступности.
402от организации, публикующей бесплатно, — сломанный прокси, а не цена. - ❌ Читать страницу-контейнер вместо файла. Если в выдаче есть прямая ссылка
на
.pdf— тянуть её, а не HTML, на котором она висит. - ❌ Пересказать страницу-заглушку («проверяем ваш браузер») как содержимое источника.
- ❌ Решать CAPTCHA, подменять User-Agent, обходить rate-limit или пейволл — запрет.
- ❌ Искать только по-русски или только по-английски.
- ❌ Сослаться на стандарт, не проверив, действует ли он и чем заменён.
- ❌ Выбрать из расходящихся источников удобное число, умолчав о разбросе.
- ❌ Придумать DOI/ГОСТ/страницу «для правдоподобия» — запрет абсолютный.
- ❌ Смешать измеренное с оценённым/модельным без пометки.
- ❌ Взять вендорский блог как технический источник вместо datasheet.
- ❌ Принять первый пересказ
WebFetchза ✅ без точной цитаты (§2) — пересказ инструмента может исказить число так же, как вторичная статья. - ❌ Не дописать проверенный факт в корпус (§9) — следующая сессия ищет заново.
- ❌ Сослаться на корпус как на источник вместо исходного DOI/URL из его записи — корпус кэширует проверку, не заменяет первоисточник.
Связанные скиллы
fact-audit— проверка чужих находок и артефактов (citation-green там же, но для аудита).rn-article-style§12.2 — тот же запрет выдумки на этапе написания статьи.deep-research— тяжёлый многоисточниковый разбор фоновыми субагентами.doc-extract,markitdown,unlimited-ocr— вытащить текст из добытого PDF/скана.
Справочники (детали, on-demand)
references/source-availability.md— что откроется/не откроется, лестница транспорта.references/browser-fallback.md— механика браузера, три стены, живые прецеденты.references/verified-facts-corpus.md— формат и процедура ведения корпуса фактов.