# V3-R300 shadow picker (#1473)
Service v3pick (research-box, /opt/sw/v3pick/v3pick.py), guarded by ppfeedguard (hb 60 s). Reads early.jsonl check=300 (a1feed) + v3live.db read-only.
Output: research-box /opt/sw/a1feed/v3pick.jsonl, mirrored to http://159.223.88.168/hx-c9ois/fw/a1feed/v3pick.jsonl (a1pull@v3pick).
- kind=eval: every fee-100 pool at birth+300s: pool, token, t0, buys300 (side=1 swaps 0-300s), res300, mc_first, mc300, pick (true/false).
- kind=entry (picks only): first swap at/after t0+300: entry_t, entry_mcap, res, tx.
Rule: fee 100, mc_first<200k, res300>=14, buys300>=150. Replay over v3live (4-11 Oct) gives 27 picks = matches analyst1's 27. Backfilled history is in the file (emitted_t late for those); live lag = early.jsonl lag (~3-5 s) + entry print.
Query: grep '"pick":true' v3pick.jsonl ; entries: grep '"kind":"entry"'.
Assumed: rule thresholds as in a1-1463.md; entry price = mcap of the first print at/after +300s (no slippage/fees).
