workflows / exec-scripting · 約 8 分

exec --json -o をスクリプトにする

JSONL イベントと最終メッセージファイルを使い分けます。

学習目標

--json を付けると stdout は JSONL です。最終メッセージだけ欲しいときは -o / --output-last-message です。両方同時でも、最終メッセージはファイルに書けます。 [codex-noninteractive]

前提

Git リポ。認証済み。

なぜ必要か

jqturn.completed を拾うには JSONL が必要です。人間が読む要約は -o が向きます。

実行場所

実機。

chmod +x scripts/exec-summary.sh
./scripts/exec-summary.sh

stdin の扱い

  • プロンプトを引数に渡すスクリプトでは、非 TTY 実行時に </dev/null で stdin を閉じます。EOF が無いと Reading additional input from stdin... のまま止まります。
  • テストログを渡すときだけ、stdin を意図的に使います(この場合は </dev/null を付けません)。
npm test 2>&1 | codex exec "失敗テストを要約し、最小の修正方針を書く"

対話 CLI の codex --ask-for-approval never "..." とは別物です。codex exec-a / --ask-for-approval は無いので付けないでください。

成功結果

スクリプトが codex exec--json を含みます。

失敗対処

JSONL と最終テキストが混ざるときは、--json の stdout をファイルへリダイレクトし、人間向けは -o を使います。stdin 待ちで止まるときは </dev/null を確認します。

このレッスンで接続する

ページを移動するとブラウザ内実習の接続とファイルは消えます。演習の直前に、このパネルから明示的に再接続してください(自動では戻りません)。