AI Slop Code Risk Monitor

yuchenlin/rebiber

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

A simple tool to update bib entries with their official information (e.g., DBLP or the ACL anthology).

0.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for yuchenlin/rebiber, a Python project with 3,044 GitHub stars. SynthScan examined 2,280,859 lines of code across 416 source files, recording 151 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 0.1 (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.

0.1
Adjusted Signal
0.1
Raw Pattern Score
100%
Time Factor
2026-10-26
Last Push
3.0K
Stars
Python
Language
2.3M
Lines of Code
416
Files
151
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 0.2/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.0/100 · LOW

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

Agent Over-Engineering Ratio 0.2/100 · LOW

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

PR Review Velocity Impact 0.3/100 · LOW

Which changes need focused human review? 151 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 1MEDIUM 1LOW 149

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 151 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.

Hyper-Verbose Identifiers125 hits · 84 pts
SeverityFileLineSnippetContext
LOWtests/test_download_dblp.py82def test_pagination_follows_server_cap_not_requested_h():CODE
LOWtests/test_download_dblp.py140def test_eccv_not_skipped_ecml_is():CODE
LOWtests/test_download_dblp.py159def test_toc_queries_robotics_main_tracks_not_workshops():CODE
LOWtests/test_download_dblp.py170def test_multivol_yields_numbered_volumes_after_empty_bare():CODE
LOWtests/test_download_dblp.py204def test_multivol_always_merges_numbered_volumes_when_bare_nonempty():CODE
LOWtests/test_download_dblp.py241def test_skip_incomplete_small_json_redownloads(tmp_path, monkeypatch):CODE
LOWtests/test_download_dblp.py263def test_skip_existing_complete_json_does_not_download(tmp_path, monkeypatch):CODE
LOWtests/test_download_dblp.py277def test_reject_overwrite_with_thinner_download(tmp_path, monkeypatch):CODE
LOWtests/test_download_dblp.py291def test_colm_openreview_fixture_two_bib_entries():CODE
LOWtests/test_download_dblp.py316def test_colm_openreview_error_prints_warning_and_skips(capsys):CODE
LOWtests/test_download_dblp.py326def test_colm_falls_back_to_openreview_when_dblp_empty(tmp_path, monkeypatch):CODE
LOWtests/test_download_dblp.py350def test_prev_year_thin_prints_error_but_writes_when_no_existing(CODE
LOWtests/test_download_dblp.py368def test_skip_existing_prev_year_thin_non_journal_redownloads(tmp_path, monkeypatch):CODE
LOWtests/test_download_dblp.py390def test_skip_existing_prev_year_thin_journal_still_skips(tmp_path, monkeypatch):CODE
LOWtests/test_download_dblp.py409def test_needs_http_when_prev_year_thin_non_journal(tmp_path):CODE
LOWtests/test_camera.py6def test_protect_acronyms_not_title_case_words():CODE
LOWtests/test_camera.py15def test_protect_does_not_double_brace_whole_title():CODE
LOW⚡tests/test_camera.py30def test_protect_mixed_case_and_digits():CODE
LOW⚡tests/test_camera.py36def test_protect_empty_and_none():CODE
LOW⚡tests/test_camera.py41def test_apply_keep_always_keeps_id_and_entrytype():CODE
LOWtests/test_camera.py62def test_apply_keep_empty_is_noop():CODE
LOWtests/test_camera.py69def test_apply_keep_case_insensitive_and_comma_string():CODE
LOWtests/test_camera.py86def test_apply_keep_none_entry():CODE
LOWtests/test_venue_data.py152 def test_fixture_keys_match_normalize_title(self):STRING
LOWtests/test_venue_data.py158 def test_each_arxiv_style_input_becomes_official_venue(self):STRING
LOWtests/test_venue_data.py178 def test_batch_file_converts_all_fixture_papers(self):STRING
LOWtests/test_venue_data.py187 def test_wrong_author_not_converted_even_if_title_matches(self):STRING
LOWtests/test_venue_data.py207 def test_dump_contains_fixture_paper(self):CODE
LOWtests/test_venue_data.py251 def test_bib_list_paths_exist(self):CODE
LOWtests/test_bib2json.py34def test_normalize_title_strips_punctuation_lowercases_letters_only():CODE
LOWtests/test_bib2json.py60def test_load_bib_file_parses_two_entries_ignores_comments():CODE
LOWtests/test_bib2json.py90def test_load_bib_file_comment_inside_entry_does_not_drop_it():CODE
LOWtests/test_bib2json.py114def test_load_bib_file_skips_comment_and_preamble():CODE
LOWtests/test_bib2json.py136def test_brace_nested_fields_stay_in_one_entry():CODE
LOWtests/test_bib2json.py158def test_build_json_keys_by_normalize_title():CODE
LOWtests/test_bib2json.py187def test_build_json_uses_keep_digits_keys():CODE
LOWtests/test_bib2json.py218def test_build_json_keeps_title_containing_month():CODE
LOWtests/test_bib2json.py240def test_load_bib_file_keeps_unclosed_entry():CODE
LOWtests/test_bib2json.py257def test_load_bib_file_recovers_from_extra_closing_brace():CODE
LOWtests/test_bib2json.py283def test_load_bib_file_splits_unclosed_buffer_at_next_at():CODE
LOWtests/test_bib2json.py308def test_build_json_keeps_single_line_entry_containing_month():CODE
LOWtests/test_bib2json.py326def test_normalize_title_nfkd_before_ascii_strip():CODE
LOWtests/test_bib2json.py354def test_load_bib_file_ignores_leading_junk_before_at():CODE
LOWtests/test_bib2json.py375def test_build_json_duplicate_key_warns_and_keeps_last(capsys):CODE
LOWtests/test_bib2json.py403def test_build_json_accepts_uppercase_title():CODE
LOWtests/test_star_history.py26def test_cumulative_daily_counts_and_order():CODE
LOWtests/test_star_history.py38def test_downsample_keeps_ends():CODE
LOWtests/test_star_history.py47def test_ytd_series_carries_baseline_and_counts_gain():CODE
LOW⚡tests/test_star_history.py62def test_ytd_series_empty_before_year_starts_at_zero():CODE
LOW⚡tests/test_star_history.py72def test_x_ticks_use_months_for_short_spans():CODE
LOW⚡tests/test_star_history.py81def test_render_svg_contains_title_and_total():CODE
LOWtests/test_star_history.py97def test_fetch_follows_next_link_and_collects_starred_at():CODE
LOWtests/test_cli.py93 def test_default_main_does_not_call_dblp(self):CODE
LOWtests/test_cli.py117 def test_live_lookup_reaches_search_empty_keeps_original(self):CODE
LOWtests/test_cli.py158 def test_dry_run_does_not_create_output_and_reports_converted_key(self):CODE
LOWtests/test_cli.py203 def test_used_in_unused_key_not_converted(self):CODE
LOWtests/test_cli.py255 def test_help_epilog_has_examples_and_arxiv_api_note(self):CODE
LOW⚡tests/test_normalize.py544 def test_multiple_inputs_require_directory_output(self):STRING
LOW⚡tests/test_normalize.py552 def test_multiple_inputs_same_are_inplace(self):STRING
LOW⚡tests/test_normalize.py561 def test_entry_venue_prefers_journal_then_booktitle(self):STRING
65 more matches not shown…
Excessive Try-Catch Wrapping11 hits · 12 pts
SeverityFileLineSnippetContext
LOWrebiber/bib2json.py156 except Exception as e:CODE
LOWrebiber/download_dblp.py643 except Exception as exc:CODE
LOWrebiber/download_dblp.py659 except Exception as exc:CODE
LOWrebiber/download_dblp.py969 except Exception as exc:CODE
LOWrebiber/normalize.py481 except Exception as exc:CODE
LOWrebiber/normalize.py681 except Exception as exc:CODE
LOWrebiber/normalize.py724 except Exception as exc:CODE
LOWrebiber/normalize.py732 except Exception as exc:CODE
LOWrebiber/normalize.py917 except Exception as exc:CODE
LOWrebiber/normalize.py1294 except Exception:CODE
MEDIUMrebiber/normalize.py686def infer_year_from_arxiv_id(arxiv_id):CODE
Deep Nesting7 hits · 7 pts
SeverityFileLineSnippetContext
LOWrebiber/bib2json.py58CODE
LOWrebiber/download_dblp.py904CODE
LOWrebiber/normalize.py122CODE
LOWrebiber/normalize.py557CODE
LOWrebiber/normalize.py790CODE
LOWrebiber/normalize.py1047CODE
LOWscripts/refresh_bib_list.py69CODE
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHrebiber/download_dblp.py184except ImportError:CODE
Unused Imports4 hits · 4 pts
SeverityFileLineSnippetContext
LOWrebiber/__init__.py5CODE
LOWrebiber/__init__.py6CODE
LOWrebiber/__init__.py6CODE
LOWscripts/star_history.py14CODE
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWrebiber/normalize.py790CODE
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWrebiber/__init__.py8__all__ = ["load_bib_file", "construct_bib_db", "normalize_bib"]CODE
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippetContext
LOWrebiber/data/iccv2015.bib.json7533 " title = {Generating Notifications for Missing Actions: Don't Forget to Turn\n",CODE