It's not totally related to this issue, but I think GenericCheck also can be enhanced by interpreting right-hand side.
I excerpt from the official docs
<some_attribute>:%(user.id)s
The value on the right-hand side is either a string or resolves to a string using regular
Python string substitution. The available attributes and values are dependent on the program
that is using the common policy engine.
%(user.id) would be resolved to a string, but I found list type like $(tags) would not be considered.
It's not totally related to this issue, but I think GenericCheck also can be enhanced by interpreting right-hand side.
I excerpt from the official docs
<some_ attribute> :%(user. id)s
The value on the right-hand side is either a string or resolves to a string using regular
Python string substitution. The available attributes and values are dependent on the program
that is using the common policy engine.
%(user.id) would be resolved to a string, but I found list type like $(tags) would not be considered.