要件の伝え方
要件とは「決まっていること」
前の章では、対象と変更を分けて書くところまでやりました。この章では、その中身をもっと細かく詰めます。
要件とは、あなたの頭の中では決まっているのに、まだ言葉にしていないことです。
プレーンテキスト
頭の中 月ごとの支出を出したい。月は年をまたぐから 2026-04 の形で。
口に出た 月ごとの集計を作ってこの差が、そのまま AI の推測になります。推測が当たれば速く、外れれば書き直しです。
目的と入出力の3点セット
要件は3つ書くと、ほぼ埋まります。
プレーンテキスト
目的 何のために必要か
入力 どんなデータが来るのか
出力 どんな形で返ってほしいのかおこづかい帳で書いてみます。
プレーンテキスト
悪い カテゴリごとに集計して
良い 目的 月末にカテゴリ別の使いすぎを見たい
入力 {"date": "2026-04-02", "category": "食費", "amount": 800} の辞書のリスト
出力 {"食費": 1200, "交通費": 400} のようなカテゴリ名から合計金額への辞書右側なら、AI が迷う余地はほとんどありません。入力の形を具体例で見せるのが特に効きます。言葉で「支出のリスト」と書くより、辞書を1つ書いたほうが速くて正確です。
出力の形は必ず自分で決める
出力を書かないと、AI は都合よく決めます。
プレーンテキスト
カテゴリ別に集計してこれだけだと、返ってくるのは辞書かもしれないし、タプルのリストかもしれないし、整形済みの文字列かもしれません。どれも「カテゴリ別の集計」です。間違ってはいません。
呼び出す側のコードは、形が違えばそのまま壊れます。戻り値の型と構造は、頼む側が決めるものだと考えてください。
端の場合も要件のうち
要件で最も抜けやすいのが、データが無いときの扱いです。
プレーンテキスト
支出が1件も無い月は、空の辞書を返してください。エラーにはしないでください。これを書かないと、空リストを渡したときに例外が飛ぶ実装が返ってくることがあります。悪意ではなく、単に指定が無かっただけです。
指定が無い部分は AI が決める。 第1章で出たこの性質は、要件を書くときにも同じように働きます。
練習
この回の演習は、条件をわざと多くしてあります。目的と入力と出力、それに空のときの扱いまで書かないと通りません。全部書き出してから頼んでください。
完成条件
- 触ってよいのは kakeibo.py だけです
- 入力は date と category と amount を持つ辞書のリストです
- 出力はカテゴリ名をキー、合計金額を値とする辞書です
- 支出が1件も無いときは空の辞書を返します