This is a continuation of my "Claude Code environment" series, following . Keep the canonical copy of state outside the volatile conversation. Whether it's collaboration or long-term memory, the principle that works turned out to be the same.
Pitfalls I hit
Forgetting</dev/nulland Codex freezing while waiting for input → always close stdin
codex: command not foundfrom cron/launchd → it's under nvm, so the full path is mandatory
Running outside a git repo gets rejected →--skip-git-repo-check
Delegating everything and losing context → write the hard spots directly in main; limit delegation to boilerplate
Soft reviews when author = reviewer → split implementation and review across different engines
Summary
- Within one machine, split design and review to Claude, boilerplate implementation to Codex
- Delegate via non-interactive execution:
codex exec --skip-git-repo-check "..." </dev/nullwrapped intimeout
Don't delegate everything. Write the hard spots directly in main- Split implementation and review across different engines to raise quality
- Write state to files. Keep the canonical copy outside the volatile conversation
Next time I'll write about a hook that mechanically stops secrets from leaking right before that push — ) — indie developer. I build automation infrastructure with Claude Code while mass-producing iOS apps and web services.
- The apps I've built are collected in my 🌍
- OSS:
Your ❤️ and shares keep me going!
SOCIAL SHARE CARD GENERATOR