The same tests are performed before and during the construction of a ConditionedNode in ChildTree::add_node. Note that the troublesome parts use the "private" method in ConditionedNode. I have modified the code so that only the ConditionedNode validates its initial state. The relevant diff is here: main...MogomotsiFM:dsp-decision-engine:improvements.