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
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)
- É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. - Hvert
/trekplan-steg MÅ bæreOn-failure:ogCheckpoint:(git commit). Destruktive steg merkes circuit-breaker: ved feil → stopp hele fasen, ikke fortsett. - 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.
- 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. - STATE.md oppdateres ved hver sesjonslutt (local-only, gitignored — offentlig remote).
- 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):
- [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ørrm -rf .claude/okr/syklus/[id]/ioppsett.md:457/459. Manuell test: tom + malformert id skal avvises. On-failure: halt hele fasen. - 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. - 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. - É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)». BEVARokr-sources.md:44og: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). Inkluderstyringsrå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. - [CIRCUIT-BREAKER] UTF-8: manuell norsk omskriving av
individual-vs-team-okr.mdogcommands/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 nbeller kuratert vokabular-diff mot øvrige referansefiler) — ikke bareå > 0(en fil kan ha riktig å men feil ø/æ). - ASCII-kommandonavn.
grep -rn '/okr:moter\|/okr:innforing\|oppstartsmate' .→ inkludererREADME.md(L106/114/166),oppsett.md(L246/478),coaching-hook.mjs(L125). Rett til/okr:møter,/okr:innføring. - coaching-hook-strenger + læring-regex.
coaching-hook.mjs:115/124/125(brukervendte strenger, synlig hver sesjonsstart) + L100 regex →/## (?:Laering|Læring)/. - Døde/feil lenker + dokumenttittel.
futureworks.no(404) fjern/erstatt;rework.withgoogle.comnormaliser til/en/-form + Wayback-fallback; rett tittel til «Fremtidens digitale Norge — Nasjonal digitaliseringsstrategi 2024-2030» (governance.md:395). - 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.
- 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.
- 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:
- 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). - 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.
- 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).
- «Kvartalsreview» → «Syklusreview» (
møter.md:60,møtefasilitator-agent.md:39); «kvartalsvise» → «syklusvise» (okr-implementation.md:48/415). - 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:
- Kontekstbevissthet-blokk i
møter.md(syklusfase-deteksjon + OKR-antall) — på linje med de 8 andre. - gap vs governance disambiguert. «Bruk /okr:gap når … (kvantitativ dekningsmatrise)» vs «Bruk /okr:governance når … (kvalitativ oversettelse + compliance)». Avdupliser den identiske innholdstabellen.
- Negative triggere per agent (særlig
styringsrådgivervsgapanalytiker, begge på «tildelingsbrev»);fremdriftssporerinstruert til å lese full antipatterns-fil; alle Task-spawnbare agenter leser org-kontekst direkte fra fil (endelig sti). - 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. - 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):
- [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.templatei samme endring. On-failure: agenter faller tilbake til hook-injeksjon, ikke error. (Sti-beslutningen ble tatt i Fase 2; her implementeres migrasjonen.) - [MUST]
/okr:help— alle 10 kommandoer + 7 agenter + anbefalt tidlig/midt/sen-syklus-arbeidsflyt. - [SHOULD] Ankrede scoringsrubrikker (
okr-quality-rubrics.md, 5 ankere/dimensjon) somkvalitetssjekkerlaster → determinisme i governance-kontekst. - [SHOULD] Test-fixtures +
node --testsmoke-test for de to hookene (fanger skjema-drift). - [SHOULD]
/okr:export(PDF) for kvalitetsvurderinger, gap-matriser, statusrapporter, retrospektiver — deling med ledelse/tillitsvalgte/Riksrevisjon. - [SHOULD] UserPromptSubmit emne-guard — injiser ikke OKR-kontekst på hver prompt uten relevans.
- [SHOULD] Bredere offentlig-metrikkbibliotek (eForvaltningsindeks, WCAG/universell utforming, klagebehandlingsfrist, eFormidling) + minst én reell etat/kommune-differensiering (statlig vs kommunalt styringsregime).
- [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.