AI Slop Code Risk Monitor

libvips/libvips

SlopCodeMonitor badge for libvips/libvips Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

A fast image processing library with low memory needs.

1.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for libvips/libvips, a C project with 11,775 GitHub stars. SynthScan examined 285,768 lines of code across 677 source files, recording 261 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 1.0 (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.0
Adjusted Signal
1.0
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
11.8K
Stars
C
Language
285.8K
Lines of Code
677
Files
261
Pattern Hits
2026-10-31
Scan Date
0.00
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 4.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.4/100 · LOW

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

Agent Over-Engineering Ratio 1.2/100 · LOW

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

PR Review Velocity Impact 4.7/100 · LOW

Which changes need focused human review? 261 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 0HIGH 3MEDIUM 0LOW 258

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 261 distinct pattern matches across 8 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 Block174 hits · 174 pts
SeverityFileLineSnippetContext
LOWtools/vips.c81/*COMMENT
LOWcplusplus/gen-operators.py1#!/usr/bin/env python3COMMENT
LOWtest/test_connections.c1/* Test stream*u.COMMENT
LOWtest/test_keep.sh1#!/bin/shCOMMENT
LOWsuppressions/ubsan_ignorelist.txt1# Ignorelist for UndefinedBehaviorSanitizer. Turns off instrumentation ofCOMMENT
LOWlibvips/mosaicing/tbmerge.c101 These files are distributed with VIPS - http://www.vips.ecs.soton.ac.ukCOMMENT
LOWlibvips/mosaicing/remosaic.c41#define DEBUGCOMMENT
LOWlibvips/mosaicing/global_balance.c101#ifdef HAVE_CONFIG_HCOMMENT
LOWlibvips/resample/vsqbs.cpp81COMMENT
LOWlibvips/resample/affine.c121COMMENT
LOWlibvips/resample/reduceh_hwy.cpp41#include <cstdlib>COMMENT
LOWlibvips/resample/shrinkv.c81/*COMMENT
LOWlibvips/resample/reduce.c41COMMENT
LOWlibvips/resample/reduceh.cpp41 These files are distributed with VIPS - http://www.vips.ecs.soton.ac.ukCOMMENT
LOWlibvips/resample/reducev_hwy.cpp41#include <glib/gi18n-lib.h>COMMENT
LOWlibvips/resample/reducev_hwy.cpp81COMMENT
LOWlibvips/resample/shrink.c41COMMENT
LOWlibvips/resample/reducev.cpp61#ifdef HAVE_CONFIG_HCOMMENT
LOWlibvips/resample/shrinkh.c41COMMENT
LOWlibvips/resample/mapim.c41COMMENT
LOWlibvips/resample/bicubic.cpp41#define DEBUGCOMMENT
LOWlibvips/resample/thumbnail.c81#ifdef HAVE_CONFIG_HCOMMENT
LOWlibvips/include/vips/internal.h41COMMENT
LOWlibvips/include/vips/internal.h61#else /*!O_BINARY*/COMMENT
LOWlibvips/include/vips/threadpool.h41COMMENT
LOWlibvips/include/vips/almostdeprecated.h101#define MASK_IDEAL_RINGREJECT IM_MASK_IDEAL_RINGREJECTCOMMENT
LOWlibvips/include/vips/colour.h41COMMENT
LOWlibvips/include/vips/colour.h61COMMENT
LOWlibvips/include/vips/basic.h61 __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))COMMENT
LOWlibvips/include/vips/deprecated.h41/* On win32, need to override the wingdi defs for these. Yuk!COMMENT
LOWlibvips/include/vips/deprecated.h61/* picture Type */COMMENT
LOWlibvips/include/vips/deprecated.h81#define CMYK 15COMMENT
LOWlibvips/include/vips/deprecated.h101#define FMTDOUBLE 8 /* pels interpreted as unsigned double */COMMENT
LOWlibvips/include/vips/deprecated.h121#define lsize(I) IM_IMAGE_SIZEOF_LINE(I)COMMENT
LOWlibvips/include/vips/deprecated.h141COMMENT
LOWlibvips/include/vips/dispatch.h41COMMENT
LOWlibvips/include/vips/vips7compat.h61COMMENT
LOWlibvips/include/vips/vips7compat.h81COMMENT
LOWlibvips/include/vips/vips7compat.h101#define im_col_C2Cucs vips_col_C2CcmcCOMMENT
LOWlibvips/include/vips/vips7compat.h121#define IM_BANDFMT_DOUBLE VIPS_FORMAT_DOUBLECOMMENT
LOWlibvips/include/vips/vips7compat.h141#define IM_TYPE_CMYK VIPS_INTERPRETATION_CMYKCOMMENT
LOWlibvips/include/vips/vips7compat.h161/* Renamed macros.COMMENT
LOWlibvips/include/vips/vips7compat.h201#define im_error vips_errorCOMMENT
LOWlibvips/include/vips/vips7compat.h281 xsize, ysize, bands, bandfmt, coding, \COMMENT
LOWlibvips/include/vips/vips7compat.h381VipsDemandStyle im_char2dhint(const char *str);COMMENT
LOWlibvips/include/vips/vips7compat.h401#define im_start_many vips_start_manyCOMMENT
LOWlibvips/include/vips/vips7compat.h461#define im_malloc(IM, SZ) \COMMENT
LOWlibvips/include/vips/vips7compat.h481#define im_check_coding_rad vips_check_coding_radCOMMENT
LOWlibvips/include/vips/vips7compat.h541COMMENT
LOWlibvips/include/vips/vips7compat.h561#define im_ref_string_set vips_value_set_ref_stringCOMMENT
LOWlibvips/include/vips/vips7compat.h581#define im_meta_get_string vips_image_get_stringCOMMENT
LOWlibvips/include/vips/vips7compat.h601#define im__writehist vips__writehistCOMMENT
LOWlibvips/include/vips/vips7compat.h621#define im_isprefix vips_isprefixCOMMENT
LOWlibvips/include/vips/vips7compat.h641#define im_popenf vips_popenfCOMMENT
LOWlibvips/include/vips/vips7compat.h1281#define VIPS_MASK_IDEAL_RINGREJECT IM_MASK_IDEAL_RINGREJECTCOMMENT
LOWlibvips/include/vips/vips7compat.h1761#endif /*VIPS_ENABLE_ANCIENT*/COMMENT
LOWlibvips/include/vips/region.h41#include <vips/object.h>COMMENT
LOWlibvips/include/vips/vips.h81#define VIPS_VIPS_HCOMMENT
LOWlibvips/include/vips/vips.h101#include <vips/object.h>COMMENT
LOWlibvips/include/vips/vips.h121#include <vips/threadpool.h>COMMENT
114 more matches not shown…
Hyper-Verbose Identifiers57 hits · 54 pts
SeverityFileLineSnippetContext
LOWtest/test-suite/test_connection.py37 def test_source_new_from_file(self):CODE
LOWtest/test-suite/test_connection.py43 def test_image_new_from_source_file(self):CODE
LOWtest/test-suite/test_connection.py57 def test_image_write_to_target_file(self):CODE
LOWtest/test-suite/test_connection.py74 def test_image_new_from_source_memory(self):CODE
LOWtest/test-suite/test_connection.py88 def test_image_write_to_target_memory(self):CODE
LOWtest/test-suite/test_resample.py275 def test_thumbnail_uhdr_linear(self):CODE
LOWtest/test-suite/test_conversion.py345 def test_smartcrop_rgba_premultiplied(self):CODE
LOWtest/test-suite/test_conversion.py532 def test_composite_non_separable(self):CODE
LOWtest/test-suite/test_cicp.py221 def test_primaries_grey_preservation(self, primaries, name):CODE
LOWtest/test-suite/test_cicp.py287 def test_transfer_shadow_roundtrip(self, transfer, name):CODE
LOWtest/test-suite/test_cicp.py394 def test_jxl_srgb_not_tagged_cicp(self):CODE
LOWtest/test-suite/test_cicp.py402 def test_jxl_cicp_pixel_preservation(self):CODE
LOWtest/test-suite/test_cicp.py414 def test_jxl_cicp_ushort_preserved(self):CODE
LOWtest/test-suite/test_cicp.py437 def test_jxl_hdr_cicp_over_icc(self):CODE
LOWtest/test-suite/test_cicp.py458 def test_jxl_cicp_metadata_roundtrip(self):CODE
LOWtest/test-suite/test_cicp.py478 def test_jxl_custom_primaries_roundtrip(self, primaries, name):CODE
LOWtest/test-suite/test_cicp.py493 def test_heif_cicp_identity_matrix_saves(self):CODE
LOWtest/test-suite/test_cicp.py503 def test_heif_cicp_ushort_pixel_roundtrip(self):CODE
LOWtest/test-suite/test_cicp.py517 def test_heif_cicp_bitdepth_from_metadata(self):CODE
LOWtest/test-suite/test_cicp.py528 def test_heif_cicp_nclx_metadata_roundtrip(self):CODE
LOWtest/test-suite/test_cicp.py546 def test_heif_cicp_nclx_kept_for_colour_signalling(self, save_options):CODE
LOWtest/test-suite/test_cicp.py558 def test_heif_cicp_matrix_coefficients_preserved(self):CODE
LOWtest/test-suite/test_cicp.py567 def test_heif_cicp_matrix_coefficients_preserved_with_subsample(self):CODE
LOWtest/test-suite/test_cicp.py581 def test_heif_hdr_nclx_with_icc(self):CODE
LOWtest/test-suite/test_cicp.py604 def test_heif_hdr_nclx_with_profile_option(self, transfer):CODE
LOWtest/test-suite/test_cicp.py619 def test_heif_clli_roundtrip_keep_none(self):CODE
LOWtest/test-suite/test_cicp.py631 def test_heif_clli_roundtrip_without_input_cicp(self):CODE
LOWtest/test-suite/test_cicp.py641 def test_heif_clli_invalid_values_not_written(self):CODE
LOWtest/test-suite/test_cicp.py653 def test_heif_clli_partial_values_not_written(self):CODE
LOWtest/test-suite/test_cicp.py668 def test_png_cicp_lossless_roundtrip(self):CODE
LOWtest/test-suite/test_cicp.py702 def test_png_cicp_and_clli_coexist(self):CODE
LOWtest/test-suite/test_cicp.py719 def test_thumbnail_returns_cicp_to_its_own_encoding(self):CODE
LOWtest/test-suite/test_cicp.py734 def test_thumbnail_leaves_cicp_alone_without_linear(self):CODE
LOWtest/test-suite/test_cicp.py750 def test_thumbnail_honours_output_profile_for_cicp(self):CODE
LOWtest/test-suite/test_cicp.py765 def test_thumbnail_averages_cicp_in_linear_light(self):CODE
LOWtest/test-suite/test_cicp.py788 def test_thumbnail_cicp_matches_the_same_image_untagged(CODE
LOWtest/test-suite/test_create.py255 def test_mask_butterworth_band(self):CODE
LOWtest/test-suite/test_create.py318 def test_mask_butterworth_ring(self):CODE
LOWtest/test-suite/test_foreign.py454 def test_uhdrload_odd_dimensions(self):CODE
LOWtest/test-suite/test_foreign.py483 def test_uhdrsave_roundtrip_hdr(self):CODE
LOWtest/test-suite/test_foreign.py491 def test_uhdrsave_gainmap_scale_factor(self):CODE
LOWtest/test-suite/test_foreign.py503 def test_uhdrsave_optimize_coding(self):CODE
LOWtest/test-suite/test_foreign.py521 def test_uhdrsave_beyond_jpeg_limits(self):CODE
LOWtest/test-suite/test_foreign.py762 def test_apng_dispose_background(self):CODE
LOWtest/test-suite/test_foreign.py787 def test_apng_dispose_previous(self):CODE
LOWtest/test-suite/test_foreign.py832 def test_apng_hidden_first_frame(self):CODE
LOWtest/test-suite/test_foreign.py1634 def test_gifload_animation_dispose_background(self):CODE
LOWtest/test-suite/test_foreign.py1640 def test_gifload_animation_dispose_previous(self):CODE
LOWtest/test-suite/test_foreign.py2369 def test_new_temp_file_invalid_format(self):CODE
LOWtest/test-suite/test_draw.py39 def test_draw_flood_out_of_bounds(self):CODE
LOWtest/test-suite/helpers/helpers.py210def assert_almost_equal_objects(a, b, threshold=0.0001, msg=''):CODE
LOW.github/utils/github-automation.py118 def issue_notify_pull_request(self, pull: github.PullRequest.PullRequest) -> None:CODE
LOW.github/utils/github-automation.py132 def issue_notify_no_milestone(self, comment: List[str]) -> None:CODE
LOW.github/utils/github-automation.py146 def issue_notify_cherry_pick_failure(CODE
LOW.github/utils/github-automation.py161 def issue_notify_pull_request_failure(CODE
LOW.github/utils/github-automation.py168 def issue_remove_cherry_pick_failed_label(self):CODE
LOW⚡.github/utils/github-automation.py239 def check_if_pull_request_exists(CODE
Unused Imports17 hits · 16 pts
SeverityFileLineSnippetContext
LOWcplusplus/gen-operators.py31CODE
LOWtest/test-suite/test_connection.py3CODE
LOWtest/test-suite/test_connection.py4CODE
LOWtest/test-suite/test_connection.py10CODE
LOWtest/test-suite/test_convolution.py7CODE
LOWtest/test-suite/test_colour.py5CODE
LOWtest/test-suite/test_resample.py5CODE
LOWtest/test-suite/test_conversion.py2CODE
LOWtest/test-suite/test_conversion.py11CODE
LOWtest/test-suite/test_cicp.py6CODE
LOWtest/test-suite/test_create.py5CODE
LOWtest/test-suite/test_foreign.py9CODE
LOWtest/test-suite/test_arithmetic.py7CODE
LOWtest/test-suite/test_iofuncs.py6CODE
LOWtest/test-suite/test_histogram.py5CODE
LOWtest/test-suite/test_mosaicing.py5CODE
LOWdoc/gen-function-list.py15CODE
Empty Error Handlers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHcplusplus/gen-operators.py260except Error:CODE
HIGHdoc/gen-function-list.py68except Error:CODE
Cross-Language Confusion1 hit · 8 pts
SeverityFileLineSnippetContext
HIGH⚡.github/utils/github-automation.py234 local_repo.git.push(push_url, "HEAD:{}".format(branch_name), force=True)CODE
Deep Nesting5 hits · 5 pts
SeverityFileLineSnippetContext
LOWtest/test-suite/test_convolution.py109CODE
LOWtest/test-suite/test_conversion.py468CODE
LOWtest/test-suite/test_conversion.py489CODE
LOW.github/utils/github-automation.py180CODE
LOWdoc/fixup-gir-for-doc.py14CODE
Excessive Try-Catch Wrapping4 hits · 4 pts
SeverityFileLineSnippetContext
LOWtest/test-suite/helpers/helpers.py190 except Exception:CODE
LOW⚡.github/utils/github-automation.py228 except Exception as e:CODE
LOW.github/utils/github-automation.py292 except Exception as e:CODE
LOW.github/utils/github-automation.py295 except Exception as e:CODE
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWdoc/gen-function-list.py53CODE