Тема
Поиск OSS-решений через Claude Code
Как быстро находить и проверять пакеты/платформы/плагины не выходя из сессии — минимум расхода лимитов, максимум достоверности. Порядок инструментов — от дешёвого к дорогому (см. LIMITS-OPTIMIZATION.md).
Быстрое дерево решений
| Что нужно узнать | Инструмент | Стоимость |
|---|---|---|
| «Есть ли в этом каталоге решение под задачу X» | Grep по opensource/ (этот каталог) | бесплатно |
| Синтаксис/возможности Laravel-пакета из стека | mcp__laravel-boost__search-docs | 1% |
| Документация стороннего пакета (не Laravel-core) | mcp__context7__* | ~низкая |
| «Какие вообще пакеты есть под задачу» | Packagist API через WebFetch | низкая |
| Плагины Filament | filamentphp.com/plugins через WebFetch | низкая |
| Живость репозитория (звёзды, последний релиз, issues) | GitHub API через WebFetch | низкая |
| Свежие обзоры/сравнения «2026» | mcp__searxng__searxng_web_search (time_range: year) | средняя |
| Проверить, что пакет реально ставится под наш PHP | docker exec {app} composer require --dry-run | средняя |
Правило №0: прежде чем искать в интернете — Grep по этому каталогу opensource/. Большинство типовых задач студии здесь уже разобраны с вердиктом. Экономит и время, и лимит.
1. laravel-boost search-docs — документация стека (1%)
Первый выбор для всего, что касается Laravel, Filament, Livewire, Inertia и пакетов, которые boost знает про установленную версию. Возвращает компактный структурированный ответ под точную версию проекта, а не «вообще из интернета».
mcp__laravel-boost__search-docs
queries: ["media library conversions", "filament repeater relationship"]- Отдаёт куски документации ровно под установленные версии пакетов — не путает мажоры.
- Использовать до
context7и до веб-поиска, если тема — ядро Laravel-экосистемы. - Не годится для пакетов, которых нет в проекте, и для «а что вообще выбрать» — для этого ниже.
2. context7 — документация любого пакета (по требованию)
Когда нужен API/конфиг конкретной библиотеки, которой может не быть в стеке проекта (и Laravel, и не-Laravel). Свежее, чем обучающие данные модели.
mcp__context7__resolve-library-id libraryName: "Prism PHP" → /prism-php/prism
mcp__context7__query-docs libraryId: "/prism-php/prism"
query: "structured output ObjectSchema example"- Сначала
resolve-library-id(получить/org/project), потомquery-docs. - Лимит: ≤3 вызова
resolveи ≤3query-docsна вопрос — если не нашлось, брать лучший. - Хорошо для «как настроить/вызвать», плохо для «какой пакет выбрать из десяти».
3. Packagist API — каталог пакетов (WebFetch)
Для вопроса «какие пакеты вообще есть под задачу» и метрик популярности. Возвращает JSON — компактно.
# Поиск по ключевому слову с тегом:
WebFetch https://packagist.org/search.json?q=telegram&tags=laravel
# Метрики конкретного пакета (скачивания, зависимости, версии):
WebFetch https://packagist.org/packages/spatie/laravel-medialibrary.json
# Только статистика загрузок:
WebFetch https://packagist.org/packages/prism-php/prism/stats.jsonЧто смотреть в ответе:
downloads.totalиdownloads.monthly— живость по трафику;github_stars,github_open_issues;versions— есть ли релиз под текущий мажор Laravel (require.php,require.laravel/framework);abandoned— если поле присутствует, пакет заброшен (Packagist помечает явно).
4. Filament-плагины (WebFetch)
Официальный каталог с фильтром бесплатных:
WebFetch https://filamentphp.com/plugins?filter=freeПеред установкой плагина — сверить его требуемую мажорную версию Filament с установленной (при смене мажора Filament плагины отстают на недели). См. admin-panels.md.
5. Живость репозитория — GitHub API (WebFetch)
Четыре сигнала из README.md проверяются одним-двумя запросами без клонирования:
# Основные метрики + дата последнего пуша + архивность:
WebFetch https://api.github.com/repos/prism-php/prism
# → pushed_at, archived, open_issues_count, stargazers_count, license
# Последний релиз (дата = как давно живёт):
WebFetch https://api.github.com/repos/prism-php/prism/releases/latest
# → tag_name, published_at
# Частота коммитов за год (52 числа по неделям):
WebFetch https://api.github.com/repos/prism-php/prism/stats/commit_activityКрасные флаги в ответе:
archived: true— репозиторий заморожен, не брать;pushed_atстарше ~12 месяцев — вероятно заброшен;- последний release старше года при живых issues — «полудохлый», проверять форки;
- лицензия AGPL/GPL при задаче «встроить в закрытый продукт» — юридический стоп (см. принципы лицензий в README.md).
6. Свежие сравнения — searxng web search (средняя стоимость)
Когда нужен обзор «что появилось нового» или сравнение вариантов, которых нет в каталоге:
mcp__searxng__searxng_web_search
query: "Laravel booking package open source 2026"
time_range: "year" # отсечь устаревшее- Ставить
time_range: "year"— иначе всплывает мёртвое. - Веб-поиск — последняя инстанция: он дороже и требует ручной проверки фактов (найденное всё равно прогнать через GitHub/Packagist API выше).
- Результаты веб-поиска не хранят достоверность — перед внесением в каталог подтверждать двумя независимыми источниками.
7. Проверка совместимости без установки
Прежде чем реально тянуть пакет в проект — убедиться, что он встанет под наш PHP/Laravel:
bash
# Сухой прогон резолвера зависимостей (ничего не ставит):
docker exec {app} composer require vendor/package --dry-run
# Показать, что мешает конкретной версии встать:
docker exec {app} composer why-not vendor/package ^2.0Ловит заранее: несовместимость по php-версии, конфликт symfony/*, отсутствие расширения (ext-exif, ext-gd) — те же грабли, что описаны в MCP-SETUP.md про boost.
Готовые промпты (copy-paste)
Формулировки, дающие максимально точный результат при минимуме итераций.
Подобрать пакет под задачу (сначала каталог, потом сеть):
Найди решение для <ЗАДАЧА>. Сначала Grep по opensource/ — если там есть вердикт, дай его.
Если нет — Packagist search + GitHub API на 2-3 кандидата, проверь живость (pushed_at,
archived, релиз под текущий Laravel, лицензия). Верни таблицу: пакет | статус | лицензия |
вердикт. Ничего не устанавливай.Проверить, жив ли конкретный пакет:
Проверь живость vendor/package: GitHub API (pushed_at, archived, open_issues, последний
релиз, лицензия) + Packagist (abandoned, downloads.monthly, есть ли версия под Laravel 12).
Дай вердикт 🟢/🟡/🔴 по легенде из opensource/README.md.Получить рабочий синтаксис пакета из стека:
Как сделать <ЧТО-ТО> в <ПАКЕТ>? Сначала laravel-boost search-docs (если пакет в стеке),
иначе context7 (resolve-library-id → query-docs). Дай минимальный рабочий пример под
версию из composer.json, без установки новых зависимостей.Обновить раздел каталога свежими данными:
Проверь актуальность opensource/<файл>.md: по каждому пакету — GitHub API на archived/
pushed_at, Packagist на abandoned. Отметь, что устарело, предложи замены. Правки покажи
диффом, файл не переписывай целиком.Антипаттерны поиска
| Паттерн | Проблема | Как правильно |
|---|---|---|
| Сразу веб-поиск, минуя каталог | Дорого + дублируешь уже разобранное | Grep opensource/ первым |
| Веб-поиск ради синтаксиса Laravel-пакета | boost/context7 точнее и дешевле | search-docs / context7 |
| Установка пакета «на пробу» без проверки | Тянет зависимости, ломает lock | composer require --dry-run сначала |
| Доверие звёздам без даты последнего пуша | Популярный, но мёртвый пакет | Смотреть pushed_at + релизы |
| Внесение в каталог по одному блог-посту | Блоги устаревают/ошибаются | Подтверждать GitHub+Packagist API |
| Игнор лицензии на старте | AGPL/платные модули всплывают поздно | Лицензия — в первом же скрине |