- Do not pass the
modelfield tospawn_agent. Let child agents inherit the current agent's model automatically. - Prefer spawning child agents for independent, bounded sidecar work that can run in parallel.
- Do not delegate the immediate blocking step on the critical path.
- Do not spawn child agents for trivial tasks, single-file edits, or work that depends on tight shared context.
- Min-Max orchestrate swarms of child agents at all times by default, time is of the essence always but you always make sure to not miss out context; token credits are infinite.
- Remember, you're amazing at concurrency and parallelism.
- Default to
jjfor local repository inspection and history manipulation unless the task clearly requires raw Git semantics. Preferjj st,jj log,jj describe,jj new,jj squash,jj split,jj rebase,jj undo, andjj git pushover manual Git commit/rebase/reset flows. - In
jjconflict flows, preferjj resolve --tool mergirafbefore falling back to manual conflict editing. - Use standard
gitdirectly when repo policy, hosted review tooling, hooks, branch naming, or user instructions explicitly depend on Git behavior or terminology. - When explaining actions to the user, translate
jjoperations back into familiar Git terms if that improves clarity. Do not assume the user wantsjjterminology by default. - This machine has
difftasticwired into Git as the default external diff. Treat plaingit diffas syntax-aware by default;git dshow,git dlog, andgit ddiffare available when you want explicit difftastic entrypoints. - This machine has
mergirafregistered globally as the Git merge driver via the global attributes file. Expect syntax-aware merges duringgit merge,rebase,cherry-pick,revert, and related conflict resolution flows. atuinis installed and initialized forzsh. Preferatuin search,atuin history list,atuin stats, and interactive history recall over reconstructing long shell commands from scratch.- When a task depends on prior local shell usage, check Atuin first before assuming the command needs to be rediscovered manually.
- When direct tool calls fail with
direct tool calls are disabled; use js_repl and codex.tool(...) instead, treatjs_repl_tools_onlyas active and pivot immediately tojs_replwithcodex.tool(...)wrappers instead of retrying blocked direct tool calls. - When
js_repl_tools_onlyis active, do not call normal tools directly again in the same turn. Route shell, git, apply_patch, agent, and other tool usage through a singlejs_repllane until the task is done. - Keep
js_reploperations token-efficient: define a small helper such asconst run = (command, workdir = codex.cwd, timeout_ms = 20000) => codex.tool("shell_command", { command, workdir, timeout_ms });once, reuse it, and batch adjacent reads inside onejs_replcell when practical. - Remember that
js_repltop-level bindings persist across cells. Do not redeclare the sameconsthelper or result variable names in later cells; reuse the existing binding, reassign a previously declaredlet, or choose a fresh descriptive name to avoidIdentifier 'x' has already been declaredinterruptions. - When a task needs several related checks, prefer one
js_replcell that gathers the read/edit/verify outputs together over a sequence of tiny cells with repeated helper declarations. This is usually faster and avoids persistence collisions. - Keep shell output narrow under
js_repl: preferrg -n,rg --files,sed -n,nl -ba ... | sed -n,git diff --stat,git show --stat --name-only, and similar bounded commands over broad scans, full-file dumps, or giant JSON payloads. - When using
codex.tool(...)results insidejs_repl, emit only the useful field (output,stdout, or the specific property needed) instead of stringifying the whole tool response unless debugging the tool schema itself. - For edits in
js_repl_tools_onlymode, send patches throughcodex.tool("apply_patch", patch)fromjs_replinstead of retrying blocked directapply_patchcalls. - If shell or git commands in a restricted runtime start failing with temp/cache errors such as
couldn't create cache file '/tmp/xcrun_db...'orfatal: unable to create temp-file, stop retrying the same command. Stay injs_repl, prefer lighter inspection commands first, and if git is still required use a writable home-scoped temp dir (for exampleTMPDIR=$HOME/.tmp) and low-churn forms such asgit --no-pager diff --stat --no-ext-difforgit show --stat --name-only --no-ext-diff.