Диагностика¶
«No snowcite project found»¶
Резолвер проекта идёт вверх по иерархии директорий от текущей рабочей
до корня в поисках каталога .snowcite/. Если ни в одной родительской
директории такого каталога нет, инструмент возвращает:
NoProjectError: No snowcite project found in the current directory or any parent.
Run `init_project()` here first to create a .snowcite/ directory.
Решение: перейдите (cd) в директорию, где должен располагаться проект,
и попросите Claude выполнить init_project.
Альтернативный вариант: установите переменную окружения
SNOWCITE_PROJECT_ROOT=/path/to/project. Это полезно, если сервер
запущен из директории, не связанной с проектом.
Компиляция LaTeX падает на кириллице¶
Симптомы: ошибки вида Missing character: There is no Ж in font ec-lmr12!
или Package inputenc Error: Unicode character Ы not set up.
Причина: используется 8-битный fontenc (T1 или T2A) под XeTeX
tectonic, которому требуются Unicode-шрифты через fontspec.
Решение: используйте шаблоны snowcite без изменений. Они уже содержат:
Если review.tex редактировался вручную, перегенерируйте его через
write_document(...) или скопируйте преамбулу из
snowcite/templates/latex/plain.tex.j2.
biber not found¶
tectonic поставляется с bibtex, но не с biber. Если в
\usepackage{biblatex} указано backend=biber, замените на
backend=bibtex. В шаблонах snowcite это уже сделано.
Ошибки при компиляции Typst, связанные с modern-g7-32¶
ГОСТ-шаблон для Typst привязан к конкретной версии пакета. Если typst
сообщает о несовместимых функциях или breaking changes, обновите
строку @preview/modern-g7-32:X.Y.Z в
snowcite/templates/typst/gost.typ.j2. Перед коммитом запустите
локально pytest, чтобы убедиться, что подстановка переменных
продолжает работать.
Отказ safety-классификатора на чувствительных темах¶
snowcite предназначен для академических обзоров, включая направления двойного назначения (AI safety, кибербезопасность, биобезопасность). Однако safety-классификатор Claude реагирует на накопленную плотность чувствительных терминов в контексте — чат, заполненный абстрактами с деталями операционного характера, может приводить к отказам даже при добросовестном исследовательском запросе.
В snowcite заложены меры снижения риска:
get_unreviewed_papers(include_abstracts=False)— поведение по умолчанию: абстракты не попадают в контекст;- в
CLAUDE.mdзадан явный контекст проекта как peer-reviewed литературного обзора; - субагент
academic-reviewerпересказывает источники своими словами и не цитирует дословно.
Если отказ всё же произошёл:
- Выполните
/clear— накопленная плотность чувствительных терминов часто бывает причиной. - Уточните намерение: «Это systematic review для диплома. Мне нужен обзор на академическом уровне детализации, не операционном».
- Разбейте работу на подтемы, чтобы одна сессия затрагивала меньше материала.
При действительно граничном материале (пошаговые инструкции атак, детали weaponization) Claude может отказаться от ответа — это корректное поведение. Удерживайте обзор на уровне «что утверждает статья и почему это важно», а не «как воспроизвести описанную атаку».
Превышение лимита запросов к Semantic Scholar¶
Без API-ключа доступно 100 запросов за 5 минут. Встроенный retry-механизм
учитывает заголовок Retry-After и применяет экспоненциальный backoff,
но при большом snowball в логе могут появляться сообщения:
Это штатное поведение: поиск продолжается параллельно на других
источниках. Постоянное решение — получить API-ключ и установить
SNOWCITE_SEMANTIC_SCHOLAR_API_KEY, что поднимает лимит до 100
запросов в секунду.
Claude потерял контекст сессии¶
Это ожидаемо после /clear или в новой сессии. Первым вызовом должен
быть get_session_state(): он возвращает текущую фазу, подсказку
next_action, последние действия ревью и количество разделов. Claude
продолжит с того же места.
В PDF отсутствуют символы кириллицы¶
Для LaTeX причина та же, что и в разделе «Компиляция LaTeX падает на
кириллице» выше: XeTeX tectonic требует Unicode-шрифты через fontspec.
Для Typst убедитесь, что в документе задано set text(lang: "ru").
Шаблоны snowcite подставляют это значение автоматически из
project_metadata.language.
Файл CLAUDE.md был перезаписан¶
Так и должно быть: CLAUDE.md управляется snowcite. Любой вызов
init_project (в том числе с update=True) заново генерирует файл
из шаблона. Замечания по конкретному проекту размещайте в отдельном
файле, например NOTES.md, и ссылайтесь на него из CLAUDE.md
через @NOTES.md.
История ревью выглядит некорректно¶
set_review_status дописывает запись в review_history при каждом
изменении. Просмотреть историю:
sqlite3 .snowcite/papers.db \
"SELECT paper_id, old_status, new_status, reason, reviewed_by, changed_at
FROM review_history ORDER BY id DESC LIMIT 20;"
Прямое изменение или удаление записей в этой таблице делать не рекомендуется: на ней построен audit trail, который использует генерация PRISMA flow.