linkedin-studio/references
Kjell Tore Guttormsen b89868e3b1 feat(linkedin-studio): research-engine config layer — sources + scoring modes + MCP profile (§5 slice 2a) [skip-docs]
Declaration/config groundwork that slice 2b's trend-spotter upgrade reads.
Standalone (no agent wiring yet — that's 2b), mirroring slice 1's pattern;
[skip-docs] for the same reason slice 1 was — user-facing docs land when 2b
wires the engine live.

- references/trend-scoring-modes.md: methodology SSOT for two rubrics —
  kortform (feed post, timing 20%) + long-form (chronicle, depth 25% / timing 10%,
  per tema-research-motor-spec §4.2). Both sum to 100%. trend-spotter renders from
  this in 2b instead of inlining a matrix (S12-consistent).
- config/trends-sources.template.md: shipped generic source-list defaults →
  user override at ${LINKEDIN_STUDIO_DATA}/trends/sources.md (data-dir, survives
  reinstall; same template->data-dir pattern as user-profile).
- user-profile.template.md: new "Research Tooling" section — declared research MCPs
  (Tavily/Gemini/Perplexity/Other) + WebSearch/WebFetch floor. 2b routes MCP-first.
- setup.md Step 3f + onboarding.md Phase 2: ask "which research MCPs?" -> profile.
  Store only what the user declares; no hard-coded MCP names.
- test-runner.sh: EXPECT_REFS 26->27; generalized the M0 +1 delta-guard into a
  named-post-M0-additions guard (POSTM0_REFS) so a legit later ref doc passes while
  the anti-masking intent holds. Gate green 84/0/0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RBMKqPSVbvSZHtQ4heM1UY
2026-06-22 13:36:28 +02:00
..
ab-testing-framework.md refactor(linkedin-studio): S31a multiplier-scrub (reference-docs) — unsourced "Nx" reach/format multipliers -> SSOT 2026-06-20 09:29:25 +02:00
ai-content-framework.md refactor(linkedin-studio): S29e terminology-scrub — rename thought-leadership-angles.md -> content-angles.md + all pointers 2026-06-20 06:39:49 +02:00
algorithm-signals-reference.md fix(linkedin-studio): S29c terminology-scrub — "thought leadership" → neutral (references/) 2026-06-20 05:44:05 +02:00
analytics-tools-guide.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
articles-strategy-guide.md refactor(linkedin-studio): S31a multiplier-scrub (reference-docs) — unsourced "Nx" reach/format multipliers -> SSOT 2026-06-20 09:29:25 +02:00
collaborations-guide.md refactor(linkedin-studio): S31a multiplier-scrub (reference-docs) — unsourced "Nx" reach/format multipliers -> SSOT 2026-06-20 09:29:25 +02:00
content-angles.md refactor(linkedin-studio): S29e terminology-scrub — rename thought-leadership-angles.md -> content-angles.md + all pointers 2026-06-20 06:39:49 +02:00
data-path-convention.md docs(linkedin-studio): M0-14 — D3 path-convention + voice-readers prototype 2026-06-18 12:38:17 +02:00
engagement-frameworks.md refactor(linkedin-studio): S31c descriptive-%-scrub — platform-norm percentages asserted as fact -> SSOT 2026-06-20 09:54:44 +02:00
first-comment-strategy.md fix(linkedin-studio): S27 ref-consistency A — "penalty/penalizes" framing → SSOT 2026-06-19 22:06:39 +02:00
glossary.md refactor(linkedin-studio): S31c descriptive-%-scrub — platform-norm percentages asserted as fact -> SSOT 2026-06-20 09:54:44 +02:00
growth-roadmaps.md fix(linkedin-studio): S29c terminology-scrub — "thought leadership" → neutral (references/) 2026-06-20 05:44:05 +02:00
linkedin-formats.md refactor(linkedin-studio): S31c descriptive-%-scrub — platform-norm percentages asserted as fact -> SSOT 2026-06-20 09:54:44 +02:00
linkedin-growth-playbook-2025-2026.md refactor(linkedin-studio): S31c descriptive-%-scrub — platform-norm percentages asserted as fact -> SSOT 2026-06-20 09:54:44 +02:00
linkedin-monetization-strategies.md fix(linkedin-studio): S29c terminology-scrub — "thought leadership" → neutral (references/) 2026-06-20 05:44:05 +02:00
linkedin-visual-style.md fix(linkedin-studio): S29c terminology-scrub — "thought leadership" → neutral (references/) 2026-06-20 05:44:05 +02:00
longform-quality-rules.md feat(linkedin): v2.2.0 — harden longform gates from 2nd production run 2026-05-28 20:50:56 +02:00
low-frequency-posting-strategy.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
newsletter-strategy-guide.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
opportunity-generation.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
poll-strategy-guide.md refactor(linkedin-studio): S31a multiplier-scrub (reference-docs) — unsourced "Nx" reach/format multipliers -> SSOT 2026-06-20 09:29:25 +02:00
scheduling-strategy.md fix(linkedin-studio): S29c terminology-scrub — "thought leadership" → neutral (references/) 2026-06-20 05:44:05 +02:00
trajectory-strategy-adjustments.md refactor(linkedin-studio): S31c descriptive-%-scrub — platform-norm percentages asserted as fact -> SSOT 2026-06-20 09:54:44 +02:00
trend-scoring-modes.md feat(linkedin-studio): research-engine config layer — sources + scoring modes + MCP profile (§5 slice 2a) [skip-docs] 2026-06-22 13:36:28 +02:00
troubleshooting-guide.md refactor(linkedin-studio): S31c descriptive-%-scrub — platform-norm percentages asserted as fact -> SSOT 2026-06-20 09:54:44 +02:00
url-processing-templates.md fix(linkedin-studio): S27 ref-consistency A — "penalty/penalizes" framing → SSOT 2026-06-19 22:06:39 +02:00
video-strategy-guide.md refactor(linkedin-studio): S31c descriptive-%-scrub — platform-norm percentages asserted as fact -> SSOT 2026-06-20 09:54:44 +02:00