Why do invariants help twice?#
Invariants work in both directions of a handoff. Going out, they tell the agent what must hold, which is more actionable than another list of tasks: an agent that does not know the public API is frozen may happily improve it. Coming back, they tell the reviewer what needs no re-verifying, so review stays proportionate to the change.
Where do invariants belong?#
In the specification, next to what the change should achieve (see spec-driven development), and in the handoff contract that returns the work. The idea is old: Bertrand Meyer's design by contract made class invariants explicit. An invariant that lives only in someone's head is invisible to the agent.