RQ2-P3: re-word §7 calibration gate (naive→mechanical mix), re-run GREEN
Operator ruling (Andre, 2026-07-21): the STOP was correct and the diagnosis right — §7 items 1-2 did not fail because the instrument is broken, but because they were worded under the naive-funnel prior. Under the ratified posterior the pool is a MIX (shared bridge → shared exit_signature → larger anonymity set → higher H). Corrected pre-freeze, logged transparently (no HARKing). - rq2p3-mechanism-prereg.md §7: item 1 re-anchored on the FROZEN bridge-federated branch (injective fresh-bridge → m_i=1 → H≈0, constant c=1/C — a pool draws with replacement so it cannot reproduce the zero-variance degeneracy); item 2 B=1 → c=1.0 AND high H (maximal mix, "low H" refuted by construction); added a §7 scope note (the gate validates the INSTRUMENT and must NOT pre-assert the H-vs-c sign — that stays the two-sided confirmatory question H1/H2). Confirmatory hypotheses unchanged. - docs/stage-05-rq2p3-gate-clarification.md: dated deviation-rationale log (cites the dry-pass output, no number invented; records the two-sided direction-agnostic pre-commitment is untouched; the mix ρ 0→+0.838 is an exploratory finding that strengthens note-unique-bridge-artifact.md). - rq2p3_calibration.py: item-1 teeth moved to frozen_branch_regression() on the untouched bridge-federated branch; item-2 now asserts c=1.0 AND high H; added all_pass aggregate. confirm.py/stats.py/confirm_load_rq2.py untouched. Re-run: all four gate items PASS with real teeth (all_pass=True). Synthetic/DRY only, no confirmatory record read. FREEZE STAYS A HUMAN GATE: §10 empty, no confirmatory RQ2-P3 cell until operator records the SHA-256 + signs off. Lead prereg SHA f22331a72e... untouched; worktree-only. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -112,15 +112,41 @@ Run order randomized within cell; deterministic from an ordering seed distinct f
|
||||
|
||||
## 7. Instrument-validation gate (boolean; blocks the confirmatory run)
|
||||
|
||||
> **Re-worded 2026-07-21, pre-freeze (deviation logged in `stage-05-rq2p3-gate-clarification.md`).**
|
||||
> Items 1–2 were originally written under the naive-funnel prior ("pool reproduces the
|
||||
> zero-variance degeneracy"; "B=1 → low H"). Both are mechanically wrong under the *ratified*
|
||||
> posterior and were corrected **before freeze** — see the §7 scope note below. No hypothesis
|
||||
> changed (H1/H2/H3 in §2 stay two-sided/direction-agnostic); only a mis-specified validation
|
||||
> gate was fixed. The original dry-pass output that exposed this is cited in the deviation log.
|
||||
|
||||
All must pass **before** any confirmatory cell:
|
||||
|
||||
1. **Reproduce the lead degeneracy.** `B = 50, alpha = 0` → `c_i ≈ 1/50` constant, ρ undefined
|
||||
— a regression check that this instrument reproduces the published RQ2-P3 result.
|
||||
2. **Extremes.** `B = 1` → all circuits share one bridge → `c = 1.0`, minimal set, low H.
|
||||
1. **Reproduce the lead degeneracy — on the FROZEN branch, not the pool.** The lead
|
||||
zero-variance degeneracy is a property of the **injective fresh-bridge map** (a unique
|
||||
bridge per circuit seed = effectively no reuse). A finite pool of **any** size `B` draws
|
||||
**with replacement**, so birthday collisions make concentration non-constant and ρ defined —
|
||||
a pool **cannot and must not** be expected to reproduce the fresh-bridge degeneracy. The
|
||||
regression check therefore anchors on the actual frozen `bridge-federated` branch
|
||||
(UNTOUCHED): it must still yield **unique exit-signatures → `m_i = 1` → `H_i ≈ 0`, constant
|
||||
`c_i = 1/C`**. That is the real "lead reproduces" teeth.
|
||||
2. **B = 1 boundary.** `B = 1` → all circuits share the one bridge → **`c = 1.0`** (keep this
|
||||
concentration tooth). Under the ratified posterior the anonymity set is then **all** circuits
|
||||
sharing the exit house, so `H_i` sits at the **HIGH end (maximal mix)** — the "low H" gloss
|
||||
was the naive-funnel error and is refuted **by construction** here. Expect high H.
|
||||
3. **Monotonicity.** Realized mean top-3 concentration is **monotone decreasing in B** and
|
||||
**increasing in alpha**, across the sweep, on a dry (non-confirmatory) calibration pass.
|
||||
4. **Entropy calibration unchanged.** H = log₂N on equiprobable synthetic senders (inherited).
|
||||
|
||||
**§7 scope note (why items 1–2 do NOT assert an H-vs-c sign).** This gate validates the
|
||||
**instrument** — concentration varies monotonically (item 3), entropy is exact (item 4), the
|
||||
frozen branch is untouched (item 1), and the B=1 boundary hits `c = 1.0` (item 2). It **must not
|
||||
pre-assert the sign of H-vs-concentration**, because that sign *is* the two-sided confirmatory
|
||||
question (H1/H2). Baking "expect low H at high concentration" into a validation gate would be
|
||||
**funnel-circular**; removing it makes the study **more** rigorous, not less. The confirmatory
|
||||
hypotheses in §2 stay two-sided/direction-agnostic — **UNCHANGED**. (Note: the dry calibration
|
||||
pass already *previews* a mix, ρ 0→+0.838 across the sweep; this is surfaced openly as an
|
||||
exploratory preview and does **not** relax the two-sided pre-commitment.)
|
||||
|
||||
If any gate item fails → STOP, do not report; surface as NEEDS-OPERATOR.
|
||||
|
||||
## 8. Analysis plan
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
# Stage-05 deviation log — RQ2-P3 §7 calibration-gate re-word (naive→mechanical mix)
|
||||
|
||||
**Status: DEVIATION (pre-freeze), 2026-07-21 — operator-ruled (Andre), logged transparently.**
|
||||
This edits a **DRAFT** prereg (`rq2p3-mechanism-prereg.md`, its own slug `sor-consent-rq2p3`,
|
||||
**not yet frozen**, §10 empty). It **does not** touch the frozen lead prereg
|
||||
(`sor-consent-prereg.md`, SHA `f22331a72e0d0ccf38b787e63acabbe9d666456ec76076787a6d545c3193425b`).
|
||||
Because the RQ2-P3 prereg is pre-freeze, correcting a mis-specified validation gate is legitimate —
|
||||
but it is recorded here rather than silent-edited, per the no-HARKing rail.
|
||||
|
||||
## What was re-worded
|
||||
|
||||
`rq2p3-mechanism-prereg.md` §7 (instrument-validation gate), items 1 and 2, plus a new §7 scope
|
||||
note. Items 3 (monotonicity) and 4 (entropy) are unchanged.
|
||||
|
||||
- **Item 1 — before:** "Reproduce the lead degeneracy. `B=50, alpha=0` → `c_i ≈ 1/50` constant,
|
||||
ρ undefined." **After:** re-anchored on the actual frozen `bridge-federated` branch (unique
|
||||
bridge per circuit seed → `m_i=1` → `H_i≈0`, constant `c_i=1/C`). A **pool of any B** draws
|
||||
with replacement → birthday collisions → non-constant concentration → ρ **defined**, so a pool
|
||||
cannot and must not reproduce the injective fresh-bridge zero-variance degeneracy.
|
||||
- **Item 2 — before:** "`B=1` → all circuits share one bridge → `c=1.0`, minimal set, low H."
|
||||
**After:** keep the concentration tooth (`c=1.0`), but the anonymity set is then **all**
|
||||
circuits sharing the exit house, so under the ratified posterior `H` sits at the **HIGH end
|
||||
(maximal mix)**. The "low H" gloss was the naive-funnel error, refuted by construction.
|
||||
- **New §7 scope note:** the gate validates the **instrument** (concentration varies, entropy
|
||||
exact, frozen branch untouched, B=1 boundary at c=1.0) and **must not** pre-assert the sign of
|
||||
H-vs-concentration — that sign *is* the two-sided confirmatory question (H1/H2). Baking
|
||||
"expect low H at high concentration" into a validation gate would be funnel-circular.
|
||||
|
||||
## Why (the mechanism)
|
||||
|
||||
The adversary observes `exit_signature = (exit_house, bridge_label)`; the per-circuit anonymity
|
||||
set `m_i` = distinct entry nodes among circuits **sharing** that signature
|
||||
(`confirm_load_rq2.py`). The fresh-bridge lead instrument gives every circuit a unique bridge →
|
||||
unique signature → `m_i=1` → `H≈0`; a **finite shared pool** makes circuits share signatures →
|
||||
larger sets → **higher H**. So a shared bridge acts as a **mix**: more concentration *raises*
|
||||
anonymity, the opposite of the naive funnel. Items 1–2 as originally worded encoded the funnel
|
||||
prior and were therefore mechanically wrong. This is exactly the prediction in
|
||||
`note-unique-bridge-artifact.md`, now confirmed at calibration.
|
||||
|
||||
## What is NOT changed (the integrity teeth)
|
||||
|
||||
- **Confirmatory hypotheses H1/H2/H3 (§2) stay two-sided / direction-agnostic.** No hypothesis
|
||||
was added, dropped, or re-signed. This is a validation-gate fix, **not** HARKing. Removing the
|
||||
circular sign-assertion makes the study **more** rigorous, not less.
|
||||
- **Analysis code unchanged:** `confirm_load_rq2.py`, `confirm.py`, `stats.py` untouched. Only
|
||||
the prereg §7 prose and (in the earlier build stone) the `bridge-federated-pool` instrument +
|
||||
helpers changed. The frozen `bridge-federated` branch is bit-reproducible.
|
||||
- **Freeze stays a human gate:** §10 remains empty; no confirmatory RQ2-P3 cell runs until Andre
|
||||
records the SHA-256 and signs off.
|
||||
|
||||
## Calibration output cited (no number invented)
|
||||
|
||||
The dry, synthetic-only §7 calibration pass (`cmd_chat/sor/analysis/rq2p3_calibration.py`, build
|
||||
stone commit `1d99e7f`) produced, verbatim:
|
||||
|
||||
- Item 3 (monotonicity) **PASS**; item 4 (entropy `H=log₂N` exact) **PASS**.
|
||||
- Anchor `B=50, alpha=0`: concentration stdev **0.0198** (non-constant), Spearman ρ **+0.838** —
|
||||
a mix, *not* the fresh-bridge zero-variance degeneracy (this is what exposed the mis-wording).
|
||||
- `B=1`: concentration `c=1.0` ✓, mean entropy **2.54 bits** vs the fresh-bridge reference
|
||||
**0.0 bits** — HIGH, contradicting the naive "low H".
|
||||
- Full sweep Spearman ρ (B∈{2,4,8}×α∈{0,1,2}, in grid order): 0.00, 0.231, 0.291, 0.341, 0.526,
|
||||
0.597, 0.482, 0.744, 0.714 → all **≥ 0**: a robust mix across the whole grid.
|
||||
|
||||
## Exploratory status of the mix preview
|
||||
|
||||
The MIX (ρ 0→+0.838) is an **EXPLORATORY** calibration preview that **strengthens**
|
||||
`note-unique-bridge-artifact.md` (the lead "shrink" is plausibly a unique-bridge artifact). It is
|
||||
**not** a confirmatory result and does **not** relax the two-sided pre-commitment: the
|
||||
confirmatory battery will still quantify the dose-response two-sided. Honest disclosure the paper
|
||||
must carry: because the dry pass already previews mix, the confirmatory run quantifies a
|
||||
dose-response **already visible at calibration** — stated openly; the pre-registered
|
||||
direction-agnosticism stands.
|
||||
Reference in New Issue
Block a user