Skip to content

feat(regulatory): seed-regulatory-actions.mjs — RSS fetch + parse #2492

@koala73

Description

@koala73

Context

Part of the Regulatory RSS pipeline — a new signal source for seed-cross-source-signals.mjs that surfaces financial regulatory enforcement actions (SEC fraud charges, FDIC bank failures, CFTC manipulation findings) as market-moving intelligence signals.

This is task 1/4.

What to build

Create scripts/seed-regulatory-actions.mjs — the fetch and parse layer.

Feeds (5, all free, no auth)

Agency URL
SEC https://www.sec.gov/cgi-bin/browse-edgar?action=getcurrent&type=&dateb=&owner=include&count=40&output=atom
CFTC https://www.cftc.gov/rss/pressreleases.xml
Federal Reserve https://www.federalreserve.gov/feeds/press_all.xml
FDIC https://www.fdic.gov/news/rss.xml
FINRA https://www.finra.org/rules-guidance/rss

Requirements

  • Fetch all 5 feeds concurrently via Promise.allSettled with AbortSignal.timeout(15_000) per feed
  • Lightweight XML field extractor for <title>, <link>, <pubDate> / <updated> — no new npm deps, native string parsing only
  • Normalize to common item shape:
    { id: string, agency: string, title: string, link: string, publishedAt: string }
  • Dedup by link (same release can appear in multiple feeds)
  • Include User-Agent: CHROME_UA on all requests (pattern from _seed-utils.mjs)
  • Graceful degradation: a failed feed does not abort the run — Promise.allSettled handles this

Acceptance criteria

  • All 5 feeds fetched concurrently
  • Items normalized to consistent shape
  • Duplicates removed by link
  • Single failed feed does not crash the seeder
  • No new npm dependencies

Metadata

Metadata

Assignees

Labels

area: AI/intelAI analysis, intelligence findings, summarizationarea: feedsRSS feeds, news aggregationarea: marketsMarkets, commodities, crypto, financeenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions