okr/commands/skriv.md
Kjell Tore Guttormsen 44ceec7205 fix(okr): C7b remediering R1-R4 (release-relevante review-funn for 1.8.0)
Lukker de fire release-relevante MAJOR-funnene fra /trekreview (S33). Alle TDD
roed -> groenn, ingen fiks landet uten en test som feilet foerst. Suite 163 -> 167.

R1 (af16d5e4) hooks/scripts/coaching-hook.mjs:83 -- LEVENDE REGRESJON innfoert av
1.8.0. Denne releasen skrev status-malen (commands/sporing.md:86-88) om til den
kanoniske skalaen On Track/At Risk/Off Track, mens hooken fortsatt talte kun
/i fare|blokkert/i over tabellrader. En status generert under 1.8.0 ga derfor
atRiskCount = 0 og SessionStart-nudgen sluttet stille aa utloese seg. Hooken
teller naa de kanoniske etikettene; de to norske er BEHOLDT som bakover-
kompatibilitet for status-filer skrevet foer 1.8.0. Nudge-teksten bruker samme
kanoniske vokabular. Ny testcase mates av malen slik den faktisk genereres i dag;
den eksisterende casen beholder gammelt vokabular og daekker legacy-stien.

R2 (7ec575be) F-i-omskrivingen ga hver kommando en Kontekstbevissthet-blokk som
INSTRUERER Glob, men allowed-tools ble kun utvidet i kaskade.md. Glob lagt til i
export, gap, governance, innfoering, kvalitet, moeter, skriv, sporing. Ny vakt-
case (k): nevner BODY verktoeyet, maa frontmatter deklarere det (13 kommandoer
instruerer Glob; alle 13 dekket). Case (i) grepper kun etter fjernede fraser og
kunne ikke fange dette.

R3 (5e61ae0d) tests/package-shape.test.mjs asserterte KUN package.json -- som er
private:true og dermed den ene flaten som aldri shipper. En delvis bump ville
shippet groenn. Ny versjonssync-case dekker .claude-plugin/plugin.json, README-
badgen og begge SKILL.md, med forventet verdi UTLEDET fra package.json (ett sted
aa endre ved neste bump). Mutasjonsbevist: hver av de fire flatene tilbakestilt
til 1.7.1 en om gangen -> casen roed i alle fire tilfeller.

R4 (ccff16e1 + 231c53fc) Tre parallelle confidence-etikettsett overlevde F-c:
fremdriftssporer-agent.md:68 ("Paa sporet / I fare / Blokkert"), :98
("Confidence: [Hoey/Medium/Lav]" -- en annen akse: stoerrelse, ikke sannsynlighet)
og SKILL.md:48 ("blocked"; kanonisk er "off track"). Alle tre erstattet med
referanse til kanon (okr-framework.md:389-392). sporing.md og agenten den
delegerer til svarer naa i samme vokabular. Vakt-case (a)/(b) skanner naa samme
sett som (d) allerede brukte (+ agents/ + SKILL.md), samlet i canonScan(). Ny
case (a2) fanger etikettsett skrevet som bullet eller mal-linje -- tabell-
signaturen alene fanget dem ikke, og det var nettopp formen driften overlevde i.
Divergens gjenkjennes STRUKTURELT (skraastrek-enumerasjon av >= 2 etiketter, med
>= 1 ikke-kanonisk), saa loepende prosa som "For KR i fare" og "Blokkert av
eksterne faktorer" ikke gir falske positive. Verifisert: roed-listen var noeyaktig
de 3 kjente linjene, ingen andre.

CHANGELOG/README: vakt-antall 13 -> 15 cases, suite 149 -> 167, og de fire
fiksene lagt inn under [1.8.0] (Added + Fixed). Ingen versjonsbump.

GJENSTAAR fra reviewet (3 MAJOR, IKKE i denne bolgen): 607313e3 F-d-kadens-
moensteret kan ikke feile paa den kanoniske kadens-tabellen; 029ef814
freshen-references.md:24 baerer fortsatt en foreldet kontekstblokk og vaktens
exclude-kommentar kaller fila feilaktig "allerede-fikset" (den er utenfor
1.8.0-scope by design, jf. ba91fc2 -- kommentaren er usann, ikke ekskluderingen);
7579d59c "Outcome" er utestbar i 10-dims-casen pga. substring-containment.

Verify: node --test --test-reporter=tap tests/*.test.mjs -> 167 pass / 0 fail.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016pUfkQ1YyH75z9y6RBaBHG
2026-07-25 12:33:55 +02:00

6.3 KiB

name description allowed-tools argument-hint
okr:skriv Skriv nye OKR med veiledning for Objectives og Key Results Read, AskUserQuestion, Task, Glob [mål, strategi, eller tildelingsbrev-kontekst]

OKR Skriv - Lag nye OKR

Hjelp brukeren med å skrive nye OKR for norsk offentlig sektor.

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 eksisterende OKR i syklusen — les dem direkte i stedet for å be brukeren lime inn innhold.
  • Glob .claude/okr/strategisk-kontekst/overordnede-okr.md — finnes den, les den for alignment-context, så nye OKR kobles til org-nivå.
  • Glob .claude/okr/strategisk-kontekst/tildelingsbrev-*.md — finnes en, bruk den som kilde til styringskrav i stedet for å spørre etter strategimål.
  • 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.

Arbeidsflyt

  1. Forstå kontekst — sjekk injisert kontekst først. Hvis organisasjon, syklus og strategiske mål allerede er kjent, hopp direkte til Objective Crafter med disse som utgangspunkt. Spør kun med AskUserQuestion om det som mangler:

    • Hvilket team/avdeling?
    • Overordnet strategimål de skal bidra til?
    • Hvilken syklus (T1, T2, T3)?
    • Har de input (vag idé, strategi, eller tildelingsbrev)?
  2. Velg riktig tilnærming basert på input:

    • Vag idé → Start med Objective Crafter
    • Har Objective, trenger KR → Gå til KR Generator
    • Har strategi/tildelingsbrev → Start med Strategi-til-OKR
    • Trenger å kalibrere ambisjon → Bruk Moonshot/Roofshot
  3. Les relevant referansemateriale:

    • ${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-framework.md — metodikk og scoring
    • ${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-examples.md — gode og dårlige eksempler
  4. Lever output og foreslå neste steg (kvalitetssjekk, kaskadering).

Objective Crafter

Transformer uklare ambisjoner til inspirerende Objectives.

Kriterier for gode Objectives

Et godt Objective er:

  • Inspirerende — ville folk bli stolte av å oppnå dette?
  • Outcome-fokusert — resultat, ikke aktivitet
  • Oppnåelig innen 4-måneders syklus
  • Klart nok til å guide prioriteringer
  • Ikke målbart — det er Key Results sin jobb

Anti-eksempler

Dårlig Bedre Problem
"Forbedre kundeservice" "Levere raskere support for søknadsbehandling" Vag
"Implementere nytt system" "Gi saksbehandlere sanntids innsikt" Aktivitet
"Digitalisere etaten" "Gjøre tjenestefornyelse friksjonsfri" For bredt
"Øke kundetilfredshet til 4.5" "Bli den mest responsive serviceenheten i etaten" Har tall (= KR)

Output-format

For hvert forslag (2-3 stk):

  1. Objective-tekst (én setning)
  2. Hvorfor: 1-2 setninger om hvorfor dette betyr noe
  3. Suksess: Konkret eksempel på hva som er annerledes

Ranger fra best til minst egnet.

KR Generator

Generer målbare Key Results for et gitt Objective.

Kriterier for gode Key Results

  • Målbare med tall — baseline → target
  • Outcome-fokusert — måler resultat, ikke aktivitet
  • 2-5 stk per Objective — typisk 3
  • Balanserte — minst én per dimensjon (kvantitet, kvalitet, hastighet)
  • Har datakilde — vet hvor tallene kommer fra

Typer Key Results

Type Eksempel Når bruke
Metrisk "Redusere saksbehandlingstid fra 14 til 5 dager" Har baseline-data
Milepæl "Lansere ny portal for brukertesting innen 1. august" Binært resultat
Prosentandel "Øke andel digitale søknader fra 60% til 85%" Relativ endring

Output-format per KR

KR[n]: [Formulering med baseline → target]
- Målemetode: [Hvordan måles dette]
- Datakilde: [Hvor hentes tallene]
- Type: Committed / Aspirational

Strategi-til-OKR

Når brukeren har strategidokument eller tildelingsbrev som input:

  1. Parse input — identifiser konkrete mål og forventninger
  2. Kategoriser:
    • Driftskrav ("Oppretthold X") → KPI, ikke OKR
    • Resultatmål med tall → Key Result-kandidat
    • Strategiske satsinger → Objective-kandidat
    • Rapporteringskrav → Rapporteringsrutine, ikke OKR
  3. Transformer OKR-kandidater — gjør inspirerende, outcome-fokusert
  4. Vis kobling — fra kilde til OKR

Moonshot/Roofshot-kalibrering

Hjelp med å balansere committed vs aspirational mål.

Type Mål-score Karakter
Committed (Roofshot) 1.0 Må oppnås — regulatorisk, sikkerhet
Aspirational (Moonshot) 0.7 Stretch — innovasjon, forbedring

Anbefalt balanse

  • ~60% Committed, ~40% Aspirational
  • Alle team bør ha minst ett aspirational mål
  • Nye OKR-team: Start med 70/30 committed/aspirational

Eksempel på komplett output

Når en OKR lagres som konsept-fil i second-brain-treet (.claude/okr/syklus/[id]/okr-[team].md), bær den OKF-frontmatter (påkrevd type: OKR + anbefalt resource/title/description/tags-liste/timestamp):

---
type: OKR
resource: ".claude/okr/syklus/T2-2026/okr-digital.md"
title: "OKR Digital avdeling T2-2026"
description: "Gjøre tjenestefornyelse friksjonsfri"
tags:
- digital
- tjenestefornyelse
timestamp: "[ISO-8601]"
---

## OKR for Digital avdeling — T2-2026

**Objective**: Gjøre tjenestefornyelse til en friksjonsfri opplevelse

**Key Results**:
1. Øke andel heldigitale fornyelser fra 45% til 75%
   - Datakilde: Fagsystemet, månedlig rapport
   - Type: Aspirational
2. Redusere gjennomsnittlig behandlingstid fra 14 til 5 arbeidsdager
   - Datakilde: Saksbehandlingssystemet
   - Type: Committed
3. Oppnå brukertilfredshet 4.2 av 5.0 (baseline: 3.4)
   - Datakilde: Innbyggerundersøkelsen, kvartalsmåling
   - Type: Aspirational

Referanser

  • ${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-framework.md — full metodikk
  • ${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-examples.md — eksempler
  • ${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-cheatsheet.md — hurtigreferanse for OKR-formulering