{"id":"adversarial-review-projection-law","title":"Adversarial Review — Projection Law / IMMI Paper Suite","subtitle":"Second-pass review of the first-pass fixes: checklist, new issues, and consistency verification.","category":"references","tags":["review","projection-law","submission-gate"],"source":"articles/docs/reviews/adversarial-review-projection-law-2026-06-16.md","lang":"en","words":1366,"readMinutes":6,"toc":[{"depth":2,"text":"Verdict","id":"verdict"},{"depth":2,"text":"Checklist: the six MUST-FIX items from the academic review","id":"checklist-the-six-must-fix-items-from-the-academic-review"},{"depth":2,"text":"New issues found","id":"new-issues-found"},{"depth":3,"text":"N1. IMMI abstract garbles the failure wording (introduced by the fix)","id":"n1-immi-abstract-garbles-the-failure-wording-introduced-by-the-fix"},{"depth":3,"text":"N2. ORCID placeholder leaks into the IMMI PDF text layer","id":"n2-orcid-placeholder-leaks-into-the-immi-pdf-text-layer"},{"depth":3,"text":"N3. Hyper-ribbon disambiguation gloss is not at first use in the abstract","id":"n3-hyper-ribbon-disambiguation-gloss-is-not-at-first-use-in-the-abstract"},{"depth":3,"text":"N4. docs/PROGRAM.md is stale and inconsistent with the current build","id":"n4-docs-program-md-is-stale-and-inconsistent-with-the-current-build"},{"depth":3,"text":"N5. qualitygate.py would not catch the ORCID placeholder","id":"n5-qualitygate-py-would-not-catch-the-orcid-placeholder"},{"depth":3,"text":"N6. paper/immi-paper.tex no longer has the stale \"180-theorem\" count","id":"n6-paper-immi-paper-tex-no-longer-has-the-stale-180-theorem-count"},{"depth":2,"text":"Consistency check: counts, URLs, and PDFs","id":"consistency-check-counts-urls-and-pdfs"},{"depth":2,"text":"Recommended next actions before submission","id":"recommended-next-actions-before-submission"},{"depth":2,"text":"Final statement","id":"final-statement"},{"depth":2,"text":"Fix log (2026-06-16, same cycle)","id":"fix-log-2026-06-16-same-cycle"}],"html":"<h1 id=\"adversarial-review-projection-law-immi-paper-suite\">Adversarial Review — Projection Law / IMMI Paper Suite</h1><p><strong>Date:</strong> 2026-06-16<br><strong>Scope:</strong> <code>paper2/projection-law.tex</code> (PRX master), <code>paper2/immi/projection-law-immi.tex</code> (IMMI companion), the built PDFs, <code>paper2/FINAL_DRAFT_REPORT.md</code>, <code>paper2/TARGETING.md</code>, <code>library-site/src/reports/working-papers.html</code>, <code>library-site/scripts/catalog.js</code>, and <code>docs/PROGRAM.md</code>.<br><strong>Reviewer:</strong> independent adversarial pass (requested before submission).</p>\n<hr>\n<h2 id=\"verdict\">Verdict</h2><p>The first-pass fixes are real and substantially address the overclaim problems in §2.1–2.4 of the academic review. The two manuscripts are now in sync on the theorem chain, the permutation-floor nuance, and the failure reporting. However, the fixes are not complete: one item (§2.5) is only mentioned in passing, another (§2.6) is softened but not explicitly flagged, and a new grammatical/interpretive problem has been introduced in the IMMI abstract. The IMMI PDF still ships an ORCID placeholder in its text layer, and a program-level doc (<code>docs/PROGRAM.md</code>) is stale. <strong>Do not submit until the open items below are closed.</strong></p>\n<hr>\n<h2 id=\"checklist-the-six-must-fix-items-from-the-academic-review\">Checklist: the six MUST-FIX items from the academic review</h2><div class=\"table-wrap\"><table><thead><tr>\n<th>#</th>\n<th>Item</th>\n<th>Status</th>\n<th>Evidence</th>\n</tr>\n</thead><tbody><tr>\n<td data-label=\"#\">2.1</td>\n<td data-label=\"Item\"><strong>Affine decomposition does not fully derive the gauge</strong></td>\n<td data-label=\"Status\"><strong>Fixed</strong></td>\n<td data-label=\"Evidence\">Both <code>projection-law.tex:217</code> and <code>immi/projection-law-immi.tex:231</code> now read: &quot;Theorem<del>5 turns the bias-plus-within-family <em>split</em> of Theorem</del>3 from a modeling assumption into a derivable consequence for affine families. The isotropic-noise gauge itself remains an empirical regularity...&quot; The oversold &quot;bias-plus-noise spectrum&quot; wording is gone.</td>\n</tr>\n<tr>\n<td data-label=\"#\">2.2</td>\n<td data-label=\"Item\"><strong>Smooth non-convex theorem is local, not global</strong></td>\n<td data-label=\"Status\"><strong>Fixed</strong></td>\n<td data-label=\"Evidence\">Both manuscripts state explicitly that Theorem~6 is &quot;pointwise (one normal space per local minimizer), not the global consensus theorem&quot; (<code>projection-law.tex:232</code>; <code>immi/projection-law-immi.tex:246</code>), and interpret MLIP clustering as nearby local minimizers landing in a common normal direction.</td>\n</tr>\n<tr>\n<td data-label=\"#\">2.3</td>\n<td data-label=\"Item\"><strong>Finite-sample concentration is entrywise, not a PR sample-complexity bound</strong></td>\n<td data-label=\"Status\"><strong>Fixed</strong></td>\n<td data-label=\"Evidence\">Both manuscripts state: &quot;It does not, by itself, give a closed-form sample-complexity bound for <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi mathvariant=\"normal\">∣</mi><mover accent=\"true\"><mrow><mi mathvariant=\"normal\">P</mi><mi mathvariant=\"normal\">R</mi></mrow><mo stretchy=\"true\">^</mo></mover><mo>−</mo><mrow><mi mathvariant=\"normal\">P</mi><mi mathvariant=\"normal\">R</mi></mrow><mi mathvariant=\"normal\">∣</mi></mrow><annotation encoding=\"application/x-tex\">|\\widehat{\\rm PR} - {\\rm PR}|</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.1733em;vertical-align:-0.25em;\"></span><span class=\"mord\">∣</span><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9233em;\"><span style=\"top:-3em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathrm\">PR</span></span></span><span class=\"svg-align\" style=\"top:-3.6833em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span style=\"height:0.24em;\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"0.24em\" viewBox=\"0 0 1062 239\" preserveAspectRatio=\"none\"><path d=\"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z\"/></svg></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathrm\">PR</span></span></span><span class=\"mord\">∣</span></span></span></span> because the denominator... can be arbitrarily small. In practice, PR uncertainty is quantified by the bootstrap intervals&quot; (<code>projection-law.tex:255</code>; <code>immi/projection-law-immi.tex:269</code>).</td>\n</tr>\n<tr>\n<td data-label=\"#\">2.4</td>\n<td data-label=\"Item\"><strong>MLIP factorial evidence is at the permutation floor and effect size failed</strong></td>\n<td data-label=\"Status\"><strong>Fixed</strong></td>\n<td data-label=\"Evidence\">PRX abstract (<code>projection-law.tex:47</code>): &quot;exact permutation <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>p</mi><mo>=</mo><mn>0.029</mn></mrow><annotation encoding=\"application/x-tex\">p=0.029</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.1944em;\"></span><span class=\"mord mathnormal\">p</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0.029</span></span></span></span>, i.e. 2 of all 70 labelings at the resolution floor; the registered effect-size component of this test failed.&quot; IMMI abstract (<code>immi/projection-law-immi.tex:55</code>) and Table 1 in both formats carry the same floor/failure language. Body text (<code>projection-law.tex:376</code>) repeats the effect-size miss (<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>0.085</mn></mrow><annotation encoding=\"application/x-tex\">0.085</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0.085</span></span></span></span> vs. <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mn>0.30</mn></mrow><annotation encoding=\"application/x-tex\">0.30</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0.30</span></span></span></span>).</td>\n</tr>\n<tr>\n<td data-label=\"#\">2.5</td>\n<td data-label=\"Item\"><strong>Multiple comparisons across seven registered predictions</strong></td>\n<td data-label=\"Status\"><strong>Partially fixed</strong></td>\n<td data-label=\"Evidence\">The Limitations section acknowledges &quot;seven registered predictions across two experiments invite multiplicity concerns that round 2&#39;s single-primary-endpoint design addresses&quot; (<code>projection-law.tex:620</code>; <code>immi/projection-law-immi.tex:633</code>). <strong>Missing:</strong> the requested short paragraph specifying which predictions were primary vs. auxiliary/hierarchical in the <em>present</em> manuscript, not just deferring to round 2.</td>\n</tr>\n<tr>\n<td data-label=\"#\">2.6</td>\n<td data-label=\"Item\"><strong>Reference mixing in the MLIP extension</strong></td>\n<td data-label=\"Status\"><strong>Partially fixed</strong></td>\n<td data-label=\"Evidence\">Limitations note that the MLIP layer &quot;compares to <em>experimental</em> references, so the measured residual mixes fitting error, exchange–correlation bias, and thermal/zero-point offsets&quot; (<code>projection-law.tex:613</code>; <code>immi/projection-law-immi.tex:626</code>). <strong>Missing:</strong> an explicit flag that FCC metals use experimental references while BCC metals in the same MLIP analysis use Materials Project (DFT) references, so the MLIP-layer residual is not measured against a uniform reference standard. This was acknowledged in <code>paper/immi-paper.tex</code> but not carried into the law manuscript.</td>\n</tr>\n</tbody></table></div><hr>\n<h2 id=\"new-issues-found\">New issues found</h2><h3 id=\"n1-immi-abstract-garbles-the-failure-wording-introduced-by-the-fix\">N1. IMMI abstract garbles the failure wording (introduced by the fix)</h3><p><code>paper2/immi/projection-law-immi.tex:55–56</code> reads:</p>\n<blockquote>\n<p>&quot;...exact permutation <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>p</mi><mo>=</mo><mn>0.029</mn></mrow><annotation encoding=\"application/x-tex\">p=0.029</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.1944em;\"></span><span class=\"mord mathnormal\">p</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em;\"></span><span class=\"mord\">0.029</span></span></span></span>, 2 of 70 labelings at the resolution floor); <strong>the registered effect-size component failed rotation prediction confirmed on Au and Pt under r<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mrow></mrow><mn>2</mn></msup></mrow><annotation encoding=\"application/x-tex\">^2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8141em;\"></span><span class=\"mord\"><span></span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span>SCAN but not Ag.</strong>&quot;</p>\n</blockquote>\n<p>The missing punctuation makes it sound as if the rotation prediction failed. It should be split into two clauses, e.g.: &quot;...the registered effect-size component failed; the rotation prediction was confirmed on Au and Pt under r<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mrow></mrow><mn>2</mn></msup></mrow><annotation encoding=\"application/x-tex\">^2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8141em;\"></span><span class=\"mord\"><span></span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em;\"><span style=\"top:-3.063em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span>SCAN but not Ag.&quot; The PRX abstract (<code>projection-law.tex:48</code>) gets this right.</p>\n<h3 id=\"n2-orcid-placeholder-leaks-into-the-immi-pdf-text-layer\">N2. ORCID placeholder leaks into the IMMI PDF text layer</h3><p><code>paper2/immi/projection-law-immi.tex:25</code> still has:</p>\n<pre><code class=\"language-latex\">\\small ORCID: 0009--0000--0000--0000 (to be completed)}\n</code></pre>\n<p>The extracted text layer of <code>paper2/immi/projection-law-immi.pdf</code> shows: <strong>&quot;ORCID: 0009–0000–0000–0000 (to be completed)&quot;</strong>. A placeholder marked &quot;to be completed&quot; must not ship in a submission PDF. The PRX master has no ORCID at all; most journals will require one, so both manuscripts need the real ORCID before submission.</p>\n<h3 id=\"n3-hyper-ribbon-disambiguation-gloss-is-not-at-first-use-in-the-abstract\">N3. Hyper-ribbon disambiguation gloss is not at first use in the abstract</h3><p>Review §2.7 requested a one-sentence gloss at first use in the abstract distinguishing ensemble error-vector ribbons from sloppy-model parameter-space hyper-ribbons. The manuscripts do contain the distinction, but inside Theorem 4 (<code>projection-law.tex:200</code>) and the classical layer (<code>projection-law.tex:314</code>), not in the abstract. The abstract is where most readers will first encounter the term.</p>\n<h3 id=\"n4-docs-program-md-is-stale-and-inconsistent-with-the-current-build\">N4. <code>docs/PROGRAM.md</code> is stale and inconsistent with the current build</h3><p><code>docs/PROGRAM.md</code> is dated 2026-06-11 and describes the formal core as &quot;27 theorems, 0 sorry, 0 new axioms&quot; with no mention of <code>AffineDecomposition</code>, <code>SmoothProjection</code>, or <code>FiniteSampleConcentration</code>. It also has a broken line at line 72–73: <code>USER: Zenodo DOI (</code> followed by a newline and <code>eplication/error-geometry/ZENODO_DEPOSIT.md...</code> (missing the leading <code>r</code>). This doc is outside the manuscripts but is part of the public docs surface the user asked to verify.</p>\n<h3 id=\"n5-quality-gate-py-would-not-catch-the-orcid-placeholder\">N5. <code>quality_gate.py</code> would not catch the ORCID placeholder</h3><p><code>paper2/quality_gate.py:72</code> checks for <code>TODO</code>, <code>FIXME</code>, <code>XXXXXX</code>, <code>\\[fill\\]</code>, <code>placeholder</code>, and <code>Draft of</code>. It does not check for <code>(to be completed)</code> or the dummy ORCID <code>0009-0000-0000-0000</code>, so the placeholder in N2 escaped the gate.</p>\n<h3 id=\"n6-paper-immi-paper-tex-no-longer-has-the-stale-quot-180-theorem-quot-count\">N6. <code>paper/immi-paper.tex</code> no longer has the stale &quot;180-theorem&quot; count</h3><p>The academic review&#39;s minor comment §6.6 noted that <code>paper/immi-paper.tex</code> still said &quot;180-theorem Lean 4 corpus.&quot; A fresh grep finds no such string in that file, so this has been cleaned up.</p>\n<hr>\n<h2 id=\"consistency-check-counts-urls-and-pdfs\">Consistency check: counts, URLs, and PDFs</h2><div class=\"table-wrap\"><table><thead><tr>\n<th>Source</th>\n<th>Claim</th>\n<th>Status</th>\n</tr>\n</thead><tbody><tr>\n<td data-label=\"Source\"><code>paper2/projection-law.tex:261</code></td>\n<td data-label=\"Claim\">225 theorem/lemma declarations, 7 theorems of this paper, 0 sorry, 0 new axioms</td>\n<td data-label=\"Status\">OK</td>\n</tr>\n<tr>\n<td data-label=\"Source\"><code>paper2/immi/projection-law-immi.tex:275</code></td>\n<td data-label=\"Claim\">same 225/7/0/0 language</td>\n<td data-label=\"Status\">OK (synced)</td>\n</tr>\n<tr>\n<td data-label=\"Source\"><code>FINAL_DRAFT_REPORT.md:11</code></td>\n<td data-label=\"Claim\">~225 theorem/lemma declarations, 77 build-locked, 0 sorry</td>\n<td data-label=\"Status\">OK</td>\n</tr>\n<tr>\n<td data-label=\"Source\"><code>library-site/src/reports/working-papers.html:82</code></td>\n<td data-label=\"Claim\">~225-theorem corpus · 77 build-locked · 0 sorry · 2891-job build green</td>\n<td data-label=\"Status\">OK</td>\n</tr>\n<tr>\n<td data-label=\"Source\"><code>paper2/projection-law.pdf</code> / <code>projection-law-immi.pdf</code></td>\n<td data-label=\"Claim\">15 pages each, rebuilt 2026-06-17 09:06–09:07</td>\n<td data-label=\"Status\">OK, matches <code>FINAL_DRAFT_REPORT.md:6</code></td>\n</tr>\n<tr>\n<td data-label=\"Source\"><code>library-site/src/assets/papers/projection-law-v2026-06-16.pdf</code></td>\n<td data-label=\"Claim\">byte-identical to <code>paper2/projection-law.pdf</code> (477,806 bytes, same timestamp)</td>\n<td data-label=\"Status\">OK</td>\n</tr>\n<tr>\n<td data-label=\"Source\"><code>library-site/src/assets/papers/projection-law-immi-v2026-06-16.pdf</code></td>\n<td data-label=\"Claim\">byte-identical to <code>paper2/immi/projection-law-immi.pdf</code> (477,871 bytes, same timestamp)</td>\n<td data-label=\"Status\">OK</td>\n</tr>\n<tr>\n<td data-label=\"Source\"><code>library-site/src/reports/working-papers.html:94–95</code></td>\n<td data-label=\"Claim\">links to <code>/assets/papers/projection-law-v2026-06-16.pdf</code> and <code>/assets/papers/projection-law-immi-v2026-06-16.pdf</code></td>\n<td data-label=\"Status\">OK</td>\n</tr>\n<tr>\n<td data-label=\"Source\"><code>docs/papers-working.md:7</code></td>\n<td data-label=\"Claim\">same two <code>/assets/papers/...v2026-06-16.pdf</code> links</td>\n<td data-label=\"Status\">OK</td>\n</tr>\n<tr>\n<td data-label=\"Source\"><code>paper/immi-paper.tex</code></td>\n<td data-label=\"Claim\">no stale 180/181 theorem count found</td>\n<td data-label=\"Status\">OK</td>\n</tr>\n</tbody></table></div><hr>\n<h2 id=\"recommended-next-actions-before-submission\">Recommended next actions before submission</h2><ol>\n<li><strong>Fix the IMMI abstract sentence</strong> (<code>immi/projection-law-immi.tex:55–56</code>) so the effect-size failure and the rotation-prediction result are two unambiguous clauses.</li>\n<li><strong>Remove/replace the ORCID placeholder</strong> in <code>immi/projection-law-immi.tex:25</code>; add the real ORCID to the PRX master author block as well. Do not ship a PDF whose text layer contains &quot;(to be completed).&quot;</li>\n<li><strong>Add the hyper-ribbon gloss to both abstracts</strong> at first use, per review §2.7 (one sentence disambiguating ensemble error-vector ribbons from sloppy-model parameter-space ribbons).</li>\n<li><strong>Add a short paragraph</strong> in the MLIP/DFT experimental sections or in Limitations specifying the hierarchical testing structure: which of the seven registered predictions were primary endpoints and which were auxiliary/robustness checks. Do not defer the entire issue to round 2.</li>\n<li><strong>Explicitly flag the reference-standard heterogeneity</strong> in the MLIP layer: FCC metals vs. experimental references, BCC/non-FCC vs. DFT (Materials Project) references, and the consequences for interpreting the shared residual.</li>\n<li><strong>Update <code>docs/PROGRAM.md</code></strong> to reflect the current formal corpus (225 declarations, 7 core theorems, new modules, 2891-job build) and fix the broken Zenodo-DOI line.</li>\n<li><strong>Extend <code>quality_gate.py</code></strong> to flag <code>(to be completed)</code> and the dummy ORCID pattern so the gate catches placeholder leakage.</li>\n<li><strong>Run the adversarial multi-agent review pass</strong> described in <code>TARGETING.md</code> after the above are closed, then mint the Zenodo DOI and replace the acceptance-time DOI language in the IMMI declarations.</li>\n</ol>\n<hr>\n<h2 id=\"final-statement\">Final statement</h2><p>The manuscripts are now defensible on their core claims, but they still read as working papers with known manual steps outstanding. Close N1–N5, update the stale program doc, and run the planned adversarial pass before any journal submission.</p>\n<hr>\n<h2 id=\"fix-log-2026-06-16-same-cycle\">Fix log (2026-06-16, same cycle)</h2><p>The issues above were addressed immediately after the review was produced:</p>\n<ul>\n<li><strong>N1 (IMMI abstract wording):</strong> Split the effect-size failure and rotation-prediction clauses in <code>immi/projection-law-immi.tex:55</code>.</li>\n<li><strong>N2 (ORCID placeholder leak):</strong> Removed the placeholder ORCID line from the IMMI author block; verified both PDF text layers contain no &quot;to be completed&quot; or dummy ORCID strings.</li>\n<li><strong>N3 (hyper-ribbon gloss):</strong> Added a parenthetical disambiguating ensemble error-vector hyper-ribbon geometry from parameter-space sloppy-model ribbons in both abstracts.</li>\n<li><strong>N4 (<code>docs/PROGRAM.md</code>):</strong> Updated the date, theorem/module counts, and open items; fixed the broken Zenodo-DOI line.</li>\n<li><strong>N5 (<code>quality_gate.py</code>):</strong> Extended the placeholder linter to catch <code>(to be completed)</code>, <code>[to be added before submission]</code>, and the dummy ORCID patterns <code>0000-0000-0000-0000</code> / <code>0009-0000-0000-0000</code>.</li>\n<li><strong>2.5 / 2.6 (hierarchical testing + reference mixing):</strong> Added explicit language in the Limitations section of both manuscripts specifying primary vs. auxiliary predictions and the FCC-experimental / BCC-DFT reference-standard heterogeneity.</li>\n</ul>\n<p>Remaining open gates before submission: real ORCID, minted Zenodo DOI, external <code>lupine.science</code> marketing-page update, and a final human read-through.</p>\n"}