Kjeden /okr:rapport -> /okr:sporing -> status.md var beskrevet i prosa, men manglet et mekanisk ledd: ingenting foerte en generert rad inn i status.md -- fila coaching-hook teller at-risk-KR i, /okr:moeter bygger agenda fra, og /okr:oppsett arkiver leser sluttscorer fra. Rot-aarsaken var at HELE sporings-stien var lesende (ingen Write/Edit/Bash i allowed-tools). scripts/syklus-status.mjs tar confidence som JSON paa stdin og bygger radene gjennom statusrapport() i lib/syklus-rapport.mjs -- samme kode som tertialrapporten. Aritmetikken kan derfor ikke drifte fra /okr:rapport, fordi det ikke finnes en andre implementasjon av den. En LLM skriver ikke av et tall paa veien, og en maskin utleder ikke et trafikklys: beslutning 9 staar, presist formulert som at generatoren PLASSERER en etikett den faar inn som data og UTLEDER aldri en. Haandhevet i kode, ikke i prosa: lukket vokabular (On Track/At Risk/Off Track), full dekning (en tom confidence-celle ville lest som groenn hos hver konsument), typo-fangst paa ukjente KR-navn, og kuratert-fil-vern -- en status.md uten provenans-noekkelen `kilde: sporing` er haandholdt og overskrives aldri (samme mekanikk som innboks-write bruker med `kilde: innboks`). Suite 329 -> 343. Fem vakter mutasjons-verifisert: rad-drift mot tertialrapporten, vokab, dekning (baade alene og sammen med vokab-vakten som overlapper den), og kuratert-vernet.
6.6 KiB
| name | description | allowed-tools | argument-hint |
|---|---|---|---|
| okr:sporing | Spor OKR-fremgang, beregn score og generer check-in rapporter | Read, Bash, AskUserQuestion, Task, ToolSearch, Glob | [OKR eller tall for oppdatering] |
OKR Sporing - Fremgang og scoring
Hjelp brukeren med å spore OKR-fremgang, beregne score og strukturere check-ins.
Kontekstbevissthet
Hooken for-injiserer ikke lenger en fil-liste — den emitterer kun kjerne-profil
- en peker til wikien. Oppdag OKR-konteksten direkte fra disk FØR du spør brukeren:
- Glob
.claude/okr/syklus/*/for de OKR-filene som skal spores — les dem direkte i stedet for å be brukeren lime inn OKR-tekst. - Glob
.claude/okr/syklus/*/status.mdfor forrige statusrapport i samme syklus, så fremgang måles mot sist rapporterte verdi og ikke mot baseline alene. - Trenger du bredere kontekst fra brukerens wiki, invoker
okr-second-brain-search. - Kjenner du allerede organisasjon og syklus fra kjerne-profilen: hopp over de spørsmålene.
Scoring-system
Skala: 0.0 - 1.0
| Score | Betydning | Typisk for |
|---|---|---|
| 1.0 | 100% oppnådd | Committed mål |
| ≈0.7 | Sweet spot — 0.7 = forventet for aspirational; 0.6-0.7 = sweet spot (Google/Doerr) | Aspirational mål |
| 0.5-0.7 | Delvis suksess | Trenger analyse |
| < 0.5 | Ikke oppnådd | Trenger intervensjon |
Beregningsformel
Score = (Nåværende - Baseline) / (Target - Baseline)
Arbeidsflyt
Ved statusoppdatering
-
Samle inn tall — les OKR-filer fra
.claude/okr/syklus/[id]/(hvis tilgjengelig fra system-kontekst) eller be brukeren oppgi OKR. Spør med AskUserQuestion:- Nåværende verdi for hver KR
- Baseline og target (hvis ikke kjent)
- Dato for måling
Er
/okr:rapport tertialkjørt for syklusen, finnes tallene allerede irapport-tertial.md— les den i stedet for å spørre om dem på nytt. Confidence-kolonnen der står tom med vilje: generatoren eier aritmetikken, denne kommandoen eier vurderingen. Det er den kolonnen du fyller i steg 3. -
Beregn score per KR, og oppsummer per type — aldri som ett felles tall. Committed og aspirational måles mot hver sin målestokk, og et aggregat på tvers av dem er tvetydig (
okr-framework.md, committed/aspirational-skillet):- Committed: hvor mange KR som har nådd kravet. Et committed KR er nådd eller ikke; et snitt av binære krav er ikke en størrelse.
- Aspirational: snittet på tvers av aspirational-KR. Rundt 0.7 er forventet måloppnåelse, ikke svikt.
-
Vurder confidence — sett nivået fra den kanoniske confidence-tabellen i
okr-framework.md(On Track 🟢 / At Risk 🟡 / Off Track 🔴, sannsynlighet for å nå target). Innfør ingen egne nivåer eller terskler her. Trend er ett innspill til vurderingen: peker den mot target, flater den ut, eller har fremgangen stoppet? -
Skriv
status.mdmed scriptet — aldri for hånd. Du eier vurderingen; generatoren eier tallene. Lever confidence som JSON på stdin, ett oppslag fra KR-navn (nøyaktig som ikr*_navn) til etikett:node ${CLAUDE_PLUGIN_ROOT}/scripts/syklus-status.mjs .claude/okr/syklus/[id] <<'JSON' { "Andel digitale søknader (prosent)": "At Risk", "Gjennomsnittlig saksbehandlingstid (dager)": "On Track" } JSONEtikettene er det lukkede vokabularet fra
okr-framework.md:On Track,At Risk,Off Track. Alle KR i syklusen må ha en etikett — scriptet nekter å skrive en fil med tomme celler, fordi en slik fil ser vurdert ut uten å være det, og konsumentene ville lest den som grønn.Skriv aldri av tallene selv. Scriptet bygger radene med samme kode som
/okr:rapport, så score og avvik istatus.mder de samme bytene der.Exit-koder:
0skrevet ·1domenefeil (ugyldig eller manglende etikett, eller en håndholdtstatus.mdi veien — den overskrives aldri) ·2bruksfeil (feil argument, katalogen finnes ikke, ugyldig JSON). -
Presenter resultatet med anbefalte tiltak, og pek på fila som ble skrevet.
Ved ukentlig check-in
Generer en strukturert check-in:
- Status på hver KR (traffic light)
- Blokkere og støttebehov
- Beslutninger som trengs
- Fokus neste periode
Fila scriptet skriver
.claude/okr/syklus/[id]/status.md er et OKF-konsept i second-brain-treet, ikke løs
markdown. Scriptet setter frontmatteren selv — type: Status (uten den feller
okf-check hele roten) og kilde: sporing, provenans-nøkkelen som gjør at en senere
kjøring vet at fila er generert og trygt kan erstatte den. Etikettene er ASCII, uten
emoji, som resten av den maskingenererte flaten; coaching-hook matcher på ordene.
Forkortet utdrag av resultatet:
---
type: Status
title: Statusrapport T1-2026
timestamp: "2026-05-01T10:00:00.000Z"
kilde: sporing
---
# Statusrapport T1-2026
## Committed Key Results
Committed KR maales binaert mot kravet: kravet er naadd eller ikke. En score
under 1.0 er et avvik som skal forklares, ikke et godt resultat.
### Trafikksikkerhet og tunnelsikkerhet
| KR | Baseline | Target | Naa | Score | Avvik | Confidence |
|----|----------|--------|-----|-------|-------|------------|
| Tunneler med oppgradert sikkerhetsutrustning (antall) | 12 | 20 | 17 | 0.63 | Ja | At Risk |
## Avvik som skal forklares
## Aspirational Key Results
| KR | Baseline | Target | Naa | Score | Avvik | Confidence |
|----|----------|--------|-----|-------|-------|------------|
| Andel digitale soeknader (prosent) | 60 | 85 | 63 | 0.12 | - | At Risk |
**Snitt aspirational: 0.23** over 2 KR.
Rammeteksten om committed, avvik og aspirational kommer fra generatoren — du skal ikke skrive den om. Det du eier, og som ikke finnes i fila, er tiltakene: presenter dem i svaret ditt.
Eksempel på anbefalte tiltak:
- Prioriter oppgraderingen av de tre gjenstående tunnelene — kravet er et avvik, ikke et delresultat.
- Kjør brukerundersøkelse på selvbetjeningsløsningen før neste måling.
Linear-integrasjon
Hvis Linear er konfigurert (sjekk med ToolSearch):
- Hent aktive OKR-issues
- Oppdater status-felt
- Legg til kommentar med score
Referanser
${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-calculator.md— beregningsformler${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-framework.md— scoring-metodikk${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/metrics-library.md— metrikkbibliotek for offentlige KR${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-integrations.md— Linear-/verktøyintegrasjon for statussporing