Demos end at the generated document. Real document cycles start there: a checker challenges an assumption, a section is rejected, an upstream revision arrives mid-review, and the issued record must show who accepted what.

Designing for the loop

We build three gates into every generated document. A structure gate validates the proposed skeleton before anything renders: every source section mapped or explicitly excluded. Rolling review lets sections enter review as their inputs resolve, not in page order. An issue gate pins the exact source revisions used and refuses to issue while a conflict or a pending value is open.

Rejection is a first-class input. A reviewer rejects a section with a comment; the section and its dependents regenerate; the rest of the document does not move. The comment, the change and the acceptance stay in the record, so the next revision starts from the decision, not the argument.

The quiet payoff

Teams stop re-reviewing what did not change. When an input moves, only the sections that depend on it come back, marked with the value, the change and the rule that fired. Review attention lands where the change landed, and issued documents never shift underneath their approvals.