ktg-plugin-marketplace/plugins/linkedin-studio/docs/voyage-build-brief.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

82 lines
7.2 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.

# Bygge-brief (Voyage-input) — LTL fullspektrum-innholdsmotor → v2.0.0
> **Formål:** Input til `/trekplan` (Voyage-pluginen). Dette er byggingen av LTL-pluginen, drevet som et Voyage-prosjekt: `/trekplan` produserer en kjørbar plan med per-steg Manifests, `/trekexecute --fg` + `/trekcontinue` driver sesjonene, `/trekreview` er release-gate.
> **Detaljert referanse:** [`plan-fullspektrum-innholdsmotor.md`](./plan-fullspektrum-innholdsmotor.md) (samme mappe) — den hardnede planen med §0 orientering, §4 renovering, §5 langform, §6 byggeklosser, §7 render, §10 DoD. **Les den; den er fasit for hva som skal bygges.**
> **Opprinnelig retningsbrief:** [`brief-fullspektrum-innholdsmotor.md`](./brief-fullspektrum-innholdsmotor.md).
---
## 1. Oppgave
Løft `linkedin-studio`-pluginen («LTL», v1.2.0) til **v2.0.0**: en fullspektrum-motor for ALT LinkedIn-innhold — fra kortform-post til nyhetsbrev-edition — samtidig som den totale kommando-/agent-overflaten **reduseres** gjennom konsolidering.
Tre arbeidskropper:
1. **Renovering** — konsolider reell redundans (27→~23 kommandoer, 16→~14 agenter). Plan §4.
2. **Langform-kapabilitet** — én ny kommando `/linkedin:newsletter` med faset, multi-sesjons pipeline (research → utkast → faktasjekk → persona-review FØR lås → leveranse → hook-gate). Plan §5§6.
3. **Render + annotering inn i pluginen** — flytt 4 render-skript + fonts; generaliser `build-linkedin`; generaliser `build-html` til artefakt-annoterings-renderer. Plan §7.
## 2. Orientering (kritisk — repoer og stier)
- **LTL-pluginen (bygg her):** `/Users/ktg/.claude/plugins/marketplaces/ktg-plugin-marketplace/plugins/linkedin-studio/`. Plugin-i-monorepo: steg-stier er relative til denne mappa (sett Execution Strategy `cwd:` deretter).
- **Marketplace-rot:** `/Users/ktg/.claude/plugins/marketplaces/ktg-plugin-marketplace/` (Forgejo, aldri GitHub).
- **maskinrommet (annet repo):** `/Users/ktg/repos/maskinrommet/` — render-skriptene kopieres HERFRA inn i pluginen. Skriving TIL maskinrommet krever eksplisitt instruks (cross-repo, eget spor).
- **Voyage:** `/Users/ktg/.claude/plugins/marketplaces/ktg-plugin-marketplace/plugins/voyage/` — harness for denne byggingen.
- **svv-memory (prosess-erfaring):** `/Users/ktg/.claude/projects/-Users-ktg-repos-svv/memory/`.
- **Seres-serien** (kilden til langform-prosessen): `/Users/ktg/repos/maskinrommet/serier/silvija-seres-motsvar/`.
Full ordliste (Seres, persona-sweep, hook-gate, faktasjekk «skyldig til motbevist», POST.html, Altinn-feilen, «største prosessfeil») står i **plan §0** — les den før planlegging.
## 3. Låste beslutninger (constraints — IKKE åpne for re-litigering)
- **A:** Én ny orkestrator-kommando `/linkedin:newsletter`, ikke en suite, ikke utvidelse av `pipeline`.
- **B:** Bare langform nå — eksisterende kortform-kommandoer røres ikke.
- **C:** Ship alle 4 render-skript + fonts i pluginen (`render/`); generaliser `build-linkedin`; maskinrommet blir konsument.
- **D:** Hybrid persona-bibliotek i `config/`, override per prosjekt; primær merkes.
- **E:** Faktasjekk er et eget steg.
- **F:** Konsolider redundans i samme runde (netto færre kommandoer/agenter).
- **G:** Edition-produksjons-state bor i serie-mappa (maskinrommet), ikke i plugin-state.
- **H:** `build-html` generaliseres til artefakt-annoterings-renderer (tabeller, alle overskrifter, inline-kode).
## 4. Forskning er allerede gjort (ikke gjenta fra null)
`/trekplan`-utforskningen kan være **bekreftende, ikke fra-scratch**. Følgende er ferdig kartlagt og frosset i planen:
- **Inventar-audit** av alle 27 kommandoer + 16 agenter (overlapp/redundans/langform-relevans) → plan §4, §6.
- **Render-kontraktene** (4 skript, cwd-modell, weasyprint-avhengighet, build-linkedin hardkoding) → plan §0.6, §7.
- **Prosess-erfaringen** (16 faser, persona-sweep-før-lås, faktasjekk-sweep) → plan §0.4, svv-memory.
- **Arkitektur-mønstre** i LTL (kommando-mal, agent-frontmatter, hook-kompilering, state-updater) → plan §3.
`/trekplan` bør verifisere disse mot faktiske filer der det er billig, ikke re-derivere.
## 5. Scope og fasing
Fire faser (plan §9.1). Kritisk sti = langform (fase 13); renovering (fase 4) kan følge etter.
- **Fase 1 — Fundament:** render-migrering + annoterings-generalisering + persona-bibliotek + `fact-checker` + `persona-reviewer` + edition-state-skjema; finansier de 2 nye agentene ved å avvikle `content-tracker` + `personalization-scorer`.
- **Fase 2 — Kapabilitet:** `commands/newsletter.md` (10 steg) + reconcile newsletter-sti ut av `multiplatform`.
- **Fase 3 — Dogfood:** produser en ekte edition ende-til-ende; fiks friksjon.
- **Fase 4 — Renovering:** templates→quick, publish→calendar, collab+speaking→outreach, authority→strategy, analytics/engagement-merge, router-gating → v2.0.0.
Sesjons-dekomponeringen S1S20 i plan §9.2 er forslag til Execution Strategy. Hver sesjon ≤ 35% kontekst.
**Utenfor scope:** variabel-intensitet-deling av agenter inn i kortform (utsatt, beslutning B); konsolidering utover §4; cross-repo-endringer i maskinrommet (eget spor, krever instruks).
## 6. Suksesskriterier (per-steg DoD → Manifests)
Plan §10 definerer DoD per sesjon. Oversett disse til Voyage per-steg **Manifests** (`expected_paths`, `min_file_count`, `must_contain`, `commit_message_pattern`, `forbidden_paths`):
- **Deterministisk** (Voyage `Verify:` + Manifest + Phase 7.5-audit): filer finnes, `ls | wc -l` stemmer, `node --test` grønt, `grep` gir forventet, render kjører fra serie-mappa, edition-config-bytte endrer output.
- **Kjent-svar-fixture** (skriv FØR implementasjon, jf. husregel «ingen produksjonskode uten feilende test først»): `fact-checker` mot 3 påstander (sann/falsk/uverifiserbar → 🟢/🔴/🟡); `persona-reviewer` mot test-tekst (≤5 flagg, 6 akser, INGEN omskrevet copy).
- **Subjektiv kvalitet — ALDRI selv-sertifisert.** Voice-match, om teksten «lander», prosakvalitet rutes til (a) gate-agent med eksplisitt verdikt (`persona-reviewer` rent JA fra primær; `voice-trainer`-bekreftelse) eller (b) operatør via annoterbar review-HTML. Et slikt steg er ikke «ferdig» på Claudes eget skjønn. (Voyage Phase 7.5-audit er sikkerhetsnettet mot hallusinert «ferdig».)
## 7. Ufravikelige regler
- **Modell:** Opus 4.7 på alt (Voyage `profile: premium`). Ikke degrader.
- **Kjøremodus:** `/trekexecute --fg` (sekvensielt, abonnement). IKKE parallell `claude -p` (API-billing). `/trekcontinue` per fersk sesjon.
- **Doc-plikt:** hver feature-endring som pushes oppdaterer plugin-README + plugin-CLAUDE + rot-README i samme commit.
- **Cross-repo:** ingen skriving til `/Users/ktg/repos/maskinrommet/` uten eksplisitt instruks.
- **Ingen push** uten eksplisitt instruks.
- **Hooks (bash 3.2 / Node):** alle nye hooks i Node `.mjs`; rediger `hooks/hooks.template.json` + `hooks/prompts/*.md` → kjør `python3 hooks/scripts/compile-hooks.py`.
- **Redaksjonell kvalitet på .md-prompter** (kommandoer/agenter) verifiseres av operatør via annoterings-HTML, ikke mekanisk.
## 8. Åpne spørsmål (avklares i plan, ikke blokkerende)
- `edition-config.json` JSON vs. frontmatter (anbefalt JSON).
- `video-scripter` absorberes i `content-repurposer`? (besluttes sent).