ktg-plugin-marketplace/plugins/linkedin-thought-leadership/config/personas.template.md
Kjell Tore Guttormsen 4ed9717627 feat(linkedin): v2.2.0 — harden longform gates from 2nd production run
Implements the 6-change spec from the Seres-serien production
(linkedin-plugin-endringsspec.md). All acceptance criteria met.

1. Avoid-patterns (modell-/navne-katalog, completeness-over-reader-action,
   self-referential overhead openings) → longform-quality-rules.md (rule 1+3)
   + user-profile.template.md.
2. Persona gate now BLOCKING with explicit hard-fail list (primær mistet meg /
   doesn't own action / sjargong-mur / modell-navne-katalog → BLOCK;
   "JA med store forbehold" = NEI) → persona-reviewer.md + personas.template.md.
3. Fact-check declared orthogonal to narrative strength + post-cutoff
   web-search mandate + high-frequency-error checklist → fact-checker.md.
4. NEW agent voice-scrubber.md (Opus) — de-AI scrub + Norwegian-chronicle
   voice-drift; gold standard = approved Norwegian editions, NOT the English
   post corpus. Wired into newsletter.md Step 4.
5. Operator gates = render+annotate rounds (build-html.mjs to file://) as
   primary flow, AskUserQuestion as receipt/fallback → newsletter.md 2.5+3a.
6. Edition state reconciled with STATE.md (ONE-system). edition-HANDOVER
   template deleted; narrative to <serie>/STATE.md, machine data
   (factcheckLog, personaSweep, immutableRules) to edition-state.json.

Agents 14 to 15; commands unchanged (24). Backward-compatible (additive
state-shape only). Docs updated across all three levels + CHANGELOG.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-28 20:50:56 +02:00

134 lines
6.4 KiB
Markdown

# Reader Persona Library
Reusable reader profiles for the long-form pipeline (`/linkedin:newsletter`).
A reader persona is **not** a target-audience demographic — it is a named
reader who reads a finished draft *read-only* and judges whether it **lands**
(not whether it is "correct"). Personas give direction; the editor holds the
pen. Personas never write text.
Copy this file to `personas.local.md` and adjust the active set per project:
```bash
cp config/personas.template.md config/personas.local.md
```
`personas.local.md` is gitignored (via `*.local.md`) so your active overrides
stay local. The template ships the three Seres seed personas below; clone,
trim, or extend them per series.
---
## How the library is used
- **Per-project selection.** `/linkedin:newsletter` (Step 1) picks the relevant
personas from this library and marks the primary in the edition brief.
- **«primær trumfer».** Exactly one persona is the **primær** reader. On
conflict between personas, the primær weighs highest. A *secondary* NO caused
by role mismatch or an expertise ceiling («this I already know cold») is a
SIGNAL that the gate works — accept it, do not distort the text to chase it.
A *primær* NO is **not** accepted: the text is revised until the primær
reaches a clean YES.
- **Two sweep modes** (same `persona-reviewer` agent): resonance mode (Step 6,
BEFORE lock — «does the point land for this reader?») and conversion mode
(Step 9, after lock — binary «would YOU click?» on the hook only).
### The click-gate is blocking (bar = primær ekte JA)
The persona sweep is not advisory — it returns a **blocking verdict**
(PASS / REWORK / BLOCK), and the bar is the **primær reader's genuine, unqualified
JA**. The three Seres seed personas are the canonical set: **A = IT-divisjonsdirektør**
(sekundær), **B = KI-seksjonsleder** (sekundær), **C = Linjeleder** (PRIMÆR — trumfer).
- **Bar = C ekte JA.** A clean, unqualified yes from the primær. **«JA med store
forbehold» = NEI.**
-**Hard fail (= omskriv, ikke annotér):** the verdict is BLOCK, regardless of
the other axes, when the primær —
- «mistet meg» (disengaged before the takeaway), or
- does not own the action (the takeaway is someone else's job), or
- hits a **sjargong-mur** (a wall of technical vocabulary their `sjargong`
rejects), or
- hits a **modell-/navne-katalog** (product/model/benchmark names listed for
completeness).
- These are **rewrite triggers**, not annotations the editor can wave through. A
*sekundær* NO from a role/expertise ceiling stays a SIGNAL the gate works —
never distort the text to chase it.
Each persona documents five fields. Keep the lowercase field keys exactly — the
pipeline and the structural check key off them:
- **rolle** — who they are and what they own.
- **avkobler** — what disconnects them / makes them stop reading.
- **overbeviser** — what convinces them / earns their trust.
- **ekspertise** — expertise level, including any ceiling that makes basics fall flat.
- **sjargong** — jargon tolerance (which vocabulary lands, which repels).
---
## Seed personas (Seres series, public-sector AI adoption)
### Persona 1 — IT-divisjonsdirektør (sekundær)
- **rolle** — Leder IT-divisjonen i en stor offentlig virksomhet; eier drift,
sikkerhet, arkitektur og leverandørforhold med budsjett- og risikoansvar.
- **avkobler** — Hype uten driftskonsekvenser; «AI løser alt»; manglende kobling
til sikkerhet, forvaltningskrav og totalkostnad; abstrakt strategiprat uten et
klart hvem-eier-hva.
- **overbeviser** — Konkret arkitektur og driftsmodell, etterlevelse/sikkerhet,
realistisk totalkostnad, referanser fra sammenlignbar virksomhet, og en tydelig
ansvarsdeling.
- **ekspertise** — Høy teknisk og organisatorisk. Ekspertise-tak på grunnleggende
IT-forklaringer: en post som forklarer systemintegrasjon fra bunnen lander ikke
(sekundær-NEI her er et signal, ikke en svikt).
- **sjargong** — Høy toleranse for IT-/arkitektur-sjargong; lav for AI-buzzwords
og konsulentspråk.
### Persona 2 — KI-seksjonsleder (sekundær)
- **rolle** — Leder en KI-seksjon; bygger AI-kapabilitet, rådgir ledelsen og
balanserer eksperimentering mot forvaltningskrav.
- **avkobler** — Overforenkling av hva AI er; ignorering av governance, EU AI Act
og personvern; «bare kjør i gang»-holdning; manglende erkjennelse av at
dømmekraften ikke kan settes ut.
- **overbeviser** — Nyansert forståelse av hva AI kan og ikke kan, konkret kobling
til forvaltningsverdier, erfaringsbasert framfor teoretisk, og ærlighet om
begrensninger.
- **ekspertise** — Høy i AI-domenet. Ekspertise-tak: kjenner modellene og
teknikkene, så en «hva er en LLM»-post faller flatt. Verdien ligger i syntese
og dømmekraft, ikke grunnkurs.
- **sjargong** — Høy toleranse for AI-/ML-sjargong; lav for vagt lederspråk og
overdreven popularisering.
### Persona 3 — Linjeleder (primær)
> **Dette er primær-personaen.** Ved konflikt mellom personaer vekter denne
> høyest. En primær-NEI godtas ikke — teksten revideres til ren primær-JA.
- **rolle** — Mellomleder med fag- og personalansvar i offentlig virksomhet; skal
beslutte om og hvordan AI tas i bruk i egen enhet, uten dyp teknisk bakgrunn.
- **avkobler** — Teknisk dypdykk uten «hva betyr dette for meg og mine»;
frykt-retorikk; abstrakt policy; språk som forutsetter at hen kan koden.
- **overbeviser** — Konkrete eksempler fra arbeidshverdagen, et klart ansvars- og
dømmekraftsbilde, trygghet på at hen kan ta gode beslutninger uten å være
tekniker, og en leder-takeaway hen kan handle på allerede i morgen.
- **ekspertise** — Lav-til-middels teknisk; høy på ledelse og forvaltning. Trenger
oversettelse, ikke nedlatenhet.
- **sjargong** — Lav toleranse for teknisk sjargong; setter pris på presise,
hverdagsnære formuleringer.
---
## Adding a persona
Copy the block below into `personas.local.md` and fill every field. Mark at most
one persona as `primær` per project; if you add a new primary, demote the old one
to sekundær.
```markdown
### Persona N — [Title] ([primær | sekundær])
- **rolle** — [Who they are and what they own.]
- **avkobler** — [What makes them stop reading.]
- **overbeviser** — [What earns their trust.]
- **ekspertise** — [Expertise level + any ceiling that makes basics fall flat.]
- **sjargong** — [Which vocabulary lands, which repels.]
```