AI Slop Code Risk Monitor

louis-e/arnis

SlopCodeMonitor badge for louis-e/arnis Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Generate any location from the real world in Minecraft with a high level of detail.

1.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for louis-e/arnis, a Rust project with 18,478 GitHub stars. SynthScan examined 329,131 lines of code across 517 source files, recording 412 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 1.7 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.7
Adjusted Signal
1.7
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
18.5K
Stars
Rust
Language
329.1K
Lines of Code
517
Files
412
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 6.0/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 369 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.8/100 · LOW

Are imports declared and package/API names verified? 6 finding(s).

Agent Over-Engineering Ratio 1.9/100 · LOW

Are wrappers, guards, and repeated structures necessary? 52 finding(s).

PR Review Velocity Impact 8.2/100 · LOW

Which changes need focused human review? 412 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 5HIGH 1MEDIUM 50LOW 356

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 412 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Over-Commented Block309 hits · 302 pts
SeverityFileLineSnippetContext
LOWsrc/deterministic_rng.rs1//! Deterministic random number generation for consistent element processing.COMMENT
LOWsrc/deterministic_rng.rs21/// (e.g., once per region it touches during streaming).COMMENT
LOWsrc/deterministic_rng.rs41/// salt values for different purposes within the same element)COMMENT
LOWsrc/bedrock_block_map.rs1//! Bedrock Block MappingCOMMENT
LOWsrc/ground_decoration.rs1//! Plant patches laid over the finished ground, after the way Minecraft decoratesCOMMENT
LOWsrc/ground_generation.rs1//! Ground layer generation — surface blocks, vegetation, shorelines, and underground fill.COMMENT
LOWsrc/ground_generation.rs41COMMENT
LOWsrc/ground_generation.rs481 // rock material. Steep cliffs should always look like rock.COMMENT
LOWsrc/ground_generation.rs521 // organic shorelines instead of rectangular grid-cell edges.COMMENT
LOWsrc/ground_generation.rs681 )COMMENT
LOWsrc/ground_generation.rs1521/// high- and low-noise regions curve rather than snap along axis-alignedCOMMENT
LOWsrc/floodfill_cache.rs61/// A memory-efficient bitmap for storing coordinates.COMMENT
LOWsrc/floodfill_cache.rs301 (urban_count, total_count)COMMENT
LOWsrc/floodfill_cache.rs561 /// Gets cached flood fill result for a way, or computes it if not cached.COMMENT
LOWsrc/floodfill_cache.rs661 /// Mostly tag presence, so most values are cached whether read or not; the bigCOMMENT
LOWsrc/tile.rs41pub const DEFAULT_TILE_SIZE: i32 = 512;COMMENT
LOWsrc/tile.rs161 || way.tags.contains_key("aeroway")COMMENT
LOWsrc/gui.rs881///COMMENT
LOWsrc/gui.rs1241///COMMENT
LOWsrc/gui.rs1321 // A refused token, an Overpass outage, a download that never arrived:COMMENT
LOWsrc/gui.rs1341///COMMENT
LOWsrc/gui.rs1721 mapillary_facade_debug_walls: String::new(),COMMENT
LOWsrc/world_utils.rs121fn sanitize_chars_and_trim(name: &str) -> String {COMMENT
LOWsrc/world_utils.rs801/// Whether a Java world already carries the tall-world datapack.COMMENT
LOWsrc/progress.rs81///COMMENT
LOWsrc/luanti_block_map.rs41 pub param2: u8,COMMENT
LOWsrc/luanti_block_map.rs81COMMENT
LOWsrc/floodfill.rs141 if area < 50000 {COMMENT
LOWsrc/block_palette.rs201/// happened to list sandstone in the nearest bucket, which is why thoseCOMMENT
LOWsrc/args.rs1use crate::coordinate_system::geographic::LLBBox;COMMENT
LOWsrc/args.rs21COMMENT
LOWsrc/args.rs41 /// How Overpass is queried when the data comes from there: requests (built in), curl orCOMMENT
LOWsrc/args.rs61COMMENT
LOWsrc/args.rs81COMMENT
LOWsrc/args.rs101 /// and overgrown, lights outCOMMENT
LOWsrc/args.rs121COMMENT
LOWsrc/args.rs141 /// Example: --cave-biomes lush=150,deepdark=0,amethyst=60COMMENT
LOWsrc/args.rs161COMMENT
LOWsrc/args.rs181 #[arg(long = "overture", default_value_t = true, action = ArgAction::Set, num_args = 0..=1, default_missing_value = COMMENT
LOWsrc/args.rs221 #[arg(long, default_value_t = 0.0, allow_hyphen_values = true)]COMMENT
LOWsrc/args.rs241COMMENT
LOWsrc/args.rs281 #[arg(long = "world-type", value_enum, default_value_t = WorldType::Void)]COMMENT
LOWsrc/args.rs301 pub mapillary_token: Option<String>,COMMENT
LOWsrc/args.rs321COMMENT
LOWsrc/args.rs341COMMENT
LOWsrc/args.rs361 /// `standard` fits any GPU the game runs on; `high` is sharper and wants aCOMMENT
LOWsrc/args.rs381 #[arg(long, default_value_t = false)]COMMENT
LOWsrc/args.rs401 #[arg(long, default_value_t = false)]COMMENT
LOWsrc/args.rs421 match s.trim().parse::<u32>() {COMMENT
LOWsrc/args.rs441 /// visible instead of merely slow.COMMENT
LOWsrc/args.rs621 /// The Mapillary token, if one was given and is not blank.COMMENT
LOWsrc/args.rs661COMMENT
LOWsrc/data_processing.rs241 }COMMENT
LOWsrc/data_processing.rs921 // are built, are hung before the world is saved and become a pack afterCOMMENT
LOWsrc/data_processing.rs1381 });COMMENT
LOWsrc/terrain_surface.rs621/// Below this depth no terrain shape can hold snow, so callers may skip it.COMMENT
LOWsrc/clipping.rs1// Sutherland-Hodgman polygon clipping and related geometry utilities.COMMENT
LOWsrc/clipping.rs581fn matches_endpoint(coord: (f64, f64), endpoint: &ProcessedNode, tolerance: f64) -> bool {COMMENT
LOWsrc/building_facades/fit.rs1//! Fitting one photograph to one wall.COMMENT
LOWsrc/building_facades/fit.rs121 return m;COMMENT
249 more matches not shown…
Decorative Section Separators37 hits · 111 pts
SeverityFileLineSnippetContext
MEDIUMsrc/osm_tiles.rs836// ── the AOT1 payload ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/shoreline.rs107// ─── Boundary tracing ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/shoreline.rs258// ─── Simplification ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/shoreline.rs574// ─── Rasterization ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs53// ─── Land cover class constants ────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs144// ─── Data structures ──────────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs440// ─── Public API ───────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs541// ─── Cache helpers ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs564// ─── ESA tile URL computation ─────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs620// ─── COG reading ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs1016// ─── TIFF IFD parsing ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs1267// ─── Binary reading helpers ───────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs1314// ─── Gap filling ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs1394// ─── Water distance field ─────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs1458// ─── Boundary smoothing ───────────────────────────────────────────────────COMMENT
MEDIUMsrc/land_cover/mod.rs1622// ─── LZW decompression ───────────────────────────────────────────────────COMMENT
MEDIUMsrc/element_processing/amenities.rs467 // ── Node fountain (single point) ───────────────────────────────COMMENT
MEDIUMsrc/element_processing/amenities.rs476 // ── Way fountain (polygon) ─────────────────────────────────────COMMENT
MEDIUMsrc/overture/pmtiles.rs197// ─── Directory decoding ──────────────────────────────────────────────────COMMENT
MEDIUMsrc/overture/pmtiles.rs303// ─── Tile addressing ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/overture/pmtiles.rs384// ─── Archive ─────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/overture/mod.rs81// ─── Constants ────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/overture/mod.rs171// ─── Internal data types ─────────────────────────────────────────────────COMMENT
MEDIUMsrc/overture/mod.rs505// ─── Shared attribute interning ──────────────────────────────────────────COMMENT
MEDIUMsrc/overture/mod.rs581// ─── Public API ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/overture/mod.rs708// ─── Inner implementation ────────────────────────────────────────────────COMMENT
MEDIUMsrc/overture/mod.rs2271// ─── Sparse byte reader for row-group-only downloads ─────────────────────COMMENT
MEDIUMsrc/overture/mod.rs2364// ─── Partition byte cache ────────────────────────────────────────────────COMMENT
MEDIUMsrc/overture/mvt.rs132// ─── Protobuf wire reader ────────────────────────────────────────────────COMMENT
MEDIUMsrc/overture/mvt.rs257// ─── Message decoding ────────────────────────────────────────────────────COMMENT
MEDIUMsrc/elevation/postprocess.rs530 // ── Flowing water (river-like) ─────────────────────────COMMENT
MEDIUMsrc/elevation/postprocess.rs548 // ── Still water (lake / fjord / ocean) ─────────────────COMMENT
MEDIUMsrc/elevation/providers/mapterhorn.rs103// ─── Zoom selection ────────────────────────────────────────────────────COMMENT
MEDIUMsrc/elevation/providers/mapterhorn.rs127// ─── Tile keys and coordinates ─────────────────────────────────────────COMMENT
MEDIUMsrc/elevation/providers/mapterhorn.rs206// ─── Fetching ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/elevation/providers/mapterhorn.rs577// ─── Sampling ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/elevation/providers/mapterhorn.rs831// ─── Tests ─────────────────────────────────────────────────────────────COMMENT
Hallucination Indicators5 hits · 50 pts
SeverityFileLineSnippetContext
CRITICALsrc/gui/js/maps/maplibre-gl.js46define("index",["exports","./shared"],(function(e,t){"use strict";var i="5.6.0";function o(){var e=new t.A(4);return t.ACODE
CRITICALsrc/gui/js/maps/leaflet.draw.js8!function(t,e,i){function o(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}L.drawVersion="1.0.4",L.DCODE
CRITICALsrc/gui/js/maps/leaflet.draw.js9className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize"}),touchMoveIcon:new L.DivIcon({iconSize:new L.PoinCODE
CRITICALsrc/gui/js/maps/proj4-src.js5669 wkt.ellps = wkt.GEOGCS.DATUM.SPHEROID.name.replace('_19', '').replace(/[Cc]larke\_18/, 'clrk');CODE
CRITICALsrc/gui/js/libs/jquery-ui-1.10.3.custom.min.js6(function(e,t){function i(t,i){var s,n,r,o=t.nodeName.toLowerCase();return"area"===o?(s=t.parentNode,n=s.name,t.href&&n&CODE
AI Slop Vocabulary12 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUMsrc/element_processing/highways.rs4560 // The road emerges at ground level at the boundary node (seamless portal join).COMMENT
MEDIUMsrc/gui/js/maps/leaflet-maplibre-gl.js183 // defensive check for robust backward compatibility.COMMENT
MEDIUMsrc/gui/js/libs/jquery-1.9.1.js9588// AMD modules. A named AMD is safest and most robust way to register.COMMENT
MEDIUMsrc/elevation/postprocess.rs208/// feathered mask so the transition to natural terrain is seamless. ThisCOMMENT
MEDIUMsrc/elevation/postprocess.rs311/// peak regardless of which side the tail is on — robust to both casesCOMMENT
MEDIUMsrc/elevation/postprocess.rs510 // IQR-based flowing/still classification. IQR is robust toCOMMENT
MEDIUMsrc/elevation/postprocess.rs550 // histogram mode (robust to both upper and lower tails),COMMENT
MEDIUMsrc/elevation/postprocess.rs1377/// - 25th percentile instead of **min**: robust to one DSM-artifact pit inCOMMENT
MEDIUMsrc/caves/mod.rs5//! position-noise function, so per-tile carving is automatically seamless.COMMENT
MEDIUMsrc/caves/mod.rs146/// world `world`. Noise is a pure position-fn, so per-tile carving is seamless (same coords → sameCOMMENT
MEDIUMsrc/caves/mod.rs437/// res. Cells are on GLOBAL boundaries so tiles/regions stay seamless. ~16× fewer density evals thanCOMMENT
MEDIUMsrc/mapillary/refine.rs1291 // downscale, which is what makes LSD robust to the quantisation of theCOMMENT
Verbosity Indicators15 hits · 23 pts
SeverityFileLineSnippetContext
LOW⚡src/land_cover/mod.rs881 // Step 5: Determine which internal tiles we needCOMMENT
LOW⚡src/land_cover/mod.rs888 // Step 6: Fetch and decode each needed internal tileCOMMENT
LOWsrc/land_cover/mod.rs797 // Step 1: Read the TIFF/BigTIFF header to get IFD locationCOMMENT
LOWsrc/land_cover/mod.rs812 // Step 2: Parse TIFF headerCOMMENT
LOWsrc/land_cover/mod.rs828 // Step 3: Parse IFD to get image dimensions and tile layoutCOMMENT
LOWsrc/land_cover/mod.rs845 // Step 4: Place the tile in the global pixel grid. Tiles are 3 degrees square, soCOMMENT
LOWsrc/land_cover/mod.rs923 // Step 7: Copy the overlapping rows into the rasterCOMMENT
LOWsrc/element_processing/bridges.rs241 // Step 1: union by shared endpoint at the same effective layer.COMMENT
LOWsrc/element_processing/bridges.rs262 // Step 2: union by shared bridge:name with close centroids.COMMENT
LOWsrc/element_processing/bridges.rs295 // Step 3: union decks running side by side (dual carriageways, sidewalks).COMMENT
LOW⚡src/overture/mod.rs1404 // Step 1: file size. Cached with the rest of the partition, because aCOMMENT
LOW⚡src/overture/mod.rs1412 // Step 2: Read the Parquet footer.COMMENT
LOWsrc/overture/mod.rs1445 // Step 3: Filter row groups by bbox overlapCOMMENT
LOWsrc/overture/mod.rs1459 // Step 4: Download only matching row groups via HTTP Range requests.COMMENT
LOWsrc/gui/js/libs/jquery-ui-1.10.3.custom.js11147 // IE sets focus asynchronously, so we need to check if focusCOMMENT
Structural Annotation Overuse14 hits · 22 pts
SeverityFileLineSnippetContext
LOW⚡src/land_cover/mod.rs881 // Step 5: Determine which internal tiles we needCOMMENT
LOW⚡src/land_cover/mod.rs888 // Step 6: Fetch and decode each needed internal tileCOMMENT
LOWsrc/land_cover/mod.rs797 // Step 1: Read the TIFF/BigTIFF header to get IFD locationCOMMENT
LOWsrc/land_cover/mod.rs812 // Step 2: Parse TIFF headerCOMMENT
LOWsrc/land_cover/mod.rs828 // Step 3: Parse IFD to get image dimensions and tile layoutCOMMENT
LOWsrc/land_cover/mod.rs845 // Step 4: Place the tile in the global pixel grid. Tiles are 3 degrees square, soCOMMENT
LOWsrc/land_cover/mod.rs923 // Step 7: Copy the overlapping rows into the rasterCOMMENT
LOWsrc/element_processing/bridges.rs241 // Step 1: union by shared endpoint at the same effective layer.COMMENT
LOWsrc/element_processing/bridges.rs262 // Step 2: union by shared bridge:name with close centroids.COMMENT
LOWsrc/element_processing/bridges.rs295 // Step 3: union decks running side by side (dual carriageways, sidewalks).COMMENT
LOW⚡src/overture/mod.rs1404 // Step 1: file size. Cached with the rest of the partition, because aCOMMENT
LOW⚡src/overture/mod.rs1412 // Step 2: Read the Parquet footer.COMMENT
LOWsrc/overture/mod.rs1445 // Step 3: Filter row groups by bbox overlapCOMMENT
LOWsrc/overture/mod.rs1459 // Step 4: Download only matching row groups via HTTP Range requests.COMMENT
Hyper-Verbose Identifiers15 hits · 15 pts
SeverityFileLineSnippetContext
LOWsrc/gui/js/settings-store.js644export function cancelSettingsResetConfirm() {CODE
LOWsrc/gui/js/main.js610function getBuildingFacadesEnabled() {CODE
LOWsrc/gui/js/main.js1734function initLuantiExperimentalToggle() {CODE
LOWsrc/gui/js/main.js2151function initPrecomputeFacadesButton() {CODE
LOWsrc/gui/js/main.js2779function isCustomWorldNameFeatureEnabled() {CODE
LOWsrc/gui/js/main.js2799function updateWorldNamePreviewLabel() {CODE
LOWsrc/gui/js/main.js2826function updateWorldNameLimitState() {CODE
LOWsrc/gui/js/main.js2906function initCustomWorldNameToggle() {CODE
LOWsrc/gui/js/main.js2981function refreshLuantiAvailability() {CODE
LOWsrc/gui/js/main.js3355function handleWorldSelectionError(errorCode) {CODE
LOWsrc/gui/js/main.js3377function setGenerationButtonEnabled(enabled) {CODE
LOWsrc/gui/js/bbox.js1050 function addWorldPreviewToEditToolbar() {CODE
LOWsrc/gui/js/bbox.js2438function updateTerrainPreviewButton() {CODE
LOWsrc/gui/js/libs/jquery-1.9.1.js7466function addToPrefiltersOrTransports( structure ) {CODE
LOWsrc/gui/js/libs/jquery-1.9.1.js7498function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {CODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHsrc/gui/js/libs/jquery-ui-1.10.3.custom.js8103 // Format a name, short or long as requestedCOMMENT
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMsrc/element_processing/construction_site.rs4//! a container or a scaffold tower.COMMENT
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWassets/building-facades/build_facades.py425CODE
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/gui/js/main.js114 const attribute = localizedStringKey.startsWith("placeholder_") ? "placeholder" : "textContent";CODE
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/gui/js/maps/maplibre-gl.js42define("shared",["exports"],(function(t){"use strict";function e(t,e,r,n){return new(r||(r=Promise))((function(i,s){funcCODE