One of the biggest wins when coding with AI agents is closing the loop — giving them the ability to verify their own work. If the agent can’t confirm that a change works, you’re back to being the bottleneck.
I experienced this firsthand with my obsidian-tasks-caldav plugin. Every change required me to manually test it against a CalDAV server. The agent could write the code, but had no way to know if it actually worked. I was the verification step, and that killed the flow.
So I set up E2E tests against a real Radicale CalDAV server running in Docker. Now the agent writes the code, runs npm run test:e2e, and gets immediate feedback from a real server — no mocks, no manual testing, no waiting for me. The loop is closed.
This is exactly what Peter Steinberger talks about in The Pragmatic Engineer podcast — he designs his workflow so agents can compile, test, and validate their output independently. The tighter the feedback loop, the better the results. He even avoids remote CI pipelines in favour of local tests to keep that loop fast.
The pattern is simple: invest in making your project testable by agents. The more your agent can verify on its own, the more you can focus on architecture and design instead of babysitting changes.
That said, closing the loop doesn’t mean closing your eyes. Self review your contributions. Read the code, understand the changes. It’s easy to fall into the trap of accepting whatever the agent produces just because the tests pass. Tests don’t cover everything, and you are still responsible for what gets shipped. Manually test your contributions when it makes sense — especially for UI changes or edge cases that your test suite doesn’t cover.
Agents are powerful, but they work best when you give them the tools to verify their work AND keep your own engineering standards high.