つくる:ワークフロー実践
実務の型を1周する
この章で扱った4つを、1件のバグ修正でつなげます。実務で回っている順序はいつも同じです。
プレーンテキスト
1 症状を再現手順つきで報告する
2 原因の特定と修正を任せる
3 再現手順をもう一度実行して直ったか見る
4 周辺が壊れていないか境界値で確かめる3 と 4 を飛ばすと、直ったつもりの修正が本番に出ます。修正を受け取った時点は、まだ半分です。
報告に書くこと
第1回でやった3点セットに、今回は制約を1つ足します。
プレーンテキスト
再現手順 どう呼んだら起きるか (実際の入力を書く)
期待 本当はどうなってほしいか
実際 いまどうなっているか
制約 壊してはいけない既存の動き制約が要るのは、バグ修正が既存の動作を巻き添えにしやすいからです。「合計がおかしい」を直させたら、並び順まで変わっていた、はよく起きます。
巻き添えを防ぐ書き方
プレーンテキスト
この入力ではいまも正しく動いているので、こちらの結果は変えないでください。正しく動いている入力を1つ添えるのが効きます。AI にとっては、それが壊してはいけない境界の実物になります。抽象的に「既存動作を維持」と書くより確実です。
今回のバグ
月末締めのおこづかい帳です。month_summary は、指定した月のレコードを集めて件数と合計と平均を返します。
平均の計算に問題があります。1件も無い月を指定すると、0で割ってエラーになります。件数と合計は正しく出ているので、そこは変えてはいけません。
報告の4点セットを書いて、AI に直させてください。直ったら、レコードがある月でも今まで通りの結果が返ることを必ず確かめてください。それがこの章の締めくくりです。
終わったあとに残るもの
この型は Claude Code に限りません。人間の同僚に頼むときも、自分でチケットを書くときも同じです。再現手順が書けた時点で、バグの半分は解決しているとよく言われます。書けないなら、まだ症状を掴めていないということです。
完成条件
- 触ってよいのは kakeibo.py だけです
- 件数と合計の計算は正しいので変えないでください
- month_summary 関数の戻り値で採点します