Commit graph

27 commits

Author SHA1 Message Date
055f54c65c
chore(okr): versjon 1.10.1 på alle flater
Patch-bump fra 1.10.0 på plugin.json, package.json, package-lock.json
(to steder), README-badge og versjonstabell, CHANGELOG, CLAUDE.md-
overskriften og begge SKILL.md. Fasiten i tests/package-shape.test.mjs
er oppdatert først og var rød før bumpen. Ingen tag: katalog-ref og
release gjøres i egen push-runde.

Suite 350/350. claude plugin validate: bestått, med to advarsler som
fantes fra før.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 12:30:50 +02:00
ec1abf999c
docs(okr): generiske, fiktive eksempler i kunnskapsbasen
Sektorspesifikt eksempelmateriale er erstattet med generiske, fiktive
eksempler. Det fiktive direktoratet DDT får eksempler fra digitale
tjenester, som samsvarer med navnet. Fjordvik kommune (fiktiv) får
eksempler fra vann, avløp og avfall. Strukturen, tallene og poenget i
hvert eksempel er bevart, blant annet committed-doktrinens stokastiske
samfunnsutfall, progress-regnestykkene i Oboard-eksempelet og
kaskadekjeden.

Valg:
- Én kildebelagt case er fjernet fra okr-sources.md og én virksomhetsliste er
  gjort generell («m.fl.»). Påstandene som står igjen, er fortsatt sanne.
- Standardverdien i malens domene-felt er «digitalisering». «annet»
  dekker det som er tatt ut av alternativlistene.
- De historiske evalueringsdokumentene er endret bare der de siterte det
  gamle eksempelinnholdet.

Suite 350/350 grønn, vakten har 0 treff.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 12:28:54 +02:00
3a0cbcfbf9 feat(okr): deterministisk skriveledd for status.md (1.10.0)
Kjeden /okr:rapport -> /okr:sporing -> status.md var beskrevet i prosa, men
manglet et mekanisk ledd: ingenting foerte en generert rad inn i status.md --
fila coaching-hook teller at-risk-KR i, /okr:moeter bygger agenda fra, og
/okr:oppsett arkiver leser sluttscorer fra. Rot-aarsaken var at HELE
sporings-stien var lesende (ingen Write/Edit/Bash i allowed-tools).

scripts/syklus-status.mjs tar confidence som JSON paa stdin og bygger radene
gjennom statusrapport() i lib/syklus-rapport.mjs -- samme kode som
tertialrapporten. Aritmetikken kan derfor ikke drifte fra /okr:rapport, fordi
det ikke finnes en andre implementasjon av den. En LLM skriver ikke av et tall
paa veien, og en maskin utleder ikke et trafikklys: beslutning 9 staar, presist
formulert som at generatoren PLASSERER en etikett den faar inn som data og
UTLEDER aldri en.

Haandhevet i kode, ikke i prosa: lukket vokabular (On Track/At Risk/Off Track),
full dekning (en tom confidence-celle ville lest som groenn hos hver konsument),
typo-fangst paa ukjente KR-navn, og kuratert-fil-vern -- en status.md uten
provenans-noekkelen `kilde: sporing` er haandholdt og overskrives aldri (samme
mekanikk som innboks-write bruker med `kilde: innboks`).

Suite 329 -> 343. Fem vakter mutasjons-verifisert: rad-drift mot
tertialrapporten, vokab, dekning (baade alene og sammen med vokab-vakten som
overlapper den), og kuratert-vernet.
2026-08-10 20:56:26 +02:00
b994ac32de chore(okr): bump 1.9.0 paa alle versjonsflater + CHANGELOG for fase D
Ni flater: package.json, package-lock.json (2), .claude-plugin/plugin.json,
CLAUDE.md-tittel, README-badge + versjonstabell, begge SKILL.md og
tests/package-shape.test.mjs. Versjonsvakten ble kjoert roed mot en delvis
bumpet baum foer resten fulgte, saa den er bevist aa felle drift.

CHANGELOG: [Uutgitt] konvertert til [1.9.0] og utvidet med D4-D8. Egen
"Kjent avvik"-seksjon baerer trekreview-funnet om at arkivklars lesegrense
haandheves i path-confinement-modulen, ikke i tool-lista alene - briefen
krevde et Bash-fritt sett, planen skrev det om, og briefen ble aldri oppdatert.

check-versions staar med 1 WARN (katalog-ref v1.8.2 != 1.9.0, ingen tag ennaa).
Det er den forventede tilstanden mellom bump og release; release-plugin.mjs
lukker den.
2026-08-09 10:17:59 +02:00
3004b7e778 feat(okr): gevinstrealisering som egen referansefil
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 22:03:18 +02:00
2149547c0c feat(okr): F-j -- kommunal styringslinje, styringssloeyfas ut-side, gevinstrealisering
Lukker det siste av de ti F-funnene fra review-2026-07-16.md §3. F-j ble
utsatt fra 1.8.0 via Non-Goal i C-fasens brief, mens SC-85 samtidig pastod
at alle ti var lukket. review.md abc1b4f6 fant at utsettelsen kun var
registrert i gitignorede STATE.md, saa diskrepansen stod uimotsagt i repoet.
Loest ved aa faktisk lukke funnet, og registrert i CHANGELOG.

Maalt foer arbeidet (ground truth, ikke gjenbrukt fra review):
  etatsstyringsmoete   0 treff
  kommunelov           1 treff (metrics-library.md:245)
  gevinstrealiser      1 treff (metrics-library.md:296)
  ut-siden            14 linjer, en 4-raders ASCII-tabell

NY FIL skills/okr-offentlig-sektor/references/okr-kommunal-styring.md
Kommunal styring er en PARALLELL linje, ikke en variant av statlig -- egen
fil speiler det. Selvstyre uten tildelingsbrev (koml §§2-1/2-2), oekonomiplan
og kommuneplanens handlingsdel (§§14-1..14-4, jf. pbl §11-1 fjerde ledd),
kommunedirektoerens utrednings- og iverksettingsansvar (§13-1), og koblingen
4-aarig plan <-> 4-maaneders OKR. Fylkeskommunen dekket eksplisitt.

UTVIDET okr-offentlig-governance.md
Ut-siden: styringsdialogen, etatsstyringsmoetet som sentralt moetepunkt,
aarsrapportens seks faste deler med del III som anker for maaloppnaaelse og
del IV som stedet OKR-prosessen selv dokumenteres, + tre regler for aa
rapportere aspirational oppover uten at 0.7 leses som svikt.
Gevinstrealisering: eget kapittel, DFOe-metodikk mappet mot OKR, med
gevinstansvarlig som LINJErolle (= KR-eier som faktisk raar over utfallet).
Guiden merket eksplisitt som statlig, med peker til den kommunale fila.

VERIFISERING (verifiseringsplikten -- ingen maskin validerer fagprosa)
Hver domenepaastand sjekket mot offisiell kilde foer den ble skrevet:
kommuneloven kap. 14 (Lovdata), pbl §11-1 (Lovdata), aarsrapportens seks
deler (DFOes veiledningsnotat), 15. mars-fristen (Bestemmelser om
oekonomistyring i staten), etatsstyringsmoetet (DFOe hovedinstruks del D),
gevinstrealisering (DFOes veileder + Digdirs Prosjektveiviseren). Alle
lenket i fillenes kildeseksjoner.

En paastand ble FJERNET som uverifiserbar: «typisk 2-4 etatsstyringsmoeter
i aaret». DFOes hovedinstruks sier bare at antallet KAN fastsettes i
departementets hovedinstruks -- erstattet med det.

Tellinger bumpet paa alle flater som baerer dem: 17 -> 18 referansefiler
(CLAUDE.md, README.md) og 16 -> 17 scorede filer (freshen-references.md,
inkl. den nummererte lista). Verifisert mot disk: ls | wc -l = 18.

Suite 192/192 groenn. canon-consistency + reference-integrity gjoer at den
nye fila ikke redefinerer kanon (kadens/confidence/scoreband) og at alle
krysslenker resolverer paa disk.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016BDwL2pweAjLaHYZFjgYUa
2026-07-31 17:38:41 +02:00
9a78c9f9d7 chore(okr): bump versjonsflater til 1.8.2 (korrupsjonsfiks-patch)
Slipper `85143be` (siterte markoerverdier korrumperte begge rot-markoerene)
som egen patch. Fiksen retter en datakorrumpering i released 1.8.1 og har
ligget ETTER tag v1.8.1 -- brukere paa katalog-ref har ikke faatt den.

Bumpede flater: package.json, package-lock.json (2), .claude-plugin/plugin.json,
README badge + versjonstabell, begge SKILL.md, CLAUDE.md-tittel,
tests/package-shape.test.mjs (2). CHANGELOG-seksjon lagt til.

Suite 192/192 groenn -- ingen kodeendring i denne commiten, kun versjonsflater.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016BDwL2pweAjLaHYZFjgYUa
2026-07-31 17:28:21 +02:00
0059da7bef feat(okr): 1.8.1 okf_version/okf_layout-splitt (OKF-spec 12)
Rot-index.md bar en markoer som dekket to urelaterte konsepter: den upstream
OKF-versjonen bundelen sikter mot OG pluginens egen layout-revisjon. Specen
(catalog/docs/okf-second-brain/spec.md 12, log.md 2026-07-23) skiller dem i to
markoerer. Denne releasen migrerer emitteren og sjekkeren over.

- okf-index.mjs: emitterer okf_version: 0.1 (upstream, paakrevd per 3) +
  okf_layout: kb-layout-2026-06 (vaar revisjon, valgfri per 12). Ny konstant
  OKF_LAYOUT; OKF_VERSION baerer naa upstream-verdien. Begge rot-eksklusive.
- Migrasjonssti: en ikke-upstream verdi i okf_version FLYTTES verbatim til
  okf_layout ved neste kjoering. Spec-konform okf_version roeres aldri;
  eksisterende okf_layout bevares. Byte-idempotent.
- okf-check.mjs: ekkoer begge markoerene (fravaerende -> MANGLER). Rent ekko,
  ingen ny haandheving -- spec 3 er ikke haandhevende paa form ennaa.
- CLI: --okf-layout er kanon. --okf-version beholdt som deprecated alias
  (verdien var alltid en layout-revisjon) m/ varsel til stderr, ALDRI stdout.
  Samme aliasing for generateIndexes({ okfLayout }) mot { okfVersion }.
- Doc-flater (CLAUDE.md, second-brain SKILL.md, commands/oppsett.md) beskriver
  naa to markoerer der de beskrev en.

Suite 167 -> 179, alle groenne. Versjonssync 1.8.1 over alle shippede flater.

Laaser opp catalog + llm-ingestion-okf, som begge ventet paa denne migrasjonen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016pUfkQ1YyH75z9y6RBaBHG
2026-07-25 15:33:30 +02:00
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
37142236f2 feat(okr): 1.8.0 En kanon versjonssync + CHANGELOG
Step 14 (Wave 6), siste steg i fase C3. Alle versjonsflater 1.7.1 -> 1.8.0:
plugin.json:3, package.json:3, package-lock.json:3+9, CLAUDE.md:1, README.md
badge, SKILL.md x2. Ny Keep-a-Changelog-seksjon [1.8.0] + README-historikkrad
som oppsummerer F-a..F-i, score-grenser, konsistensvakten og C6-markeds-
oppdateringen fra Steps 1-13.

TDD: package.json bumpet foerst -> package-shape.test.mjs case 1 gikk ROED
(expected 1.7.1, actual 1.8.0) -> assertion + header-kommentar oppdatert til
1.8.0 (minor-lane C: En kanon) -> GROENN. Historiske "B1/B2 (1.7.1)"-
provenanskommentarer i tester og historikkrader for 1.7.1 er urort.

To presisjonsfikser tatt inn fra S31-funn (begge i filer Step 14 allerede rorer):
- CLAUDE.md:21 sa "score the 16 domain reference files". Fasit: 16 AV 17 scores;
  okr-quality-rubrics.md er ekskludert (sirkulaer - den er selv scorings-
  instrumentet). Skrevet i samme presise form som README:150.
- CLAUDE.md:73 pekte paa lib/innboks-convert.mjs. Modulen har ALDRI eksistert
  (git log --all paa stien: tom; adapterne har ligget i lib/convert/ siden
  a807ee2). Rettet til lib/convert/index.mjs. Samme feilsti stod i CHANGELOG
  1.7.0-noten (linje 34) og er rettet der ogsaa: en dokumentert modul som aldri
  fantes er en usann paastand, ikke historisk provenans.

CHANGELOG-datoen er satt til 2026-07-25 (i dag). Faller C7-releasen paa en
senere dato, maa datoen justeres da.

Verify: node --test --test-reporter=tap tests/*.test.mjs -> 163 pass / 0 fail.
grep -rc "1.7.1" plugin.json package.json CLAUDE.md -> 0/0/0.
9 filer endret = Manifest expected_paths 1:1.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016pUfkQ1YyH75z9y6RBaBHG
2026-07-25 06:44:35 +02:00
08d135d5d3 fix(okr): F-c/F-d konsument-dedup i referansefiler + SKILL
Kadens-drift rettet mot den kanoniske kadens-tabellen i okr-framework.md
(ukentlig team-check-in / maanedlig statusgjennomgang til ledergruppen):
- meeting-guides.md: moete 2 var "Maanedlig OKR Check-in" med publikum Team
  -> "Ukentlig OKR Check-in (team)", 15 min, agenda-timing komprimert
- okr-cheatsheet.md: syklus-diagram + Quick Tips baerer naa begge rytmer
- dfo-okr-mapping.md: kadens-raden viste kun maanedlig check-in
- SKILL.md: "monthly check-ins" -> begge rytmer + peker til kanon

F-c: meeting-guides definerte egne confidence-terskler som andel av
forventet (over 70 / 50-69 / under 50 prosent) -> refererer naa den
kanoniske confidence-tabellen i okr-framework.md (sannsynlighet for
aa naa target), ingen egne terskler.

okr-arshjul.md verifisert konsistent uten endring (ukentlig-leir:
linje 57-58, 171, 174). SKILL.md versjonslinje uroert (Step 14).

Vakt-case (b) FLIPPET GROENN. Suite 163/162/1 - gjenstaaende roed
er (i), som lukkes i Wave 5 / Step 13.
2026-07-25 06:10:27 +02:00
482effbad1 fix(okr): B2 ingestion-kode-hygiene + bump 1.7.1 (patch-lane)
8 hygiene-fikser fra review 2026-07-16 par.4 kode-lista, TDD roed-groenn
(suite 138 -> 149):
- innboks-split: slugify translittererer ae/oe (datatap-fiks)
- innboks-frontmatter: beskrivende feil ved manglende sourceMtime
- okf-index: --okf-version bumper eksisterende rot, flagg-tolerant CLI
  (exit 2 ved manglende verdi), sanitizeEntry strip C1/zero-width/bidi/
  Unicode-tag
- write-org-profile: circuit-breaker MERGER i stedet for aa overskrive
  full config (M4); test beviser at eksisterende config overlever
- compose-org-profile: intern ----linje trunkerer ikke blokken
- coaching-hook: at-risk teller status-markerte tabellrader (M1/m1)
- inject-okr-context: topic-guard treffer boeyningsformer (maalene)
- frontmatter: BOM/CRLF-toleranse (falsk mangler-type-fiks)

Versjonsflater bumpet til 1.7.1 (package/plugin/lock/CLAUDE/README/
SKILL x2/package-shape-test) + CHANGELOG 1.7.1-seksjon (B1+B2).
Release-tag + katalog-ref venter paa [G-B] operatoer-go.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 04:02:10 +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
8328d5d31e feat(okr): innboks-ingestion 1.7.0, docs + release (SC alle)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 03:21:55 +02:00
30545b982e 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
2026-06-26 21:31:42 +02:00
7fdbf9bcbd chore(okr): bump 1.6.0 (OKF second brain) + CLAUDE.md/README/CHANGELOG docs
Bump 1.5.0 -> 1.6.0 across plugin.json, CLAUDE.md title, okr-offentlig-sektor SKILL.md, README badge. README version-history row + Under-the-Hood Skills table; CHANGELOG 1.6.0 entry. CLAUDE.md gains OKF Knowledge Layout section (two-root model, okf-index/okf-check/compose-org-profile, lib/frontmatter), second skill in Skills table, and two architecture lines.

Ref-count: kept '16 domain reference files' (correct -- freshen-references scores 16, excludes okr-quality-rubrics.md as the scoring instrument; 17 is the directory total). Tightened CLAUDE.md:20 wording to '16 domain' for clarity; did NOT apply the plan's 16->17 (would contradict the command). References dir untouched (SC9). Verify: node --test 55/55; all version surfaces 1.6.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFW5scLL7oEwWWTv1fPQG6
2026-06-26 20:02:42 +02:00
3ed59d05fb chore(okr): bump 1.5.0 (Fase 3) 2026-06-26 10:06:13 +02:00
88eaca81e0 feat(okr): /okr:help kommando-/agentoversikt + syklusarbeidsflyt (SC2) 2026-06-26 09:53:46 +02:00
e4f6c4d498 chore(okr): bump 1.4.0 (Fase 1+2) 2026-06-24 11:47:16 +02:00
ef3d51cde7 fix(okr): fjern loopende Stop-hook + bump 1.3.2
Stop-hooken var type `prompt`: en prompt-Stop-hook sendes til modellen
hver gang økten stopper, og enhver ikke-tom output tolkes som feedback →
agenten re-invokeres → stopper igjen → loop. «Skip entirely if no OKR
work»-grenen kunne aldri bli helt taus (modellen forklarer at den
skipper = ikke-tom output), så den looper hver økt uten OKR-arbeid.
Observert i praksis: 6+ runder før harness flagget «Stop hook error».

Funksjonen var dessuten svak: en blind prosa-nudge som ikke kan
verifisere om arbeid er lagret, og som peker på integrasjoner som knapt
er wiret (Oboard: ingen; Linear: valgfri MCP). Kontinuitet er allerede
dekket av PreCompact-hooken (bevarer arbeid-i-progresjon) + STATE.md.
Fjernet framfor å konvertere til command-hook (over-engineering uten
reell sync-sjekk). Revurderes hvis ekte ekstern-tracker-integrasjon
lander (Fase 3).

Versjonssync → 1.3.2: plugin.json, README-badge, SKILL.md, og rettet
stale CLAUDE.md-header (v1.3.0 → v1.3.2; Fase 0 bommet på denne).
Fjernet Stop-raden fra CLAUDE.md Hooks-tabell.
2026-06-24 10:26:29 +02:00
46ac021355 fix(okr): harmoniser DFO→DFØ (korrekt forkortelse) — løser /trekreview WARN
Fase 1-prosaen innførte den korrekte moderne forkortelsen DFØ i
dfo-okr-mapping.md, mens resten av fila (+ README, SKILL) brukte den
upresise legacy-formen DFO. Samme etat staves dermed to måter — en
konsistens-sprekk en DFØ/Riksrevisjon-leser (pluginets målgruppe) fanger.

Harmonisert hele pluginen mot DFØ (offisiell form, Direktoratet for
forvaltning og økonomistyring):
- dfo-okr-mapping.md: 20 tokens (14 ordgrense + 6 genitiv «DFOs»→«DFØs»)
- README.md: 2 tokens
- SKILL.md: 1 token

dfo.no-URLene er urørt (faktisk domene, ikke forkortelsen). Filnavnet
dfo-okr-mapping.md beholdes (ASCII-slug; rename ville brutt referanser).
Ingen versjonsbump (Fase 1-disiplin — filene forblir 1.3.1).

Løser review.md MAJOR-funn a1f3c9e2 (PLAN_EXECUTE_DRIFT,
verdict WARN → resolved).
2026-06-24 10:11:11 +02:00
7cd5e115dc chore(okr): bump versjon til 1.3.1 (Fase 0 troverdighetssanering) 2026-06-23 21:22: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
37d47d410f chore: WIP marketplace doc adjustments across plugins
Pre-trekexecute snapshot of in-progress CLAUDE.md/SKILL.md edits and
extracted docs/ files. Captured as one commit so /trekexecute claude-design
can run against a clean working tree.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 12:04:02 +02:00
Kjell Tore Guttormsen
21e9fb546b chore(privacy): scrub real-org references from plugin internals (phase 2)
Same bulk replacement applied to plugin-internal KB, examples, fixtures,
tests, and docs. Real organization names, persona names, internal system
identifiers, and domain-specific terms replaced with fictional generic
public-sector entity (DDT) and generic terminology.

Scope:
- okr/ — examples, governance, framework, integrations, sources
- ms-ai-architect/ — KB references (engineering, governance, security,
  infrastructure, advisor), tests/fixtures, agents, docs
- linkedin-thought-leadership/ — voice samples, network-builder,
  examples (genericized identifying headlines to "[your organization]")
- llm-security/ — research notes, scan report

Manual genericization beyond bulk replace:
- okr SKILL.md "Primary user / Domain" — generic Norwegian public sector
- linkedin-voice SKILL.md headline placeholder
- network-builder.md headline placeholder
- high-engagement-posts.md voice sample employer line + hashtag

Phase 3 (factual-attribution review) remains: a few KB files attribute
publicly known transport-sector docs/datasets (e.g. håndbok V440, NVDB)
to the fictional DDT after bulk replace. Needs manual semantic review
to either remove or restore correct citation without re-introducing
affiliation references.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 04:28:15 +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