Define one responsibility per assistant: task, allowed sources, output format, tone, review boundary and cases where it must ask back.

Put rare exceptions into the individual chat prompt instead of permanently adding them to the assistant role.

Test assistants with real messy examples. Stable roles are built from observed failures, not from wish lists.