Перейти к содержанию

Исследовательские артефакты

Помимо научных статей (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).

Из чата (для коротких заметок или фрагментов кода, которые удобно ввести прямо в диалог):

Сохрани этот фрагмент как code-артефакт «auth.py»:
def login(user, pw):
    ...

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 пишет раздел с назначенными артефактами, он:

  1. Читает полный текст каждого артефакта (не усечённый, как абстракты — нужны дословные цитаты).
  2. Вставляет цитаты, пересказы, ссылки с использованием меток [X:id].
  3. Не копирует транскрипты целиком — только релевантные фрагменты.

Пример:

Первые пользователи испытывали сложности с переходом между шагами онбординга:

«Я не понял, надо ли сначала подтвердить почту или загрузить документ — инструкция была в двух разных местах.» [I:3]

Это согласуется с работами о фрагментированных user flows [Smith2021].

Включение кода

Для code-артефактов snowcite генерирует backend-специфичный сниппет:

Вставь артефакт auth.py в раздел methodology.

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

Артефакты не попадают в основную библиографию — для них есть отдельный раздел:

Добавь 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 нет.