I have been changing how I build Modern DataTools with AI. This post is about the setup rather than the product: which models do which job, what that costs me, and what happened when I stopped running one workflow for everything.
Modern DataTools is a platform for deciding what data and AI technology to use. What matters here is its shape: a few thousand pages that quote each other, full of prices, metrics, facts, competitors and rankings. Change one fact and you have changed a dozen pages, or you should have.
The two problems that wouldn't go away
Both issues that I've been solving are about stopping the platform from saying things that are not true.
The first is identity. Snowflake and dbt sit in the same category and are not competitors, and for a while my code did not know that, so it offered readers alternatives that do a completely different job.
The second is consistency. A price shows up on the product page, the pricing page, two comparisons and an alternatives table. When the vendor changes it, all of them have to change too. Some of what I found:
- "last verified on September 4" meant only that something had written to the page that day
- a CloudWatch price came from the wrong part of the vendor's site, and then spread to fifteen pages
- a fix I had checked myself was undone later by a pass that trusted an older page
My previous set up - codex only
As I pay for the development myself, I care a lot about the set up. For about four weeks I ran gpt5.6-sol for planning and gpt5.6-terra with high reasoning for execution. It was a good setup, and I would use it again on one bounded feature.
I still never finished the pricing work. There was one chain and one thread of attention, so every time the two problems touched, the next decision came back to me. You cannot fix a price everywhere until you know which products the pages are about. I was the router, and routing ran on exactly the attention I needed for deciding what was true. Four weeks in, the work was still open and I had nothing left for it.
New set up - codex + claude
As before, I have two agents working on every complex feature, but instead of relying only on codex, I reintroduced Claude Code into the picture. Now each feature gets two models: GPT-Astra plans and checks, Claude Opus 5 implements. I know that mixing both harnesses is quite a widespread set up nowadays, and I finally came to it as well. I have to say that it works quite well: I find GPT more diligent, while Claude more proactive and swift, so they compliment each other well.
The evening they talked to each other
Then something happened I had not planned for. Both pairs were running on my 2 features, and the Opus 5 session writing the pricing code found work that belonged to the other problem. It messaged the Opus 5 session working on identity, stopped, and waited. That one answered, the two of them went back and forth until the boundary was settled, and each went back to its own queue.
I was not involved at any point. Reading the conversation afterwards, I realised the agents had just done the job I had spent four weeks doing badly at eleven at night.

Did it actually work?
I think yes - finally it seemed that we managed to solve these complex pricing and identity problems and I am not running with the agents in a loop. This gives me a lot of optimism about the future of Modern Data Tools.
What I have not solved
GPT-Astra is expensive. The planning is worth paying for, but a pair per feature multiplies the bill by however many features I have open.
Claude Opus 5 writes too much. The work is good; the volume is the problem. I ask for the key point in plain language and get it, surrounded by several paragraphs that are also true and also not what I asked for.
So the cost has moved rather than gone. It is no longer my time writing code, it is my time reading what the agents wrote about the code. If you have solved that one, I would like to hear how.