The various "read" marks all seem to be mutually exclusive, such that I cannot do this. When talking to the Gmail IMAP server, Gnus' "expirable" mark will archive an item out of my inbox, but also will prevent me from marking the item as read.
auto-expire is no good here. That just replaces all "read" marks with "expirable" marks.
total-expire is almost a solution, except I don't want to always archive every read article. If I could limit the marks that
total-expire acts upon I would, but everything I read in the docs suggests I can't do that.
I'm just learning Gnus, so I may easily be missing a hook that takes care of this. Unfortunately all the documented hooks seem to deal with setting up and tearing down buffers and I don't quite see the function I need to write.