Here is a link to a long discussion regarding generalization of $\operatorname{sign}z$ function to dual numbers.
There are basically two proposed versions:
$\operatorname{sign}(a+\varepsilon b) = \operatorname{sign}(a) + 2 b \delta(a) \varepsilon$ - proposed by user M.G. in their answer.
$\operatorname{sign}(a+\varepsilon b) = \operatorname{sign}(a) + 2 \operatorname{sign}(b) \delta(a) \varepsilon$ - this version is mine
The test results with matrices in Mathematica are inconclusive as they give different results depending on whether $b$ is variable or a numerical constant (link to the question on Mathematica.SE).
The version (1) obviously does not keep the very important property of the Sign function: $\operatorname{sign} (u v)=\operatorname{sign} u\cdot \operatorname{sign} v$.
Another my point is that for $b>0$, $\operatorname{sign} x=\operatorname{sign} bx$, so the right-hand side should not depend on $b$ except for its sign.
I do not understand the arguments raised against my version (that it breaks with scaling and change of basis). Can anyone please outline in a simple language the possible arguments against my generalization or better explain the existing ones? Why it would not work?