I have a sort of specific example in mind, and I am wondering if you have any advice on implementing it. I am trying to do some calculations in superspace, and I want to automate spinor derivatives. Specifically, I have the $\theta$-expansion of some superfield, and I want to perform some spinor derivatives and restrict to $\theta = 0$.

I tried defining an abstract derivative $D^{\alpha}_{A}$, with $\alpha$ a spinor index and $A$ an R-symmetry index. Then, I was going to define some substitution rules for how $D$ acts on the $\theta$ variables, but I found that Cadabra would interpret any derivative with multiple indices as a product of derivatives. This appears to be intentional from the description of the `product_rule`

algorithm. So, do you have any suggestions for doing something like this? Thanks.

edit: I found a way to almost do it by following your Poincare algebra example, i.e. defining $D$ as an object that doesn't commute with $\theta$ and defining some substitution rules for their commutator. However, this suggests the problem: I actually want an anti-commutator. More precisely, I want a $\mathbb{Z}_2$ graded commutator, and I want to be able to assign a degree to each of my objects. Is this possible?