20 минут на старт|5 совместных Agent + 34 исследовательских навыка|превратите Claude Code в вашу персональную лабораторию для науки
Обзор проекта
Oh My Paper — это open-source плагин для Claude Code. Он решает довольно прямую задачу: Claude Code поможет вам писать код, но научная работа далеко не сводится к написанию кода. Вам нужны подбор литературы, оценка новизны, дизайн экспериментов, написание статьи, проверка корректности цитирований — и все эти этапы никак не связаны между собой удобным инструментом.
Подход Oh My Paper — установить для Claude Code структурированный научный конвейер. 5 специализированных ролей Agent отвечают за свои части работы, 34 исследовательских навыка подключаются по мере необходимости, а фоновые Hook автоматически сохраняют состояние проекта. После настройки при каждом запуске Claude Code он спросит: «Какую роль вы хотите выполнить сегодня?», затем автоматически подгрузит соответствующий файл памяти и продолжит с того места, где вы остановились. Никакого GUI не требуется — все действия выполняются в терминале.
TIP
Адрес проекта: https://github.com/LigphiDonk/Oh-my--paper, лицензия MIT, поддержка экосистемы плагинов для Claude Code.
Целевая аудитория
Эта статья адресована следующим разработчикам:
- Есть 1–5 лет опыта разработки, и вы уже проходили (или сейчас проходите) этапы написания статей и проведения исследований
- Хотите использовать AI для поддержки исследований, но не любите постоянно переключаться между разными инструментами
- Интересует формат совместной работы Agent и изоляция памяти по ролям — хочется найти практические примеры
Если у вас уже есть четкое исследовательское направление (например, CV, NLP, системная архитектура) или вы делаете внутренние технические исследования в компании — конвейер Oh My Paper вам подойдет.
Базовые зависимости и окружение
Перед началом убедитесь, что ваша среда соответствует следующим требованиям:
| Зависимость | Минимальные требования | Пояснение |
|---|---|---|
| Claude Code | Последняя версия | Официальное руководство по установке |
| Node.js | v18+ | База для запуска плагинов Claude Code |
| Python | 3.10+ | Удаленные экспериментальные скрипты, компиляция LaTeX |
| LaTeX | TeX Live 2020+ | Опционально, используется при написании статьи |
| Сеть | Доступ к ArXiv / Semantic Scholar | Необходимо для поиска литературы |
WARNING
Oh My Paper — это плагин для Claude Code, а не самостоятельное приложение. Сначала нужно установить Claude Code, и только потом вы сможете использовать этот плагин. Пользователям Windows рекомендуется использовать WSL2 для наилучшего опыта.
Полное дерево структуры проекта
После выполнения /omp:setup структура папок проекта будет следующей:
my-research/
├── paper/ # рабочая зона LaTeX для статьи
│ ├── main.tex
│ ├── sections/ # файлы .tex для разделов
│ └── refs/ # .bib с библиографией
├── experiment/ # экспериментальный код и скрипты
├── survey/ # результаты подбора литературы
├── ideation/ # идеи и результаты оценки инноваций
├── promotion/ # слайды, Demo, материалы для продвижения
├── skills/ # проектные локальные пользовательские навыки
├── .pipeline/
│ ├── tasks/
│ │ └── tasks.json # дерево задач для всех этапов
│ ├── docs/
│ │ └── research_brief.json
│ └── memory/ # файлы памяти Agent
│ ├── project_truth.md # базовый ориентир проекта + журнал прогресса
│ ├── orchestrator_state.md
│ ├── execution_context.md
│ ├── experiment_ledger.md
│ ├── result_summary.md
│ ├── review_log.md
│ ├── literature_bank.md
│ ├── agent_handoff.md
│ └── decision_log.md
├── .claude/
│ └── settings.json # регистрация hook SessionStart
├── CLAUDE.md
└── AGENTS.md
Пошаговая установка
Шаг 1: добавление адреса в маркет плагинов
В Claude Code выполните следующую команду, чтобы зарегистрировать адрес маркетплейса плагинов для Oh My Paper:
/plugin marketplace add LigphiDonk/Oh-my--paper
На этом шаге не нужно клонировать весь репозиторий — Claude Code сам подтянет список плагинов из маркетплейса.
Шаг 2: установка плагина
/plugin install omp@oh-my-paper
После установки выполните /plugin, чтобы проверить:
/plugin
# Ожидаемый вывод должен включать: omp @ oh-my-paper, Status: Enabled
Шаг 3: перезапустите Claude Code
WARNING
Это самый легко пропускаемый шаг. Hook SessionStart должен перезапустить Claude Code, чтобы настройки вступили в силу. Если пропустить этот шаг, при каждом открытии сессии не будет подсказки выбора роли.
Полностью закройте текущее окно Claude Code и откройте заново.
Шаг 4: инициализация исследовательского проекта
Перейдите в каталог вашего исследовательского проекта и выполните:
/omp:setup
Эта команда делает три вещи:
- Создает папку
.pipeline/и все ее подпапки, а также файлы памяти - Регистрирует hook
SessionStartв.claude/settings.json - Генерирует стандартные
tasks.jsonиresearch_brief.json
После инициализации структура каталогов будет такой, как в разделе «Полное дерево структуры проекта» выше.
Проверка успешности установки
Снова откройте Claude Code (внутри инициализированного каталога проекта). Вы должны увидеть, как Claude показывает меню выбора роли и спрашивает, с какой ролью вы хотите начать работу сегодня. Если вы это видите — значит, установка прошла успешно.
Подробное объяснение 5-этапного научного конвейера
Oh My Paper разбивает весь научный процесс на 5 этапов. У каждого этапа есть своя команда и набор рекомендуемых навыков.
Этап 1|Survey: подбор литературы
Выполните команду:
/omp:survey
На этом этапе выполняется следующее: Claude ищет релевантные статьи под ваш исследовательский запрос, извлекает аннотации и ключевую информацию и в итоге формирует файл literature_bank.md.
Часто используемые навыки:
paper-finder— ищет релевантные работы в ArXiv, Semantic Scholarpaper-analyzer— извлекает ключевой вклад, методы и ограничения статьиbiorxiv-database— если вы работаете в биомедицинском направлении, ищет в BioRxiv
Основной выходной файл: survey/literature_bank.md
Типичный рабочий процесс:
Вы: /omp:survey
→ Claude спрашивает ключевые слова направления исследования
→ Автопоиск → оформление карточек литературы → запись в literature_bank.md
→ Показ аннотаций подборки, чтобы вы подтвердили, нужно ли что-то добавить
Этап 2|Ideation: генерация идей инноваций
Выполните команду:
/omp:ideate
Опираясь на результаты подбора литературы из этапа 1, Claude генерирует потенциальные инновационные идеи и оценивает их реализуемость по очереди.
Часто используемые навыки:
inno-idea-generation— массовый мозговой штурм инновацийinno-idea-eval— оценка по трем измерениям: novelty, feasibility, impactresearch-idea-convergence— сходимость к 2–3 самым перспективным направлениям
Основной выход: результаты оценки в директории ideation/
TIP
В конце этапа Ideation обязательно попросите Claude записать финально выбранные направления в research_brief.json. На следующих шагах эксперименты и написание будут ссылаться на этот файл.
Этап 3|Experiment: дизайн и выполнение экспериментов
Выполните команду:
/omp:experiment
Этот этап самый широкий: он включает разработку плана эксперимента, написание кода для оценки, локальный или удаленный запуск, анализ результатов.
Часто используемые навыки:
inno-experiment-dev— генерация каркаса экспериментального кодаresearch-experiment-driver— управление итерационным циклом экспериментовremote-experiment— подключение по SSH к удаленному GPU-узлу и запуск (см. раздел «Удаленные эксперименты»)
Основной выходной файл: директория experiment/ + experiment_ledger.md (история экспериментов)
Этап 4|Publication: написание разделов статьи
Выполните команду:
/omp:write
Преобразуйте результаты экспериментов в текст статьи, сгенерируйте таблицы/графики и заголовки, управляйте файлами LaTeX.
Часто используемые навыки:
inno-paper-writing— генерация общих разделов статьиml-paper-writing— шаблон для статей по машинному обучению/AIscientific-writing— нормы академического письма (времена, формулировки, структура)inno-figure-gen— генерация кода графиков (Matplotlib, Plotly)inno-reference-audit— автоматическая проверка корректности формата цитирований
Основной выходной файл: LaTeX-файлы в директории paper/
Этап 5|Promotion: продвижение результатов
Выполните команду:
/omp:plan
# На этапе Promotion выбирайте навыки для подготовки демонстрационных материалов
Преобразуйте результаты статьи в презентационные слайды, технический блог, Grant-предложение и т. п.
Часто используемые навыки:
making-academic-presentations— генерация PPT для академического докладаinno-grant-proposal— подготовка заявки на финансированиеinno-rclone-to-overleaf— автоматическая синхронизация локального LaTeX в Overleaf
5 ролей Agent и механизм изоляции памяти
Это ключевая концепция дизайна Oh My Paper.
Обзор ролей Agent
| Роль | Описание обязанностей | Файл(ы) ключевой памяти |
|---|---|---|
| Conductor (координатор) | глобальный план, раздача подзадач, автоматическое обновление состояния проекта после каждого этапа | project_truth.md · tasks.json · orchestrator_state.md |
| Literature Scout (разведчик литературы) | поиск статей и оформление заметок по литературе | literature_bank.md · execution_context.md |
| Experiment Driver (исполнитель экспериментов) | дизайн экспериментов, написание кода для оценки, запуск и фиксация результатов | experiment_ledger.md · research_brief.json |
| Paper Writer (писатель статьи) | написание разделов, генерация графиков, проверка цитирований | result_summary.md · literature_bank.md |
| Reviewer (рецензент) | peer review, контроль качества, проверка согласованности | execution_context.md · project_truth.md |
Принцип изоляции памяти
Каждая роль может читать и записывать только файлы памяти, относящиеся к ее зоне ответственности. Она не видит внутреннее состояние других ролей. Главная выгода этого дизайна — предотвращение загрязнения контекста. Например, Paper Writer не увидит промежуточные результаты от Experiment Driver, а Literature Scout не будет преждевременно формировать мнение из-за просмотра экспериментальных данных при оценке литературы.
Общение между ролями происходит через две «общие зоны»:
tasks.json ← все роли читают/пишут, фиксируют статус выполнения задач
project_truth.md ← все роли добавляют, фиксируют общий прогресс проекта
Автосинхронизация состояния
Самая важная деталь дизайна: Conductor после завершения каждого подзадания автоматически обновляет эти два общих файла. Вам не нужно вручную напоминать.
Подзадача завершена
→ Conductor автоматически помечает соответствующую задачу в tasks.json как done
→ Conductor автоматически добавляет запись прогресса в project_truth.md
→ при следующем открытии сессии Claude прочитает эти два файла и продолжит с точки остановки
TIP
Если вы хотите принудительно показать Conductor текущий глобальный прогресс, выполните /omp:plan. Он прочитает tasks.json и project_truth.md, покажет полное дерево задач и текущий этап.
34 исследовательских навыка — шпаргалка
В Oh My Paper встроено 34 исследовательских навыка, покрывающих весь цикл научной работы. Ниже они сгруппированы по категориям, чтобы было удобно искать по необходимости:
Литературные
paper-finder— поиск статей по нескольким базамpaper-analyzer— извлечение ключевого вклада статьиpaper-image-extractor— извлечение графиков из PDFresearch-literature-trace— отслеживание цепочки цитирования статьиbiorxiv-database— поиск по BioRxivdataset-discovery— поиск релевантных датасетов
Подбор и генерация идей
inno-deep-research— режим глубокого исследованияgemini-deep-research— интеграция глубокого исследования с Geminiinno-code-survey— исследование через реализацию кодаinno-idea-generation— массовая генерация инновацийinno-idea-eval— многомерная оценка инновацийresearch-idea-convergence— сходимость к оптимальному направлению
Экспериментальные
inno-experiment-dev— генерация кода экспериментаinno-experiment-analysis— анализ результатов экспериментаresearch-experiment-driver— итеративное управление экспериментамиremote-experiment— удаленный цикл экспериментов на GPU
Письмо
inno-paper-writing— общие разделы статьиml-paper-writing— статья по ML/AIscientific-writing— нормы научного письмаinno-figure-gen— генерация графиковinno-reference-audit— проверка формата цитированийresearch-paper-handoff— правила передачи между Agent
Планирование и рецензирование
inno-pipeline-planner— планирование конвейераresearch-pipeline-planner— планирование этапов исследованияinno-paper-reviewer— оценка качества статьиinno-prepare-resources— чек-лист подготовки ресурсовinno-rclone-to-overleaf— синхронизация в Overleaf
Демонстрации и предложения
making-academic-presentations— презентации для научного доклада (PPT)inno-grant-proposal— заявка на финансирование
Диспетчеризация Agent
claude-code-dispatch— диспетчеризация подзадач Claude Codecodex-dispatch— диспетчеризация параллельной обработки Codex
Специализация по предметной области
academic-researcher— общее академическое исследованиеbioinformatics-init-analysis— анализ в био-информатикеresearch-news— отслеживание самых свежих тенденций в исследовательской области
Навыки подключаются по мере необходимости. Когда вы запускаете /omp:survey, Claude автоматически рекомендует подходящие навыки. Также вы можете добавлять свои навыки в директории skills/.
Полный демонстрационный пример типичного рабочего процесса
Возьмем пример статьи по направлению AI: пройдем полностью 5-этапный конвейер.
Step 1: инициализация проекта
# Перейдите в директорию исследования
cd ~/research/my-paper
# В Claude Code:
/omp:setup
# Вывод: .pipeline/ создана, hook SessionStart зарегистрирован
Step 2: подбор литературы
# В Claude Code:
/omp:survey
# → Claude спрашивает: «В чем ваше направление исследований?»
# → Ввод: LLM reasoning, chain-of-thought prompting
# → Claude автоматически ищет в ArXiv/Semantic Scholar
# → Сортирует и оформляет 20+ релевантных работ в survey/literature_bank.md
# → Выводит резюме подбора, чтобы вы подтвердили, нужно ли добавление
Step 3: генерация инноваций
/omp:ideate
# → Claude читает literature_bank.md
# → генерирует 8 потенциальных инновационных идей
# → для каждой идеи ставит оценки по novelty / feasibility / impact
# → сходимость к 2 направлениям, запись в research_brief.json
Step 4: дизайн и запуск эксперимента
/omp:experiment
# → Claude читает research_brief.json
# → проектирует план эксперимента (базовые методы, методы сравнения, метрики оценки)
# → генерирует код эксперимента в директорию experiment/
# → запускает локальную оценку и разбирает метрики
# → результаты записываются в experiment_ledger.md
Если требуется запуск на удаленном GPU:
# Настройка удаленного вычислительного узла (создайте compute-config.json в experiment/)
{
"host": "gpu-server.example.com",
"user": "researcher",
"key_path": "~/.ssh/id_rsa",
"remote_dir": "/home/researcher/experiments"
}
# В Claude Code:
/omp:experiment
# → Claude обнаруживает compute-config.json
# → использует навык remote-experiment
# → rsync кода на удаленный хост → запуск по SSH → возврат результатов
# → автоматический разбор metrics, запись в experiment_ledger.md
Step 5: написание разделов статьи
/omp:write
# → Claude читает experiment_ledger.md + literature_bank.md
# → генерирует разделы Introduction / Method / Experiment в виде .tex файлов
# → генерирует графики (скрипты Matplotlib) и компилирует в paper/figures/
# → проверка цитирований: контроль формата .bib
Step 6: рецензирование peer-review
/omp:review
# → Claude читает документ в роли Reviewer
# → проверяет логическую связность, ясность описания методов, достаточность сравнения экспериментов
# → формирует review_log.md со списком рекомендаций
# → после внесения правок снова запускайте /omp:review до прохождения
Step 7: синхронизация в Overleaf
# Настройте синхронизацию Overleaf в директории skills/
# Используйте навык inno-rclone-to-overleaf
# Claude автоматически синхронизирует локальную папку paper/ в проект Overleaf
Подробное объяснение удаленных экспериментов
Для экспериментов, которым требуется GPU-вычислительная мощность, Oh My Paper поддерживает полный цикл удаленных экспериментов.
Архитектурный процесс
Локальный дизайн
→ генерация экспериментального кода
→ rsync синхронизирует код на удаленный сервер
→ вход по SSH на удаленный узел
→ запуск эксперимента на GPU
→ загрузка журналов metrics
→ локальный разбор метрик
→ проверка достижения порога
→ итерационная оптимизация / завершение эксперимента
Настройка удаленного узла
В директории experiment/ создайте compute-config.json:
{
"host": "your-gpu-server.com",
"user": "researcher",
"ssh_key": "~/.ssh/id_rsa",
"remote_workspace": "/home/researcher/omp-experiments",
"max_iterations": 5,
"success_threshold": {
"accuracy": 0.92,
"latency_ms": 200
}
}
Запуск удаленного эксперимента
# В Claude Code:
/omp:experiment
# → обнаруживает compute-config.json
# → автоматически выполняет: синхронизацию кода → запуск по SSH → возврат результатов
# → если метрики не достигнуты, автоматически меняет гиперпараметры и запускает повторно (до max_iterations раз)
# → финальные результаты записываются в experiment_ledger.md
WARNING
Удаленные эксперименты расходуют вычислительные ресурсы и деньги. Рекомендуется сначала протестировать экспериментальный процесс на локальном небольшом датасете, убедившись, что все работает, и только затем переключаться на удаленные GPU-узлы для полного прогона.
Делегирование задач Codex
Если какой-то эксперимент связан с большим объемом однотипной генерации кода (например, нужно прогнать 10 наборов разных конфигураций гиперпараметров), можно попросить Conductor делегировать эти задачи Codex для параллельной обработки.
/omp:delegate
# → Conductor читает текущий контекст задач
# → генерирует Codex prompt со всеми необходимыми деталями
# → вы копируете в новый терминал: codex "..."
# → Codex запускается в отдельном терминале
# → по завершении записывает сигнал CODEX_DONE в agent_handoff.md
# → Conductor обнаруживает сигнал, читает результаты и обновляет tasks.json
Преимущество такого подхода: Claude Code и Codex работают одновременно в разных терминалах. Ваш локальный Claude Code не будет занят — вы сможете параллельно заниматься подбором литературы и другой работой.
Поиск и устранение типичных проблем
Q1: После выполнения /omp:setup при каждом открытии Claude Code не появляется подсказка выбора роли
Причина: hook SessionStart не был корректно зарегистрирован.
Как проверить:
- Убедитесь, что в каталоге проекта есть файл
.claude/settings.json - Проверьте, что этот файл содержит раздел
hooks
cat .claude/settings.json
# Убедитесь, что есть поле "hooks": { "SessionStart": [...] }
Если этого нет — выполните /omp:setup для повторной инициализации и убедитесь, что Claude Code полностью перезапущен.
Q2: Плагин установлен успешно, но команды вроде /omp:survey показывают «Команда не распознана»
Причина: плагин не загрузился корректно или Claude Code нужно перезапустить.
Шаги решения:
# 1. Удалите и установите снова
/plugin uninstall omp
/plugin install omp@oh-my-paper
# 2. Полностью перезапустите Claude Code (закройте все окна)
# 3. Проверьте статус плагинов
/plugin
Q3: Literature Scout находит слишком мало статей — хочется расширить охват поиска
Причина: стартовые ключевые слова слишком конкретные и ограничивают результаты.
Решение:
При запуске /omp:survey указывайте несколько синонимов и более общих терминов:
ввод: «LLM reasoning, chain-of-thought, CoT, deliberate reasoning, LLM planning»
а не только: «LLM reasoning»
Также в skills/paper-finder.md можно добавить дополнительные источники баз (например, ACL Anthology, официальный сайт ICLR).
Q4: Paper Writer генерирует описание эксперимента, которое не совпадает с фактическими результатами
Причина: между Experiment Driver и Paper Writer не была своевременно синхронизирована актуальная версия experiment_ledger.md.
Решение:
После каждой итерации эксперимента перед началом работы Paper Writer сначала запустите /omp:plan, чтобы Conductor синхронизировал глобальное состояние. Так Paper Writer прочитает самые свежие результаты:
/omp:plan
# → Conductor показывает текущий статус tasks.json
# → подтвердите, что experiment-задача помечена как done
# → затем запускайте /omp:write
Q5: Удаленная синхронизация rsync не проходит, выводит permission denied
Причина: неверные права для SSH-ключа или удаленная папка не существует.
Шаги проверки:
# 1. Проверьте права локального SSH-ключа
chmod 600 ~/.ssh/id_rsa
# 2. Проверьте SSH-подключение (без пароля)
ssh -i ~/.ssh/id_rsa [email protected] "echo ok"
# 3. Убедитесь, что удаленная директория существует
ssh [email protected] "mkdir -p /home/researcher/omp-experiments"
# 4. Проверьте путь remote_workspace в compute-config.json
Q6: После делегирования Codex Conductor постоянно ждет сигнал CODEX_DONE
Причина: Codex после завершения не корректно записал данные в agent_handoff.md.
Решение:
- Проверьте, нормально ли завершился запуск в терминале, где работал Codex
- Вручную добавьте в конец
.pipeline/memory/agent_handoff.mdодну строку:
CODEX_DONE
result: [вставьте результат вывода Codex]
- Затем продолжайте текущий рабочий процесс в Claude Code
Дополнительное чтение и направление развития
1. Расширение пользовательских навыков
Oh My Paper поддерживает добавление пользовательских навыков в локальную папку проекта skills/. Создайте файл в формате ниже:
---
name: my-custom-skill
description: Пользовательский анализ-процесс под конкретную предметную область
stage: survey # Опционально: survey | ideation | experiment | write | review
---
# Заголовок навыка
## Шаги выполнения
1. Чтение контекстных файлов ...
2. Выполнение конкретных задач ...
После регистрации, когда вы запускаете команды вроде /omp:survey, Claude будет автоматически предлагать релевантные пользовательские навыки.
2. Продвинутая совместная работа нескольких Agent
Если вы ведете несколько исследовательских направлений параллельно, вы можете запускать /omp:setup в разных подпапках: у каждого подпроекта будут отдельные .pipeline/ и своя команда Agent. Роль Conductor отвечает за обзор и координацию между подпроектами.
3. Рабочий процесс совместной работы с Overleaf
Используя навык inno-rclone-to-overleaf, синхронизируйте локальную статью в Overleaf. После этого можно пригласить наставника, чтобы он делал комментарии прямо в Overleaf, а после завершения правок — синхронизировать изменения обратно на локальный компьютер. Весь процесс не требует ручной загрузки/выгрузки файлов.
4. Подключение других LLM backend
Сам Oh My Paper опирается только на Claude Code, но на этапе экспериментов можно настроить использование разных LLM для сравнения и оценки. В директории experiment/ создайте файл конфигурации модели:
# experiment/model_configs.py
llm_configs = {
"claude-sonnet": {"provider": "anthropic", "model": "claude-3-5-sonnet"},
"gpt-4o": {"provider": "openai", "model": "gpt-4o"},
"gemini-pro": {"provider": "google", "model": "gemini-1.5-pro"},
}
Затем в коде эксперимента используйте эти конфигурации для поперечного сравнения.
5. Отслеживание актуальных исследовательских новостей
Используйте навык research-news, чтобы регулярно сканировать свежие публикации ArXiv, отбирая новые работы, которые соответствуют вашему направлению, и автоматически обновлять literature_bank.md. Его можно дополнить периодическими cron-задачами, чтобы обновлять библиотеку подбора каждую неделю.