@C.Holmes The only way this would be possible for now would be to leverage the --filter with a --ago set to a small time duration (e.g. 1h)
At a minimum, specify the following when you run ACR purge:
--filter - A repository and a regular expression to filter tags in the repository. Examples: --filter "hello-world:." matches all tags in the hello-world repository, and --filter "hello-world:^1." matches tags beginning with 1. Pass multiple --filter parameters to purge multiple repositories.
--ago - A Go-style duration string to indicate a duration beyond which images are deleted.
The duration consists of a sequence of one or more decimal numbers, each with a unit suffix. Valid time units include "d" for days, "h" for hours, and "m" for minutes. For example, --ago 2d3h6m selects all filtered images last modified more than 2 days, 3 hours, and 6 minutes ago, and --ago 1.5h selects images last modified more than 1.5 hours ago.
You can then come up with a tagging pattern that a regex could find easily which dev images or which images that are safe to be deleted based on the tagging pattern you decided
For example, you can tag all your dev/ci build with a -rc- string to know those are release candidate or you can add the commitID to your tag to know that those are not official released TAG.
Another approach is to leverage two different repo in ACR, one for non-prod and one for released images. Normally you shouldn't delete any official released images.
Hopefully to provide you with some ideas on how to proceed.
Please 'Accept as answer' if it helped, so that it can help others in the community looking for help on similar topics