Aggregate summaries sometimes describe the article instead of summarising it #70
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Reference
marvin8/yunjin#70
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Some aggregate summaries contain lines that describe what kind of article it is rather than what it actually says, e.g.:
Statements like this are unhelpful. The aggregate title and summary are where I go to find out what the article is about — a line that classifies or characterises the article instead of summarising its content tells me nothing I would not learn within seconds of reading it anyway.
Summaries should stick to what the article(s) actually say: no commentary on the genre, type, or newsworthiness of the piece, and no statements about what it is or is not coverage of. Just the actual summary.
Findings (prod DB copy + source, 2026-10-07)
Where the text comes from
aggregates.summaryis written by the grouping LLM call inservices/llm_aggregator.py(name\n\n{topic.summary}per topic).services/aggregate_summarizer.pyis not involved — it's a word-frequency/snippet extractor with no production callers (tests only — also a dead-code candidate). So this is a prompt problem, not a post-processing one.How prevalent
Across 898 prod aggregates:
(Patterns overlap; roughly a third of all aggregates carry some classification or commentary.)
Root cause
The system prompt asks each group for "an overview of 2-3 paragraphs that condenses and paraphrases the group's articles together: what happened, the key facts, and any context or differing angles across sources."
But ~80% of aggregates hold exactly one article. With nothing to condense "together", the model fills its paragraph quota with classification and grouping rationale — the two failure modes in the issue:
The "2–3 paragraphs" instruction plus the singleton-dominated group population is a padding machine.
Plan of attack (for discussion — nothing implemented)
refreshwould clear them all immediately (at a full re-cluster cost — interacts with the #71 consolidation work, so probably don't).Prompt-construction tests will need updating to assert the new instruction lines (recorded fixtures, no live calls).
Implementation plan (approved 2026-10-08)
Branch:
fix/issue-70-summary-promptCommits:
:white_check_mark:failing prompt-construction test asserting the summary instruction bans classification/grouping-rationale phrasing and mandates adaptive length:bug:rewrite the overview rule in the aggregation system promptPrompt changes (all in
_SYSTEM_PROMPT,services/llm_aggregator.py):Sequencing: lands before the #71 rework so that branch builds on the final prompt wording. Tests use recorded fixtures only; no live LLM calls.