This is a security-news tool; CVE enrichment is optional garnish, never a setup tax. Drop the NVD API key from the default path entirely. - internal/cve/cvelist: keyless CVE Program cvelistV5 client (raw GitHub, carries CISA-ADP / vulnrichment CVSS). Parses cna and adp metrics with version precedence v4.0 > v3.1 > v3.0 > v2.0, plus CWE and description; 404 maps to not-found; v2 severity is capped at HIGH. Introduces a neutral CoreResult and a CVESource interface (NVDResult renamed to CoreResult; NVDClient still satisfies it). - enrich: Clients.Core is the CVESource. buildCoreSource picks the keyless cvelist client by default and NVD only when NVD_API_KEY is set (booster). - scrape auto-enriches referenced CVEs best-effort after clustering (time-bounded, non-fatal, --no-enrich to skip); enrich kept as an optional manual refresh. Default flow is scrape -> tui. - ranking default weights rebalanced news-first (recency / velocity / source / keyword 70 percent, cvss / kev / epss 30 percent; was 55 percent CVE). - KAT fixture testdata/cvelist/CVE-2021-44228.json. |
||
|---|---|---|
| .. | ||
| cmd/nadezhda | ||
| internal | ||
| testdata | ||
| .gitignore | ||
| README.md | ||
| go.mod | ||
| go.sum | ||
| justfile | ||
README.md
Nadezhda
A concurrent security-news and CVE aggregation engine, written in Go.
Nadezhda ingests cybersecurity news from reliable RSS feeds, enriches every referenced CVE with authoritative exploit intelligence (NVD, CISA KEV, FIRST EPSS), clusters the same story across outlets, ranks items by real-world significance, and surfaces content angles. It ships as a single static binary with a local SQLite store, a colorful terminal UI, and Markdown/JSON export.
Status
Early development. The scaffold is in place: configuration, source registry, SQLite store with forward-only migrations, and the command skeleton.
nadezhda version # print version
nadezhda sources # list configured feeds and persist them to the store
Ingestion, CVE enrichment, ranking, the TUI, and the AI ideation layer land in subsequent milestones.
Build
just build # -> ./nadezhda
just test
Requires Go 1.25+.
Full documentation lands in learn/ as the project matures.