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
115 lines
4 KiB
Markdown
115 lines
4 KiB
Markdown
---
|
|
name: okr:sporing
|
|
description: Spor OKR-fremgang, beregn score og generer check-in rapporter
|
|
allowed-tools: Read, AskUserQuestion, Task, ToolSearch, Glob
|
|
argument-hint: "[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.md` for 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
|
|
|
|
1. **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
|
|
|
|
2. **Beregn score** per KR og samlet (vektet gjennomsnitt)
|
|
|
|
3. **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?
|
|
|
|
4. **Generer rapport** med anbefalte tiltak
|
|
|
|
### Ved ukentlig check-in
|
|
|
|
Generer en strukturert check-in:
|
|
1. Status på hver KR (traffic light)
|
|
2. Blokkere og støttebehov
|
|
3. Beslutninger som trengs
|
|
4. Fokus neste periode
|
|
|
|
## Eksempel på output
|
|
|
|
Når statusrapporten lagres som `.claude/okr/syklus/[id]/status.md` i second-brain-treet,
|
|
bær filen **OKF-frontmatter** (påkrevd `type: Status` + anbefalt `title`/`description`/
|
|
`timestamp`); rapportinnholdet under følger frontmatteren:
|
|
|
|
```markdown
|
|
---
|
|
type: Status
|
|
syklus: T1-2026
|
|
title: "Status T1-2026"
|
|
description: "Fremdrift og scoring uke 8 av 16"
|
|
timestamp: "[ISO-8601]"
|
|
---
|
|
|
|
## OKR Status - Uke 8 av 16
|
|
|
|
### Objective: Forbedre trafikksikkerhet i skolesoner
|
|
|
|
| KR | Baseline | Target | Nå | Score | Status |
|
|
|----|----------|--------|-----|-------|--------|
|
|
| KR1: Redusere ulykker | 40 | 30 | 35 | 0.50 | At Risk 🟡 |
|
|
| KR2: Fartshumper installert | 0% | 100% | 60% | 0.60 | On Track 🟢 |
|
|
| KR3: Foreldre-tilfredshet | 60% | 90% | 75% | 0.50 | At Risk 🟡 |
|
|
|
|
**Samlet score: 0.53** (vektet gjennomsnitt)
|
|
|
|
**Samlet confidence: At Risk 🟡**
|
|
- KR1 og KR3 trenger fokus
|
|
- KR2 ligger foran plan
|
|
|
|
**Anbefalte tiltak:**
|
|
1. Prioriter tiltak for KR1 (sikkerhet er kritisk)
|
|
2. Kjør brukerundersøkelse for KR3 før neste måned
|
|
```
|
|
|
|
## Linear-integrasjon
|
|
|
|
Hvis Linear er konfigurert (sjekk med ToolSearch):
|
|
1. Hent aktive OKR-issues
|
|
2. Oppdater status-felt
|
|
3. 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
|