docs(okr): README til norsk (patch-lane #6)

H1 til # okr (fjerner README-H1 WARN), full oversettelse til nb (fjerner
README-LANGUAGE WARN, 710->51 markorord), og D12-disclosure-linjen
(org-ops, vedtatt 2026-08-01) gjort selvbaerende med generator + prosess
+ eierskapsgrunnlag (Anthropic Consumer Terms S4), etter malen i
voyage/README.md:11. Solo-maintained-blurben og forge-description-linjen
er bevisst holdt engelsk verbatim (RDS-DOC-004 delt tekst pa 13 repo;
README-DESC-gaten sjekker mot live forge-beskrivelse).

Riksrevisjon-sitatene verifisert token-for-token mot forrige versjon
(fn./s./SS uendret). repo-standard: 2 WARN -> 0 relevante (11 -> 13 OK).
Suite 315/315 gron.
This commit is contained in:
Kjell Tore Guttormsen 2026-08-09 13:11:38 +02:00
commit ffb3c9fde7

376
README.md
View file

@ -1,15 +1,15 @@
# OKR for Public Sector
# okr
Expert OKR guidance for Norwegian public sector. Write, review, cascade, track and govern OKR based on Google/Doerr methodology adapted for 4-month tertial cycles.
Turning a strategy document into goals teams actually work toward is the hard
part, and it is where most adoptions stall. This plugin is an AI coach for that
translation, built for the vocabulary the work already happens in: tertial
cycles, tildelingsbrev, mål- og resultatstyring, and the governance chain from
Stortingsmelding down to team OKR.
Å omsette et strategidokument til mål teamene faktisk arbeider mot er det vanskelige
leddet, og der de fleste innføringer stopper opp. Denne pluginen er en KI-coach for
nettopp den oversettelsen, bygget for vokabularet arbeidet allerede skjer i:
tertialsykluser, tildelingsbrev, mål- og resultatstyring, og styringslinjen fra
Stortingsmelding ned til team-OKR.
> **Solo-maintained, fork-and-own.** This plugin is a starting point, not a vendor product. Issues are welcome as signals; pull requests are not accepted. See [GOVERNANCE.md](GOVERNANCE.md) for the full model and what upstream provides.
*AI-generated: all code produced by Claude Code through dialog-driven development.*
*KI-generert: all kode er produsert av Claude Code gjennom dialogdrevet utvikling. Hver endring er menneskestyrt, gjennomgått og validert før commit. Eierskap til output tilfaller brukeren etter Anthropic Consumer Terms §4; denne pluginen er lisensiert MIT.*
![Version](https://img.shields.io/badge/version-1.9.0-blue)
![Platform](https://img.shields.io/badge/platform-Claude_Code_Plugin-purple)
@ -18,264 +18,261 @@ Stortingsmelding down to team OKR.
## Install
Use the `https://` form. The forge UI's clone button hands out an `ssh://` URL,
and `marketplace add` answers it with `Invalid git URL` — a message that never
mentions the protocol.
Bruk `https://`-formen. Klone-knappen i forgeens UI gir en `ssh://`-URL, og
`marketplace add` svarer med `Invalid git URL` — en melding som aldri nevner protokollen.
```bash
claude plugin marketplace add https://git.fromaitochitta.com/open/ktg-plugin-marketplace.git
claude plugin install okr@ktg-plugin-marketplace
```
Or enable it directly in `~/.claude/settings.json` — a working second path, not
a replacement for the two commands above:
Eller aktiver den direkte i `~/.claude/settings.json` — en fungerende alternativ vei,
ikke en erstatning for de to kommandoene over:
```json
{ "enabledPlugins": { "okr@ktg-plugin-marketplace": true } }
```
Binary inbox formats (`docx`/`pdf`/`eml`) additionally need
`npm install --ignore-scripts` in the plugin directory; `txt`/`md` ingestion and
every other command run dependency-free.
Binære innboks-formater (`docx`/`pdf`/`eml`) krever i tillegg
`npm install --ignore-scripts` i plugin-mappen; `txt`/`md`-ingestion og alle andre
kommandoer kjører uten avhengigheter.
---
## Why This Exists
## Hvorfor denne finnes
Every organization has a strategy. Few manage to turn it into goals that teams actually work toward.
Hver organisasjon har en strategi. Få lykkes med å omsette den til mål teamene faktisk arbeider mot.
OKR (Objectives and Key Results) is a proven framework for that translation — used by Google and Intel, and documented in Norwegian practice: Digdir runs OKR in its product delivery model, NAV product teams use it at team level, Oslo Origo built and open-sourced its own OKR tracker, and FINN.no has more than six years of it. Every adopter named here has a public source in `skills/okr-offentlig-sektor/references/okr-sources.md` § 4; organizations we could not source are not named. But adopting OKR is hard. The methodology sounds simple ("write inspiring goals with measurable results") until you try it. Then you hit real questions:
OKR (Objectives and Key Results) er et velprøvd rammeverk for nettopp den oversettelsen — brukt av Google og Intel, og dokumentert i norsk praksis: Digdir kjører OKR i sin produktleveransemodell, NAV-produktteam bruker det på teamnivå, Oslo Origo bygde og har åpen kildekode-utgitt sin egen OKR-tracker, og FINN.no har over seks år med det. Hver adopter nevnt her har en offentlig kilde i `skills/okr-offentlig-sektor/references/okr-sources.md` § 4; organisasjoner vi ikke kunne kildebelegge er ikke navngitt. Men å innføre OKR er vanskelig. Metodikken virker enkel («skriv inspirerende mål med målbare resultater») helt til man prøver. Da møter man de virkelige spørsmålene:
- *How do we connect our OKR to the goals in our tildelingsbrev?*
- *What's a good Key Result vs. just an activity disguised as one?*
- *How do we handle it when political priorities shift mid-cycle?*
- *Are we actually getting better at this, or just going through the motions?*
- *Hvordan kobler vi OKR-ene våre til målene i tildelingsbrevet?*
- *Hva er en god Key Result versus bare en aktivitet forkledd som en?*
- *Hvordan håndterer vi det når politiske prioriteringer skifter midt i syklusen?*
- *Blir vi faktisk bedre på dette, eller går vi bare gjennom motionene?*
This plugin is an AI coach that helps with all of these. It's built specifically for Norwegian public sector — 4-month tertial cycles, DFØ's "mål- og resultatstyring" framework, tillitsvalgt involvement, and the governance chain from Stortingsmelding to team OKR.
Denne pluginen er en KI-coach som hjelper med alt dette. Den er bygget spesifikt for norsk offentlig sektor — 4-måneders tertialsykluser, DFØs rammeverk for mål- og resultatstyring, involvering av tillitsvalgte, og styringslinjen fra Stortingsmelding til team-OKR.
### What makes it different from a methodology guide?
### Hva gjør den annerledes enn en metodikk-guide?
A methodology guide explains OKR theory. This plugin *knows your organization*.
En metodikk-guide forklarer OKR-teori. Denne pluginen *kjenner organisasjonen din*.
After a one-time onboarding conversation, it remembers your maturity level, your strategic documents, your current OKR, and your cultural challenges. Every interaction builds on that knowledge. When you ask it to write new OKR, it already knows what your organization is trying to achieve. When you check quality, it checks alignment against your actual strategy — not a generic rubric.
Etter én engangs onboardingsamtale husker den modenhetsnivået ditt, strategiske dokumentene dine, dine nåværende OKR og dine kulturelle utfordringer. Hver interaksjon bygger på den kunnskapen. Når du ber den skrive nye OKR, vet den allerede hva organisasjonen din prøver å oppnå. Når du kvalitetssjekker, sjekker den alignment mot din faktiske strategi — ikke en generisk rubrikk.
Over time, it tracks how your OKR practice evolves. It spots recurring mistakes, shows score trends, and coaches you based on where you are in the cycle. Early in the cycle? Focus on alignment. Midway? Time for a progress check. Near the end? Let's prepare the retrospective.
Over tid følger den med på hvordan OKR-praksisen din utvikler seg. Den fanger opp gjentatte feil, viser scoretrender, og coacher deg basert på hvor du er i syklusen. Tidlig i syklusen? Fokuser på alignment. Halvveis? Tid for en fremdriftssjekk. Nær slutten? La oss forberede retrospektivet.
---
## What It Does
## Hva den gjør
### From Strategy to OKR
### Fra strategi til OKR
The core workflow: take your strategic goals (from virksomhetsplan, tildelingsbrev, etatsstrategi, or any strategic document) and transform them into well-structured OKR.
Kjerneflyten: ta dine strategiske mål (fra virksomhetsplan, tildelingsbrev, etatsstrategi, eller et annet strategisk dokument) og omsett dem til godt strukturerte OKR.
```
> /okr:skriv We want to make the application process faster for citizens
> /okr:skriv Vi vil gjøre søknadsprosessen raskere for innbyggerne
```
The plugin guides you through writing an inspiring Objective and measurable Key Results, calibrating ambition, and checking alignment against your organization's strategic direction.
Pluginen leder deg gjennom å skrive et inspirerende Objective og målbare Key Results, kalibrere ambisjonsnivå, og sjekke alignment mot organisasjonens strategiske retning.
### Quality That Goes Beyond Spell-Check
### Kvalitet utover stavekontroll
```
> /okr:kvalitet
```
Checks your OKR against 19 named antipatterns (like "activity disguised as a Key Result", "sandbagging", or "set-and-forget") and scores quality across multiple dimensions. If your OKR has issues, you get concrete improvement suggestions — not just "try harder."
Sjekker OKR-ene dine mot 19 navngitte antipatterns (som «aktivitet forkledd som Key Result», «sandbagging», eller «sett-og-glem») og scorer kvalitet langs flere dimensjoner. Har OKR-ene dine problemer, får du konkrete forbedringsforslag — ikke bare «prøv hardere».
### Strategy Alignment
### Strategisk alignment
```
> /okr:kaskade
```
Cascades OKR from organizational level down to teams. Shows which strategic goals have team support and which are orphaned. If you've stored your org-level OKR, it reads them automatically.
Kaskaderer OKR fra organisasjonsnivå ned til team. Viser hvilke strategiske mål som har teamstøtte og hvilke som er foreldreløse. Har du lagret OKR-ene på org-nivå, leser den dem automatisk.
### Gap Analysis
### Gap-analyse
```
> /okr:gap
```
Compares your strategic documents (tildelingsbrev, virksomhetsplan) against your current OKR and produces a coverage matrix: which requirements are fully covered, which are partially covered, and which are completely missing. For each gap, it suggests OKR formulations.
Sammenligner strategidokumentene dine (tildelingsbrev, virksomhetsplan) mot din nåværende OKR og produserer en dekningsmatrise: hvilke krav er fullt dekket, hvilke er delvis dekket, og hvilke er helt fraværende. For hvert gap foreslår den OKR-formuleringer.
### Progress Tracking
### Fremdriftssporing
```
> /okr:sporing
```
Calculates scores (0.01.0), assesses confidence levels, generates forecasts, and flags Key Results that are at risk. If you use Linear, it can sync status there too.
Beregner score (0.01.0), vurderer confidence-nivåer, genererer prognoser, og flagger Key Results i risiko. Bruker du Linear, kan den synkronisere status der også.
### Cross-Cycle Learning
### Tverrsyklus-læring
```
> /okr:analyse
```
After your first completed cycle, this is where the real value begins. Reads your archived cycles and shows:
- **Score trends** — are you improving? Visualized with charts.
- **Recurring antipatterns** — the same mistakes across cycles get flagged explicitly.
- **Alignment progression** — is your team coverage of org goals getting better?
Etter din første fullførte syklus er dette der den egentlige verdien begynner. Leser dine arkiverte sykluser og viser:
- **Scoretrender** — blir du bedre? Visualisert med diagrammer.
- **Gjentatte antipatterns** — de samme feilene over sykluser blir flagget eksplisitt.
- **Alignment-progresjon** — blir teamenes dekning av org-målene bedre?
### Proactive Coaching
### Proaktiv coaching
You don't have to remember to check in. When you start a session, the plugin automatically tells you where you are in the cycle and what to focus on:
Du trenger ikke huske å sjekke inn selv. Når du starter en sesjon, forteller pluginen deg automatisk hvor du er i syklusen og hva du bør fokusere på:
> *"OKR coaching: Week 12 of 16 in T1-2026. Approaching cycle end — focus on final scoring and retrospective preparation. 2 KR flagged as at-risk in last status update."*
> *«OKR-coaching: Uke 12 av 16 i T1-2026. Nærmer seg syklusslutt — fokuser på endelig scoring og forberedelse av retrospektiv. 2 KR flagget som i risiko i siste statusoppdatering.»*
### Meetings and Facilitation
### Møter og fasilitering
```
> /okr:møter
```
Generates tailored agendas for OKR workshops, check-ins, reviews, and 1:1 conversations using the CFR (Conversations, Feedback, Recognition) framework — adapted for public sector where bonuses aren't an option.
Genererer skreddersydde agendaer for OKR-workshops, check-ins, reviews og 1:1-samtaler etter CFR-rammeverket (Conversations, Feedback, Recognition) — tilpasset offentlig sektor der bonus ikke er en mulighet.
### Adoption and Change Management
### Innføring og endringsledelse
```
> /okr:innføring
```
Planning to introduce OKR in your organization? Get a phased rollout plan with resistance-handling strategies, maturity assessment, and guidance on involving tillitsvalgte — because in Norwegian public sector, change management without union involvement doesn't work.
Planlegger du å innføre OKR i organisasjonen? Få en faset innføringsplan med strategier for motstandshåndtering, modenhetsvurdering, og veiledning i å involvere tillitsvalgte — fordi i norsk offentlig sektor fungerer ikke endringsledelse uten involvering av tillitsvalgte.
### Governance and Compliance
### Styring og etterlevelse
```
> /okr:governance
```
Translate tildelingsbrev requirements into OKR. Map the governance chain (Stortingsmelding → tildelingsbrev → etatsstrategi → OKR). Verify that your OKR documentation meets Riksrevisjon standards.
Oversetter tildelingsbrevkrav til OKR. Kartlegger styringslinjen (Stortingsmelding → tildelingsbrev → etatsstrategi → OKR). Verifiserer at OKR-dokumentasjonen din møter Riksrevisjonens standarder.
### Export Deliverables
### Eksport av leveranser
```
> /okr:export
```
Renders any OKR deliverable — quality review, gap matrix, status report, or retrospective — to a print-ready A4 PDF for management or Riksrevisjon. Tables get striping and score cells are color-coded (green/yellow/red). PDF generation is a documented prerequisite (`pip install markdown weasyprint`, `brew install pango`), not bundled — a missing dependency exits with a clear install hint, never a traceback.
Rendrer alle OKR-leveranser — kvalitetsreview, gap-matrise, statusrapport, eller retrospektiv — til en utskriftsklar A4-PDF for ledelsen eller Riksrevisjonen. Tabeller får striping og scoreceller er fargekodet (grønn/gul/rød). PDF-generering er en dokumentert forutsetning (`pip install markdown weasyprint`, `brew install pango`), ikke medfulgt — en manglende avhengighet avsluttes med en tydelig installasjonshint, aldri en traceback.
### Archive Readiness
### Arkivklarhet
```
> /okr:arkivklar
```
Reports which categories of bevaringsforskrifta (FOR-2025-12-19-2729) the tree's contents likely fall under — § 7 for the state governance line, § 30 for the municipal one, and the § 3 safety net for everything not named — and what should be *considered* for transfer to the organization's case/archive system. The two governance lines are parallel, not alternative: the same file can match a category in both, and both are reported.
Rapporterer hvilke kategorier av bevaringsforskrifta (FOR-2025-12-19-2729) treets innhold sannsynligvis faller under — § 7 for den statlige styringslinjen, § 30 for den kommunale, og § 3-sikkerhetsnettet for alt som ikke er navngitt — og hva som bør *vurderes* for overføring til organisasjonens sak-/arkivsystem. De to styringslinjene er parallelle, ikke alternative: samme fil kan matche en kategori i begge, og begge rapporteres.
The command decides nothing. Kassasjon requires authority from Nasjonalarkivet under arkivlova § 13, and the assessment itself belongs to the organization's documentation plan (arkivlova § 8, arkivforskrifta § 12 b). There is **no deletion model in this plugin and none will be added** — the command declares neither `Write` nor `Edit`, so it is read-only in the tool layer, not merely in prose. Falling under § 3 means the material *must be preserved*, not the opposite. The report also names what it cannot see: arkivforskrifta § 1 letter c makes the assessment conditional on whether the documentation is already managed as archive in another system, and that state is reported as unknown rather than assumed away.
Kommandoen avgjør ingenting. Kassasjon krever myndighet fra Nasjonalarkivet under arkivlova § 13, og vurderingen selv hører til organisasjonens dokumentasjonsplan (arkivlova § 8, arkivforskrifta § 12 b). Det finnes **ingen slettemodell i denne pluginen, og ingen kommer** — kommandoen deklarerer verken `Write` eller `Edit`, så den er read-only i verktøylaget, ikke bare i prosa. Å falle under § 3 betyr at materialet *må bevares*, ikke det motsatte. Rapporten navngir også hva den ikke kan se: arkivforskrifta § 1 bokstav c gjør vurderingen betinget av om dokumentasjonen allerede forvaltes som arkiv i et annet system, og den tilstanden rapporteres som ukjent snarere enn antatt bort.
### Inbox Ingestion
### Innboks-ingestion
```
> /okr:innboks
```
Drop documents — tildelingsbrev PDFs, virksomhetsplan docx, meeting notes — into `.claude/okr/innboks/` and ingest them into the knowledge tree in one sweep. The pipeline is deterministic (no LLM in the core): convert (txt/md/docx/eml/pdf) → split on headings → stamp OKF frontmatter with a `kilde: innboks` provenance marker → route by document type → validate each document against a strict security gate. A document that fails the gate is discarded alone with a per-document report; originals always stay untouched in the inbox, and re-running on unchanged input is a byte-identical no-op. Known v1 limitations (flat PDF extraction, table structure loss) are listed in the CHANGELOG.
Slipp dokumenter — tildelingsbrev-PDF-er, virksomhetsplan-docx, møtenotater — i `.claude/okr/innboks/` og ta dem inn i kunnskapstreet i ett steg. Pipelinen er deterministisk (ingen KI i kjernen): konverter (txt/md/docx/eml/pdf) → del på headings → stemple OKF-frontmatter med en `kilde: innboks`-proveniensmarkør → rute etter dokumenttype → validere hvert dokument mot en streng sikkerhetsgate. Et dokument som feiler gaten forkastes alene med en per-dokument-rapport; originalene forblir alltid urørt i innboksen, og å kjøre på nytt på uendret input er en byte-identisk no-op. Kjente v1-begrensninger (flat PDF-ekstraksjon, tap av tabellstruktur) er listet i CHANGELOG.
### Cycle Reporting
### Syklusrapportering
```
> /okr:rapport
```
Generates a report straight from the KR numbers in the cycle's `okr-*.md` frontmatter — deterministic, so the same data yields byte-identical output. Three forms, one command argument: `tertial` for interim reporting, `arsrapport` for part III of the statutory annual report ("Årets aktiviteter og resultater"), and `etatsstyring` for the agency-governance meeting brief. Committed and aspirational Key Results are reported **separately** in all three, never aggregated into one figure: the two are measured against different standards, and a combined average is ambiguous by construction. The generator owns the arithmetic, the table structure and the formatting invariants (score is stated on its 01.0 scale, never as percent goal attainment; a committed KR below target is flagged as a deviation, not a middling score).
Genererer en rapport direkte fra KR-tallene i syklusens `okr-*.md`-frontmatter — deterministisk, så samme data gir byte-identisk output. Tre former, ett kommandoargument: `tertial` for løpende rapportering, `arsrapport` for del III av den lovpålagte årsrapporten («Årets aktiviteter og resultater»), og `etatsstyring` for underlaget til etatsstyringsmøtet. Forpliktende og ambisiøse Key Results rapporteres **separat** i alle tre, aldri aggregert til én figur: de to måles mot forskjellige standarder, og et kombinert gjennomsnitt er tvetydig av konstruksjon. Generatoren eier aritmetikken, tabellstrukturen og formateringsinvariantene (score angis alltid på 01.0-skalaen, aldri som prosent måloppnåelse; en forpliktende KR under mål flagges som et avvik, ikke som en middels score).
An aspirational KR with a low score is **never** presented as a deviation — landing near 0.7 is expected attainment for that type, and letting the aspirational score carry consequences in reporting would re-bundle target and forecast, which is what makes sandbagging structurally rational in the next cycle.
En ambisiøs KR med lav score presenteres **aldri** som et avvik — å lande nær 0.7 er forventet oppnåelse for den typen, og å la den ambisiøse scoren ha konsekvenser i rapporteringen ville bunte sammen mål og prognose igjen, noe som er det som gjør sandbagging strukturelt rasjonelt i neste syklus.
It does **not** own confidence, nor the assessment fields it reserves — the per-Objective evaluation of goal attainment in the annual report, and the mapping from Objectives to the letter of allocation's governance parameters. Those are left as marked placeholders because they require judgement or sources the generator does not read. The Confidence column is likewise left empty by design and filled in during `/okr:sporing`, because confidence is a probability judgement — the canon designates one source of truth for the On Track / At Risk / Off Track scale and explicitly rejects deriving it mechanically from score. Scores themselves are never written to disk; they are recomputed from `baseline`/`target`/`naa` each run so a second, drifting source of truth cannot arise.
Den eier **ikke** confidence, heller ikke vurderingsfeltene den reserverer — den per-Objective-vurderingen av måloppnåelse i årsrapporten, og kartleggingen fra Objectives til tildelingsbrevets styringsparametere. Disse er latt som markerte plassholdere fordi de krever vurdering eller kilder generatoren ikke leser. Confidence-kolonnen er på samme måte latt tom med vilje og fylles inn under `/okr:sporing`, fordi confidence er en sannsynlighetsvurdering — kanonen utpeker én kilde til sannhet for On Track/At Risk/Off Track-skalaen og avviser eksplisitt å avlede den mekanisk fra score. Score selv skrives aldri til disk; de beregnes på nytt fra `baseline`/`target`/`naa` hver kjøring så en andre, driftende sannhetskilde ikke kan oppstå.
### Help and Maintenance
### Hjelp og vedlikehold
```
> /okr:help
> /okr:freshen-references
```
`/okr:help` lists all 16 commands, 7 agents, and a recommended workflow keyed to where you are in the tertial cycle. `/okr:freshen-references` is a knowledge-base self-evaluator: it scores 18 of the 19 domain reference files against an anchored quality rubric — the quality rubric itself is excluded, since scoring the scoring instrument is circular — and polls named public sources (UN EGDI, EU eGov Benchmark, OECD DGI, Digdir, WCAG, forvaltningsloven) to flag outdated `Sist oppdatert` markers.
`/okr:help` lister alle 16 kommandoer, 7 agenter, og en anbefalt arbeidsflyt nøkket til hvor du er i tertialsyklusen. `/okr:freshen-references` er en kunnskapsbase-selvevaluator: den scorer 18 av de 19 domenereferansefilene mot en ankret kvalitetsrubrikk — kvalitetsrubrikken selv er utelatt, siden å score scoringsinstrumentet er sirkulært — og poller navngitte offentlige kilder (UN EGDI, EU eGov Benchmark, OECD DGI, Digdir, WCAG, forvaltningsloven) for å flagge utdaterte «Sist oppdatert»-markører.
---
## Non-goals
Things this plugin deliberately does not do, so you can tell early whether it fits:
Ting denne pluginen bevisst ikke gjør, så du kan avgjøre tidlig om den passer:
- **It is not an OKR tracking system.** There is no database, no server and no
web UI. All state is Markdown files under `.claude/okr/` in your own project,
plus a machine-global org profile in `~/.claude/okr/org/`. Linear is the only
tracking integration, and it is optional.
- **It does not make the organization's assessments.** `/okr:rapport` owns the
arithmetic and the formatting invariants; the per-Objective evaluation of goal
attainment and the mapping to the letter of allocation's governance parameters
are left as marked placeholders. Confidence is a judgement, never derived from
score.
- **It does not decide archiving, and never deletes.** `/okr:arkivklar` produces
an assessment basis against bevaringsforskrifta — what should be *considered*
for transfer to the case/archive system. It is read-only by tool list.
- **It is not a multi-user collaboration tool.** One operator, local files, no
accounts, no shared state.
- **It does not replace the methodology literature.** The knowledge base is a
sourced working reference, not a substitute for Doerr, Wodtke or DFØ's own
guidance.
- **Den er ikke et OKR-oppfølgingssystem.** Det finnes ingen database, ingen server
og ingen web-UI. All tilstand er Markdown-filer under `.claude/okr/` i ditt eget
prosjekt, pluss en maskin-global org-profil i `~/.claude/okr/org/`. Linear er den
eneste oppfølgingsintegrasjonen, og den er valgfri.
- **Den gjør ikke organisasjonens vurderinger.** `/okr:rapport` eier aritmetikken og
formateringsinvariantene; den per-Objective-vurderingen av måloppnåelse og
kartleggingen til tildelingsbrevets styringsparametere er latt som markerte
plassholdere. Confidence er en vurdering, aldri avledet fra score.
- **Den avgjør ikke arkivering, og sletter aldri.** `/okr:arkivklar` produserer et
vurderingsgrunnlag mot bevaringsforskrifta — hva som bør *vurderes* for overføring
til sak-/arkivsystemet. Den er read-only etter verktøylisten.
- **Den er ikke et flerbrukersamarbeidsverktøy.** Én operatør, lokale filer, ingen
kontoer, ingen delt tilstand.
- **Den erstatter ikke metodikklitteraturen.** Kunnskapsbasen er en kildebelagt
arbeidsreferanse, ikke en erstatning for Doerr, Wodtke eller DFØs egen veiledning.
---
## Getting Started
## Kom i gang
Install first — see [Install](#install) at the top.
Installer først — se [Install](#install) øverst.
### First Conversation
### Første samtale
```
> /okr:oppsett mvp
```
Six questions, five minutes. The plugin learns your organization, maturity level, tools, and cycle phase. From that point on, every command adapts to your context.
Seks spørsmål, fem minutter. Pluginen blir kjent med organisasjonen din, modenhetsnivå, verktøy og syklusfase. Fra det punktet tilpasser hver kommando seg til konteksten din.
Want the full experience? `/okr:oppsett full` runs a deeper interview (15-20 minutes) that also captures your strategic context, cultural challenges, and organizational structure.
Vil du ha den fulle opplevelsen? `/okr:oppsett full` kjører et dypere intervju (15-20 minutter) som også fanger opp strategisk kontekst, kulturelle utfordringer og organisasjonsstruktur.
### Typical Workflow
### Typisk arbeidsflyt
**Starting fresh:**
**Starter fra scratch:**
```
/okr:oppsett full # One-time setup
/okr:skriv # Write your first OKR
/okr:kvalitet # Quality check
/okr:kaskade # Align with org goals
/okr:oppsett full # Engangs oppsett
/okr:skriv # Skriv din første OKR
/okr:kvalitet # Kvalitetssjekk
/okr:kaskade # Alignér med org-mål
```
**During a cycle:**
**Under en syklus:**
```
/okr:sporing # Update progress
/okr:møter # Prepare check-in meeting
/okr:sporing # Oppdater fremdrift
/okr:møter # Forbered check-in-møte
```
**End of cycle:**
**Ved syklusslutt:**
```
/okr:oppsett arkiver # Archive with retrospective
/okr:analyse # See how you're trending
/okr:skriv # Start the next cycle
/okr:oppsett arkiver # Arkiver med retrospektiv
/okr:analyse # Se hvordan trenden går
/okr:skriv # Start neste syklus
```
---
## Built for Norwegian Public Sector
## Bygget for norsk offentlig sektor
### What's different about OKR in offentlig sektor?
### Hva er annerledes med OKR i offentlig sektor?
| Challenge | How the plugin helps |
| Utfordring | Hvordan pluginen hjelper |
|-----------|---------------------|
| 4-month tertial cycles (not quarterly) | Built-in tertial support with correct week counting and phase detection |
| Tildelingsbrev drives priorities | `/okr:governance` and `/okr:gap` translate and check coverage |
| DFØ uses different terminology | Built-in mapping between "mål- og resultatstyring" and OKR concepts |
| Riksrevisjonen requires documentation | Audit-ready format with baseline, target, data source per KR |
| No performance bonuses | CFR framework designed for recognition without financial incentives |
| Tillitsvalgte must be involved | Guidance on drøftingsplikt, transparent KR, and union involvement |
| Consensus culture | Advice calibrated for organizations where stretch goals feel risky |
| Political priorities can shift mid-cycle | Strategies for handling mid-cycle mandate changes |
| 4-måneders tertialsykluser (ikke kvartal) | Innebygget tertialstøtte med korrekt ukeberegning og fasedeteksjon |
| Tildelingsbrevet driver prioriteringer | `/okr:governance` og `/okr:gap` oversetter og sjekker dekning |
| DFØ bruker annen terminologi | Innebygget kobling mellom «mål- og resultatstyring» og OKR-begreper |
| Riksrevisjonen krever dokumentasjon | Revisjonsklart format med baseline, mål og datakilde per KR |
| Ingen bonusordninger | CFR-rammeverk designet for anerkjennelse uten økonomiske incentiver |
| Tillitsvalgte må involveres | Veiledning om drøftingsplikt, transparente KR, og involvering av tillitsvalgte |
| Konsensuskultur | Råd kalibrert for organisasjoner der stretch-mål kjennes risikabelt |
| Politiske prioriteringer kan skifte midt i syklusen | Strategier for å håndtere mandatendringer midt i syklusen |
### The governance chain
### Styringslinjen
```
Stortingsmelding / NTP
@ -284,120 +281,119 @@ Tildelingsbrev fra departement
|
Etatsstrategi / Virksomhetsplan
|
Org-level OKR (annual, strategic)
Org-OKR (årlig, strategisk)
|
Cycle OKR (tertial, tactical)
Syklus-OKR (tertial, taktisk)
|
Team OKR
Team-OKR
```
The plugin understands this hierarchy and helps you maintain alignment at every level.
Pluginen forstår denne hierarkien og hjelper deg holde alignment på hvert nivå.
### The documented problem class
### Den dokumenterte problemklassen
The design targets a problem class that has been described by the audit
authority itself, not a general assertion about public-sector management.
Designet retter seg mot en problemklasse som er beskrevet av revisjonsmyndigheten
selv, ikke en generell påstand om styring i offentlig sektor.
**Read the dates before the findings.** All four audits below were carried out in
**20192020**. Riksrevisjonen has since **closed these cases following
improvements in mål- og resultatstyring** (DFØ-notat 2026:2, fn. 152 and fn. 217).
They are cited here as historically documented weaknesses that the administration
has addressed — not as current criticism of any agency.
**Les datoene før funnene.** Alle de fire revisjonene under ble gjennomført i
**20192020**. Riksrevisjonen har siden **avsluttet disse sakene etter forbedringer
i mål- og resultatstyringen** (DFØ-notat 2026:2, fn. 152 og fn. 217). De siteres her
som historisk dokumenterte svakheter forvaltningen har adressert — ikke som aktuell
kritikk av noen etat.
All four are chapters of **Dokument 1** (the annual accounting and compliance
audit), not of the Dokument 3 forvaltningsrevisjon series. Stable per-chapter URLs
do not exist, so each is cited through DFØ's aggregation with page and footnote.
Alle fire er kapitler i **Dokument 1** (den årlige regnskaps- og
etterlevelsesrevisjonen), ikke i Dokument 3-serien for forvaltningsrevisjon. Stabile
per-kapittel-URL-er finnes ikke, så hver siteres gjennom DFØs sammenstilling med side
og fotnote.
| Documented finding (20192020) | Source | Problem class the plugin works on |
| Dokumentert funn (20192020) | Kilde | Problemklasse pluginen arbeider på |
|---|---|---|
| Annual reports give information about activities and service deliveries, and to a limited degree about effects — attributed to measurement problems, including missing statistics | Riksrevisjonen (2019), part of Dokument 1 (20192020), as rendered in DFØ-notat 2026:2 p. 53 (fn. 253) | Leading/lagging balance as a rubric dimension; annual-report generation (`/okr:rapport arsrapport`) |
| The annual report presentation showed the agency's own analysis of goal attainment to a lesser degree, appearing instead as a snapshot of activities and results (NIBIO, 2020) | Riksrevisjonen (2020), part of Dokument 1, as rendered in DFØ-notat 2026:2 pp. 4748 (fn. 216) | The antipattern report generation is built to avoid |
| The department had not established a mål- og resultatstyring system giving sufficient information about how effectively the agency used its resources (Havforskningsinstituttet, 2019) | Riksrevisjonen (2019), part of Dokument 1 (20192020), as rendered in DFØ-notat 2026:2 p. 48 (fn. 222) | Benefit realisation tied to OKR rather than treated as a separate track |
| Steering information did not give a sufficient basis for prioritisation (Luftfartstilsynet and Havforskningsinstituttet, 2019) | Riksrevisjonen (2019), part of Dokument 1 (20192020), as rendered in DFØ-notat 2026:2 p. 47 (fn. 210211) | Gap analysis against tildelingsbrev (`/okr:gap`) |
| Årsrapportene gir informasjon om aktiviteter og tjenesteleveranser, og i begrenset grad om effekter — tilskrevet målingsproblemer, inkludert manglende statistikk | Riksrevisjonen (2019), del av Dokument 1 (20192020), som gjengitt i DFØ-notat 2026:2 s. 53 (fn. 253) | Leading/lagging-balanse som rubrikkdimensjon; årsrapport-generering (`/okr:rapport arsrapport`) |
| Årsrapportfremstillingen viste etatens egen analyse av måloppnåelse i mindre grad, og fremstod i stedet som et snapshot av aktiviteter og resultater (NIBIO, 2020) | Riksrevisjonen (2020), del av Dokument 1, som gjengitt i DFØ-notat 2026:2 s. 4748 (fn. 216) | Antipatternet rapport-generatoren er bygget for å unngå |
| Departementet hadde ikke etablert et system for mål- og resultatstyring som ga tilstrekkelig informasjon om hvor effektivt etaten brukte ressursene sine (Havforskningsinstituttet, 2019) | Riksrevisjonen (2019), del av Dokument 1 (20192020), som gjengitt i DFØ-notat 2026:2 s. 48 (fn. 222) | Gevinstrealisering koblet til OKR i stedet for behandlet som et eget spor |
| Styringsinformasjonen ga ikke et tilstrekkelig grunnlag for prioritering (Luftfartstilsynet og Havforskningsinstituttet, 2019) | Riksrevisjonen (2019), del av Dokument 1 (20192020), som gjengitt i DFØ-notat 2026:2 s. 47 (fn. 210211) | Gap-analyse mot tildelingsbrev (`/okr:gap`) |
The positive mandate for what `/okr:governance` and `/okr:gap` read out of a
tildelingsbrev is separate: the department **shall** set styringsparametere in
order to assess goal attainment and results, and set requirements for the annual
report — *Bestemmelser om økonomistyring i staten* point 1.5 (DFØ-notat 2026:2
p. 49, fn. 228).
Det positive mandatet for hva `/okr:governance` og `/okr:gap` leser ut av et
tildelingsbrev er separat: departementet **skal** sette styringsparametere for å
vurdere måloppnåelse og resultater, og sette krav til årsrapporten — *Bestemmelser
om økonomistyring i staten* punkt 1.5 (DFØ-notat 2026:2 s. 49, fn. 228).
**What is not claimed here.** These quotations are DFØ's rendering of
Riksrevisjonen, not Riksrevisjonen's own wording; the NIBIO finding in particular
has not been verified against the primary source. Nothing above says the plugin
resolves these findings, that the findings are open, or that any agency is
currently deficient. A separate 2021 consultancy figure sometimes cited in this
context is omitted deliberately: it is not Riksrevisjonen's, and its sample is
unknown.
**Hva som ikke påstås her.** Disse sitatene er DFØs gjengivelse av Riksrevisjonen,
ikke Riksrevisjonens egen ordlyd; NIBIO-funnet spesielt er ikke verifisert mot
primærkilden. Ingenting over sier at pluginen løser disse funnene, at funnene er
åpne, eller at noen etat er mangelfull i dag. Et separat konsulenttall fra 2021 som
noen ganger siteres i denne konteksten er utelatt med vilje: det er ikke
Riksrevisjonens, og utvalget er ukjent.
---
## Under the Hood
## Under panseret
### Agents
### Agenter
7 specialized agents activate automatically:
7 spesialiserte agenter aktiveres automatisk:
| Agent | Role |
|-------|------|
| kvalitetssjekker | Score quality, detect antipatterns, check alignment |
| kaskadebygger | Build cascades between organizational levels |
| fremdriftssporer | Calculate scores, forecast completion, flag risks |
| møtefasilitator | Generate meeting agendas and facilitation materials |
| styringsrådgiver | Governance analysis, tildelingsbrev translation, audit compliance |
| gapanalytiker | Coverage matrix between strategic documents and OKR |
| trendanalytiker | Cross-cycle pattern analysis with trend visualization |
| Agent | Rolle |
|-------|-------|
| kvalitetssjekker | Scorer kvalitet, oppdager antipatterns, sjekker alignment |
| kaskadebygger | Bygger kaskader mellom organisasjonsnivåer |
| fremdriftssporer | Beregner score, prognoserer fullføring, flagger risiko |
| møtefasilitator | Genererer møteagendaer og fasiliteringsmateriale |
| styringsrådgiver | Styringsanalyse, tildelingsbrev-oversettelse, revisjonsetterlevelse |
| gapanalytiker | Dekningsmatrise mellom strategidokumenter og OKR |
| trendanalytiker | Tverrsyklus-mønsteranalyse med trendvisualisering |
### Hooks
| Event | What it does |
| Event | Hva den gjør |
|-------|-------------|
| SessionStart | Proactive coaching — tells you where you are in the cycle and what to focus on |
| UserPromptSubmit | Injects your organization profile and available context files into every interaction |
| PreCompact | Preserves OKR draft state if the conversation gets long |
| SessionStart | Proaktiv coaching — forteller deg hvor du er i syklusen og hva du bør fokusere på |
| UserPromptSubmit | Injiserer organisasjonsprofilen din og tilgjengelige kontekstfiler i hver interaksjon |
| PreCompact | Bevarer OKR-utkasttilstand hvis samtalen blir lang |
### Skills
| Skill | Role |
|-------|------|
| okr-offentlig-sektor | Core OKR methodology and Norwegian public-sector domain knowledge |
| okr-second-brain-search | On-demand retrieval from your personal OKF wiki (`.claude/okr/` + `~/.claude/okr/org/`) — in free chat and during `/okr:*` commands, without pre-injecting everything |
| Skill | Rolle |
|-------|-------|
| okr-offentlig-sektor | Kjerne-OKR-metodikk og domenekunnskap om norsk offentlig sektor |
| okr-second-brain-search | On-demand-henting fra din personlige OKF-wiki (`.claude/okr/` + `~/.claude/okr/org/`) — i fri chat og under `/okr:*`-kommandoer, uten å forhåndsinjisere alt |
### Dependencies
### Avhengigheter
The plugin core is zero-dependency (`node:` builtins only). The inbox-ingestion pipeline (`/okr:innboks`, v1.7.0) is the one deliberate exception: it needs four pure-JS conversion libraries, exact-pinned in `package.json` (no `^`/`~` ranges) — `mammoth` (docx), `turndown` (HTML→markdown), `postal-mime` (eml), `unpdf` (PDF). Install with `npm install --ignore-scripts` (the repo `.npmrc` enforces `ignore-scripts=true` as supply-chain protection); requires Node >= 22. Everything else in the plugin runs without `node_modules/`.
Pluginens kjerne er avhengighetsfri (kun `node:`-builtins). Innboks-ingestion-pipelinen (`/okr:innboks`, v1.7.0) er det ene bevisste unntaket: den trenger fire rene JS-konverteringsbiblioteker, eksakt pinnet i `package.json` (ingen `^`/`~`-ranges) — `mammoth` (docx), `turndown` (HTML→markdown), `postal-mime` (eml), `unpdf` (PDF). Installer med `npm install --ignore-scripts` (repoets `.npmrc` håndhever `ignore-scripts=true` som supply-chain-beskyttelse); krever Node >= 22. Alt annet i pluginen kjører uten `node_modules/`.
### Knowledge Base
### Kunnskapsbase
19 reference files covering OKR methodology, Norwegian public sector governance (state and municipal steering lines), antipatterns, meeting guides, metrics library, anchored quality rubrics, integration patterns, and more. The plugin reads only what's relevant to each interaction — never the whole library at once.
19 referansefiler som dekker OKR-metodikk, styring i norsk offentlig sektor (statlig og kommunal styringslinje), antipatterns, møteguider, metrikkbibliotek, ankrede kvalitetsrubrikker, integrasjonsmønstre, og mer. Pluginen leser bare det som er relevant for hver interaksjon — aldri hele biblioteket samtidig.
### Persistent Context
### Persistent kontekst
```
.claude/
okr.local.md # Your organizational profile
okr.local.md # Din organisasjonsprofil
okr/
strategisk-kontekst/ # Strategic documents you provide
syklus/T1-2026/ # Active cycle OKR and status
historikk/ # Archived cycles with retrospectives
dokumenter/ # Any other relevant documents
strategisk-kontekst/ # Strategiske dokumenter du oppgir
syklus/T1-2026/ # Aktiv syklus' OKR og status
historikk/ # Arkiverte sykluser med retrospektiver
dokumenter/ # Andre relevante dokumenter
```
---
## Limitations
## Begrensninger
- Designed for Norwegian public sector — may not fit other contexts without adaptation
- Not yet tested in a real multi-cycle OKR program
- Linear is the only supported tracking integration
- Norwegian language for all user-facing interactions
- Designet for norsk offentlig sektor — kan kreve tilpasning for andre kontekster
- Ikke testet i et reelt OKR-program over flere sykluser
- Linear er den eneste støttede oppfølgingsintegrasjonen
- Norsk språk for alle brukervendte interaksjoner
---
## Changelog
Full detail in [CHANGELOG.md](CHANGELOG.md). Highlights:
Full detalj i [CHANGELOG.md](CHANGELOG.md). Høydepunkter:
| Version | Date | Highlights |
| Versjon | Dato | Høydepunkter |
|---------|------|------------|
| **1.9.0** | 2026-08-09 | «Styringssløyfa lukkes» — tildelingsbrev til årsrapport i én kjede. Tre deterministiske rapportgeneratorer (tertialrapport, årsrapport del III, etatsstyringsmøte-underlag) bygget på en KR-datakontrakt der score alltid beregnes og aldri lagres; `/okr:arkivklar` som rent lesende vurderingsgrunnlag mot bevaringsforskrifta (§§ 7/30, safety-net § 3) med path-confinement i delt modul; committed/aspirational separert i alle tre rapportformene med sandbagging-vakt; leading/lagging og guardrail som KR-designmønster i rubrikk, `skriv` og `kvalitet`; ny referansefil `gevinstrealisering-okr.md`, KOSTRA-seksjon og Beyond Budgeting/strategi→OKR i framework (17 → 19 filer); `okf_version` flyttet til rot-indeksens frontmatter med permanent lesetoleranse for begge plasseringer. Suite 197 → 315 |
| **1.8.2** | 2026-07-31 | Patch: siterte markørverdier korrumperte begge rot-markørene — `okf_version: "0.2"` (formen OKF-specen selv viser) ble avvist som ikke-upstream, flyttet til `okf_layout`, og `okf_version` nedgradert til vår konstant. Anførselstegn strippes nå ved parse (før tolkning og før emisjon) og verdien emitteres unquoted; unquote er konservativ (kun matchende par). Suite 187 → 192 |
@ -411,15 +407,15 @@ Full detail in [CHANGELOG.md](CHANGELOG.md). Highlights:
| **1.4.0** | 2026-06-24 | Domenedybde + kildeintegritet (Fase 1), UX-/kommando-/agent-modning (Fase 2), hybrid org-kontekst-lesing |
| 1.3.2 | 2026-06-24 | Fix: loopende Stop-hook fjernet |
| 1.3.1 | 2026-06-23 | Fakta- og troverdighetssanering |
| **1.3.0** | 2026-04-08 | Gap analysis, cross-cycle analytics with Mermaid visualizations, proactive SessionStart coaching |
| **1.1.0** | 2026-04-08 | Persistent context, deep onboarding, context-aware commands, cycle archival |
| **1.0.0** | 2026-04-08 | Architecture overhaul, self-contained commands, hooks, marketplace-ready |
| 0.5.0 | 2026-02-07 | First formal version |
| **1.3.0** | 2026-04-08 | Gap-analyse, tverrsyklus-analytics med Mermaid-visualiseringer, proaktiv SessionStart-coaching |
| **1.1.0** | 2026-04-08 | Persistent kontekst, dypere onboarding, kontekstbevisste kommandoer, syklusarkivering |
| **1.0.0** | 2026-04-08 | Arkitekturoverhaling, selvstendige kommandoer, hooks, markedsplass-klar |
| 0.5.0 | 2026-02-07 | Første formelle versjon |
See [CHANGELOG.md](CHANGELOG.md) for full details.
Se [CHANGELOG.md](CHANGELOG.md) for alle detaljer.
---
## License
## Lisens
[MIT](LICENSE)