Repository navigation
Generality audit: where rasputin assumes one machine or one country, 50 findings with fixes - #237
Merged
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prose only:
docs/increments/generality-audit.md, an audit in the sensedocs/increments/README.mdgives, written by @architect against masterc317c7e4at 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).catchmentrefusing a DEM in degrees.Review: one pre-push round recorded in the file's Review section, three wordings applied;
check_citations.pyclean.🤖 Generated with Claude Code