mcpField
G
grepai-search-boosting

grepai-search-boosting

github.com/yoanbernabeu開発20759 回インストール38 週間前に更新
リポジトリ

grepai-search-boosting について

grepai-search-boosting は、パスに応じて grepai の検索スコアを調整するスキルです。ソースコードを優先し、テストやドキュメント、ベンダーコードの順位を下げたい開発者向けです。

主な機能

  1. 01パスパターンによる検索スコア調整
  2. 02テスト、ドキュメント、ベンダーコードの順位低下
  3. 03指定ディレクトリの順位上昇
  4. 04ブースト機能の有効化と無効化

活用シーン

  1. 01本番コードをテストファイルより上位に表示
  2. 02サードパーティ依存コードの順位を下げる
  3. 03主要ディレクトリの検索結果を優先

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/yoanbernabeu/grepai-skills --skill grepai-search-boosting

インストール後、Claude Code で/grepai-search-boostingを入力して読み込まれたか確認します。

詳細

GrepAI の検索ブースト

このスキルでは、関連するコードパスの優先度を上げ、テスト、ドキュメント、ベンダーコードの優先度を下げるスコアブーストの設定について説明します。

このスキルを使う場面

  • テストよりソースコードを優先する
  • ベンダーコード/サードパーティーコードにペナルティを設定する
  • 重要なディレクトリをブーストする
  • 検索結果のランキングをカスタマイズする

ブーストとは?

ブーストは、ファイルパスに基づいて検索スコアを変更します。

Original score: 0.85 (src/auth.go)
Bonus (+10%):   0.935

Original score: 0.85 (tests/auth_test.go)
Penalty (-50%): 0.425

これにより、内容が似ている場合でも、本番コードがテストより上位に表示されます。

設定

基本設定
# .grepai/config.yaml
search:
  boost:
    enabled: true
    penalties:
      - pattern: /tests/
        factor: 0.5
    bonuses:
      - pattern: /src/
        factor: 1.1
全設定
search:
  boost:
    enabled: true

    # Reduce scores (factor < 1.0)
    penalties:
      # Test files
      - pattern: /tests/
        factor: 0.5
      - pattern: /__tests__/
        factor: 0.5
      - pattern: _test.
        factor: 0.5
      - pattern: .spec.
        factor: 0.5
      - pattern: .test.
        factor: 0.5

      # Documentation
      - pattern: /docs/
        factor: 0.6
      - pattern: /documentation/
        factor: 0.6

      # Vendor/third-party
      - pattern: /vendor/
        factor: 0.3
      - pattern: /node_modules/
        factor: 0.3
      - pattern: /third_party/
        factor: 0.3

      # Generated code
      - pattern: /generated/
        factor: 0.4
      - pattern: .gen.
        factor: 0.4
      - pattern: .pb.go
        factor: 0.4

      # Examples and samples
      - pattern: /examples/
        factor: 0.7
      - pattern: /samples/
        factor: 0.7

    # Increase scores (factor > 1.0)
    bonuses:
      # Core source code
      - pattern: /src/
        factor: 1.1
      - pattern: /lib/
        factor: 1.1
      - pattern: /app/
        factor: 1.1
      - pattern: /core/
        factor: 1.2
      - pattern: /internal/
        factor: 1.1

      # Important directories
      - pattern: /services/
        factor: 1.1
      - pattern: /handlers/
        factor: 1.1
      - pattern: /controllers/
        factor: 1.1

係数の仕組み

係数効果使用例
0.370%減少強いペナルティ(ベンダー)
0.550%減少中程度のペナルティ(テスト)
0.730%減少軽いペナルティ(サンプル)
1.0変化なし中立
1.110%増加軽いブースト(src)
1.220%増加中程度のブースト(core)
1.550%増加強いブースト

パターンマッチング

パターンはファイルパス全体に対してマッチします。

/project/src/auth/middleware.go
         ^^^^
         Matches "/src/" pattern
パターンの種類
パターンマッチするマッチしない
/tests/src/tests/auth.gotests.go
_test.auth_test.gotest_auth.go
.spec.auth.spec.tsspec/auth.ts
/src/project/src/main.goresource/file.go

ランキングへの影響

ブーストなし
Score: 0.85 | tests/auth_test.go:10-30
Score: 0.82 | src/auth/middleware.go:15-45
Score: 0.80 | src/auth/jwt.go:23-55
ブーストあり
penalties:
  - pattern: /tests/
    factor: 0.5
bonuses:
  - pattern: /src/
    factor: 1.1
Score: 0.90 | src/auth/middleware.go:15-45  (0.82 × 1.1)
Score: 0.88 | src/auth/jwt.go:23-55        (0.80 × 1.1)
Score: 0.43 | tests/auth_test.go:10-30     (0.85 × 0.5)

よく使われる設定

標準(推奨)
search:
  boost:
    enabled: true
    penalties:
      - pattern: /tests/
        factor: 0.5
      - pattern: _test.
        factor: 0.5
      - pattern: .spec.
        factor: 0.5
      - pattern: /vendor/
        factor: 0.3
      - pattern: /docs/
        factor: 0.6
    bonuses:
      - pattern: /src/
        factor: 1.1
      - pattern: /lib/
        factor: 1.1
フロントエンドプロジェクト
search:
  boost:
    enabled: true
    penalties:
      - pattern: /__tests__/
        factor: 0.5
      - pattern: .test.
        factor: 0.5
      - pattern: .spec.
        factor: 0.5
      - pattern: /node_modules/
        factor: 0.3
      - pattern: .stories.
        factor: 0.6
      - pattern: /storybook/
        factor: 0.6
    bonuses:
      - pattern: /src/
        factor: 1.1
      - pattern: /components/
        factor: 1.1
      - pattern: /hooks/
        factor: 1.1
Go プロジェクト
search:
  boost:
    enabled: true
    penalties:
      - pattern: _test.go
        factor: 0.5
      - pattern: _mock.go
        factor: 0.5
      - pattern: /testdata/
        factor: 0.5
      - pattern: /vendor/
        factor: 0.3
      - pattern: .pb.go
        factor: 0.4
    bonuses:
      - pattern: /internal/
        factor: 1.1
      - pattern: /cmd/
        factor: 1.1
      - pattern: /pkg/
        factor: 1.1
Python プロジェクト
search:
  boost:
    enabled: true
    penalties:
      - pattern: /tests/
        factor: 0.5
      - pattern: test_
        factor: 0.5
      - pattern: _test.py
        factor: 0.5
      - pattern: /conftest
        factor: 0.5
      - pattern: /fixtures/
        factor: 0.6
    bonuses:
      - pattern: /src/
        factor: 1.1
      - pattern: /app/
        factor: 1.1
      - pattern: /core/
        factor: 1.2
モノレポ
search:
  boost:
    enabled: true
    penalties:
      - pattern: /tests/
        factor: 0.5
      - pattern: _test.
        factor: 0.5
      - pattern: /packages/deprecated/
        factor: 0.3
      - pattern: /packages/legacy/
        factor: 0.4
    bonuses:
      - pattern: /packages/core/
        factor: 1.2
      - pattern: /packages/api/
        factor: 1.1
      - pattern: /packages/shared/
        factor: 1.1

ブーストを無効にする

ブーストを完全に無効にするには、次のようにします。

search:
  boost:
    enabled: false

または、設定から boost セクションを削除します。

ブーストと無視の違い

方法効果使用例
無視完全に除外依存関係、ビルド出力
ペナルティ検索可能なまま、順位を下げるテスト、ドキュメント、サンプル
中立デフォルトのランキング通常のソースコード
ボーナス順位を上げるコアビジネスロジック
無視とペナルティの使い分け
  • 無視: 検索対象にしたくないファイル(node_modules、.git)
  • ペナルティ: ほとんど検索しないものの、必要になる場合があるファイル(tests、docs)

設定をテストする

ブーストを設定した後、次のようにします。

# Search and observe rankings
grepai search "authentication"

# Check if tests are properly deprioritized
grepai search "test authentication"  # Should still find tests, but ranked lower

ベストプラクティス

  1. ペナルティから始める: まずテスト/ベンダーの優先度を下げます
  2. ボーナスは控えめに追加する: 本当に重要なパスにのみ適用します
  3. 実際のクエリでテストする: 結果が妥当であることを確認します
  4. ペナルティを強くしすぎない: テストには通常 0.5 で十分です
  5. 選択理由を記録する: 設定にコメントを追加します

よくある問題

❌ 問題: テストが常に最初に表示される
✅ 解決策: テストの命名規則に合ったパターンを追加してペナルティを設定します

❌ 問題: ペナルティ対象のパスにあるコードが見つからない
✅ 解決策: ペナルティは順位を下げますが、非表示にはしません。完全に除外するには ignore を使います。

❌ 問題: 1.0 を超えるスコアがおかしいように見える
✅ 解決策: ボーナスによってスコアが 1.0 を超えることがあります。これは正常です。

❌ 問題: パターンがマッチしない
✅ 解決策: パターンがパス全体に含まれていることを確認します(tests だけでなく /tests/ を使います)。

出力形式

ブースト設定のステータス:

✅ Search Boosting Configured

   Status: Enabled

   Penalties (5):
   - /tests/      → 0.5 (50% reduction)
   - _test.       → 0.5
   - .spec.       → 0.5
   - /vendor/     → 0.3 (70% reduction)
   - /docs/       → 0.6

   Bonuses (3):
   - /src/        → 1.1 (10% boost)
   - /lib/        → 1.1
   - /core/       → 1.2 (20% boost)

   Effect: Source code ranks higher than tests with similar content

コメント