A killed nightly (pause/crash/reboot) left .nightly.lock.d behind — the
EXIT trap never fires on SIGKILL — and EVERY later run then skipped
silently (caught 2026-07-27: today's run exited in <1s). Lock now
records its PID and a run whose owner is gone takes it over.
Reconcile hit the 15-min tape-sync agent's single-writer lock and died;
now waits it out (20x30s).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sell-band evidence: every band <90c LOSES by mirroring (<30c +$79/sell
given up, 50-70c +$7.29); >=90c SAVES (-$0.85/sell, n=68).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2,191 episodes (400 highest-volume event/outcome groups, name-matched
semantics only): follower drift +4.12c mean in leader direction at +5m
(43% >+2c vs 17% adverse; p50=0 — thin siblings often don't print).
Tradable leg chain-true: n=2,028 · EV +$9.73/$100 buying the follower at
its last print in the leader's direction. STATED OPTIMISM: stale-print
entry (the T4 lesson — prints are not books); resting asks may have
repriced without printing. Stage-2 = execution realism (live book reads
or a paper scanner leg). Theme with T6: edge lives where repricing is
SLOW — the far side of the requote wall.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Incumbent census (volume-ranked): industrialized niche — top harvester
$3.2M vol/5,854 buys at +2.27% per ~4h hold; several ~$1M at +2.4-3.4%;
two big operators NEGATIVE (-3%) — residual risk is real, top-5 share
only 20%. Bucket returns (+6.2%/90-95c etc) are UPPER bounds: $129M of
high-price buys sit on non-tape-resolved tokens where upsets linger.
Verdict: park at our capital scale (pennies on idle cash); revisit as an
idle-cash overlay once nightly chain coverage closes the bias, or if
bankroll grows 10x.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
98 chain-graded misses. The useful inversion: crater_reject misses were
GOOD misses (-$7.74/-$6.32 per $100 both books) — unfillable entries were
adversely selected, consistent with the week's winner's-curse theme, and
puts a question mark on the 07-20 requote-retry's EV (follow-up: score
retry outcomes). Everything else outlier-dominated at n<=21/bucket (one
+1567% longshot carries depth_thin); no filter changes warranted. Ledger
deepens daily — maker-window expiries now feed it.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
9,165 chain-graded leans, 3 walk-forward days, as-of screening (no
self-selection). FOLLOW +$2.51/lean pooled (59% hit @ 58c avg), positive
ALL THREE days (+1.60/+2.20/+3.60) — day-consistency the surge signal
never had under truth. Size structure tells the mechanism: $150-500
leans FOLLOW +$2.90 (absorbed retail flow = signal); $2k+ leans FOLLOW
-$1.73 / FADE +$13.38 n=422 (whale bags = makers getting picked off).
Caveats: last-print entry optimism, thin vs the fee hurdle as taker
(maker-entry execution is the natural pairing), $2k+ fade cell needs an
event-concentration check before pre-registration.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
FINDINGS: 'The fill model is the next scorer' section (A2 chain grade
-$7.54/fill x1344 confirms the surge kill; oracle harness chain grade
vetoes the ledger-positive tiers; virtual-book +26% variance footnote;
the five tandem tests and the makers-on-the-wall through-line).
HANDOFF: snapshot -> 07-23 (7-wallet rev 5, dark flags, Friday agenda
incl #20/#21). READMEs: /test consolidation row, measurement-harness
research row, study statuses + new script inventory.
Archive: value/ (closed 07-19) + its test, ETHERSCAN_MIGRATION.md,
order_probe v1 -> archive/; replay_out/ gitignored; links repaired.
Tests: all 7 active scripts pass post-move.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
T2: the maker species is real and distinct — 673 wallets clear the taker
screen's z>=2.5 discipline on the orders_matched stream (~33 expected by
chance), pooled +$5.9M over 47,693 resolved bets in ~6 tape days; only
96/673 overlap the taker informed set, 3/37 watch_sharps. Not copyable by
taking (their edge IS the spread) — follow-ons: inventory-lean signal,
T1 generic maker sim.
T4: print-substrate sibling-sum scan reads 2.8%/1.5% violation minutes but
the top examples expose the artifact (resolution-time dust prints at bids,
not standing offers); persistence p50 1min. Verdict: inconclusive at v0,
needs standing-book data (L2 recording / live paired scanner) — parked
behind the T1 decision.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
54 chain-graded parity+ signals @$100: maker bid at their price fills 93%
within 60s, EV/signal +$17.45 vs taker +$12.86 (+36%) — fee removal +
no pay-up. No adverse-selection asymmetry at the 60s window (winners fill
92% vs losers 94%); mild asymmetry only in patient tails, so 60s-then-
cancel is the shape. Queue-position optimism stated: maker wins while real
priority >~68%; markout re-read stream will refine. Candidate execution
change behind mirror-exactly + pre-registration.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Paper pooled +18.6% (n=35, clears hurdle+2pp). Concentration: esports +22.0%
(n=29, 83% of stake) and gkmgkldfmg +33.4% (n=19). Live pooled ~breakeven at
$1-2 stakes (rounding drag, concentrated in the esports cell) — the #14
size-up tension in one table. Slippage by lag: <=3s fills BETTER than their
print (-0.66c mean). Exploratory measurement; cells small; meta-niche
coverage 0% until snapshots accrue (title fallback used).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- surgebot/oraclebot: settles now append-only to /data/*_settles.jsonl
(SETTLED_TRIM rotation can never lose a settle; graders pull them)
- forward.py: backfills any tape-covered day missing from the ledger —
a Mac offline gap > RESCORE_DAYS no longer leaves verdict-evidence holes
- meta_snap.py: nightly gzipped snapshot of all active markets (12k, 2MB/d,
local-only) — end dates make tau knowable at trigger for every tape
trigger; token->outcome maps kill the label-gap scorer artifact class
- .gitignore: pulled raw streams + meta stay local (re-fetchable, lean repo)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
v0 (res_tok only) said 'hold wins everywhere, +$43/fill' — that was
resolution-timing survivorship (round 3). Chain-graded, 1,146 forward
fills: hold -$5.92/fill and EVERY exit horizon negative too (best -$4.18
at +30m). Cohort split: tape-resolved winners drift to +$44 held; the
hidden-loss cohort bleeds monotonically from minute one (-$6@60s ->
-$44@2h). No scalp, no rescue — surge moments are symmetric information
events; net of fees + worst-print entry the taker case is closed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Forward days, 559 resolved fills: exit +60s = -$3.43/fill (burst-top entry
is briefly underwater), +30m = +$13.63, +2h = +$35.51 vs hold-to-resolution
+$43.56. Monotone accrual to resolution in every slice — the under-reaction
converges over hours, not seconds. v1's >3h 'bleed bucket' is POSITIVE on
the full signal (+$44.66/fill): another confirmation the v1 book's losses
were cash-gate selection, not hold-time. All entry bands positive forward.
No A2-scalp pre-registration warranted; markout re-reads stay on to verify
with real bids.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
No signal-path change (SEM_VER unchanged): records more, alters nothing.
Purpose: real exit marks for the markout-exit study (prints can't show the
bid) + book depth at mispricing moments (maker-study stage-1 groundwork).
oraclebot gains the same append-only attempts log as A2. Nightly pulls the
new files alongside state.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
v1's cash-gated book halted at its pre-registered -50% line; post-mortem
showed the ~2% cash-gated subsample was adversely selected (-$9/fill vs
+$41/fill full-signal, same day). A2 samples every trigger and replays
bankroll specs offline (surge_book_replay.py -> surge_book.json). Signal
semantics verbatim; grades to surge_meas_ledger.jsonl. See #19.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
FINDINGS: full round-3 section (mechanism, the 81%-vs-26% audit, how the
paper harness caught it, corrected verdicts, three standing rules) +
scorecard updates (surge dead, sub5c dead 0/38, oracle revived at E>=0.07)
+ correction banner on the 07-20 tape-era section. HANDOFF: queue +
snapshot reflect the kill, surgebot's instrument role, scorer law, Friday's
combined agenda. research/README: SCORER LAW + independent-instrument rule
+ full current layout. recorder/README: sync transport fallback. README:
/surge dashboard + research row truth.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
THE SCORER BUG (found 2026-07-22 by the surge paper book divergence):
tape-resolution timing is win-biased. When our side LOSES, the winning
sibling keeps trading at 99c until close, the sibling-veto keeps the
market 'alive', and the loss sits in the ignored pending bucket — while
wins tape-resolve within hours and score. Jul-21 audit: tape-resolved
fills 81% hit (+$46/fill); chain-resolving the 329 'pending' fills: 26%
hit, -$49.61/fill; combined truth 53% ≈ the paper book's 57.5%. The
paper harness was the honest instrument; every ledger arm was flattered.
payouts_for(): tape proxy first, CTF chain truth for the remainder
(payouts.py cache — immutable, so nightly incremental cost is small);
refunds (0.5) now booked as scratches. Applied to flow, controls, and
oracle (sub5c inherits via score_flow). Ledger recompute follows; #16
verdict evaluates corrected numbers only.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Mirrors forward.py::score_oracle semantics verbatim (constants frozen from
study_oracle/tape); live-only suppress-only guards; $100 FAK walks the live
asks inside p_ref*1.05; three settle layers (own-feed tick, CLOB flags,
nightly CTF re-grade via grade_oracle.py -> oracle_paper_ledger.jsonl).
Shakedown 2026-07-22: 52 events/9 fills/43 craters at p50 541ms; 30/30
event agreement vs tape scorer on the comparable set. Verdict still binds
to forward_ledger only (#17).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fetched from CLOB end_date_iso at fill time; settle passes backfill
pre-ETA fills. Feeds the /surge Open tab's Resolves column.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CORS-open GET /feed serving the paper book (equity, counters, open,
settled, skips, informed-set meta) — paper data only, nothing mutable.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Real-time PAPER trader of the FROZEN surge signal on its own Fly app
(wwf-surgebot, recorder-pattern image, no keys, no bot imports):
$100 paper book · 5%-of-equity daily stakes ($1 venue floor) · cash-gated
all-or-nothing · event cap 2 · paper FAK against the live CLOB book inside
p_ref*1.05 · provisional CLOB settles re-graded nightly with CTF payout
vectors (grade_surge.py -> surge_paper_ledger.jsonl). Informed set
published daily (informed_set.py -> params/informed_set.json, frozen
method). Unit-tested: fill/crater/event-cap/cash paths exact; live smoke:
dual sockets + sizing clean. Believing any of it stays gated on the #16
forward verdict.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Same frozen surge signal, band opened to 0.5-5c, all niches, F=$300 —
tracked nightly as flow_sub5c_EXPLORATORY (NOT pre-registered). First
tape scan: they live in in-play sports totals/blowout tails + esports
maps; ~70% crater; 31 resolved fills, 4 wins, EV sign owned entirely by
two lottery hits; sim depth-blind at longshot share counts. Accumulate
to ~100+ resolved fills before any pre-registration or kill.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
First run exited 1 after a successful score: the exit trap's relative
rmdir ran from the repo root (post-cd) — wrong dir, stale lock left in
research/, every future night would have skipped itself.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replays candidate sets through the engine's mirrored mechanics (stake rule
+ DD halving + their-shares ceiling + one-market-one-stake adds + all-or-
nothing cash gate + proportional sell mirror, copytrade.py cited) with the
calibrated sim fill model and tape proxy-resolution. Per-wallet conviction
floors from the paper config's pinned p80s (candidates without pins get
tape-p80, same rule). Outputs per-set×bankroll: realized/open, deployment
stats, miss families (capital/crater/band), capital-miss hypothetical P&L,
per-wallet realized, and --loo leave-one-out marginals at $1k.
Validated against the real paper book on the same window: 33 replay opens
vs 26 real (backfill bias documented — pre-tape positions' adds replay as
opens), capital misses 0 vs 0, peak deploy 62% vs the era's 74%, mean
deployed $297 vs ~$360. SEARCH TOOL ONLY per the silo README — verdicts
stay with forward_ledger.jsonl.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>