Исследовательские артефакты¶
Помимо научных статей (papers), snowcite умеет принимать любые
исследовательские материалы пользователя — транскрипты интервью, код,
архивные документы, заметки, описания датасетов — и цитировать их в тексте
наравне с литературой. Это превращает snowcite из чисто обзорного
инструмента в ассистента для смешанных методов исследования.
Поддерживаемые типы¶
| Тип | Что это | Типичное применение |
|---|---|---|
interview |
Транскрипт беседы | Блок-цитаты в findings / discussion |
code |
Файл или фрагмент исходного кода | \lstinputlisting / #raw(read()) в methodology |
document |
Архивный текст, письмо, внутренний документ | Цитирование первоисточника |
note |
Произвольная заметка исследователя | Ссылки в обсуждении, background |
dataset |
Описание датасета (не сами данные) | Methodology, data availability |
Поддерживаются только текстовые файлы. PDF и .docx сначала конвертируйте
через pdftotext или pandoc.
Импорт¶
Из файла:
Импортируй интервью с P03:
path = "interviews/p03.md"
type = "interview"
label = "P03 — первое пилотное"
summary = "Пилотное интервью про проблемы онбординга"
metadata = {"participant": "P03", "consent": "written", "language": "ru"}
Claude вызовет import_artifact(path, type, label, summary, metadata).
Из чата (для коротких заметок или фрагментов кода, которые удобно ввести прямо в диалог):
Claude вызовет add_artifact_inline(type, label, content, ...).
Формат цитирования¶
Каждому артефакту присваивается короткая inline-ссылка:
[I:3]— интервью с id 3[C:auth.py]— код (обычно показывается label)[D:5]— документ[N:2]— заметка[DS:1]— датасет
Эти токены появляются внутри текста, а appendix Primary sources расшифровывает их. Формат должен оставаться единым по всему документу.
Привязка артефактов к разделу¶
Элементы outline принимают artifact_ids рядом с paper_ids:
save_outline([
{
"name": "findings",
"target_words": 800,
"paper_ids": [12, 17, 23],
"artifact_ids": [1, 2, 3, 4],
},
])
prepare_section_for_review и regenerate_section_brief подгружают оба
набора автоматически. Субагент academic-reviewer проверяет прямые цитаты
и против абстрактов статей, и против полного содержимого артефактов.
Работа с артефактами при написании¶
Когда Claude пишет раздел с назначенными артефактами, он:
- Читает полный текст каждого артефакта (не усечённый, как абстракты — нужны дословные цитаты).
- Вставляет цитаты, пересказы, ссылки с использованием меток
[X:id]. - Не копирует транскрипты целиком — только релевантные фрагменты.
Пример:
Первые пользователи испытывали сложности с переходом между шагами онбординга:
«Я не понял, надо ли сначала подтвердить почту или загрузить документ — инструкция была в двух разных местах.» [I:3]
Это согласуется с работами о фрагментированных user flows [Smith2021].
Включение кода¶
Для code-артефактов snowcite генерирует backend-специфичный сниппет:
Claude вызывает include_code_artifact(artifact_id, backend) и подставляет
результат в раздел:
- LaTeX:
\lstinputlisting[caption={auth.py}]{/path/to/auth.py} - Typst:
#figure(caption: [auth.py], raw(read("/path/to/auth.py"), lang: "python"))
Оба варианта читают файл напрямую с диска при компиляции, поэтому изменения в коде подхватываются автоматически.
Appendix Primary sources¶
Артефакты не попадают в основную библиографию — для них есть отдельный раздел:
Claude вызывает generate_primary_sources_appendix(backend) и вставляет
результат после основной библиографии. Каждый включённый артефакт
появляется с меткой цитирования, названием, типом и summary.
Исключение без удаления¶
set_artifact_included(artifact_id, False) исключает артефакт из writing
pipeline (он не появится в prepare_section_for_review и в appendix),
сохраняя запись в базе. Полезно для пилотных интервью, которые не войдут
в финальную работу.
set_artifact_included(artifact_id, True) возвращает в оборот.
Для полного удаления — delete_artifact(artifact_id).
Чего snowcite не делает¶
- Не транскрибирует аудио. Приносите готовый текст.
- Не парсит PDF / .docx. Конвертируйте через
pdftotext/pandocзаранее. - Не анализирует данные. Статистика и графики — через pandas / R /
..., готовые PNG вставляйте через
#image("plot.png")/\includegraphics. - Не делает автоматическое qualitative coding. Теги можно сохранять
в
metadata, Claude может помочь с ними в интерактиве, но встроенной структуры codebook нет.