スキル debugging-strategies
📦

debugging-strategies

安全

体系的なデバッグ戦略を適用する

複雑なソフトウェアの問題のデバッグは、しばしばランダムでフラストレーションを感じるものです。このスキルは、体系的なデバッグ技術、プロファイリングツール、および根本原因分析法を提供し、トラブルシューティングを体系的なプロセスに変換します。

対応: Claude Codex Code(CC)
📊 69 十分
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「debugging-strategies」を使用しています。 My Node.js API returns 500 errors intermittently. The error says 'Cannot read property of undefined' but I cannot find where this happens.

期待される結果:

この undefined プロパティの問題を見つけるために体系的なデバッグを適用します。

## ステップ1: 再現して観察する
- エラーはいつ発生しますか?常にですか?ランダムですか?
- どの API エンドポイントがそれをトリガーしますか?
- どのようなリクエストパラメータが送信されますか?

## ステップ2: 情報を収集する
1. クラッシュしそうな場所の前に戦略的なロギングを追加します:
```javascript
console.log('Order data:', JSON.stringify(order, null, 2));
```
2. どのプロパティが undefined になる可能性があるか確認します:
```javascript
console.log('Items:', order?.items);
console.log('User:', order?.user?.name);
```

## ステップ3: 仮説
仮説: エラーは次の場合に発生する可能性があります:
- 特定のリクエストタイプに対して order.items が undefined の場合
- ゲストユーザーの場合 order.user が null の場合

## ステップ4: テストして確認する
null チェックを追加し、サンプルリクエストで確認します:
```javascript
const items = order?.items ?? [];
const userName = order?.user?.name ?? 'Guest';
```

この修正を実装するのを手伝いましょうか?

「debugging-strategies」を使用しています。 Help me debug a memory leak in my React application.

期待される結果:

React のメモリリークを体系的にデバッグする手順を案内します。

## 再現フェーズ
1. Chrome DevTools > Memory タブを開く
2. ヒープスナップショットを撮る(の前に)
3. 疑わしいリーク操作を 10-20 回実行する
4. 別のスナップショットを撮る(の後)
5. 保持されているオブジェクトを特定するためにスナップショットを比較する

## 一般的な React メモリリークパターン
1. 登録解除されていないイベントリスナー
2. useEffect クリーンアップでクリアされていないタイマー(setInterval)
3. コンポーネントスコープへの参照を保持しているクロージャ
4. 無制限に成長するグローバルキャッシュ

## クイックデバッグ手順
```javascript
useEffect(() => {
const timer = setInterval(() => {
// ...
}, 1000);

// クリーンアップ関数 - リークを防ぐために重要
return () => {
clearInterval(timer);
// サブスクリプションを削除する
};
}, []);
```

どのような症状が見られますか?DevTools でメモリ使用量が高いですか、それとも実際のクラッシュですか?

セキュリティ監査

安全
v5 • 1/21/2026

Static analysis detected 54 potential issues, all confirmed as false positives. The 'scripts' patterns are Go import statements in code examples. 'External_commands' are markdown backticks used for code formatting. 'Weak cryptographic algorithm' flags are triggered by Go standard library package names (crypto/pprof). 'Network' URLs are GitHub source URLs and localhost debugging endpoints. All findings are legitimate documentation content with no security concerns.

2
スキャンされたファイル
1,137
解析された行数
0
検出結果
5
総監査数
セキュリティ問題は見つかりませんでした
監査者: claude 監査履歴を表示 →

品質スコア

38
アーキテクチャ
100
保守性
87
コンテンツ
21
コミュニティ
100
セキュリティ
87
仕様準拠

作れるもの

elusive な本番バグを修正する

ロogging、スタックトレース分析、差分デバッグを使用して、本番環境での再現が困難な問題を追跡するために体系的なデバッグ技術を適用します。

遅いアプリケーションのパフォーマンスを最適化する

プロファイリングツールと技術を使用して、JavaScript、Python、Goアプリケーション全体のボトルネック、メモリリーク、非効率なコードパターンを特定します。

構造化されたデバッグアプローチを学習する

デバッグのための科学的方法、ラバーダックデバッグ、体系的な問題isolateをマスターして、あらゆるコードの問題のトラブルシューティングをより効果的に行えるようになります。

これらのプロンプトを試す

特定のエラーをデバッグする
アプリケーションで以下のエラーが発生しています: [insert error message and stack trace]。根本原因を特定するために体系的なデバッグ技術を適用してください。科学的方法を段階的に説明します: 観察、仮説、実験、分析。
パフォーマンスのボトルネックをプロファイリングする
私の [application type] アプリケーションが遅いです。ボトルネックを特定するためにプロファイリングツールを使用するのを手伝ってください。時間がどこに使われているかを見つけるために [Chrome DevTools / cProfile / pprof] を使用する段階的な手順を含めてください。
競合条件をデバッグする
間欠的なバグがあり、ときどき発生し、非同期操作に関連しているようです。トレースロギングとタイミング分析を使用した競合条件のデバッグについて案内してください。
regres sion のために git bisect を使用する
バグは動作するバージョン [version A] と現在のバージョン [version B] の間に発生しました。 regres sion を導入した正確なコミットを見つけるために git bisect を使用する手順を案内してください。

ベストプラクティス

  • 修正を試みる前に、バグを一貫して再現します。一貫した再現なしでは、ソリューションを確認できません。
  • 関連のないコードを削除して問題を分離します。問題を実証する最小限の再現ケースを作成します。
  • デバッガーを使用し、console.log 文だけではありません。ブレークポイントを使用すると、任意の時点でプログラムの状態を検査できます。

回避

  • 一度に複数の変更を加える、実際に何を修正しているかを理解するために、一度に1つのことだけを変更します。
  • エラーメッセージを無視したり、スタックトレース全体を読んだりしない、エラーメッセージとスタックトレースには貴重な手がかりが含まれています。
  • バグが他の人のコードにあると想定する、ほとんどのバグは、サードパーティのライブラリではなく、自分の最近の変更にあります。

よくある質問

デバッグのための科学的方法とは何ですか?
デバッグのための科学的方法は次のとおりです: (1) 実際の動作とエラーを観察します, (2) 何が原因かについての仮説を形成します, (3) 仮説をテストするための実験を設計して実行します, (4) 結果が理論を証明するか反証するかを分析します, (5) 根本原因が見つかるまで新しい仮説で繰り返します。
本番環境の問題を安全にデバッグするにはどうすればよいですか?
本番コードを直接変更しないでください。代わりに: (1) 詳細情報を取得するためにロギングを追加します, (2) 修正をテストするためにフィーチャーフラグを使用します, (3) まずステージングにデプロイして確認します, (4) Sentry などのエラートラッキングツールを使用します, (5) ローカルで匿名化された本番データで作業します。
バイナリ検索デバッグとは何ですか?
バイナリ検索デバッグは、問題をコードに繰り返し半分にすることで狭めます。コードの半分をコメントアウトして、バグがまだ発生するかどうか確認します。問題のある正確な行またはセクションが特定されるまで、狭め続けます。
間欠的なバグをデバッグするにはどうすればよいですか?
間欠的なバグには、詳細なロギングと状態キャプチャが必要です。タイミング、入力データ、状態遷移を示す詳細なログを追加します。バグが発生するときのパターンがないか確認します。非同期コードとタイミング依存関係の競合条件を確認します。
ラバーダックデバッグとは何ですか?
ラバーダックデバッグは、ラバーダックまたは同僚に、コードと問題を1行ずつ声に出して説明することです。問題を口頭で説明する行為は、多くの場合、問題が明らかになります。それは、各ステップをゆっくりと考え直すことを強制します。
git bisect を使用してバグがいつ導入されたかを見つけるにはどうすればよいですか?
Git bisect は、バグを導入したコミットを検索することを自動化します。'git bisect start' を実行し、'git bisect good <commit>' で既知の正常なコミットをマークし、'git bisect bad <commit>' で既知の不良コミットをマークします。Git はあなたがテストするために中央のコミットをチェックアウトします。各々に 'good' または 'bad' とマークするまで、特定のコミットを識別します。

開発者の詳細

ファイル構成

📄 SKILL.md