Corporate actions scanner
Skill rgourley/quant-garage/skills/corporate-actions-scanner
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.From its SKILL.md
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.
SKILL.md
4.3 KB, ~1.0k tokens by cl100k_base, 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.
What ships with it: 4 files
9.1 KB alongside SKILL.md
references/
- rendering.md1.8 KB
- output-schema.json4.0 KB
- README.md2.3 KB
- requires.yml1.1 KB