---
name: okr:oppsett
description: Konfigurer OKR-pluginen med dyp onboarding, profiloppdatering og syklusarkivering
allowed-tools: Read, Write, Bash, AskUserQuestion, ToolSearch, Glob
argument-hint: "[full|mvp|arkiver|oppdater|vis]"
---

# OKR Oppsett - Onboarding, konfigurasjon og syklushandtering

Interaktiv konfigurasjon av OKR-pluginen. Bygger en persistent organisasjonsprofil
som alle andre kommandoer bruker automatisk via hook-injeksjon.

## Ruting basert pa argument

| Argument | Handling |
|----------|----------|
| _(ingen)_ | Detekter eksisterende konfig, tilby meny |
| `full` | Kjor 6-fase dyp onboarding (15-20 min) |
| `mvp` | Kjor minimum viable onboarding (6 sporsmaal, ~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 enna.
Vil du kjore onboarding-intervjuet?

1. Full onboarding (6 faser, 15-20 min) — anbefalt for beste resultat
2. MVP onboarding (6 sporsmaal, ~5 min) — rask start
3. Avbryt
```

Kjor `full` eller `mvp` basert pa 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 pa nytt (full)
3. Start pa 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, verktoy).
Bruk AskUserQuestion:
```
Konfigurasjon funnet for [organisasjon.navn].

1. Oppdater konfigurasjon (endre spesifikke felt)
2. Kjor intervju pa 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 fullfort. Oppdater til `fullfort` etter siste fase.

### Fase 1 — Identitet (2 min)

Still alle sporsmaal med AskUserQuestion (grupper 2-3 sammen der naturlig):

1. **Organisasjonsnavn og kortform?**
   Eksempel: "Statens vegvesen" / "SVV"

2. **Type organisasjon?**
   Alternativer: statlig etat | direktorat | kommune | fylkeskommune

3. **Hvilket departement eller overordnet etat?**
   Eksempel: "Samferdselsdepartementet"

4. **Fagdomene?**
   Alternativer: transport | helse | justis | digitalisering | utdanning | annet

5. **Antall ansatte i OKR-programmet (ca.)?**
   Tall eller estimat

6. **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)

7. **OKR-historikk?**
   Alternativer: aldri provd | prover na (forste syklus) | erfaren (2+ sykluser)

8. **Hvis erfaren: Antall gjennomforte sykluser?**
   (Hopp over hvis "aldri provd" eller "prover na")

9. **Hvem er OKR-sponsor (navn og rolle)?**
   Personen som gir mandat og synlighet. Eksempel: "Divisjonsdirektor Kari Holm"

10. **Hvem er OKR-champion (navn og rolle)?**
    Personen som driver det operative arbeidet. Eksempel: "Seniorradgiver Per Lund"

11. **Er OKR eksplisitt koblet fra lonnssamtale og medarbeidersamtale?**
    Alternativer: ja | nei | usikkert

    **VIKTIG:** Hvis "nei" eller "usikkert" — sett `okr_frikoblet_fra_loenn: false` og
    legg til advarsel i Markdown-body:
    > **ADVARSEL:** OKR koblet til lonn er et av de farligste antipatternene.
    > Nar medarbeidere vet at OKR-score pavirker lonn, setter de trygge, lave mal
    > i stedet for ambisiose stretch goals. Anbefaler sterkt a dekoblere for utrulling.

12. **Hva er alignment-tilnaermingen?**
    Alternativer: top-down | bottom-up | bidireksjonell
    Forklar kort: "Bidireksjonell betyr at ledelsen setter retning og teamene foreslaar
    egne OKR som kobles opp. Dette er anbefalt tilnaerming."

**Etter fase 2:** Oppdater `.claude/okr.local.md` med program-seksjonen.

### Fase 3 — Strategisk kontekst (5 min)

13. **Har dere et tildelingsbrev for 2026?**
    Alternativer: ja | nei

    Hvis ja: "Vil du lagre nokkelmal fra tildelingsbrevet? Lim inn de viktigste malene
    (stikkpunkter, ikke hele brevet) sa kan pluginen bruke dem til alignment."

    Hvis brukeren limer inn tekst: skriv til
    `.claude/okr/strategisk-kontekst/tildelingsbrev-2026.md` med YAML-frontmatter
    og innlimt innhold. Opprett mappene med Write-tool.

14. **Har dere en virksomhetsplan eller strategiplan?**
    Eventuelt lenke eller nokkelpunkter. Hvis innhold gis: skriv til
    `.claude/okr/strategisk-kontekst/virksomhetsplan.md`.

15. **Har dere org-niva OKR for 2026?**
    Alternativer: ja | nei | planlegges

    Hvis ja: "Lim inn org-OKR (Objectives og Key Results) sa pluginen kan bruke dem
    til kaskadering og alignment-sjekk."

    Hvis innhold gis: skriv til `.claude/okr/strategisk-kontekst/overordnede-okr.md`.

**Etter fase 3:** Oppdater `.claude/okr.local.md` med eventuell strategisk kontekst-info.

### Fase 4 — Struktur (3 min)

16. **Hvilke OKR-nivaer bruker dere?**
    Alternativer (flervalg): etat | divisjon | avdeling | seksjon | team

17. **Din rolle i OKR-programmet?**
    Alternativer: leder | produkteier | seksjonsleder | koordinator | annet

18. **Antall team som kjorer OKR denne syklusen (ca.)?**
    Tall

19. **Bruker dere bidireksjonell kaskadering?**
    Forklaring: "Teamene foreslaar 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 — Verktoy (2 min)

20. **Oppgavestyringsverktoy?**
    Alternativer: Linear | Jira | Azure DevOps | Planner | ingen | annet

21. **OKR-sporingsverktoy?**
    Alternativer: Oboard | Quantive | regneark | ingen | annet

22. **Moteverktoy?**
    Alternativer: Microsoft Teams | Zoom | annet

23. **Leveransemetodikk?**
    Alternativer: Scrum | Kanban | SAFe | prosjekt | annet

24. **Vil du koble Linear til OKR-pluginen?**
    Alternativer: ja | nei

    Hvis ja: Kjor Linear-oppsett:
    1. Sjekk om Linear MCP er konfigurert — les `~/.claude/settings.json`
    2. Hvis ikke: veilede oppsett av MCP-server (referer til Linear MCP docs)
    3. Bruk ToolSearch for a finne Linear-tools, hent teams og projects
    4. La bruker velge team og project for OKR-tracking

**Etter fase 5:** Oppdater verktoy- og integrasjoner-seksjonen.

### Fase 6 — Kultur (3 min)

25. **Hva er check-in-rytmen (eller onsket rytme)?**
    Alternativer: ukentlig | annenhver uke | maanedlig
    Anbefaling: "Annenhver uke er et godt utgangspunkt. Ukentlig for team i utfoerelsesfase."

26. **Psykologisk trygghet for a sette stretch goals?**
    Alternativer: lav | middels | hoy
    Forklaring: "Kan teammedlemmer trygt foreslaa ambisiose mal uten a frykte konsekvenser
    om de ikke naar 100%?"

27. **Kjente utfordringer eller antipatterns dere har sett?**
    Fritekst, ENTER for a hoppe over.
    Eksempler: "set-and-forget", "aktivitetsfokus i KR", "for mange Objectives"

28. **Er tillitsvalgte involvert i OKR-prosessen?**
    Alternativer: ja | nei | planlegges

**Etter fase 6:** Oppdater kultur-seksjonen. Sett `onboarding_status: fullfort`.

### Fullforingssteg

Etter alle 6 faser:

1. Skriv komplett YAML til `.claude/okr.local.md` (oppdater alle seksjoner)
2. Sett `onboarding_status: fullfort` og `Sist oppdatert: [dato]`
3. Vis oppsummering:

```
Onboarding fullfort for [organisasjon]!

Profil:
- Organisasjon: [navn] ([type])
- Modenhet: [niva] ([N] sykluser gjennomfort)
- Gjeldende syklus: [id] ([fase])
- Verktoy: [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 forste OKR for denne syklusen
- /okr:kvalitet — sjekk eksisterende OKR
- /okr:moter — planlegg OKR-workshop eller kick-off
```

---

## MVP onboarding — 6 sporsmaal

For brukere som vil komme raskt i gang. Samle alle sporsmaal i en AskUserQuestion
eller maks 2 runder:

1. **Organisasjonsnavn og type?**
   Eksempel: "Statens vegvesen, statlig etat"

2. **Fagdomene?**
   Alternativer: transport | helse | justis | digitalisering | utdanning | annet

3. **OKR-modenhet?**
   Alternativer: aldri provd | prover na (forste syklus) | erfaren (2+ sykluser)

4. **Gjeldende syklusfase?**
   Alternativer: planlegging | utfoerelse | review | mellom sykluser

5. **Primaere verktoy?**
   Fritekst. Eksempel: "Linear og Microsoft Teams"

6. **Er OKR frikoblet fra lonnssamtale?**
   Alternativer: ja | nei | usikkert

**Etter svar:** Skriv YAML med disse 6 feltene pluss fornuftige defaults for alle andre:

```yaml
---
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 provd→ikke-startet, prover na→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"
---
```

Vis kort oppsummering og foreslaa `/okr:oppsett full` for a fylle ut resten senere.

---

## Oppdater — endre spesifikke felt

Trigger: `/okr:oppsett oppdater` eller valg 1 fra ingen-argument-menyen.

1. Les `.claude/okr.local.md`
2. Vis gjeldende verdier gruppert per seksjon
3. Bruk AskUserQuestion: "Hvilken seksjon vil du oppdatere?"
   Alternativer: Organisasjon | Program | Syklus | Verktoy | Kultur | Integrasjoner | Preferanser
4. Vis feltene i valgt seksjon med gjeldende verdier
5. La bruker endre ett eller flere felt
6. Skriv oppdatert YAML tilbake
7. Oppdater `Sist oppdatert` i 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 gjennomfort: [tall]
- Sponsor: [sponsor]
- Champion: [champion]
- OKR frikoblet fra lonn: [ja/nei]

### Gjeldende syklus
- ID: [id]
- Periode: [periode]
- Fase: [fase]
- Antall team: [tall]

### Verktoy
[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 a bruke arkivering.
```

### Arkiveringsflyt

1. **Les gjeldende syklus** — les alle `.md`-filer i `.claude/okr/syklus/[id]/`
   og `status.md` hvis den finnes.

2. **Samle endelige scorer** — hvis `status.md` har endelige scorer, bruk dem.
   Ellers spor med AskUserQuestion:
   ```
   Hva ble de endelige scorene for [syklus]?
   Oppgi score per KR (0.0-1.0) eller ENTER for a bruke siste kjente status.
   ```

3. **Generer retrospektiv** — skriv til `.claude/okr/syklus/[id]/retrospektiv.md`:

   ```markdown
   ---
   syklus: [id]
   periode: [periode fra config]
   arkivert: [dato]
   samlet_score: [beregnet gjennomsnitt]
   ---

   # Retrospektiv [id]

   ## Resultater

   [OKR med endelige scorer, tabellformat]

   ## Hva gikk bra

   [Basert pa KR som scoret 0.7+]

   ## Hva var utfordrende

   [Basert pa KR som scoret <0.5, noter monstere]

   ## Laering til neste syklus

   [Identifiser 2-3 konkrete forbedringer]

   ## Antipatterns observert

   [Sjekk mot antipatternene fra referansemateriale —
    nevn kun de som er relevante basert pa scoremansteret.
    Les ${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-antipatterns.md]
   ```

4. **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 ogsa `.claude/okr/historikk/[id]-resultater.md` med sammendrag:
   endelige scorer, topp-laeringer, og lenke til full retrospektiv.

5. **Bekreft sletting** — bruk AskUserQuestion:
   ```
   Slett syklusmappen `.claude/okr/syklus/[id]/`?
   Den er na arkivert i `historikk/[id]/`.
   Alternativer: ja | nei (behold begge)
   ```

   Hvis ja og Bash-tool er tilgjengelig: `rm -rf .claude/okr/syklus/[id]/`
   Hvis Bash ikke tilgjengelig: vis kommando brukeren kan kjore manuelt:
   `rm -rf .claude/okr/syklus/[id]/`

6. **Oppdater profil** — i `.claude/okr.local.md`:
   - Inkrementer `sykluser_gjennomfort` med 1
   - Oppdater `gjeldende_syklus.id` til neste syklus:
     - Tertial: T1→T2→T3→T1 (med aarsoppdatering)
     - Kvartal: Q1→Q2→Q3→Q4→Q1 (med aarsoppdatering)
   - Sett `gjeldende_syklus.fase` til `planlegging`
   - Oppdater `gjeldende_syklus.periode` til neste periodestreng

7. **Opprett ny syklusmappe** — skriv `.claude/okr/syklus/[ny-id]/status.md` med
   tom mal (tabellstruktur med KR-kolonner, ingen data enna).

8. **Bekreft** — vis oppsummering:
   ```
   Syklus [id] er arkivert i `.claude/okr/historikk/[id]/`.
   Gjeldende syklus er na [ny-id] (planleggingsfase).

   Anbefalte neste steg:
   - /okr:moter — planlegg oppstartsmate for [ny-id]
   - /okr:skriv — skriv nye OKR for [ny-id]
   - /okr:kaskade — kaskader org-OKR til team-niva
   ```

---

## Feilhandtering

- **Fil kan ikke skrives:** Vis YAML som kan kopieres manuelt
- **Bruker avbryter midt i intervju:** `onboarding_status: partial` allerede lagret — neste kjoring tilbyr a fortsette
- **Linear API feiler:** Gi tydelig feilmelding, fortsett uten Linear-integrasjon
- **Mappeopprettelse feiler:** Vis `mkdir -p .claude/okr/strategisk-kontekst/` kommando brukeren kan kjore manuelt

## Syklusberegning

Beregn gjeldende syklus-ID basert pa 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]-YYYY` eller `Q[1-4]-YYYY`
