The human in the loop
The agent proposes; a writer decides. Nothing the agent writes is used again until a writer approves it.
When a topic fails a check, the agent reads the difference, the DITA source and both renderings, and proposes one mapping rule. MANIFEST runs the rule and every check again. The agent gets two attempts. If neither passes, the topic goes to a writer with the source, the output and each attempt.
A rule that passes is proposed, not applied: the topic shows as Fixed until a writer approves the rule. The agent trace on the run detail lists each tool call, each attempt and its check results in order.
The limits are enforced by code, not by the model's instructions. A third attempt is refused, an unsafe rule counts as a failed attempt, and a rule that breaks another topic fails.