ktg-plugin-marketplace/plugins/linkedin-studio/docs/brief-fullspektrum-innholdsmotor.md
Kjell Tore Guttormsen b6bb61246b refactor(linkedin)!: rename plugin linkedin-thought-leadership → linkedin-studio (v3.0.0)
BREAKING CHANGE: the marketplace slug, the agent namespace
(linkedin-studio:<agent>), and the runtime state-file path
(~/.claude/linkedin-studio.local.md) all change. Reinstall required;
existing state migrated in place (post metrics, streak, history preserved).
The /linkedin:* commands are unchanged — the command namespace is set
per-command in frontmatter and was always independent of the plugin slug.
Functionality is byte-identical to v2.4.0; this release is pure identity.

- dir + manifests: plugins/linkedin-studio + plugin.json + root marketplace.json
- agent namespace updated in commands/newsletter.md (only functional invoker)
- state path updated in 4 hook scripts + topic-rotation prompt + state template
- catch-all skill dir renamed skills/linkedin-studio (5 functional skills unchanged)
- docs + version bump to 3.0.0 across README badge, CHANGELOG, root README/CLAUDE.md
- historical records (CHANGELOG past entries, docs/ build artifacts,
  config-audit v5.0.0 snapshots) intentionally retain the old slug

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 11:32:02 +02:00

160 lines
8.7 KiB
Markdown

# Brief — LTL som fullspektrum LinkedIn-innholdsmotor (idé → publisering)
> **Til:** linkedin-studio-pluginens utviklingsrepo.
> **Skrevet:** 2026-05-26, etter produksjon av den første kronikkserien (Seres-serien, 6 deler).
> **Type:** retningsbrief — beslutningsgrunnlag før planlegging/bygging. Selvstendig (kan leses uten annen kontekst).
---
## 1. Hva vi skal oppnå
Løft LTL fra en kortform-fokusert plugin til **den komplette motoren for ALT LinkedIn-innhold,
fra idé til publisering** — inkludert **nyhetsbrev/langform**, som i dag er pluginens svakeste område.
Én plugin skal eie hele kjeden: **idé → research → utkast → faktasjekk → review → hook/distribusjon →
planlegging → publisering → analyse** — for alle formater: posts, carousels, reaksjoner, video, og
**nyhetsbrev-editions**.
Begrunnelsen: scopet er LinkedIn. Da hører nyhetsbrev hjemme i LTL (det ER et LinkedIn-native format),
sømmene mot en separat plugin koster mer enn de gir, og brukeren bruker uansett LTL for alt LinkedIn.
---
## 2. Kontekst: hvor dette innholdet lages
**`~/repos/maskinrommet`** er det private, lokale repoet der **ALT innhold produseres**. Der brukes
**LTL-pluginen til all innholdsproduksjon**. Arbeidsdelingen:
- **maskinrommet** = arbeidsbenken (innhold, serier, og en delt `tools/`-mappe med deterministiske
render-skript: `build-linkedin.mjs` → POST.html, `build-carousel.mjs`, `build-html.mjs` annoterbar
HTML, `build-pdf.mjs` avis-PDF).
- **LTL** = verktøyet/hjernen som driver produksjonen i det repoet.
- **dette LTL-repoet** = der selve plugin-utviklingen skjer. Erfaringene kommer fra maskinrommet;
endringene gjøres her.
Render-skriptene i `maskinrommet/tools/` er den mekaniske utføreren som LTL-pipelinen *kaller*.
«LTL eier prosessen» krever ikke at LTL *hoster* render-skriptet — se åpen beslutning C.
---
## 3. Live-status (baseline å bygge for)
Nyhetsbrevet **Maskinrommet** er etablert på LinkedIn:
- **Første post ute**, **30 abonnenter**, **6 nyhetsbrev i pipen** (Seres-serien, ferdig produsert).
- Publisering er manuell (LinkedIn har ingen API for newsletter/long-form), men kan native-planlegges.
Dette er en reell, kjørende kadens — ikke en hypotese. Forbedringene skal støtte å produsere de neste
seriene raskere og med samme kvalitet.
---
## 4. Erfaringsgrunnlag: hva en kronikk faktisk krever
Seres-serien (6 kronikker, ~10 sesjoner) avdekket at langform-produksjon ikke er «skriving» — det er en
**research- og adversarial-review-pipeline**. Den faktiske flyten som ga kvalitet:
1. **Brief** — vinkel, tenkt stemme, målgruppe-personaer (med primær), nøkkelpoeng, tone, leder-takeaway.
2. **Research** — flere parallelle, avgrensede mandater → verifiserte notater.
3. **Faktasjekk-sweep** — risikosortert (🔴/🟡/🟢), parallelle WebSearch-agenter, «hver påstand skyldig
til motbevist». Fanget ~13 feil — flere som egne research-filer hadde bommet på.
4. **Skriving** — dramaturgisk rekkefølge, multi-sesjon med vedlikeholdt HANDOVER.
5. **Konsistens + kvalitet** — på tvers av tekstene (gjentakelser, tone, premiss→konklusjon-bue).
6. **Persona-/audience-sweep FØR lås** — 3 definerte leser-juryer leser read-only, primær trumfer.
(«Lander poenget?»). Kjørt til konvergens (LØST/DELVIS/IKKE per flagg).
7. **Hook-/konverterings-gate** — egen persona-gate på distribusjons-teksten: «ville DU klikket?»,
hold tilbake leveransen (tall/case/grep), ikke konklusjonen.
8. **Lås → leveranse** — POST.html «alt på ett sted» (dato, hook, hashtags, første kommentar,
cover-caption, brødtekst som rik tekst).
**De tre suksessfaktorene:** front-loadet kontekst, skreddersydd annoteringsverktøy, vedlikeholdt
single-source HANDOVER før hver kontekst-reset.
**Største prosessfeil å unngå:** persona-sweep ble kjørt ETTER lås → måtte åpne låste tekster. Den
generaliserte malen MÅ ha persona-sweep FØR lås.
---
## 5. Byggeprinsipp: løft Voyage-mønstrene, ikke fork dem
Denne pipelinen mapper nesten 1:1 på **Voyage**-pluginen (trekbrief → trekresearch → trekplan →
trekexecute → trekreview, med parallelle agenter + adversarielle reviewere + multi-sesjon).
**Men IKKE fork Voyage og IKKE reimplementer den blindt.** Voyage er kode-spesifikk (`file:line`,
kode-reviewere, RULE_CATALOGUE). Løft i stedet **mønstrene** inn i LTL som et nytt **langform-/
nyhetsbrev-spor** ved siden av de eksisterende kortform-kommandoene:
- faset pipeline med parallelle research-agenter
- faktasjekk-sweep som eget steg
- multi-persona adversarial jury (leser-personaer erstatter kode-reviewere; primær trumfer)
- multi-sesjons-kontinuitet (HANDOVER-mønster)
**Delte agenter, variabel intensitet:** research- og faktasjekk-agentene skal kunne kalles på *lav*
intensitet fra en kortform-post som siterer ett tall, og *full* sweep fra et nyhetsbrev. Voice og
hook-gate deles på tvers — aldri to systemer.
Voyage er **referanse/inspirasjon**, ikke en avhengighet å vedlikeholde.
---
## 6. Hva LTL allerede har (ikke bygg på nytt)
- Skrive-workflows for kortform: `/linkedin:post` (vinkel→draft→kvalitet→refinement),
`/linkedin:pipeline` (idé→draft→optimer→planlegg→engasjer→publiser→analyse), `batch`, `react`,
`quick`, `carousel`, `video`, `templates`.
- Voice-system (`config/user-profile.local.md`, voice-samples, voice-trainer-agent).
- Hook-/optimaliserings-støtte (content-optimizer, differentiation-checker).
- Planlegging/sporing/analyse (`calendar`, `publish`, `import`, `report`; queue.json; state-fil).
- 16 agenter, fler-stegs-kommandoer, REMEMBER-kontinuitet — arkitekturen *kan* være vert for et tyngre
pipeline-spor.
---
## 7. Gapet å fylle (LTLs svake punkt = langform/nyhetsbrev)
1. **Langform-/nyhetsbrev-pipeline** som eget kommandospor (idé→publisering for editions, ikke bare posts).
2. **Research-orkestrering** — parallelle mandater, verifiserte notater.
3. **Faktasjekk-sweep** — risikosortert, kildekritisk, verifiseringslogg, «skyldig til motbevist».
4. **Multi-persona adversarial review FØR lås** — konfigurerbare leser-juryer, primær trumfer,
konvergens-loop til rent JA.
5. **Multi-sesjons-kontinuitet** — HANDOVER-mønster for produksjon som spenner flere økter.
6. **Nyhetsbrev-leveranse** — edition-format (POST.html-stil «alt på ett sted»), delingstekst-system,
ferskvare-flagg for tidssensitive tall, native planlegging.
7. **Annoteringssteg** — integrer annoterbar review-HTML i flyten (render bor i maskinrommet/tools).
---
## 8. Åpne beslutninger (landes før bygging i dette repoet)
- **A. Pipeline som nye kommandoer vs. utvidelse av `pipeline`.** Eget `/linkedin:longform`/`:newsletter`-
spor, eller utvid eksisterende `pipeline` med en «long-form»-modus?
- **B. Agent-deling.** Bygges research/faktasjekk/persona-jury som nye delte agenter brukt på variabel
intensitet av både kort- og langform? (Anbefalt.)
- **C. Render-eierskap.** Forblir `build-linkedin.mjs`/`build-carousel.mjs` i `maskinrommet/tools/`
(LTL kaller dem), eller flyttes LinkedIn-render inn i pluginen? (Anbefalt: bli i tools/ — render-familien
deler fonts/identitet; pluginen holdes lean.)
- **D. Personasett.** Defineres leser-personaene per prosjekt (fra målgruppen) eller som gjenbrukbare
profiler i config?
- **E. Faktasjekk-omfang.** Eget steg, eller integrert i research + review?
---
## 8b. Merknad: brukeren trenger onboarding i pluginen
Brukeren kjenner ikke pluginen sin godt ennå og vil «ta ut potensialet». Tilby tidlig i
LTL-sesjonen: **`/linkedin`** (oversikt over alle kommandoer) + **`/linkedin:setup`**
(personaliserings-score + fyll inn voice-samples/case/rammeverk/demografi/profil). Personalisering
er nøkkelen — voice-matching, differensiering og hook-gate avhenger av ekte innmatede data.
## 9. Referanser (i `~/repos/maskinrommet` og memory)
- **Plan (supersedes-kandidat):** `~/repos/maskinrommet/planer/2026-05-26-kronikk-voyage-companion.md`
— skrevet før denne retningen (foreslo separat companion). Behold som historikk; *denne briefen* er
gjeldende retning.
- **Erfaringskatalog:** produsert i sesjon 2026-05-26 (16 prosessfaser, suksessfaktorer, friksjon, verktøy).
- **HANDOVER:** `~/repos/maskinrommet/serier/silvija-seres-motsvar/HANDOVER.md` (§3 leveranse, §4 regler, §5 metode).
- **Memory (`~/.claude/projects/-Users-ktg-repos-svv/memory/`):**
`project_kronikk_produksjonsprosess.md` (Voyage-mapping, persona-sweep-FØR-lås, kalibrering),
`project_maskinrommet_newsletter.md`, `project_kronikk_faktasjekk_sweep.md`,
`feedback_dokumentprosjekt_suksessfaktorer.md`, `feedback_hook_post_persona_gate.md`,
`feedback_persona_audience_sweep.md`, `feedback_use_linkedin_plugin.md`,
`feedback_post_html_single_sheet.md`.