Skills ask before using a working copy found in the user's folder and state its check level first. The drift of the queue models before the shock is stated in the caveats and the README. README shows how to run the check and the tests. The drift line names the month a gradual drive begins. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
9.5 KiB
| name | description |
|---|---|
| diagnose | Finner leddet som binder i straffesakskjeden fra egne tall, med modellen i notatet Den dynamiske rettsstaten: utnyttelse og restanse per ledd, tiltakstype etter Theory of Constraints (utnytt, led saker utenom, utvid) og hvor mye kapasitet som trengs. Bruk når noen vil finne flaskehalsen, se om politi, påtale, domstol eller kriminalomsorg binder, regne ut kapasitetsbehov eller prøve verktøyet på eksempeltall eller offentlige norske tall. Utløses av «finn flaskehalsen», «hvilket ledd binder», «hvor er flaskehalsen i straffesakskjeden», «kjør diagnosen», «se på restansene våre», «hvor mye kapasitet trenger domstolen», «prøv flaskehalsdiagnosen», «find the bottleneck in the criminal justice chain», «run the bottleneck diagnosis». |
Finn leddet som binder
Ferdigheten går fra tall per ledd i straffesakskjeden til leddet som binder, hvilken type tiltak det krever, og hvor mye kapasitet som trengs. Den kjører diagnosen i notatet Den dynamiske rettsstaten (trinn (c)–(e) i metoden, avsnitt 7.7 og 9.5) og trenger bare Python 3.
Brukeren arbeider ofte i straffesakskjeden og er ikke programmerer. Snakk vanlig norsk. Nevn ikke filnavn, kommandoer, feltnavn eller JSON med mindre brukeren spør etter dem.
Regler
- Finn aldri på et tall. Mangler et tall, spør. Vet ikke brukeren, si hva verktøyet gjør uten det (se
standardverdiene i
${CLAUDE_PLUGIN_ROOT}/docs/inndata.md), og la brukeren velge. - Vis tallene slik du har forstått dem, og få et ja før du regner.
- Årstall deles på 12, og du sier det. Det gjelder strømmer (saker inn, kapasitet). Restanser er antall saker og deles ikke.
- Gjengi skriptets tall ordrett, i skriptets rekkefølge. Regn aldri om, avrund aldri annerledes og «forbedre» aldri et tall. Vil brukeren vite hva som skjer med andre tall, endrer du fila og kjører på nytt.
- Ta med forbeholdene som gjelder (under, og
${CLAUDE_PLUGIN_ROOT}/docs/forbehold.md). - Installer aldri noe uten å spørre. Diagnosen trenger ingen tillegg.
1. Skaff tallene
For hvert ledd trengs:
| Spør om | Enhet |
|---|---|
| navnet på leddet | |
| saker inn per måned nå | saker/mnd |
| saker leddet kan avgjøre per måned, slik det virker nå | saker/mnd |
| restansen nå | saker |
| målet: saksbehandlingstid i måneder, eller en akseptabel restanse i saker | mnd eller saker |
Og, hvis brukeren har dem (spør etter at de påkrevde er på plass):
- prognose for saker inn når balansen er gjenopprettet (uten prognose brukes strømmen nå);
- hvor stor andel av sakene som kan ledes til forenklede reaksjoner (for eksempel 20 %);
- restansen for tolv måneder siden (gir observert vekst i restansen);
- saker som avsluttes uten behandling og som er regnet med i kapasiteten, for eksempel henlagt på grunn av manglende kapasitet.
Ledd oppgis i kjedens rekkefølge (politi før påtale før domstol før kriminalomsorg).
Brukeren har tallene klare. Ta imot en limt tabell, et regneark, en CSV-fil eller en JSON-fil. Les den, finn hvilke kolonner som svarer til hva, og spør om det som er uklart. Er det uklart om et tall gjelder per år eller per måned, spør.
Brukeren har ikke tallene klare. Gå gjennom ett ledd om gangen og still ett spørsmål om gangen. Si hvorfor tallet trengs når det ikke er opplagt.
Brukeren har ingen tall ennå. Tilby å kjøre et av eksemplene, og si hva det er:
- Stilisert eksempel (
${CLAUDE_PLUGIN_ROOT}/eksempler/eksempel_domstol.json): modellens egne tall, ikke norske. Domstolen binder, og svaret gjenskaper avsnitt 9.5 i notatet (utnyttelse 1,28 og 19 % mer kapasitet). - Offentlige norske tall for 2025 (
${CLAUDE_PLUGIN_ROOT}/eksempler/norge_2025.json): politi og påtale, tingrett, lagmannsrett og fengsel, fra offentlige kilder. Flere av tallene er anslag; kildene står i fila.
Eksemplene kjøres direkte fra pluginen. Vil brukeren endre dem, kopierer du fila til arbeidsmappa først.
Vær særlig oppmerksom på:
- Kapasitet er det leddet avgjør per måned nå. Kapasitet som er bevilget, men ikke virker ennå, skal ikke med; si at den trekkes fra behovet etterpå.
- Avgjorte saker som kapasitet. Er kapasiteten hentet fra avgjorte saker, og noen av dem ble avsluttet uten behandling, spør hvor mange. De oppgis som skjult avgang og trekkes fra av verktøyet, ikke av deg.
- Mål. Er restansen bare en del av køen (for eksempel saker eldre enn tre måneder), passer et mål i antall saker bedre enn en saksbehandlingstid.
2. Vis tallene og få et ja
Vis en liten tabell før du regner:
| Ledd | Inn per mnd | Kapasitet per mnd | Restanse | Mål | Annet |
|---|
Skriv under tabellen hva du har gjort med tallene, for eksempel «Årstallene er delt på 12» eller «Restansen er ikke delt, den er et antall saker». Spør: «Stemmer dette?» Regn ikke før brukeren har sagt ja.
3. Skriv inndatafila
Skriv tallene som en JSON-fil i brukerens arbeidsmappe, for eksempel rettsstat-tall.json. Formatet, feltnavnene og
reglene står i ${CLAUDE_PLUGIN_ROOT}/docs/inndata.md; les den før du skriver fila første gang. Feltnavnene skrives
nøyaktig som der, uten æ, ø og å: et feltnavn verktøyet ikke kjenner, i et ledd eller i styring, stopper regningen
med en melding som foreslår det riktige. Skriv i merknad hvor tallene kommer fra og hva som er regnet om; merknad,
kilde og kilder kan også stå i hvert ledd. Finnes fila fra før, spør før du overskriver den.
4. Kjør diagnosen
python3 "${CLAUDE_PLUGIN_ROOT}/modell/kjor.py" --data "${CLAUDE_PLUGIN_DATA}" diagnose <fil>
- På Windows heter tolken
python. <fil>er hele stien til inndatafila.- Bruk pluginens modell, med mindre brukeren har valgt en egen versjon (se under).
En egen versjon av modellen. Har brukerens arbeidsmappe en mappe rettsstat-modell/ med modell/kjor.py inni,
bruk den ikke uten å spørre: «Jeg ser en egen versjon av modellen i rettsstat-modell. Skal jeg bruke den, eller
pluginens?» Velger brukeren den egne, kjør kontrollen på den først:
python3 "${CLAUDE_PLUGIN_ROOT}/modell/kjor.py" --data "${CLAUDE_PLUGIN_DATA}" --modell <hele stien til rettsstat-modell/modell> kontroll --rask
Si nivået til brukeren før du legger fram noe tall: linja som begynner med «Nivå» («bit for bit som notatet», «endret:
…», eller uten numpy og scipy «ingen avvik i det som ble kjørt (…)», som da bare gjelder kjernen, fasiten og
diagnosen). Kjør så diagnosen med --modell <hele stien til rettsstat-modell/modell> før diagnose. Er versjonen
endret, si sammen med svaret at tallene kommer fra brukerens egen versjon av modellen, ikke fra notatets.
Exit-koder:
- 0: diagnosen er regnet. Gå til trinn 5.
- 2: feil i inndata. Gjengi meldingen fra skriptet med vanlige ord (den sier hvilket ledd og hvilket tall, eller hvilket feltnavn verktøyet ikke kjenner og hva det trolig skulle være), rett sammen med brukeren, vis den rettede tabellen og kjør på nytt. Slutter meldingen med «Uventet feil i …», er det en feil i koden, ikke i tallene: gjengi den og si at diagnosen ikke ble regnet.
- Annen kode, eller
python3finnes ikke: gjengi meldingen som den er og si at diagnosen ikke ble regnet. Gjett ikke på et svar.
5. Presenter svaret
-
Vis utskriften slik skriptet skrev den, i en kodeblokk, i samme rekkefølge. Ikke avrund, regn om eller formater tallene på nytt.
-
Les den med vanlige ord, kort:
- hvilket ledd som binder, og hva utnyttelsen betyr (over 1: det kommer inn flere saker enn leddet avgjør);
- tiltakene i rekkefølgen skriptet gir: utnytt leddet først (tapt tid, ikke regnet), led saker utenom hvis det er oppgitt en andel, og utvid bare hvis det ikke rekker;
- kapasitetsbehovet, og hva det bygger på (prognosen eller strømmen nå, restansen over målet avviklet over 24 måneder, 95 % utnyttelse som mål);
- linjene om andre ledd: like ledd som ikke kan skilles, ledd som også er over full utnyttelse (skranken kan flytte seg dit), og ledd etter skranken, som bare viser det som slipper gjennom.
- Står det «Ingen ledd binder», si det rett ut. Står det at restansen vokser uten at noe ledd er over full utnyttelse, be brukeren se på tallene for saker inn og kapasitet i de leddene.
-
Forbehold som alltid tas med:
- Utnyttelse, restanse og kapasitetsbehov er regnet fra brukerens tall. De faste verdiene i regningen (avvikling over 24 måneder, 95 % utnyttelse som mål) er valg i notatets regel, ikke målt.
- «Saksbeh.tid» er restanse delt på kapasitet, ikke målt saksbehandlingstid.
- Kapasitet som er bevilget, men ikke virker ennå, er ikke regnet med. Trekk den fra behovet.
- Verktøyet erstatter ikke budsjettarbeidet og sier ingenting om enkeltsaker.
Ta i tillegg med det som gjelder for dette svaret: like ledd, skjult avgang, og for de norske tallene forbeholdene i
${CLAUDE_PLUGIN_ROOT}/docs/forbehold.md(fengselstallene er anslag og følsomme for hva som regnes med; politiets og SSBs tall teller ikke det samme). -
Tilby neste steg: «Vil du se hva som skjer måned for måned hvis anbefalingen følges, og om styringen tåler sin egen forsinkelse?» Det er ferdigheten
forlop, som bruker samme fil. Si at den trenger to vanlige regnebiblioteker for Python, og at du spør før noe installeres.
Spør brukeren «hva om …» (for eksempel en annen kapasitet eller en annen andel ledet utenom), lag en kopi av fila med det ene tallet endret, vis endringen, kjør på nytt og vis de to svarene ved siden av hverandre.