feat(okr): wire org-profil-skriving i oppsett + dokumenter hjem-sti (SC1)

This commit is contained in:
Kjell Tore Guttormsen 2026-06-26 00:08:52 +02:00
commit 60174e8f5c
3 changed files with 37 additions and 1 deletions

View file

@ -47,6 +47,7 @@ Expert OKR guidance for Norwegian public sector. Google/Doerr methodology adapte
## State Management
User configuration: `.claude/okr.local.md` in the project directory (not in plugin root).
Org profile (reinstall-surviving): `~/.claude/okr/org/profil.md` — the machine-global org identity (`organisasjon:`/`program:`), written atomically (temp + `renameSync`) by `scripts/write-org-profile.mjs` during `/okr:oppsett`. Resolution is most-specific-wins: a project-local `.claude/okr.local.md` overrides the home profile; the home profile is the backwards-compatible fallback when no project config exists (read side: `hooks/scripts/inject-okr-context.mjs`). On any home-write failure the helper circuit-breaks to the gitignored project-local `.claude/okr.local.md`. Only the org *profile* migrates to home — cycle/`historikk` data stays cwd-bound.
Template: `templates/okr.local.md.template`
Context tree: `.claude/okr/``strategisk-kontekst/`, `syklus/[id]/`, `historikk/`, `dokumenter/`
Onboarding state: `onboarding_status` field in okr.local.md (`partial` | `fullfort`)

View file

@ -223,7 +223,26 @@ Etter alle 6 faser:
1. Skriv komplett YAML til `.claude/okr.local.md` (oppdater alle seksjoner)
2. Sett `onboarding_status: fullfort` og `Sist oppdatert: [dato]`
3. Vis oppsummering:
3. **Skriv reinstall-overlevende org-profil til hjem-stien.** Profilen
(`organisasjon:`- og `program:`-seksjonene — org-identiteten som skal overleve
reinstall og være tilgjengelig på tvers av prosjekter) skrives til en temp-fil og
sendes gjennom skrivehelperen via Bash:
```bash
OUT=$(node ${CLAUDE_PLUGIN_ROOT}/scripts/write-org-profile.mjs < /tmp/okr-profil.tmp)
echo "$OUT"
```
Helperen skriver atomisk (temp + `renameSync`) til `~/.claude/okr/org/profil.md` og
rapporterer den **faktisk brukte stien** på stdout (`$OUT`); en eventuell
fallback-notice går til stderr. Rapporter til brukeren: «Org-profil skrevet til: $OUT».
Hvis `$OUT` peker på den prosjektlokale fallbacken (`.claude/okr.local.md` — skjer kun
ved skrivefeil mot hjem), vis i tillegg hele profil-YAML-en for manuell plassering
(jf. Feilhåndtering «Fil kan ikke skrives»), slik at brukeren kan legge
`~/.claude/okr/org/profil.md` på plass selv. Behold den prosjektlokale
`.claude/okr.local.md`-skrivingen (steg 1) for syklus- og strategisk-kontekst-data —
kun selve profilen migrerer til hjem.
4. Vis oppsummering:
```
Onboarding fullført for [organisasjon]!
@ -317,6 +336,18 @@ preferanser:
---
```
**Skriv også reinstall-overlevende org-profil til hjem-stien.** Skriv profil-YAML-en
(`organisasjon:` + `program:`) til en temp-fil og kjør skrivehelperen via Bash:
```bash
OUT=$(node ${CLAUDE_PLUGIN_ROOT}/scripts/write-org-profile.mjs < /tmp/okr-profil.tmp)
echo "$OUT"
```
Rapporter «Org-profil skrevet til: $OUT». Hvis `$OUT` er den prosjektlokale fallbacken,
vis YAML-en for manuell plassering (jf. Feilhåndtering). Syklus-/kontekstdata forblir
prosjektlokalt i `.claude/okr.local.md`.
Vis kort oppsummering og foreslå `/okr:oppsett full` for å fylle ut resten senere.
---

View file

@ -3,6 +3,10 @@
# Plasser denne filen som .claude/okr.local.md i ditt prosjekt
# Kjør /okr:oppsett for automatisk konfigurasjon
# Skjemaet under speiler /okr:oppsett mvp — feltnavn er i paritet med onboarding og hook
# Org-identitet (organisasjon:/program:) kan ogsaa bo i en reinstall-overlevende
# hjem-profil: ~/.claude/okr/org/profil.md (skrevet av /okr:oppsett). En prosjektlokal
# fil her vinner over hjem-profilen (mest-spesifikk-vinner); syklus-/kontekstdata er
# alltid prosjektlokalt.
onboarding_status: partial # partial | fullfort
organisasjon:
navn: "Din organisasjon"