insider-firehose — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited insider-firehose (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Pulls the SEC EDGAR Form 4 "current filings" atom feed and pushes a Telegram alert for every open-market purchase ≥ $200k by officers or directors.
v2.1 (May 2026): every alert now auto-enriches with a business one-liner, P/E + valuation block, 52W price context, and a 0-10 Smart Money Score. Toggle on/off any time via /enrich on or /enrich off in Telegram (or firehose_cli.py).
Tools like openinsider.com aggregate Form 4 filings but scrape on a 12-24 hour delay. This skill pulls directly from SEC EDGAR with a 2-5 minute delay — same authoritative source, 100-300x faster.
It also enforces the methodology rules from review-investment-screenshot/SKILL.md:
SEC EDGAR atom feed (every 30 min cron, weekdays 9 AM - 7:30 PM ET)
│
▼
form4_firehose.py
│ pulls feed, dedupes via form4_state.json
│ for each NEW filing: fetch raw XML, parse <nonDerivativeTransaction>
│ filter: code == "P", value ≥ $200k, role != pure 10% holder
│
├──► enrichment/ (v2.1, on by default)
│ pull yfinance: valuation + 52W price + business one-liner
│ compute 0-10 Smart Money Score from role + value + valuation + price
│ (non-fatal — if yfinance fails, falls back to basic v2.0 alert)
▼
Telegram bot ($TELEGRAM_BOT_TOKEN)
│
▼
🚨🟢 INSIDER BUY — $X.XM
$TICKER (Company) — Owner (Officer/Director/Title)
N,NNN shares @ $X.XX · [SEC EDGAR ›]
🏢 _One-line business description_ · Sector
📈 Valuation: Cap · P/E · Net cash · Div yield
📊 Price: Now · 1Y · 52W range · vs MAs
⭐ Smart Money Score: N/10 + triggered factorsState (which filings we've already alerted on) lives in scripts/form4_state.json and is auto-committed by the workflow back to the repo. Cap of 5000 entries (≈ 1 week of Form 4 volume).
User preference (enrichment on/off) lives in enrichment_config.json at the firehose root. Telegram /enrich commands edit this file via the same GitHub API path as alerts.json.
scripts/form4_firehose.py — core script: fetch + parse + filter + (enrich) + sendscripts/firehose_cli.py — CLI for toggling enrichment on/off + statusscripts/enrichment/ — Tier-2 augmentation package (v2.1)pipeline.py — entry point enrich(ticker, filing, total) + on/off resolvervaluation.py — P/E, market cap, net cash, dividend yield (via yfinance)price_action.py — 50DMA / 200DMA / 52W contextcompany_info.py — one-line business descriptionscore.py — 0-10 Smart Money Score (role + value + valuation + price)format.py — assembles enriched Telegram Markdown messagescripts/form4_state.json — accession-number ledger (auto-managed)enrichment_config.json — user-managed on/off flag (default enabled: true).github/workflows/insider-firehose.yml — cron + state commit + yfinance install| Input | Default | Use |
|---|---|---|
min_value | 200000 | Bump to 500000 or 1000000 if too noisy |
include_sells | false | true to also alert on sells ≥ 5x threshold |
test_mode | false | true prints to log instead of Telegram |
enrich (v2.1) | default | on / off override the config file for this single run |
Or run manually:
TEST_MODE=1 FORM4_MIN_VALUE=500000 python scripts/form4_firehose.py
ENRICH=0 python scripts/form4_firehose.py # force-disable enrichment
ENRICH=1 python scripts/form4_firehose.py # force-enable enrichmentEnrichment is on by default. Every alert includes a business one-liner, valuation block, 52W price context, and a 0-10 Smart Money Score.
Send any of these to your alert bot:
/enrich → shows current state
/enrich on → enable
/enrich off → disable
/enrich status → shows current stateChinese aliases also work: /enrich 开, /enrich 关, /enrich 状态.
The webhook commits the new state to enrichment_config.json via the GitHub API, and the next cron run picks it up.
python scripts/firehose_cli.py --status # show current state
python scripts/firehose_cli.py --enrich-on # enable
python scripts/firehose_cli.py --enrich-off # disable
# then: git add enrichment_config.json && git commit && git pushActions → Insider Firehose → Run workflow → enrich = off (just for this run, doesn't change the saved default).
This is what an alert looks like in v2.1 (MKTW · Frank Porter Stansberry's $974,582 director buy on 2026-05-11):
🚨🟢 INSIDER BUY — $974,582
Ticker: MKTW (MARKETWISE, INC.)
🪑 Stansberry Frank Porter
Dir, 10%
51,375 shares @ $18.97
(4 transactions same filing)
[SEC EDGAR ›]
🏢 MarketWise, Inc. operates a content and technology multi-brand platform
for self-directed investors. · Financial Services / Financial Data
📈 Valuation
Cap: $48M
P/E: 10.8 (fwd 90.3)
Net cash: $47M (99% of cap)
Div yield: 4.81%
Rev growth: -7.8% YoY
📊 Price
Now: $18.06
1Y: +18.3%
52W: +34% from low / -17% from high
vs MA: 50d +8.5% · 200d +9.9%
⭐ Smart Money Score: 4/10
✅ Cheap P/E (10.8)
✅ Net cash 99% of mcap
✅ Dividend 4.8%Compare to the v2.0 basic alert (above the 🏢 line). v2.1 keeps the basic block on top so existing eye-scanning habits still work — enrichment is additive.
A 0-10 score combining role + check size + valuation + price action. Designed to be interpretive, not prescriptive — high score ≠ automatic buy.
Score range:
Full rubric in scripts/enrichment/score.py. Tune freely to your conviction.
| Firehose (this) | openinsider.com | |
|---|---|---|
| Latency | 2-5 min from filing | 12-24 hours |
| Form 4 code filter | P only (true buy) | All codes shown |
| 10% holder vs officer | Officers prioritized | Mixed together |
| Threshold filter | Configurable USD | Manual UI sort |
| Notification | Telegram push | None (pull-only website) |
| Bilingual output | EN + CN role labels | EN only |
| Cost | $0 (free EDGAR + GH Actions) | Free (website) |
include_sells=true for unusual-sell alerts (≥ $1M).Real signals this script catches:
Real signals from the user's 2026-05-11 SEC EDGAR pull this skill would have alerted on:
Requires TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID in GitHub Secrets (same ones used by price-alert/). See SETUP.md for first-run checklist.
review-investment-screenshot/scripts/insider_ratio.py — per-ticker deep dive (when an alert fires, run this for full 90d context)analyze-stock — when alert + you don't recognize the ticker, this skill pulls fundamentals + macro contextmacro-warning — gate any conviction buy by current regime~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.