oppsett.md (eneste tre-skriver m/ Write+Bash): strategisk-kontekst-filer faar OKF-frontmatter (type: Tildelingsbrev/Virksomhetsplan/Overordnede OKR), retro -> type: Retrospektiv, ny-syklus status.md -> type: Status; regenererer .claude/okr-indeksen via okf-index.mjs etter tre-skriv (2 punkter). skriv.md/ sporing.md har ikke Write -> dokumenterer OKF-frontmatter (type: OKR / Status) i eksempel-output (malen brukeren lagrer). Lukker SC2-gapet: alle konsept- filer paa disk baerer type:. Verify: okf-check fixture exit 0; suite 55/55. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SFW5scLL7oEwWWTv1fPQG6
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: transport | helse | justis | digitalisering | utdanning | 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 okf_version.)
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: transport | helse | justis | digitalisering | utdanning | 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