Lab 14 — Compare harnesses
← Back to labs index

Lab 14 — Compare harnesses

Capability: Native Codex provides a built-in loop, sandbox, sessions and optional skills. The build-your-own control is a true bare call; Codex’s constrained baseline cannot be made equivalent merely by removing project files or setting --sandbox read-only.

Install Codex CLI; create a private temporary CODEX_HOME, copy this lab’s config.toml.example to $CODEX_HOME/config.toml and fill in your endpoint (ending in /openai/v1) and deployment. Provide AZURE_OPENAI_API_KEY through your resource key from a secret manager. The Microsoft guide says Entra ID is not supported for Codex; never save the key in files. Workspace: start in lab14-comparison/ and follow the common preflight. Leave workspace/ empty except .gitkeep; disable inherited project instructions:

codex exec --skip-git-repo-check -C "$workdir" --sandbox read-only --json `
  -c project_doc_max_bytes=0 `
  "Produce a Store Health Report covering service name, language, port, dependencies and catalog issues. Return only supported evidence; do not claim any fixes without a write log."
codex exec --skip-git-repo-check -C "$workdir" --sandbox read-only --json \
  -c project_doc_max_bytes=0 \
  "Produce a Store Health Report covering service name, language, port, dependencies and catalog issues. Return only supported evidence; do not claim any fixes without a write log."

For an independent, comparable run, have the build-your-own harness and Codex work on the same pinned source, seeded simulator state, task prompt, output envelope and model deployment, with the same allowed tools, run count and grading rules. Do not read files from another lab folder at runtime; export run results separately and compare them afterward. This repository’s Codex path does not yet provide that integration or scorer. Until then, compare qualitative behavior only.

For each run record version, deployment, auth route (not credential), tool access, sandbox policy, task, actual tool calls, evidence cited, write log (if any), and provider-reported usage where exposed. Mark missing metrics unavailable, never zero. Report which features were built in, configurable, or unavailable; distinguish observed facts from claims about equivalent scores.

Follow reset and cleanup afterward.