01 · Before and afterThe pattern
// before: approve "the draft", execute whatever the draft is later
approve(() => publish(script.currentDraftId));
// after: the approval carries the id the user saw
const shown = script.currentDraftId;
const ok = await askUser({ versionId: shown, env: manifest.env, hosts: manifest.network });
if (ok) await publish(shown);02 · Run it on your appThe check
When a user approves an AI agent's action, is the approved payload frozen, or can it change before it runs?
If the honest answer is no or not sure, this is worth a look before it reaches production.