Repository navigation
Updating to this release: from v1.20.0, one bash update.sh run is enough. From an older version, follow the v1.20.0 note below (two runs), because your current updater predates the one-run fix. If you use Codex, re-run the harness wiring afterwards — from this release on, the updater prints the exact line (see below).
-
The two helper agents now work on Codex too.
bootstrap.sh --harness …,codexgenerates Codex versions oflab-readerandlab-revieweras.codex/agents/lab-reader.tomland.codex/agents/lab-reviewer.toml, from the same.claude/agents/lab-zero/files Claude Code uses. Like the rest of.codex/, they're generated on your machine and git-ignored — nothing new is committed. Three limits, stated plainly:- Read-only by instruction only. On Claude Code the helpers are limited to read/search tools. On Codex, a helper runs with your session's permissions, and Lab Zero sets no sandbox for it (it ships no permission settings on either harness). Its instructions tell it not to edit or run state-changing commands; nothing enforces that.
- Codex starts a helper only when asked — by you, or by a skill or project instruction. In our live test,
/lab-plan's review step pickedlab-revieweron its own; forlab-reader, ask for it by name. - Trust the project first. In an untrusted project Codex loads none of them — the spawn tool doesn't even offer an agent type. A one-off
-c projects.…trust_leveloverride on the command line was not enough in our test; the project's trust entry in~/.codex/config.tomlwas.
They inherit your session's model and reasoning effort (no model or effort is pinned). Each generated file's first line says it was generated and names its own path. Re-wiring overwrites or removes only files whose first line names them, and dropping Codex removes only those. A file you wrote yourself under the same name is left alone, with a warning. To customize a helper, copy it to a new name — the copy is yours and is never touched. Live-tested on
codex-cli 0.153.4(modelgpt-5.6-sol):lab-readeranswered by name with correctfile:linecitations, and/lab-planspawnedlab-reviewer(confirmed in Codex's own session log asagent_role: lab-reviewer), which inherited the session's model, effort and sandbox. Codex's agent format may still change. -
The helpers' own instructions no longer name Claude-only tools. They said "the toolset is Read, Grep, and Glob only", which isn't true on Codex. They now say: read, search, and list files — no edits, no fixes, no state-changing commands.
-
Both updaters tell Codex users exactly how to re-wire. The Codex layer is git-ignored, so
update.shnever refreshes it. When your.lab/harnessesincludescodex, the updater's last lines now print the exact command, with an absolute path and your recorded harness set, e.g.LAB_BOOTSTRAP_SKIP_ENGINE=1 bash /path/to/bootstrap.sh --harness claude,codex(wiring only — no reinstall, no reindex). The project updater's old hint was relative and said--harness codex, which would have dropped Claude from aclaude,codexworkspace's recorded set; it's replaced. The Lab's updater had no hint at all. -
The agent can now start
/audit,/discover-skillsand/review-correctionsitself. They carrieddisable-model-invocation: true, which Codex ignores — so on Codex they were already model-invocable, while on Claude Code the flag also blocked the agent from starting them even when you asked for one. The flag is gone, so both harnesses behave the same, like/lab-planand/broalready did. You can still run each by name as before. One side effect: the session-start reminders ("run/review-corrections…", "run/discover-skills…") may now lead the agent to start that ceremony itself at the start of a session. -
Calmer wording in
/wrapand/discover-skills. Recent models (GPT-6 Astra and current Claude alike) can over-react to capitalized, emphatic instructions./wrap's drift-gate line, its two "do NOT"s,/discover-skills' worthiness bar, its anti-pattern heading, and its description now say the same things in plain case. The two real stop-gates in/wrapand the oneNEVERin/review-correctionsare unchanged.