跳到主要内容
知仓学习社ZHICANG

search-first

コーディング前の調査ワークフロー。カスタムコードを書く前に既存のツール、ライブラリ、パターンを検索します。researcher エージェントを呼び出します。

不碰外部(只输出文字)无严重或高危命中affaan-m/ECC

它会碰到什么

扫了多少1 个文本文件,5 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

/search-first — コーディング前に調査する

「既存のソリューションを実装前に検索する」ワークフローを体系化します。

トリガー

以下の場合にこのスキルを使用します:

  • 既存のソリューションが存在する可能性が高い新しい機能を開始する場合
  • 依存関係やインテグレーションを追加する場合
  • ユーザーが「X 機能を追加して」と要求し、コードを書こうとしている場合
  • 新しいユーティリティ、ヘルパー、または抽象化を作成する前

ワークフロー

┌─────────────────────────────────────────────┐
│  0. ツール利用可能性の事前確認              │
│     依存する前に検索チャネルを確認;        │
│     スキップしたチャネルを正直に報告する    │
├─────────────────────────────────────────────┤
│  1. ニーズ分析                              │
│     必要な機能を定義する                    │
│     言語/フレームワークの制約を特定する     │
├─────────────────────────────────────────────┤
│  2. 並列検索(researcher エージェント)     │
│     ┌──────────┐ ┌──────────┐ ┌──────────┐  │
│     │  npm /   │ │  MCP /   │ │  GitHub / │  │
│     │  PyPI    │ │  スキル  │ │  Web      │  │
│     └──────────┘ └──────────┘ └──────────┘  │
├─────────────────────────────────────────────┤
│  3. 評価                                    │
│     候補をスコアリング(機能性、保守性、    │
│     コミュニティ、ドキュメント、ライセンス、│
│     依存関係)                              │
├─────────────────────────────────────────────┤
│  4. 決定                                    │
│     ┌─────────┐  ┌──────────┐  ┌─────────┐  │
│     │ 採用    │  │ 拡張/   │  │ カスタム │  │
│     │ そのまま│  │ ラップ   │  │ ビルド   │  │
│     └─────────┘  └──────────┘  └─────────┘  │
├─────────────────────────────────────────────┤
│  5. 実装                                    │
│     パッケージをインストール / MCP を設定 / │
│     最小限のカスタムコードを書く            │
└─────────────────────────────────────────────┘

判断マトリクス

| シグナル | アクション |

|--------|--------|

| 完全一致、よく保守されている、MIT/Apache | 採用 — 直接インストールして使用 |

| 部分一致、良い基盤 | 拡張 — インストール + 薄いラッパーを書く |

| 複数の弱い一致 | 組み合わせ — 2〜3 の小さなパッケージを組み合わせる |

| 適切なものが見つからない | ビルド — カスタムを書くが、調査に基づいて |

使い方

ステップ 0: ツール利用可能性の事前確認

これはエージェントのガイダンスであり、実行可能なセットアップスクリプトではありません。目の前のタスクとプロジェクトに関連するチャネルのみを確認します。

| チャネル | 確認 | 欠如している場合 |

|---------|-------|------------|

| リポジトリ検索 | rg --files と的を絞った rg クエリ | 可視ファイルのみが検査されたことを明示 |

| パッケージレジストリ | npm --versionpython -m pip --version、またはプロジェクトのパッケージマネージャー | Web/ドキュメント検索を使用し、レジストリカバレッジを主張しない |

| GitHub CLI | gh auth status | 公開 Web またはローカル git 履歴のみを使用 |

| MCP/ドキュメントツール | 利用可能なツールリストまたはローカル MCP 設定 | 公式ドキュメント/ウェブ検索にフォールバック |

| スキルディレクトリ | ls ~/.claude/skills ~/.codex/skills(該当する場合) | ローカルスキルカタログが利用できないと明示 |

クイックモード(インライン)

ユーティリティを書いたり機能を追加したりする前に、以下を確認します:

  1. これはリポジトリに既に存在するか? → まず関連モジュール/テストを rg で確認
  2. これはよくある問題か? → npm/PyPI を検索
  3. MCP はあるか? → ~/.claude/settings.json を確認して検索
  4. このためのスキルはあるか? → ~/.claude/skills/ を確認
  5. GitHub に実装/テンプレートがあるか? → 新規コードを書く前に保守された OSS の GitHub コード検索を実行

フルモード(エージェント)

非自明な機能には、researcher エージェントを起動します:

Agent(subagent_type="general-purpose", prompt="
  既存のツールを調査してください: [説明]
  言語/フレームワーク: [言語]
  制約: [あれば]

  検索先: npm/PyPI、MCP サーバー、Claude Code スキル、GitHub
  返却: 推薦付きの構造化比較
")

古い Claude Code ドキュメントではこれを Task(...) と呼ぶ場合があります;アクティブなハーネスが公開している現在のエージェント/サブエージェントツール名を使用してください。

カテゴリ別検索ショートカット

開発ツール

  • Linting → eslintrufftextlintmarkdownlint
  • フォーマット → prettierblackgofmt
  • テスト → jestpytestgo test
  • プレコミット → huskylint-stagedpre-commit

AI/LLM 統合

  • Claude SDK → 最新ドキュメントには Context7 を使用
  • プロンプト管理 → MCP サーバーを確認
  • 文書処理 → unstructuredpdfplumbermammoth

データ & API

  • HTTP クライアント → httpx(Python)、ky/undici(Node)
  • バリデーション → zod(TS)、pydantic(Python)
  • データベース → まず MCP サーバーを確認

コンテンツ & 公開

  • Markdown 処理 → remarkunifiedmarkdown-it
  • 画像最適化 → sharpimagemin

統合ポイント

planner エージェントとの統合

planner はフェーズ1(アーキテクチャレビュー)の前に researcher を呼び出すべきです:

  • Researcher が利用可能なツールを特定
  • Planner がそれらを実装計画に組み込む
  • 計画での「車輪の再発明」を回避

architect エージェントとの統合

architect は以下のために researcher に相談すべきです:

  • テクノロジースタックの決定
  • 統合パターンの発見
  • 既存のリファレンスアーキテクチャ

iterative-retrieval スキルとの統合

段階的な発見のために組み合わせます:

  • サイクル1: 広い検索(npm、PyPI、MCP)
  • サイクル2: 上位候補を詳細に評価
  • サイクル3: プロジェクトの制約との互換性をテスト

例1: 「デッドリンクチェックを追加」

必要: Markdown ファイルのリンク切れを確認
検索: npm "markdown dead link checker"
発見: textlint-rule-no-dead-link(スコア: 9/10)
アクション: 採用 — npm install textlint-rule-no-dead-link
結果: カスタムコードなし、実証済みのソリューション

例2: 「HTTP クライアントラッパーを追加」

必要: リトライとタイムアウト処理を持つ信頼性の高い HTTP クライアント
検索: npm "http client retry", PyPI "httpx retry"
発見: got(Node)with retry plugin, httpx(Python)with built-in retry
アクション: 採用 — got/httpx をリトライ設定で直接使用
結果: カスタムコードなし、本番実証済みのライブラリ

例3: 「設定ファイルリンターを追加」

必要: プロジェクト設定ファイルをスキーマに対して検証
検索: npm "config linter schema", "json schema validator cli"
発見: ajv-cli(スコア: 8/10)
アクション: 採用 + 拡張 — ajv-cli をインストール、プロジェクト固有のスキーマを記述
結果: 1 パッケージ + 1 スキーマファイル、カスタム検証ロジックなし

アンチパターン

  • コードへの飛び込み: 既存のものがあるか確認せずにユーティリティを書く
  • MCP の無視: MCP サーバーが既にその機能を提供しているかチェックしない
  • サイレントスキップ: 検索チャネルが利用できなかったのに「何も見つからなかった」と報告する
  • 過度なカスタマイズ: ライブラリをラップしすぎてそのメリットを失う
  • 依存関係の肥大化: 1つの小さな機能のために巨大なパッケージをインストールする

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

同名技能的其他版本

有 4 个不同仓库或目录里都有叫 search-first 的技能。它们内容并不相同,别混用:

  • affaan-m/ECC — >
  • affaan-m/ECC — 研究优先于编码的工作流程。在编写自定义代码之前,搜索现有的工具、库和模式。调用研究员代理。
  • affaan-m/ECC — Research-before-coding workflow. Search for existing tools, libraries, and patterns before