paper-search
Skill35 starsChanged 2 months agoMITView on GitHub
This skill should be used when the user asks to "найди новые статьи", "поищи свежие статьи по моей теме", "scan for new papers", or wants a library-aware arXiv shortlist added to the Operon Reading Kanban in Obsidian.
17 other projects use a version of this.
Adopted by
Most recently taken up by
- shkodnik1917/claude-brainlabword for word, first seen Nov 8, 2026
- DGU-stallion/PaperPilottheir own version, first seen Nov 1, 2026
- WncFht/agent-basic-skilltheir own version, first seen Oct 13, 2026
- lucaswychan/quant-paper-agenttheir own version, first seen Oct 13, 2026
- FengYM666/AI-Research-OStheir own version, first seen Oct 8, 2026
- openags/paper-search-mcptheir own version, first seen Oct 2, 2026
Used with
Projects with it also use extract-paper-images, paper-analyze and 1 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Clay-HHKSkillextract-paper-images
从论文中提取图片,优先从arXiv源码包获取真正的论文图
Also in 4 projects that use this
Clay-HHKSkillpaper-analyze
深度分析单篇论文,生成详细笔记和评估,图文并茂
Also in 3 projects that use this
- +1 more from Clay-HHK
Other versions17 projects use a version of this.
Word for word · 1
- shkodnik1917/claude-brainlab★ 35100% same
Edited · 0
None found.
Wrote their own version · 16
- microsoft/ResearchStudio★ 2.9ksame name
- openags/paper-search-mcp★ 2.7ksame name
- juliye2025/evil-read-arxiv★ 1.7ksame name
- WncFht/agent-basic-skill★ 30same name
- Tigerdwgth/Paperify★ 16same name
- DGU-stallion/PaperPilot★ 4same name
- wzh4464/claude-skills★ 3same name
- alfredzhang98/research-obsidian-skill★ 2same name
- pengqianhan/open-paper-skills★ 2same name
- wilbeibi/wilbeibi-skills★ 2same name
6 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository68 other files it gives its agents.
- rules/agents.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- academic-plottingSkill
- agent-identifierSkill
- architecture-designSkill
- astar-paper-reviewSkill
- bug-detectiveSkill
- call-notesSkill
- cavemanSkill
- citation-verificationSkill
- code-ingestSkill
- code-librarySkill
- code-review-excellenceSkill
- command-developmentSkill
- create-projectSkill
- daily-codingSkill
- defuddleSkill
- diagnoseSkill
- doc-coauthoringSkill
- experiment-runsSkill
- frontend-designSkill
- git-guardrails-claude-codeSkill
- git-workflowSkill
- google-workspace-mcpSkill
- grill-meSkill
- grill-with-docsSkill
- handoffSkill
- handoff-to-jarvisSkill
- hook-developmentSkill
- improve-codebase-architectureSkill
- json-canvasSkill
- kaggle-learnerSkill
- lab-knowledgeSkill
- latex-conference-template-organizerSkill
- mcp-integrationSkill
- ml-paper-writingSkill
- obsidian-basesSkill
- obsidian-cliSkill
- obsidian-experiment-logSkill
- obsidian-markdownSkill
- operon-obsidian-setupSkill
- paper-ingestSkill
- paper-to-socialSkill
- paper-venue-formattingSkill
- pdf-readerSkill
- planning-with-filesSkill
- plugin-structureSkill
- presentationSkill
- presenter-modeSkill
- prototypeSkill
- research-cycleSkill
- research-ideationSkill
- restore-sessionSkill
- results-analysisSkill
- results-reportSkill
- reverse-outline-flow-checkSkill
- review-responseSkill
- setup-pre-commitSkill
- skill-developmentSkill
- tddSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 1 is distinctive, and 6 are very specific to this project.
0
Common
Most of the 9 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 357
ALWAYS запускать несколько параллельных subagents для поиска по разным topic bundles.
- Very specific: line 359
NEVER возвращать статьи, чьи карточки уже лежат в personal/operon/Reading/ или personal/operon/Archives/, включая Reading._Trash.
- Very specific: line 360
ALWAYS заводить по карточке на статью в personal/operon/Reading/ со статусом Reading.Инбокс, пустым разделом ## Заметка и всеми четырьмя …
- Very specific: line 361
ALWAYS логировать отклоненные статьи в personal/paper-search/rejected.md, чтобы их ID больше не всплывали в shortlist.
- Very specific: line 362
NEVER класть найденное в папку «Want to read» на AlphaXiv.
- Very specific: line 363
BEFORE the owner moves a card to «Очередь», only the dedup overview and the Reading.Инбокс card may exist.
- Very specific: line 365
NEVER автоматически ставить Жду публикацию или _Trash: это решения владельца на Kanban.
“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill: paper-search
Общий корпус лаборатории
Этот скилл только предлагает статьи и кладёт карточки на доску: в библиотеку и в общий корпус
ничего не попадает. Ввозит их /want-2-read (или /paper-ingest для одной статьи), и именно там
стоит обязательный шаг отправки в корпус. Не считать статью добавленной, пока она не появилась в
корпусе разделами: доска и библиотека это ещё не то, что видят остальные.
Goal
Сначала проверить колонку «Жду публикацию» и пометить [found] те карточки, у которых появилась публичная версия. Затем просканировать текущую Obsidian-библиотеку, вывести темы из живой структуры папок <направление>/<тема>/literature/ и проектных карточек, найти свежие статьи arXiv за последние 30 дней, записать один обзорный файл в personal/paper-search/ и завести по каждой найденной статье карточку в колонке «Инбокс» доски Reading плагина Operon. Решение принимает владелец, перетаскивая карточку из «Инбокса» в «Очередь»; ingest делает потом /want-2-read. Обзорный файл остаётся: он служит журналом уже виденных arXiv ID, чтобы одни и те же статьи не всплывали в следующих поисках.
Boundaries
- Не использовать захардкоженные темы.
- Не предлагать статьи, которые уже есть в литературе тем, журналах и списке отклонённых
personal/paper-search/, живых карточкахpersonal/operon/Reading/или архивеpersonal/operon/Archives/. - Не создавать отдельную папку
papers_<date>/. - Не создавать полные paper notes и не запускать
paper-ingest: подтверждение выражается переносом карточки владельцем из «Инбокса» в «Очередь», после чего ingest выполняет/want-2-read. - Все human-facing описания, статусы и инструкции в обзорном файле писать на русском.
- Не раскладывать статьи по отдельным спискам чтения: единственная очередь это доска Reading в Operon.
- Не запускать
paper-ingestсамому: этот скилл только кладёт карточки в «Инбокс». Ingest делает/want-2-readпо тем карточкам, которые владелец перетащил в «Очередь». - Не менять
statusни у одной карточки. Единственная разрешённая правка чужой колонки это префикс[found]и содержимое разделов у карточек в «Жду публикацию». - Не молчать про правки доски: каждое изменение статуса, заголовка или колонки проговаривается в чате.
Default Workflow
0. Проверить колонку «Жду публикацию» (всегда первым шагом)
До любого поиска пройти по живым карточкам со status: Reading.Жду публикацию:
VAULT="${OBSIDIAN_VAULT:-$HOME/brainlab}"
rg -l '^status: Reading\.Жду публикацию$' "$VAULT/personal/operon/Reading" -g '*.md'Для каждой карточки поискать точное название в официальных источниках: arXiv, OpenReview,
Crossref/DOI, DBLP, страница венью. Записать paperLastChecked: <сегодня> независимо от исхода.
Если публичной версии по-прежнему нет — обновить только paperLastChecked и, если появились
новые детали поиска, дописать одну строку под ## Комментарии. Заголовок не трогать.
Если публичная версия найдена — оформить карточку по протоколу [found] ниже. Статус НЕ
менять: этот скилл не делает ingest, поэтому и двигать карточку ему не за что. Перенос в
«Очередь» сделает /want-2-read — но только после успешного полного ingest, а не по факту
находки. До этого карточка живёт в «Жду публикацию» с пометкой [found].
Протокол [found]
- Дописать префикс
[found]в начало H1 и вtaskTitle. Ровно один раз: если префикс уже стоит, не дублировать. Префикс нужен, чтобы на доске было видно, какие карточки ждать больше не надо. - Записать канонический URL в раздел
## arXiv. - Проставить во frontmatter
paperSource(arxiv|openreview|doi|venue),paperAvailability: public,paperLastChecked. - Удалить устаревший агентский отчёт о том, что статья не находится. Это единственный текст,
который скиллу можно стирать в
## Комментарии: собственные заметки владельца не трогать никогда. Вместо отчёта поставить callout находки. - Если старая заметка в
<направление>/<тема>/literature/создавалась без доступного full text, оставитьpaperIngestState: pendingво frontmatter, чтобы/want-2-readсделал повторный полный ingest.
Итоговый вид карточки:
---
operonId: <7 символов>
taskTitle: '[found] <Заголовок статьи>'
status: Reading.Жду публикацию
priority: C
datetimeCreated: <ISO>
datetimeModified: <ISO, обновить>
paperSource: arxiv
paperAvailability: public
paperLastChecked: <YYYY-MM-DD>
---
# [found] <Заголовок статьи>
## Заметка
## arXiv
https://arxiv.org/abs/<ARXIV_ID>
## Тема
<тема>
## Комментарии
> [!success] Публичная версия нашлась DD-MM-YYYY
> Источник: arXiv `<ARXIV_ID>`, PDF доступен — https://arxiv.org/abs/<ARXIV_ID>
> Следующий `/want-2-read` сделает полный ingest и после него перенесёт карточку в «Очередь».Если arXiv-версии не существует, а найден только OpenReview, DOI или страница венью:
## Комментарии
> [!success] Публичная версия нашлась DD-MM-YYYY
> Источник: OpenReview, ICML 2026 — https://openreview.net/forum?id=<ID>
> arXiv-версии не существует, поэтому `/want-2-read` не сможет зеркалить карточку на AlphaXiv:
> MCP умеет добавлять только arXiv-статьи. Ingest в Zotero и Obsidian при этом отработает.Раздел ## arXiv при этом сохраняет своё имя (менять схему карточки нельзя), но содержит
канонический не-arXiv URL и строку arXiv-версии не существует.
Сообщить в чат
Про изменения на доске молчать нельзя: владелец должен понимать, что произошло, не открывая Obsidian. После шага 0 написать отдельным блоком, что именно проверено и что изменилось:
Проверил «Жду публикацию» (N карточек):
- [found] <Заголовок> — нашлась arXiv-версия 2605.24956, помечена [found], лежит в «Жду публикацию»
- <Заголовок> — публичной версии по-прежнему нет, обновил только дату проверки
Помеченные [found] следующий /want-2-read заингестит и сам перенесёт в «Очередь».Если ничего не изменилось, всё равно написать одну строку: «Проверил «Жду публикацию»: N карточек, изменений нет.» То же правило действует для любого другого случая, когда скилл трогает статус, заголовок или колонку карточки: каждое такое изменение проговаривается в чате отдельной строкой.
1. Построить topic index из библиотеки
Работать от текущей структуры:
# Разборы лежат по темам: один репозиторий `literature` на тему дерева.
LIT=("${OBSIDIAN_VAULT:-$HOME/brainlab}"/*/*/literature)Извлечь сигналы из:
- папок
<направление>/<тема>/literature/ - заголовков заметок
- тегов во frontmatter
- README работ
<направление>/<тема>/<работа>/README.md - уже виденных arXiv ID в литературе тем, в
personal/paper-search/,personal/operon/Reading/иpersonal/operon/Archives/
Нужно получить ранжированный инвентарь тем:
- доминирующие folder families
- повторяющиеся method keywords
- recurring model families
- application domains
Если библиотека меняется, набор тем тоже должен меняться автоматически.
2. Сформировать несколько topic bundles
Из strongest clusters сформировать несколько независимых поисковых направлений.
Примеры валидных паттернов:
- ключевые слова из названий заметок
- ключевые теги
- пары вроде
zeroth-order + llm,lora + hybrid,muon + pretraining
Нельзя:
- подставлять фиксированную тему из памяти модели
- использовать один общий запрос вместо нескольких узких
3. Искать параллельно через subagents
Для повышения полноты нужно запускать параллельных агентов, а не делать один линейный поиск.
Обязательное правило:
- выделить 3-6 topic bundles
- на каждый bundle запустить отдельного subagent через
Task - предпочитать
exploreдля поиска иgeneralдля более сложной агрегации - просить каждый subagent вернуть только релевантные свежие arXiv-кандидаты с кратким обоснованием
Схема примерная, темы берутся из живой структуры, а не отсюда. Прежней двухуровневой
таксономии (Optimization/, PEFT/, LLM/) больше нет ни в хранилище, ни в базе, ни на
AlphaXiv, ни в Zotero: темы плоские и называются одинаково во всех четырёх местах.
- агент 1:
zo-estimators - агент 2:
muon-sign-methods,muon-convergence-theory,markovian-optimization,dro-reweighting - агент 3:
lora-basics,rank-budget,adapter-composition - агент 4:
llm-scaling,training-dynamics,learning-rate-schedules - при необходимости дополнительные агенты под
reinforcement-learningи прикладные темы
Каждый агент должен:
- искать статьи только за последние 30 дней
- исключать already seen arXiv IDs
- возвращать больше кандидатов, чем войдет в финальный shortlist
- отбрасывать weakly related papers сам, но с коротким reason
4. Использовать arXiv через реально доступный путь
Предпочтительный источник: export.arxiv.org.
Если один способ недоступен, агент должен попробовать другой рабочий read-only маршрут, но не должен останавливаться после первой неудачи.
При поиске учитывать только новые статьи за последние 30 дней.
5. Собрать единый shortlist
После параллельного поиска нужно:
- объединить кандидатов от всех subagents
- дедуплицировать по arXiv ID
- отфильтровать уже существующие статьи
- rerank по близости к текущей библиотеке
Ранжирование должно учитывать:
- совпадение с folder names
- совпадение с tags
- совпадение с темами из
Papers/,Projects/,Staff/ - близость к уже существующим research clusters
Нужно находить немного больше статей, чем в минимальном shortlist, но не превращать обзор в мусорную свалку. Обычно целевой диапазон: 8-15 хороших кандидатов, если материал реально есть.
6. Записать один overview file в personal/paper-search/
Использовать один файл:
personal/paper-search/papers_DD-MM-YYYY.mdНе создавать папку papers_DD-MM-YYYY/.
Файл служит техническим журналом поиска и dedup по arXiv ID. Пользователь принимает статьи не через редактирование этого файла, а на доске Reading.
Если personal/paper-search/ не существует, создать её.
7. Формат обзора
Обзорный файл должен быть целиком на русском и иметь формат примерно такого вида:
# Новые статьи - DD-MM-YYYY
Найдено N новых статей по M тематическим блокам.
## Откуда взялись темы
- ...
## <Тематический блок из реальной библиотеки>
### [1] Название статьи
**Предлагаемая папка**: `<направление>/<тема>/literature`
**arXiv**: <url>
**Дата**: YYYY-MM-DD
Короткое описание на русском:
- что делает статья
- почему она релевантна текущей библиотеке
- почему предложенная папка подходит лучше всего
Статус: `кандидат, еще не ingested`
## Слабые кандидаты
- Название — краткая причина, почему не вошло в основной списокВажно:
- тематические блоки должны идти из живой структуры библиотеки, а не из захардкоженной онтологии
- у каждой shortlisted статьи должна быть конкретная proposed destination folder
- нумерация должна быть стабильной для аудита и ссылок на кандидатов; решение о чтении принимается переносом карточки на Kanban
8. Сообщение пользователю
После записи обзора сообщать коротко:
Найдено N статей по M темам. Карточки добавлены в Reading → Инбокс.
Перетащи интересные статьи в «Очередь». Технический журнал: [[personal/paper-search/papers_DD-MM-YYYY]]9. Завести карточки в «Инбоксе» доски Reading
Сразу после записи обзорного файла, без ожидания одобрения: по одной карточке на каждую найденную статью. Владелец разбирает их перетаскиванием, и это дешевле, чем диалог «принять 2, 5, 7».
personal/operon/Reading/<Заголовок статьи>.mdКарточка использует ту же каноническую схему, что и /want-2-read: четыре раздела,
## Заметка пустой до ingest.
---
operonId: <7 символов, уникально: [a-z0-9]>
status: Reading.Инбокс
priority: C
datetimeCreated: <ISO, локальное время>
datetimeModified: <ISO, локальное время>
---
# <Заголовок статьи>
## Заметка
## arXiv
https://arxiv.org/abs/<ARXIV_ID>
## Тема
<человекочитаемая тема из тематического блока обзора>
## Комментарии
<одно-два предложения из обзора: чем статья задевает текущие проекты и почему предложена
именно эта папка>Правила:
## Заметкаоставить ПУСТЫМ. Пустой раздел означает «через ingest не проходила», и именно по нему/want-2-readотбирает работу. Не писать туда заглушку.- Все четыре раздела присутствуют всегда, даже если раздел пуст.
## Темаэто человекочитаемая метка (LoRA base,Zero-order optimization,Muon), никогда не слаг вродеlora_baseи не хвост пути папки.operonIdдолжен быть уникален по всей папкеpersonal/operon/Reading/и поpersonal/operon/Archives/; проверить перед записью.- Имя файла всегда
personal/operon/Reading/operon-<operonId>.md(правило 11 в~/.claude/skills/paper-ingest/references/alphaxiv-sync.md), никогда не заголовок статьи и не arXiv ID. Человекочитаемое имя живёт в YAML-полеtaskTitleи в H1: Operon показываетtaskTitle, а не basename. Заголовок вtaskTitleи H1 сохраняется как есть, включая двоеточия и$...$; санитайзить его не надо, потому что в имя файла он больше не попадает.taskTitleпри этом обязан быть корректным YAML-скаляром: заключить в одинарные кавычки, внутренний апостроф удвоить. - Если карточка с такой статьёй уже есть в любой колонке, второй не создавать.
- Статус всегда
Reading.Инбокс. Решение о чтении принимает владелец перетаскиванием.
После triage владелец использует две дополнительные колонки:
Жду публикацию— статья интересна, но публичной версии пока нет. Иpaper-search(шаг 0), и/want-2-readперепроверяют доступность на каждом запуске и помечают карточку[found], когда публичная версия появилась. Самpaper-searchстатус не меняет — он не ингестит.[found]карточка попадает в рабочий батч/want-2-read, получает полный ingest и после него переносится в «Очередь»: колонка означает «публичной версии ещё нет», и после разбора это уже неправда._Trash— явный отказ, terminal/cancelled status. Карточка остаётся на доске: ночной архиватор (~/.local/bin/operon_daily_archive.py) выключен 19-10-2026 по просьбе владельца — он уносил «Прочитано» и корзину вpersonal/operon/Archives, и колонки на доске пустели. Title и arXiv ID остаются частью dedup и в архиве.
Заполнением ## Заметка, **Zotero**: и подробного описания занимается /want-2-read
после ingest. Этот скилл ingest не делает и постоянные папки не трогает.
Для отклоненных статей:
- добавить запись в
personal/paper-search/rejected.md - формат должен быть простым и пригодным для future dedup, например:
- 27-04-2026 — Title — https://arxiv.org/abs/2604.12345 — отклонено после daily shortlist- в обзорном файле
papers_DD-MM-YYYY.mdперенести их в блок отклоненных или явно пометить как отклоненные
До решения пользователя никаких full notes и никаких Zotero moves.
Hard Rules
- NEVER использовать фиксированные темы вроде EEG, если библиотека этого не показывает.
- ALWAYS писать human-facing обзор по-русски.
- ALWAYS использовать один файл
personal/paper-search/papers_DD-MM-YYYY.md. - NEVER создавать папку
papers_DD-MM-YYYY/. - ALWAYS запускать несколько параллельных subagents для поиска по разным topic bundles.
- NEVER пересказывать пользователю статьи, которые уже есть в библиотеке или были ранее staged/trashed.
- NEVER возвращать статьи, чьи карточки уже лежат в
personal/operon/Reading/илиpersonal/operon/Archives/, включаяReading._Trash. - ALWAYS заводить по карточке на статью в
personal/operon/Reading/со статусомReading.Инбокс, пустым разделом## Заметкаи всеми четырьмя каноническими разделами. - ALWAYS логировать отклоненные статьи в
personal/paper-search/rejected.md, чтобы их ID больше не всплывали в shortlist. - NEVER класть найденное в папку «Want to read» на AlphaXiv. Эта папка означает «владелец решил читать» и синхронизируется с колонкой «Очередь», а
paper-searchкладёт кандидатов только в «Инбокс». Зеркалить на AlphaXiv будет/want-2-readпосле ingest. - BEFORE the owner moves a card to «Очередь», only the dedup overview and the
Reading.Инбоксcard may exist; no ingest, Zotero item, PDF, or permanent Literature note. - NEVER выставлять статус карточки выше «Инбокса»: перекладывать в «Очередь» решает владелец, а ingest потом делает
/want-2-read. - NEVER автоматически ставить
Жду публикациюили_Trash: это решения владельца на Kanban. - ALWAYS начинать запуск с шага 0: проверка колонки «Жду публикацию» и протокол
[found]. - NEVER двигать карточку из «Жду публикацию» в «Очередь» самому, даже когда публичная версия
найдена и бесспорна. Скилл ставит
[found]и сообщает; перетаскивает владелец. - ALWAYS дублировать в чат любое изменение доски: что проверено, что помечено
[found], что осталось без изменений. Владелец не должен открывать Obsidian, чтобы понять, что произошло. - ALWAYS удалять устаревший агентский отчёт «в интернете ничего не найдено» при постановке
[found]. Собственный текст владельца в## Комментариине трогать никогда. - ALWAYS сохранять имя файла
operon-<operonId>.mdи человекочитаемыйtaskTitle.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

