code-trace について
アプリケーションコードの実行経路を対話形式で追跡するスキルです。HTTP リクエストや関数呼び出しを段階的に説明し、分岐の選択や追跡状態の保存に対応します。外部依存は境界として扱います。
主な機能
- 01リクエストと関数の経路を追跡
- 02分岐を対話形式で探索
- 03ファイルと行番号を示して説明
- 04追跡状態の保存と再開
- 05外部依存の概要を提示
活用シーン
- 01HTTP リクエストから応答まで追跡
- 02関数の呼び出し元と呼び出し連鎖を把握
- 03中断したコード追跡を再開
MCP 対応
Serena MCP を使ってシンボルを検索し、追跡状態を記憶します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ laststance/ skills --skill code-traceインストール後、Claude Code で/code-traceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/control-flow-types.mdexplanation-style.mdframework-patterns.mdmermaid-templates.mdscripts/detect-framework.shworkflows/trace-function.mdtrace-request.md詳細
Codex 互換性
Codex でこのスキルを実行する場合は、操作を行う前に Claude Code 専用のプリミティブを変換してください。AskUserQuestion は chat/request_user_input に、TodoWrite は update_plan に、Task/TaskCreate/TeamCreate/SendMessage は、利用可能かつ許可されている場合に spawn_agent/send_input/wait_agent に変換します。また、EnterPlanMode/ExitPlanMode は、簡潔なチャットでの計画と明示的な承認に置き換えます。
Read/Write/Edit/Bash/WebSearch/WebFetch は Codex のファイル/シェル/ウェブツールに対応付け、タスクが明示的に Claude Code を対象としていない限り、~/.claude/... のパスは ~/.agents/... または ~/.codex/... に対応付けます。
Cursor 互換性
Cursor Agent でこのスキルを実行する場合は、操作を行う前に Claude Code 専用のプリミティブを変換してください。AskUserQuestion は AskQuestion に、TodoWrite は Cursor の TodoWrite または同等のチェックリストに変換します。Task/TaskCreate/TeamCreate/SendMessage/マルチエージェントのフローは、許可されている場合に Cursor の Task(サブエージェント)、並列の Task、または run_in_background に置き換えます(TeamCreate/SendMessage に完全に一致する機能がない場合があります)。EnterPlanMode/ExitPlanMode は、プランモード(SwitchMode/CreatePlan)と明示的なユーザー承認に置き換えます。
Read/Write/Edit/StrReplace/Bash/web/search/MCP は、Cursor Composer または Agent の同等機能に対応付けます。mcp__server__tool 形式の MCP 名は通常、設定済みのサーバー識別子を使った call_mcp_tool に対応付けます。タスクが明示的に Claude Code を対象としていない限り、~/.claude/... は ~/.cursor/skills/、.cursor/skills/、.cursor/rules/ に対応付けます。
<essential_principles>
コードトレースの仕組み
このスキルは、コードベース内をデバッガーでステップ実行するように対話的にコードの実行経路をたどり、各ステップで詳しい説明を提供します。
原則 1:アプリケーションの境界
トレースするのはアプリケーションコードのみです。外部依存関係(node_modules、vendor/)については、次の対応にとどめます。
- 何をするものかを要約する
- 公式ドキュメントへのリンクを示す
- 内部まで詳しくトレースしない
理由:外部ライブラリは 10 万行を超えることもあります。その内部までトレースすると、コンテキストを浪費し、実際のアプリケーションロジックが見えにくくなります。目的は、ライブラリの内部ではなく、あなたのコードを理解することです。
原則 2:対話的なナビゲーション
条件分岐ごとに、ユーザーが選択できるようにします。
| コードパターン | 表示方法 |
|---|---|
if/else | 「経路 A:条件が真」対「経路 B:条件が偽」 |
switch | ケースごとに 1 つの選択肢 |
try/catch | 「成功経路」対「エラー経路」 |
async/await | 呼び出し先の関数をトレースする選択肢 |
理由:直線的なトレースでは重要な経路を見落とします。対話的なナビゲーションにより、ユーザーは関心のある経路を正確に調べられます。
原則 3:段階的な説明
各ステップには、次の内容を含めます。
- 場所:ファイル、行の範囲、関数名
- コード:省略せずにソース全体を示す
- 内容:コードが何をするかの簡潔な要約
- 理由:このステップがフローに存在する理由
- 次の処理:次に起こること(分岐がある場合は選択肢)
明確にするため、思考マーカー(🤔🎯⚡📊💡🔐)を使用します。
原則 4:状態の永続化
トレースの状態は Serena Memory に保存され、次のことが可能になります。
- 中断したトレースの再開
- 以前の判断地点への巻き戻し
- 完了したトレースの将来の参照用保存 </essential_principles>
- リクエストフローをトレースする - HTTP リクエストの受信からレスポンスまでを追跡します
- 関数呼び出しをトレースする - 特定の関数をコードベース内で追跡します
- 前回のトレースを再開する - 中断したところから続けます
追加のコンテキストを提供してください:
- リクエストのトレースの場合:どのエンドポイントですか?(例:「POST /api/users」)
- 関数のトレースの場合:どの関数ですか?(例:「validateUser」または「src/utils/auth.ts:checkToken」)
続行する前に応答を待ちます。
| 応答 | ワークフロー | |----------|----------| | 1、「request」、「HTTP」、「route」、「API」、「endpoint」、「POST」、「GET」 | `workflows/trace-request.md` | | 2、「function」、「call」、特定の関数名 | `workflows/trace-function.md` | | 3、「resume」、「continue」、「previous」 | `trace_session_*` の Serena メモリを読み込みます |ワークフローを開始する前に
-
フレームワークを検出する:
scripts/detect-framework.shを実行して、以下を特定します:- Express、Next.js(App/Pages)、Fastify、Hono、NestJS、Koa、または汎用
-
フレームワークのパターンを読み込む:検出されたフレームワークの
references/framework-patterns.mdのセクションを読みます -
Serena を準備する:以下のために Serena MCP が利用可能であることを確認します:
find_symbol()- 関数やハンドラーを検索しますfind_referencing_symbols()- 呼び出し元を検索しますget_symbols_overview()- モジュール構造を把握しますwrite_memory()/read_memory()- 状態を保持します
意図とフレームワークを特定したら、適切なワークフローを読み、その手順に従ってください。
<reference_index>
リファレンス
すべて references/ 内にあります:
| ファイル | 内容 |
|---|---|
| framework-patterns.md | Express、Next.js、Fastify などのエントリーポイントの検出とリクエストフロー |
| control-flow-types.md | if/switch/try/ループを対話型の選択肢として提示する方法 |
| explanation-style.md | 思考マーカー、ステップ形式、要約形式 |
| mermaid-templates.md | トレースの path_history から Mermaid.js フローチャートを生成 |
</reference_index>
<workflows_index>
ワークフロー
すべて workflows/ 内にあります:
| ワークフロー | 目的 |
|---|---|
| trace-request.md | HTTP リクエストをエントリーからレスポンスまでトレースします |
| trace-function.md | 特定の関数の呼び出しチェーンをトレースします |
</workflows_index>
<scripts_index>
スクリプト
| スクリプト | 目的 |
|---|---|
| detect-framework.sh | package.json からプロジェクトのフレームワークを自動検出します |
使用方法:
./scripts/detect-framework.sh /path/to/project
# Output: express | nextjs-app | nextjs-pages | fastify | hono | nestjs | koa | generic
</scripts_index>
<success_criteria> コードトレースの成功条件:
- エントリーポイントが正しく特定され、説明されている
- フレームワークが検出され、適切なパターンが適用されている
- 少なくとも1つの分岐点が対話型の選択肢として提示されている
- 外部依存関係が要約されている(詳細にはトレースしない)
- ユーザーが終端まで進んだ、または停止を選択した
- 経路履歴が ASCII フローチャート形式で表示されている
- トレースが完了した場合、Mermaid フローチャートを出力オプションとして提示している
- 重要な知見が収集され、表示されている
- ユーザーが保存を選択した場合、トレースの状態を再開に利用できる
</success_criteria>
## 範囲行うこと:
- アプリケーションコードをソース全体を表示しながらトレースします
- 思考マーカーを使って各ステップを説明します
- 条件分岐を対話型の選択肢として提示します
- 境界部分で外部依存関係を要約します
- 再開できるよう、トレースの状態を保持します
行わないこと:
- node_modules や外部ライブラリの詳細なトレース
- コードの実行または起動(読み取り専用の分析)
- ソースファイルの変更
- 実行時の値についての仮定(すべての分岐を提示します)