jobbsok/skills/beslutning/SKILL.md

4.1 KiB

name description triggers
beslutning 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.
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.