search-first について
search-firstは、実装や依存関係の追加、抽象化の作成前に既存の解決策を調べるコーディングエージェント向けスキルです。リポジトリ、パッケージ、MCP、GitHubを検索し、採用・拡張・組み合わせ・自作を判断する手順を示します。
主な機能
- 01実装前に要件と制約を整理
- 02パッケージ・MCP・GitHubを並行検索
- 03リポジトリ内の既存実装を確認
- 04適合度に応じて採用か自作を選択
- 05調査エージェントと計画ワークフローの連携
活用シーン
- 01機能追加前に既存の解決策を探す
- 02依存関係や連携の追加前に候補を比較
- 03ヘルパーや抽象化の作成前に既存実装を確認
- 04調査結果をアーキテクチャや実装計画に反映
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ xu-xiang/ everything-claude-code-zh --skill search-firstインストール後、Claude Code で/search-firstを入力して読み込まれたか確認します。
詳細
/search-first — コーディング前に調査する(Research Before You Code)
「実装前に既存の解決策を検索する」ワークフローを体系化します。
トリガー(Trigger)
以下の場面でこのスキル(Skill)を使用します:
- 既存の解決策がすでにありそうな新機能の開発を始めるとき
- 依存関係や連携を追加するとき
- ユーザーから「X 機能を追加して」と依頼され、コードを書こうとしているとき
- 新しいユーティリティ(Utility)、ヘルパー関数(Helper)、または抽象化レイヤーを作成する前
ワークフロー(Workflow)
┌─────────────────────────────────────────────┐
│ 1. 需求分析 (NEED ANALYSIS) │
│ 定义所需功能 │
│ 识别语言/框架约束 │
├─────────────────────────────────────────────┤
│ 2. 并行搜索 (调研智能体 researcher agent) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ npm / │ │ MCP / │ │ GitHub / │ │
│ │ PyPI │ │ 技能 │ │ Web │ │
│ └──────────┘ └──────────┘ └──────────┘ │
├─────────────────────────────────────────────┤
│ 3. 评估 (EVALUATE) │
│ 为候选方案打分(功能、维护、 │
│ 社区、文档、许可证、依赖) │
├─────────────────────────────────────────────┤
│ 4. 决策 (DECIDE) │
│ ┌─────────┐ ┌──────────┐ ┌─────────┐ │
│ │ 采用 │ │ 扩展 │ │ 自研 │ │
│ │ (Adopt) │ │ (Extend)│ │ (Build) │ │
│ └─────────┘ └──────────┘ └─────────┘ │
├─────────────────────────────────────────────┤
│ 5. 实施 (IMPLEMENT) │
│ 安装包 / 配置 MCP / │
│ 编写最少量的自定义代码 │
└─────────────────────────────────────────────┘
判断マトリックス(Decision Matrix)
| シグナル | アクション |
|---|---|
| 完全に一致し、適切に保守されており、MIT/Apache ライセンス | 採用 (Adopt) — そのままインストールして使用します |
| 部分的に一致し、基盤がしっかりしている | 拡張 (Extend) — インストールし、軽量なラッパーレイヤーを作成します |
| 一致度の低い候補が複数ある | 組み合わせ (Compose) — 2~3 個の小規模なパッケージを組み合わせます |
| 適切な解決策が見つからない | 自作 (Build) — 調査結果に基づいてカスタムコードを作成します |
使用方法
クイックモード(インラインで使用)
ユーティリティの作成や機能の追加を始める前に、次の点を頭の中で確認します:
- リポジトリにすでに存在しますか?→ まず
rgで関連するモジュールやテストを検索します - よくある問題ですか?→ npm/PyPI を検索します
- 関連する MCP はありますか?→
~/.claude/settings.jsonを確認して検索します - 関連するスキル(Skill)はありますか?→
~/.claude/skills/を確認します - GitHub に実装やテンプレートがありますか?→ まったく新しいコードを書く前に、保守状況の良いオープンソースソフトウェア(OSS)を対象に GitHub コード検索を実行します
完全モード(エージェントに委任)
複雑な機能については、調査エージェント(Researcher Agent)を起動します:
Task(subagent_type="general-purpose", prompt="
调研现有的工具,针对:[功能描述]
语言/框架:[LANG]
约束条件:[ANY]
搜索范围:npm/PyPI, MCP 服务器, Claude Code 技能, GitHub
返回结果:带建议的结构化对比报告
")
カテゴリー別の検索ショートカット
開発ツール(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 連携
- Claude SDK → 最新のドキュメントは Context7 を参照します
- プロンプト管理(Prompt management)→ MCP サーバーを確認します
- ドキュメント処理 →
unstructured,pdfplumber,mammoth
データと API
- HTTP クライアント →
httpx(Python),ky/got(Node) - バリデーション(Validation)→
zod(TS),pydantic(Python) - データベース → まず MCP サーバーを確認します
コンテンツと公開
- Markdown の処理 →
remark,unified,markdown-it - 画像の最適化 →
sharp,imagemin
連携ポイント(Integration Points)
プランナーエージェント(Planner Agent)との連携
プランナーは、第 1 段階(アーキテクチャレビュー Architecture Review)の前に調査担当者を呼び出す必要があります:
- 調査担当者が利用可能なツールを特定します
- プランナーがそれらを実装計画に組み込みます
- 計画での「車輪の再発明」を避けます
アーキテクトエージェント(Architect Agent)との連携
アーキテクトは、以下について調査担当者に相談する必要があります:
- 技術スタックの選択
- 連携パターンの発見
- 既存のリファレンスアーキテクチャ
反復検索スキル(Iterative-retrieval Skill)との連携
段階的な発見のため、次のように組み合わせて使用します:
- 第 1 ラウンド:幅広く検索します (npm, PyPI, MCP)
- 第 2 ラウンド:優先候補を詳しく評価します
- 第 3 ラウンド:プロジェクトの制約との互換性をテストします
例
例 1:「デッドリンクチェックを追加する」
需求:检查 markdown 文件中的损坏链接
搜索:npm "markdown dead link checker"
发现:textlint-rule-no-dead-link (得分: 9/10)
行动:采用 (ADOPT) — npm install textlint-rule-no-dead-link
结果:零自定义代码,经受过实战检验的解决方案
例 2:「HTTP クライアントのラッパーレイヤーを追加する」
需求:具备重试和超时处理能力的弹性 HTTP 客户端
搜索:npm "http client retry", PyPI "httpx retry"
发现:带重试插件的 got (Node), 内置重试的 httpx (Python)
行动:采用 (ADOPT) — 直接使用带重试配置的 got/httpx
结果:零自定义代码,生产环境验证过的库
例 3:「設定ファイルのリンターを追加する」
需求:根据 Schema 验证项目配置文件
搜索:npm "config linter schema", "json schema validator cli"
发现:ajv-cli (得分: 8/10)
行动:采用 + 扩展 (ADOPT + EXTEND) — 安装 ajv-cli,编写项目特定的 schema
结果:1 个包 + 1 个 schema 文件,无需自定义验证逻辑
アンチパターン(Anti-Patterns)
- すぐにコーディングする:既存のツールがあるか確認せずにユーティリティを作成する
- MCP を無視する:MCP サーバーがすでにその機能を提供しているか確認しない
- 過度なカスタマイズ:ライブラリを過剰にラップし、本来の利点を失わせる
- 依存関係の肥大化:小さな機能のために巨大なパッケージをインストールする
コメント
Markdown 対応