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
106 lines
4.3 KiB
Markdown
106 lines
4.3 KiB
Markdown
---
|
|
name: okr:kvalitet
|
|
description: Vurder og forbedre eksisterende OKR med kvalitetssjekk og antipattern-deteksjon
|
|
allowed-tools: Read, AskUserQuestion, Task, Glob
|
|
argument-hint: "[OKR å vurdere]"
|
|
---
|
|
|
|
# OKR Kvalitet - Vurder og forbedre OKR
|
|
|
|
Hjelp brukeren med å vurdere kvaliteten på eksisterende OKR og foreslå forbedringer.
|
|
|
|
## 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 aktive OKR-filer som skal vurderes — les dem
|
|
direkte i stedet for å be brukeren lime inn innhold.
|
|
- Glob `.claude/okr/strategisk-kontekst/overordnede-okr.md` — finnes den, sjekk
|
|
alignment mellom KR som vurderes og org-OKR, og legg til Alignment-seksjon i rapporten.
|
|
- 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. **Motta OKR** — oppdag aktive OKR-filer via Glob (se Kontekstbevissthet) og tilby
|
|
å lese dem direkte. Ellers be brukeren dele OKR-ene.
|
|
- Kan være tekst, bilde, eller hentet fra Linear
|
|
|
|
2. **Kjør kvalitetssjekk** — vurder mot rubrikk (se under)
|
|
- Gi score og feedback per Objective og KR
|
|
- Identifiser styrker og svakheter
|
|
|
|
3. **Sjekk for antipatterns** — se etter de vanligste feilene
|
|
- Les `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-antipatterns.md` for alle 20 antipatterns
|
|
- Kategoriser: formulering, prosess, kultur, struktur, ledelse
|
|
|
|
4. **Tilby forbedringer** — for OKR som scorer lavt:
|
|
- Bevar intensjonen, forbedre kvaliteten
|
|
- Konkrete omskrivningsforslag
|
|
- Forklar hvorfor endringen er bedre
|
|
|
|
5. **Oppsummer** — samlet vurdering med prioriterte forbedringer
|
|
|
|
## Vurderingsrubrikk
|
|
|
|
Scoringen bruker ÉN kanonisk sannhetskilde — bær ikke et eget scorebånd eller en
|
|
inline-rubrikk her:
|
|
`${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-quality-rubrics.md`
|
|
|
|
Fila har fem ankere per dimensjon (svakest → sterkest) over alle 10 dimensjonene:
|
|
- **Objective (5):** Inspirerende, Klarhet, Outcome-fokus, Scope, Alignment
|
|
- **Key Result (5):** Målbarhet, Outcome, Ambisjon, Datakilde, Uavhengighet
|
|
|
|
Les ankerbeskrivelsen per dimensjon, finn nivået OKR-en faktisk treffer, og scor 1-5.
|
|
Anker → 0-10-skala er definert i rubrikkfila («Bruk»-avsnittet): anker 1 → 1-2,
|
|
anker 2 → 3-4, anker 3 → 5-6, anker 4 → 7-8, anker 5 → 9-10. Det er rubrikkfila som
|
|
eier skalaen; ikke dupliser den her.
|
|
|
|
## Vanlige antipatterns å sjekke
|
|
|
|
1. **Aktivitets-OKR** — måler hva vi gjør, ikke hva vi oppnår
|
|
2. **Sandbagging** — for lave mål for å "garantere" 1.0
|
|
3. **Business-as-usual** — driftsmål forkledd som OKR
|
|
4. **For mange OKR** — over 3 Objectives eller 5 KR per Objective
|
|
5. **Manglende baseline** — target uten å vite utgangspunktet
|
|
6. **Milepæl som eneste KR** — en ren ferdig/ikke-ferdig-milepæl brukt alene. Milepæl/binær
|
|
leveranse er et dokumentert unntak (jf. `okr-framework.md`): akseptabelt når den følges av
|
|
et outcome-KR som fanger effekten leveransen skal gi. Antipattern først når milepælen står
|
|
alene uten et outcome-KR ved siden av.
|
|
|
|
## Eksempel på output
|
|
|
|
```
|
|
## OKR Kvalitetsvurdering
|
|
|
|
### Objective: "Forbedre kundeservice"
|
|
|
|
**Score: 4/10**
|
|
|
|
**Problemer:**
|
|
1. **Vag** — hva betyr "forbedre"? Mangler retning
|
|
2. **Ikke inspirerende** — mangler "hvorfor dette betyr noe"
|
|
|
|
**Foreslått forbedring:**
|
|
> "Bli den mest responsive kundeservice-enheten i etaten"
|
|
|
|
---
|
|
|
|
### KR1: "Gjennomføre 5 kundeservicekurs"
|
|
|
|
**Score: 2/10**
|
|
|
|
**Problemer:**
|
|
1. **Aktivitet, ikke outcome** — måler hva vi gjør, ikke resultatet
|
|
2. **Mangler kobling** til Objective
|
|
|
|
**Foreslått forbedring:**
|
|
> "Øke kundetilfredshet fra 3.2 til 4.5 (skala 1-5)"
|
|
> Datakilde: Innbyggerundersøkelsen, månedlig
|
|
```
|
|
|
|
## Referanser
|
|
|
|
- `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-quality-rubrics.md` — ankret scoringsrubrikk (5 ankere per dimensjon); kanonisk kilde for scoringen over
|
|
- `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-antipatterns.md` — alle 20 antipatterns
|
|
- `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-examples.md` — gode vs dårlige eksempler
|