вариант

search-first

affaan-m/ECC affaan-m/ECC

Перед написанием собственного кода изучите существующие инструменты, библиотеки и шаблоны, запустив агент-исследователь.

...Расширить все
0
Обновлено время 2 октября 2026 г.

/search-first — Изучите вопрос, прежде чем приступать к программированию

Систематизирует рабочий процесс «поиска существующих решений перед внедрением».

Триггер

Используйте этот навык, когда:

  • Начинаете работу над новой функцией, для которой, вероятно, уже существуют готовые решения
  • При добавлении зависимости или интеграции
  • Пользователь просит «добавить функциональность X», и вы собираетесь писать код
  • Перед созданием новой утилиты, хелпера или абстракции

Рабочий процесс

┌─────────────────────────────────────────────┐
│  0. TOOL AVAILABILITY PREFLIGHT             │
│     Check search channels before relying on │
│     them; report skipped channels honestly   │
├─────────────────────────────────────────────┤
│  1. NEED ANALYSIS                           │
│     Define what functionality is needed      │
│     Identify language/framework constraints  │
├─────────────────────────────────────────────┤
│  2. PARALLEL SEARCH (researcher agent)      │
│     ┌──────────┐ ┌──────────┐ ┌──────────┐  │
│     │  npm /   │ │  MCP /   │ │  GitHub / │  │
│     │  PyPI    │ │  Skills  │ │  Web      │  │
│     └──────────┘ └──────────┘ └──────────┘  │
├─────────────────────────────────────────────┤
│  3. EVALUATE                                │
│     Score candidates (functionality, maint, │
│     community, docs, license, deps)         │
├─────────────────────────────────────────────┤
│  4. DECIDE                                  │
│     ┌─────────┐  ┌──────────┐  ┌─────────┐  │
│     │  Adopt  │  │  Extend  │  │  Build   │  │
│     │ as-is   │  │  /Wrap   │  │  Custom  │  │
│     └─────────┘  └──────────┘  └─────────┘  │
├─────────────────────────────────────────────┤
│  5. IMPLEMENT                               │
│     Install package / Configure MCP /       │
│     Write minimal custom code               │
└─────────────────────────────────────────────┘

Матрица принятия решений

Сигнал Действие
Точное совпадение, хорошо поддерживается, MIT/Apache Принять — установить и использовать напрямую
Частичное соответствие, хорошая основа Расширить — установить + написать тонкий обёртку
Несколько слабых совпадений Составить — объединить 2–3 небольших пакета
Не найдено ничего подходящего Создать — написать собственный код, но с учётом результатов исследований

Как использовать

Шаг 0: Предварительная проверка доступности инструментов

Это руководство для агента, а не исполняемый скрипт настройки. Проверяйте только те каналы, которые имеют отношение к стоящей перед вами задаче и проекту.

Канал Проверить Если отсутствует
Поиск в репозитории rg --files и целевые rg запросы Укажите, что проверке подверглись только видимые файлы
Реестр пакетов npm --version, python -m pip --versionили менеджер пакетов проекта Используйте поиск на сайте/в документации и не заявляйте о полном охвате реестра
GitHub CLI gh auth status Используйте только общедоступную веб-историю или локальную историю git
Инструменты MCP/документации Список доступных инструментов или локальная конфигурация MCP Используйте в качестве запасного варианта поиск в официальной документации или в Интернете
Каталог навыков ls ~/.claude/skills ~/.codex/skills где это применимо Предположим, что локальный каталог навыков отсутствует

Быстрый режим (встроенный)

Прежде чем писать утилиту или добавлять функциональность, мысленно проанализируйте:

  1. Существует ли это уже в репозитории? → rg сначала проверьте соответствующие модули/тесты
  2. Является ли это распространённой проблемой? → Проведите поиск в npm/PyPI
  3. Есть ли для этого MCP? → Проверьте ~/.claude/settings.json и выполните поиск
  4. Есть ли навык для этого? → Проверить ~/.claude/skills/
  5. Есть ли реализация/шаблон на GitHub? → Перед написанием совершенно нового кода запустите поиск кода на GitHub по поддерживаемому OSS

Полный режим (агент)

Для нетривиальной функциональности запустите агент-исследователь:

Agent(subagent_type="general-purpose", prompt="
  Research existing tools for: [DESCRIPTION]
  Language/framework: [LANG]
  Constraints: [ANY]

  Search: npm/PyPI, MCP servers, Claude Code skills, GitHub
  Return: Structured comparison with recommendation
")

В старых документациях по Claude Code это может называться Task(...); используйте текущее название агента/субагента, предоставленное активной средой тестирования.

Горячие клавиши поиска по категориям

Инструменты разработки

  • Линьтинг → eslint, ruff, textlint, markdownlint
  • Форматирование → prettier, black, gofmt
  • Тестирование → jest, pytest, go test
  • Pre-commit → husky, lint-staged, pre-commit

Интеграция с ИИ/LLM

  • Claude SDK → Context7 для просмотра последних документов
  • Управление подсказками → Проверка серверов MCP
  • Обработка документов → unstructured, pdfplumber, mammoth

Данные и API

  • HTTP-клиенты → httpx (Python), ky/undici (Node)
  • Валидация → zod (TS), pydantic (Python)
  • База данных → Сначала проверьте наличие серверов MCP

Контент и публикация

  • Обработка Markdown → remark, unified, markdown-it
  • Оптимизация изображений → sharp, imagemin

Точки интеграции

С помощью агента планировщика

Планировщик должен вызвать исследователя до начала Фазы 1 (Анализ архитектуры):

  • Исследователь определяет доступные инструменты
  • Планировщик включает их в план реализации
  • Это позволяет избежать «изобретения велосипеда» при составлении плана

С участием агента-архитектора

Архитектор должен проконсультироваться с исследователем по следующим вопросам:

  • решений по технологическому стеку
  • Выявление шаблонов интеграции
  • Существующие эталонные архитектуры

С использованием навыка итеративного поиска

Объединение для постепенного поиска:

  • Цикл 1: Широкий поиск (npm, PyPI, MCP)
  • Цикл 2: Подробная оценка лучших кандидатов
  • Цикл 3: Проверка совместимости с ограничениями проекта

Примеры

Пример 1: «Добавить проверку неработающих ссылок»

Need: Check markdown files for broken links
Search: npm "markdown dead link checker"
Found: textlint-rule-no-dead-link (score: 9/10)
Action: ADOPT — npm install textlint-rule-no-dead-link
Result: Zero custom code, battle-tested solution

Пример 2: «Добавить обёртку для HTTP-клиента»

Need: Resilient HTTP client with retries and timeout handling
Search: npm "http client retry", PyPI "httpx retry"
Found: got (Node) with retry plugin, httpx (Python) with built-in retry
Action: ADOPT — use got/httpx directly with retry config
Result: Zero custom code, production-proven libraries

Пример 3: «Добавить линтер конфигурационных файлов»

Need: Validate project config files against a schema
Search: npm "config linter schema", "json schema validator cli"
Found: ajv-cli (score: 8/10)
Action: ADOPT + EXTEND — install ajv-cli, write project-specific schema
Result: 1 package + 1 schema file, no custom validation logic

Антипаттерны

  • Переход к коду: написание утилиты без проверки, существует ли она уже
  • Игнорирование MCP: отсутствие проверки, предоставляет ли сервер MCP данную возможность
  • Тихое пропускание: выдача сообщения «ничего не найдено», когда канал поиска был недоступен
  • Чрезмерная настройка: обёртка библиотеки настолько сильная, что она теряет свои преимущества
  • Раздувание зависимостей: установка огромного пакета ради одной небольшой функции
Посмотреть на GitHub
---
name: search-first
description: Research existing tools, libraries, and patterns before writing custom code by invoking a researcher agent.
---

# /search-first — Research Before You Code

Systematizes the "search for existing solutions before implementing" workflow.

## Trigger

Use this skill when:
- Starting a new feature that likely has existing solutions
- Adding a dependency or integration
- The user asks "add X functionality" and you're about to write code
- Before creating a new utility, helper, or abstraction

## Workflow

```
┌─────────────────────────────────────────────┐
│  0. TOOL AVAILABILITY PREFLIGHT             │
│     Check search channels before relying on │
│     them; report skipped channels honestly   │
├─────────────────────────────────────────────┤
│  1. NEED ANALYSIS                           │
│     Define what functionality is needed      │
│     Identify language/framework constraints  │
├─────────────────────────────────────────────┤
│  2. PARALLEL SEARCH (researcher agent)      │
│     ┌──────────┐ ┌──────────┐ ┌──────────┐  │
│     │  npm /   │ │  MCP /   │ │  GitHub / │  │
│     │  PyPI    │ │  Skills  │ │  Web      │  │
│     └──────────┘ └──────────┘ └──────────┘  │
├─────────────────────────────────────────────┤
│  3. EVALUATE                                │
│     Score candidates (functionality, maint, │
│     community, docs, license, deps)         │
├─────────────────────────────────────────────┤
│  4. DECIDE                                  │
│     ┌─────────┐  ┌──────────┐  ┌─────────┐  │
│     │  Adopt  │  │  Extend  │  │  Build   │  │
│     │ as-is   │  │  /Wrap   │  │  Custom  │  │
│     └─────────┘  └──────────┘  └─────────┘  │
├─────────────────────────────────────────────┤
│  5. IMPLEMENT                               │
│     Install package / Configure MCP /       │
│     Write minimal custom code               │
└─────────────────────────────────────────────┘
```

## Decision Matrix

| Signal | Action |
|--------|--------|
| Exact match, well-maintained, MIT/Apache | **Adopt** — install and use directly |
| Partial match, good foundation | **Extend** — install + write thin wrapper |
| Multiple weak matches | **Compose** — combine 2-3 small packages |
| Nothing suitable found | **Build** — write custom, but informed by research |

## How to Use

### Step 0: Tool Availability Preflight

This is agent guidance, not an executable setup script. Check only the channels
that are relevant to the task and project in front of you.

| Channel | Check | If missing |
|---------|-------|------------|
| Repository search | `rg --files` and targeted `rg` queries | State that only visible files were inspected |
| Package registry | `npm --version`, `python -m pip --version`, or project package manager | Use web/docs search and avoid claiming registry coverage |
| GitHub CLI | `gh auth status` | Use public web or local git history only |
| MCP/docs tools | Available tool list or local MCP config | Fall back to official docs/web search |
| Skills directory | `ls ~/.claude/skills ~/.codex/skills` where applicable | Say no local skill catalog was available |

### Quick Mode (inline)

Before writing a utility or adding functionality, mentally run through:

0. Does this already exist in the repo? → `rg` through relevant modules/tests first
1. Is this a common problem? → Search npm/PyPI
2. Is there an MCP for this? → Check `~/.claude/settings.json` and search
3. Is there a skill for this? → Check `~/.claude/skills/`
4. Is there a GitHub implementation/template? → Run GitHub code search for maintained OSS before writing net-new code

### Full Mode (agent)

For non-trivial functionality, launch the researcher agent:

```
Agent(subagent_type="general-purpose", prompt="
  Research existing tools for: [DESCRIPTION]
  Language/framework: [LANG]
  Constraints: [ANY]

  Search: npm/PyPI, MCP servers, Claude Code skills, GitHub
  Return: Structured comparison with recommendation
")
```

Older Claude Code docs may call this `Task(...)`; use the current agent/subagent
tool name exposed by the active harness.

## Search Shortcuts by Category

### Development Tooling
- Linting → `eslint`, `ruff`, `textlint`, `markdownlint`
- Formatting → `prettier`, `black`, `gofmt`
- Testing → `jest`, `pytest`, `go test`
- Pre-commit → `husky`, `lint-staged`, `pre-commit`

### AI/LLM Integration
- Claude SDK → Context7 for latest docs
- Prompt management → Check MCP servers
- Document processing → `unstructured`, `pdfplumber`, `mammoth`

### Data & APIs
- HTTP clients → `httpx` (Python), `ky`/`undici` (Node)
- Validation → `zod` (TS), `pydantic` (Python)
- Database → Check for MCP servers first

### Content & Publishing
- Markdown processing → `remark`, `unified`, `markdown-it`
- Image optimization → `sharp`, `imagemin`

## Integration Points

### With planner agent
The planner should invoke researcher before Phase 1 (Architecture Review):
- Researcher identifies available tools
- Planner incorporates them into the implementation plan
- Avoids "reinventing the wheel" in the plan

### With architect agent
The architect should consult researcher for:
- Technology stack decisions
- Integration pattern discovery
- Existing reference architectures

### With iterative-retrieval skill
Combine for progressive discovery:
- Cycle 1: Broad search (npm, PyPI, MCP)
- Cycle 2: Evaluate top candidates in detail
- Cycle 3: Test compatibility with project constraints

## Examples

### Example 1: "Add dead link checking"
```
Need: Check markdown files for broken links
Search: npm "markdown dead link checker"
Found: textlint-rule-no-dead-link (score: 9/10)
Action: ADOPT — npm install textlint-rule-no-dead-link
Result: Zero custom code, battle-tested solution
```

### Example 2: "Add HTTP client wrapper"
```
Need: Resilient HTTP client with retries and timeout handling
Search: npm "http client retry", PyPI "httpx retry"
Found: got (Node) with retry plugin, httpx (Python) with built-in retry
Action: ADOPT — use got/httpx directly with retry config
Result: Zero custom code, production-proven libraries
```

### Example 3: "Add config file linter"
```
Need: Validate project config files against a schema
Search: npm "config linter schema", "json schema validator cli"
Found: ajv-cli (score: 8/10)
Action: ADOPT + EXTEND — install ajv-cli, write project-specific schema
Result: 1 package + 1 schema file, no custom validation logic
```

## Anti-Patterns

- **Jumping to code**: Writing a utility without checking if one exists
- **Ignoring MCP**: Not checking if an MCP server already provides the capability
- **Silent skipping**: Reporting "nothing found" when a search channel was unavailable
- **Over-customizing**: Wrapping a library so heavily it loses its benefits
- **Dependency bloat**: Installing a massive package for one small feature

Все файлы

1 файлов

Установить search-first

Скачайте файлы навыков и распакуйте их в каталог .claude/skills/.

Скачать ZIP

Клонируйте репозиторий и скопируйте файлы навыка в свой проект.

git clone https://github.com/affaan-m/ECC/tree/main/skills/search-first # Copy SKILL.md to your .claude/skills/ directory

Копировать Копировать
Быстрая настройка: Скопируйте папку со скиллом в каталог .claude/skills/ Claude автоматически обнаружит и запустит этот скилл
Репозиторий affaan-m/ECC

Похожие навыки

airtable-automation
Обновлено время 29 июня 2026 г.
seo-programmatic
Обновлено время 29 июня 2026 г.
notion-automation
Обновлено время 29 июня 2026 г.
fairdb-backup-manager
Обновлено время 29 июня 2026 г.
OR