On main, the box docs describe the system as it is
Anything merged to main leaves designs, guides and constraints an accurate and
complete description of the covered implementation. A doc that describes
something not yet built belongs on a design branch until the code catches up.
Why
Design docs rot the moment they are allowed to describe intentions. Once a reader has been lied to by a doc, they stop reading docs and start reading code — and the design stops being the system's memory. Keeping main honest costs nothing at merge time and is unrecoverable once lost.
Check
At the design→main pull request, read the box docs the branch changed and confirm a reader of the code would find what they describe. Unfinished expand–migrate–contract sequences are the usual way this breaks: the docs claim one path, the code still has two.