Finding-H from doc/reviewer/external-audit-2026-05-30.md
(java-port-audit missing-test item 7).
Guards against a regression where compute_period_matrix reverts to
reduce_to_fundamental_domain (no mirror fold) instead of normalizeModulus
(Finding 6 fix, Java-faithful): such a revert would silently produce
Re(τ) < 0 for lattices where the natural generators give a negative
real part.
Two new tests in test_phase7.cpp:
1. SkewedTorus_ReTauNegativeBeforeNorm_FoldedToPositive
- New mesh: code/data/off/torus_skewed_4x4.off
Flat 4×4 torus on parallelogram lattice ω₁=(4,0) ω₂=(-1,4);
16 vertices, 32 triangles, χ=0 (genus 1).
- Full pipeline: newton_euclidean → cut_graph → euclidean_layout
→ compute_period_matrix(reduce=false) + compute_period_matrix(reduce=true)
- Asserts: raw Re(τ) < 0, normalized Re(τ) ∈ [0,½], Im(τ) > 0, |τ| ≥ 1
2. SyntheticHolonomy_NegativeReTau_NormalizedToPositive
- Bypasses mesh; supplies explicit ω₁=(4,0) ω₂=(-1,4) directly
- Asserts raw τ = -0.25+i (to 1e-10), normalized τ = 0.25+i (to 1e-9)
- Pin-points the mirror fold: Re(-0.25) → Re(+0.25)
277/277 CGAL tests pass, 0 failed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Reviewer meeting materials
A single landing page for the three documents associated with an external-reviewer meeting. The materials are written for a peer who actively publishes in discrete differential geometry — specifically the decorated-DCE / Penner-coordinates / hyperideal-polyhedra / canonical-tessellations research line — and who would potentially use conformallab++ as numerical infrastructure for their own future experiments.
| Document | Audience | Purpose |
|---|---|---|
briefing.md |
the reviewer | one-page orientation: what the project is, where to look first, what we want from them |
questions.md |
the reviewer | the 5 concrete decisions we want their opinion on (skim before the meeting) |
agenda.md |
me | my own meeting playbook: timing, order, the "no" question, post-meeting memo template |
After the meeting, a fourth file 2026-XX-XX-meeting-notes.md should
land here too — the memo template at the bottom of agenda.md is the
suggested structure.
When to send to the reviewer
- briefing.md + questions.md: as part of the meeting-confirmation email, ~5 business days before the meeting. Subject line: "Pre-read for our conformallab++ chat (~15 min)".
- agenda.md: never send. This is internal scaffolding.
Hub-Page durability
The reviewer hub HTML at https://tmoussa.codeberg.page/ConformalLabpp/
is published from doc/reviewer/hub.html in the repo (not from a
detached preview branch). This means:
- Merging any of the open PRs into
maintriggers.gitea/workflows/doxygen-pages.ymlwhich republishes the hub alongside fresh Doxygen HTML — the reviewer URL stays live across merges with no manual intervention. - The hub is source-controlled, so changes are reviewable via PR like any other doc, and old versions live in git history.
- The original Doxygen index moves to
/doxygen.htmlwhenever the hub override is active; both are reachable from the hub itself.
Quick links the reviewer should bookmark
- 🌐 Reviewer-hub landing page: https://tmoussa.codeberg.page/ConformalLabpp/ (the hub shows status badges, a "what's new" banner with the most recent delta, the research-alignment table, and direct links into every document below)
- 📦 Source: https://codeberg.org/TMoussa/ConformalLabpp
- 📝 Architecture decisions (incl. the Q7 "no" prompt):
../architecture/locked-vs-flexible.md - 📐 Schläfli derivation (for Q3):
../math/hyperideal-hessian-derivation.md - 📚 Literature index (for Q1 + Q3):
../math/references.md - 🗺️ Per-phase roadmap (for Q1):
../roadmap/phases.md - 🧪 Research-track entries with acceptance criteria (Q1 + Q2):
../roadmap/research-track.md