Sektorspesifikt eksempelmateriale er erstattet med generiske, fiktive eksempler. Det fiktive direktoratet DDT får eksempler fra digitale tjenester, som samsvarer med navnet. Fjordvik kommune (fiktiv) får eksempler fra vann, avløp og avfall. Strukturen, tallene og poenget i hvert eksempel er bevart, blant annet committed-doktrinens stokastiske samfunnsutfall, progress-regnestykkene i Oboard-eksempelet og kaskadekjeden. Valg: - Én kildebelagt case er fjernet fra okr-sources.md og én virksomhetsliste er gjort generell («m.fl.»). Påstandene som står igjen, er fortsatt sanne. - Standardverdien i malens domene-felt er «digitalisering». «annet» dekker det som er tatt ut av alternativlistene. - De historiske evalueringsdokumentene er endret bare der de siterte det gamle eksempelinnholdet. Suite 350/350 grønn, vakten har 0 treff. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19 KiB
| name | description | allowed-tools | argument-hint |
|---|---|---|---|
| okr:oppsett | Konfigurer OKR-pluginen med dyp onboarding, profiloppdatering og syklusarkivering | Read, Write, Bash, AskUserQuestion, ToolSearch, Glob | [full|mvp|arkiver|oppdater|vis] |
OKR Oppsett - Onboarding, konfigurasjon og syklushåndtering
Interaktiv konfigurasjon av OKR-pluginen. Bygger en persistent organisasjonsprofil som alle andre kommandoer bruker automatisk via hook-injeksjon.
Ruting basert på argument
| Argument | Handling |
|---|---|
| (ingen) | Detekter eksisterende konfig, tilby meny |
full |
Kjør 6-fase dyp onboarding (15-20 min) |
mvp |
Kjør minimum viable onboarding (6 spørsmål, ~5 min) |
arkiver |
Arkiver gjeldende syklus med retrospektiv |
oppdater |
Oppdater spesifikke felt i eksisterende profil |
vis |
Vis gjeldende konfigurasjon |
Ingen argument — detekter og tilby
Les .claude/okr.local.md (relativt til brukerens prosjekt-cwd).
Hvis filen IKKE finnes:
Bruk AskUserQuestion:
Ser ut som du ikke har konfigurert OKR-pluginen ennå.
Vil du kjøre onboarding-intervjuet?
1. Full onboarding (6 faser, 15-20 min) — anbefalt for beste resultat
2. MVP onboarding (6 spørsmål, ~5 min) — rask start
3. Avbryt
Kjør full eller mvp basert på valg.
Hvis filen finnes OG onboarding_status: partial:
Fant ufullstendig onboarding. Du kom til fase [N] forrige gang.
1. Fortsett fra fase [N]
2. Start på nytt (full)
3. Start på nytt (mvp)
4. Avbryt
Hvis fortsett: les YAML, finn siste utfylte fase-seksjon, fortsett fra neste.
Hvis filen finnes OG onboarding_status: fullfort:
Vis kort oppsummering av gjeldende profil (org, syklus, modenhet, verktøy). Bruk AskUserQuestion:
Konfigurasjon funnet for [organisasjon.navn].
1. Oppdater konfigurasjon (endre spesifikke felt)
2. Kjør intervju på nytt (full)
3. Vis full konfigurasjon
4. Avslutt
Full onboarding — 6-fase dyp intervju
Skriv onboarding_status: partial til .claude/okr.local.md for hver fase er
fullført. Oppdater til fullfort etter siste fase.
Fase 1 — Identitet (2 min)
Still alle spørsmål med AskUserQuestion (grupper 2-3 sammen der naturlig):
-
Organisasjonsnavn og kortform? Eksempel (fiktiv eksempeletat): «Direktoratet for digital tjenesteutvikling» / «DDT»
-
Type organisasjon? Alternativer: statlig etat | direktorat | kommune | fylkeskommune
-
Hvilket departement eller overordnet etat? Eksempel: "fagdepartementet"
-
Fagdomene? Alternativer: helse | justis | digitalisering | utdanning | miljø | annet
-
Antall ansatte i OKR-programmet (ca.)? Tall eller estimat
-
Nasjonal, regional eller lokal virksomhet? Alternativer: nasjonal | regional | lokal
Etter fase 1: Skriv organisasjon-seksjonen til .claude/okr.local.md.
Fase 2 — Modenhet (5 min)
-
OKR-historikk? Alternativer: aldri prøvd | prøver nå (første syklus) | erfaren (2+ sykluser)
-
Hvis erfaren: Antall gjennomførte sykluser? (Hopp over hvis "aldri prøvd" eller "prøver nå")
-
Hvem er OKR-sponsor (navn og rolle)? Personen som gir mandat og synlighet. Eksempel: "Divisjonsdirektør Kari Holm"
-
Hvem er OKR-champion (navn og rolle)? Personen som driver det operative arbeidet. Eksempel: "Seniorrådgiver Per Lund"
-
Er OKR eksplisitt koblet fra lønnssamtale og medarbeidersamtale? Alternativer: ja | nei | usikkert
VIKTIG: Hvis "nei" eller "usikkert" — sett
okr_frikoblet_fra_loenn: falseog legg til advarsel i Markdown-body:ADVARSEL: OKR koblet til lønn er et av de farligste antipatternene. Når medarbeidere vet at OKR-score påvirker lønn, setter de trygge, lave mål i stedet for ambisiøse stretch goals. Anbefaler sterkt å dekoble før utrulling.
-
Hva er alignment-tilnærmingen? Alternativer: top-down | bottom-up | bidireksjonell Forklar kort: "Bidireksjonell betyr at ledelsen setter retning og teamene foreslår egne OKR som kobles opp. Dette er anbefalt tilnærming."
Etter fase 2: Oppdater .claude/okr.local.md med program-seksjonen.
Fase 3 — Strategisk kontekst (5 min)
-
Har dere et tildelingsbrev for 2026? Alternativer: ja | nei
Hvis ja: "Vil du lagre nøkkelmål fra tildelingsbrevet? Lim inn de viktigste målene (stikkpunkter, ikke hele brevet) så kan pluginen bruke dem til alignment."
Hvis brukeren limer inn tekst: skriv til
.claude/okr/strategisk-kontekst/tildelingsbrev-2026.mdmed OKF-frontmatter (second-brain-kompatibel: påkrevdtype:i Title-Case + anbefaltresource/title/description/tags-liste/timestamp) og innlimt innhold. Opprett mappene med Write-tool:--- type: Tildelingsbrev resource: "[lenke/arkiv-ID til kilden]" title: "Tildelingsbrev 2026" description: "Nøkkelmål fra tildelingsbrevet for alignment" tags: - tildelingsbrev - styringssignaler timestamp: "[ISO-8601, f.eks. 2026-01-15T09:00:00+00:00]" --- [innlimt innhold] -
Har dere en virksomhetsplan eller strategiplan? Eventuelt lenke eller nøkkelpunkter. Hvis innhold gis: skriv til
.claude/okr/strategisk-kontekst/virksomhetsplan.mdmed OKF-frontmatter (type: Virksomhetsplan+ anbefalte felt som over). -
Har dere org-nivå OKR for 2026? Alternativer: ja | nei | planlegges
Hvis ja: "Lim inn org-OKR (Objectives og Key Results) så pluginen kan bruke dem til kaskadering og alignment-sjekk."
Hvis innhold gis: skriv til
.claude/okr/strategisk-kontekst/overordnede-okr.mdmed OKF-frontmatter (type: Overordnede OKR+ anbefalte felt som over).
Etter fase 3: Oppdater .claude/okr.local.md med eventuell strategisk kontekst-info.
Hvis du skrev én eller flere strategisk-kontekst-filer, regenerér OKF-indeksen for
prosjekt-treet så index.md per nivå reflekterer de nye konsept-filene:
node ${CLAUDE_PLUGIN_ROOT}/scripts/okf-index.mjs .claude/okr
(Idempotent: bygger index.md-entries fra konsept-filenes title/description,
bevarer menneske-skrevne overskrifter og rotens markører okf_version +
okf_layout.)
Fase 4 — Struktur (3 min)
-
Hvilke OKR-nivåer bruker dere? Alternativer (flervalg): etat | divisjon | avdeling | seksjon | team
-
Din rolle i OKR-programmet? Alternativer: leder | produkteier | seksjonsleder | koordinator | annet
-
Antall team som kjører OKR denne syklusen (ca.)? Tall
-
Bruker dere bidireksjonell kaskadering? Forklaring: "Teamene foreslår egne OKR som kobles til org-OKR, i stedet for at alt kommer ovenfra." Alternativer: ja | nei | planlegger det
Etter fase 4: Oppdater gjeldende_syklus-seksjonen.
Fase 5 — Verktøy (2 min)
-
Oppgavestyringsverktøy? Alternativer: Linear | Jira | Azure DevOps | Planner | ingen | annet
-
OKR-sporingsverktøy? Alternativer: Oboard | Quantive | regneark | ingen | annet
-
Møteverktøy? Alternativer: Microsoft Teams | Zoom | annet
-
Leveransemetodikk? Alternativer: Scrum | Kanban | SAFe | prosjekt | annet
-
Vil du koble Linear til OKR-pluginen? Alternativer: ja | nei
Hvis ja: Kjør Linear-oppsett:
- Sjekk om Linear MCP er konfigurert — les
~/.claude/settings.json - Hvis ikke: veilede oppsett av MCP-server (referer til Linear MCP docs)
- Bruk ToolSearch for å finne Linear-tools, hent teams og projects
- La bruker velge team og project for OKR-tracking
- Sjekk om Linear MCP er konfigurert — les
Etter fase 5: Oppdater verktøy- og integrasjoner-seksjonen.
Fase 6 — Kultur (3 min)
-
Hva er check-in-rytmen (eller ønsket rytme)? Alternativer: ukentlig | annenhver uke | månedlig Anbefaling: "Annenhver uke er et godt utgangspunkt. Ukentlig for team i utførelsesfase."
-
Psykologisk trygghet for å sette stretch goals? Alternativer: lav | middels | høy Forklaring: "Kan teammedlemmer trygt foreslå ambisiøse mål uten å frykte konsekvenser om de ikke når 100%?"
-
Kjente utfordringer eller antipatterns dere har sett? Fritekst, ENTER for å hoppe over. Eksempler: "set-and-forget", "aktivitetsfokus i KR", "for mange Objectives"
-
Er tillitsvalgte involvert i OKR-prosessen? Alternativer: ja | nei | planlegges
Etter fase 6: Oppdater kultur-seksjonen. Sett onboarding_status: fullfort.
Fullføringssteg
Etter alle 6 faser:
-
Skriv komplett YAML til
.claude/okr.local.md(oppdater alle seksjoner) -
Sett
onboarding_status: fullfortogSist oppdatert: [dato] -
Skriv reinstall-overlevende org-profil til hjem-stien. Profilen (
organisasjon:- ogprogram:-seksjonene — org-identiteten som skal overleve reinstall og være tilgjengelig på tvers av prosjekter) skrives uten----fences til en temp-fil og sendes gjennom OKF-komponisten + skrivehelperen via Bash:OUT=$(node ${CLAUDE_PLUGIN_ROOT}/scripts/compose-org-profile.mjs < /tmp/okr-profil.tmp \ | node ${CLAUDE_PLUGIN_ROOT}/scripts/write-org-profile.mjs) echo "$OUT"compose-org-profile.mjsprepender de tre top-level OKF-nøklene (type: Organisasjonsprofil,resource:,timestamp:) over den nestede YAML-en og pakker alt i ett frontmatter-blokk (second-brain-kompatibelt). Legg aldri til en ny top-levelnavn:/id:/fase:/domene:/sektor:i profilen — de ville skygge de nestede verdiene som hooken leser. Helperen skriver atomisk (temp +renameSync) til~/.claude/okr/org/profil.mdog rapporterer den faktisk brukte stien på stdout ($OUT); en eventuell fallback-notice går til stderr. Rapporter til brukeren: «Org-profil skrevet til: $OUT». Hvis$OUTpeker på den prosjektlokale fallbacken (.claude/okr.local.md— skjer kun ved skrivefeil mot hjem), vis i tillegg hele profil-YAML-en for manuell plassering (jf. Feilhåndtering «Fil kan ikke skrives»), slik at brukeren kan legge~/.claude/okr/org/profil.mdpå plass selv. Behold den prosjektlokale.claude/okr.local.md-skrivingen (steg 1) for syklus- og strategisk-kontekst-data — kun selve profilen migrerer til hjem. -
Vis oppsummering:
Onboarding fullført for [organisasjon]!
Profil:
- Organisasjon: [navn] ([type])
- Modenhet: [nivå] ([N] sykluser gjennomført)
- Gjeldende syklus: [id] ([fase])
- Verktøy: [oppgavestyring], [okr_tracking]
- Check-in: [rytme]
Lagrede kontekstfiler:
- .claude/okr.local.md (organisasjonsprofil)
[- .claude/okr/strategisk-kontekst/tildelingsbrev-2026.md]
[- .claude/okr/strategisk-kontekst/overordnede-okr.md]
Anbefalte neste steg:
- /okr:skriv — skriv første OKR for denne syklusen
- /okr:kvalitet — sjekk eksisterende OKR
- /okr:møter — planlegg OKR-workshop eller kick-off
MVP onboarding — 6 spørsmål
For brukere som vil komme raskt i gang. Samle alle spørsmål i en AskUserQuestion eller maks 2 runder:
-
Organisasjonsnavn og type? Eksempel (fiktiv eksempeletat): «Direktoratet for digital tjenesteutvikling, statlig etat»
-
Fagdomene? Alternativer: helse | justis | digitalisering | utdanning | miljø | annet
-
OKR-modenhet? Alternativer: aldri prøvd | prøver nå (første syklus) | erfaren (2+ sykluser)
-
Gjeldende syklusfase? Alternativer: planlegging | utførelse | review | mellom sykluser
-
Primære verktøy? Fritekst. Eksempel: "Linear og Microsoft Teams"
-
Er OKR frikoblet fra lønnssamtale? Alternativer: ja | nei | usikkert
Etter svar: Skriv YAML med disse 6 feltene pluss fornuftige defaults for alle andre:
---
onboarding_status: fullfort
organisasjon:
navn: "[svar 1: navn]"
kortform: ""
type: "[svar 1: type]"
departement: ""
ansatte_i_okr_program: 0
domene: "[svar 2]"
geografi: "nasjonal"
program:
modenhetsnivaa: "[utledet fra svar 3: aldri prøvd→ikke-startet, prøver nå→utforsker, erfaren→pilot]"
sykluser_gjennomfort: 0
sponsor: ""
champion: ""
okr_frikoblet_fra_loenn: [svar 6: true/false]
alignment_tilnaerming: "bidireksjonell"
gjeldende_syklus:
id: "[beregnet fra dato og fase]"
periode: "[beregnet]"
fase: "[svar 4]"
antall_team: 1
verktoy:
oppgavestyring: "[parsed fra svar 5]"
okr_tracking: ""
moeteverktoy: "[parsed fra svar 5]"
leveransemetodikk: ""
kultur:
sjekk_inn_rytme: "annenhver uke"
psykologisk_trygghet: "middels"
kjente_utfordringer: []
integrasjoner:
linear:
aktivert: false
team_id: ""
project_id: ""
preferanser:
spraak: "no"
vis_eksempler: true
ambisjonsnivaa: "balansert"
---
Skriv også reinstall-overlevende org-profil til hjem-stien. Skriv profil-YAML-en
(organisasjon: + program:, uten ----fences) til en temp-fil og kjør OKF-komponisten
- skrivehelperen via Bash:
OUT=$(node ${CLAUDE_PLUGIN_ROOT}/scripts/compose-org-profile.mjs < /tmp/okr-profil.tmp \
| node ${CLAUDE_PLUGIN_ROOT}/scripts/write-org-profile.mjs)
echo "$OUT"
compose-org-profile.mjs prepender top-level OKF-nøkler (type: Organisasjonsprofil,
resource:, timestamp:) over den nestede profilen i ett frontmatter-blokk. Rapporter
«Org-profil skrevet til: $OUT». Hvis $OUT er den prosjektlokale fallbacken, vis YAML-en
for manuell plassering (jf. Feilhåndtering). Syklus-/kontekstdata forblir prosjektlokalt
i .claude/okr.local.md.
Vis kort oppsummering og foreslå /okr:oppsett full for å fylle ut resten senere.
Oppdater — endre spesifikke felt
Trigger: /okr:oppsett oppdater eller valg 1 fra ingen-argument-menyen.
- Les
.claude/okr.local.md - Vis gjeldende verdier gruppert per seksjon
- Bruk AskUserQuestion: "Hvilken seksjon vil du oppdatere?" Alternativer: Organisasjon | Program | Syklus | Verktøy | Kultur | Integrasjoner | Preferanser
- Vis feltene i valgt seksjon med gjeldende verdier
- La bruker endre ett eller flere felt
- Skriv oppdatert YAML tilbake
- Oppdater
Sist oppdaterti filen
Vis — vis gjeldende konfigurasjon
Trigger: /okr:oppsett vis eller valg 3 fra ingen-argument-menyen.
Les .claude/okr.local.md og vis innholdet formatert:
## OKR-profil for [organisasjon.navn]
### Identitet
- Navn: [navn] ([kortform])
- Type: [type]
- Departement: [departement]
- Domene: [domene]
- Ansatte i OKR-program: [tall]
### Program
- Modenhet: [modenhetsnivaa]
- Sykluser gjennomført: [tall]
- Sponsor: [sponsor]
- Champion: [champion]
- OKR frikoblet fra lønn: [ja/nei]
### Gjeldende syklus
- ID: [id]
- Periode: [periode]
- Fase: [fase]
- Antall team: [tall]
### Verktøy
[liste]
### Kultur
[liste]
### Integrasjoner
[status]
Kontekstfiler:
[list .claude/okr/ directory if exists]
Arkiver syklus
Trigger: /okr:oppsett arkiver
Forutsetninger
Les gjeldende_syklus.id fra .claude/okr.local.md (f.eks. T1-2026).
Sjekk at .claude/okr/syklus/[id]/ finnes. Hvis ikke:
Ingen aktiv syklusmappe funnet for [id].
Opprett `.claude/okr/syklus/[id]/` med OKR-filer for å bruke arkivering.
Arkiveringsflyt
-
Les gjeldende syklus — les alle
.md-filer i.claude/okr/syklus/[id]/ogstatus.mdhvis den finnes. -
Samle endelige scorer — hvis
status.mdhar endelige scorer, bruk dem. Ellers spør med AskUserQuestion:Hva ble de endelige scorene for [syklus]? Oppgi score per KR (0.0-1.0) eller ENTER for å bruke siste kjente status. -
Generer retrospektiv — skriv til
.claude/okr/syklus/[id]/retrospektiv.md:--- type: Retrospektiv syklus: [id] periode: [periode fra config] arkivert: [dato] samlet_score: [beregnet gjennomsnitt] --- # Retrospektiv [id] ## Resultater [OKR med endelige scorer, tabellformat] ## Hva gikk bra [Basert på KR som scoret 0.7+] ## Hva var utfordrende [Basert på KR som scoret <0.5, noter mønstre] ## Læring til neste syklus [Identifiser 2-3 konkrete forbedringer] ## Antipatterns observert [Sjekk mot antipatternene fra referansemateriale — nevn kun de som er relevante basert på scoremønsteret. Les ${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-antipatterns.md] -
Arkiver til historikk — opprett
.claude/okr/historikk/[id]/med Write-tool og kopier alle filer fra syklusmappen dit (les innhold, skriv til ny sti).Opprett også
.claude/okr/historikk/[id]-resultater.mdmed sammendrag: endelige scorer, topp-læringer, og lenke til full retrospektiv. -
Bekreft sletting — bruk AskUserQuestion:
Slett syklusmappen `.claude/okr/syklus/[id]/`? Den er nå arkivert i `historikk/[id]/`. Alternativer: ja | nei (behold begge)Hvis ja og Bash-tool er tilgjengelig: valider FØRST at
[id]ikke er tom OG matcher mønsteret^[TQ][1-4]-[0-9]{4}$(f.eks.T1-2026). Kun hvis valideringen passerer, kjør:rm -rf .claude/okr/syklus/[id]/. Ved tom eller malformert[id]: AVVIS slettingen og be om en gyldig syklus-id — kjør ALDRIrm -rfmed tom verdi (det ville blittrm -rf .claude/okr/syklus//og slettet hele syklus-treet). Hvis Bash ikke er tilgjengelig: vis kommandoen brukeren kan kjøre manuelt (samme validering gjelder):rm -rf .claude/okr/syklus/[id]/ -
Oppdater profil — i
.claude/okr.local.md:- Inkrementer
sykluser_gjennomfortmed 1 - Oppdater
gjeldende_syklus.idtil neste syklus:- Tertial: T1→T2→T3→T1 (med årsoppdatering)
- Kvartal: Q1→Q2→Q3→Q4→Q1 (med årsoppdatering)
- Sett
gjeldende_syklus.fasetilplanlegging - Oppdater
gjeldende_syklus.periodetil neste periodestreng
- Inkrementer
-
Opprett ny syklusmappe — skriv
.claude/okr/syklus/[ny-id]/status.mdmed OKF-frontmatter + tom mal (tabellstruktur med KR-kolonner, ingen data ennå):--- type: Status syklus: [ny-id] title: "Status [ny-id]" description: "Fremdrift og scoring for syklus [ny-id]" timestamp: "[ISO-8601]" --- # OKR Status [ny-id] [tom tabellstruktur med KR-kolonner]Regenerér deretter OKF-indeksen for prosjekt-treet:
node ${CLAUDE_PLUGIN_ROOT}/scripts/okf-index.mjs .claude/okr -
Bekreft — vis oppsummering:
Syklus [id] er arkivert i `.claude/okr/historikk/[id]/`. Gjeldende syklus er nå [ny-id] (planleggingsfase). Anbefalte neste steg: - /okr:møter — planlegg oppstartsmøte for [ny-id] - /okr:skriv — skriv nye OKR for [ny-id] - /okr:kaskade — kaskader org-OKR til team-nivå
Feilhåndtering
- Fil kan ikke skrives: Vis YAML som kan kopieres manuelt
- Bruker avbryter midt i intervju:
onboarding_status: partialallerede lagret — neste kjøring tilbyr å fortsette - Linear API feiler: Gi tydelig feilmelding, fortsett uten Linear-integrasjon
- Mappeopprettelse feiler: Vis
mkdir -p .claude/okr/strategisk-kontekst/kommando brukeren kan kjøre manuelt
Syklusberegning
Beregn gjeldende syklus-ID basert på dagens dato:
- Tertial: Jan-Apr = T1, Mai-Aug = T2, Sep-Des = T3
- Kvartal: Jan-Mar = Q1, Apr-Jun = Q2, Jul-Sep = Q3, Okt-Des = Q4
- Format:
T[1-3]-YYYYellerQ[1-4]-YYYY