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>
592 lines
19 KiB
Markdown
592 lines
19 KiB
Markdown
---
|
|
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 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):
|
|
|
|
1. **Organisasjonsnavn og kortform?**
|
|
Eksempel (fiktiv eksempeletat): «Direktoratet for digital tjenesteutvikling» / «DDT»
|
|
|
|
2. **Type organisasjon?**
|
|
Alternativer: statlig etat | direktorat | kommune | fylkeskommune
|
|
|
|
3. **Hvilket departement eller overordnet etat?**
|
|
Eksempel: "fagdepartementet"
|
|
|
|
4. **Fagdomene?**
|
|
Alternativer: helse | justis | digitalisering | utdanning | miljø | 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 prøvd | prøver nå (første syklus) | erfaren (2+ sykluser)
|
|
|
|
8. **Hvis erfaren: Antall gjennomførte sykluser?**
|
|
(Hopp over hvis "aldri prøvd" eller "prøver nå")
|
|
|
|
9. **Hvem er OKR-sponsor (navn og rolle)?**
|
|
Personen som gir mandat og synlighet. Eksempel: "Divisjonsdirektør Kari Holm"
|
|
|
|
10. **Hvem er OKR-champion (navn og rolle)?**
|
|
Personen som driver det operative arbeidet. Eksempel: "Seniorrådgiver Per Lund"
|
|
|
|
11. **Er OKR eksplisitt koblet fra lønnssamtale 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 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.
|
|
|
|
12. **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)
|
|
|
|
13. **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.md` med **OKF-frontmatter**
|
|
(second-brain-kompatibel: påkrevd `type:` i Title-Case + anbefalt `resource`/
|
|
`title`/`description`/`tags`-liste/`timestamp`) og innlimt innhold. Opprett mappene
|
|
med Write-tool:
|
|
|
|
```markdown
|
|
---
|
|
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]
|
|
```
|
|
|
|
14. **Har dere en virksomhetsplan eller strategiplan?**
|
|
Eventuelt lenke eller nøkkelpunkter. Hvis innhold gis: skriv til
|
|
`.claude/okr/strategisk-kontekst/virksomhetsplan.md` med OKF-frontmatter
|
|
(`type: Virksomhetsplan` + anbefalte felt som over).
|
|
|
|
15. **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.md`
|
|
med 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:
|
|
|
|
```bash
|
|
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)
|
|
|
|
16. **Hvilke OKR-nivåer 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 kjører OKR denne syklusen (ca.)?**
|
|
Tall
|
|
|
|
19. **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)
|
|
|
|
20. **Oppgavestyringsverktøy?**
|
|
Alternativer: Linear | Jira | Azure DevOps | Planner | ingen | annet
|
|
|
|
21. **OKR-sporingsverktøy?**
|
|
Alternativer: Oboard | Quantive | regneark | ingen | annet
|
|
|
|
22. **Møteverktøy?**
|
|
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: Kjør 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 å finne Linear-tools, hent teams og projects
|
|
4. La bruker velge team og project for OKR-tracking
|
|
|
|
**Etter fase 5:** Oppdater verktøy- og integrasjoner-seksjonen.
|
|
|
|
### Fase 6 — Kultur (3 min)
|
|
|
|
25. **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."
|
|
|
|
26. **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%?"
|
|
|
|
27. **Kjente utfordringer eller antipatterns dere har sett?**
|
|
Fritekst, ENTER for å 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`.
|
|
|
|
### Fullføringssteg
|
|
|
|
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. **Skriv reinstall-overlevende org-profil til hjem-stien.** Profilen
|
|
(`organisasjon:`- og `program:`-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:
|
|
|
|
```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 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-level `navn:`/`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.md` og
|
|
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 `$OUT` peker 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.md` på plass selv. Behold den prosjektlokale
|
|
`.claude/okr.local.md`-skrivingen (steg 1) for syklus- og strategisk-kontekst-data —
|
|
kun selve profilen migrerer til hjem.
|
|
4. 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:
|
|
|
|
1. **Organisasjonsnavn og type?**
|
|
Eksempel (fiktiv eksempeletat): «Direktoratet for digital tjenesteutvikling, statlig etat»
|
|
|
|
2. **Fagdomene?**
|
|
Alternativer: helse | justis | digitalisering | utdanning | miljø | annet
|
|
|
|
3. **OKR-modenhet?**
|
|
Alternativer: aldri prøvd | prøver nå (første syklus) | erfaren (2+ sykluser)
|
|
|
|
4. **Gjeldende syklusfase?**
|
|
Alternativer: planlegging | utførelse | review | mellom sykluser
|
|
|
|
5. **Primære verktøy?**
|
|
Fritekst. Eksempel: "Linear og Microsoft Teams"
|
|
|
|
6. **Er OKR frikoblet fra lønnssamtale?**
|
|
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 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:
|
|
|
|
```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.
|
|
|
|
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 | Verktøy | 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 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
|
|
|
|
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 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.
|
|
```
|
|
|
|
3. **Generer retrospektiv** — skriv til `.claude/okr/syklus/[id]/retrospektiv.md`:
|
|
|
|
```markdown
|
|
---
|
|
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]
|
|
```
|
|
|
|
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 også `.claude/okr/historikk/[id]-resultater.md` med sammendrag:
|
|
endelige scorer, topp-læringer, og lenke til full retrospektiv.
|
|
|
|
5. **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 ALDRI
|
|
`rm -rf` med tom verdi (det ville blitt `rm -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]/`
|
|
|
|
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 årsoppdatering)
|
|
- Kvartal: Q1→Q2→Q3→Q4→Q1 (med årsoppdatering)
|
|
- 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
|
|
OKF-frontmatter + tom mal (tabellstruktur med KR-kolonner, ingen data ennå):
|
|
|
|
```markdown
|
|
---
|
|
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:
|
|
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/scripts/okf-index.mjs .claude/okr
|
|
```
|
|
|
|
8. **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: partial` allerede 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]-YYYY` eller `Q[1-4]-YYYY`
|