# experiment: 新しいライブラリの仕様を、足した道具で解けるか

Vitest 5.0.3（2026-09-03にv5.0.0）を題材に、`claude -p`（Claude Code 2.1.289、claude-sonnet-5-5）へ課題を出し、**実際にVitestを走らせて採点**する。

- `tasks.py`: 課題6つ（t0は定番APIの対照）と採点。v5で変わった挙動（bench API、`sequential`の削除、JSONレポーターの出力先、`-t`の区切り、`clearMocks`の既定値）を使う。
- `check_graders.py`: 採点器の自己検証。v5の正解は通り、v4までの知識の答えは落ちることを確かめる。
- `run_experiment.py`: 6条件 × 6課題 × 3回 × 2モード（何も言わない／「最新の仕様を確かめてから」と一言添える）= 216回。
- `summarize.py`: 集計。`results/results.jsonl`（1回ごとのツール呼び出し・手数・換算額・採点）、`results/outputs.jsonl`（各回が書いたファイル）、`results/summary.txt`。
- 前提: `/tmp/mcpexp/base` に `package.json`（vitest 5.0.3、vite 7.3.2）を置いて `npm install` 済みにする。実行は `/tmp/mcpexp-runs/<run_id>/`。
- 条件A〜Dは実行中 `node_modules` を置かず（採点の直前に入れる）、Bashも無効。E・Fだけ `node_modules` がある。EだけBashがある。
- `total_cost_usd` はAPI料金に換算した額で、実際の請求ではない。キャッシュの状態で揺れる。
- 2026-10-06、Context7（キーなし）は47回の呼び出しすべてが `Monthly quota exceeded` を返した。条件Cは「Context7の品質」ではなく「キーなしで使えなかった場合」の記録。
