バイブコーディングとは?AIにコードを任せるとき人がすべきこと
バイブコーディングを単に「言葉で頼めばAIが勝手に作ってくれるもの」と捉えるのではなく、人が要件と確認基準を決め、AIが作った結果を点検する作業方法として理解します。架空の家計簿CSV集計ツールを例に、入力・出力・してはいけないこと・確認方法を1ページのメモに整理します。
Claude Codeがファイルを修正する前にgitで基準点を残し、作業後は`git status`と`git diff`で実際の変更内容を読む流れを学びます。AIにdiffの説明を頼むことはできますが、説明だけを信じず、人がdiffと実行結果を確認してから自分でステージングとコミットを行う手順を使います。
対象読者Claude Codeが作った変更を戻せる基準点とレビュー記録を残すために、gitの最小限の作業フローを学びたい初心者
Claude Codeはプロンプトごとに自動チェックポイントを作成し、`/rewind`でコードや会話を戻す選択肢を提供しますが、公式ドキュメントでもこれはgitのようなバージョン管理を置き換えるものではないと説明されています。特にBashコマンドのrm、mv、cpなどで変更されたファイルや、Claude Codeの外で直接変更したファイルは、チェックポイントで追跡・復元できない場合があります。そのため重要な作業では、AI機能とは別にgitの基準点を残す方がよいでしょう。
| 手段 | この記事での役割 | 注意点 |
|---|---|---|
| Claude Codeチェックポイント | セッション中の巻き戻し補助 | すべての外部変更を追跡するバージョン管理ではない |
| git commit | 作業前後の状態を明示的に記録 | コミットするファイルを人が確認する必要がある |
| git diff | 実際の行単位の変更を確認 | AIの説明よりdiff原文を基準にする |
| 実行結果 | 機能が要件どおり動くか確認 | diffが小さくても結果検証は別に必要 |
この記事の目的はgitのすべての機能を学ぶことではありません。「作業前の状態をコミットし、AIが変更した後にdiffを読み、実行結果を確認してからコミットする」という最小限の流れだけを使います。
すでにgitリポジトリなら現在の状態を先に確認し、まだリポジトリでなければ練習フォルダで初期化できます。次の例は、前の記事までのファイルを作業前の基準点として記録する流れです。実際のプロジェクトでは無条件ですべてのファイルを追加せず、`git status`で対象を確認します。
cd vibe-expenses
git init
git status --short
git add expenses.csv summarize.py CLAUDE.md
git diff --cached
git commit -m "Baseline before category summary"このコンピュータでgitを使って初めてコミットする場合、コミット作成者情報がなくてgit commitが止まることがあります。その場合は、git config --global user.name "名前"とgit config --global user.email "メールアドレス"を一度設定してから再度コミットします。公開リポジトリに上げる予定なら、公開しても問題ないメールアドレスを使います。
`git diff --cached`はコミットに入るステージ済みの変更を表示します。最初のコミットでは出力が長くなることがありますが、少なくとも意図しないファイルが混ざっていないか確認します。実務リポジトリで`.env`、キーファイル、個人データのような機密ファイルを不用意に追加してはいけません。このシリーズは最初から仮想データだけを使います。
今回の作業はsummarize.pyに`--by-category`オプションを追加する一つの機能です。Claude Codeに依頼するときも、別のリファクタリングやファイル整理を一緒に行わないよう範囲を絞ります。変更が小さいほどdiffを読みやすく、問題が起きたときに原因を見つけやすくなります。
summarize.pyだけに`--by-category`オプションを追加してください。
通常実行の結果は変えず、expenses.csvとCLAUDE.mdは修正しないでください。
外部パッケージを追加しないでください。
修正後、どのファイルを変更したか教えてください。Claude Codeの公式ドキュメントでは、自然言語で'what files have I changed?'のように変更ファイルを尋ねられると案内されています。ただしAIの回答だけで変更範囲を確定せず、すぐ次の段階でgitが示す実際の状態を確認します。
作業が終わったと仮定したら、まず`git status --short`で変更ファイルを確認します。要件どおりならsummarize.pyだけが修正されているはずです。次に`git diff -- summarize.py`で、まだコミットしていない実際の変更内容を読みます。ファイル名だけ確認してすぐコミットすると、AIが一行を誤って変えていても見落とす可能性があります。
git status --short
git diff -- summarize.pyここでgit diffは「実際に何が変わったか」を示す資料であり、AIの説明はその資料を理解するための補助手段です。両者が異なる場合は、diff原文と実際のファイルを基準に判断します。
diffに慣れていなければ、Claude Codeに現在の変更を説明してもらうことができます。このとき新しい修正まで一度に頼まず、まず説明だけを求めれば、レビューと追加変更が混ざりません。
現在のgit diffを読んで、summarize.pyで変わった内容を説明してください。
1) 既存動作を維持している部分
2) `--by-category`のために追加された部分
3) 元のCSVを修正するコードがあるか
4) 新しい外部パッケージを使うか
この四項目だけで整理してください。今はファイルをさらに修正しないでください。[編集例 · 実際の応答ではありません]
- 既存の月別合計計算は維持され、通常実行では同じ形式で出力されます。
- category別の累積データ構造と`--by-category`条件が追加されています。
- 入力CSVへ書き込むコードは追加されていません。
- Python標準ライブラリだけを使い、新しい外部パッケージはありません。上の内容は、実際のClaude Codeが読んだdiffの結果ではなく、説明形式を示す編集例です。実際の作業では、それぞれの説明が`git diff`の行と一致するかを直接照合します。
diffが意図どおりに見えても、動作確認は別です。前の記事で検証した二つのコマンドを再度実行し、通常出力とオプション出力を確認します。この記事はgitの流れに集中するためPythonコードは再掲載せず、すでに検証済みのsummarize.pyを使う前提で実行コマンドだけを示します。
python summarize.py expenses.csv
python summarize.py expenses.csv --by-category通常実行は2026-09 = 26600, 2026-10 = 9800である必要があります。オプション実行では2026-09のfood 20500, transport 2900, supplies 3200を確認できる必要があります。値が違えばコミットせず、コードまたは入力ファイルを再確認します。
レビューと実行確認が終わったら、変更したファイルだけをステージングします。続いて`git diff --cached`で実際にコミットへ入る内容をもう一度確認してからコミットします。Claude Codeに自然言語でコミットを依頼することもできますが、初心者はどのファイルが入るのかを自分で確認してからコミットする流れを先に身につける方がよいでしょう。
git add summarize.py
git diff --cached -- summarize.py
git commit -m "Add category summary option"
git status --short公式ドキュメントでは、'commit my changes with a descriptive message'のように自然言語でコミットを依頼できると案内されています。ただしこの機能を使う場合でも、コミット直前にdiffと対象ファイルを確認する原則は同じです。コミット後に`git status --short`が空なら、追跡中の変更が残っていない状態です。
| 時点 | コマンドまたは行動 | 確認目的 |
|---|---|---|
| 作業前 | git commit | 戻れる基準点を作る |
| 作業後 | git status --short | 変更ファイルの範囲を確認 |
| レビュー | git diff | 実際の行単位の変更を読む |
| 機能確認 | Pythonの二つの実行コマンド | 期待出力が維持されているか確認 |
| コミット前 | git diff --cached | コミット対象を最終確認 |
| 完了 | git commit | レビュー済みの変更を新しい基準点として記録 |
Claude Code公式ドキュメント(2026-09-22確認)のgit・チェックポイント説明を基準に作成 · Claude Codeとgitコマンドを実際に実行したとは主張しない
この記事では実際にgitリポジトリを作成したり、Claude Codeにコミットを任せたりした実行記録を示していません。コマンドは学習用の連続例であり、実際のプロジェクトでは既存のブランチ方針、.gitignore、機密情報の有無を別途確認する必要があります。