What upgrade pattern does openzeppelin use?

There are some proxy patterns, and I think you can have a look at this tutorial: Upgrades - OpenZeppelin Docs And now UUPS proxies are recommended,

you can have a try following this tutorial: UUPS Proxies: Tutorial (Solidity + JavaScript) | OpenZeppelin Community

Yes, I think when you use the plugin to use proxy, it will have a check. Look at this documentation:

And https://docs.openzeppelin.com/upgrades-plugins/1.x/faq#what-does-it-mean-for-a-contract-to-be-upgrade-safe