feat(okr): rapport-kommando og CLI for syklusgeneratorene

This commit is contained in:
Kjell Tore Guttormsen 2026-08-01 22:44:06 +02:00
commit 7d1de8049d
6 changed files with 298 additions and 0 deletions

View file

@ -140,6 +140,16 @@ Renders any OKR deliverable — quality review, gap matrix, status report, or re
Drop documents — tildelingsbrev PDFs, virksomhetsplan docx, meeting notes — into `.claude/okr/innboks/` and ingest them into the knowledge tree in one sweep. The pipeline is deterministic (no LLM in the core): convert (txt/md/docx/eml/pdf) → split on headings → stamp OKF frontmatter with a `kilde: innboks` provenance marker → route by document type → validate each document against a strict security gate. A document that fails the gate is discarded alone with a per-document report; originals always stay untouched in the inbox, and re-running on unchanged input is a byte-identical no-op. Known v1 limitations (flat PDF extraction, table structure loss) are listed in the CHANGELOG.
### Cycle Reporting
```
> /okr:rapport
```
Generates a tertial report straight from the KR numbers in the cycle's `okr-*.md` frontmatter — deterministic, so the same data yields byte-identical output. Committed and aspirational Key Results are reported **separately**, never aggregated into one figure: the two are measured against different standards, and a combined average is ambiguous by construction. The generator owns the arithmetic, the table structure and the formatting invariants (score is stated on its 01.0 scale, never as percent goal attainment; a committed KR below target is flagged as a deviation, not a middling score).
It does **not** own confidence. The Confidence column is left empty by design and filled in during `/okr:sporing`, because confidence is a probability judgement — the canon designates one source of truth for the On Track / At Risk / Off Track scale and explicitly rejects deriving it mechanically from score. Scores themselves are never written to disk; they are recomputed from `baseline`/`target`/`naa` each run so a second, drifting source of truth cannot arise.
### Help and Maintenance
```