Commit graph

13 commits

Author SHA1 Message Date
44ceec7205 fix(okr): C7b remediering R1-R4 (release-relevante review-funn for 1.8.0)
Lukker de fire release-relevante MAJOR-funnene fra /trekreview (S33). Alle TDD
roed -> groenn, ingen fiks landet uten en test som feilet foerst. Suite 163 -> 167.

R1 (af16d5e4) hooks/scripts/coaching-hook.mjs:83 -- LEVENDE REGRESJON innfoert av
1.8.0. Denne releasen skrev status-malen (commands/sporing.md:86-88) om til den
kanoniske skalaen On Track/At Risk/Off Track, mens hooken fortsatt talte kun
/i fare|blokkert/i over tabellrader. En status generert under 1.8.0 ga derfor
atRiskCount = 0 og SessionStart-nudgen sluttet stille aa utloese seg. Hooken
teller naa de kanoniske etikettene; de to norske er BEHOLDT som bakover-
kompatibilitet for status-filer skrevet foer 1.8.0. Nudge-teksten bruker samme
kanoniske vokabular. Ny testcase mates av malen slik den faktisk genereres i dag;
den eksisterende casen beholder gammelt vokabular og daekker legacy-stien.

R2 (7ec575be) F-i-omskrivingen ga hver kommando en Kontekstbevissthet-blokk som
INSTRUERER Glob, men allowed-tools ble kun utvidet i kaskade.md. Glob lagt til i
export, gap, governance, innfoering, kvalitet, moeter, skriv, sporing. Ny vakt-
case (k): nevner BODY verktoeyet, maa frontmatter deklarere det (13 kommandoer
instruerer Glob; alle 13 dekket). Case (i) grepper kun etter fjernede fraser og
kunne ikke fange dette.

R3 (5e61ae0d) tests/package-shape.test.mjs asserterte KUN package.json -- som er
private:true og dermed den ene flaten som aldri shipper. En delvis bump ville
shippet groenn. Ny versjonssync-case dekker .claude-plugin/plugin.json, README-
badgen og begge SKILL.md, med forventet verdi UTLEDET fra package.json (ett sted
aa endre ved neste bump). Mutasjonsbevist: hver av de fire flatene tilbakestilt
til 1.7.1 en om gangen -> casen roed i alle fire tilfeller.

R4 (ccff16e1 + 231c53fc) Tre parallelle confidence-etikettsett overlevde F-c:
fremdriftssporer-agent.md:68 ("Paa sporet / I fare / Blokkert"), :98
("Confidence: [Hoey/Medium/Lav]" -- en annen akse: stoerrelse, ikke sannsynlighet)
og SKILL.md:48 ("blocked"; kanonisk er "off track"). Alle tre erstattet med
referanse til kanon (okr-framework.md:389-392). sporing.md og agenten den
delegerer til svarer naa i samme vokabular. Vakt-case (a)/(b) skanner naa samme
sett som (d) allerede brukte (+ agents/ + SKILL.md), samlet i canonScan(). Ny
case (a2) fanger etikettsett skrevet som bullet eller mal-linje -- tabell-
signaturen alene fanget dem ikke, og det var nettopp formen driften overlevde i.
Divergens gjenkjennes STRUKTURELT (skraastrek-enumerasjon av >= 2 etiketter, med
>= 1 ikke-kanonisk), saa loepende prosa som "For KR i fare" og "Blokkert av
eksterne faktorer" ikke gir falske positive. Verifisert: roed-listen var noeyaktig
de 3 kjente linjene, ingen andre.

CHANGELOG/README: vakt-antall 13 -> 15 cases, suite 149 -> 167, og de fire
fiksene lagt inn under [1.8.0] (Added + Fixed). Ingen versjonsbump.

GJENSTAAR fra reviewet (3 MAJOR, IKKE i denne bolgen): 607313e3 F-d-kadens-
moensteret kan ikke feile paa den kanoniske kadens-tabellen; 029ef814
freshen-references.md:24 baerer fortsatt en foreldet kontekstblokk og vaktens
exclude-kommentar kaller fila feilaktig "allerede-fikset" (den er utenfor
1.8.0-scope by design, jf. ba91fc2 -- kommentaren er usann, ikke ekskluderingen);
7579d59c "Outcome" er utestbar i 10-dims-casen pga. substring-containment.

Verify: node --test --test-reporter=tap tests/*.test.mjs -> 167 pass / 0 fail.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016pUfkQ1YyH75z9y6RBaBHG
2026-07-25 12:33:55 +02:00
1cb2eed5a2 fix(okr): C6 markedsoppdatering + kaskade F-i (verifisert-bruker, align-not-cascade, NCT)
C6 markedsclaim -> verifisert-bruker-disiplin (README):
Paastanden "increasingly by Norwegian public sector organizations like NAV and
FINN.no" hadde ingen kilde i kunnskapsbasen. Erstattet med fire adoptorer som
ALLE har en offentlig kilde i okr-sources.md par. 4 (Digdir, NAV-team, Oslo
Origo, FINN.no) + eksplisitt setning om at usourcede virksomheter ikke navngis.
Skatteetaten/Entur/Politiet er fortsatt IKKE verifisert og navngis derfor ikke.

okr-sources.md par. 4: NAV manglet helt som oppslag selv om README paastod
bruken. Lagt til med first-party-kilde (aksel.nav.no produktbloggen), scopet
til team-/produktnivaa - etatsnivaa-OKR er ikke dokumentert.

okr-sources.md par. 7 (ny): alternative rammeverk med verifisert attribusjon.
- NCT (Narrative, Commitments, Tasks) tilskrives Ravi Mehta / Reforge, med
  eksplisitt advarsel om den vanlige feilattribusjonen til Radical Focus 2. utg.
- Evidence-Based Management -> 2024-guiden. Kun det verifiserte "what's new"
  er gjengitt (KVA-til-maaletype-kobling, Input/Impact som egne maaletyper,
  klargjorte KVA-beskrivelser). Mission/Vision-innrammingen fra raarapporten
  er UTELATT - ikke bekreftet av Scrum.orgs egen What's-New.
Sist oppdatert-markoer bumpet Januar -> Juli 2026.

align, don't cascade (kaskade.md + kaskadebygger-agent.md):
Begge flater laerte mekanisk kaskadering ("et overordnet KR blir teamets
Objective"). Rammet om til alignment via lineage: org-KR er INPUT til teamets
Objective, teamet omformulerer og eier formuleringen, team-KR maaler teamets
eget bidrag, og manglende paavirkbarhet rapporteres som gap i stedet for et
konstruert bidrag. Individ-OKR eksplisitt utelukket paa begge flater.
NAV-praksisen er brukt som norsk anker for doktrinen.

F-i (kaskade.md): siste gjenstaaende foreldede kontekstblokk skrevet om til
post-1.6.0-moensteret (analyse.md:13-20). Glob lagt til i allowed-tools siden
blokken naa instruerer Glob.

Planavvik (premiss-verifisering): Step 13 sa README "16" -> "17 domenefiler".
Ground truth motsier premisset - freshen-references.md scorer 16 AV 17 filer
(okr-quality-rubrics.md er eksplisitt ekskludert som sirkulaer). "17" ville
gjort README feil. Skrevet presist i stedet: "16 of the 17 ... the quality
rubric itself is excluded". Planens Verify (grep -c "16 domain" -> 0) passerer.

Vakt-case (i) GROENN. Alle 13 konsistens-cases groenne; suite 163/163/0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016pUfkQ1YyH75z9y6RBaBHG
2026-07-25 06:32:18 +02:00
329089671a fix(okr): F-e scoreband-til-rubrikk + 10 dims + F-h binaer-unntak + kvalitet F-i 2026-07-24 20:19:48 +02:00
51f6e23175 fix(okr): F-b committed=forpliktelse OG paavirkbarhet + governance F-i 2026-07-24 20:14:04 +02:00
4bbba6e719 fix(okr): F-a fjern score-til-modenhet + F-g ekte antipattern-kategorier 2026-07-24 19:57:34 +02:00
e7eee0d8f8 fix(okr): score-grenser (kapp/div-null) + F-c confidence-dedup 2026-07-24 07:01:07 +02:00
6028ac2f90 fix(okr): B1 KB/doc-hygiene + referanse-integritetstest (1.7.1-lane)
- 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 <noreply@anthropic.com>
2026-07-17 03:43:22 +02:00
65d4f289d5 feat(okr): ankret kvalitetsrubrikk-referansefil + wiring (SC3) 2026-06-26 00:38:15 +02:00
e390a7a213 feat(okr): agent-modning — negative triggere + org-lesing + antipatterns (SC3) [skip-docs] 2026-06-24 11:34:30 +02:00
6f31a52b6a refactor(okr): rename plugin-egen Kvartalsreview til Syklusreview (6 sites) 2026-06-23 22:56:44 +02:00
821ee242a0 fix(okr): innfør én kanonisk scoringsterskel (0.7/0.6-0.7), bevar kanon-kilde 2026-06-23 21:14:42 +02:00
Kjell Tore Guttormsen
f8dcf05f17 feat(okr): sync to v1.3.0 from ktg-privat
Syncs all changes from v1.0.0 through v1.3.0:

v1.1 (quick fixes):
- Fix deprecated Viva Goals references
- Add DFO-OKR terminology mapping
- Add tillitsvalgt/fagforening perspective
- Update Objectives recommendation from 3-5 to 2-3

v1.1 (persistent context):
- Deep onboarding interview (full/mvp)
- Persistent .claude/okr/ directory tree
- Context-aware commands
- Cycle archival with retrospective

v1.3 (AI-first differentiators):
- /okr:gap — tildelingsbrev gap analysis with coverage matrix
- /okr:analyse — cross-cycle Mermaid analytics
- SessionStart coaching hook (proactive, phase-aware)
- gapanalytiker + trendanalytiker agents
- inject-okr-context.mjs extended for historikk/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 20:31:49 +02:00
Kjell Tore Guttormsen
906abb8201 feat: add okr plugin v1.0.0 — OKR guidance for Norwegian public sector
Expert OKR guidance based on Google/Doerr methodology, adapted for
4-month tertial cycles and Norwegian government accountability.

Components:
- 8 commands (skriv, kvalitet, kaskade, sporing, møter, innføring, governance, oppsett)
- 5 agents (kvalitetssjekker, kaskadebygger, fremdriftssporer, møtefasilitator, styringsrådgiver)
- 3 hooks (UserPromptSubmit context injection, PreCompact state preservation, Stop reminder)
- 15 reference files covering methodology, governance, meetings, antipatterns
- Linear MCP integration for OKR tracking

Previously in ktg-privat, now open-sourced.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 13:32:45 +02:00