Commit Graph

26 Commits

Author SHA1 Message Date
leetcrypt 47faee3a92 analysis: seal RQ3 confirmatory battery + frozen analysis + authoritative Holm-7
RQ3 live-docker battery (90/90 runs) complete; un-blind and apply the frozen
prereg §6 plan. No re-specification.

Seal: SHA256SUMS over confirmatory-data/ (battery-results.json 5b61e461... + 90
rq3-run.json sidecars) — raw data immutable. New analyzer analysis/rq3_confirm.py
drives the frozen stats/metrics (untouched) via a run-level multi-arm bootstrap
mirroring two_sample_diff_ci (10k BCa, alpha=0.05). Effect+CI always, never bare p.

RQ3 result (honest null):
- RQ3-P1-perf: retention margin agent-max(static,random) = -0.6pp, CI
  [-1.58,+0.39]pp -> FAILS +10pp gate (all selectors heal ~all churn, ~99%).
- RQ3-P1-latency: added-latency(agent-min-baseline) = -13.5ms, CI [-52.1,+34.9],
  upper <= 100ms -> within budget (agent not slower).
- RQ3-P2: rebuild-classifier AUC(agent vs pooled baseline) = 0.587, CI
  [0.458,0.703], upper 0.703 > 0.60 -> fingerprint NOT excluded (underpowered).
- RQ3-P3 = H0 (P1-perf fails and P2 fails).

Authoritative Holm-7 over the frozen size-7 family (supersedes the lead's
conservative partial embedding; RQ2-P3 slot carries the mechanism-corrected
H1-pooled Spearman p=0, not the lead degenerate p=1). Survivors: RQ1-P1,
RQ2-P1 (shrink), RQ2-P3 (mix). Non-survivors: RQ1-P2, RQ3-P2, RQ3-P1-perf,
RQ3-P1-latency. Sealed: analysis/rq3-confirmatory-analysis.json (e09c66ef...).

Tests: tests/test_sor_rq3_confirm.py 6 passed; full SOR suite 207 passed.
Both prereg SHAs intact; $0/offline analysis; worktree only.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-22 08:48:31 -07:00
leetcrypt e0d865d012 docs: fill RQ2-P3 half of combined companion paper from sealed record
Post-seal, un-blinded fill of the RQ2-P3 mechanism track in the combined
companion paper (D3), matching the lead paper's post-seal discipline. RQ3
remains fully HELD-BLIND (battery still running; progress read by sidecar
count only).

- §3: FREEZE-PENDING -> FROZEN 2026-07-21 (prereg SHA 8db4e8a7...)
- §5 Results (RQ2-P3): H1 rho=+0.6244 CI[+0.5941,+0.6545]; H2 slope=+0.7052
  CI[+0.6195,+0.7903] (n=270, run-level cluster bootstrap); H3 RESOLVED=MIX;
  Holm own {H1,H2} both reject. Effect+CI, never bare p.
- §6 Discussion: shared-pool concentration RAISES anonymity (mix), refuting
  the naive funnel; honest qualification/correction of the lead RQ2-P1
  "shrink" as a unique-bridge (fresh-bridge-per-circuit) artifact, per
  note-unique-bridge-artifact.md + frozen mechanism prereg. Mandatory
  disclosure: §7 dry-pass previewed direction (rho 0->+0.838); hypotheses
  were pre-committed two-sided.

RQ3 Results/Discussion and the authoritative Holm-7 stay HELD-BLIND until
rq3-battery-results.json lands. Lead RQ2-P1 + frozen lead prereg untouched.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 21:20:03 -07:00
leetcrypt 69d9cfbb17 RQ3 STEP 3: launch LIVE confirmatory battery (triple-locked, grid up)
Operator-authorized (D2: GO on the live RQ3 battery, grid permitting). Grid
re-probed (real SSH + docker subprocess probes): full (3 reachable, 1 isolated
engine host, 0 down), sor-hop image present. Green preflight: both RQ3
calibration gates already pass and a 1x1x2 live rehearsal delivered a real
docker circuit with a measured added-latency.

New launcher rq3_confirmatory_run.py is the RQ3 analogue of confirmatory_run.py,
gated behind the same triple-lock before any live circuit: (1) operator token
SOR_CONFIRMATORY_GO=1, (2) frozen LEAD prereg SHA-256 verified (RQ3 is in the
frozen family-of-7), (3) assert_isolated(docker != local). The RQ3-P1-latency DV
is a real end-to-end measurement — nothing is fabricated.

Battery launched and confirmed progressing (python child alive + a live
4-container circuit up): executor.run_rq3_battery(live=True) collecting the full
frozen schedule (selector ∈ {static,random,agent} × pinned churn kp30/steps20,
R=30 × C=50 = 4,500 isolated-docker circuits), cells NOT trimmed. Completion is
detected by the once-written rq3-battery-results.json; progress by the per-run
rq3-run.json sidecars reaching 90 (3 cells × 30 runs). Confirmatory data seals
under output/ (gitignored) — anchors force-added on completion.

Containment load-bearing: isolated-docker only, self-generated fixture traffic,
$0 (local heuristic/random selector arms; no frontier-model spend). Both prereg
SHAs intact (lead f22331a72e…, RQ2-P3 8db4e8a7ac60…). Worktree-only on
feat/sor-consent-relay.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 21:08:01 -07:00
leetcrypt f920516c69 RQ2-P3 STEP 2: run confirmatory battery OFFLINE + DETERMINISTIC — RESOLVED MIX
Operator-authorized (D1: freeze + run). New harness analysis/rq2p3_confirm.py
runs the frozen §4 battery entirely offline: all 9 sweep cells (B∈{2,4,8} ×
alpha∈{0,1,2}; B=50 anchor excluded) × R=30 × C=50 = 13,500 bridged circuits.
RQ2 entropy is analytic and pool bridge assignment is deterministic from the
seed, so no engine, no traffic, no grid, $0 — the same offline reconstruction
path confirm_load_rq2 uses for the lead RQ2. Seeds per frozen §6: run =
derive_seed(S0=20260719 ‖ cell_id ‖ run_index), per-circuit = the live
executor's real _circuit_seed rule (byte-identical). The frozen instruments
(stats.py, confirm.py, confirm_load_rq2.py, assembler.py) are UNCHANGED — the
only new code is seed enumeration, run-as-unit grouping, and an OLS-slope helper.

Frozen §8 analysis (effect + BCa 95% CI, never a bare p; 10,000 resamples;
α=0.05; run-level cluster bootstrap):
  H1 pooled Spearman ρ(c_i,H_i) = +0.6244, CI [+0.5941, +0.6545] -> mix
  H2 OLS dose-response slope    = +0.7052, CI [+0.6195, +0.7903] -> mix (n=270)
  H3 joint -> RESOLVED = mix (both exclude 0, agree in sign)
  Holm over own family {H1-pooled, H2-slope}, size 2: both reject.

Honest disclosure (as commanded): the §7 dry pass already previewed this mix
(ρ 0→+0.838); the battery quantifies an effect already visible at calibration;
the two-sided pre-commitment stood. The +ρ MIX qualifies/corrects the lead
RQ2-P1 "shrink" headline as a unique-bridge artifact — a shared finite bridge
pool RAISES the per-circuit anonymity set, the opposite of the naive funnel.
That correction is the finding, reported openly. The lead RQ2-P1 result is NOT
re-litigated; any pool ΔH is exploratory (prereg §1).

Sealed immutably under output/ (gitignored → anchors force-added):
rq2p3-confirmatory-results.json (SHA-256 5fdcb379d8a2…) + SHA256SUMS;
byte-identical on re-run. Both prereg SHAs verified intact (lead f22331a72e…,
RQ2-P3 8db4e8a7ac60…). Tests: tests/test_sor_rq2p3_confirm.py 7 passed; full
SOR suite 201 passed, no regression. Defensive-measurement instrument only;
worktree-only on feat/sor-consent-relay.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 21:03:41 -07:00
leetcrypt fa6a9a7edc RQ2-P3 STEP 1: FREEZE prereg (§10 signed, sidecar SHA-256)
Operator-authorized freeze sign-off (Andre delegated per-gate command
authority to the overseer 2026-07-21). Froze rq2p3-mechanism-prereg.md
AS-IS — no hypothesis or parameter changed; the §7 re-word already landed
at 7ab3466. §10 records FROZEN 2026-07-21, delegated approval, and the
locked levels B∈{2,4,8}, alpha∈{0,1.0,2.0}.

SHA convention mirrors the lead prereg: full-file sha256sum stored in a
sidecar (rq2p3-mechanism-prereg.sha256 = 8db4e8a7ac60…), not embedded
inline, to avoid the self-referential fixpoint. Lead prereg SHA
f22331a72e… re-verified intact (recomputed — unmoved).

Defensive-measurement instrument only; no confirmatory data collected in
this stone. Worktree-only on feat/sor-consent-relay.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 20:46:44 -07:00
leetcrypt 50b1701e6a docs: QA prose fix — attribute lead RQ1-P1/RQ2-P1 raw p to the lead paper
Bounded companion-methods QA (blinding / citation-grounding / FREEZE-PENDING all
clean). Prose-only clarification, no number changed: mark the stray raw p ~ 0 as
the lead paper's already-published RQ1-P1/RQ2-P1 result so it cannot be misread as
a held companion figure. HOLDING — awaiting operator freeze (RQ2-P3 §10) / GO
(RQ3 live grid).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 20:24:05 -07:00
leetcrypt 4f89a9017d docs: companion methods scaffold (BLIND) — RQ2-P3 mechanism + RQ3 churn
Draft the companion METHODS data-independent and blind, mirroring the lead-paper
SS4 discipline: methods drafted, all Results/Discussion HELD-BLIND. No confirmatory
run, no confirmatory number.

- Two standalone methods sections (paper structure left OPEN — operator editorial
  call): (A) RQ2-P3 funnelling-mechanism study, header marked FREEZE-PENDING since
  its prereg §10 is unsigned — pool instrument, B×alpha manipulated-IV design,
  two-sided H1/H2/H3, run-level cluster bootstrap, re-worded §7 gate (cites
  stage-05-rq2p3-gate-clarification.md); (B) RQ3 companion from the frozen prereg
  §3/§4 — qwen2.5:3b + reproducibility caveat, churn kp=30/steps=20, frozen
  RQ3-P1-perf/latency/RQ3-P2 gates, Holm-7-supersedes note.
- Intro/Related-Work deltas (unique-bridge/mix mechanism; churn-resilience +
  rebuild-fingerprint motivation), reusing only grounded lead citations plus
  Barton2025 from the frozen prereg's RQ3 DV.
- The only numbers written are already-produced CALIBRATION gate values, each
  labelled calibration not result (RQ2-P3 dry preview mix; RQ3 churn-bites +
  classifier calibration). Results/Discussion are HELD-BLIND placeholders.

HARD HOLDS: RQ2-P3 awaits §10 human freeze; RQ3 awaits operator-GO + live grid
(added-latency is live-only). Frozen lead prereg f22331a72e… untouched; no HARKing;
containment synthetic/offline, $0; worktree-only.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 20:17:59 -07:00
leetcrypt c6e882abd6 R7/RQ3: executor-wiring stone — offline selector DVs + calibration gate
Wire the RQ3 churn-resilience companion (severable follow-on; RQ3 frozen in its
own prereg) as SYNTHETIC/OFFLINE build + calibration only — no confirmatory
battery run.

- battery: enumerate_rq3_cells()/rq3_schedule() add selector in {static(control),
  random, agent} at 1house/bridge-off under pinned churn kp=30/steps=20, kept
  SEPARATE so the frozen 6-cell lead lattice stays byte-identical.
- executor: run_rq3_cell_run collects offline selector DVs (throughput-retention,
  drops/rebuilds, rebuild-interval gaps); added-latency is live-only (offline path
  records None, never fabricated); run_rq3_battery(live=False) hard-raises.
- analysis/rq3_calibration: DRY offline gate. Churn-bites (1589 drops/1576
  rebuilds) + rebuild-classifier calibration green with real teeth — churned(kp30)
  vs baseline(kp5) AUC 0.926 separable, baseline-vs-baseline null 0.518 blind.
  Classifier scored on the PER-RUN mean inter-rebuild gap (the confirmatory
  grouping unit); the frozen instrument (rebuild_interval_gaps,
  rebuild_classifier_auc) is untouched, no fit to confirmatory data.

HARD HOLD: no RQ3 confirmatory battery (live added-latency is operator+grid-gated).
Lead prereg SHA f22331a72e… untouched; containment intact (synthetic/offline, $0
local Ollama, frontier arm inert); worktree-only.

Tests: tests/test_sor_rq3_wiring.py 9 passed; full SOR suite 194 passed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 20:07:30 -07:00
leetcrypt 7ab3466878 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>
2026-07-21 19:48:55 -07:00
leetcrypt 1d99e7f9a9 RQ2-P3: bridge-federated-pool mechanism instrument + synthetic tests + calibration gate
Build the funnelling-mechanism instrument for the RQ2-P3 follow-up: a new
`bridge-federated-pool` topology drawing each circuit's bridge from a finite
willing-bridge pool (size B) under Zipf willingness skew (alpha), so bridge
concentration genuinely varies as a manipulated IV. Defensive measurement only:
synthetic seeds, no engine, no traffic, no confirmatory record read.

- assembler.py: add `bridge-federated-pool` branch + zipf_weights/weighted_draw
  helpers; existing lead `bridge-federated` branch left untouched and
  bit-reproducible (fresh bridge per seed).
- battery.py: enumerate_rq2p3_cells() = B{2,4,8} x alpha{0,1,2} + anchor B=50,
  alpha=0 (separate fn; frozen 6-cell lead lattice unmutated).
- analysis/rq2p3_calibration.py: DRY synthetic-only §7 calibration gate; no
  confirmatory data read. confirm_load_rq2.py/confirm.py/stats.py unchanged.
- tests/test_sor_rq2p3_pool.py: 9 synthetic tests (helpers + pool reuse/variance
  + lead branch reproducibility).

Calibration gate RAN: items 3 (monotonicity) & 4 (entropy) PASS; items 1 & 2 do
NOT match their naive-funnel wording because the ratified posterior yields a MIX
(rho>0 across the whole sweep incl anchor rho=+0.838; B=1 -> H=2.54 bits HIGH) --
the note-unique-bridge-artifact.md prediction, surfaced early. HARD HOLD: no
confirmatory battery, no prereg freeze; NEEDS-OPERATOR banner raised for the §7
item-1/2 re-word decision. Lead prereg SHA f22331a72e... untouched; worktree-only.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 18:38:55 -07:00
leetcrypt 9d0dc5c183 SS5: adversarial review of the filled paper — 1 mechanism defect fixed
Self red-team of the SS4-filled lead paper against the sealed SS3 results
(no new statistic, no raw-data touch, frozen prereg untouched). Documented in
docs/stage-08-adversarial-review.md.

PASS: number fidelity (every §5 figure matches stage06-results.json), Holm
arithmetic (family=7, multipliers 7/6/5/4, only RQ1-P1+RQ2-P1 survive @ .05),
spin/over-claim (no-leak framing for the below-chance AUC, honest-negative
reported with equal prominence, lab-scope disclaimers), blinding integrity
(§5-6 filled once post-seal), method faithfulness (bit-faithful --verify).

Defect fixed (prose only, ZERO numbers changed): RQ1-P1's marginally
below-chance AUC was incorrectly attributed to a bridge "padding stream
flattening" the profile. assembler.py sets padding_applied=(bridge==
"on+padding"), so the RQ1-P1 bridge-on NO-PAD arm carries no cover stream.
Corrected docs/stage-06-analysis.md and paper §5.2/§6 to state the offset is
an unexplained pooled-correlator artifact, explicitly not a padding effect.
Point estimate, CI, gate decision, and Holm outcome are unchanged.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 01:02:02 -07:00
leetcrypt f4e1975daa SS4: fill lead-paper Results/Discussion from the frozen §6 pass
Populate docs/stage-07-paper-draft.md §5 Results + §6 Discussion ONCE, after
the battery sealed, from the single SS3 inferential pass — the blind-authored
§1–4/7 are unchanged. Abstract + §1 contributions updated to the honest
double-null/negative headline.

- §5.1 calibration gate PASS (known-linked AUC 1.0000, unlinked 0.5036).
- §5.2 RQ1-P1 AUC 0.466 [0.452,0.480] = anomaly-below-chance (NO leak);
  RQ1-P2 ΔAUC +0.011 [−0.002,+0.023] padding-ineffective (moot).
- §5.3 RQ2-P1 ΔH −0.96 bits [−1.06,−0.86] SHRINK, reported with equal
  prominence (not reframed as "helps"); RQ2-P3 ρ=0 degenerate/inconclusive.
- §5.4 Holm table (family=7, report-4); only RQ1-P1 + RQ2-P1 survive @ .05.
- §6 honest interpretation; §7 adds the funnelling-degeneracy limitation;
  §8 marks the RQ2 posterior + RQ1-P2 pairing ratified and notes the
  bit-faithful RQ1 bootstrap.

No spin, no re-slicing, no post-hoc subgroups. Frozen prereg SHA intact.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 00:58:50 -07:00
leetcrypt 33b82b39ca SS3: frozen §6 confirmatory pass on real 180/180 — honest null/negative
One auditable, deterministic run of the four lead-paper §6 tests on the
frozen raw battery. Calibration gate PASS (linked AUC 1.0000, unlinked
0.5036 on §5 fixtures) → AUCs reportable.

- RQ1-P1 (bridge leak): AUC 0.4660 CI[0.4523,0.4798] = anomaly-below-chance.
  NO measurable leak; Holm-sig but in the WRONG direction (not evidence of
  linkability).
- RQ2-P1 (federation): ΔH −0.9587 bits CI[−1.056,−0.864] = SHRINK. Holm-sig
  HONEST-NEGATIVE — federation reduces the anonymity set (opposite of RQ2's
  motivation); reported with equal prominence per §6 two-sided framing.
- RQ1-P2 (padding): ΔAUC +0.0113 CI[−0.0025,+0.0234] padding-ineffective
  (raw p 0.091, Holm adj-p 0.456, not rejected).
- RQ2-P3 (funnelling): Spearman ρ=0, zero-variance concentration =
  as-instrumented degeneracy flagged in advance; inconclusive.

Holm family=7 report-4 (multipliers 7,6,5,4); only RQ1-P1 + RQ2-P1 survive.
Ran ONLY the pre-registered tests — no re-slicing, no post-hoc subgroups.

Method faithfulness: RQ1-P1/P2 CIs use a bit-faithful fast numpy bootstrap
(frozen O(n²)-per-fold jackknife intractable at n=75000); stage06_run.py
--verify proves both == frozen stats.bootstrap_ci bit-for-bit (point/lo/hi/
method within 1e-12, incl the average-rank tie path). RQ2-P1/P3 stay on the
frozen confirm.* paths (tractable). Frozen prereg SHA INTACT.

Artifacts: docs/stage-06-analysis.md (methods-faithful narrative, Holm table,
CONFIRMATORY/EXPLORATORY labels, nulls reported honestly) + force-added
output/…/analysis/stage06-results.json (regenerable via stage06_run).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 00:55:44 -07:00
leetcrypt 47b2937789 SS2: raw-data freeze — confirmatory battery COMPLETE 180/180, checksummed
Battery output/sor-confirmatory/20260720T060132Z/confirmatory-data finished:
180 cell dirs, each metrics.json + manifest.json + non-empty circuits/ with
per-hop pcaps. Integrity PASS: 0 missing pcaps (27000 pcap + 9000 events.jsonl);
seed provenance verified 180/180 (seed == SHA256(S0=20260719 || cell_id ||
run_index)); R=30 held exactly across all 6 frozen design cells (RQ1{off,on,
on+padding}, RQ2{1house-N,bridge-federated,directory-federated}). No aggregate
battery-results.json (expected, NOT fabricated — 180-cell count is the frozen
completion proxy).

Immutability anchor: SHA256SUMS.txt over 36361 raw artifacts (sorted rel paths);
provenance.json (S0 + seed formula, executor SHA ce68d41, engine=docker
image_digest=null@runtime, timestamps, completion proxy); INTEGRITY-REPORT.md.
Anchors force-added (/output/ gitignored → raw data stays out of git). Raw
metrics.json IMMUTABLE — not recomputed or edited.

SS2 touched structure/checksum/provenance ONLY — no RQ1/RQ2 inferential
statistic (AUC/H/CI) computed or inspected. Next: SS3 frozen-§6 pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-20 22:35:15 -07:00
leetcrypt a7c5eb221d SS3(RQ1-P2): freeze-derived run_index paired bootstrap + loader wiring
Pairing ruling (docs/stage-05-rq1p2-pairing-clarification.md, RATIFIED-by-
derivation, made while BLIND): the frozen §6 L197-198 "paired" bootstrap pairs
the bridge-on (no-pad) and bridge-on+padding arms BY RUN INDEX — the only
balanced pairing the R=30 (§4 L111) interleaved (§3 L97) design supports; the
§4 L108 RQ1 unit is AUC over the (entry,exit) pair set, so the pairable unit is
the run, not the circuit. Prereg SHA untouched (f22331a72e…).

confirm_load.collect_rq1_p2_paired feeds one confirm.PairedCircuit per shared
run_index into the FROZEN confirm.rq1_p2_padding (§6 arm-level ΔAUC preserved);
per_run_delta_aucs exposes the auditable per-run ΔAUC_i; missing-arm indices are
unpaired (frozen R not redefined). Unit-tested on SYNTHETIC pcaps only
(prereg §2 blinding — unblocks CODE not RESULTS); full SOR suite 176 passed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-20 09:14:12 -07:00
leetcrypt bd7e3764dc SS3: RQ2 rule RATIFIED + offline sender-posterior loader (synthetic-tested)
Flip docs/stage-05-rq2-posterior-clarification.md PROPOSED->RATIFIED (operator
Andre, 2026-07-20, ratified while BLIND to RQ2 data — honest prereg-completion of
a gap the freeze left, not HARKing). Substance of the construction unchanged.

Add cmd_chat/sor/analysis/confirm_load_rq2.py: reconstructs each circuit's spec
OFFLINE from the persisted per_circuit_seeds via deterministic assemble(), derives
the observation-consistent anonymity set A_i (uniform / max-entropy -> [1]*m_i),
per-circuit Miller-Madow H_i, and the willing-bridge concentration series — the
exact inputs confirm.rq2_p1_delta_h (ΔH, two-sided) and rq2_p3_funnel (Spearman ρ)
consume. Grounded only in the ratified rule ([Serjantov2002]/[Diaz2002]).

BLINDING preserved (prereg §2): ratification unblocks CODE, not results. The
collect_* real-data entrypoints are BLIND-GATED and NOT run; the reconstruction is
unit-tested on SYNTHETIC specs/seeds only (test_sor_confirm_load_rq2.py, 6 passed;
full SOR suite 172 passed). Frozen prereg untouched; no RQ2 statistic computed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-20 08:49:51 -07:00
leetcrypt 4976aed3e5 SS4: data-independent lead-paper draft (G4+RQ1+RQ2), written blind
docs/stage-07-paper-draft.md — Abstract skeleton, Intro (consent-gate novelty
G4 + RQ1 bridge-leak / RQ2 funnelling motivation), Related Work, full Methods
from the frozen prereg §2-§6, Limitations §7, References. Results/Discussion are
HELD-BLIND placeholders (battery still running, zero confirmatory numbers seen);
RQ2 subsections additionally gated on the pending posterior-construction
ratification. Frozen prereg untouched; no RQ2 statistic computed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-20 00:20:30 -07:00
leetcrypt a254267e1a docs(sor): PROPOSED stage-05 RQ2 per-circuit posterior clarification (blind)
Overseer ruled DIRECTION=A: fill the specification gap the frozen prereg
left on RQ2's per-circuit adversary sender-posterior, rather than
silently redefine the DV (B) or relabel a confirmatory test (C).

Proposes: adversary observes a circuit's exit-bridge/house and forms a
uniform posterior over the observation-consistent anonymity set A_i;
per-circuit H_i = Miller-Madow(log2 m_i), with S=2^H [Serjantov2002] and
d=H/log2 N [Diaz2002] as the cited normalizations. Makes RQ2-P1 (two-
sided ΔH) and RQ2-P3 (Spearman) computable OFFLINE from the immutable raw
records (per_circuit_seeds + deterministic assemble()).

Status PROPOSED — operator ratification pending. Pre-specified BLIND
(2026-07-20, battery running, zero RQ2 statistics computed) so this is
honest pre-registration completion, not HARKing. Frozen prereg untouched;
sign not presumed (honest-shrink reported with equal prominence).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-20 00:14:32 -07:00
leetcrypt 6efa9df1ec docs(sor): note SS2 wrapper exit-1 is benign; battery verified healthy
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-19 23:15:39 -07:00
leetcrypt 8224a38072 feat(sor): SS3 RQ1 confirmatory loader (pcap -> frozen pair set)
confirm_load.py reconstructs the RQ1 (entry,exit) circuit-pair set from
the REAL per-hop pcaps (bin_pcap_bytes -> score_matrix; diagonal=linked,
off-diagonal=unlinked) so confirm.rq1_p1_leak scores measured data — the
frozen §4 unit. classify_run reads persisted metrics.json;
collect_rq1_p1_pairs selects only bridge=on no-pad runs.

Plumbing unit-tested on SYNTHETIC pcaps only (prereg §2 blinding — no
inspecting intermediate confirmatory results before the battery
completes). RQ1-P2 nopad/pad pairing + all RQ2 held for the operator
ruling (NEEDS-OPERATOR: RQ2 per-circuit posterior underspecified).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-19 23:13:02 -07:00
leetcrypt 6d376018ec docs(sor): NEEDS-OPERATOR — RQ2 per-circuit posterior underspecified vs instrument
Frozen §3/§4/§6 pin RQ2 DV as a per-circuit adversary sender-posterior
entropy (Miller-Madow, bootstrap over circuits; RQ2-P3 needs per-circuit
H). The committed executor measures a per-run realized-frequency entropy
instead — no per-circuit posterior, no per-circuit H. No formula for the
posterior construction exists in the frozen prereg or the instrument.
Flagged rather than invent a posterior model post-freeze (HARKing/
fabrication on a confirmatory DV). Battery left running (raw records
recoverable → RQ2 recomputable offline under any ruling). RQ1 proceeds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-19 23:08:16 -07:00
leetcrypt 68b82e563d docs(sor): OVERSEER SS2 — confirmatory battery firing (frozen R=30xC=50)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-19 23:04:28 -07:00
leetcrypt 557ebaa0f0 docs(sor): OVERSEER SS1 — executor committed, driving to SS2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-19 23:00:54 -07:00
leetcrypt ce68d41348 feat(sor): confirmatory data-collection executor (anti-fabrication)
Measures RQ1 bridge-correlation AUC + RQ2 Shannon entropy from REAL
per-hop pcaps of live isolated-docker circuits. run_battery(live=False)
hard-raises and the executor refuses (ExecutorError) any DV it did not
measure — the executor-side twin of the launcher's "never fabricate
cells" guard. Wired into confirmatory_run's triple-locked tokened GO
(executor.run_battery(live=True) behind operator token + verified frozen
prereg SHA + engine!=local + green preflight + full grid).

Containment intact: self-fixture bytes only, isolated engine only, no
external target. Frozen prereg untouched (SHA f22331a72e…).

Verify: test_sor_executor.py 7 + confirmatory_run + full SOR suite = 163
passed; preflight green (grid 3/3, READY); no confirmatory data collected.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-19 23:00:39 -07:00
leetcrypt c3ef888648 docs(overseer): record commit SHA 6d61c53 in start-line status entry
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-19 20:49:28 -07:00
leetcrypt 6d61c53152 RQ1+RQ2 start-line: live per-cell condition assembler + guarded launcher + Holm ratification
Wire the live per-cell condition assembler (cmd_chat/sor/assembler.py): compose
the existing R1/R4/R5/R6 pieces into a condition-encoding CircuitSpec per frozen
§2 cell, so a cell_id maps to a genuinely distinct, ForwarderPlan-gated
(engine != local) isolated circuit rather than the plain 3-hop control:
  - RQ1 bridge-on / on+padding insert a live bridge hop (+ R1 PADDING stream);
  - RQ2 bridge-/directory-federated genuinely span >= 2 houses
    (federation.select_federated_path, split-knowledge).
Plans only: opens no socket, moves no traffic, stands up no engine.

battery.assembler_dry_check validates on FIXTURES (6/6 cells distinct
fingerprints, all isolation-gated, same (cell,seed) reproduces, RQ1 bridge +
padding arms live, RQ2 federation >= 2 houses); write-once, kept out of any
confirmatory data dir. confirmatory_run preflight now runs it; the --operator-go
path no longer refuses cells as "not wired" — triple-lock + green preflight HOLD
on grid completion, then surface the operator's immutable data-run gate. No
confirmatory cell is ever fabricated.

Start-line instrument-validation gate (cmd_chat/sor/gate.py), grid + containment
pin (grid.py), and the guarded launcher (confirmatory_run.py) land alongside.

Holm: hold family_size = 7, report the 4 RQ1/RQ2 tests -> multipliers 7,6,5,4.
This is the pre-registration, not a deviation (prereg §6 [APPROVAL] size-7 family
+ D6 disclosure in the lead paper); docs/stage-05-holm-clarification.md marked
RATIFIED. RQ3-fold and alpha-split declined.

Containment intact; prereg untouched (SHA f22331a72e...); worktree-only. output/
gitignored (runtime artifacts, never source). Full SOR suite 156 passed. No
confirmatory data collected — the live data run remains the human gate.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-19 20:49:12 -07:00