Cybersecurity-Projects/PROJECTS/intermediate/security-news-scraper
CarterPerez-dev d57bcc15b6 feat(nadezhda): M6 AI ideation layer (ideate + TUI i-key)
Add an opt-in ideation layer that turns ranked story clusters into content angles. A Provider interface backs four models: qwen (default, local Ollama), OpenAI, and Gemini share one OpenAI-compatible client; an Anthropic Messages client is written against raw net/http (no vendor SDK, uniform + dep-light). Results persist in ai_notes with a UNIQUE(cluster_id, provider) index (migration 0003), so re-ideation upserts in place.

The ideate command skips any (cluster, provider) that already has a note unless --force is passed; benign classifier refusals get their own counter and never fail the run. In the TUI, i ideates the selected cluster inline and renders an AI IDEAS section in the dossier; it is a no-op unless AI is enabled and only acts in the detail view.
2026-07-06 21:26:52 -04:00
..
cmd/nadezhda feat(nadezhda): M6 AI ideation layer (ideate + TUI i-key) 2026-07-06 21:26:52 -04:00
internal feat(nadezhda): M6 AI ideation layer (ideate + TUI i-key) 2026-07-06 21:26:52 -04:00
testdata feat(nadezhda): keyless CVE enrichment, folded into scrape, news-first ranking 2026-07-06 01:44:53 -04:00
.gitignore feat(nadezhda): M0 scaffold for security news + CVE aggregator 2026-07-05 13:22:08 -04:00
README.md feat(nadezhda): M0 scaffold for security news + CVE aggregator 2026-07-05 13:22:08 -04:00
go.mod feat(nadezhda): AI setup wizard (nadezhda ai) + credential store + Ollama port fix 2026-07-06 21:26:10 -04:00
go.sum feat(nadezhda): AI setup wizard (nadezhda ai) + credential store + Ollama port fix 2026-07-06 21:26:10 -04:00
justfile feat(nadezhda): AI setup wizard (nadezhda ai) + credential store + Ollama port fix 2026-07-06 21:26:10 -04:00

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.