Files
hack-house/cmd_chat/sor/analysis/__init__.py
T
leetcrypt 12fd2537e3 R7 (live halves): seeded churn + rebuild selector + metrics.json
churn.py emits a seed-deterministic kill/spawn schedule (pure data — no real VM
spin/kill; the live fabric half stays gated by the containment law). selector.py
consumes the schedule and rebuilds a circuit whenever a kill drops one of its
hops, across static | random | agent strategies; the paid frontier-model agent
arm (GOAL envelope (c)) is human-gated and NOT wired — the agent strategy here is
a local stability heuristic that spends nothing. analysis/metrics.py aggregates
the four DV families (RQ1 correlation AUC, RQ2 entropy bits, RQ3 throughput
retention + rebuild-classifier AUC) into a schema-valid, write-once metrics.json.
Acceptance check green: under a fixed churn seed the selector rebuilds every
dropped circuit (every_drop_rebuilt, all strategies) and metrics.json is
produced. Python R7 selector suite 11 passed; full SOR suite 92 passed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-19 17:18:44 -07:00

24 lines
1.2 KiB
Python

"""R7 (partial) — offline analysis calibration primitives.
This package holds only the *offline-validatable* half of R7: the detectors that
the instrument-validation gate calibrates on **synthetic fixtures** (never on
confirmatory-cell data — CLAUDE.md build discipline). Specifically:
- ``detectors.shannon_entropy_bits`` — the RQ2 anonymity-set entropy metric; gate
item 4 requires it to return ``log2(N)`` for ``N`` equiprobable senders.
- ``detectors.bridge_correlation_auc`` — the RQ1 bridge-linkability scorer; gate
item 3 requires AUC ≈ 1 on a known-linked control pair and ≈ 0.5 on a
known-unlinked pair.
These are pure functions over in-memory series/distributions — they read no
pcaps, spawn no engine, move no traffic, and touch no VM fabric.
The rest of R7 is landed alongside: ``metrics.py`` (this package) aggregates the
four DV families into a schema-valid, write-once ``metrics.json``; the seeded
churn schedule + rebuild loop live in ``cmd_chat/sor/{churn,selector}.py``. The
live VM spin/kill against the isolated hackhouse fabric, and the full
pre-registered confirmatory battery, remain gated by the containment law + the
human freeze (see OVERSEER-STATUS.md) — the churn schedule is seeded *data* here,
not a real VM operation.
"""