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

89 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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:
```bash
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](../references/content-angles.md) and the scoring rubric
in [trend-scoring-modes.md](../references/trend-scoring-modes.md) decide what to DO with a
candidate once a poll surfaces it. This file only decides WHERE to look.*