Files
dotfiles/common/claude/memory/-home-connor-projects-news/news-rewrite-status.md
T
2026-10-22 09:21:28 -04:00

1.6 KiB

name, description, metadata
name description metadata
news-rewrite-status State of the news aggregator rewrite - old system still running, new one at ~/projects/news, design rationale lives in profile/CALIBRATION.md
type
project

Two systems exist. news_triage (Rust, v0.2, container connor_news-backend_1, config ~/config/news/config.toml) is still running in production and serving Connor's notifications. ~/projects/news is the greenfield Python rewrite, started 2026-09-08. Keep the old one running until cutover; Connor chose no data import into the new schema.

The rewrite exists because signal quality failed, and the root cause was that the old system had no representation of taste — three keywords fed to BM25 plus a two-term substring blocklist. The fix is embeddings: interests, vetoes, and importance categories written as prose in profile/profile.toml, embedded on CPU with bge-small-en-v1.5.

Before changing any scoring constant, read profile/CALIBRATION.md in that repo. The constants were fitted against 3,885 real items and 40 real feedback labels, and two of the findings are counterintuitive enough to be re-derived wrongly: blocks must be compared by z-score within block (raw cosine gave geopolitics 78% of all items), and veto must be a margin over the interest signal rather than a similarity threshold (a plain cutoff killed a Middle East story about a mayor barring an Israeli football club).

Phases 0 and 1 are done. Phase 2 onward (ingest/embed/cluster, then scoring, delivery, web UI) is not built. Plan file: ~/.claude/plans/alright-so-i-d-like-tranquil-sunset.md.

Related: news-triage-v02-gotchas