File size: 679 Bytes
20f83d9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
 * Classify a story as non-event brief content vs hard news. The legacy
 * `isOpinion` stamp includes opinion/analysis and historical explainers;
 * the classifier is shared by the ingest path (list-feed-digest.ts) and
 * the read path (buildDigest). Uses title, link (URL), and description.
 * See docs/plans/2026-05-14-001-…-plan.md (F3, Phase 3).
 *
 * @param story - { title, link, description, publishedAt } — any may be missing.
 * @returns true = opinion/analysis or historical explainer (exclude from
 *   the brief).
 */
export function classifyOpinion(story: {
  title?: unknown;
  link?: unknown;
  description?: unknown;
  publishedAt?: unknown;
}): boolean;