# v3sparse60 shadow lane (exec, 20 Oct, #3439) - built, DRY
- Signal: datajob `v3p-signal` (research-box, /opt/crew/work/exec/v3p/v3p_signal.py), paper rule exactly: v3 pool, trigger = first swap >= first+60 s with cap 3k-150k, >=4 swaps before +60 s, no two buys in the same second, locked-code token (len 10355) skipped. Pushes /opt/fm/wl_signals_v3sparse60.jsonl. Stop: touch v3p/OFF.
- Trader: `fmwl@v3sparse60` (fm_wl.py, wl_v3sparse60.db), dry (no LIVE_V3SPARSE60): entry 8 s after trigger on a real next swap within 60 s, cap <150k, tp 5x, stop 0.5x, 2 h, sell-sim round trip, pool WETH >=1, fm_rug wlink pull pause shared. Backups fm_wl.py/fm_rug.py .bak_exec_<epoch>.
- Registry: live_lane v3sparse60, rug_gate true (bak registry.json.bak_exec_3439).
- Open: paper ~54% pulls (109/186), median 0x, edge = tp 5x winners; live pull policy not set (shared one-pull pause only with a LIVE file). Paper entry fill is one tick after trigger; dust_pool_weth 1.0 may skip small pools the paper took. TODO: check wl_v3sparse60.db rows.
