okr/docs/plan-referansegrad-2026-06-23.md
Kjell Tore Guttormsen 16ae8d3db3 docs: add 360 evaluation + reference-grade execution plan (okr)
360-degree evaluation (14-agent workflow: 6 readers, 4 researchers,
2 benchmarks, synthesis + adversarial plan-critic). Verdict C+:
strong architecture/methodology, credibility-critical content defects
(fictional agency presented as fact, find-replace artefacts, scoring
self-contradiction across 5+ files, UTF-8 corruption, dead links).

- docs/evaluering-360-2026-06-23.md: findings per dimension, scorecard,
  verification log, ms-ai-architect maturity gaps, plan-critic appendix.
- docs/plan-referansegrad-2026-06-23.md: critic-corrected, followable
  multi-session plan (Fase 0-3) with finding->phase traceability,
  version-per-phase, file-ownership, On-failure/circuit-breaker rules,
  and Voyage usage per phase.

Pilot review (2026-06-20) covered security/config; this covers domain,
content, language, UX, completeness. Implementation not started.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LSVEbrrahcSVoNG4WG3NrP
2026-06-23 18:36:01 +02:00

16 KiB

Utførelsesplan: OKR-plugin → referansegrad (norsk offentlig sektor)

Dato: 2026-06-23 Grunnlag: docs/evaluering-360-2026-06-23.md (360-evaluering, 14 agenter) + adversariell plan-critic-runde. Status i dag: Samlet karakter C+. Sterkt fundament (arkitektur, hooks, metodikk-kjerne, ekte forvaltningstilpasning), trukket ned av troverdighetskritiske innholdsfeil. Mål: Lukke alle funn i fire faser slik at pluginet trygt kan deles og fungere som referanse. Hver fase er et eget Voyage-løp over én eller flere sesjoner.

Denne planen er kritikk-korrigert: plan-criticen avdekket at synteserunden underestimerte flere leveranser (DDT = 61 forekomster i 14 filer, ikke 2; UTF-8 = total ASCII-stripping som krever omskriving, ikke encoding-fiks; scoring-linjelista var ufullstendig og delvis feilrettet; versjon-per-fase manglet; Fase 1/2 deler filer). Alle disse er innarbeidet under.


1. Slik følger vi planen (driftsmodell)

  1. Én fase = ett Voyage-løp. /trekbrief (ramme + verifiseringskriterier) → /trekplan (fil-for-fil steg) → /trekexecute/trekreview (mot brief-kriteriene). Flersesjons faser bruker .session-state + /trekcontinue.
  2. Hvert /trekplan-steg MÅ bære On-failure: og Checkpoint: (git commit). Destruktive steg merkes circuit-breaker: ved feil → stopp hele fasen, ikke fortsett.
  3. Verifiseringsplikt. Hver fase avsluttes med konkrete bevis (grep-/spellcheck-kommandoer som beviser at funnet er borte og at ingen nye er introdusert). Ingen fase er «ferdig» uten grønne bevis.
  4. Versjon per fase. Hver fase som endrer brukervendt innhold/funksjon bumper versjon + lager release-tag + oppdaterer katalog-ref (catalog/scripts/release-plugin.mjs <plugin> <versjon>), innenfor push-vinduet. Se §6.
  5. STATE.md oppdateres ved hver sesjonslutt (local-only, gitignored — offentlig remote).
  6. Scope-guard. Ingen fase utvider seg utover sine leveranser uten ny godkjenning.

2. Beslutningsport FØR Fase 0 (avgjøres i /trekbrief)

DDT-beslutning. «Direktoratet for digital tjenesteutvikling (DDT)» er fiktiv og brukes som løpende eksempel-etat. Verifisert omfang: 61 forekomster i 14 filer (28 i okr-offentlig-governance.md, 7 i okr-integrations.md, 4 hver i okr-examples.md/okr-framework.md, flere i oppsett.md m.fl.). To veier:

Valg Hva Innsats Konsekvens
(a) Merk fiktiv (anbefalt for rask troverdighet) Konsekvent «(fiktiv eksempeletat)» + disclaimer ved første bruk; behold alle eksempler Mekanisk, én grep-verifisert pass over alle 61 Rask, lav risiko. Eksemplene forblir koherente.
(b) Splitt i reelle etater Statens vegvesen (vei/trafikk) + Digdir (digitale tjenester) Egen dedikert fase (2-3 sesjoner) mellom Fase 0 og Fase 1 Omskriver tildelingsbrev-, kaskade- og metrikk-eksempler. Fase 1 avhenger av hvilken etat som «eier» hvilket eksempel.

Default i denne planen: (a). Velges (b), settes en egen «Fase 0b — Etats-resplitt» inn, og Fase 1 omdefineres til å bygge på de nye etatene. Avgjør i brief, ikke i utførelse. Uansett valg: fjern den fabrikkerte kilde-attribusjonen «Oboard (Direktoratet for digital tjenesteutviklings valg)» (okr-sources.md:299) og DDT fra README-listen over reelle brukere (README.md:23).


3. Fase 0 — Fakta- og troverdighetssanering (credibility-critical)

Avhenger av: ingenting. Estimat: 2-3 sesjoner (oppjustert fra 1-2 etter kritikk: UTF-8 = omskriving av 2 hele filer; DDT = 61 sites). Versjon ved slutt: 1.3.1 (patch). Hvorfor først: alt annet bygger på at teksten er til å stole på.

Leveranser (hver med On-failure + Checkpoint):

  1. [CIRCUIT-BREAKER, flyttet hit fra Fase 2] OKR-01 rm -rf-validering. Høyeste data-tap-risiko. Valider at [id] matcher ^[TQ][1-4]-[0-9]{4}$ og er ikke-tom før rm -rf .claude/okr/syklus/[id]/ i oppsett.md:457/459. Manuell test: tom + malformert id skal avvises. On-failure: halt hele fasen.
  2. DDT per beslutningsporten (default: merk fiktiv). Grep-fasit: grep -rni 'DDT\|Direktoratet for digital tjenesteutvikling' . → forvent 61 → 0 umerkede. Fjern fabrikkert Oboard-attribusjon + DDT fra README reell-bruker-liste.
  3. Find-replace-artefakter. Re-derivér full målliste (ikke stol på synteselista alene): grep -rni 'saksbehandlingbehandling\|saksbehandlingtjenester\|saksbehandlingklager\|saksbehandling-søknad\|saksbehandlingsøknad\|vevedlikehold\|fornye saksbehandling' .. Rett til koherent domene. Regresjonssjekk: blanket-erstatninger må ikke mangle korrekte sammensetninger — bevis 0 GAMLE og 0 NYE artefakter.
  4. ÉN kanonisk scoringsterskel. Re-derivér: grep -rn '0\.[567]-0\.[789]\|70-80%\|0\.7 =' .. Innfør overalt: «0.7 = forventet for aspirational; 0.6-0.7 = sweet spot (Google/Doerr)». BEVAR okr-sources.md:44 og :115 (de ER kanon 0.6-0.7 — ikke slett). Fjern 0.7-0.9 (okr-cheatsheet.md:48, fremdriftssporer-agent.md:44) og 70-80% (governance.md:73). Inkluder styringsrådgiver-agent.md:90. Avklar: analyse.md:138-139 (0.5-0.7/>0.7) er trolig tverr-syklus modenhet ≠ enkelt-OKR stretch-score → sannsynlig utenfor scope; bekreft før endring. Verifisering: nøyaktig én stretch-definisjon, kanonisk kilde ikke rørt.
  5. [CIRCUIT-BREAKER] UTF-8: manuell norsk omskriving av individual-vs-team-okr.md og commands/oppsett.md (begge 0 å + 0 ø/æ — total ASCII-stripping, ingen ren kilde å «regenerere» fra). Dette er korrekturlesing/omskriving, ikke encoding-fiks. Checkpoint (git) før start. Verifisering: spellcheck (aspell -l nb eller kuratert vokabular-diff mot øvrige referansefiler) — ikke bare å > 0 (en fil kan ha riktig å men feil ø/æ).
  6. ASCII-kommandonavn. grep -rn '/okr:moter\|/okr:innforing\|oppstartsmate' . → inkluderer README.md (L106/114/166), oppsett.md (L246/478), coaching-hook.mjs (L125). Rett til /okr:møter, /okr:innføring.
  7. coaching-hook-strenger + læring-regex. coaching-hook.mjs:115/124/125 (brukervendte strenger, synlig hver sesjonsstart) + L100 regex → /## (?:Laering|Læring)/.
  8. Døde/feil lenker + dokumenttittel. futureworks.no (404) fjern/erstatt; rework.withgoogle.com normaliser til /en/-form + Wayback-fallback; rett tittel til «Fremtidens digitale Norge — Nasjonal digitaliseringsstrategi 2024-2030» (governance.md:395).
  9. Dokument-motsigelser. CONTRIBUTING PR-seksjon → kryssreferanse til GOVERNANCE; SECURITY GitHub → Forgejo/e-post; uciterte statistikker (39/43/30-45/60%) merk «industri-rapportert (ikke fagfellevurdert)» eller erstatt med Locke & Latham-effektstørrelser.
  10. CLAUDE.md «References (15)»utsett til etter Fase 2 (Fase 2 kan avskrive filer og endre tallet). Sett her bare hvis Fase 2-beslutningen allerede er tatt; ellers er dette en Fase 2-leveranse.
  11. Versjon: SKILL.md version → 1.3.1, sync plugin.json, release-tag + katalog-ref (release-plugin.mjs), push-vindu.

Voyage: /trekbrief (ramme sanering + DDT-beslutning + verifiseringsplikt) → /trekplan (fil-for-fil, hvert steg med On-failure/Checkpoint, circuit-breakers på #1/#5) → /trekexecute/trekreview (bekreft 0 artefakter, 0 strippede tegn, én scoringsverdi, kanonisk kilde intakt).


4. Fase 1 — Domenedybde og kildeintegritet

Avhenger av: Fase 0. Serialisér FØR Fase 2 (deler møter.md + møtefasilitator-agent.md — kan ikke kjøre parallelt). Estimat: 2-3 sesjoner. Versjon ved slutt: 1.4.0 (sammen med Fase 2).

Leveranser:

  1. Tertial-korreksjon. Presiser: formelt regime har 2 interim-punkter (30. april / 31. august) + årsrapport; DFØ vektlegger nå halvårs-/årsrapportmøte. 4-mnd OKR-syklus = pragmatisk valg som aligner med — ikke er identisk med — rapporteringsregimet. «Sjekk eget tildelingsbrev.» (dfo-okr-mapping.md:45, okr-framework.md:205).
  2. OKR posisjonert som lag oppå mål- og resultatstyring (MRS, økonomireglementet §4) — ikke erstatning. Ny seksjon om tillitsreformen (sentral styringsspenning, i dag fraværende). «Målforskyvning» lagt til som førsteklasses norsk antipattern.
  3. Metodikk-presisjoner. Doerrs advarsel mot å snitte committed+aspirational sammen (inn i aggregeringslogikk); Intel rettet (85% = gjenvunnet 16-bit-andel, ikke «fra 0%»; ~2300-2500 design wins oppnådd vs 2000 mål); Locke & Latham «250%» → «vanskeligste vs enkleste mål»; legg til Kleingeld-journalref (JAP 96(6):1289-1304).
  4. «Kvartalsreview» → «Syklusreview» (møter.md:60, møtefasilitator-agent.md:39); «kvartalsvise» → «syklusvise» (okr-implementation.md:48/415).
  5. Reelle norske offentlig-sektor-referanser (Digdir produktorganisering, NRK/Ruter som faktisk offentlige, Knowit «fire fallgruver») med tydelig vendor-/praktiker- vs uavhengig-merking.

Voyage: /trekresearch (Tavily/WebFetch triangulerer DFØ-currency, tillitsreform, reelle caser mot primærkilder; confidence-rating) → /trekplan/trekexecute/trekreview.


5. Fase 2 — UX-koherens og kommando-/agent-modning

Avhenger av: Fase 0 (+ org-kontekst-sti-beslutning, se under). Serialisér ETTER Fase 1 (delt fil-eierskap). Estimat: 1-2 sesjoner. Versjon ved slutt: 1.4.0.

Forhåndsbeslutning (kritisk avhengighet): Bestem kanonisk org-kontekst-sti FØR denne fasen~/.claude/okr/org/ (reinstall-overlevende, Fase 3-mål) vs prosjektlokal. Agentene wires til å lese fra endelig sti her, slik at Fase 3 ikke må gjøre om arbeidet.

Leveranser:

  1. Kontekstbevissthet-blokk i møter.md (syklusfase-deteksjon + OKR-antall) — på linje med de 8 andre.
  2. gap vs governance disambiguert. «Bruk /okr:gap når … (kvantitativ dekningsmatrise)» vs «Bruk /okr:governance når … (kvalitativ oversettelse + compliance)». Avdupliser den identiske innholdstabellen.
  3. Negative triggere per agent (særlig styringsrådgiver vs gapanalytiker, begge på «tildelingsbrev»); fremdriftssporer instruert til å lese full antipatterns-fil; alle Task-spawnbare agenter leser org-kontekst direkte fra fil (endelig sti).
  4. 6 usiterte referansefiler (dfo-okr-mapping, individual-vs-team-okr, metrics-library, okr-cheatsheet, okr-integrations, okr-sources) — wire inn i relevant kommando/agent eller eksplisitt avskriv. Deretter rett CLAUDE.md referanse-tall til post-avskriv-tallet.
  5. Template-YAML ↔ onboarding-skjema-sync (okr.local.md.template); paritetstest manuell bootstrap vs hook-forventet skjema.

Filer eid av Fase 2 (ikke Fase 1): møter.md (Kontekstbevissthet), agentfilene (negative triggere). Fase 1s møter.md-rename (Kvartalsreview) gjøres FØR Fase 2 starter.

Voyage: /trekbrief (avgrens UX-scope + org-sti-beslutning) → /trekplan (Verifisering: grep bekrefter Kontekstbevissthet i alle 10 kommandoer; manuell rm-validering allerede gjort i Fase 0) → /trekexecute.


6. Fase 3 — Referansegrad-løft mot ms-ai-architect-paritet

Avhenger av: Fase 1 + Fase 2. Estimat: 2-3 sesjoner (flersesjons). Versjon ved slutt: 1.5.0 (nye kommandoer = minor).

Leveranser (prioritert etter adopsjonsverdi):

  1. [MUST] Reinstall-overlevende ~/.claude/okr/org/. Implementer flytting + bakoverkompatibel fallback (les ny sti, fall tilbake til prosjektlokal). Oppdater CLAUDE.md «State Management» + okr.local.md.template i samme endring. On-failure: agenter faller tilbake til hook-injeksjon, ikke error. (Sti-beslutningen ble tatt i Fase 2; her implementeres migrasjonen.)
  2. [MUST] /okr:help — alle 10 kommandoer + 7 agenter + anbefalt tidlig/midt/sen-syklus-arbeidsflyt.
  3. [SHOULD] Ankrede scoringsrubrikker (okr-quality-rubrics.md, 5 ankere/dimensjon) som kvalitetssjekker laster → determinisme i governance-kontekst.
  4. [SHOULD] Test-fixtures + node --test smoke-test for de to hookene (fanger skjema-drift).
  5. [SHOULD] /okr:export (PDF) for kvalitetsvurderinger, gap-matriser, statusrapporter, retrospektiver — deling med ledelse/tillitsvalgte/Riksrevisjon.
  6. [SHOULD] UserPromptSubmit emne-guard — injiser ikke OKR-kontekst på hver prompt uten relevans.
  7. [SHOULD] Bredere offentlig-metrikkbibliotek (eForvaltningsindeks, WCAG/universell utforming, klagebehandlingsfrist, eFormidling) + minst én reell etat/kommune-differensiering (statlig vs kommunalt styringsregime).
  8. [NICE] /okr:freshen-references — WebSearch/Tavily-subagenter mot dfo.no/regjeringen.no/riksrevisjonen.no for KB-currency.

Voyage: flersesjons /trekplan med .session-state; /trekexecute + /trekcontinue mellom sesjoner; /trekresearch for metrikkbiblioteket; avslutt med /trekreview mot brief-kriteriene for å bekrefte referansegrad.


7. Tverrgående krav

Krav Detalj
Versjon per fase Fase 0 → 1.3.1 (patch) · Fase 1+2 → 1.4.0 (minor) · Fase 3 → 1.5.0 (minor, nye kommandoer). Tag + katalog-ref (release-plugin.mjs) som avsluttende leveranse i HVER fase, i push-vinduet.
Rollback Hvis en publisert tag senere må korrigeres fordi en senere fase endret kanonisk innhold tag-en averterte: dokumentér og lag patch-tag.
Fil-eierskap møter.md + møtefasilitator-agent.md deles av Fase 1 (rename) og Fase 2 (Kontekstbevissthet/triggere) → serialisér Fase 1 før Fase 2. Ingen fil redigeres av to parallelle løp.
On-failure/Checkpoint Hvert /trekplan-steg bærer begge. Destruktive steg (UTF-8-omskriving, DDT, rm -rf) = circuit-breaker (halt hele fasen ved feil).
Gemini-triangulering Gemini-bridge var nede (deprecated Interactions API SDK). Oppgradér gemini-mcp-SDK før neste runde som trenger uavhengig triangulering.
STATE.md Local-only (offentlig remote). Oppdatér ved hver sesjonslutt.

8. Sporbarhet: funn → fase

# Funn (alvorlighet) Fase
1 Scoringsterskel selvmotsigende ≥5 filer (KRITISK) Fase 0
2 Fiktiv etat DDT presentert som fakta + fabrikkert Oboard-kilde (KRITISK) Beslutningsport + Fase 0 (el. Fase 0b)
3 Total UTF-8-korrupsjon i 2 filer + hook (KRITISK/HØY) Fase 0
4 Find-replace-artefakter i kopierte eksempler (HØY) Fase 0
5 Læring-regex feiler på «Læring» (HØY) Fase 0
6 CONTRIBUTING↔GOVERNANCE-motsigelse (HØY) Fase 0
7 SECURITY peker GitHub på Forgejo-repo (HØY) Fase 0
8 OKR-01 rm -rf ugardert (MEDIUM, men høyest data-tap-risiko) Fase 0 (flyttet fra Fase 2)
9 ASCII-kommandonavn i README/oppsett/hook (MEDIUM) Fase 0
10 Døde lenker + feil dokumenttittel (MEDIUM) Fase 0
11 Uciterte statistikker som fakta (MEDIUM) Fase 0
12 Intel/Locke faktarammings-feil (INFO/MEDIUM) Fase 1
13 Committed+aspirational snittes sammen (MEDIUM) Fase 1
14 Tertial overdrevet som DFØ-standard (MEDIUM) Fase 1
15 Tillitsreform + målforskyvning fraværende (REFERANSEGRAD-GAP) Fase 1
16 «Kvartalsreview» i 4-mnd-plugin (MEDIUM) Fase 1
17 møter.md mangler Kontekstbevissthet (LAV) Fase 2
18 gap vs governance overlapp (MEDIUM) Fase 2
19 Agenter mangler negative triggere (MEDIUM) Fase 2
20 Agenter blinde ved Task-spawn (MEDIUM) Fase 2
21 6 usiterte referansefiler (SHOULD) + CLAUDE.md-tall Fase 2
22 Template ≠ onboarding-YAML (MEDIUM) Fase 2
23 Ikke reinstall-overlevende org-kontekst (REFERANSEGRAD-GAP/MUST) Fase 2 (beslutning) + Fase 3 (impl.)
24 Mangler /okr:help, rubrikker, fixtures, PDF-eksport (SHOULD) Fase 3
25 UserPromptSubmit uten emne-guard (SHOULD) Fase 3
26 Tynt offentlig-metrikkbibliotek (SHOULD) Fase 3
27 SKILL-versjon 1.0.0 vs 1.3.0 (MUST) Fase 0 (del av versjonsbump)

Vurdert og forkastet: Share-session-as-artifacts (claude.ai-hostet, Team/Enterprise-gated, dataresidens/Schrems II for offentlig sektor) — operatørbeslutning 2026-06-23, tas ikke inn.