grepai-chunking
GrepAIにおけるコードのチャンク分割を設定します。埋め込み処理のためにコードを最適な単位で分割する方法を調整したい場合に使用してください。
description の原文を見る
Configure code chunking in GrepAI. Use this skill to optimize how code is split for embedding.
SKILL.md 本文
GrepAI チャンキング設定
このスキルでは、GrepAI がソースファイルを埋め込み用の小さなセグメントに分割する方法と、あなたのコードベースに合わせてチャンキングを最適化する方法について説明します。
このスキルを使用する場合
- 検索精度の最適化
- コードスタイルに合わせた調整 (冗長 vs 簡潔)
- 検索結果のトラブルシューティング
- インデックス作成の仕組みを理解する
チャンキングとは
チャンキングはソースファイルを埋め込み用の小さなセグメントに分割するプロセスです:
┌─────────────────────────────────────┐
│ Large Source File │
│ (1000+ tokens) │
└─────────────────────────────────────┘
↓
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Chunk 1 │ │ Chunk 2 │ │ Chunk 3 │
│ ~512 │ │ ~512 │ │ ~512 │
│ tokens │ │ tokens │ │ tokens │
└─────────┘ └─────────┘ └─────────┘
↓
Each chunk gets
its own embedding
チャンキングが重要な理由
埋め込みモデルには最適な入力サイズがあります:
- チャンクが大きすぎる場合: 検索結果の精度が低下
- チャンクが小さすぎる場合: コンテキストが失われ、結果が断片化
- ちょうど良い場合: 精度とコンテキストの良好なバランス
設定
基本設定
# .grepai/config.yaml
chunking:
size: 512 # チャンクあたりのトークン数
overlap: 50 # チャンク間のオーバーラップ
パラメータの理解
チャンクサイズ
チャンクあたりのトークン数の目標値です。
| サイズ | 効果 |
|---|---|
| 256 | より精密で、コンテキストが少ない |
| 512 | バランス型 (デフォルト) |
| 1024 | より多くのコンテキスト、精度が低い |
オーバーラップ
隣接するチャンク間で共有されるトークン。境界でのコンテキストを保持します。
| オーバーラップ | 効果 |
|---|---|
| 0 | オーバーラップなし、境界でコンテキスト喪失の可能性 |
| 50 | 標準的なオーバーラップ (デフォルト) |
| 100 | より多くのコンテキスト、インデックスが大きくなる |
可視化
size=512、overlap=50 の場合:
File: auth.go (1000 tokens)
Chunk 1: tokens 1-512
┌────────────────────────────────────┐
│ func Login(user, pass)... │
└────────────────────────────────────┘
↘
50 token overlap
↙
Chunk 2: tokens 463-974
┌────────────────────────────────────┐
│ ...validate credentials... │
└────────────────────────────────────┘
↘
50 token overlap
↙
Chunk 3: tokens 925-1000
┌──────────────┐
│ ...return │
└──────────────┘
言語別の推奨設定
冗長な言語 (Java、C#)
chunking:
size: 768 # メソッド全体をキャプチャするために大きめ
overlap: 75
簡潔な言語 (Go、Python)
chunking:
size: 512 # 標準サイズ
overlap: 50
非常に簡潔な言語 (Rust、Zig)
chunking:
size: 384 # 正確な結果のために小さめ
overlap: 40
コードベース別の推奨設定
小さな関数 (マイクロサービス)
chunking:
size: 384 # 個別の関数をキャプチャ
overlap: 40
大きなクラス (モノリス)
chunking:
size: 768 # より多くのコンテキストをキャプチャ
overlap: 100
混合コードベース
chunking:
size: 512 # バランスの取れたデフォルト
overlap: 50
トークンの数え方
GrepAI は概算トークン数を使用します:
- 約 4 文字 = 1 トークン (英語テキスト)
- コードは識別子と構文に基づいて異なります
例:
func calculateTotal(items []Item) float64 {
total := 0.0
for _, item := range items {
total += item.Price * float64(item.Quantity)
}
return total
}
≈ 45 トークン
インデックスサイズへの影響
オーバーラップが大きいほど = チャンク数が増える = インデックスが大きくなる:
| サイズ | オーバーラップ | 10K トークンあたりのチャンク数 | インデックス影響 |
|---|---|---|---|
| 512 | 0 | ~20 | 最小 |
| 512 | 50 | ~22 | 標準 |
| 512 | 100 | ~24 | +10% |
| 256 | 50 | ~44 | +100% |
検索品質への影響
チャンクが小さすぎる場合 (size: 128)
Query: "authentication middleware"
Result: "...c.AbortWithStatus(401)..."
(フラグメント、コンテキストが不足)
ちょうど良い場合 (size: 512)
Query: "authentication middleware"
Result: "func AuthMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
token := c.GetHeader("Authorization")
if token == "" {
c.AbortWithStatus(401)
return
}
// validate token...
}
}"
(コンテキスト付きの完全な関数)
チャンクが大きすぎる場合 (size: 2048)
Query: "authentication middleware"
Result: "// Multiple unrelated functions...
func AuthMiddleware()... (your match)
func LoggingMiddleware()...
func CORSMiddleware()..."
(ノイズが多すぎる)
実験
異なる設定をテストする
- より精密な結果を得るために小さなチャンクを試す:
chunking:
size: 384
overlap: 40
- 再インデックス:
rm .grepai/index.gob
grepai watch
- 検索でテスト:
grepai search "your query"
- 調整して繰り返す。
結果の比較
設定を変更する前に検索結果を保存:
grepai search "authentication" > before.txt
設定を変更して再インデックス後:
grepai search "authentication" > after.txt
diff before.txt after.txt
チャンク境界
GrepAI は論理的な境界で分割しようとします:
- 空行 (関数/クラス境界)
- 閉じ括弧
- ステートメント終了
つまり、実際のチャンクサイズはターゲットから若干異なる場合があります。
ベストプラクティス
- デフォルトから始める: 512/50 はほとんどのコードベースで良好
- コードスタイルに基づいて調整: 冗長 = 大きい、簡潔 = 小さい
- 実際のクエリでテストする: 検索結果が何を返すかを確認
- 変更後に再インデックス: 埋め込みを再生成する必要があります
- オーバーラップを検討: インデックスサイズが重要でない限り 0 に設定しないでください
よくある問題
❌ 問題: 検索結果が断片化しすぎている ✅ 解決策: チャンクサイズを増やす:
chunking:
size: 768
❌ 問題: 検索結果に無関係なコンテキストが多すぎる ✅ 解決策: チャンクサイズを減らす:
chunking:
size: 384
❌ 問題: 結果が関数境界での関連コードを逃している ✅ 解決策: オーバーラップを増やす:
chunking:
overlap: 100
❌ 問題: インデックスが大きすぎる ✅ 解決策:
- オーバーラップを減らす
- チャンクサイズを増やす
- さらに無視パターンを追加
出力形式
チャンキングステータス:
✅ Chunking Configuration
Size: 512 tokens
Overlap: 50 tokens
Index Statistics:
- Total files: 245
- Total chunks: 1,234
- Avg chunks/file: 5.0
- Avg chunk size: 478 tokens
Recommendations:
- Current settings are balanced
- Consider size: 384 for more precise results
- Consider size: 768 for more context
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- yoanbernabeu
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/yoanbernabeu/grepai-skills / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。