Skip to content

feat: cluster related stories before AI briefing generation #56

@DevSecNinja

Description

@DevSecNinja

Why

Related articles about the same real-world story should usually become one synthesized briefing item with multiple sources, while unrelated items should remain separate.

Scope

  • Add deterministic pre-AI story grouping using source item metadata, normalized titles, links, keywords, and timing.
  • Feed grouped story context to the writer prompt so Copilot can synthesize one summary with multiple citations.
  • Keep separation rules for superficially similar but materially different stories.
  • Track grouped item IDs through scoring, prompt payloads, generated briefings, and seen-state behavior.
  • Add fixtures for duplicate, near-duplicate, and same-topic-but-different-story cases.

Acceptance criteria

  • Two sources covering the same story can render as one briefing card with both references.
  • Distinct stories are not collapsed just because they share keywords.
  • Existing scoring and source-diversity behavior remains deterministic.
  • Tests cover clustering and non-clustering examples.

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions