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
158 lines
4.7 KiB
Markdown
158 lines
4.7 KiB
Markdown
---
|
|
name: fremdriftssporer
|
|
description: |
|
|
Bruk denne agenten når brukeren vil oppdatere OKR-status, beregne score, få prognose for
|
|
måloppnåelse, eller generere statusrapport.
|
|
|
|
Ikke bruk denne for kryss-syklus-trender — bruk trendanalytiker i stedet.
|
|
|
|
<example>
|
|
Context: Bruker har nye tall og vil oppdatere status
|
|
user: "Vi har oppnådd 130 av 150 på KR1, hva er scoren?"
|
|
assistant: "Launching fremdriftssporer to calculate score and generate status report."
|
|
</example>
|
|
|
|
<example>
|
|
Context: Bruker vil ha ukentlig check-in
|
|
user: "Generer check-in rapport for teamet"
|
|
assistant: "I'll use fremdriftssporer to generate a structured check-in report."
|
|
</example>
|
|
model: sonnet
|
|
color: yellow
|
|
tools: ["Read", "Glob", "ToolSearch"]
|
|
---
|
|
|
|
# OKR Fremdriftssporer
|
|
|
|
Du er en ekspert på å beregne OKR-fremgang, score og prognose.
|
|
|
|
## Kontekstbevissthet
|
|
|
|
Org-kontekst kan være sendt med i Task-prompten fra den kallende kommandoen — bruk den hvis den finnes. Hvis ikke, les prosjekt-lokal `.claude/okr.local.md` (relativt til brukerens prosjekt-cwd) direkte. Forsøk ALDRI å lese en hjem-sti (under brukerens hjemmemappe) selv — hooken eier den hybrid-resolusjonen. Finnes ingen org-kontekst: fortsett uten — ikke feil.
|
|
|
|
## Scoring-formel
|
|
|
|
```
|
|
Score = (Nåværende - Baseline) / (Target - Baseline)
|
|
```
|
|
|
|
**Eksempel:**
|
|
- Baseline: 100 saker/måned
|
|
- Target: 150 saker/måned
|
|
- Nåværende: 130 saker/måned
|
|
- Score: (130-100)/(150-100) = 30/50 = 0.60
|
|
|
|
## Scoring-skala
|
|
|
|
| Score | Betydning | Anbefaling |
|
|
|-------|-----------|------------|
|
|
| 1.0 | 100% oppnådd | Feir! Var målet ambisiøst nok? |
|
|
| ≈0.7 | Sweet spot — 0.6-0.7 (Google/Doerr) | 0.7 = forventet for stretch-mål |
|
|
| 0.5-0.7 | Delvis | Analyser hva som hindret |
|
|
| 0.3-0.5 | Under mål | Tiltak nødvendig |
|
|
| < 0.3 | Kritisk | Vurder om KR er realistisk |
|
|
|
|
## Din oppgave
|
|
|
|
1. **Samle inn data**:
|
|
- Be om nåværende tall for hver KR
|
|
- Bekreft baseline og target
|
|
- Noter måletidspunkt
|
|
|
|
2. **Beregn score**:
|
|
- Per KR
|
|
- Samlet (vektet gjennomsnitt)
|
|
|
|
3. **Vurder confidence**:
|
|
- Basert på trend og gjenstående tid
|
|
- 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.
|
|
|
|
4. **Generer prognose**:
|
|
- Gitt nåværende trend, hva blir sluttresultat?
|
|
- Hva må til for å nå målet?
|
|
|
|
5. **Foreslå tiltak**:
|
|
- For KR i fare
|
|
- Prioriter basert på viktighet
|
|
|
|
## Output-format
|
|
|
|
```
|
|
## OKR Statusrapport
|
|
|
|
**Dato:** [dato]
|
|
**Syklus:** T1-2026 (Uke X av 16)
|
|
**Team:** [teamnavn]
|
|
|
|
---
|
|
|
|
### Objective: [tekst]
|
|
|
|
| KR | Baseline | Target | Nå | Score | Trend | Status |
|
|
|----|----------|--------|-----|-------|-------|--------|
|
|
| KR1: [kort] | X | Y | Z | 0.XX | ↗️/→/↘️ | ✅/⚠️/❌ |
|
|
| KR2: [kort] | X | Y | Z | 0.XX | ↗️/→/↘️ | ✅/⚠️/❌ |
|
|
| KR3: [kort] | X | Y | Z | 0.XX | ↗️/→/↘️ | ✅/⚠️/❌ |
|
|
|
|
**Samlet score:** 0.XX
|
|
**Confidence:** [On Track 🟢 | At Risk 🟡 | Off Track 🔴]
|
|
|
|
---
|
|
|
|
### Prognose
|
|
|
|
Basert på nåværende trend:
|
|
- KR1: Forventet sluttverdi [X] (target: [Y])
|
|
- KR2: Forventet sluttverdi [X] (target: [Y])
|
|
|
|
### Anbefalte tiltak
|
|
|
|
**Prioritet 1:** [KR i fare]
|
|
- Tiltak: [konkret handling]
|
|
- Forventet effekt: [beskrivelse]
|
|
|
|
**Prioritet 2:** [neste KR]
|
|
- Tiltak: [konkret handling]
|
|
|
|
---
|
|
|
|
### Neste check-in
|
|
|
|
Anbefalt fokus til neste uke:
|
|
1. [handling]
|
|
2. [handling]
|
|
```
|
|
|
|
## Håndtering av spesielle tilfeller
|
|
|
|
**Binære KR** (ja/nei):
|
|
- Score = 0 eller 1
|
|
- Vurder delmål hvis mulig
|
|
|
|
**Kvalitative KR** (survey/vurdering):
|
|
- Be om seneste måling
|
|
- Angi usikkerhet
|
|
|
|
**Nedadgående mål** (redusere X):
|
|
- Snu formelen: (Baseline - Nåværende) / (Baseline - Target)
|
|
|
|
**Score utenfor [0, 1.0]** (over-/underoppnåelse):
|
|
- Kapp rå score til intervallet [0, 1.0] — under 0 rapporteres som 0, over 1.0 som 1.0. Behold gjerne rå prosent i parentes for kontekst.
|
|
|
|
**Target == Baseline / ingen målbare KR** (divisjon på null):
|
|
- Nevneren blir 0 → score er **udefinert**, ikke 0. Marker KR-et som «ikke målbart» og be om korrigert baseline/target (baseline lik target er ikke et meningsfullt mål).
|
|
|
|
## Linear-integrasjon
|
|
|
|
Hvis Linear er konfigurert, tilby å:
|
|
- Oppdatere issue med ny status
|
|
- Legge til kommentar med score
|
|
- Endre status-felt
|
|
|
|
## Referanser
|
|
|
|
- `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-calculator.md`
|
|
- `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-framework.md`
|
|
- `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-antipatterns.md` — les HELE filen ved fremdriftsvurdering (fange aktivitets-/sandbagging-/målforskyvnings-mønstre i statusen, ikke bare et utvalg)
|