--- name: okr:rapport description: Generer rapport fra en OKR-syklus - tertialrapport med committed og aspirational holdt fra hverandre allowed-tools: Read, Bash, Glob argument-hint: "[tertial] (arsrapport og etatsstyring kommer senere)" --- # OKR Rapport - Generer styringsrapport fra syklusdata Bygg en rapport direkte fra KR-tallene i syklusens `okr-*.md`-filer. Generatoren er deterministisk: samme data gir samme dokument, hver gang. ## Hva generatoren eier - og hva den ikke eier Generatoren eier **aritmetikken, tabellstrukturen og formateringsinvariantene**: den beregner score, holder committed og aspirational fra hverandre, og skriver skalaforklaringen som hindrer at 0.7 leses som «70 % av maalet». Den eier **aldri confidence**. Confidence-kolonnen staar tom med vilje. `okr-framework.md` er eneste sannhetskilde for On Track / At Risk / Off Track, og `okr-calculator.md` avviser mekanisk utledning eksplisitt - gapet mellom faktisk og forventet score er *ett innspill* til vurderingen, ikke en regel. En generator som satte trafikklyset selv ville oppfunnet en terskel doktrinen forbyr. Confidence fylles derfor ut i `/okr:sporing`, der skjoennet hoerer hjemme. Score lagres heller aldri til fil - den beregnes fra `baseline`/`target`/`naa` hver gang, slik at det ikke oppstaar en andre sannhetskilde som kan drifte. ## Forutsetninger - Node.js 22 eller nyere. Ingen npm-avhengigheter. - Syklusens OKR-filer maa baere KR-datakontrakten i frontmatter (`krN_navn`, `krN_baseline`, `krN_target`, `krN_naa`, `krN_type`) - se `/okr:skriv`. Mangler tallene, sier generatoren fra i stedet for aa gjette. ## Arbeidsflyt 1. **Finn syklusen** - list katalogene med Glob (`.claude/okr/syklus/*/`). Er det flere, spoer brukeren hvilken. Er det ingen, si det og stopp (`/okr:oppsett` setter opp treet). 2. **Kjoer generatoren** via Bash: ```bash node ${CLAUDE_PLUGIN_ROOT}/scripts/syklus-rapport.mjs .claude/okr/syklus/[syklus-id] tertial ``` 3. **Tolk exit-koden**: - `0` - rapporten er skrevet til `rapport-tertial.md` i syklus-katalogen. Oppsummer for brukeren: hvilken syklus, hvor mange OKR, og at Confidence-kolonnen skal fylles ut i `/okr:sporing`. - `1` - domenefeil: syklusdataene er ufullstendige. Meldingen navngir KR-en og feltet som mangler. Be brukeren fylle inn tallene i OKR-fila (formatet staar i `/okr:skriv`), og kjoer om igjen. - `2` - bruksfeil: feil antall argumenter, ukjent rapportform, eller syklus-katalogen finnes ikke. Sjekk stien mot Glob-resultatet fra steg 1. 4. **Les rapporten** og gjennomgaa den med brukeren. Vaer spesielt tydelig paa committed-avvik: et committed KR under target er et avvik som skal forklares, ikke et middels resultat. ## Rapportformer | Form | Status | |------|--------| | `tertial` | Tilgjengelig | | `arsrapport` | Ikke implementert ennaa - kommandoen svarer med exit 2 | | `etatsstyring` | Ikke implementert ennaa - kommandoen svarer med exit 2 | ## Relatert - `/okr:skriv` - KR-datakontrakten rapporten leser - `/okr:sporing` - check-in og confidence-vurdering - `/okr:analyse` - trender paa tvers av sykluser