Skip to content

Generality audit: where rasputin assumes one machine or one country, 50 findings with fixes - #237

Merged
skavhaug merged 3 commits into
masterfrom
worktree-generality-audit
Oct 12, 2026
Merged

skavhaug merged 3 commits into
masterfrom
worktree-generality-audit

Conversation

@skavhaug

Copy link
Copy Markdown
Member

Prose only: docs/increments/generality-audit.md, an audit in the sense docs/increments/README.md gives, written by @architect against master c317c7e4 at Ola's request (2026-10-12: is rasputin good only on his computer and data sets, or applicable anywhere on the globe; the number of cores must not be hardcoded).

  • Verdict: the geometry core and the coordinate layer are general (PROJ handles hemisphere and zone with no sign assumption; the probe ran southern UTM zones, an equator-crossing box, both poles and a feet-based CRS). The concreteness sits in four places around them: no way to set the thread count; land-cover schemes and the source catalogue as Python code, all CORINE; clean-up defaults tuned on CORINE over a 10 m DEM; catchment refusing a DEM in degrees.
  • 50 findings in nine classes, each with a pinned citation, what is assumed, where it breaks, a severity (2 block, 23 degrade, 25 cosmetic) and a fix shape with a line estimate; what is already general; prior art; seven proposed pull requests under 700 lines each; a probe appendix.
  • Ola's rulings so far (2026-10-12): the first fix is threads and memory as settings; class maps and palettes become TOML data; the clean-up defaults and the geographic-catchment route are still open.

Review: one pre-push round recorded in the file's Review section, three wordings applied; check_citations.py clean.

🤖 Generated with Claude Code

skavhaug and others added 3 commits October 12, 2026 14:23
…achine or data (@architect)

docs/increments/generality-audit.md answers Ola's question of 2026-10-12: is
rasputin a system that works only on his computer and data sets, or anywhere
on the globe, and where is the implementation concrete where a general rule
should stand. An audit in the sense docs/increments/README.md gives, after
kernel-sufficiency-audit.md: evidence pinned to c317c7e, no code changed.

50 rows in nine classes (CRS and hemisphere; land-cover schemes; DEM sources;
the machine; fixtures as defaults; algorithm constants; paths and naming;
locale and units; macOS). 2 block use elsewhere, 23 degrade it, 25 cosmetic.

The two that block: `catchment` refuses a DEM in degrees (GLO-30, ANADEM),
because only `mesh` has the resample-first path (raster.py:26, cli.py:2324);
and land-cover class maps and palettes are Python code, all CORINE
(feature_input.py:106-123, palettes.py:15-65), so any other scheme needs a
pull request.

Ola's first finding, confirmed: no command has a --threads option; the C++
defaults to hardware_concurrency (right), the Python pools to os.cpu_count(),
crs.py caps reprojection at min(8, cpu_count) at import, and the stats file
prints os.cpu_count() as the thread count. The catchment's memory cap is
half the physical memory with no override and no cgroup awareness;
decompose.py (16 GiB budget) is called by nothing.

What is general, with a probe run on this tree (appendix): southern UTM
zones, an equator-crossing box, both poles and a feet-based CRS through
crs.py and dem_input; the lattice frame y = -row; no locale use; the C++ core
holds no CRS, unit or path; CI runs on Linux and macOS. macOS-only code is the
benchmark tooling (pmset, sysctl, sw_vers).

Section 6 orders the fixes and splits them into seven PRs under 700 lines:
threads and memory as settings; catchment on a geographic DEM; land-cover
schemes as data; the catalogue as data and class rasters by path; units and
GeoTIFF header coverage; cache default, names and Linux tooling; tiles in two
CRSs and -ffp-contract=off on their own. Section 7 has six questions for Ola
with defaults. The prior-art section records the legacy greps with their file
lists (reader.py's Norway-specific UTM parse, the abstract LandCoverRepository
with GlobCover) and claims no novelty.

python3 tools/check_citations.py --paths docs/increments/generality-audit.md:
all citations resolve.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…onym expansions applied, by the main session

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…n session

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@skavhaug
skavhaug enabled auto-merge October 12, 2026 14:54
@skavhaug
skavhaug added this pull request to the merge queue Oct 12, 2026
Merged via the queue into master with commit 5d2e706 Oct 12, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant