linkedin-studio/config/trends-sources.template.md
Kjell Tore Guttormsen 9de38c4939 feat(linkedin-studio): N7.5 — MR-F9 etterspørsels-sveip (Tier-5-kilder + smertepunkt + vokabular-oversettelse + arc-kontrakt) [skip-docs]
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
2026-07-23 22:26:39 +02:00

4.4 KiB
Raw Blame History

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 2448h)

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 23×/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 14 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.