The new version of Nudge is written in Swift and works for Big Sur and Monterey (and presumably Alcatraz and beyond).
This new version of Nudge has a whole bunch of configurable options for the user experience. You can allow or disallow user deferrals of Nudge. You can set the maximum number of allowed deferrals. You can have a random delay of up to a certain number of seconds before the Nudge window appears.
But what is the most basic Nudge behavior?
With up to 4 days remaining, when Nudge ran, I could just click the Defer button in the bottom-right-hand corner, and then defer.
Once I got to 3 days remaining, when Nudge ran, I had to first click I understand before the Defer button would appear.
Once I got to the last day (and it didn’t seem to matter how many hours away the deadline was, as long as it was the same day), there was no option to defer.
And then once the deadline had passed, all other windows were minimized, and then Nudge would pop up not only the Nudge window but System Preferences itself (this is where I cheated a bit in my testing, as I took the
"actionButtonPath": "munki://updates", line out of the .json so System Preferences would launch up instead of Managed Software Center).
And that’s it. That’s the basic functionality of Nudge, if you were curious as to the broad overview instead of the all the little things you can tweak. If you want to look at all the little things you can tweak, feel free to read the userExperience wiki page.