fix: correct 16 inconsistencies found by consistency audit
Math / code:
- layout.hpp: add explanatory comment for Möbius deck transformation
(from_three with z1=w1, z2=w2 encodes T fixing cut-edge endpoints)
- layout.hpp: document spherical holonomy limitation — Vector2d stores
only (x,y) of 3-D position diff; full SO(3) representation deferred
Gradient sign convention (CLAUDE.md was wrong):
- Euclidean and Spherical both use G_v = Θ_v − actual (target minus actual)
- HyperIdeal uses G_v = actual − Θ_v
- Hessian sign differs: Euclidean PSD, Spherical NSD → −H, HyperIdeal PSD
Test counts (were inconsistent across all files):
- Actual: 176 CGAL tests, 2 GTEST_SKIP (not 173/170/174, not 1 skip)
- The 2 skips are EuclideanFunctional + SphericalFunctional Hessian gradient
checks (Java @Ignore ports) — not HyperIdeal Hessian as previously stated
- doc/api/tests.md: add missing SmokeEuclidean suite (3 tests),
EuclideanLayout (2), SphericalLayout (1), fix GaussBonnet 8→12,
MeshIO 9→6, Layout 8→6, EuclideanFunctional 11→12,
HomologyGenerators no longer a GTEST_SKIP stub (live test on brezel2.obj)
- doc/roadmap/phases.md: Phase 7 cumulative 158→176 tests
- doc/roadmap/phases.md: Phase 3 clarified — HyperIdeal Hessian is FD
- CLAUDE.md: suite count 28→34, test ref 173+36→174+36
- scripts/try_it.sh: expected output 173/1 skipped → 174/2 skipped
CI table (CLAUDE.md):
- test-cgal now triggers on pull requests only (not main/dev pushes)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>