Files
last30days-skill/docs/plans/2026-02-07-fix-citation-source-priority-plan.md
T
Matt Van Horn 9da95019e6 Elevate Reddit/X citations over web sources in output
- Add citation priority rule: @handles > r/subreddits > web sources
- Fix examples: "per @honest30bgfan_" instead of "per Rolling Stone"
- Add "lead with people, not publications" instruction
- Stats box: web now shows "(supplementary)" instead of domain list
- No changes to actual research — same quality, better attribution framing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 09:22:07 -08:00

4.0 KiB

title, type, date
title type date
fix: Citation source priority — elevate Reddit/X, tone down web credit fix 2026-02-07

fix: Citation source priority — elevate Reddit/X, tone down web credit

Problem

The tool's magic is Reddit + X research with real engagement data, but the output makes it look like a web search wrapper. In the Kanye West test, 5/5 inline citations credited web sources (Rolling Stone, Billboard, etc.) while X's 29 posts got one vague mention. Users see a wall of "per Rolling Stone" and think "I could have Googled this."

Root causes in SKILL.md:

  1. The GOOD citation example is "per Rolling Stone" — a web source! This models the wrong behavior.
  2. No explicit "prefer @handles and r/subreddits" citation priority rule
  3. The stats box shows 🌐 Web: 30+ pages which visually dominates
  4. The "What I learned" section has no instruction to lead with Reddit/X voices

Proposed Solution — 4 SKILL.md changes

Change 1: Add explicit citation priority rule

In the CITATION RULE section (~line 195), add a priority order:

CITATION PRIORITY (most to least preferred):
1. @handles from X — "per @handle" (these prove the tool's unique value)
2. r/subreddits from Reddit — "per r/subreddit"
3. Web sources — ONLY when Reddit/X don't cover that specific fact

The tool's value is surfacing what PEOPLE are saying, not what journalists wrote.
When both a web article and an X post cover the same fact, cite the X post.

Change 2: Fix the GOOD/BAD citation examples

Current GOOD example teaches web citation:

GOOD: "His album BULLY is set for March 20 via Gamma, per Rolling Stone."

Replace with Reddit/X-first examples:

BAD: "His album is set for March 20 (per Rolling Stone; Billboard; Complex)."
GOOD: "His album BULLY drops March 20 — fans on X are split on the tracklist, per @honest30bgfan_"
GOOD: "Ye's apology got massive traction on r/hiphopheads with 2K+ upvotes"
OK (web only when needed): "The Hellwatt Festival runs July 4-18 at RCF Arena, per Billboard"

Change 3: Reframe stats box — downplay web prominence

Current template gives web equal billing:

├─ 🌐 Web: {N} pages │ {domain1}, {domain2}, {domain3}

Change to something that positions web as supplementary:

├─ 🌐 Web: {N} pages (supplementary)

Remove the domain list from the stats tree — it makes web look like the main source. The domains already got credit in any inline citations where they were used.

Change 4: Add "lead with voices" instruction in synthesis

In the "What I learned" template section, add:

**Lead with people, not publications.** Start each topic with what Reddit/X
users are saying/feeling, then add web context if needed. The user came here
for the conversation, not the press release.

Files to Change

  • SKILL.md — 4 edits (citation priority, examples, stats template, synthesis instruction)

Acceptance Criteria

  • Citation examples model @handle and r/subreddit format, not web domains
  • Explicit priority rule: X > Reddit > Web for citations
  • Stats box positions web as "supplementary"
  • Synthesis instructions say to lead with people/voices
  • No changes to the Python script or actual research quality
  • Synced to ~/.claude/skills/last30days/SKILL.md

What This Does NOT Change

  • The actual research still runs Reddit + X + WebSearch in parallel
  • WebSearch results still inform the synthesis (they're great for facts)
  • The quality of the output stays the same — this is purely about attribution framing
  • The Judge Agent still weights Reddit/X higher internally

Why This Works

It's a presentation fix, not a data fix. The research already prioritizes Reddit/X internally (Judge Agent rules). The problem is the citation instructions then undo that by modeling web citations. By flipping the citation examples and adding a priority rule, the agent will naturally attribute facts to @handles and r/subreddits first, making the output feel like "I talked to the internet for you" rather than "I Googled this for you."