After claude or codex finishes a commit, I switch console tabs and ask the other to review it; with the commit ID. I often find it helpful to inject a bit of human knowledge, and callout any areas of attention I see from a quick skim. (But that could just be me wanting to not abstract myself away from software engineering that much :)
Sometimes, I do ask Codex to read my ~/.claude/; and vice-versa. But, generally, I try to keep as much knowledge (e.g. investigations, reports, deep dives) inside the git tree as possible; so that is not necessary.
I don't use skills, but I do have ~/.codex/AGENTS.md and ~/.claude/CLAUDE.md. These are high-level instructions for what (1) I consider readable, maintainable code and patterns, and (2) workarounds for empirically observed model behavior IOdon't like, such as Astra being a bit of a "over-correct over-validation nit-picker". I keep these human-authored, and update regularly based on what I find annoying.
I do all of this before I submit a PR; but of course, for trivial stuff (e.g. CSS changes, copy/string changes, etc), I don't bother.
My practices and workflows do change over time. Back in the ~Opus 4.5 days I'd often define a rubric/criteria in a markdown file, iterate with AI to improve it, and that's the "spec". I've stopped doing that since GPT 5.6; partly because models have gotten a lot better at understanding high level intent from the context; and partly because nearly all models these days feel 'gradermaxxed' when working like that.
Finally, consumer $100/$200mo subs get you _so_ far, I get a lot of value from both. I used to have multiple Claude subs for a while, but trying to 'get full value' made me work on projects just for the sake of it; so 2x$200/mo is my cap :)