ktg-plugin-marketplace/plugins/okr/commands/oppsett.md
Kjell Tore Guttormsen ac95cd6a30 feat(okr): sync to v1.3.0 from ktg-privat
Syncs all changes from v1.0.0 through v1.3.0:

v1.1 (quick fixes):
- Fix deprecated Viva Goals references
- Add DFO-OKR terminology mapping
- Add tillitsvalgt/fagforening perspective
- Update Objectives recommendation from 3-5 to 2-3

v1.1 (persistent context):
- Deep onboarding interview (full/mvp)
- Persistent .claude/okr/ directory tree
- Context-aware commands
- Cycle archival with retrospective

v1.3 (AI-first differentiators):
- /okr:gap — tildelingsbrev gap analysis with coverage matrix
- /okr:analyse — cross-cycle Mermaid analytics
- SessionStart coaching hook (proactive, phase-aware)
- gapanalytiker + trendanalytiker agents
- inject-okr-context.mjs extended for historikk/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 20:31:49 +02:00

15 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 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)

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

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

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

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

  5. 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.

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

  1. 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.

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

  3. 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)

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

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

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

  4. 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)

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

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

  3. Moteverktoy? Alternativer: Microsoft Teams | Zoom | annet

  4. Leveransemetodikk? Alternativer: Scrum | Kanban | SAFe | prosjekt | annet

  5. 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)

  1. 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."

  2. 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%?"

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

  4. 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:

---
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:

    ---
    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