mcpField
T
tldr-code

tldr-code

github.com/parcadei開発3.9k505 回インストール39 週間前に更新
リポジトリ

tldr-code について

tldr-code は、構造化された要約やコードフロー情報を使ってコードベースを調査するコマンドラインスキルです。複数の言語に対応し、検索、依存関係分析、診断、セマンティック検索で開発者のコード特定を支援します。

主な機能

  1. 01コード構造とパターンの検索
  2. 02呼び出し・インポート・依存関係の分析
  3. 03制御フローとデータフローの確認
  4. 04診断と影響を受けるテストの特定
  5. 05自然言語によるセマンティック検索

活用シーン

  1. 01関数の呼び出し元や依存関係の特定
  2. 02制御フローや変数の流れの追跡
  3. 03デバッグ前に関連ファイルを特定
  4. 04自然言語の説明からコードを検索

インストール

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

$npx skills add https://github.com/parcadei/continuous-claude-v3 --skill tldr-code

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

同梱ファイルrules.md

詳細

TLDR-Code:完全リファレンス

トークン効率に優れたコード分析です。ファイルをそのまま読み込む場合と比べて、95%削減できます。

クイックリファレンス

タスクコマンド
ファイルツリーtldr tree src/
コード構造tldr structure . --lang python
コード検索tldr search "pattern" .
呼び出しグラフtldr calls src/
X を呼び出しているものtldr impact func_name .
制御フローtldr cfg file.py func
データフローtldr dfg file.py func
プログラムスライスtldr slice file.py func 42
デッドコードtldr dead src/
アーキテクチャtldr arch src/
インポートtldr imports file.py
X をインポートしているものtldr importers module_name .
影響を受けるテストtldr change-impact --git
型チェックtldr diagnostics file.py
セマンティック検索tldr semantic search "auth flow"

5 層スタック

Layer 1: AST         ~500 tokens   Function signatures, imports
Layer 2: Call Graph  +440 tokens   What calls what (cross-file)
Layer 3: CFG         +110 tokens   Complexity, branches, loops
Layer 4: DFG         +130 tokens   Variable definitions/uses
Layer 5: PDG         +150 tokens   Dependencies, slicing
───────────────────────────────────────────────────────────────
Total:              ~1,200 tokens  vs 23,000 raw = 95% savings

CLI コマンド

ナビゲーション
# File tree
tldr tree [path]
tldr tree src/ --ext .py .ts        # Filter extensions
tldr tree . --show-hidden           # Include hidden files

# Code structure (codemaps)
tldr structure [path] --lang python
tldr structure src/ --max 100       # Max files to analyze
検索
# Text search
tldr search <pattern> [path]
tldr search "def process" src/
tldr search "class.*Error" . --ext .py
tldr search "TODO" . -C 3           # 3 lines context
tldr search "func" . --max 50       # Limit results

# Semantic search (natural language)
tldr semantic search "authentication flow"
tldr semantic search "error handling" --k 10
tldr semantic search "database queries" --expand  # Include call graph
ファイル分析
# Full file info
tldr extract <file>
tldr extract src/api.py
tldr extract src/api.py --class UserService      # Filter to class
tldr extract src/api.py --function process       # Filter to function
tldr extract src/api.py --method UserService.get # Filter to method

# Relevant context (follows call graph)
tldr context <entry> --project <path>
tldr context main --project src/ --depth 3
tldr context UserService.create --project . --lang typescript
フロー分析
# Control flow graph (complexity)
tldr cfg <file> <function>
tldr cfg src/processor.py process_data
# Returns: cyclomatic complexity, blocks, branches, loops

# Data flow graph (variable tracking)
tldr dfg <file> <function>
tldr dfg src/processor.py process_data
# Returns: where variables are defined, read, modified

# Program slice (what affects line X)
tldr slice <file> <function> <line>
tldr slice src/processor.py process_data 42
tldr slice src/processor.py process_data 42 --direction forward
tldr slice src/processor.py process_data 42 --var result
コードベース分析
# Build cross-file call graph
tldr calls [path]
tldr calls src/ --lang python

# Reverse call graph (who calls this function?)
tldr impact <func> [path]
tldr impact process_data src/ --depth 5
tldr impact authenticate . --file auth  # Filter by file

# Find dead/unreachable code
tldr dead [path]
tldr dead src/ --entry main cli test_  # Specify entry points
tldr dead . --lang typescript

# Detect architectural layers
tldr arch [path]
tldr arch src/ --lang python
# Returns: entry layer, middle layer, leaf layer, circular deps
インポート分析
# Parse imports from file
tldr imports <file>
tldr imports src/api.py
tldr imports src/api.ts --lang typescript

# Reverse import lookup (who imports this module?)
tldr importers <module> [path]
tldr importers datetime src/
tldr importers UserService . --lang typescript
品質とテスト
# Type check + lint
tldr diagnostics <file|path>
tldr diagnostics src/api.py
tldr diagnostics . --project              # Whole project
tldr diagnostics src/ --no-lint           # Type check only
tldr diagnostics src/ --format text       # Human-readable

# Find affected tests
tldr change-impact [files...]
tldr change-impact                        # Auto-detect (session/git)
tldr change-impact src/api.py             # Explicit files
tldr change-impact --session              # Session-modified files
tldr change-impact --git                  # Git diff files
tldr change-impact --git --git-base main  # Diff against branch
tldr change-impact --run                  # Actually run affected tests
キャッシュ
# Pre-build call graph cache
tldr warm <path>
tldr warm src/ --lang python
tldr warm . --background                  # Build in background

# Build semantic index (one-time)
tldr semantic index [path]
tldr semantic index . --lang python
tldr semantic index . --model all-MiniLM-L6-v2  # Smaller model (80MB)

デーモン(クエリの高速化)

デーモンはインデックスをメモリ上に保持し、繰り返し実行するクエリに即座に応答します。

デーモンコマンド
# Start daemon (backgrounds automatically)
tldr daemon start
tldr daemon start --project /path/to/project

# Check status
tldr daemon status

# Stop daemon
tldr daemon stop

# Send raw command
tldr daemon query ping
tldr daemon query status

# Notify file change (for hooks)
tldr daemon notify <file>
tldr daemon notify src/api.py
デーモンの機能
機能説明
自動シャットダウン30 分間アイドル状態が続くと実行
クエリのキャッシュSalsaDB のメモ化
コンテンツのハッシュ化変更されていないファイルをスキップ
変更状態の追跡増分再インデックス
クロスプラットフォームUnix ソケット/Windows TCP
デーモンソケットプロトコル

ソケットに JSON を送信し、JSON の応答を受信します。

// Request
{"cmd": "search", "pattern": "process", "max_results": 10}

// Response
{"status": "ok", "results": [...]}

デーモンコマンド全 22 種:

ping, status, shutdown, search, extract, impact, dead, arch,
cfg, dfg, slice, calls, warm, semantic, tree, structure,
context, imports, importers, notify, diagnostics, change_impact

セマンティック検索(P6)

埋め込み表現を使用した自然言語によるコード検索です。

セットアップ
# Build index (downloads model on first run)
tldr semantic index .

# Default model: bge-large-en-v1.5 (1.3GB, best quality)
# Smaller model: all-MiniLM-L6-v2 (80MB, faster)
tldr semantic index . --model all-MiniLM-L6-v2
検索
tldr semantic search "authentication flow"
tldr semantic search "error handling patterns" --k 10
tldr semantic search "database connection" --expand  # Follow call graph
設定

.claude/settings.json に記述します。

{
  "semantic_search": {
    "enabled": true,
    "auto_reindex_threshold": 20,
    "model": "bge-large-en-v1.5"
  }
}

サポート対象言語

言語AST呼び出しグラフCFGDFGPDG
PythonYesYesYesYesYes
TypeScriptYesYesYesYesYes
JavaScriptYesYesYesYesYes
GoYesYesYesYesYes
RustYesYesYesYesYes
JavaYesYes---
C/C++YesYes---
RubyYes----
PHPYes----
KotlinYes----
SwiftYes----
C#Yes----
ScalaYes----
LuaYes----
ElixirYes----

無視するパターン

TLDR は .tldrignore(gitignore 構文)に従います。

# .tldrignore
.venv/
__pycache__/
node_modules/
*.min.js
dist/

初回実行時に、妥当なデフォルトを設定した .tldrignore が作成されます。 無視設定をバイパスするには --no-ignore を使用します。


TLDR と他のツールの使い分け

タスクTLDR を使用Grep を使用
関数定義を見つけるtldr extract file --function X-
コードパターンを検索するtldr search "pattern"-
文字列リテラルを検索する-grep "literal"
設定値を検索する-grep "KEY="
ファイル間の呼び出しを調べるtldr calls-
逆依存関係を調べるtldr impact func-
複雑度を分析するtldr cfg file func-
変数を追跡するtldr dfg file func-
自然言語でクエリするtldr semantic search-

Python API

from tldr.api import (
    # L1: AST
    extract_file, extract_functions, get_imports,
    # L2: Call Graph
    build_project_call_graph, get_intra_file_calls,
    # L3: CFG
    get_cfg_context,
    # L4: DFG
    get_dfg_context,
    # L5: PDG
    get_slice, get_pdg_context,
    # Unified
    get_relevant_context,
    # Analysis
    analyze_dead_code, analyze_architecture, analyze_impact,
)

# Example: Get context for LLM
ctx = get_relevant_context("src/", "main", depth=2, language="python")
print(ctx.to_llm_string())

バグ修正ワークフロー(ナビゲーション + 読み込み)

重要なポイント: TLDR で場所を特定してから、自分で読みます。要約だけを頼りにバグを修正しようとしないでください。

パターン
# 1. NAVIGATE: Find which files matter
tldr imports file.py              # What does buggy file depend on?
tldr impact func_name .           # Who calls the buggy function?
tldr calls .                      # Cross-file edges (follow 2-hop for models)

# 2. READ: Get actual code for critical files (2-4 files, not all 50)
# Use Read tool or tldr search -C for code with context
tldr search "def buggy_func" . -C 20
この方法が有効な理由

ファイルをまたぐバグ(例:フィールド名の誤り、型の不一致)では、次の内容を確認する必要があります。

  • バグがあるファイル(task.user_id にアクセスしているハンドラー)
  • 契約を定義するファイル(owner_id を定義しているモデル)

TLDR で関係するファイルを特定し、その後にファイルを読みます。

コンテキストをさらに確認する

TLDR の出力だけでは不十分な場合:

  • tldr search "pattern" . -C 20 - 前後 20 行のコンテキストを含む実際のコードを取得します
  • tldr imports file.py - ファイルが依存しているものを確認します
  • 実装全体が必要な場合は、ファイルを直接読みます

トークン削減の根拠

Raw file read:    23,314 tokens
TLDR all layers:   1,189 tokens
─────────────────────────────────
Savings:              95%

ポイント:呼び出しグラフで関連するコードに移動し、その後、レイヤーごとに構造化された要約を確認します。無関係なコードを読む必要はありません。

コメント