zerum 0.4.0

Deterministic Python code governance: ~75 checks, default/strict profiles, explain mode, optional Ruff orchestration
Documentation
# Zerum example configuration (default profile)
# Copy to zerum.toml and adjust for your project.
# Run: zerum init
# Strict profile: zerum init --strict  or  zerum check . --profile strict

[profile]
name = "default"

# Custom profile inheritance (v0.3.0+)
# [profiles.team]
# extends = "default"
# [profiles.team.checks.ZR001]
# max_lines = 60

# --- Readability (ZR001–ZR015) ---
# ZR007/ZR008 (docstrings) and ZR011–015 (comment patterns) are off in default profile.

[checks.ZR001]
enabled = true
max_lines = 50

[checks.ZR002]
enabled = true
max_arguments = 5

[checks.ZR003]
enabled = true
max_depth = 3

[checks.ZR005]
enabled = true

[checks.ZR006]
enabled = true

[checks.ZR010]
enabled = true

# --- Consistency (ZR101–ZR110) ---
# Pattern heuristics ZR102–104, ZR107–110 disabled by default; ZR101/105/106 are AST-precise.

[checks.ZR105]
enabled = true

[checks.ZR106]
enabled = true

# --- Design (ZR201–ZR210) ---

[checks.ZR201]
enabled = true
max_methods = 15

[checks.ZR205]
enabled = true

[checks.ZR207]
enabled = true

[[checks.ZR207.rules]]
from = "app.domain"
forbidden = "app.infrastructure"

# --- Refactor (ZR301–ZR315) ---

[checks.ZR304]
enabled = true

[checks.ZR307]
enabled = true
max_arguments = 7

# --- Warning (ZR401–ZR415) ---

[checks.ZR401]
enabled = true
severity = "high"

[checks.ZR402]
enabled = true

[checks.ZR404]
enabled = true

[checks.ZR406]
enabled = true

[checks.ZR407]
enabled = true

[checks.ZR414]
enabled = true

# --- AI slop (ZR501–ZR510), deterministic only ---
# ZR503, ZR505–506, ZR509–510 disabled by default (pattern-heavy).

[checks.ZR501]
enabled = true

[checks.ZR504]
enabled = true

# --- External checkers (v0.4.0) ---
# Requires `ruff` on PATH: zerum check . --with-external ruff
# external_checkers = ["ruff"]