Explain Code
コードを直感的に理解できるよう、日常的なアナロジーとASCII図で説明します。
使用方法
/explain-code $ARGUMENTS
$ARGUMENTS にファイルパスまたはシンボル名を指定してください。
引数がない場合は、ユーザーに対象を確認してください。
または「このコードはどう動くの?」と質問すると自動起動。
説明フォーマット(必須構造)
コードを説明する際は、必ず以下の構造に従う:
1. 一言サマリー
「このコードは X をする。」の形式で1文で説明。
2. アナロジー(たとえ話)
非技術的な日常の概念に例える:
| カテゴリ | アナロジー例 |
|---|---|
| データ構造 | Stack = 皿の山、Queue = 行列、Tree = 家系図 |
| アルゴリズム | ソート = トランプの並べ替え、検索 = 図書館の索引 |
| デザインパターン | Observer = YouTube登録、Factory = レストラン厨房、Singleton = 国の首相 |
| 非同期処理 | async/await = レストランの注文(注文→料理中→配膳) |
3. ASCII図
適切な図の種類を選択:
| 図の種類 | 用途 |
|---|---|
| フローチャート | 順次処理 |
| ツリー図 | 階層構造/再帰 |
| シーケンス図 | マルチコンポーネント通信 |
| 状態遷移図 | ステートマシン |
| ボックス図 | アーキテクチャ/関係性 |
使用する記号:
code
─── │ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ (罫線) ──▶ ──▷ (矢印) ✓ ✗ ⚠ (ステータス) ① ② ③ (番号付きステップ)
4. ステップバイステップ解説
行番号を参照しながら説明:
- •WHAT: 各セクションが何をするか
- •WHY: なぜそのように実装されているか
- •HOW: データがどう変換されるか
5. Gotcha(よくある落とし穴)
必ず1つ、人がハマりやすいポイントを指摘:
- •❌ 間違ったやり方
- •✅ 正しいやり方
6. 関連概念(オプション)
役立つ場合は、次に学ぶべき1-2個の関連トピックを提示。
出力例
code
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🎯 ANALOGY: [日常の例え] [2-3文の説明] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📐 DIAGRAM: [ASCII図] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📖 WALKTHROUGH: Line X-Y: [説明] Line Z: [説明] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ⚠️ GOTCHA: [よくある間違いと正しい方法]