To answer your question about what I was trying to do that was different:
- a multi-client, state-machine based architecture rather than a naive LLM loop
- a bunch of UX features that I wasn't seeing in other harnesses (although of course they're all churning away in terms of UX so this changes all the time)
The difficult bits were:
- getting the data model right. This was a lot harder than it looks!
- getting an automated UI test framework in place that was robust enough to trust that incoming changes wouldn't break something. Originally I hoped to get away without this (I've never worked on a project before where we had automated UI tests!) but it was just a shitshow. I spent a couple of months getting this right, but it turned the whole project around and it's now incredibly quick and safe to make changes.
- a multi-client, state-machine based architecture rather than a naive LLM loop
- a bunch of UX features that I wasn't seeing in other harnesses (although of course they're all churning away in terms of UX so this changes all the time)
The difficult bits were:
- getting the data model right. This was a lot harder than it looks!
- getting an automated UI test framework in place that was robust enough to trust that incoming changes wouldn't break something. Originally I hoped to get away without this (I've never worked on a project before where we had automated UI tests!) but it was just a shitshow. I spent a couple of months getting this right, but it turned the whole project around and it's now incredibly quick and safe to make changes.