Execution
Governing smart contract upgrades

An upgrade replaces the logic behind live user funds. It deserves the strictest path in your governance stack.
Approve the implementation address
The proposal should name the deployed implementation and its verified source. Voting on a description of the change is not the same as voting on the change.
Review before the timelock, not during
Audits and diffs should be attached at proposal time so the timelock is a final check rather than the first read.
Have a rollback ready
Keep the previous implementation address and a pre-drafted revert proposal. Recovery speed matters more than optimism.