Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

grepai-trace-callees

特定の関数が呼び出している関数を、GrepAI のトレース機能を使って探索します。ある関数の呼び出し先(callee)を調査したい場合に使用してください。

description の原文を見る

Find function callees with GrepAI trace. Use this skill to discover what functions a specific function calls.

SKILL.md 本文

GrepAI Trace Callees

このスキルは、grepai trace callees を使用して特定の関数が呼び出すすべての関数を見つけることについて説明します。

このスキルを使用する場合

  • 関数の依存関係を理解する
  • 関数の動作をマッピングする
  • 深くネストされた依存関係を探す
  • コードの理解とドキュメント作成

Trace Callees とは?

grepai trace callees が答える質問: 「この関数は何を呼び出しているか?」

func ProcessOrder(order) {
    validateOrder(order)
    calculateTotal(order)
    sendConfirmation(order.email)
}
        │
        ↓
┌───────┴───────────────────┐
│  What does ProcessOrder   │
│  call?                    │
├───────────────────────────┤
│ • validateOrder           │
│ • calculateTotal          │
│ • sendConfirmation        │
└───────────────────────────┘

基本的な使用方法

grepai trace callees "FunctionName"

grepai trace callees "ProcessOrder"

出力:

🔍 Callees of "ProcessOrder"

Found 4 callees:

1. validateOrder
   File: services/order.go:45
   Context: validateOrder(order)

2. calculateTotal
   File: services/order.go:48
   Context: total := calculateTotal(order.Items)

3. applyDiscount
   File: services/order.go:51
   Context: total = applyDiscount(total, order.Coupon)

4. sendConfirmation
   File: services/order.go:55
   Context: sendConfirmation(order.Email, total)

JSON出力

grepai trace callees "ProcessOrder" --json

出力:

{
  "query": "ProcessOrder",
  "mode": "callees",
  "count": 4,
  "results": [
    {
      "file": "services/order.go",
      "line": 45,
      "callee": "validateOrder",
      "context": "validateOrder(order)"
    },
    {
      "file": "services/order.go",
      "line": 48,
      "callee": "calculateTotal",
      "context": "total := calculateTotal(order.Items)"
    },
    {
      "file": "services/order.go",
      "line": 51,
      "callee": "applyDiscount",
      "context": "total = applyDiscount(total, order.Coupon)"
    },
    {
      "file": "services/order.go",
      "line": 55,
      "callee": "sendConfirmation",
      "context": "sendConfirmation(order.Email, total)"
    }
  ]
}

コンパクト JSON (AI最適化)

grepai trace callees "ProcessOrder" --json --compact

出力:

{
  "q": "ProcessOrder",
  "m": "callees",
  "c": 4,
  "r": [
    {"f": "services/order.go", "l": 45, "fn": "validateOrder"},
    {"f": "services/order.go", "l": 48, "fn": "calculateTotal"},
    {"f": "services/order.go", "l": 51, "fn": "applyDiscount"},
    {"f": "services/order.go", "l": 55, "fn": "sendConfirmation"}
  ]
}

TOON出力 (v0.26.0+)

TOON形式は JSON よりも約50% 少ないトークンで表現できます:

grepai trace callees "ProcessOrder" --toon

注: --json--toon は相互に排他的です。

抽出モード

Fast モード (デフォルト)

grepai trace callees "ProcessOrder" --mode fast

Precise モード

grepai trace callees "ProcessOrder" --mode precise
モード速度精度依存関係
fast⚡⚡⚡良好なし
precise⚡⚡優秀tree-sitter

ユースケース

関数の動作を理解する

# この複雑な関数は何をしているか?
grepai trace callees "handleRequest"

# データフローをマッピングする
grepai trace callees "processPayment"

依存関係を見つける

# この関数はどの外部サービスを呼び出しているか?
grepai trace callees "syncData"

# どのデータベース操作が発生しているか?
grepai trace callees "saveUser"

コードレビュー

# この関数のサイドエフェクトは何か?
grepai trace callees "updateProfile"

# この関数は多すぎることをしていないか?
grepai trace callees "doEverything"  # 多くのcallee = コードの臭い

ドキュメント作成

# ドキュメント用の依存関係リストを生成
grepai trace callees "initialize" --json | jq '.results[].callee'

Callers と Callees の比較

コマンド質問ユースケース
trace callers誰が私を呼び出しているか?影響分析
trace callees私は何を呼び出しているか?動作分析
# 統合分析
grepai trace callers "processOrder"   # これは誰が使っているか?
grepai trace callees "processOrder"   # これは何をしているか?

結果をフィルタリングする

ファイルタイプで絞り込む

# callees を取得し、.go ファイルのみをフィルタリング
grepai trace callees "main" --json | jq '.results[] | select(.file | endswith(".go"))'

テスト関数を除外する

grepai trace callees "Login" --json | jq '.results[] | select(.callee | startswith("Test") | not)'

カテゴリ別に集計する

# データベースと API 呼び出しの個数を集計
grepai trace callees "processOrder" --json | jq '.results[].callee' | grep -c "db"

Callees が含むもの

トレースは以下を検出します:

  • 直接関数呼び出し
  • メソッド呼び出し
  • ビルトイン関数呼び出し (モードに依存)

func ProcessOrder(order Order) error {
    // 直接呼び出し
    validateOrder(order)

    // メソッド呼び出し
    order.Validate()

    // パッケージ関数
    utils.Log("processing")

    // ビルトイン (キャプチャされる可能性あり)
    fmt.Println("done")

    return nil
}

検出される Callees:

  • validateOrder
  • Validate (メソッド)
  • Log (utils から)
  • Println (モードに依存)

制限事項

Callees が見落とす可能性があるもの

  • 動的/実行時呼び出し
  • コールバックとクロージャ
  • インターフェースメソッド呼び出し (インターフェースが表示され、実装ではない可能性)
  • リフレクションベースの呼び出し

検出されない呼び出しの例

func process(fn func()) {
    fn()  // Callee は静的分析時に不明
}

Trace Graph との組み合わせ

再帰的な依存関係分析の場合は、trace graph を使用します:

# 直接の callee のみ
grepai trace callees "main"

# 完全な依存関係ツリー (再帰的)
grepai trace graph "main" --depth 3

スクリプト例

すべての Callees をリストアップ

grepai trace callees "main" --json | jq -r '.results[].callee' | sort -u

特定の Callee を確認

# processOrder は sendEmail を呼び出しているか?
grepai trace callees "processOrder" --json | jq -e '.results[] | select(.callee == "sendEmail")' && echo "Yes" || echo "No"

依存関係レポートを生成

#!/bin/bash
echo "# Function Dependencies Report"
echo ""
for fn in main initialize processOrder; do
    echo "## $fn"
    grepai trace callees "$fn" --json | jq -r '.results[].callee' | sed 's/^/- /'
    echo ""
done

よくある問題

問題: 関数が見つからない ✅ 解決策: スペルを確認し、関数がインデックス対象ファイルに存在することを確認

問題: callees が見つからない (ただし関数には呼び出しがある) ✅ 解決策:

  • --mode precise を試す
  • 言語が enabled_languages に含まれているか確認
  • symbols.gob が最新か確認 (grepai watch)

問題: いくつかの callees が不足している ✅ 解決策: より高い精度のため --mode precise を使用

ベストプラクティス

  1. 理解のために使用: 新しいコードベースの学習に最適
  2. callers と組み合わせる: 完全な依存関係像を得る
  3. 深い分析には graph を使用: 再帰が必要な場合
  4. 結果をフィルタリング: 関連する callees に焦点を絞る
  5. 結果を文書化: マークダウンにエクスポートしてドキュメント化

出力形式

Trace callees の結果:

🔍 Callees of "ProcessOrder"

Mode: fast
Function found in: services/order.go:40

Found 4 callees:

1. validateOrder
   File: services/order.go:45
   Context: validateOrder(order)

2. calculateTotal
   File: services/order.go:48
   Context: total := calculateTotal(order.Items)

3. applyDiscount
   File: services/order.go:51
   Context: total = applyDiscount(total, order.Coupon)

4. sendConfirmation
   File: services/order.go:55
   Context: sendConfirmation(order.Email, total)

Tip: Use 'grepai trace graph ProcessOrder' for recursive analysis

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
yoanbernabeu
リポジトリ
yoanbernabeu/grepai-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/yoanbernabeu/grepai-skills / ライセンス: MIT

関連スキル

汎用その他⭐ リポ 1,982

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

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: yoanbernabeu · yoanbernabeu/grepai-skills · ライセンス: MIT