The «innenfra og ut» demand-sweep: the mechanism that FILLS the N6 reader fields (readerQuestion/painPoint/saturation). Discovery finds "what happened"; this layer translates it into "the problem the reader is stuck on". - demand-spotter agent (agents 19->20, inherits session): three passes after discovery, before drafting — demand-sweep -> pain-point map -> vocabulary translation. - Tier 5 demand sources in config/trends-sources.template.md (inverse of Tier 1-4; honest blind spots: YouTube API, Reddit approximate, HN/GitHub ground truth). - demand signal on TrendRecord (strength + answered) — rankable twin of the verbatim saturation text; additive-optional, store schema stays v4 (no migration). - arc.ts (§4 output contract): groupIntoArcs (relatedIds transitive closure), rankArcQuestions (etterspørsel x kan-svare x ikke-besvart), classifyMarketGap (supply-gap != demand-gap != saturated). Pure + deterministic (TDD). - arcs CLI verb + /linkedin:trends --demand mode (commands stay 30); morning brief shows the per-candidate demand signal. Suites: trends 276->300, test-runner 139->140, tsc clean. Others unchanged (brain 134, hooks 140, tests 35, render 60). MR-F9 built (bygget-men-ubevist) — the (a)/(b)/(c) evidence gate is a runtime demonstration, proven consumer-side (plugin agents don't resolve in the dev repo). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014bE7VbkmR3cqHFEeGfzgwb
4.4 KiB
Trend Sources (template)
The source list a research-engine pass polls for trend/topic candidates. This file ships generic, niche-agnostic defaults (source categories, not one person's beat). Override it with your own list — the niche specifics (your vendors, your regulators, your country's outlets) belong in the override, never here.
How the override works
Copy this template into your per-user data dir and edit the copy:
mkdir -p "${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/trends"
cp config/trends-sources.template.md \
"${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/trends/sources.md"
A pass reads ${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/trends/sources.md
if it exists, and falls back to these shipped defaults otherwise. The override lives in the
data dir (next to the trend store trends/trends.json), so it survives plugin
upgrades and reinstalls. LINKEDIN_STUDIO_DATA overrides the root.
Format below is read by a person and an agent both: a markdown list, one source per line,
grouped by tier. Keep Name — URL — note so a poll can cite the URL.
Tier 1 — Primary / breaking (poll daily, react within 24–48h)
First-party announcements and authoritative decisions in your field.
- [Major vendor blog] — [url] — releases & announcements
- [Major vendor blog] — [url] — releases & announcements
- [Regulator / governing body] — [url] — decisions & guidance
Tier 2 — Analysis & research (poll 2–3×/week, post within a week)
Where a development gets interpreted, not just reported.
- [Respected analysis publication] — [url]
- [Analyst house report stream] — [url] — adoption / market reports
- [Research index] — [url] — preprints / papers in your area
Tier 3 — Community signals (poll weekly, post if a pattern emerges)
Where practitioners surface what actually matters before the press does.
- [Practitioner forum / aggregator] — [url]
- [Topic-specific community] — [url]
- [Platform-native trending] — [url]
Tier 4 — Niche & seasonal (poll monthly, plan ahead)
Slower-moving sources with predictable cadence.
- [Key conference series] — [url] — announcement / agenda cycles
- [Earnings / report calendar] — [url] — scheduled releases
- Seasonal themes: [Q1 …] · [Q2 …] · [Q3 …] · [Q4 …]
Tier 5 — Demand signals (where the questions live) — the demand-sweep polls these
Tier 1–4 are SUPPLY sources — they tell you what was announced. Tier 5 is the inverse: where
your audience already asks. The demand-spotter agent («innenfra og ut») polls these to turn a
topic into the reader's own question, its pain point, and an honest saturation verdict. Ground truth
first (HN + GitHub APIs are exact); forums are approximate; some channels need an API (see the notes).
- [Practitioner forums / communities] — [url] — where people ask (Reddit, HN, product forums, Discord/Slack where reachable). Reddit blocks direct fetch → counts are approximate; HN via the Algolia API is exact.
- [GitHub issues on the spec/tool repos] — [url] — undervalued gold: real questions from the people building, with names + comment counts as signal strength (GitHub API = ground truth)
- [Procurement data] — [url] — the hardest demand indicator there is: someone has a budget and wrote the need down (e.g. a national tender portal / TED-equivalent for your market)
- [Regulator / supervisory guidance] — [url] — what your reader is required to take a position on (non-optional demand)
- [Comment fields on your channels] — [url] — NB: YouTube/video comments are JS-rendered → need an API key; the largest blind spot. Specify the fetch method or mark the channel explicitly un-swept — an honest null is a finding.
Your niche additions
Add the sources specific to your field below — these are the ones the generic defaults above cannot know. (Example shape for a Norwegian public-sector / AI niche: national digitalisation agency, data-protection authority, the relevant ministries, the local tech press — replace with yours.)
- [Your source] — [url] — [why it matters to your audience]
- [Your source] — [url] — [why it matters to your audience]
Tip: the 8 universal angles and the scoring rubric in trend-scoring-modes.md decide what to DO with a candidate once a poll surfaces it. This file only decides WHERE to look.