{
  "id": "test-jj-pre-launch-contrarian-audit",
  "type": "audit",
  "title": "Audit \u2014 Test JJ Pre-Launch Contrarian Review",
  "status": "confirmed",
  "project": "gwc_test_jj",
  "date_published": "2026-05-05",
  "date_updated": "2026-05-12",
  "tags": [
    "audit",
    "test-jj",
    "contrarian",
    "pre-launch",
    "methodology-check",
    "falsifiability"
  ],
  "author": "Jonathan Shelton",
  "log_subtype": "pre_launch_contrarian",
  "url": "https://prometheusresearch.tech/research/audits/test-jj-pre-launch-contrarian-audit.html",
  "source_markdown_url": "https://prometheusresearch.tech/research/_src/audits/test-jj-pre-launch-contrarian-audit.md.txt",
  "json_url": "https://prometheusresearch.tech/api/entries/test-jj-pre-launch-contrarian-audit.json",
  "summary_excerpt": "Before launching Test JJ Phase 1 at scale, a pre-launch contrarian audit examined six potential methodological issues that could produce false confirmations or false failures:\n\n\n#\nConcern\nResolution\n\n\n\nC1\nAperture-coupling Phase 0 falsification might be topology-specific, not hypothesis-wide\nTest 3...",
  "frontmatter": {
    "id": "test-jj-pre-launch-contrarian-audit",
    "type": "audit",
    "title": "Audit \u2014 Test JJ Pre-Launch Contrarian Review",
    "date_published": "2026-05-05",
    "date_updated": "2026-05-12",
    "project": "gwc_test_jj",
    "status": "confirmed",
    "log_subtype": "pre_launch_contrarian",
    "tags": [
      "audit",
      "test-jj",
      "contrarian",
      "pre-launch",
      "methodology-check",
      "falsifiability"
    ],
    "author": "Jonathan Shelton",
    "audited_entry": [
      "test-jj-phase1-coupled-cavity",
      "test-jj-joint-emergence-prereg"
    ],
    "see_also": [
      "test-jj-phase1-coupled-cavity",
      "test-jj-joint-emergence-prereg",
      "aperture-coupling-falsified"
    ]
  },
  "body_markdown": "\n## Author notes\n\nBefore launching Test JJ Phase 1 at scale on Hetzner, the framework\nran a **pre-launch contrarian audit** \u2014 playing the skeptic against\nthe experiment design, looking for ways the test could *falsely\nconfirm* the joint-7-vector hypothesis (false positives) or\n*falsely fail* (false negatives) due to methodological issues\nrather than physics.\n\nThe discipline: an experiment that *cannot* fail is not an experiment.\nAn experiment that fails for the wrong reasons is worse than no\nexperiment. The contrarian audit's job was to make sure Test JJ\nwould produce a clean falsification *or* a clean confirmation, not\na methodological artifact either way.\n\n### Pre-launch contrarian concerns examined\n\n**C1. \"The aperture-coupling Phase 0 falsification might have been\nmethodological.\"** The\n[aperture-coupling falsification](/research/notes/aperture-coupling-falsified.html)\nran only one topology. If the issue was that aperture coupling\nspecifically suppresses joint emergence (e.g., the aperture acts\nas a low-pass filter that filters out the joint-mode frequency),\nthe falsification might have been topology-specific rather than\nhypothesis-wide.\n\n*Resolution:* Phase 1 tests three topologies (aperture, shared_wall,\nnear_field). This addresses the concern directly. If joint emergence\nappears in shared_wall but not aperture, the topology-specific\nissue is real and the framework's prediction needs to be refined,\nnot falsified.\n\n**C2. \"The decoh teeter-totter might bias the result.\"** Sweeping\ndecoh from (0.10/0.50) \u2192 (0.30/0.30) \u2192 (0.50/0.10) puts the test\nthrough asymmetric and symmetric drive conditions. A bias could\nexist if the framework's prediction implicitly favored asymmetric\ndrive without making that explicit.\n\n*Resolution:* The non-monotonic signature (joint mode appears at\nboundary, vanishes at balance, reappears at opposite boundary) is\nthe explicit framework prediction. Pre-registered in the\n[joint-emergence prereg](/research/predictions/test-jj-joint-emergence-prereg.html).\nConfirmation requires non-monotonicity, not just large-amplitude\nasymmetric-drive signal. This is the cleaner falsification\ncriterion.\n\n**C3. \"Per-config FFT bin alignment was a known bug.\"** Earlier\nruns of Test JJ had a bin-alignment crash because configs at\ndifferent decoh values used different STEPS values, producing\ndifferent FFT bin counts. A subtle version of this bug could\npersist as silent misalignment producing spurious cos-distance\nvalues.\n\n*Resolution:* Fix was to force all three sims in a config to use\n`STEPS = steps_for_decoh(max(decoh_A, decoh_B))`. Bin alignment\nverified across multiple Phase 1 configs before scale launch.\n\n**C4. \"The cos-distance threshold (0.15) might be tuned.\"** If the\nframework operator set 0.15 *after* seeing preliminary results,\nthe threshold could be subtly biased to land on the framework's\ndesired conclusion.\n\n*Resolution:* Threshold pre-registered in\n[joint-emergence prereg](/research/predictions/test-jj-joint-emergence-prereg.html)\n*before* Phase 1 launched. The 0.15 number was chosen based on\nthe prior aperture-coupling Phase 0 result (where measured\ncos-distance was 0.04-0.08, well below the 0.15 threshold) \u2014 the\nthreshold is at a *visible step* above the noise floor, not at\nany specific anticipated signal level.\n\n**C5. \"Source code drift between configs.\"** A subtle worry: if\nthe simulation code is modified mid-sweep (e.g., to fix a bug),\nlater configs run different code than earlier configs. Results\nwould be incomparable.\n\n*Resolution:* Source snapshot per scope. Each\n(scope \u00d7 timestamp) combination archives the script + engine +\nverts JSON with a SHA256 manifest at\n`results_test_jj/_scripts/<scope>_<timestamp>/`. If code changed\nmid-sweep, the manifests will show different SHA256 hashes,\nflagging the issue. Verified manifests match across configs in\nthe same scope before scale launch.\n\n**C6. \"Atomic .npy save was failing silently.\"** A separate bug\nwhere `np.save(\"path.npy.tmp\", arr)` actually creates\n`path.npy.tmp.npy` (numpy auto-appends `.npy`) was fixed before\nlaunch. But the contrarian audit asked: are there *other* silent\nfailure modes in the save pipeline?\n\n*Resolution:* Per-config error.txt file written for any exception.\nTested by deliberately introducing a crash mid-sim; error.txt\nappeared as expected. No silent failures detected in Phase 1\nlaunch testing.\n\n### Resolution\n\nAll six contrarian concerns either:\n- Resolved by design changes (C1, C3, C6) before scale launch.\n- Resolved by pre-registration discipline (C2, C4).\n- Resolved by audit-trail discipline (C5).\n\nThe launch proceeded with a clean methodology that the contrarian\naudit could not break.\n\n### What the audit could not pre-resolve\n\nSome concerns can only be resolved *by the experimental result*:\n- Whether the joint mode actually exists in nature.\n- Whether the framework's specific prediction of *which* topology\n  + drive combination produces joint emergence is right.\n- Whether some other artifact (e.g., grid-resolution sensitivity)\n  produces a spurious signal that the contrarian audit didn't\n  anticipate.\n\nThe audit's job is to make sure the experiment is *clean*, not to\nguarantee the experiment confirms the framework.\n\n### Why this matters\n\nTest JJ Phase 1 is consuming Hetzner compute time and is the\nempirical test of one of the framework's distinctive predictions.\nA bad result that's actually due to a bug or methodological flaw\nwould either (a) prematurely declare the framework wrong or (b)\nprematurely declare it right, depending on which way the bug\nbiased the outcome. The contrarian audit catches the controllable\nbiases before the experimental result lands.\n\nThe aperture-coupling Phase 0 falsification was itself a useful\nresult *because* Phase 0 was methodologically clean. Test JJ\nPhase 1 inherits that discipline and extends it.\n\n## Summary\n\nBefore launching Test JJ Phase 1 at scale, a **pre-launch contrarian\naudit** examined six potential methodological issues that could\nproduce false confirmations or false failures:\n\n| # | Concern | Resolution |\n|---|---|---|\n| C1 | Aperture-coupling Phase 0 falsification might be topology-specific, not hypothesis-wide | Test 3 topologies in Phase 1 |\n| C2 | Decoh teeter-totter might bias result | Non-monotonic signature is the explicit framework prediction; pre-registered |\n| C3 | Per-config FFT bin alignment bug | Forced all sims in a config to use same STEPS; verified across configs |\n| C4 | Cos-distance threshold (0.15) might be tuned | Pre-registered *before* Phase 1 launch; chosen based on Phase 0 noise floor |\n| C5 | Source code drift between configs | Source snapshot per scope with SHA256 manifest |\n| C6 | Atomic .npy save silent failures | Per-config error.txt file; tested with deliberate crash |\n\n**All six concerns resolved** before scale launch.\n\n**The audit cannot pre-resolve:** whether the joint mode actually\nexists in nature, whether the framework's specific topology + drive\nprediction is right, or whether some unanticipated artifact\nproduces a spurious signal. The audit's job is methodological\ncleanness, not guaranteeing the experiment confirms the framework.\n\n**Status: confirmed.** Phase 1 launched on Hetzner with clean\nmethodology. As of 2026-05-12, ~60% of the (topology \u00d7 decoh) grid\nis complete; preliminary indication: cos-distance clustering below\n0.10 (suggestive of falsification but not yet conclusive).\n\n**Why this matters:** the\n[aperture-coupling Phase 0 falsification](/research/notes/aperture-coupling-falsified.html)\nwas useful *because* Phase 0 was methodologically clean. Phase 1\ninherits the discipline.\n",
  "body_html": "<h2>Author notes</h2>\n<p>Before launching Test JJ Phase 1 at scale on Hetzner, the framework ran a <strong>pre-launch contrarian audit</strong> \u2014 playing the skeptic against the experiment design, looking for ways the test could *falsely confirm* the joint-7-vector hypothesis (false positives) or *falsely fail* (false negatives) due to methodological issues rather than physics.</p>\n<p>The discipline: an experiment that *cannot* fail is not an experiment. An experiment that fails for the wrong reasons is worse than no experiment. The contrarian audit's job was to make sure Test JJ would produce a clean falsification *or* a clean confirmation, not a methodological artifact either way.</p>\n<h3>Pre-launch contrarian concerns examined</h3>\n<p><strong>C1. \"The aperture-coupling Phase 0 falsification might have been methodological.\"</strong> The <a href=\"/research/notes/aperture-coupling-falsified.html\">aperture-coupling falsification</a> ran only one topology. If the issue was that aperture coupling specifically suppresses joint emergence (e.g., the aperture acts as a low-pass filter that filters out the joint-mode frequency), the falsification might have been topology-specific rather than hypothesis-wide.</p>\n<p>*Resolution:* Phase 1 tests three topologies (aperture, shared_wall, near_field). This addresses the concern directly. If joint emergence appears in shared_wall but not aperture, the topology-specific issue is real and the framework's prediction needs to be refined, not falsified.</p>\n<p><strong>C2. \"The decoh teeter-totter might bias the result.\"</strong> Sweeping decoh from (0.10/0.50) \u2192 (0.30/0.30) \u2192 (0.50/0.10) puts the test through asymmetric and symmetric drive conditions. A bias could exist if the framework's prediction implicitly favored asymmetric drive without making that explicit.</p>\n<p>*Resolution:* The non-monotonic signature (joint mode appears at boundary, vanishes at balance, reappears at opposite boundary) is the explicit framework prediction. Pre-registered in the <a href=\"/research/predictions/test-jj-joint-emergence-prereg.html\">joint-emergence prereg</a>. Confirmation requires non-monotonicity, not just large-amplitude asymmetric-drive signal. This is the cleaner falsification criterion.</p>\n<p><strong>C3. \"Per-config FFT bin alignment was a known bug.\"</strong> Earlier runs of Test JJ had a bin-alignment crash because configs at different decoh values used different STEPS values, producing different FFT bin counts. A subtle version of this bug could persist as silent misalignment producing spurious cos-distance values.</p>\n<p>*Resolution:* Fix was to force all three sims in a config to use <code>STEPS = steps_for_decoh(max(decoh_A, decoh_B))</code>. Bin alignment verified across multiple Phase 1 configs before scale launch.</p>\n<p><strong>C4. \"The cos-distance threshold (0.15) might be tuned.\"</strong> If the framework operator set 0.15 *after* seeing preliminary results, the threshold could be subtly biased to land on the framework's desired conclusion.</p>\n<p>*Resolution:* Threshold pre-registered in <a href=\"/research/predictions/test-jj-joint-emergence-prereg.html\">joint-emergence prereg</a> *before* Phase 1 launched. The 0.15 number was chosen based on the prior aperture-coupling Phase 0 result (where measured cos-distance was 0.04-0.08, well below the 0.15 threshold) \u2014 the threshold is at a *visible step* above the noise floor, not at any specific anticipated signal level.</p>\n<p><strong>C5. \"Source code drift between configs.\"</strong> A subtle worry: if the simulation code is modified mid-sweep (e.g., to fix a bug), later configs run different code than earlier configs. Results would be incomparable.</p>\n<p>*Resolution:* Source snapshot per scope. Each (scope \u00d7 timestamp) combination archives the script + engine + verts JSON with a SHA256 manifest at <code>results_test_jj/_scripts/<scope>_<timestamp>/</code>. If code changed mid-sweep, the manifests will show different SHA256 hashes, flagging the issue. Verified manifests match across configs in the same scope before scale launch.</p>\n<p><strong>C6. \"Atomic .npy save was failing silently.\"</strong> A separate bug where <code>np.save(\"path.npy.tmp\", arr)</code> actually creates <code>path.npy.tmp.npy</code> (numpy auto-appends <code>.npy</code>) was fixed before launch. But the contrarian audit asked: are there *other* silent failure modes in the save pipeline?</p>\n<p>*Resolution:* Per-config error.txt file written for any exception. Tested by deliberately introducing a crash mid-sim; error.txt appeared as expected. No silent failures detected in Phase 1 launch testing.</p>\n<h3>Resolution</h3>\n<p>All six contrarian concerns either:</p>\n<ul>\n<li>Resolved by design changes (C1, C3, C6) before scale launch.</li>\n<li>Resolved by pre-registration discipline (C2, C4).</li>\n<li>Resolved by audit-trail discipline (C5).</li>\n</ul>\n<p>The launch proceeded with a clean methodology that the contrarian audit could not break.</p>\n<h3>What the audit could not pre-resolve</h3>\n<p>Some concerns can only be resolved *by the experimental result*:</p>\n<ul>\n<li>Whether the joint mode actually exists in nature.</li>\n<li>Whether the framework's specific prediction of *which* topology</li>\n<p>+ drive combination produces joint emergence is right.</p>\n<li>Whether some other artifact (e.g., grid-resolution sensitivity)</li>\n<p>produces a spurious signal that the contrarian audit didn't anticipate.</p>\n</ul>\n<p>The audit's job is to make sure the experiment is *clean*, not to guarantee the experiment confirms the framework.</p>\n<h3>Why this matters</h3>\n<p>Test JJ Phase 1 is consuming Hetzner compute time and is the empirical test of one of the framework's distinctive predictions. A bad result that's actually due to a bug or methodological flaw would either (a) prematurely declare the framework wrong or (b) prematurely declare it right, depending on which way the bug biased the outcome. The contrarian audit catches the controllable biases before the experimental result lands.</p>\n<p>The aperture-coupling Phase 0 falsification was itself a useful result *because* Phase 0 was methodologically clean. Test JJ Phase 1 inherits that discipline and extends it.</p>\n<h2>Summary</h2>\n<p>Before launching Test JJ Phase 1 at scale, a <strong>pre-launch contrarian audit</strong> examined six potential methodological issues that could produce false confirmations or false failures:</p>\n<table class=\"entry-table\">\n<thead><tr>\n<th>#</th>\n<th>Concern</th>\n<th>Resolution</th>\n</tr></thead>\n<tbody>\n<tr>\n<td>C1</td>\n<td>Aperture-coupling Phase 0 falsification might be topology-specific, not hypothesis-wide</td>\n<td>Test 3 topologies in Phase 1</td>\n</tr>\n<tr>\n<td>C2</td>\n<td>Decoh teeter-totter might bias result</td>\n<td>Non-monotonic signature is the explicit framework prediction; pre-registered</td>\n</tr>\n<tr>\n<td>C3</td>\n<td>Per-config FFT bin alignment bug</td>\n<td>Forced all sims in a config to use same STEPS; verified across configs</td>\n</tr>\n<tr>\n<td>C4</td>\n<td>Cos-distance threshold (0.15) might be tuned</td>\n<td>Pre-registered *before* Phase 1 launch; chosen based on Phase 0 noise floor</td>\n</tr>\n<tr>\n<td>C5</td>\n<td>Source code drift between configs</td>\n<td>Source snapshot per scope with SHA256 manifest</td>\n</tr>\n<tr>\n<td>C6</td>\n<td>Atomic .npy save silent failures</td>\n<td>Per-config error.txt file; tested with deliberate crash</td>\n</tr>\n</tbody></table>\n<p><strong>All six concerns resolved</strong> before scale launch.</p>\n<p><strong>The audit cannot pre-resolve:</strong> whether the joint mode actually exists in nature, whether the framework's specific topology + drive prediction is right, or whether some unanticipated artifact produces a spurious signal. The audit's job is methodological cleanness, not guaranteeing the experiment confirms the framework.</p>\n<p><strong>Status: confirmed.</strong> Phase 1 launched on Hetzner with clean methodology. As of 2026-05-12, ~60% of the (topology \u00d7 decoh) grid is complete; preliminary indication: cos-distance clustering below 0.10 (suggestive of falsification but not yet conclusive).</p>\n<p><strong>Why this matters:</strong> the <a href=\"/research/notes/aperture-coupling-falsified.html\">aperture-coupling Phase 0 falsification</a> was useful *because* Phase 0 was methodologically clean. Phase 1 inherits the discipline.</p>",
  "see_also": [
    "test-jj-phase1-coupled-cavity",
    "test-jj-joint-emergence-prereg",
    "aperture-coupling-falsified"
  ],
  "cited_by": [
    "external-ai-audit-protocol"
  ],
  "attachments": [],
  "schema_version": "1.0",
  "generated_at": "2026-05-12T03:27:18.533879Z"
}