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
This commit is contained in:
Kjell Tore Guttormsen 2026-07-31 17:28:21 +02:00
commit 9a78c9f9d7
9 changed files with 22 additions and 11 deletions

View file

@ -1,6 +1,6 @@
{
"name": "okr",
"version": "1.8.1",
"version": "1.8.2",
"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"

View file

@ -5,6 +5,16 @@ 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.8.2] - 2026-07-31
Patch-release: **siterte markørverdier korrumperte begge rot-markørene**. Bugen lå i released 1.8.1-kode og traff enhver bundle som hadde skrevet `okf_version` slik OKF-specen selv viser den. Ingen nye kommandoer, agenter eller referansefiler.
### Fixed
- **Anførselstegn rundt en markørverdi er YAML-strengsyntaks, ikke del av verdien.** Upstreams eneste kanoniske eksempel med verdi (`okf/SPEC.md:773`) skriver `okf_version: "0.2"` — sitert. `parseExistingIndex` fanget anførselstegnene rått, `UPSTREAM_VERSION_RE` avviste `"0.2"` som ikke-upstream-form, og migrasjonsstien fra 1.8.1 behandlet den følgelig som en layout-verdi: den ekte upstream-versjonen ble flyttet til `okf_layout` mens `okf_version` ble nedgradert til vår egen konstant. Begge markørene ødelagt, og dataene ikke gjenopprettelige uten å kjenne originalen. Verdien unquotes nå ved parse — før den tolkes og før den emitteres — og emitteres normalisert (unquoted), slik at vår egen utskrift består en form-sjekk som kjøres på rå streng. Unquote er konservativ: kun et matchende par strippes, en halv sekvens bevares urørt.
### Added
- **Testsuite 187 → 192 cases**, alle grønne. Fem nye i `tests/okf-check.test.mjs`: sitert upstream-verdi migreres ikke, sitert layout-verdi migreres verbatim uten anførselstegn, emisjon er alltid unquoted, enkeltfnutter behandles som dobbeltfnutter, og en ubalansert sekvens (`"0.2`) bevares urørt. De fire første ble kjørt røde før fiksen; den femte er mutasjons-verifisert rød mot en grådig unquote.
## [1.8.1] - 2026-07-25
Patch-release: **`okf_version` / `okf_layout`-splitt**. Rot-`index.md` bar én markør som dekket to urelaterte konsepter — den upstream OKF-versjonen bundelen sikter mot *og* pluginens egen layout-revisjon. OKF-specen §12 (katalog-eid) skiller dem i to markører; denne releasen migrerer emitteren og sjekkeren over. Ingen nye kommandoer, agenter eller referansefiler.

View file

@ -1,4 +1,4 @@
# OKR Offentlig Sektor v1.8.1
# OKR Offentlig Sektor v1.8.2
Expert OKR guidance for Norwegian public sector. Google/Doerr methodology adapted for 4-month tertial cycles.

View file

@ -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.8.1-blue)
![Version](https://img.shields.io/badge/version-1.8.2-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-14-blue)
@ -301,6 +301,7 @@ The plugin core is zero-dependency (`node:` builtins only). The inbox-ingestion
| Version | Date | Highlights |
|---------|------|------------|
| **1.8.2** | 2026-07-31 | Patch: siterte markørverdier korrumperte begge rot-markørene — `okf_version: "0.2"` (formen OKF-specen selv viser) ble avvist som ikke-upstream, flyttet til `okf_layout`, og `okf_version` nedgradert til vår konstant. Anførselstegn strippes nå ved parse (før tolkning og før emisjon) og verdien emitteres unquoted; unquote er konservativ (kun matchende par). Suite 187 → 192 |
| **1.8.1** | 2026-07-25 | Patch: `okf_version`/`okf_layout`-splitt (OKF-spec §12) — rot-`index.md` bærer nå to distinkte markører i stedet for én som bar to urelaterte konsepter: `okf_version` = upstream OKF-versjonen (`0.1`, verdisett eid av Google), `okf_layout` = pluginens egen layout-revisjon (`kb-layout-2026-06`). Automatisk migrasjonssti for eksisterende bundles (layout-verdi i `okf_version` flyttes verbatim); `okf-check` ekkoer begge; `--okf-layout` erstatter `--okf-version` (beholdt som deprecated alias m/ stderr-varsel) |
| **1.8.0** | 2026-07-25 | «Én kanon» — metodekonsolidering etter dyp review: én kanonisk confidence-tabell og én kadens-doktrine i `okr-framework.md` med konsument-dedup på tvers av referanser, kommandoer og agenter; score→modenhet-avledningen fjernet; `committed` = forpliktelse OG påvirkbarhet; kvalitetsvurdering ankret i rubrikken (alle 10 dimensjoner, ingen parallelle scorebånd); ekte antipattern-kategorier; milepæl-/binær-unntak; «align, don't cascade» i kaskadeflatene; markedsclaims kildebelagt + nye kilder (NCT, EBM 2024); ny konsistensvakt `tests/canon-consistency.test.mjs` (suite 149 → 167 cases) |
| **1.7.1** | 2026-07-17 | Patch: restsanering etter dyp review — KB/doc-hygiene med referanse-integritetstest (B1) + ingestion-kode-hygiene (B2): æ/ø-translitterering i slugify, ikke-destruktiv circuit-breaker (merge, config overlever), sanitizeEntry mot bidi/zero-width/Unicode-tag, `--okf-version`-bump, BOM/CRLF-toleranse, presis at-risk-telling, bøyningsformer i topic-guard |

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "okr-offentlig-sektor",
"version": "1.8.1",
"version": "1.8.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "okr-offentlig-sektor",
"version": "1.8.1",
"version": "1.8.2",
"dependencies": {
"mammoth": "1.12.0",
"postal-mime": "2.7.5",

View file

@ -1,6 +1,6 @@
{
"name": "okr-offentlig-sektor",
"version": "1.8.1",
"version": "1.8.2",
"private": true,
"type": "module",
"description": "OKR-plugin for norsk offentlig sektor. Pure-JS konverterings-deps for innboks-ingestion (bevisst zero-dep-brudd, se README).",

View file

@ -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.8.1"
version: "1.8.2"
---
# OKR Skill for Offentlig Sektor (Norge)

View file

@ -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.8.1"
version: "1.8.2"
---
# OKR Second-Brain Search

View file

@ -2,7 +2,7 @@
// Step 10 (A1): package.json-kontrakten for det bevisste zero-dep-bruddet.
// Verifiserer at dep-laget er EXACT-pinnet (ingen ^/~/*), at engines-gulvet er
// satt (unpdf krever node >= 22), at pakken er ESM (type: module), at versjonen
// er 1.8.1 (patch-lane: okf_layout-migrasjon) paa ALLE shippede flater, og at .npmrc slaar av
// er 1.8.2 (patch-lane: unquote av siterte markoerverdier) paa ALLE shippede flater, og at .npmrc slaar av
// install-scripts (Shai-Hulud / supply-chain). Zero npm deps i selve testen.
// Moenster: tests/frontmatter.test.mjs (les fil, assert struktur).
@ -24,10 +24,10 @@ function readPkg() {
return JSON.parse(readFileSync(PKG, 'utf8'));
}
test('package.json: type module + version 1.8.1 (patch-lane)', () => {
test('package.json: type module + version 1.8.2 (patch-lane)', () => {
const pkg = readPkg();
assert.equal(pkg.type, 'module');
assert.equal(pkg.version, '1.8.1');
assert.equal(pkg.version, '1.8.2');
});
test('package.json: engines.node-gulv satt (unpdf krever >= 22)', () => {