fix(okr): credibility-sanering fra 360-re-evaluering + bump 1.6.1

Lukker de 5 credibility-kritiske funnene fra docs/evaluering-360-2026-06-26.md:
1. okr-quality-rubrics.md omskrevet til korrekt norsk (var ASCII-strippet, 0
   aa/oe/ae; lastes brukervendt av /okr:kvalitet + kvalitetssjekker +
   freshen-references). Regresjon i samme klasse som v1.3.0-showstopperen.
2. SKILL.md flaggskip-eksempel: strippet norsk rettet (per aar/hoyrisiko/
   spoerreundersoekelse/Gjennomfoere moeter).
3. okr-second-brain-search ~-glob: literal ~ ekspanderes ikke av Glob ->
   hjemme-roten ble aldri soekt. Naa eksplisitt absolutt hjemme-sti.
4. Uverifisert kb-search-sitat fjernet (motsagt av innboks-ingestion-funn);
   erstattet med funksjonell Glob/Read/Grep + discovery-moenster.
5. okr-oboard-guide.md KR1-regnefeil 52% -> 65% (per filens egen formel).

Bump alle flater 1.6.0 -> 1.6.1 (plugin.json, CLAUDE.md, README badge+hist,
begge SKILL.md, CHANGELOG). Suite 55/55 groenn. C+ -> A-; systemiske funn
(KB-kryssref, Sist-oppdatert-markoerer) bevisst utsatt.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFW5scLL7oEwWWTv1fPQG6
This commit is contained in:
Kjell Tore Guttormsen 2026-06-26 21:31:42 +02:00
commit 30545b982e
8 changed files with 69 additions and 55 deletions

View file

@ -1,6 +1,6 @@
{
"name": "okr",
"version": "1.6.0",
"version": "1.6.1",
"description": "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.",
"author": {
"name": "Kjell Tore Guttormsen"

View file

@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.6.1] - 2026-06-26
### Fixed
- **`okr-quality-rubrics.md` omskrevet til korrekt norsk** — den ankrede kvalitetsrubrikken var fullstendig ASCII-strippet (0 å/ø/æ) til tross for at den lastes brukervendt av `/okr:kvalitet`, `kvalitetssjekker`-agenten og `/okr:freshen-references`. Samme tekstkvalitetsklasse som 360-en flagget KRITISK i v1.3.0 — en regresjon innført med selve rubrikk-fila.
- **`SKILL.md` flaggskip-eksempel** — strippet norsk i det første konkrete OKR-eksemplet (per år / høyrisiko / spørreundersøkelse / Gjennomføre møter).
- **`okr-second-brain-search` `~`-glob** — retrieval-instruksjonen brukte literal `~/.claude/okr/org/`, som Glob-verktøyet ikke ekspanderer → hjemme-roten (org-identitet) ble stilltiende aldri søkt, mot skillens eget «search both roots»-premiss. Nå eksplisitt absolutt hjemme-sti.
- **Uverifisert `kb-search`-sitat fjernet**`okr-second-brain-search` hevdet en OKF `kb-search`-triad som ikke finnes (motsagt av `docs/innboks-ingestion-funn-2026-06.md`); erstattet med funksjonell Glob/Read/Grep-beskrivelse + `discovery`-mønsteret.
- **Regnefeil i `okr-oboard-guide.md`** — KR1-progresjon viste 52 %; korrekt er 65 % per filens egen formel `(startcurrent)/(starttarget)`.
### Notes
- Patch utløst av `docs/evaluering-360-2026-06-26.md` (360-re-evaluering på v1.6.0): C+ → A. Systemiske funn (KB-kryssreferanser, «Sist oppdatert»-markører) er bevisst utsatt.
## [1.6.0] - 2026-06-26
### Added

View file

@ -1,4 +1,4 @@
# OKR Offentlig Sektor v1.6.0
# OKR Offentlig Sektor v1.6.1
Expert OKR guidance for Norwegian public sector. Google/Doerr methodology adapted for 4-month tertial cycles.

View file

@ -6,7 +6,7 @@
*AI-generated: all code produced by Claude Code through dialog-driven development. [Full disclosure →](../../README.md#ai-generated-code-disclosure)*
![Version](https://img.shields.io/badge/version-1.6.0-blue)
![Version](https://img.shields.io/badge/version-1.6.1-blue)
![Platform](https://img.shields.io/badge/platform-Claude_Code_Plugin-purple)
![Agents](https://img.shields.io/badge/agents-7-orange)
![Commands](https://img.shields.io/badge/commands-13-blue)
@ -290,6 +290,7 @@ The plugin understands this hierarchy and helps you maintain alignment at every
| Version | Date | Highlights |
|---------|------|------------|
| **1.6.1** | 2026-06-26 | Patch: credibility-sanering etter 360-re-evaluering (C+ → A) — ASCII-strippet kvalitetsrubrikk omskrevet til korrekt norsk, `okr-second-brain-search` `~`-glob søker nå hjemme-roten, uverifisert kb-search-sitat fjernet, regnefeil i oboard-eksempel rettet |
| **1.6.0** | 2026-06-26 | OKF «second brain»: on-demand retrieval-skill (`okr-second-brain-search`) over OKF-wiki, OKF-frontmatter på kontekstfiler, `okf-index`/`okf-check`, delt frontmatter-modul, slankere inject-hook |
| **1.5.0** | 2026-06-26 | Referansegrad-løft (Fase 3): `/okr:help`, `/okr:export` (PDF), `/okr:freshen-references`, ankret kvalitetsrubrikk, atomisk org-profil-skriving |
| **1.4.0** | 2026-06-24 | Domenedybde + kildeintegritet (Fase 1), UX-/kommando-/agent-modning (Fase 2), hybrid org-kontekst-lesing |

View file

@ -2,7 +2,7 @@
name: okr-offentlig-sektor
description: >-
OKR (Objectives and Key Results) for Norwegian public sector: writing OKR, reviewing OKR quality, cascading OKR from strategy to team, tracking progress, running OKR meetings, translating tildelingsbrev to OKR. Also CFR, OKR antipatterns, scoring, Oboard. Triggers on: "OKR", "skriv OKR", "vurder OKR", "OKR-scoring", "kaskadere OKR", "tildelingsbrev til OKR", "OKR for offentlig sektor".
version: "1.6.0"
version: "1.6.1"
---
# OKR Skill for Offentlig Sektor (Norge)
@ -29,16 +29,16 @@ Objective: [Verb] + [clear outcome/improvement]
**Example**:
```
Objective: Forbedre trafikksikkerhet i skolesoner
KR1: Redusere ulykker i skolesoner med 25% (fra 40 til 30 per ar)
KR2: 100% av hoyrisiko-skolesoner far nye fartshumper innen august
KR3: 90% av foreldre vurderer skolesoner som trygge (via sporreundersokelse)
KR1: Redusere ulykker i skolesoner med 25% (fra 40 til 30 per år)
KR2: 100% av høyrisiko-skolesoner får nye fartshumper innen august
KR3: 90% av foreldre vurderer skolesoner som trygge (via spørreundersøkelse)
```
### 2. Review OKR Quality
When users present existing OKR, evaluate against these criteria and provide concrete rewrites:
- **Good**: Outcome-focused, measurable, ambitious but achievable, clear strategy link
- **Common errors**: Activity-oriented ("Gjennomfore 5 moter"), vague ("Forbedre kundeservice"), sandbagging, not measurable, no link to higher goals
- **Common errors**: Activity-oriented ("Gjennomføre 5 møter"), vague ("Forbedre kundeservice"), sandbagging, not measurable, no link to higher goals
### 3. Track Progress

View file

@ -92,7 +92,7 @@ Key Results:
├─ KR1: Reduser ulykker med personskade
│ ├─ Start: 45 ulykker/år
│ ├─ Target: 25 ulykker/år
│ ├─ Current: 32 ulykker (etter 2 mnd) [Progress: 52%]
│ ├─ Current: 32 ulykker (etter 2 mnd) [Progress: 65%]
│ ├─ Confidence: 🟡 At Risk
│ └─ Owner: Lena Hansen

View file

@ -1,105 +1,105 @@
# OKR-kvalitetsrubrikker — ankret scoringsguide
Single sannhetskilde for OKR-kvalitetsvurdering i norsk offentlig sektor (Google/Doerr-metodikk tilpasset tertialsyklus). Hver kvalitetsdimensjon har **fem ankere** fra svakest til sterkest med konkret nivaabeskrivelse, slik at scoring blir deterministisk og reproduserbar paa tvers av vurderinger og vurderere.
Felles sannhetskilde for OKR-kvalitetsvurdering i norsk offentlig sektor (Google/Doerr-metodikk tilpasset tertialsyklus). Hver kvalitetsdimensjon har **fem ankere** fra svakest til sterkest med konkret nivåbeskrivelse, slik at scoring blir deterministisk og reproduserbar på tvers av vurderinger og vurderere.
**Bruk:** les ankerbeskrivelsene per dimensjon, finn det nivaaet OKR-en faktisk treffer, og scor dimensjonen 1-5. Skaler til 0-10 der en ti-skala kreves: anker 1 -> 1-2, anker 2 -> 3-4, anker 3 -> 5-6, anker 4 -> 7-8, anker 5 -> 9-10 (jf. scoring-guiden i `kvalitetssjekker`-agenten og samlet-scoring-tabellen i `/okr:kvalitet`). Denne fila erstatter den inline-rubrikken som tidligere laa i `commands/kvalitet.md` og forkortet i `agents/kvalitetssjekker-agent.md` — kommandoen og agenten refererer hit i stedet for aa baere ankrene selv.
**Bruk:** les ankerbeskrivelsene per dimensjon, finn det nivået OKR-en faktisk treffer, og scor dimensjonen 1-5. Skaler til 0-10 der en ti-skala kreves: anker 1 -> 1-2, anker 2 -> 3-4, anker 3 -> 5-6, anker 4 -> 7-8, anker 5 -> 9-10 (jf. scoring-guiden i `kvalitetssjekker`-agenten og samlet-scoring-tabellen i `/okr:kvalitet`). Denne fila erstatter den inline-rubrikken som tidligere lå i `commands/kvalitet.md` og forkortet i `agents/kvalitetssjekker-agent.md` — kommandoen og agenten refererer hit i stedet for å bære ankrene selv.
## Objective-dimensjoner
### Inspirerende
Maaler om Objective-et motiverer teamet og kommuniserer hvorfor arbeidet betyr noe.
Måler om Objective-et motiverer teamet og kommuniserer hvorfor arbeidet betyr noe.
1. **Anker 1 (svakest)** — Kjedelig eller rent byraakratisk; ingen blir engasjert av formuleringen.
2. **Anker 2** — Toert og oppgavepreget; saklig, men vekker ikke eierskap.
3. **Anker 3** — Noeytralt; akseptabelt, men hverken loefter eller demotiverer.
1. **Anker 1 (svakest)** — Kjedelig eller rent byråkratisk; ingen blir engasjert av formuleringen.
2. **Anker 2** — Tørt og oppgavepreget; saklig, men vekker ikke eierskap.
3. **Anker 3** — Nøytralt; akseptabelt, men hverken løfter eller demotiverer.
4. **Anker 4** — Engasjerende for de fleste; tydelig retning og en antydning av hvorfor.
5. **Anker 5 (sterkest)** — Motiverer hele teamet; kommuniserer mening og ambisjon, og folk husker det.
### Klarhet
Maaler om Objective-et gir en entydig retning som alle tolker likt.
Måler om Objective-et gir en entydig retning som alle tolker likt.
1. **Anker 1 (svakest)** — Flertydig; kan tolkes i flere ulike retninger.
2. **Anker 2** — Et kjernebegrep er uklart og krever oppklaring foer arbeid kan starte.
2. **Anker 2** — Et kjernebegrep er uklart og krever oppklaring før arbeid kan starte.
3. **Anker 3** — Noe vagt, men hovedretningen anes.
4. **Anker 4** — Stort sett entydig; kun smaa tolkningsrom igjen.
5. **Anker 5 (sterkest)** — Entydig retning; alle som leser det forstaar det samme.
4. **Anker 4** — Stort sett entydig; kun små tolkningsrom igjen.
5. **Anker 5 (sterkest)** — Entydig retning; alle som leser det forstår det samme.
### Outcome-fokus
Maaler om Objective-et beskriver en oensket tilstand (resultat) heller enn en aktivitet.
Måler om Objective-et beskriver en ønsket tilstand (resultat) heller enn en aktivitet.
1. **Anker 1 (svakest)** — Ren aktivitet ("gjennomfoere", "lage", "innfoere"); ingen resultat.
1. **Anker 1 (svakest)** — Ren aktivitet ("gjennomføre", "lage", "innføre"); ingen resultat.
2. **Anker 2** — Overveiende aktivitet med en vag henvisning til effekt.
3. **Anker 3** — Blanding av aktivitet og resultat.
4. **Anker 4** — Overveiende resultat, med en gjenvaerende aktivitetsrest.
5. **Anker 5 (sterkest)** — Rent outcome; beskriver tilstanden vi vil oppnaa, ikke veien dit.
4. **Anker 4** — Overveiende resultat, med en gjenværende aktivitetsrest.
5. **Anker 5 (sterkest)** — Rent outcome; beskriver tilstanden vi vil oppnå, ikke veien dit.
### Scope
Maaler om Objective-et er riktig dimensjonert for én tertial (fire maaneder).
Måler om Objective-et er riktig dimensjonert for én tertial (fire måneder).
1. **Anker 1 (svakest)** — Helt feil scope; en fleraarig visjon eller en triviell enkeltoppgave.
1. **Anker 1 (svakest)** — Helt feil scope; en flerårig visjon eller en triviell enkeltoppgave.
2. **Anker 2** — Klart for stort eller for lite for én tertial.
3. **Anker 3** — Litt for stort eller for lite, men haandterbart.
3. **Anker 3** — Litt for stort eller for lite, men håndterbart.
4. **Anker 4** — Passer tertialen med rimelig stretch.
5. **Anker 5 (sterkest)** — Perfekt dimensjonert for én tertial; ambisioest men oppnaaelig i perioden.
5. **Anker 5 (sterkest)** — Perfekt dimensjonert for én tertial; ambisiøst men oppnåelig i perioden.
### Alignment
Maaler om Objective-et er koblet oppover til org-OKR, tildelingsbrev eller overordnet strategi.
Måler om Objective-et er koblet oppover til org-OKR, tildelingsbrev eller overordnet strategi.
1. **Anker 1 (svakest)** — Ingen kobling til overordnet maal eller tildelingsbrev.
2. **Anker 2** — Kobling paastaaes, men kan ikke spores til et konkret overordnet maal.
3. **Anker 3** — Implisitt kobling oppover; leseren maa selv slutte sammenhengen.
1. **Anker 1 (svakest)** — Ingen kobling til overordnet mål eller tildelingsbrev.
2. **Anker 2** — Kobling påstås, men kan ikke spores til et konkret overordnet mål.
3. **Anker 3** — Implisitt kobling oppover; leseren må selv slutte sammenhengen.
4. **Anker 4** — Tydelig koblet, men ikke eksplisitt sitert.
5. **Anker 5 (sterkest)** — Tydelig og eksplisitt koblet til navngitt org-OKR eller tildelingsbrevspunkt.
## Key Result-dimensjoner
### Maalbarhet
Maaler om Key Result-et har konkrete tall med baseline og target.
### Målbarhet
Måler om Key Result-et har konkrete tall med baseline og target.
1. **Anker 1 (svakest)** — Ikke maalbart; ingen tall, kun kvalitativ paastand.
1. **Anker 1 (svakest)** — Ikke målbart; ingen tall, kun kvalitativ påstand.
2. **Anker 2** — Et tall er nevnt, men uten baseline eller uten target.
3. **Anker 3** — Delvis maalbart (target uten baseline, eller omvendt).
3. **Anker 3** — Delvis målbart (target uten baseline, eller omvendt).
4. **Anker 4** — Tall med baseline og target, men et mindre presisjonshull (uklar enhet/avgrensning).
5. **Anker 5 (sterkest)** — Tall med tydelig baseline -> target og entydig enhet.
### Outcome
Maaler om Key Result-et fanger reell effekt heller enn output/aktivitet.
Måler om Key Result-et fanger reell effekt heller enn output/aktivitet.
1. **Anker 1 (svakest)** — Ren output/aktivitet (antall moeter, leveranser, kurs).
1. **Anker 1 (svakest)** — Ren output/aktivitet (antall møter, leveranser, kurs).
2. **Anker 2** — Output brukt som svak proxy for et udokumentert resultat.
3. **Anker 3** — Blanding av output og outcome.
4. **Anker 4** — Overveiende outcome, med en mindre output-rest.
5. **Anker 5 (sterkest)** — Maaler reell effekt eller resultat for bruker/samfunn.
5. **Anker 5 (sterkest)** — Måler reell effekt eller resultat for bruker/samfunn.
### Ambisjon
Maaler om Key Result-et har riktig stretch — ambisioest, men ikke urealistisk eller sandbagget.
Måler om Key Result-et har riktig stretch — ambisiøst, men ikke urealistisk eller sandbagget.
1. **Anker 1 (svakest)** — Urealistisk (praktisk umulig) eller aapenbar sandbagging (garantert 1.0).
1. **Anker 1 (svakest)** — Urealistisk (praktisk umulig) eller åpenbar sandbagging (garantert 1.0).
2. **Anker 2** — Tydelig for lett eller for hardt for perioden.
3. **Anker 3** — For lett eller for vanskelig, men i naerheten av riktig nivaa.
3. **Anker 3** — For lett eller for vanskelig, men i nærheten av riktig nivå.
4. **Anker 4** — Rimelig stretch, men litt for konservativ eller litt for aggressiv.
5. **Anker 5 (sterkest)** — Riktig stretch; om lag 70 % forventet maaloppnaaelse, ambisioest men mulig.
5. **Anker 5 (sterkest)** — Riktig stretch; om lag 70 % forventet måloppnåelse, ambisiøst men mulig.
### Datakilde
Maaler om Key Result-et har en spesifisert og faktisk tilgjengelig datakilde.
Måler om Key Result-et har en spesifisert og faktisk tilgjengelig datakilde.
1. **Anker 1 (svakest)** — Ukjent datakilde; ingen vet hvor tallet skal hentes fra.
2. **Anker 2** — Datakilde antydet, men ikke bekreftet tilgjengelig.
3. **Anker 3** — Datakilde antas tilgjengelig, men er ikke verifisert.
4. **Anker 4** — Spesifisert kilde med mindre usikkerhet om maalefrekvens eller tilgang.
5. **Anker 5 (sterkest)** — Spesifisert OG tilgjengelig kilde med kjent maalefrekvens.
4. **Anker 4** — Spesifisert kilde med mindre usikkerhet om målefrekvens eller tilgang.
5. **Anker 5 (sterkest)** — Spesifisert OG tilgjengelig kilde med kjent målefrekvens.
### Uavhengighet
Maaler i hvilken grad teamet selv kontrollerer utfallet av Key Result-et.
Måler i hvilken grad teamet selv kontrollerer utfallet av Key Result-et.
1. **Anker 1 (svakest)** — Utfallet ligger helt utenfor teamets kontroll.
2. **Anker 2** — Sterkt avhengig av andre enheter eller eksterne aktoerer.
2. **Anker 2** — Sterkt avhengig av andre enheter eller eksterne aktører.
3. **Anker 3** — Delvis avhengig av andre.
4. **Anker 4** — Stort sett innenfor teamets kontroll, med en mindre ekstern avhengighet.
5. **Anker 5 (sterkest)** — Teamet kontrollerer utfallet direkte.
---
*Kilde: Google re:Work OKR-rubrikk + Doerr "Measure What Matters", tilpasset norsk offentlig tertialsyklus. Ankrene konsoliderer scoringsbaandene fra `/okr:kvalitet` og `kvalitetssjekker`-agenten til én delt sannhetskilde.*
*Kilde: Google re:Work OKR-rubrikk + Doerr "Measure What Matters", tilpasset norsk offentlig tertialsyklus. Ankrene konsoliderer scoringsbåndene fra `/okr:kvalitet` og `kvalitetssjekker`-agenten til én delt sannhetskilde.*
*Sist oppdatert: Juni 2026*

View file

@ -10,7 +10,7 @@ description: >-
prompt. Triggers on: "våre mål", "overordnede mål", "mål dette tertialet",
"tertialmål", "tildelingsbrev", "hva sier OKR-ene våre", "forrige syklus",
"strategi", "styringssignaler".
version: "1.6.0"
version: "1.6.1"
---
# OKR Second-Brain Search
@ -81,13 +81,14 @@ navigate and to break ranking ties (below).
## Retrieval procedure
Adopt the OKF `kb-search` triad (`list_contents` / `read_file` / `search_content`
≡ Glob / Read / Grep) together with the `discovery` quality pattern (semantic
decomposition). Concretely:
Use the native file tools as a retrieval triad — **Glob** (list) / **Read** (open)
/ **Grep** (search) — together with semantic decomposition (the `discovery`
pattern: expand the query before searching rather than grepping verbatim). Concretely:
1. **Locate & navigate.** Glob both roots — `.claude/okr/**/*.md` and
`~/.claude/okr/org/**/*.md`. Read each level's `index.md` first to understand
what exists before reading any concept file.
1. **Locate & navigate.** Glob both roots — the project root `.claude/okr/**/*.md`,
and the home root `<HOME>/.claude/okr/org/**/*.md` (expand `~` to the absolute
home path first — the Glob tool does **not** expand a literal `~`). Read each
level's `index.md` first to understand what exists before reading any concept file.
2. **Semantic decomposition***do not* grep the user's words verbatim. Generate
**up to 3 query variations** and search all of them:
- **(i) Direct + synonyms** — the literal term plus close synonyms