From 30545b982e5e6abb99ee943fd96916866e292fa2 Mon Sep 17 00:00:00 2001 From: Kjell Tore Guttormsen Date: Fri, 26 Jun 2026 21:31:42 +0200 Subject: [PATCH] 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) Claude-Session: https://claude.ai/code/session_01SFW5scLL7oEwWWTv1fPQG6 --- .claude-plugin/plugin.json | 2 +- CHANGELOG.md | 12 +++ CLAUDE.md | 2 +- README.md | 3 +- skills/okr-offentlig-sektor/SKILL.md | 10 +-- .../references/okr-oboard-guide.md | 2 +- .../references/okr-quality-rubrics.md | 78 +++++++++---------- skills/okr-second-brain-search/SKILL.md | 15 ++-- 8 files changed, 69 insertions(+), 55 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 6e8ef6a..71ee2a6 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -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" diff --git a/CHANGELOG.md b/CHANGELOG.md index 37151d3..6f270ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 `(start−current)/(start−target)`. + +### 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 diff --git a/CLAUDE.md b/CLAUDE.md index 99147dc..1a0c8ed 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -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. diff --git a/README.md b/README.md index cb06111..d888cf5 100644 --- a/README.md +++ b/README.md @@ -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 | diff --git a/skills/okr-offentlig-sektor/SKILL.md b/skills/okr-offentlig-sektor/SKILL.md index 0e6f87e..1317da7 100644 --- a/skills/okr-offentlig-sektor/SKILL.md +++ b/skills/okr-offentlig-sektor/SKILL.md @@ -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 diff --git a/skills/okr-offentlig-sektor/references/okr-oboard-guide.md b/skills/okr-offentlig-sektor/references/okr-oboard-guide.md index 83d68d9..24aa218 100644 --- a/skills/okr-offentlig-sektor/references/okr-oboard-guide.md +++ b/skills/okr-offentlig-sektor/references/okr-oboard-guide.md @@ -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 │ diff --git a/skills/okr-offentlig-sektor/references/okr-quality-rubrics.md b/skills/okr-offentlig-sektor/references/okr-quality-rubrics.md index 0b28f2d..81325d1 100644 --- a/skills/okr-offentlig-sektor/references/okr-quality-rubrics.md +++ b/skills/okr-offentlig-sektor/references/okr-quality-rubrics.md @@ -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* diff --git a/skills/okr-second-brain-search/SKILL.md b/skills/okr-second-brain-search/SKILL.md index f8a3fa1..421bd6a 100644 --- a/skills/okr-second-brain-search/SKILL.md +++ b/skills/okr-second-brain-search/SKILL.md @@ -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 `/.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