linkedin-studio/config/personas.template.md
Kjell Tore Guttormsen 08106317db fix(linkedin-studio): N10 — konfigurerbart målnivå-spenn [skip-docs]
C-8: gjør «praktisk anvendbar på alle nivå» til en konfigurerbar gate-akse og
fjerner den hardkodede primær-personaen. 6-fils scope (KTG-valgt) — gjør
targetLevel til en EKTE ende-til-ende-dimensjon i stedet for et fantomfelt:

- references/longform-quality-rules.md: «non-technical line manager» → brukerens
  konfigurerte target-level span (domene-generelt).
- config/personas.template.md: «primær trumfer» krever nå obligatorisk sekundær i
  MOTSATT ende av spennet; sekundær-NEI kan kun avskrives som «signal, ikke svikt»
  med eksplisitt ceiling-begrunnelse. Ny tekniker-ende-seed (Persona 4,
  Løsningsutvikler/AI-ingeniør) — tidligere kun 3 leder-personas.
- config/edition-state.template.json: additivt articles.NN.targetLevel-slot
  (default null, INGEN schemaVersion-bump — samme mønster som sourceTrendId/language).
- commands/newsletter.md: persister resolvert targetLevel ved Step 1.5-checkpointet.
- agents/persona-reviewer.md: leser articles.NN.targetLevel og plasserer personaene
  på spennet (fallback til persona-ekspertise om feltet er null).

Premiss-korreksjon: planens 4-fils scope antok targetLevel fantes i edition-state
via N7-broen; det stemte ikke (fantes kun i trend-store + fritekst-mapping). +2 filer
(edition-state-slot + newsletter-persist) gjør konsumet reelt.

TDD: ny Section 16q i test-runner (9 UNCOND. .md/.json-greps + non-vacuity self-test);
en vacuity-bug i egen edition-state-check fanget og skjerpet (grep slot-literal
"targetLevel": null, ikke bare ordet — sourceTrendId-docstringen inneholder allerede
"targetLevel"). test-runner 154→163/0, anti-erosion floor 137→146. Øvrige fem suiter
uendret grønne (trends 300 · brain 134 · hooks 140 · tests 35 · render 60).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014bE7VbkmR3cqHFEeGfzgwb
2026-07-24 20:16:41 +02:00

9.9 KiB

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:

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 four 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. But the active set MUST include a mandatory secondary at the opposite end of the target-level span from the primær (a technical reader when the primær is non-technical, and vice versa) — one reader alone cannot certify a text «practically usable at all levels», so a lone primær JA is not enough. A secondary NO caused by role mismatch or an expertise ceiling («this I already know cold») is a SIGNAL that the gate works — but it may be waived as «signal, not failure» only with an explicit ceiling justification that names which end of the span hit its ceiling; an unexplained secondary NO is a real flag, not a free pass. 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).

Per-artifact personas (one or more personas per edition)

This library is a starting point, not a fixed cast. Each artifact (each newsletter edition) carries its own resolved persona set — one or more personas, exactly one marked primær — so different editions can target different readers without editing a shared file. /linkedin:newsletter Step 1 resolves the active set in this order and records it in edition-state.jsonarticles.NN.personas (so it is stable across the multi-session pipeline and is the single source the Step 6 sweep AND the Step 6.5 headless package read):

  1. Already in articles.NN.personas → use as-is (a resumed edition keeps the set it was calibrated with).
  2. <serie>/linkedin/personas.md (a per-series file, same block grammar as below) → load it. Use this when a whole series shares a cast.
  3. Plugin config/personas.local.md (else this personas.template.md) → select the relevant subset of the global library.
  4. None / insufficientdefine interactively in Step 1 (the operator names one or more personas and their five fields via AskUserQuestion); the resolved set is written to articles.NN.personas.

Each resolved entry carries the five fields below plus tier (primær | sekundær) and source (edition-state | series-file | plugin-library | interactive). Exactly one primær per artifact; «primær trumfer» (below) is unchanged. Personas defined interactively for one edition can be promoted to a reusable block by pasting them into personas.local.md (plugin-wide) or <serie>/linkedin/personas.md (series-wide).

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 four Seres seed personas are the canonical set: A = IT-divisjonsdirektør (sekundær), B = KI-seksjonsleder (sekundær), C = Linjeleder (PRIMÆR — trumfer), D = Løsningsutvikler/AI-ingeniør (sekundær — the mandatory technical end opposite C).

  • 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.

Persona 4 — Løsningsutvikler/AI-ingeniør (sekundær)

Technical end of the target-level span (opposite the primær persona). The mandatory secondary the «primær trumfer» rule requires: if the primær (Linjeleder) anchors the reader-facing end, this persona anchors the technical end, so a text that claims to work «at all levels» is judged from both ends, not just one.

  • rolle — Bygger og drifter AI-løsningene i praksis (utvikler, ML-ingeniør eller løsningsarkitekt); skriver koden, velger modellene, eier integrasjonene.
  • avkobler — Ledelses-abstraksjoner uten teknisk substans; «AI-magi» uten hvordan; påstander om hva som er mulig som ikke tåler et implementasjons-blikk; nedlatende forenkling av ting hen kan fra innsiden.
  • overbeviser — Konkret hvordan-det-faktisk-virker, ærlige begrensninger og feilmodi, reelle avveininger (latency/kost/kvalitet), og respekt for at dømmekraften i systemdesign er ekte fag.
  • ekspertise — Høy teknisk. Ekspertise-tak på grunnleggende forklaringer: en «hva er en API»-passasje faller flatt (sekundær-NEI her er et signal — men bare med eksplisitt ceiling-begrunnelse, jf. «primær trumfer»).
  • sjargong — Høy toleranse for teknisk/kode-sjargong; lav for lederspråk og konsulent-buzzwords.

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.

### 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.]