workflows / capstone · 約 12 分

テスト追加 → review → 修正を1本化

first-app に対して exec --json -o と resume --last でループするスクリプトを完成します。

学習目標

1コマンド(このスクリプト)で、テストを足すか直し、review 相当の追走を resume --last で続けます。 [codex-noninteractive]

前提

server.js が動くこと。認証済み。Git リポ。

なぜ必要か

「作っただけ」で終わると、翌日同じ手順を忘れます。exec の JSON と最終メッセージを成果物に残します。

実行場所

Codex 操作は local-bridge です。Web実習 (browser) の Node では npm test までできますが、codex exec は動きません。

workspace-write の既定では localhost の listen / fetch が拒否されます。first-app の HTTP テストを sandbox 内で通すには、この実行だけ -c sandbox_workspace_write.network_access=true を付けます。codex exec だけでなく codex exec resume --last にも同じ -c が必要です(resume には --sandbox が無いため)。外向き通信も許可されるので、ユーザー config の sandbox は緩めません。

スクリプト全文:

#!/usr/bin/env bash
set -euo pipefail
cd "$(git rev-parse --show-toplevel)"

codex exec --sandbox workspace-write \
  -c sandbox_workspace_write.network_access=true \
  --json -o last.md \
  "Add or fix tests for GET / returning hello-codex-school. Run npm test. If it fails, make the smallest fix and rerun npm test. Do not add dependencies. Do not write secrets." \
  </dev/null

codex exec resume --last -c sandbox_workspace_write.network_access=true \
  --json -o review.md \
  "Review the latest change for test gaps. If tests fail, fix them. Keep the public HTTP body unchanged." \
  </dev/null
chmod +x scripts/fix-loop.sh
./scripts/fix-loop.sh

CODEX_API_KEY が要る場合は、そのコマンドにだけインラインします。このサイトや localStorage には置きません。

成功結果

npm test が終了コード 0 です。last.mdreview.md が空でなく、codex exec の出力が入っています。ファイルを手で作って中身を捏造しないでください。sandbox 既定では待受が拒否されることと、上記フラグで回避したことを覚えておいてください。

失敗対処

Git 外は --skip-git-repo-check を学習用の常用にしないでください。まず git init します。required MCP で落ちるときはサーバを外します。fetch failed / EPERM なら network_access=true が付いているか確認します。resume には --sandbox が無いので、設定は -c で渡します。 [codex-cli]

このレッスンで接続する

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