Explore, Distill, Merge
Context

As first post-sabbatical professional project, I had to tackle a migration between 2 ERPs (systems that store data for companies — accounting ones, in this case).
I completed the project in about 2 weeks, solving the problem heavily leveraging AI-assisted coding. Here I am reporting solutions I found effective and a few personal thoughts.
Process
I used a 3-step iterative process:
- Prompt multiple agents to create remote git repositories and solve a small task commit by commit.
- Use the generated repositories as context to create CLIs from scratch (with TDD, OOP, 3-tier architecture).
- Merge these clean CLIs/repositories into one repository.
Point 1 helps bootstrapping,
point 2 builds robust units,
point 3 keeps the codebase controllable — size- and functionality-wise.
Stack
1 - VPS with Agent + VibeTunnel + Wispr
Usage: High autonomy / high creativity tasks.
Examples:
Create a repository, build a module to download data from API X, verify it works, create a PR.You have a CLI: run it, report the errors, create a PR that fixes the error.You have a CLI with 3-tier architecture that loads data inside a system: create a performance test. Iteratively modify the service layer to speed up execution time. Create a PR to report performance improvement.
2 - Local Machine with Agent + VibeTunnel
Usage: Repository distillation / merging tasks.
Examples:
You have a repository with multiple scripts — create 3 repositories with 1 CLI and 1 end-to-end test each.You have 5 CLIs in 5 repositories — create 1 repository that contains them all. Preserve git hitsory. Then, in 1 additional commit, factorize common modules.
3 - Cursor
Usage: Low-level AI-assisted operations.
Examples: edit docs, create data exploration scripts, write a module where agents failed and there is urgency to deliver.
4 - PyCharm
Usage: Low-level manual operations.
Examples: multi-repo version control, manual debugging, infrastructure handling, point-wise TDD fix.
Observations
-
When delegating big tasks to Agents I asked a few times to freeze a module and iterate on another one to reach a target goal. It feels more like machine learning than programming.
-
Speed boost is real but I caught myself losing time micromanaging an agent, prompting it to fix a low-level data problem. I should have turned to Cursor straight away in that case.
-
Agents are great as flexible orchestrators but they need clear CLIs. The better CLIs are designed, the easier agents can build on top of them.
side note: ‘Agent’ -> Claude Code or Codex.