Use this runbook when you want Codex to execute a repeatable local development + testing cycle for be-metabot.
- implement or verify local changes in this repository
- run deterministic test and verification steps
- reinstall Codex host pack from local source
- validate behavior from the same Codex environment
- run in shell mode
- fail fast on command errors
- keep outputs machine-readable where available
- do not manually edit
~/.metabot/hot/*.jsonidentity state files - use identity profile commands (
who/list/assign) instead of patching runtime files
Before running the workflow, verify:
- repository root contains
package.json - repository root contains
docs/hosts/codex-agent-install.md - repository root contains
docs/hosts/codex-agent-update.md node,npm, andgitare available
If any precondition fails, stop and return a concise blocked report.
Run from repository root:
npm run build
node --test tests/cli/doctor.test.mjs tests/cli/help.test.mjs tests/cli/runtime.test.mjsIf this loop fails, stop and return:
- failing command
- top failure reason
- first failing test name (if available)
Use the install runbook:
docs/hosts/codex-agent-install.md
Equivalent command sequence:
npm install
npm run build
npm run build:skillpacks
cd skillpacks/codex
./install.sh
cd ../..
export PATH="$HOME/.metabot/bin:$PATH"
metabot doctorRun:
metabot identity who
metabot identity listIf you need to switch active local bot:
metabot identity assign --name "<metabot-name>"
metabot identity whoIf metabot identity create --name ... returns identity_name_conflict, do not patch runtime files.
Use identity list + identity assign first.
Run:
metabot doctor
metabot --help
metabot identity --helpOptional functional smoke:
metabot network services --online
metabot ui open --page hubBefore release, run:
npm run verifyThis is the release-grade gate. Do not claim release-ready if this fails.
For daily coding in Codex:
- run Loop A after each meaningful code change
- run Loop B to refresh local host pack behavior
- run Loop C + Loop D for session correctness
- run Loop E before merge/release
At the end, return:
- mode:
dev-test - result:
success,failed, orblocked - commands executed
- test summary (pass/fail counts if available)
- identity active profile summary (
who) - follow-up action required (if any)