I started with one crate. Then I needed benchmarks that didn't depend on the GUI. Then I needed a CLI that the GUI could launch as a subprocess. Here is how the narrator-tts workspace ended up with four members — and what I learned about the boundaries between them.
A single general-purpose agent tries to do everything and does nothing well. Here is how splitting an AI assistant into twelve specialized profiles — each with its own tools, safety levels, and system prompts — changed the quality of everything it does.
When an AI pipeline runs for hours unattended, it will fail silently. A heartbeat — a five-minute self-check loop — catches the failures that error handling misses. Here is the pattern and why it works better than external monitoring.