Corporate actions scanner
Skill rgourley/quant-garage/skills/corporate-actions-scanner
Analyst workflows as Claude skills. 62+ tools and 8 workflows spanning earnings, comps, valuation, options flow, factor research, sizing, risk, TCA, and ops. Built in the garage, not the trading floor.
npx -y skills add rgourley/quant-garage --skill corporate-actions-scannerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Scan for material 8-K corporate actions over a lookback window. For a ticker or watchlist, pulls SEC EDGAR 8-K filings, filters to material items (offerings, private placements, splits, spin-offs, buybacks, M&A, restatements), cross-references Massive news for the headline, and computes T+1 and T+5 price reactions. Complements news-scanner (general) and earnings-drilldown (item 2.02 only) by giving material corporate actions a dedicated surface. Use when running a portfolio review, sanity-checking why a name moved months ago, or asking "what happened to this stock?" that news-scanner's 24-hour default missed.
SKILL.md
4.3 KB, as published. Nobody here has run it
corporate-actions-scanner
You hand over a ticker or watchlist and a lookback window (default 180 days). The skill pulls every 8-K filing from SEC EDGAR in the window, classifies each into a materiality bucket, cross-references Massive news for the headline, and computes the T+1 and T+5 price reactions.
Motivated by a live portfolio review that missed an ALLO public offering (87.5M shares at $2, 34% dilution) because news-scanner defaulted to a 24-hour window and the offering was 78 days old. Nothing else in the toolkit surfaced it.
When to invoke
- The operator is running a portfolio review and wants retrospective corporate-action coverage across the book
- "Why did X move" for an unexplained gap that predates the news- scanner default window
- Pre-trade hygiene on a name: is there a pending offering, spin-off, or M&A announcement in the last quarter that changes the setup
- The user says "material events", "corporate actions", "8-K scan", "offerings", "buybacks", "M&A on my book"
What you need
MASSIVE_API_KEYfor news + reactions (Stocks Basic is sufficient)- SEC EDGAR is public and requires no key
What you get back
Layer 1 canonical JSON matching output-schema.json.
Per-event: filing date, 8-K items, materiality buckets, matched news
headline (when found), T+1 and T+5 close-to-close reactions.
Layer 2 rendered stream ranked by |T+5 reaction|. Header per event
with ticker + date + items + buckets, headline underneath when matched,
reaction line, optional URL to the source article. See
references/rendering.md.
How it works
- Fetch ticker metadata for the CIK (SEC EDGAR is CIK-indexed).
- Pull 8-K filings from
data.sec.gov/submissions/CIK{CIK}.json, filter to the lookback window, drop non-material items. - Fetch news window via
/v2/reference/newsfor the same window, used to cross-reference the 8-K with a headline. - Pull daily aggs covering the filing dates + a T+5 buffer.
- Match news to filing within +/- 2 days, preferring same-day and the article with the most flavor-keyword hits.
- Detect flavor (public_offering, atm_offering, private_placement, share_repurchase, special_dividend, stock_split, spin_off, acquisition_announcement, acquisition_target, restatement) via a curated keyword list in the news title + description.
- Compute T+1 and T+5 reactions close-to-close from the filing date.
- Dedupe filings with the same ticker, date, and item-bucket set (SEC sometimes emits duplicate 8-Ks for the same corporate action).
Item taxonomy
Material items surfaced by default (see ITEM_TAXONOMY in the
implementation): 1.01, 1.02, 1.03, 2.01, 2.03, 2.04, 2.05, 2.06, 3.01,
3.02, 3.03, 4.01, 4.02, 5.01, 5.03, 7.01, 8.01.
Excluded from default surface (routine 8-Ks that outnumber material
ones ~10:1): 2.02 (earnings — earnings-drilldown handles), 5.02
(officer/director change), 5.05 (ethics code), 5.07 (vote results),
5.08 (shareholder nomination). Pass material_only=False to include
these.
Endpoints used
GET https://data.sec.gov/submissions/CIK{CIK}.json(SEC EDGAR)GET /v2/reference/news?ticker={T}&published_utc.gte={from}(Massive)GET /v2/aggs/ticker/{T}/range/1/day/{from}/{to}(Massive)GET /v3/reference/tickers/{T}(Massive, for CIK)
Doesn't handle (yet)
- Match ambiguity on multi-hit windows. When multiple news articles hit within the +/- 2 day window and all contain flavor keywords, the match picks the closest by date. Rare but real.
- Private-placement lag. Some material actions surface in 8-K days or weeks after they happened; the tool reports the filing date, not the effective date.