Swimlane · DeployFlow
Four lanes, one direction. The agent writes, you approve, appctl delivers, and the guest proves the service answers before the run is called done.
THE HEADLINE
A run is not done when the playbook exits zero. It is done when the service answers a request — so the checks live in the role, and they run after every install.
appctl deliversThe second appctl install reports changed=0. That is the proof the run is repeatable rather than reinstalling itself.