I am super delayed on this post. I'm making this today because I finally got my skill library together and now I'm ready to move on to day four but before I do I want to share a couple of things with the community and show you what I created.
Skill 1: /morning-prep
Pulls pre-market gappers (≥10% gap, price >$1) from Finviz Elite every morning at 8 AM before the market opens. Enriches each ticker with float, short float %, ATR(14), and relative volume — all from Finviz, no yfinance. Checks SEC EDGAR for dilution filings in the last 30 days (S-3, S-1, 424B). Grabs the top 3 news headlines per ticker. Then sends me a ranked HTML leaderboard email with two sections:
- Priority Watchlist — long setups scored on catalyst, gap %, RVOL, and ATR
- Short Watch — dilution tickers flagged in red, sorted by gap size (biggest gap = best short candidate)
I type /morning-prep and it either sets up the scheduler or fires it on demand. Runs every weekday automatically via Windows Task Scheduler, wakes the machine if needed.
Skill 2: /gapper-tracker
This one's building a statistical database to prove or disprove the Day 2 short edge — the idea that 67.7%(small sample)*not investment advice* of gap-up stocks close lower on Day 2 than Day 1. Every afternoon at 4:30 PM it logs intraday data from that day's gappers into a CSV with 30+ columns: open, high, low, close, gap fill %, range %, time of HOD, catalyst, pre-market VWAP, the works.
The tricky part was multi-day staging. A ticker that gapped today needs Day 2 close filled tomorrow, and Day 3 close the day after — without creating duplicate rows. Built a JSON staging file to track which tickers are waiting on which day's data. When D3 is filled it writes the final row and removes it from staging.
One optimization I made:
On the morning-prep script, I was originally making individual API calls per ticker to pull enrichment data. Watched the agent work and saw it hitting rate limits constantly. Switched to Finviz batch calls — two requests cover all 15 tickers at once (one for ownership data, one for technicals). Went from 15+ calls and timeouts to 2 clean calls. That one change made the whole thing reliable.
Both skills are ~50–100 lines of markdown each. The real work is in the Python scripts they wire together.