jobbsok/skills/beslutning/SKILL.md

102 lines
4.1 KiB
Markdown

---
name: beslutning
description: "Registrerer ja eller nei paa en vurdert stilling i den append-only beslutningsloggen, med begrunnelse fra en lukket enum og scoren slik den stod foer mennesket bestemte seg. Paa ja overleveres saken til sak-skillen. Utloeses av registrer en beslutning, ja på denne stillingen, ja pa denne stillingen, nei på denne stillingen, nei pa denne stillingen og korriger en beslutning."
triggers:
- registrer en beslutning
- ja på denne stillingen
- ja pa denne stillingen
- nei på denne stillingen
- nei pa denne stillingen
- korriger en beslutning
---
# beslutning
Skriver én linje til `beslutninger.jsonl` per stilling operatøren har tatt
stilling til. Loggen er append-only og **kan ikke migreres** — det som skrives
feil i dag, står feil for alltid, og kan bare rettes av en ny linje.
All operatørrettet tekst er norsk bokmål.
## Rekkefølgen
1. Stillingen er allerede vurdert av `kandidatvurdering`. Ta vare på `score`,
`delscore`, `vekter` og `vekt_hash` fra den kjøringen — de skal inn i
posten.
2. Spør operatøren rett ut: **ja eller nei?** Ikke anbefal ut fra scoren. Et
tall er et innspill til beslutningen, ikke beslutningen.
3. Be om én til tre årsaker fra den lukkede enumen, og et notat på **høyst
femten ord**.
4. Skriv posten.
5. Er svaret `ja`, overlever til `sak`.
## Skriv posten
```
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/beslutninger.py \
--workspace <arbeidsmappa> --json '<posten som JSON>'
```
På Windows heter tolken `python`, ikke `python3`.
Feltene er build-brief 5.4: `id`, `dato`, `kilde`, `url`, `tittel`,
`arbeidsgiver`, `beslutning`, `arsak`, `notat`, `score_da`, `delscore`,
`vekter`, `vekt_hash`, `korrigerer`. Scriptet legger til `type` og `skjema`.
`score_da` er scoren **slik den stod før mennesket bestemte seg**. Den er hele
læringssignalet: en høy score paret med et nei er nøyaktig det avviket M6 leter
etter. Regn den aldri ut på nytt, og rund den ikke av.
`dato` bærer alltid UTC-forskyvning, som ellers i denne pluginen.
Blir posten avvist, navngir avvisningen feltet. Rett feltet og skriv på nytt —
en avvist post ligger ikke halvveis på disken, valideringen kjører før fila
åpnes.
## Årsakene er tolv, og ikke flere
Hele enumen med norsk forklaring står i
`${CLAUDE_PLUGIN_ROOT}/skills/beslutning/references/arsak.md`. Les den før du
foreslår en årsak. Passer ingen, er svaret `annet` pluss et presist notat —
ikke en trettende årsak. En årsak utenfor enumen er en kategori `laering` aldri
kan telle, verken for eller mot.
## På `ja`: overlever til sak
Et `ja` skaper en sak; et `nei` skaper ingenting utover loggposten.
Sak-id-en utledes av beslutningen, ikke av skjønn: måneden i `dato`,
arbeidsgiveren og tittelen, foldet til ASCII. `sak_id_for(posten)` i
`${CLAUDE_PLUGIN_ROOT}/scripts/beslutninger.py` gir den.
Beslutningen speiles så inn i saksloggen med `speil_i_sakslogg(...)` fra samme
modul. **Dette steget hoppes aldri over.** Uten den speilede posten står saken
fast i `vurderer` for alltid — det er den ene posten som tar den til `soker`.
Deretter overtar `sak`: mappa, saksfila fra malen, og oppdateringen av
hurtigbufferen.
## En retting er en ny linje
Rediger aldri en linje som er skrevet. En korrigering er en egen post som
navngir beslutningen den retter:
```
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/beslutninger.py \
--workspace <arbeidsmappa> --korriger --json '<korrigeringen som JSON>'
```
Den kan rette kilde, url, tittel, arbeidsgiver, beslutning, årsak og notat.
Den kan **ikke** rette `score_da`: det tallet er en måling av hva scoren var da
valget ble tatt, og en måling endres ikke av at man senere mener noe annet.
Begge linjene blir liggende. Det operatøren først mente er en del av
materialet, og en logg som slettet det ville vært et dårligere læringssignal
enn en som beholder begge.
## Uten verktøyserveren
Er `jobbsok-tools` ikke tilgjengelig, degraderer skillen i stedet for å stoppe:
be operatøren kjøre kommandoene over fra kommandolinja, og les posten som ble
skrevet ut. Ikke skriv linja for hånd inn i fila — da omgås valideringen, og en
ugyldig linje i en append-only logg kan ingen fjerne.