Skip to content

feat: cluster related stories before AI briefing generation #56

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions