feat(okr): onboarding skriver OKF-frontmatter paa org-profil (SC6)

compose-org-profile.mjs prepender top-level OKF-noekler (type:
Organisasjonsprofil/resource/timestamp) over den nestede org-profilen i
ETT frontmatter-blokk, pipes til write-org-profile.mjs (uendret). Kun de
tre trygge noeklene top-level; FORBID nye top-level navn/id/fase/domene/
sektor som ville skygge nestede verdier hooken leser. oppsett.md (begge
profil-skriv-sites) + template oppdatert. Test: compose->pip->readback +
inject-roundtrip (4), full suite 51->55.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFW5scLL7oEwWWTv1fPQG6
This commit is contained in:
Kjell Tore Guttormsen 2026-06-26 17:19:14 +02:00
commit 5219d50d4b
4 changed files with 233 additions and 9 deletions

View file

@ -225,15 +225,20 @@ Etter alle 6 faser:
2. Sett `onboarding_status: fullfort` og `Sist oppdatert: [dato]`
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:
reinstall og være tilgjengelig på tvers av prosjekter) skrives **uten `---`-fences**
til en temp-fil og sendes gjennom OKF-komponisten + skrivehelperen via Bash:
```bash
OUT=$(node ${CLAUDE_PLUGIN_ROOT}/scripts/write-org-profile.mjs < /tmp/okr-profil.tmp)
OUT=$(node ${CLAUDE_PLUGIN_ROOT}/scripts/compose-org-profile.mjs < /tmp/okr-profil.tmp \
| node ${CLAUDE_PLUGIN_ROOT}/scripts/write-org-profile.mjs)
echo "$OUT"
```
Helperen skriver atomisk (temp + `renameSync`) til `~/.claude/okr/org/profil.md` og
`compose-org-profile.mjs` prepender de tre top-level OKF-nøklene (`type:
Organisasjonsprofil`, `resource:`, `timestamp:`) over den nestede YAML-en og pakker
alt i **ett** frontmatter-blokk (second-brain-kompatibelt). Legg **aldri** til en ny
top-level `navn:`/`id:`/`fase:`/`domene:`/`sektor:` i profilen — de ville skygge de
nestede verdiene som hooken leser. 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
@ -337,16 +342,20 @@ 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:
(`organisasjon:` + `program:`, **uten `---`-fences**) til en temp-fil og kjør OKF-komponisten
+ skrivehelperen via Bash:
```bash
OUT=$(node ${CLAUDE_PLUGIN_ROOT}/scripts/write-org-profile.mjs < /tmp/okr-profil.tmp)
OUT=$(node ${CLAUDE_PLUGIN_ROOT}/scripts/compose-org-profile.mjs < /tmp/okr-profil.tmp \
| node ${CLAUDE_PLUGIN_ROOT}/scripts/write-org-profile.mjs)
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`.
`compose-org-profile.mjs` prepender top-level OKF-nøkler (`type: Organisasjonsprofil`,
`resource:`, `timestamp:`) over den nestede profilen i ett frontmatter-blokk. 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.