Retrieval is the bottleneck
Most RAG systems on private data fail at retrieval, not at generation. The bottleneck is indexing the right things, retrieving the right things, and evaluating both. Generation quality is usually downstream of retrieval quality.
Evaluation is the unsexy part that wins
A repeatable evaluation suite on representative queries beats every prompt-engineering iteration. Without an eval suite, every change is a vibes-based release.
Access controls are part of the index
Document-level access controls have to survive the indexing pipeline. If the user-facing app respects ACLs but the index does not, the system leaks. The fix lands at the index layer, not at the response layer.