From 6028ac2f904c01d431e5efced85e5a226a9a33cf Mon Sep 17 00:00:00 2001 From: Kjell Tore Guttormsen Date: Fri, 17 Jul 2026 03:43:22 +0200 Subject: [PATCH] fix(okr): B1 KB/doc-hygiene + referanse-integritetstest (1.7.1-lane) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ny tests/reference-integrity.test.mjs: alle ${CLAUDE_PLUGIN_ROOT}-stier i commands/agents må finnes på disk OG være shippbare (aldri under gitignored .claude/). Fanger død-referanse-klassen permanent (TDD: rød på freshen-references før fiks). Suite 135 -> 138. - Døde referanser lukket: freshen-references peker nå på metrics-library «Review-kadens»; metrics-library-provenanslinje uten død relativ sti. - Kryssref-isolasjon: «Ressurser/Interne referanser»-seksjon i de 5 isolerte KB-filene (examples, oboard-guide, meeting-guides, calculator, cfr). - «Sist oppdatert»-markør på alle 17 referansefiler (var 4). - 19 -> 20 antipatterns (SKILL, kvalitet x2, help — help-forekomst funnet i sweep utover review-lista); «15. oktober» -> tidlig oktober (arshjul x2, framework); garblet prognoseformel rettet mot calculator-kanon (framework). - Typonits: schuld/Næste (meeting-guides), resultatmål (dfo-mapping), sandbagging (trendanalytiker), Q1-2026 -> T1-2026 (fremdriftssporer). - README: hooks-badge 4 -> 3, død Stop-rad fjernet. - BACKLOG.md foldet inn i docs/roadmap.md (tema-nivå, ingen interne plandetaljer) og slettet; .gitignore ROADMAP.md ankret til rot (/ROADMAP.md) så docs/roadmap.md kan trackes. Co-Authored-By: Claude Fable 5 --- .gitignore | 2 +- BACKLOG.md | 29 ------- README.md | 3 +- agents/fremdriftssporer-agent.md | 2 +- agents/trendanalytiker-agent.md | 2 +- commands/freshen-references.md | 9 ++- commands/help.md | 2 +- commands/kvalitet.md | 4 +- docs/roadmap.md | 45 +++++++++++ skills/okr-offentlig-sektor/SKILL.md | 2 +- .../references/cfr-framework.md | 7 ++ .../references/dfo-okr-mapping.md | 4 +- .../references/individual-vs-team-okr.md | 2 + .../references/meeting-guides.md | 16 +++- .../references/metrics-library.md | 2 +- .../references/okr-antipatterns.md | 2 + .../references/okr-arshjul.md | 6 +- .../references/okr-calculator.md | 11 +++ .../references/okr-cheatsheet.md | 2 + .../references/okr-examples.md | 11 +++ .../references/okr-framework.md | 10 +-- .../references/okr-implementation.md | 2 + .../references/okr-integrations.md | 2 + .../references/okr-oboard-guide.md | 9 +++ tests/reference-integrity.test.mjs | 81 +++++++++++++++++++ 25 files changed, 214 insertions(+), 53 deletions(-) delete mode 100644 BACKLOG.md create mode 100644 docs/roadmap.md create mode 100644 tests/reference-integrity.test.mjs diff --git a/.gitignore b/.gitignore index da3a470..0f04e2a 100644 --- a/.gitignore +++ b/.gitignore @@ -30,7 +30,7 @@ node_modules/ # --- session/local state (gitignored per ~/.claude polyrepo-konvensjon) --- STATE.md REMEMBER.md -ROADMAP.md +/ROADMAP.md TODO.md NEXT-SESSION-PROMPT*.local.md *.local.md diff --git a/BACKLOG.md b/BACKLOG.md deleted file mode 100644 index 23efb51..0000000 --- a/BACKLOG.md +++ /dev/null @@ -1,29 +0,0 @@ -# OKR Plugin Backlog - -Forbedringsoppgaver for fremtidige versjoner. - -## v1.1 - Planlagt - -### OKR-1: Forbedre /okr:oppsett wizard - -**Beskrivelse:** Steg-for-steg wizard med fremdriftsindikator, input-validering, og "Quick start" vs "Full setup". - -**Akseptansekriterier:** -- Ny bruker kan sette opp plugin uten dokumentasjon -- Alle obligatoriske felt valideres -- "Quick start" hopper over valgfrie steg - -### OKR-4: SubagentStop quality gate - -**Beskrivelse:** Hook på SubagentStop som blokkerer kvalitetssjekker-agent hvis OKR ikke møter minimumskvalitet. - -**Akseptansekriterier:** -- Exit 2 hvis score < 3/10 på noe element -- Feilmelding forklarer hva som må forbedres -- Kan deaktiveres via konfig - -## Fremtidige ideer (ikke prioritert) - -- **OKR-3:** Flere konkrete norske offentlig sektor-eksempler -- **OKR-6:** Integration med flere verktøy (Notion, Confluence) -- **OKR-7:** Notification hook for OKR-deadline påminnelser diff --git a/README.md b/README.md index 267e9d5..fc630a4 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ![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-14-blue) -![Hooks](https://img.shields.io/badge/hooks-4-green) +![Hooks](https://img.shields.io/badge/hooks-3-green) ![References](https://img.shields.io/badge/references-17-yellow) ![License](https://img.shields.io/badge/license-MIT-lightgrey) @@ -258,7 +258,6 @@ The plugin understands this hierarchy and helps you maintain alignment at every | 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 | -| Stop | Reminds you to save work to your tracking system | ### Skills diff --git a/agents/fremdriftssporer-agent.md b/agents/fremdriftssporer-agent.md index fbf57d8..9f6ee88 100644 --- a/agents/fremdriftssporer-agent.md +++ b/agents/fremdriftssporer-agent.md @@ -81,7 +81,7 @@ Score = (Nåværende - Baseline) / (Target - Baseline) ## OKR Statusrapport **Dato:** [dato] -**Syklus:** Q1-2026 (Uke X av 16) +**Syklus:** T1-2026 (Uke X av 16) **Team:** [teamnavn] --- diff --git a/agents/trendanalytiker-agent.md b/agents/trendanalytiker-agent.md index 21653ef..6ec2bd2 100644 --- a/agents/trendanalytiker-agent.md +++ b/agents/trendanalytiker-agent.md @@ -72,7 +72,7 @@ Ekstraher strukturert data: Les antipattern-kategorier fra referanser: - **Formuleringsfeil**: Aktivitetsfokus i KR, binære KR, vage Objectives -- **Prosessfeil**: Set-and-forget, retrospektiv-mangel, sandbægging +- **Prosessfeil**: Set-and-forget, retrospektiv-mangel, sandbagging - **Ambisjonsbalanse**: For mange Objectives, for ambisiøst, for forsiktig - **Organisatoriske feil**: Silo-OKR, OKR-shaming, manglende sponsor - **Offentlig sektor-spesifikke**: Tildelingsbrev-drift, politisk overreaksjon diff --git a/commands/freshen-references.md b/commands/freshen-references.md index dfa78e3..48cfedf 100644 --- a/commands/freshen-references.md +++ b/commands/freshen-references.md @@ -153,10 +153,11 @@ har blitt utdaterte. Poll disse navngitte kildene: trådt i kraft og erstattet 1967-loven KB-en refererer. - **eFormidling** — sjekk om status fortsatt er «bør» (ikke påbudt) for statlige virksomheter. -Kildegrunnlaget for de volatile markørene er dokumentert i -`${CLAUDE_PLUGIN_ROOT}/.claude/projects/2026-06-24-fase3-referansegrad-loft/research/01-norsk-offentlig-metrikker.md` -(lokal research). Rapporter hvilke `Sist oppdatert`-markører som bør bumpes, og -hvilke faktapåstander som må re-verifiseres. +Kildegrunnlaget for de volatile markørene er oppsummert i +`${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/metrics-library.md` +(seksjonen «Review-kadens»; full provenans i lokalt research-arkiv, ikke +distribuert med pluginen). Rapporter hvilke `Sist oppdatert`-markører som bør +bumpes, og hvilke faktapåstander som må re-verifiseres. ## Referanser diff --git a/commands/help.md b/commands/help.md index 41aec3a..1dca506 100644 --- a/commands/help.md +++ b/commands/help.md @@ -16,7 +16,7 @@ kommandoene for det temaet. Ellers vis full oversikt. | Kommando | Hva den gjør | |----------|--------------| | `/okr:skriv` | Skriv ny OKR med veiledet Objective- og KR-utforming | -| `/okr:kvalitet` | Kvalitetssjekk OKR mot ankret rubrikk og 19 antipatterns | +| `/okr:kvalitet` | Kvalitetssjekk OKR mot ankret rubrikk og 20 antipatterns | | `/okr:kaskade` | Kaskader OKR fra org til team, visualiser alignment | | `/okr:sporing` | Spor fremdrift, beregn score (0.0–1.0), generer check-ins | | `/okr:møter` | Planlegg OKR-workshops, check-ins, reviews og 1:1 (CFR) | diff --git a/commands/kvalitet.md b/commands/kvalitet.md index ad42a81..e80aa3f 100644 --- a/commands/kvalitet.md +++ b/commands/kvalitet.md @@ -31,7 +31,7 @@ OKR-kontekst injiseres automatisk via hook. Sjekk system-konteksten FØR du spø - Identifiser styrker og svakheter 3. **Sjekk for antipatterns** — se etter de vanligste feilene - - Les `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-antipatterns.md` for alle 19 antipatterns + - Les `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-antipatterns.md` for alle 20 antipatterns - Kategoriser: formulering, prosess, kultur, struktur, ledelse 4. **Tilby forbedringer** — for OKR som scorer lavt: @@ -115,5 +115,5 @@ OKR-kontekst injiseres automatisk via hook. Sjekk system-konteksten FØR du spø ## Referanser - `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-quality-rubrics.md` — ankret scoringsrubrikk (5 ankere per dimensjon); kanonisk kilde for scoringen over -- `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-antipatterns.md` — alle 19 antipatterns +- `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-antipatterns.md` — alle 20 antipatterns - `${CLAUDE_PLUGIN_ROOT}/skills/okr-offentlig-sektor/references/okr-examples.md` — gode vs dårlige eksempler diff --git a/docs/roadmap.md b/docs/roadmap.md new file mode 100644 index 0000000..1fe0a84 --- /dev/null +++ b/docs/roadmap.md @@ -0,0 +1,45 @@ +# Roadmap + +Retning og backlog for OKR Offentlig Sektor-pluginen. Versjonshistorikk: se +`CHANGELOG.md` (README bærer et sammendrag). Detaljert fase-/sesjonsplanlegging +skjer i lokalt planverk og speiles ikke hit. + +## Planlagte spor (tema-nivå) + +- **1.7.x (patch-lane):** dokumentasjons- og kodehygiene — KB-kryssreferanser, + referanse-integritetstest, småfikser i ingestion-bibliotekene og hooks. +- **1.8.0 «Én kanon»:** konsolidering av metodedoktrine — én kadens, én + confidence-tabell, ett scorebånd, harmoniserte antipattern-kategorier; + kommandoene moderniseres til post-1.6.0 retrieval. +- **1.9.0 «Styringssløyfa lukkes»:** gevinstrealisering-bro (DFØ-vokabular), + kommunal styringslinje, rapportering ut-siden (tertial-/årsrapport-underlag), + GDPR-posisjon og deterministisk rydde-kommando for ingested innhold. +- **2.0.0:** beriket ingestion (`--enrich`) og validering i reell tertialsyklus. + +## Backlog (fra tidligere BACKLOG.md) + +### OKR-1: Forbedre /okr:oppsett wizard + +**Beskrivelse:** Steg-for-steg wizard med fremdriftsindikator, input-validering, og "Quick start" vs "Full setup". + +**Akseptansekriterier:** +- Ny bruker kan sette opp plugin uten dokumentasjon +- Alle obligatoriske felt valideres +- "Quick start" hopper over valgfrie steg + +### OKR-4: SubagentStop quality gate + +**Beskrivelse:** Hook på SubagentStop som blokkerer kvalitetssjekker-agent hvis OKR ikke møter minimumskvalitet. + +**Akseptansekriterier:** +- Exit 2 hvis score < 3/10 på noe element +- Feilmelding forklarer hva som må forbedres +- Kan deaktiveres via konfig + +### Fremtidige ideer (ikke prioritert) + +- **OKR-3:** Flere konkrete norske offentlig sektor-eksempler +- **OKR-6:** Integration med flere verktøy (Notion, Confluence) +- **OKR-7:** Notification hook for OKR-deadline påminnelser + +*Sist oppdatert: Juli 2026* diff --git a/skills/okr-offentlig-sektor/SKILL.md b/skills/okr-offentlig-sektor/SKILL.md index 495b703..2ed8ea3 100644 --- a/skills/okr-offentlig-sektor/SKILL.md +++ b/skills/okr-offentlig-sektor/SKILL.md @@ -131,7 +131,7 @@ All reference material is in `references/`: - `okr-framework.md` — Core methodology, scoring, cycle management - `okr-quality-rubrics.md` — Anchored quality rubric (5 anchors per dimension) for `/okr:kvalitet` - `okr-examples.md` — Good and bad examples from public sector -- `okr-antipatterns.md` — 19 common OKR mistakes +- `okr-antipatterns.md` — 20 common OKR mistakes - `okr-sources.md` — Bibliographic evidence base ### Operations diff --git a/skills/okr-offentlig-sektor/references/cfr-framework.md b/skills/okr-offentlig-sektor/references/cfr-framework.md index 5c8d5df..f109680 100644 --- a/skills/okr-offentlig-sektor/references/cfr-framework.md +++ b/skills/okr-offentlig-sektor/references/cfr-framework.md @@ -346,6 +346,11 @@ Bruk denne for å vurdere din CFR-praksis: ## Ressurser +### Interne referanser +- `meeting-guides.md` - Agendaer for 1:1 og check-in der CFR praktiseres +- `individual-vs-team-okr.md` - Hvorfor CFR (ikke individuelle OKR) dekker individnivået +- `okr-framework.md` - OKR-metodikken CFR komplementerer + ### Bøker - **Measure What Matters** av John Doerr, kap. 13-14 om CFR - **Radical Candor** av Kim Scott for feedback-teknikker @@ -362,3 +367,5 @@ Bruk denne for å vurdere din CFR-praksis: - **SBI-modellen** (Situation-Behavior-Impact) for strukturert feedback - **70/30-regelen** for lyttende samtaler - **Skalaspørsmål** for å unngå defensivitet i OKR-samtaler + +*Sist oppdatert: Juli 2026* diff --git a/skills/okr-offentlig-sektor/references/dfo-okr-mapping.md b/skills/okr-offentlig-sektor/references/dfo-okr-mapping.md index 592ed5c..31ba376 100644 --- a/skills/okr-offentlig-sektor/references/dfo-okr-mapping.md +++ b/skills/okr-offentlig-sektor/references/dfo-okr-mapping.md @@ -7,7 +7,7 @@ OKR-metodikken. ## Hvorfor denne broen trengs -Norsk offentlig sektor snakker "DFØ-språk" — resultmål, styringsparametere, +Norsk offentlig sektor snakker "DFØ-språk" — resultatmål, styringsparametere, resultatindikatorer. OKR-verden snakker om Objectives, Key Results, stretch goals. Denne terminologiske kløften skaper motstand og forvirring ved OKR-innføring. @@ -112,3 +112,5 @@ Den konseptuelle broen: DFØ beskriver selv MRS som å «konsentrere seg om *hva - DFØ: [Etatsstyring](https://dfo.no/fagomrader/styring-i-staten/etatsstyring) - `okr-offentlig-governance.md` — Tildelingsbrev-analyse og Riksrevisjon-compliance - `okr-framework.md` — OKR-metodikk i detalj + +*Sist oppdatert: Juli 2026* diff --git a/skills/okr-offentlig-sektor/references/individual-vs-team-okr.md b/skills/okr-offentlig-sektor/references/individual-vs-team-okr.md index bb27e50..d00e196 100644 --- a/skills/okr-offentlig-sektor/references/individual-vs-team-okr.md +++ b/skills/okr-offentlig-sektor/references/individual-vs-team-okr.md @@ -50,3 +50,5 @@ Via bidragsvurdering til team-OKR, 360-feedback, KPIer for rollen, og kvalitativ **"Ledelsen vil ha individuelle OKR"** Del denne veiledningen og forskningen bak. Foreslå en hybrid hvor ledere har team-OKR, ikke personlige OKR. + +*Sist oppdatert: Juni 2026* diff --git a/skills/okr-offentlig-sektor/references/meeting-guides.md b/skills/okr-offentlig-sektor/references/meeting-guides.md index 7d9d3b9..741a70c 100644 --- a/skills/okr-offentlig-sektor/references/meeting-guides.md +++ b/skills/okr-offentlig-sektor/references/meeting-guides.md @@ -79,7 +79,7 @@ For hvert Key Result: ### Fasilitatortips - Hold det kort og fokusert (ikke gå i detaljer om utførelse) - Feir fremgang: Hvis noe går bra, gi skryt -- Vær løsningsorientert: Ikke schuld, men "hva kan vi gjøre?" +- Vær løsningsorientert: Ikke skyld, men "hva kan vi gjøre?" --- @@ -212,7 +212,7 @@ For hvert tema: **00:45 - 01:00 | Action items** - Justeringer til OKR hvis nødvendig - Kommunikasjonsplan mellom teams -- Næste alignment-sjekk dato +- Neste alignment-sjekk dato --- @@ -267,3 +267,15 @@ Lærdommer: 6. **Dokumentasjon**: Logg decisions og actions i Oboard/Confluence 7. **Hybridvennlig**: Sørg for at remote-deltakere ser og høres 8. **Celebration**: Feir wins, ikke bare fokuser på problemer + +--- + +## Ressurser + +### Interne referanser +- `okr-arshjul.md` - Når i tertialet de ulike møtene hører hjemme +- `okr-calculator.md` - Confidence- og score-vurderingene i check-in +- `cfr-framework.md` - Samtale- og feedback-teknikker for 1:1-er +- `okr-framework.md` - Metodikken møtene opererer innenfor + +*Sist oppdatert: Juli 2026* diff --git a/skills/okr-offentlig-sektor/references/metrics-library.md b/skills/okr-offentlig-sektor/references/metrics-library.md index 6d3d4a2..784d122 100644 --- a/skills/okr-offentlig-sektor/references/metrics-library.md +++ b/skills/okr-offentlig-sektor/references/metrics-library.md @@ -298,6 +298,6 @@ Disse ser imponerende ut, men Riksrevisjonen/tilsyn har dokumentert svak reell e ### Review-kadens -Alt regelverk i denne seksjonen er et **bevegelig mål 2025–2026** (ny forvaltningslov fases inn, EAA pending, eFormidling 4.0-migrasjon, årlige indeksrunder, ny DI-indeks). Biblioteket kan derfor ikke være statisk. Før hver deling/release: re-verifiser kilde + dato per metrikk. `/okr:freshen-references` bør prioritere de volatile primærkildene: Lovdata (forvaltningslov-status), uutilsynet (WCAG/EAA), Digdir (eFormidling/indeks). Full provenans og confidence-vurdering: `research/01-norsk-offentlig-metrikker.md` (trekresearch 2026-06-24, confidence 0,85). +Alt regelverk i denne seksjonen er et **bevegelig mål 2025–2026** (ny forvaltningslov fases inn, EAA pending, eFormidling 4.0-migrasjon, årlige indeksrunder, ny DI-indeks). Biblioteket kan derfor ikke være statisk. Før hver deling/release: re-verifiser kilde + dato per metrikk. `/okr:freshen-references` bør prioritere de volatile primærkildene: Lovdata (forvaltningslov-status), uutilsynet (WCAG/EAA), Digdir (eFormidling/indeks). Full provenans og confidence-vurdering: trekresearch 2026-06-24, confidence 0,85 (lokalt research-arkiv, ikke distribuert med pluginen). *Sist oppdatert: Juni 2026* diff --git a/skills/okr-offentlig-sektor/references/okr-antipatterns.md b/skills/okr-offentlig-sektor/references/okr-antipatterns.md index 612a63a..3d2e593 100644 --- a/skills/okr-offentlig-sektor/references/okr-antipatterns.md +++ b/skills/okr-offentlig-sektor/references/okr-antipatterns.md @@ -549,3 +549,5 @@ Denne guiden dekker de vanligste feilmønstrene organisert i fem kategorier. - `okr-framework.md` - Metodikk i detalj - `okr-examples.md` - Gode og dårlige eksempler - `meeting-guides.md` - Agendaer for OKR-møter + +*Sist oppdatert: Juni 2026* diff --git a/skills/okr-offentlig-sektor/references/okr-arshjul.md b/skills/okr-offentlig-sektor/references/okr-arshjul.md index 7021ca7..8553629 100644 --- a/skills/okr-offentlig-sektor/references/okr-arshjul.md +++ b/skills/okr-offentlig-sektor/references/okr-arshjul.md @@ -94,7 +94,7 @@ **September - Oktober** - Syklus 3 gjennomføring -- **15. oktober**: Statsbudsjett fremlegges (viktig for neste år!) +- **Tidlig oktober**: Statsbudsjett fremlegges (viktig for neste år!) - Forberedelse til årlig review **November** @@ -117,7 +117,7 @@ ┌─────────────────────────────────────────────────────────────────┐ │ BUDSJETTPROSESSEN │ ├─────────────┬───────────────────────────────────────────────────┤ -│ Oktober 15 │ Statsbudsjett fremlegges → Indikasjon på rammer │ +│ Tidlig okt. │ Statsbudsjett fremlegges → Indikasjon på rammer │ │ November │ Stortingsbehandling → Avklaringer │ │ Desember │ Budsjett vedtas → Rammer bekreftet │ │ Januar │ Tildelingsbrev → Endelige mål og ressurser │ @@ -186,3 +186,5 @@ Se også: - `okr-framework.md` - Komplett metodikk - `okr-cheatsheet.md` - Hurtigreferanse - `meeting-guides.md` - Agendaer for møter + +*Sist oppdatert: Juli 2026* diff --git a/skills/okr-offentlig-sektor/references/okr-calculator.md b/skills/okr-offentlig-sektor/references/okr-calculator.md index 3ef4f57..31f539c 100644 --- a/skills/okr-offentlig-sektor/references/okr-calculator.md +++ b/skills/okr-offentlig-sektor/references/okr-calculator.md @@ -260,3 +260,14 @@ Oppsummering av alle OKR for et team: 3. **Fokuser på tiltak** - At Risk og Off Track krever konkrete handlinger 4. **Del synlig** - Bruk Oboard eller lignende for transparens 5. **Lær av avvik** - Gap mellom prognose og resultat gir verdifull innsikt + +--- + +## Ressurser + +### Interne referanser +- `okr-framework.md` - Scoring og prognosering i metodisk kontekst +- `meeting-guides.md` - Check-in-møtene der confidence vurderes +- `okr-quality-rubrics.md` - Kvalitetsvurdering av selve KR-formuleringen + +*Sist oppdatert: Juli 2026* diff --git a/skills/okr-offentlig-sektor/references/okr-cheatsheet.md b/skills/okr-offentlig-sektor/references/okr-cheatsheet.md index 20e8b5f..9f43551 100644 --- a/skills/okr-offentlig-sektor/references/okr-cheatsheet.md +++ b/skills/okr-offentlig-sektor/references/okr-cheatsheet.md @@ -116,3 +116,5 @@ Måned 4: REVIEW --- **Mer hjelp?** Spør OKR-skillen eller se `references/` for dybdeguider. + +*Sist oppdatert: Juni 2026* diff --git a/skills/okr-offentlig-sektor/references/okr-examples.md b/skills/okr-offentlig-sektor/references/okr-examples.md index 54da51e..a0a6bb0 100644 --- a/skills/okr-offentlig-sektor/references/okr-examples.md +++ b/skills/okr-offentlig-sektor/references/okr-examples.md @@ -227,3 +227,14 @@ Bruk denne når du skriver eller vurderer OKR: - [ ] Kan vi verifisere suksess objektivt? - [ ] Er det klart hvem som eier hvert KR? - [ ] Ville dette imponere stakeholders hvis vi lykkes? + +--- + +## Ressurser + +### Interne referanser +- `okr-framework.md` - Metodikken eksemplene bygger på +- `okr-quality-rubrics.md` - Rubrikk for å vurdere egne utkast mot eksemplene +- `okr-antipatterns.md` - Fallgruvene de dårlige eksemplene illustrerer + +*Sist oppdatert: Juli 2026* diff --git a/skills/okr-offentlig-sektor/references/okr-framework.md b/skills/okr-offentlig-sektor/references/okr-framework.md index 42eb611..f14834c 100644 --- a/skills/okr-offentlig-sektor/references/okr-framework.md +++ b/skills/okr-offentlig-sektor/references/okr-framework.md @@ -182,7 +182,7 @@ OKR i offentlig sektor må koordineres med statens budsjettprosess for å være | Dato | Hendelse | OKR-implikasjon | |------|----------|-----------------| -| Oktober 15 | Statsbudsjett fremlegges | Indikasjon på ressursrammer | +| Tidlig oktober | Statsbudsjett fremlegges | Indikasjon på ressursrammer | | November | Stortingsbehandling | Avklaringer underveis | | Desember (tidlig) | Budsjett vedtas | Rammer bekreftet | | Januar | Tildelingsbrev sendes | Endelige mål og rammer | @@ -414,16 +414,14 @@ Hvis confidence alltid starter og forblir på 90%+, setter dere sannsynligvis ik Den enkleste metoden for å forutsi sluttresultat: ``` -Prognose = Baseline + (Nåværende progresjon / Tid brukt) × Total tid +Prognose = Baseline + (Nåværende - Baseline) × (Total tid / Tid brukt) Eksempel: KR: Øke konvertering fra 10% til 20% Tid: 2 av 4 måneder brukt (50%) Nåværende: 14% -Progresjon: (14-10) / (20-10) = 0.4 (40%) -Rate = 40% progresjon / 50% tid = 0.8 -Prognose ved syklusslutt: 10 + (0.8 × 100% × 10) = 18% +Prognose = 10 + (14 - 10) × (4 / 2) = 10 + 8 = 18% ``` #### Tidsjustert forventning @@ -580,3 +578,5 @@ Selv kvalitative mål bør ha en definert måte å verifisere suksess på. 4. **Transparency**: OKR er åpne 5. **Continuous Tracking**: Følg opp månedlig 6. **Learning over Punishment**: Scorer brukes til forbedring, ikke straff + +*Sist oppdatert: Juli 2026* diff --git a/skills/okr-offentlig-sektor/references/okr-implementation.md b/skills/okr-offentlig-sektor/references/okr-implementation.md index 954fd1e..a11a061 100644 --- a/skills/okr-offentlig-sektor/references/okr-implementation.md +++ b/skills/okr-offentlig-sektor/references/okr-implementation.md @@ -507,3 +507,5 @@ Stretch-mål krever psykologisk trygghet. Ansatte må: - [OKR Institute](https://okrinstitute.org/) - Forskning og best practices - [What Matters](https://www.whatmatters.com/) - John Doerrs ressursside - [Code for America OKR Case Study](https://www.whatmatters.com/articles/code-for-america-okrs-local-government) - Offentlig sektor-eksempel + +*Sist oppdatert: Juni 2026* diff --git a/skills/okr-offentlig-sektor/references/okr-integrations.md b/skills/okr-offentlig-sektor/references/okr-integrations.md index a361762..add7f0b 100644 --- a/skills/okr-offentlig-sektor/references/okr-integrations.md +++ b/skills/okr-offentlig-sektor/references/okr-integrations.md @@ -593,3 +593,5 @@ Outcome-KR | Manuell med kilde - `meeting-guides.md` – Agendaer for OKR-møter (inkl. sprint planning med OKR) - `okr-implementation.md` – Innføringsguide - `okr-offentlig-governance.md` – Kobling til tildelingsbrev og politisk styring + +*Sist oppdatert: Juni 2026* diff --git a/skills/okr-offentlig-sektor/references/okr-oboard-guide.md b/skills/okr-offentlig-sektor/references/okr-oboard-guide.md index 24aa218..048c3af 100644 --- a/skills/okr-offentlig-sektor/references/okr-oboard-guide.md +++ b/skills/okr-offentlig-sektor/references/okr-oboard-guide.md @@ -128,3 +128,12 @@ Oboard kan integreres med: --- **Tips**: Bruk Oboard mobile app for rask check-in underveis! + +## Ressurser + +### Interne referanser +- `okr-integrations.md` - Verktøylandskapet Oboard er en del av +- `okr-calculator.md` - Scoring og confidence som føres i verktøyet +- `meeting-guides.md` - Check-in-møtene der Oboard-data brukes + +*Sist oppdatert: Juli 2026* diff --git a/tests/reference-integrity.test.mjs b/tests/reference-integrity.test.mjs new file mode 100644 index 0000000..25fcf86 --- /dev/null +++ b/tests/reference-integrity.test.mjs @@ -0,0 +1,81 @@ +// reference-integrity.test.mjs +// B1 (1.7.1): referanse-integritet for alle ${CLAUDE_PLUGIN_ROOT}-stier i +// commands/ og agents/. Fanger doed-referanse-klassen permanent (review 4: +// freshen-references pekte paa gitignored .claude/-sti som aldri shippes). +// To invarianter per referert sti: +// 1. Stien maa finnes paa disk (relativt til plugin-rot). +// 2. Stien maa vaere shippbar: aldri under .claude/ (gitignored, finnes +// lokalt men ikke i installert plugin — ren existsSync er falsk groenn). +// Glob-stier (* i siste segment) sjekkes som: katalog finnes + minst ett treff. +// Zero npm deps. Moenster: tests/package-shape.test.mjs (les fil, assert). + +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { readFileSync, readdirSync, existsSync } from 'node:fs'; +import { join, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const ROOT = join(dirname(fileURLToPath(import.meta.url)), '..'); +const SCAN_DIRS = ['commands', 'agents']; + +// Stopper paa whitespace, backtick, anfoerselstegn, ), ] — tegnene som +// avslutter en sti i markdown-prosa/lenker. Ingen legitime stier her +// inneholder dem. +const PATH_RE = /\$\{CLAUDE_PLUGIN_ROOT\}\/([^\s`"')\]]+)/g; + +function collectReferences() { + const refs = []; + for (const dir of SCAN_DIRS) { + for (const name of readdirSync(join(ROOT, dir))) { + if (!name.endsWith('.md')) continue; + const file = join(dir, name); + const body = readFileSync(join(ROOT, file), 'utf8'); + for (const m of body.matchAll(PATH_RE)) { + refs.push({ file, rel: m[1] }); + } + } + } + return refs; +} + +function assertResolvable(rel) { + const starName = rel.lastIndexOf('*'); + if (starName === -1) { + assert.ok(existsSync(join(ROOT, rel)), `finnes ikke: ${rel}`); + return; + } + // Glob: kun *-i-siste-segment brukes i repoet (f.eks. references/*.md). + const dir = dirname(rel); + assert.ok(!dir.includes('*'), `glob i katalogsegment stoettes ikke: ${rel}`); + assert.ok(existsSync(join(ROOT, dir)), `glob-katalog finnes ikke: ${dir}`); + const suffix = rel.slice(starName + 1); + const hits = readdirSync(join(ROOT, dir)).filter((n) => n.endsWith(suffix)); + assert.ok(hits.length > 0, `glob uten treff: ${rel}`); +} + +test('commands/agents refererer minst en plugin-rot-sti (regex-sanity)', () => { + const refs = collectReferences(); + assert.ok(refs.length >= 10, `fant bare ${refs.length} referanser — regex broken?`); +}); + +test('alle ${CLAUDE_PLUGIN_ROOT}-stier er shippbare (aldri under .claude/)', () => { + const offenders = collectReferences().filter(({ rel }) => + rel === '.claude' || rel.startsWith('.claude/')); + assert.deepEqual( + offenders.map((o) => `${o.file} -> ${o.rel}`), + [], + 'gitignored .claude/-stier shippes aldri med pluginen' + ); +}); + +test('alle ${CLAUDE_PLUGIN_ROOT}-stier finnes paa disk', () => { + const missing = []; + for (const { file, rel } of collectReferences()) { + try { + assertResolvable(rel); + } catch (e) { + missing.push(`${file} -> ${rel} (${e.message})`); + } + } + assert.deepEqual(missing, [], 'doede referanser funnet'); +});