One of the more interesting cARL (https://github.com/goldjg/cARL) releases wasn’t a new feature.
It was discovering that one of my assumptions was wrong.
Originally, cARL treated AI coding harness support as a simple binary state (and for all harnesses except GitHub Copilot which I actually use, the harness implementation was assumed to be similar):
✅ Supported
❌ Not Supported
After some end-to-end testing in Claude (first harness I’ve tried other than Copilot), I discovered reality was more nuanced.
Different coding agents handle instructions, context loading, skills, settings, memory, and repository guidance in very different ways. Some behaviours I assumed would be automatic turned out not to be.
So instead of quietly updating the docs and moving on, cARL v0.2.3 introduces harness validation tiers:
✅ Production - Tested and validated end-to-end
⚠️ Experimental - Partially validated, under investigation
🧪 Theoretical - Adapter exists, but not yet validated
The lesson isn’t really about AI coding agents.
It’s about engineering.
Assumptions have teeth.
If testing disproves one of your assumptions, the answer isn’t to defend the assumption. It’s to update the model.
One thing I’ve criticised vendors for over the years is “shadow fixing” - quietly changing behaviour or documentation without acknowledging what was learned.
Can’t really complain when others do it if I’m willing to do the same. 🤣
So here’s the public record:
I assumed all harnesses were effectively equal.
I tested it.
They weren’t.
#cARL #GitHubCopilot #ClaudeCode #AgenticAI #Engineering #SoftwareDevelopment #AssumptionsHaveTeeth


