# GPT Ultrafast 実コーディング追試（2026-10-12）

Codex CLI（`codex exec --json`）で `gpt-6.1-sol` を `service_tier = default / fast / ultrafast` に切り替え、4種類の仕事を各3回ずつ測った。

- `run.py`: 実行と集計のハーネス（3 tierを同時に走らせて同じ時間帯に揃える。reasoning effort は low）
- `fix/`: 6件のテストが落ちるPythonモジュール。`test_textstats.py` の `SETUP_DELAY` を 15 にしたものが「テストが遅い」条件
- `logs/make_log.py`: 6万行のログを作る。正解は `req-ANSWER42`
- `results.json`: 全36 runの生データ（秒、コマンド数、トークン、正誤）
- `summary.json`: 仕事×tierの中央値

`write`（約1500語の文章を書かせる）のプロンプトは `run.py` の `PROMPTS` を参照。

## 素材の取得と入力準備

Python 3（標準ライブラリのみ）と、通常実行ではログイン済みのCodex CLIが必要です。次を同じフォルダ構成で保存してください。

- [run.py](/blog/what-is-gpt-ultrafast/experiment/run.py)
- [fix/textstats.py](/blog/what-is-gpt-ultrafast/experiment/fix/textstats.py)
- [fix/test_textstats.py](/blog/what-is-gpt-ultrafast/experiment/fix/test_textstats.py)
- [logs/make_log.py](/blog/what-is-gpt-ultrafast/experiment/logs/make_log.py)

`run.py` のあるフォルダで、まず課金CLIを呼ばない入力準備だけを実行できます。素材はスクリプトの場所から読むので、別の作業ディレクトリから絶対パスで呼んでも動きます。

```sh
UFEXP_ROOT=/tmp/ufexp-reader python3 run.py --prepare-only
```

`UFEXP_ROOT` の既定は `/tmp/ufexp`。その配下の管理された入力 `src/fix`、`src/fix_slow`、`src/logs` を準備のたびに作り直します。fixは公開2ファイルのコピー、fix_slowは同じコピーの `SETUP_DELAY = 0` だけを15秒に変更したものです。logsには60,000行の `app.log` を生成します。公開の元素材は変更しません。

4条件の通常実行は次です。3 tier × 3回 × 4条件 = 36回のCodex呼び出しとなり、契約・利用枠によって課金が生じることがあります。

```sh
UFEXP_ROOT=/tmp/ufexp-reader python3 run.py write fix fix_slow logs
```

通常実行も入力準備から始まります。作業コピーと生ログは `UFEXP_ROOT/work/`、集計前の結果は `UFEXP_ROOT/results.json` に保存します。掲載時の [results.json](/blog/what-is-gpt-ultrafast/experiment/results.json) と [summary.json](/blog/what-is-gpt-ultrafast/experiment/summary.json) は別の保存観察値です。
