loogle-search — скилл для Claude Code: поиск лемм в Mathlib
Ищет леммы в Mathlib по форме типа, когда имя забыто, а сигнатура примерно известна. Пригодится в доказательствах на Lean.
npx skills add parcadei/Continuous-Claude-v3 --skill loogle-search -a claude-codeЧто делает loogle-search
Скилл даёт агенту команду loogle-search, которая принимает шаблон сигнатуры и возвращает подходящие леммы. Синтаксис простой: _ — любой одиночный тип, ?a и ?b — типовые переменные, причём одинаковые имена означают один и тот же тип. Запись Foo, Bar требует, чтобы лемма упоминала оба имени, а Foo.bar ищет точное совпадение. Флаг --json отдаёт результат в машинном виде.
Скорость зависит от того, поднят ли сервер. С loogle-server в фоне запрос укладывается в 100–200 мс, потому что индекс держится в памяти. Без сервера каждый запрос — холодный старт около 10 секунд: подгружается индекс на 343MB. Если работаете с доказательствами подолгу, сервер стоит запустить сразу.
Перед первым запуском Loogle нужно собрать: cd ~/tools/loogle && lake build, затем lake build LoogleMathlibCache либо сборка с --write-index. Без этого команда искать не будет — это первое, на чём спотыкаются. Дальше цикл такой: понять, какая форма типа нужна, найти по ней имя леммы, применить её в доказательстве.
Какие задачи решает
- найти лемму, когда известна форма типа, а имя вылетело из головы
- посмотреть, что вообще есть для конкретного типа
- вести поиск по направлению типа в доказательстве
- проверить, какие леммы связывают два понятия, например цикличность и центр
- получить список лемм про
Fintype.cardв машинном виде
Примеры запросов агенту
- найди лемму для
Nontrivial _ ↔ 1 < Fintype.card _ - что есть в Mathlib про
IsCyclic, center - запусти
loogle-search "(?a → ?b) → List ?a → List ?b"и покажи результат
Как установить loogle-search
1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill loogle-search -a claude-code2Вручную: положить файлы
~/.claude/skills/loogle-search/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/loogle-search/
1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill loogle-search -a codex2Вручную: положить файлы
.agents/skills/loogle-search/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill loogle-search -a cursor2Вручную: положить файлы
.cursor/skills/loogle-search/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install parcadei/Continuous-Claude-v3 loogle-search2Вручную: положить файлы
.github/skills/loogle-search/SKILL.md1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill loogle-search -a gemini-cli2Командой платформы
gemini skills install https://github.com/parcadei/Continuous-Claude-v3 --path .claude/skills/loogle-searchВручную: положить файлы
.devin/skills/loogle-search/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill loogle-search -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о loogle-search
Как установить loogle-search в Claude?
Выполните npx skills add parcadei/Continuous-Claude-v3 --skill loogle-search -a claude-code. Файл скилла окажется по пути ~/.claude/skills/loogle-search/SKILL.md.
Что делает loogle-search?
Ищет леммы в Mathlib по шаблону сигнатуры типа. Помогает, когда форма типа известна, а точное имя леммы нет.
Что нужно подготовить до первого запроса?
Собрать Loogle: cd ~/tools/loogle && lake build, затем lake build LoogleMathlibCache или сборку с --write-index. Без сборки поиск не заработает.
Исходный текст
SKILL.md · MIT
--- name: loogle-search description: Search Mathlib for lemmas by type signature pattern --- # Loogle Search - Mathlib Type Signature Search Search Mathlib for lemmas by type signature pattern. ## When to Use - Finding a lemma when you know the type shape but not the name - Discovering what's available for a type (e.g., all `Nontrivial ↔ _` lemmas) - Type-directed proof search ## Commands ```bash # Search by pattern (uses server if running, else direct) loogle-search "Nontrivial _ ↔ _" loogle-search "(?a → ?b) → List ?a → List ?b" loogle-search "IsCyclic, center" # JSON output loogle-search "List.map" --json # Start server for fast queries (keeps index in memory) loogle-server & ``` ## Query Syntax | Pattern | Meaning | |---------|---------| | `_` | Any single type | | `?a`, `?b` | Type variables (same variable = same type) | | `Foo, Bar` | Must mention both `Foo` and `Bar` | | `Foo.bar` | Exact name match | ## Examples ```bash # Find lemmas relating Nontrivial and cardinality loogle-search "Nontrivial _ ↔ _ < Fintype.card _" # Find map-like functions loogle-search "(?a → ?b) → List ?a → List ?b" # → List.map, List.pmap, ... # Find everything about cyclic groups and center loogle-search "IsCyclic, center" # → commutative_of_cyclic_center_quotient, ... # Find Fintype.card lemmas loogle-search "Fintype.card" ``` ## Performance - **With server running**: ~100-200ms per query - **Cold start (no server)**: ~10s per query (loads 343MB index) ## Setup Loogle must be built first: ```bash cd ~/tools/loogle && lake build lake build LoogleMathlibCache # or use --write-index ``` ## Integration with Proofs When stuck in a Lean proof: 1. Identify what type shape you need 2. Query Loogle to find the lemma name 3. Apply the lemma in your proof ```lean -- Goal: Nontrivial G from 1 < Fintype.card G -- Query: loogle-search "Nontrivial _ ↔ 1 < Fintype.card _" -- Found: Fintype.one_lt_card_iff_nontrivial exact Fintype.one_lt_card_iff_nontrivial.mpr h ```
© parcadei · MIT · parcadei/Continuous-Claude-v3