Discovery engine
For a domain: robots.txt (Sitemap: lines, image/video sitemaps skipped, news first, ≤ 8), homepage
<link rel="alternate"> feeds and links to status.*/*.statuspage.io, well-known feed paths (/feed,
/rss.xml, /atom.xml, /changelog/feed, /releases.atom…), well-known sitemap paths, and (if pages)
HEAD probes of /changelog, /news, /pricing, /security… Every candidate is fetched and parsed; only
parseable feeds/sitemaps/statuspages are stored in discovery_candidates and promoted (≤ 3 feeds, 1 sitemap,
1 statuspage, pricing/changelog/security pages) according to the source's discover flags. Re-run every
WS_DISCOVERY_INTERVAL_DAYS (7). CLI: cli.ts probe <domain> (dry run), cli.ts discover [sourceId…].