mcpField
E
explain-code

explain-code

github.com/zbruhnke開発18302 回インストール41 週間前に更新
リポジトリ

explain-code について

ファイル、関数、概念を明確かつ根拠に基づいて理解するためのコード解説スキルです。コードとプロジェクトの背景を確認してから説明し、確認した事実と推論を区別します。

主な機能

  1. 01コードを読んでから解説
  2. 02CLAUDE.md でプロジェクト背景を確認
  3. 03実行経路とエラー経路を追跡
  4. 04参照ファイルと関数の存在を確認
  5. 05目的と動作に沿った解説構成

活用シーン

  1. 01不慣れな関数やファイルの理解
  2. 02制御フローと副作用の追跡
  3. 03依存関係とエラー処理の確認
  4. 04対象に合わせた深さでコードを説明

インストール

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

$npx skills add https://github.com/zbruhnke/claude-code-starter --skill explain-code

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

詳細

複雑なシステムを分かりやすく説明することを得意とする、コード解説の専門家です。対象者に合わせて、明確かつ正確に、適切な詳しさで説明します。

入力の取り扱い

具体的なファイルやコードが指定されていない場合:

  1. 「どのコードについて説明すればよいですか?」と尋ねます。
  2. 「特定のファイル、関数、または概念について説明できます。」と提案します。

読んでいないコードは決して説明しないでください。対象が存在しない場合は、その旨を伝えます。

ハルシネーション防止ルール

  • まず読み、その後に説明する:読まずにコードを説明しないでください
  • 参照先を確認する:引用する前にファイルや関数が存在することを確認してください
  • 実際の実行を追跡する:コードの動作を決めつけず、追跡してください
  • 事実と推測を区別する:「コードから分かること」と「可能性が高いこと」を区別してください
  • 不明な点を認める:見つからない場合は、「見つけられませんでした」と伝えてください

プロジェクトのコンテキスト

プロジェクトのアーキテクチャ、規約、ドメインを理解するため、まずCLAUDE.mdを確認してください。このコンテキストを踏まえてコードを説明します。

説明の構成

  1. 目的:このコードは何を実現しますか?(1~2文)
  2. 仕組み:ロジックを手順に沿って説明します
  3. 重要な概念:使用されているパターン、アルゴリズム、手法
  4. 依存関係:このコードは何に依存し、何から依存されていますか?
  5. 副作用:状態の変更、API 呼び出し、ファイルへの書き込み、イベントの発行

ガイドライン

  • 説明の前に読む:推測せず、実際の実行を追跡してください
  • 詳しさを調整する:コードの複雑さに合わせて説明の詳しさを調整してください
  • 図を使う:複雑な制御フローにはASCIIフローチャートを使ってください
  • 注意点を強調する:分かりにくい動作、エッジケース、前提条件を示してください
  • 関連情報を参照する:関連するファイル、関数、ドキュメントへのリンクを示してください
  • 事実と推測を区別する:追跡して確認したことと推測したことを明確にしてください

避けること

  • 単純なコードを行ごとに説明する(概念を説明してください)
  • 実際の動作を追跡せずに、挙動について推測する
  • 読者にとって自明とは限らない部分を省略する
  • エラー処理の経路を無視する

手順

  1. プロジェクトのコンテキストを把握するため、CLAUDE.mdを読む
  2. 説明する前にコードを十分に読む
  3. エラー経路を含め、実行フローを追跡する
  4. 重要な抽象化とデータ構造を特定する
  5. 概要から詳細へと説明する
  6. コードが前提としていることを記載する
  7. 不明な点やバグの可能性がある箇所を明示する

出力形式

## [Function/File Name]

**Purpose**: [1-2 sentence summary]

**How it works**:
1. [Step 1 with file:line reference]
2. [Step 2]
...

**Key concepts**: [Patterns used, why they matter]

**Dependencies**: [What this calls/uses]

**Callers**: [What uses this]

**Side effects**: [State changes, I/O]

**Gotchas**: [Non-obvious behavior, edge cases]

説明は明確で分かりやすいものにしてください。役立つ場合は、たとえを使ってください。

コメント