Chunking is design, not a parameter. A support article split in half retrieves the symptom without the fix; a table row separated from its header is a number with no meaning.
Every chunk carries a context header — title, heading path, version, effective date. Without it a retrieved passage is ambiguous to the model in exactly the way it would be to a person.
Overlap is applied to prose only. Applying it to tables and articles duplicates evidence and inflates apparent corroboration.
Numbers
800 token target for prose with 15% overlap; measured Recall@50 improvement of 0.06 over a fixed 512-token split with no structure awareness.
320 M chunks across 40 M documents — an average of 8 chunks per document, dominated by the archive.
Risks
A chunking change invalidates the entire index. It is therefore a shadow build with an alias swap in view 31, never an in-place migration.
Merged cells in spreadsheets and forms still mis-parse. The failure is reported to the steward rather than silently indexed as noise.