den-dynamiske-rettsstaten/CLAUDE.md
Kjell Tore Guttormsen 1723d593f8
feat(diagnose): first bottleneck diagnosis on public Norwegian figures
paper/norge_2025.json holds 2025 and October 2026 figures for police and
prosecution, district courts, appeal courts and prison, each with its
source (POD report 1/2026, Domstoladministrasjonen annual report 2025,
Kriminalomsorgen key figures October 2026 and annual report 2025, SSB).
Derived values are marked as estimates.

Result: police and prosecution bind (utilization 1.09 once dismissals
for lack of capacity are counted as untreated), with prison (1.06) and
district courts (1.04) also above full utilization; appeal courts are
below (0.88). README shows the table and its caveats.

diagnose.py accepts an acceptable backlog instead of a target time, and
cases closed without treatment, and lists other links above capacity.
The stylized example still reproduces section 9.5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 13:37:12 +01:00

2.8 KiB

den-dynamiske-rettsstaten

Context

Concept note (Norwegian, LaTeX) and its simulation code. The principle: enforcement effort should track how much, and how seriously, laws are actually broken. Published as open, non-commercial material. Readers are Norwegian, so README and paper are in Norwegian (bokmål); CLAUDE.md and code comments may stay as they are.

Stack

  • paper/sim.py: Python 3, numpy + scipy (pinned in requirements.txt). Writes paper/data/*.dat, which pgfplots in the LaTeX source reads.
  • paper/*.tex: LaTeX. main.tex and notat.tex build with pdflatex, karusell.tex with xelatex (font Inter from TeX Live). main.tex = the note (inputs part1-part4, refs), notat.tex = 2-page summary, karusell.tex = slides. Shared preamble.tex. Bibliography is a hand-written thebibliography in refs.tex.
  • pdf/: the published PDFs. They are build output committed on purpose; rebuild and replace them together with source changes.

Conventions

  • The core sentence must be quoted verbatim everywhere: «Innsatsen for å håndheve lover og regler bør løpende stå i forhold til hvor mye, og hvor alvorlig, de faktisk brytes.» Short form of the clarification: «Straffebud og strafferammer ligger fast.»
  • Any change to sim.py must keep paper/data/ byte-identical unless the change is meant to alter results; then text, figures and PDFs change in the same commit.
  • Licensing is split: text (pdf/, paper/*.tex) is CC BY 4.0 (LICENSE-CC-BY-4.0.txt); code and data (paper/sim.py, paper/diagnose.py, paper/eksempel_domstol.json, paper/norge_2025.json, requirements.txt, paper/data/) are MIT (LICENSE). New files follow the same split.
  • Never commit anything under private/ (working documents: peer review, change list, social-media drafts, original source zip).

Commands

  • Setup: python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
  • Run simulation (about 2 min, from paper/): ../.venv/bin/python sim.py
  • Bottleneck diagnosis from own numbers (stdlib only, from paper/): python3 diagnose.py eksempel_domstol.json; must reproduce section 9.5 (utilization 1,28, +19 % capacity).
  • Reproduction check after a run: git status paper/data shows no changes (verified 2026-11-10: 22/22 files identical with Python 3.14.0, numpy 2.5.4, scipy 1.18.1)
  • LaTeX build (from paper/, TeX Live 2026 in /Library/TeX/texbin): pdflatex main.tex and pdflatex notat.tex three times each, xelatex karusell.tex twice; copy to pdf/ (verified 2026-11-10: main 57 pages, notat 2, karusell 16, no undefined references). Build in a scratch copy of paper/ to keep aux files out of the repo.

Workflow

  • Repository starts private under ktg/; moving it to open/ is the operator's decision.
  • Run the repo-standard skill before publishing.