# Opus 5 / Opus 5.5 日本語業務比較用の固定課題

公開日: 2026-09-23。すべて架空のデータです。
この教材にモデルの実測結果は含まれません。モデルを動かす場合の利用料金は別途かかります。

## 準備

- 同じ内容の空フォルダーをモデル・試行ごとに用意し、sales.csv を置く。
- モデルID、利用ツールとそのバージョン、effort、開始時刻を記録する。
- 過去会話、他の試行の生成コード、正解表をモデルに渡さない。
- 比較する2モデルで同じ指示、実行権限、制限時間、終了条件を使う。
- 下の指示だけを渡す。実務で使う既定設定の比較と同一effortの比較は別に記録する。

## モデルへ渡す指示

sales.csv は架空の売上明細です。Python の標準ライブラリだけで summarize.py を作ってください。

1. python3 summarize.py sales.csv 2026-09 で、その月の取引先別税抜売上を標準出力へCSVで返す。
2. 出力の列は「取引先,税抜売上,件数」。取引先は対象月で最初に現れた順とする。
3. 負数は返品なので合計に含める。金額が空欄の行は件数にも含めず、元ファイルの行番号を標準エラーへ記録する。先頭の見出しを1行目とする。
4. 他月の明細は集計しない。取引先名中のカンマを正しく扱う。
5. 正常な入力への集計結果だけを標準出力へ書く。入力ファイルは変更しない。
6. 自動テストも作って実行する。実行コマンド、結果、制約を最後に日本語で報告する。

## 人間が確認する正解（モデルには渡さない）

```csv
取引先,税抜売上,件数
青葉商店,9000,2
朝日工業,20000,1
"ふくふく,東店",5000,1
```

合計は34,000円。金額が空の元ファイル5行目が除外され、標準エラーにその行番号が残る。
CSVは文字列一致ではなくCSVとして読み取り、値と順番を比較する。
改行コードや、不要だが許容される引用符の違いを誤りとしない。

## 記録用の項目

- モデルID、ツール名とバージョン、effort、試行番号、開始・終了時刻
- 完了条件を満たしたか、正解表との差、入力ファイルの変更有無
- 人による追加指示回数と内容、確認にかかった時間
- 通常入力、5分キャッシュ書き込み、1時間キャッシュ書き込み、キャッシュ読み取り、出力の全リクエスト合計
- APIの通常料金か、月額プランか。高速モードや有料ツールなど別料金の有無

1回の成功だけで優劣を決めず、予算の範囲で複数回試し、失敗・途中終了も残す。
時間と費用の上限は実行前に自分で決め、超えた試行を消さない。
同じ指示でも結果は揺れるため、少数の試行から全業務の改善率を推定しない。

## 料金計算

cost.py と hypothetical-usage.json を同じ場所へ保存し、次でオフライン計算できる。

```sh
python3 cost.py hypothetical-usage.json
```

同梱JSONは仮の使用量で、実測値ではない。
5項目は記事独自の集計形式で、APIレスポンスをそのまま読み込むものではない。
それぞれの実測使用量を集計した2ファイルがある場合は次で比較する。

```sh
python3 cost.py opus5-usage.json opus55-usage.json
```

不明な値を0で埋めない。書き込みの内訳が不明なら、確定した金額として比較しない。
料金は2026-09-23確認の通常Claude API単価。高速モード、バッチ割引、地域指定の加算、
ツール料金、外部実行環境、月額プラン、税・為替は計算対象外。
