What you’re missing is qualifying (or importing) rrule. At present this defines a new function of that name, instead (as you did for show) you need to add methods to the existing ChainRulesCore.rrule.
julia> rrule
rrule (generic function with 1 method)
julia> function ChainRulesCore.rrule(::typeof(my_matmul), W::Matrix, X::Matrix, B::Matrix)
y = my_matmul(W, X, B)
...