fix(okr): differensier samlet-aggregat i references (patch-lane #4)

Tre maler i references/ lovet EN udifferensiert samlet score, i strid med
separasjonsregelen i okr-framework.md: committed og aspirational maales mot
ulike standarder og skal rapporteres hver for seg.

Rot-aarsak: vektings-listen i okr-framework.md oppga "noen KR-er committed og
andre aspirational" som en GRUNN TIL AA VEKTE -- seks linjer over seksjonen som
forbyr aa aggregere de to i det hele tatt. Malene lovet et samlet tall fordi
kanon sanksjonerte det. Bulleten er fjernet og erstattet av prosa som avgrenser
vekting til innenfor EN type.

Malene foelger naa generatorens form (lib/syklus-rapport.mjs): committed binaert
mot kravet, aspirational som snitt over N KR. ASCII-boksenes bredde er bevart.

(k)-vaktens skanne-sett utvidet fra commands/+agents/ til ogsaa references/.
Eksklusjonen var KATALOG-BRED for aa skaane per-Objective-aggregeringen i
kalkulatoren, og tok team-aggregatene med seg -- samme lekse som R4. Per-Objective
gaar fortsatt klar, men paa MOENSTERET i stedet for paa katalogen.

Ny vakt (k2) mot at kanon gjenoppretter sanksjonen. Strukturell, ikke semantisk:
et kulepunkt i vektings-listen som navngir begge typene er en sanksjon i kraft av
posisjon. Mutasjons-verifisert -- identisk ordlyd flyttet INN i listen feller
vakten, som beviser at den maaler posisjon og ikke ordlyd.

Suite 328 -> 329.
This commit is contained in:
Kjell Tore Guttormsen 2026-08-09 14:59:20 +02:00
commit 285d18ebfa
4 changed files with 68 additions and 12 deletions

View file

@ -235,12 +235,13 @@ Neste steg: [liste]
```
Objective: [navn]
Samlet score: [0.0-1.0]
Committed: [X] av [Y] KR nådd
Aspirational: [0.0-1.0] (snitt over [N] KR)
Key Results:
1. [KR1 navn]: Target [X], Actual [Y], Score [Z]
2. [KR2 navn]: Target [X], Actual [Y], Score [Z]
3. [KR3 navn]: Target [X], Actual [Y], Score [Z]
1. [KR1 navn] (committed): Target [X], Actual [Y], Score [Z], Avvik [ja/nei]
2. [KR2 navn] (committed): Target [X], Actual [Y], Score [Z], Avvik [ja/nei]
3. [KR3 navn] (aspirational): Target [X], Actual [Y], Score [Z]
Hva gikk bra:
- [bullet]

View file

@ -232,7 +232,8 @@ Oppsummering av alle OKR for et team:
├────────────────────────────────────────────────────────────────┤
│ TEAM TOTALT │
│ │
│ Samlet score: ______ (______%) │
│ Committed: ____ av ____ KR nådd │
│ Aspirational: ______ (snitt over ____ KR) │
│ │
│ On Track: ____ OKR At Risk: ____ OKR Off Track: ____ OKR │
│ │

View file

@ -548,10 +548,11 @@ Vektet score = (0.7×2 + 0.5×1 + 0.8×1) / (2+1+1) = 2.7 / 4 = 0.675
**Når bruke vekting:**
- Når noen KR-er er tydelig viktigere enn andre
- Når ressursinnsatsen varierer vesentlig mellom KR-er
- Når noen KR-er er "committed" og andre "aspirational"
**Anbefaling:** Start med uvektet gjennomsnitt. Introduser vekting kun hvis det gir tydelig verdi.
**Vekting løser ikke blandet type.** Vekting hører hjemme *innenfor* én type — committed mot committed, aspirational mot aspirational — der den håndterer at noen KR veier tyngre enn andre. Blandet type er et annet problem: de to måles mot ulike standarder, og ingen vekt gjør dem sammenlignbare i ett tall. Svaret er å rapportere dem hver for seg, ikke å vekte dem sammen (se under).
#### Aggreger ikke committed og aspirational sammen
Committed og aspirational OKR-scorer måles mot **ulike standarder** og bør ikke blandes til ett aggregat: committed forventes å nå **1.0** (enten grønn eller rød — et avvik krever forklaring), mens aspirational forventes å lande rundt **0.7** med høy varians og vurderes på **snittet på tvers av alle aspirational-OKR**, ikke på én enkelt. Å aggregere de to typene til ett tall blander to forskjellige målestokker og gjør resultatet tvetydig — et committed-snitt på 0.85 er en bekymring, mens et aspirational-snitt på 0.85 er svært bra. Rapportér derfor de to typene hver for seg. (Dette følger som logisk implikasjon av Doerr/Googles to-måls-struktur — ikke et ordrett Doerr-sitat; se committed-vs-aspirational-tabellen i `okr-cheatsheet.md`.)
@ -687,7 +688,8 @@ For team-nivå rapportering:
┌─────────────────────────────────────────────────────────────┐
│ TEAM: [Teamnavn] Syklus: [X] 20XX │
├─────────────────────────────────────────────────────────────┤
│ Samlet score: 0.XX (XX%) │
│ Committed: X av Y KR nådd │
│ Aspirational: 0.XX (snitt over N KR) │
│ On Track: X av Y OKR-er │
│ At Risk: X av Y OKR-er │
│ Off Track: X av Y OKR-er │