-
v1.9.0 Stable
released this
2026-08-09 10:20:24 +00:00 | 12 commits to main since this releaseMinor-release: «Styringssløyfa lukkes» — kjeden fra tildelingsbrev til årsrapport dekkes nå i én sammenhengende form, i stedet for å stoppe der OKR-ene var skrevet. Åtte arbeidsstrømmer over fem execute-sesjoner (fase D, D4–D8). Ingen nye npm-avhengigheter; de fire eksisterende er fortsatt exact-pinnet. Suite 197 → 315 cases.
Added
- Tre deterministiske rapportgeneratorer —
/okr:rapport tertial | arsrapport | etatsstyringbygger tertialrapport, årsrapport del III-utkast og etatsstyringsmøte-underlag direkte fra syklusdata. Én kommandoflate med argument (mønster:/okr:oppsett), ikke tre kommandoer. Arkitekturen erscripts/syklus-rapport.mjs→lib/syklus-data.mjs(lesing + score) +lib/syklus-rapport.mjs(rendring), uten LLM i stien. Determinismen er målt, ikke påstått: to påfølgende kjøringer mot samme fixture gir byte-identisk output, verifisert på både modul- og CLI-nivå. - KR-datakontrakt i
/okr:skriv-malen —krN_navn,krN_baseline,krN_target,krN_naa,krN_type(committed|aspirational) som frontmatter ved siden av punktprosaen. Maskinlaget legges til; menneskelaget beholdes. Score lagres aldri — den beregnes som(naa - baseline) / (target - baseline)klampet til [0, 1]. En lagret score ville vært en andre sannhetskilde som kan drifte fra tallene den utledes av; en egen vakt feller enhverkrN_score-nøkkel som måtte dukke opp i malen. /okr:arkivklar— vurderingsgrunnlag mot bevaringsforskrifta (FOR-2025-12-19-2729 §§ 7 og 30, med § 3 som safety-net): hva i OKR-treet som trolig faller under bevaringspåbudet, og hva som bør vurderes overført til virksomhetens sak-arkiv. Kommandoen sletter ingenting og tar ikke stilling på virksomhetens vegne — vurderingen ligger til dokumentasjonsplanen (arkivlova § 8 / arkivforskrifta § 12 b), ikke til et verktøy. En egen vakt skanner den genererte rapporten for avgjørelsesord, slik at prosaen ikke kan gli fra vurderingsgrunnlag til dom. Ukjent OKF-type ⇒ § 3 ⇒ BEVAR.- Ny referansefil
gevinstrealisering-okr.md— DFØs nyttestyring mappet mot OKR (gevinst → outcome-KR, gevinstansvarlig → KR-eier), med linjeeierskapet som hovedpoeng og Prosjektveiviseren-koblingen. - Ny referansefil
okr-kommunal-styring.md— den kommunale styringslinjen på egne premisser: kommunalt selvstyre uten tildelingsbrev (kommuneloven §§ 2-1/2-2), økonomiplan og kommuneplanens handlingsdel (§§ 14-1 til 14-4, jf. plan- og bygningsloven § 11-1), kommunedirektørens utrednings- og iverksettingsansvar (§ 13-1), og koblingen mellom en fireårig økonomiplan og en firemåneders OKR-syklus. Fylkeskommunen dekkes eksplisitt. KOSTRA er lagt inn som indikatorkilde i samme fil — det eneste målte hullet da fila kom (0 treff før, 15 nå). - Styringssløyfas ut-side i
okr-offentlig-governance.md— der guiden tidligere hadde én 4-raders tabell om årsrapport, dekker den nå styringsdialogen som helhet: etatsstyringsmøtet som sentralt møtepunkt, årsrapportens seks faste deler med del III («Årets aktiviteter og resultater») som ankeret for måloppnåelse og del IV som stedet OKR-prosessen selv dokumenteres, samt tre regler for å rapportere aspirational OKR oppover uten at 0.7 leses som svikt. - Strategi→OKR og Beyond Budgeting i
okr-framework.md— to nye kildebelagte seksjoner (Bogsnes). Begge var uten kildegrunnlag i repoet før denne fasen. - Leading/lagging-balanse som rubrikk-dimensjon med fem ankere, og guardrail som KR-designmønster i både
/okr:skrivog/okr:kvalitet. Dimensjonstallet utledes, aldri hardkodet.
Changed
- Committed og aspirational separeres i alle tre rapportformene. En aspirational OKR med lav score presenteres ikke som avvik — det er formålet med kategorien. En sandbagging-vakt låser dette som test, med begrunnelsen skrevet inn i rapporten selv: strukturell innramming, ikke et disiplinproblem hos den som satte målet.
- Generatoren eier aritmetikk og formatering — aldri confidence, og aldri vurderingsfeltene den reserverer for organisasjonen.
okr-framework.mdgjør confidence til en sannsynlighetsvurdering, ikke en funksjon av score; en generator som utledet den mekanisk ville gjort et skjønnsfelt til en kodesti. okf_versionemitteres nå i rot-indeksens frontmatter,okf_layoutblir i brødteksten (OKF-spec §12, beslutning 6). De to markørene bærer ulike konsepter og får derfor ulike flater:okf_versioner den maskinlesbare kontrakten konsumenter utenfor pluginen leser. Lesetoleransen er permanent, ikke en overgangsordning —okf-checkleser begge plasseringer, fordi bundles på disk ikke migrerer samtidig og ingen mekanisme tvinger dem. PRESENCE håndheves fortsatt ikke; nøkkelen er MAY i specen.- Path-confinement er trukket ut til én delt modul (
lib/path-confinement.mjs), brukt av både ingestion (skrivesiden) og arkivklar-traverseringen (lesesiden). To lag som fanger ulike angrepsformer: leksikalsk..-escape/absolutt-override, og symlenke-escape viarealpathSync. To kopier av en sikkerhetsregel må endres i takt for alltid, og gjør det ikke. - Referansebiblioteket 17 → 19 filer. Flatene bærer med vilje ulike tall: totalflatene sier 19, domeneflatene 18 (kvalitetsrubrikken ekskluderes, siden å score scoringsinstrumentet er sirkulært), og
SKILL.md-registeret er uummerert. - F-j lukket. Dette lukker det siste av de ti F-funnene fra
review-2026-07-16.md§3. F-j (styringssløyfas ut-side, kommunal styringslinje, gevinstrealisering) ble eksplisitt utsatt fra 1.8.0 til denne fasen via Non-Goal i C-fasens brief, mens SC-85 samtidig påsto at alle ti var lukket. Diskrepansen var reell og er nå løst ved å faktisk lukke funnet — SC-85 leses fra og med her som dekkende for F-a…F-j. - Kildeattribusjonene skjerpet etter primærkildesjekk. Riksrevisjon-knaggene i
okr-offentlig-governance.mder daterte og gjelder avsluttede saker — de siteres aldri i presens. DFØs nyttestyringsveileder erstatter 2014-gevinstrealiseringen.
Fixed
- Siterings-aksen nådde produsenten i 1.8.2, men ikke checkeren.
okf-checksrootMarkers/pickreturnerte rå streng, så samme fil ga to lesninger: produsenten tolketokf_version: "0.2"som0.2, mens checkeren ekkoet"0.2". Catalog målte divergensen direkte mot sin egen checker på en bundle som følger upstreams eget kanoniske eksempel (SPEC.md:773) — begge implementasjonene aksepterte, avviket lå på verdien.unquote()er nå eksportert fraokf-index.mjsog importert avokf-check.mjs, så begge sider deler én regel i stedet for hver sin kopi. Ingen gate rødnet av dette, fordi paritetskorpuset ikke har en sitert fikstur — hvilket også betyr at paritetsgatens grønne farge ikke dekket aksen; den var «ikke kjørt», ikke «som forventet». - Avviksvurderingen gikk utenom score. Den sammenlignet
naamottargetdirekte, som gir feil svar for synkende mål (der lavere er bedre). Den går nå gjennom den kanoniske scoren. export-pdf.pyrendret OKF-frontmatter som brødtekst.python-markdownutenmeta-extensionen parser ikke YAML-frontmatter, såtype/resource/timestamphavnet øverst i eksporten som<hr/><p>type: …</p><hr/>. Hver fil i treet bærer frontmatter, så maskinlaget lakk inn i dokumenter som skal til virksomhetens sak-arkiv.- Stale referansetelling i README. «scores 16 of the 17 domain reference files» hang igjen fra før F-j, som bumpet én telleflate men ikke denne. Alle fem flatene er nå konsistente.
Kjent avvik
/okr:arkivklarer rent lesende ved skript, ikke ved tool-liste alene. Fasens brief krevde en tool-liste utenWrite,EditellerBash; levert erRead, Bash, Glob, fordi kommandoen kjørerscripts/arkivklar.mjs. Lesegrensen håndheves derfor ilib/path-confinement.mjs(to lag, mutasjons-verifisert) og av at kommandoen ikke har noe skriveverktøy — ikke av tool-lista alene. Avviket ble innført i planen uten at briefen ble oppdatert, og er registrert i/trekreviewsom MAJORPLAN_EXECUTE_DRIFT. Det står her fordi det er en svakere garanti enn den som ble spesifisert, ikke fordi det er en kjent feil i dag.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Tre deterministiske rapportgeneratorer —