🔍 Что это
Search-First Development — это рабочий процесс, который превращает «исследование перед кодом» в системный навык для агента-разработчика. Вместо того чтобы сразу писать новую функцию или утилиту, агент сперва проверяет, не существует ли уже готового решения: пакета на npm/PyPI, MCP-сервера, другого навыка или GitHub-репозитория. Подход радикально сокращает количество самописного кода, ускоряет разработку и снижает риск багов, опираясь на проверенные сообществом инструменты.
⚙️ Как работает
1️⃣ Need Analysis — анализ потребности
Агент чётко формулирует, какую именно функциональность нужно добавить, и фиксирует технологические ограничения проекта (язык, фреймворк, версии).
2️⃣ Parallel Search — параллельный поиск 🔎
Запускается исследователь (subagent), который одновременно опрашивает несколько источников:
- npm / PyPI — ищет подходящие пакеты;
- MCP сервера — проверяет, есть ли готовый инструмент для данной задачи;
- GitHub — ищет код, шаблоны или библиотеки;
- Другие навыки — могут ли существующие сценарии решить проблему.
3️⃣ Evaluate — оценка кандидатов
Каждый найденный вариант оценивается по шкале:
- Функциональность (точность совпадения);
- Обслуживаемость (частота обновлений, коммиты);
- Сообщество (звёзды, contributors);
- Документация;
- Лицензия (MIT/Apache — предпочтительно);
- Зависимости (размер и транзитивность).
4️⃣ Decide — решение по матрице
| Сигнал |
Действие |
| Точное совпадение, хорошо поддерживается, лицензия MIT/Apache |
Adopt — рекомендовать пакет и запросить одобрение на установку |
| Частичное совпадение, хорошая основа |
Extend — рекомендовать пакет + тонкую обёртку, ждать одобрения |
| Несколько слабых кандидатов |
Compose — предложить комбинацию из 2-3 маленьких пакетов и план интеграции |
| Ничего не подходит |
Build — объяснить, почему нужен собственный код, и реализовать только в рамках текущего таска |
5️⃣ Approval Checkpoint / Implementation 🔒
Перед любой записью (установка пакета, изменение конфигурации, создание PR) агент обязательно получает явное одобрение пользователя. Для действий с платными сервисами, паролями или сетевыми изменениями возвращается чек-поинт с рекомендацией — без автоматического применения.
🎯 Когда использовать
- Новая функциональность — добавление «проверки битых ссылок», «HTTP-клиента», «валидатора схем»;
- Добавление зависимостей — перед тем как прописать
npm install или pip install;
- Перед написанием утилит — если кажется, что нужен хелпер, сначала поищите готовый;
- Планирование архитектуры — на этапе выбора стека и паттернов интеграции;
- Интеграция с внешними сервисами — проверка, не существует ли уже MCP-сервер для нужного API.
💡 Примеры из практики
Пример 1: «Добавить проверку битых ссылок в Markdown»
- Поиск:
npm "markdown dead link checker"
- Найдено:
textlint-rule-no-dead-link (оценка 9/10)
- Решение: Adopt — рекомендовать пакет и запросить одобрение перед
npm install
- Итог: ноль строк самописного кода, готовое battle-tested решение
Пример 2: «Добавить HTTP-клиент с повторными попытками»
- Поиск: PyPI
httpx retry, npm http client retry
- Найдено:
got (Node) с плагином retry, httpx (Python) со встроенными retry
- Решение: Adopt — рекомендовать и попросить одобрение
- Итог: 0 строк кода обёртки, конфигурация в несколько строк
Пример 3: «Добавить линтер для конфигурационных файлов»
- Поиск:
npm "config linter schema"
- Найдено:
ajv-cli (оценка 8/10)
- Решение: Adopt + Extend — рекомендовать
ajv-cli + написать один файл схемы, ждать одобрения
- Итог: 1 внешний пакет + 1 файл схемы вместо десятков строк валидации
🚫 Антипаттерны
- ❌ Jumping to code — писать утилиту, не проверив, существует ли она;
- ❌ Ignoring MCP — не смотреть, не предоставляет ли уже MCP-сервер нужную возможность;
- ❌ Over-customizing — оборачивать библиотеку так тяжело, что пропадают все её преимущества;
- ❌ Dependency bloat — ставить массивный пакет ради одной маленькой функции.
🧩 Интеграция с другими агентами
- Планировщик (planner agent) должен запускать исследователя перед фазой Architecture Review, чтобы избежать изобретения велосипедов в плане.
- Архитектор (architect agent) использует результат поиска для выбора стека и обнаружения готовых reference-архитектур.
- Iterative-retrieval skill — комбинируется для глубинного поиска: сначала широкий обзор (npm/PyPI/MCP), затем детальная оценка лучших кандидатов, затем проверка совместимости с проектом.
💎 Важно знать
- Режим read-only по умолчанию — исследование проводится без изменений в проекте. Любой запрос на установку или конфигурацию возвращается как рекомендация с запросом одобрения.
- Шорткаты — для типовых задач (линтер, форматтер, HTTP-клиент, валидация) в навыке уже указаны конкретные имена пакетов (например,
eslint, pytest, httpx, zod). Их можно искать напрямую, не тратя время на формулировку запроса.
- Быстрый режим — для простых нужд достаточно мысленно пройти чек-лист: "Есть ли это в репозитории? Это частая проблема? Есть ли MCP? Есть ли другой навык? Есть ли шаблон на GitHub?"
- Полный режим — для сложных задач делегируйте поиск исследовательскому subagent'у с указанием языка и ограничений.
Комментарии
Комментариев пока нет. Будьте первым.