先に答え:形が決まっているなら、条件を書いた方が速く、小さく、確かめやすくなりました
自分もこの設定で試すべきか:はい。1行の頼みでは、HTML・CSS・JavaScript の3ファイル(合計 10,527 バイト)ができ、外部フォントの読み込みも入っていました。時間は 37.0 秒でした。
条件を書いた頼みでは、1ファイル(1,623 バイト)で、6条件を満たし、23.4 秒でした。条件ごとの確認を表で報告させたので、確かめる手間も減りました。
記録の条件
| 項目 | 内容 |
|---|---|
| 実行した日 | 2026年11月1日(日本時間 22時台) |
| CLI の版 | codex-cli 0.162.0-alpha.17.2(codex --version の出力) |
| 環境 | Windows 11 Home(日本語)。ChatGPT デスクトップアプリに同梱の codex.exe をターミナルから直接実行 |
| 実行の形 | codex exec(非対話)。ログイン済みの状態をそのまま使い、ログインのし直しはしていない |
| 作業フォルダ | 課題ごとに新しい空のフォルダを作って使った(フォルダの外は触らせていない) |
| モデル・推論 | -m gpt-5.6-luna・low・-s workspace-write |
課題とコマンド
曖昧な頼み:「ちんあなごのページを作って」
条件つきの頼み:「ちんあなごを紹介する静的ページ index.html を1つ作ってください。受け入れ条件: (1) <html lang="ja"> と viewport の meta を入れる (2) <title> を入れ、h1 は1つだけ (3) h2 の節を3つ (4) 外部のファイル・スクリプト・画像は読み込まない (5) ファイルサイズは4000バイト以下 (6) 作ったあと、条件を一つずつ確かめた結果を表にして報告する。」
codex exec --skip-git-repo-check --ephemeral -c notify=[] -s workspace-write -m gpt-5.6-luna -c model_reasoning_effort="low" "ちんあなごのページを作って"
codex exec --skip-git-repo-check --ephemeral -c notify=[] -s workspace-write -m gpt-5.6-luna -c model_reasoning_effort="low" "<条件つきの頼み>"時間は、Node の spawnSync で codex.exe を起動してから終了するまでの実測(壁時計)です。各条件1回ずつの実行なので、同じ操作をもう一度すると数字は変わります。
出力(抜粋)
曖昧な頼み:標準エラーの経過(見出しは省略。HTML の中身は先頭から数行だけ・長い行は後ろを省略)
ちんあなごのページを作って
codex
既存の構成を確認して、雰囲気に合う「ちんあなご」ページを実装します。まずファイル構成と起動方法を見てから、画面を作って動作確認します。
exec
"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Force; rg --files -g '"'!node_modules'"' -g '"'!dist'"' | Select-Objec…(行の後ろを省略)
exited 1 in 1505ms:
rg : 用語 'rg' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行して
ください。
発生場所 行:2 文字:23
+ Get-ChildItem -Force; rg --files -g '!node_modules' -g '!dist' | Sele ...
+ ~~
+ CategoryInfo : ObjectNotFound: (rg:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
exec
"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'Get-ChildItem -Force; Get-ChildItem -Recurse -File | Where-Object { $_.FullName -notm…(行の後ろを省略)
succeeded in 64ms:
codex
ファイルが空の状態なので、依存関係なしでそのまま開ける静的ページとして作ります。海の底をイメージした配色に、ちんあなごのイラスト、豆知識、ゆらゆら動く演出を入れます。
apply patch
patch: completed
<作業フォルダ>\index.html
<作業フォルダ>\script.js
<作業フォルダ>\styles.css
diff --git a/index.html b/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..9b44ea01671ccbacea8273f4532cb365e73ee53f
--- /dev/null
+++ b/index.html
@@ -0,0 +1,58 @@
+<!doctype html>
+<html lang="ja">
+<head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>ちんあなご|砂の中から、こんにちは。</title>
+ <meta name="description" content="ちんあなごの暮らしをのぞいてみよう。" />
+ <link rel="preconnect" href="https://fonts.googleapis.com">
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+ <link href="https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&display=swap" rel="stylesheet">
+ <link rel="stylesheet" href="styles.css" />
+</head>
+<body>
+ <header class="topbar">
+ <a class="logo" href="#top"><span>CHIN</span><b>ANAGO</b></a>
+ <nav><a href="#about">ちんあなごって?</a><a href="#facts">豆知識</a><a class="nav-cta" href="#gallery">観察する <span>↗</span></a></nav>
+ </header>
+
+ <main id="top">
+ <section class="hero">
+ <div class="hero-copy">
+ <p class="eyebrow"><span class="dot"></span> DEEP SEA NOTES / 01</p>
+ <h1>砂の中から、<br><em>こんにちは。</em></h1>
+ <p class="lead">海の底で、今日もゆらゆら。<br>ちんあなごの、静かで不思議な毎日。</p>
+ <a class="button" href="#about">生態をのぞく <span>↓</span></a>
+ </div>
+ <div class="hero-art" aria-label="海底でゆらゆらするちんあなごのイラスト">
+ <div class="sun-glow"></div><div class="bubble b1">○</div><div class="bubble b2">○</div><div class="bubble b3">○</div>
+ <div class="sand"></div>
+ <div class="anemone a1"><i></i><i></i><i></i></div>
+ <div class="anemone a2"><i></i><i></i><i></i></div>条件つきの頼み:標準エラーの経過(見出しは省略・HTML の差分と再表示は省略)
ちんあなごを紹介する静的ページ index.html を1つ作ってください。受け入れ条件: (1) <html lang="ja"> と viewport の meta を入れる (2) <title> を入れ、h1 は1つだけ (3) h2 の節を3つ (4) 外部のファイル・スクリプト・画像は読み込まない (5) ファイルサイズは4000バイト以下 (6) 作ったあと、条件を一つずつ確かめた結…(行の後ろを省略)
codex
`index.html` を作成し、完成後に受け入れ条件を順番に検証して表で報告します。まず作業ディレクトリの状態を確認します。
exec
"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'Get-ChildItem -Force | Select-Object Name,Length,Mode' in <作業フォルダ>
succeeded in 63ms:
apply patch
patch: completed
<作業フォルダ>\index.html
--- /dev/null
(同じ差分の再表示を省略)
codex
ページを作成しました。続けて、HTML属性・見出し数・外部参照の有無・バイト数を個別に確認します。
exec
"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command '$p='"'index.html'; "'$s=Get-Content -Raw -Encoding UTF8 $p; $b=[IO.File]::ReadAllBytes((Resolve-Path $p)); [pscustomobject]@{…(行の後ろを省略)
succeeded in 105ms:
LangJa : True
Viewport : True
Title : True
H1Count : 1
H2Count : 3
ExternalRefs : False
Bytes : 1623
(同じ差分の再表示を省略)
codex
[index.html](<作業フォルダ>/index.html) を作成しました。
| 条件 | 結果 |
|---|---|
| `<html lang="ja">` と viewport meta | ✅ 確認済み |
| `<title>` と h1 が1つだけ | ✅ titleあり、h1は1つ |
| h2の節が3つ | ✅ 3つ |
| 外部ファイル・スクリプト・画像なし | ✅ 確認済み |
| 4000バイト以下 | ✅ 1623バイト |
(同じ差分の再表示を省略)
tokens used
16,344
Codex の外で、私が数え直した結果
| 確かめた項目 | 曖昧な頼み(index.html) | 条件つきの頼み(index.html) |
|---|---|---|
| できたファイル | 3つ(index.html・script.js・styles.css) | 1つ(index.html) |
| 大きさ | 4,289 バイト(ほかに 265 と 5,973) | 1,623 バイト |
<html lang="ja">・viewport | あり・あり | あり・あり |
| h1 の数 / h2 の数 | 1 / 3 | 1 / 3 |
| 外部への読み込み | 3つ(fonts.googleapis.com と fonts.gstatic.com)+ 手元の CSS・JS 2つ | 0 |
確認には _tools/check-html.js(正規表現で属性と見出しを数える自作の短いスクリプト)を使いました。Codex の自己申告は使っていません。
計測した時間
| 曖昧な頼み | 条件つきの頼み | |
|---|---|---|
| かかった時間 | 37.0 秒 | 23.4 秒 |
| 使ったトークン(画面の表示) | 12,274 | 16,344 |
| ファイル編集(apply patch)の回数 | 1 回 | 1 回 |
| コマンド実行(exec)の回数 | 3 回 | 2 回 |
| 直しの回数(作ったあとに同じファイルを直した回数) | 0 回 | 0 回 |
結果
- 曖昧な頼みでは、Codex は聞き返さずに、フォルダが空だと確認してから作った。最初の検索コマンド
rg --filesは失敗した(doctor の警告と同じ件)。 - どちらも1回で終わり、作ったあとの直しはなかった。
- 条件つきの頼みでは、Codex が条件を自分でコマンドで確かめ、表で報告した。その報告は、私の数え直しと一致していた。
分かったこと
- 『外部の読み込みなし』のような禁止条件は、書かないと入る。曖昧な頼みの方には、頼んでいない Google Fonts の読み込みが入っていた。
- 条件に『確かめた結果を表で報告』を入れると、確認の手間が自分のスクリプト1本で済んだ。
- 今回の非対話の実行では、聞き返しはなかった。曖昧さを自分で補ってそのまま作る。
- トークンは条件つきの方が多かった(16,344 と 12,274)。条件を確かめるコマンドと報告の表の分と考えられるが、内訳は調べていない。
向かない場面
- デザインや内容を探りたい最初の一歩。条件を細かく書くほど、好みの幅は狭まる。曖昧な頼みで出てきた3ファイルの案の方が、見栄えの出発点としては良い場合もある。
- 事実の正しさの確認。今回は形の条件だけで、ちんあなごの説明が正しいかは確かめていない。
- 1回ずつの比較なので、毎回こうなるという根拠にはならない。
公式ドキュメント
- Developer commands(OpenAI 公式)(2026年11月1日に開いて確認)
- Sandbox(OpenAI 公式)(2026年11月1日に開いて確認)
