bug-fix
バグ報告をもとに、再現確認 → 原因特定 → 修正 → 回帰テストを体系的に行うスキル。推測で修正せず、原因を確実に特定してから最小限の修正を行う。
引数
- •Issue 番号 (例:
/bug-fix #42): GitHub Issue からバグ報告を取得する。gh issue viewで内容を読み取る - •Issue URL (例:
/bug-fix https://github.com/owner/repo/issues/42): 同上 - •テキスト (例:
/bug-fix ログイン時に500エラー): テキストをそのままバグ報告として扱う - •引数なし: ユーザーにバグの症状をヒアリングしてから開始する
実行プロセス
フェーズ1: バグ報告の整理とブランチ作成
- •引数からバグ報告を取得する
- •Issue が指定された場合:
gh issue viewで本文・コメント・ラベルを読み取る - •テキストが指定された場合: テキストをバグ報告として扱う
- •引数なしの場合: ユーザーにヒアリングする
- •Issue が指定された場合:
- •以下の情報を整理する(不足している場合はユーザーに確認する)
- •症状: 何が起きているか
- •期待される動作: 本来どうあるべきか
- •再現手順: どうすれば再現できるか
- •発生環境: ブラウザ、OS、環境(本番/ステージング/ローカル)
- •発生頻度: 常に / 時々 / 特定条件で
- •現在のブランチをベースブランチとして記録する(PR のマージ先になる)
- •作業ブランチを作成する
- •Issue が指定された場合:
fix/#<Issue番号>(例:fix/#42) - •テキスト / 引数なしの場合:
fix/<バグの要約>(例:fix/login-500-error)
- •Issue が指定された場合:
- •TodoWrite でタスクを管理する
フェーズ2: 原因調査
- •
再現確認
- •バグ報告の再現手順に従い、実際にバグが再現することを確認する
- •再現できない場合はユーザーに追加情報を求める
- •ログ(
ghでデプロイログ、ローカルのエラーログ等)を確認する
- •
影響範囲の特定
- •
ExploreエージェントやGrep/Globで関連コードを調査する - •エラーメッセージ、スタックトレースから発生箇所を特定する
- •関連するテストがあれば確認し、なぜテストで検出できなかったかを分析する
- •
- •
原因の特定
- •根本原因(Root Cause)を特定する
- •推測ではなく、コードの流れを追って原因を裏付ける
- •原因と修正方針をユーザーに報告し、合意を得る
フェーズ3: 修正サイクル
ステップ3-1: 回帰テストの作成
- •修正の前に、バグを再現するテストを作成する
- •このテストが現時点で失敗することを確認する
- •テストは最も近い既存のテストスイートに配置する
ステップ3-2: 修正
- •最小限の変更でバグを修正する
- •関連する箇所への副作用がないことを確認する
ステップ3-3: 検証
- •回帰テストが通ることを確認する
- •既存のテストスイートがすべて通ることを確認する
- •修正が期待される動作と一致することを確認する
ステップ3-4: Review
- •
reviewerエージェントを利用し、修正内容をレビューする - •修正が最小限か、副作用がないか、テストが十分かを評価する
ステップ3-5: 改善サイクル
- •レビューで指摘された問題がある場合:
- •再度修正を行う
- •再度レビューを行う
- •指摘事項がなくなるまで繰り返す
ステップ3-6: Format & Lint
- •プロジェクトの設定に従い、変更したファイルに対して format と lint を実行する
- •format/lint の設定が見つからない場合はこのステップをスキップする
ステップ3-7: Commit
- •修正内容をコミットする
- •コミットメッセージは CLAUDE.md の規約に従う
フェーズ4: プルリクエスト
- •
gh pr create --base <ベースブランチ>でプルリクエストを作成する- •ベースブランチはフェーズ1で記録した開始時のブランチを指定する
- •Issue が指定された場合: タイトルに Issue 番号を含め、
Closes #<番号>で紐付ける - •PR 本文に以下を含める:
- •バグの症状と原因の説明
- •修正内容のサマリー
- •手動チェックリスト
- •修正内容のサマリーをユーザーに報告する
PR 手動チェックリスト
markdown
## バグ修正チェック ### 再現と修正 - [ ] 修正前にバグが再現することを確認した - [ ] 修正後にバグが解消されることを確認した - [ ] 回帰テストを追加した ### 影響範囲 - [ ] 関連する機能に副作用がない - [ ] 既存のテストがすべてパスする ### 品質 - [ ] lint / format がパスする - [ ] 400 行を超えるファイルがない
ルール
- •推測で修正しない。原因を特定してから修正に着手すること
- •修正の前に必ず回帰テストを書く(テストが失敗 → 修正 → テストが通る の流れ)
- •修正は最小限に留める。バグに無関係なリファクタリングを混ぜない
- •原因と修正方針は必ずユーザーに報告し、合意を得てから実装する
- •🔴(重大)または🟠(重要)のレビュー指摘は必ず修正する
- •🟡(提案)や🟢(軽微)は、明確なメリットがある場合のみ対応
- •各フェーズの進捗は TodoWrite ツールで管理する