AI Slop Code RIsk Monitor

sherlock-project/sherlock

Hunt down social media accounts by username across social networks

9.9 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for sherlock-project/sherlock, a Python project with 93,760 GitHub stars. SynthScan examined 8,822 lines of code across 43 source files, recording 49 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 9.9 (Moderate 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.

9.9
Adjusted Signal
9.9
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
93.8K
Stars
Python
Language
8.8K
Lines of Code
43
Files
49
Pattern Hits
2026-10-12
Scan Date
0.19
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 14.7/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

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

Agent Over-Engineering Ratio 34.6/100 · MEDIUM

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

PR Review Velocity Impact 42.3/100 · MEDIUM

Which changes need focused human review? 49 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 8MEDIUM 4LOW 37

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 49 distinct pattern matches across 7 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.

Empty Error Handlers5 hits · 25 pts
SeverityFileLineSnippetContext
HIGHsherlock_project/sherlock.py463except KeyError:CODE
HIGHsherlock_project/sherlock.py468except Exception:CODE
HIGHsherlock_project/sherlock.py472except KeyError:CODE
HIGHsherlock_project/sherlock.py477except Exception:CODE
HIGHsherlock_project/sites.py175except KeyError:CODE
Excessive Try-Catch Wrapping14 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMdevel/summarize_site_validation.py68 print(f"Error: File '{xml_path}' does not exist.")CODE
LOWsherlock_project/sherlock.py372 except Exception:CODE
LOWsherlock_project/sherlock.py376 except Exception:CODE
LOWsherlock_project/sherlock.py468 except Exception:CODE
LOWsherlock_project/sherlock.py477 except Exception:CODE
LOWsherlock_project/sherlock.py713 except Exception as error:CODE
LOWsherlock_project/sherlock.py767 except Exception as error:CODE
MEDIUMsherlock_project/sherlock.py797 print(f"Error: Desired sites not found: {', '.join(site_missing)}.")CODE
LOWsherlock_project/sites.py127 except Exception as error:CODE
LOWsherlock_project/sites.py138 except Exception as error:CODE
LOWsherlock_project/sites.py149 except Exception as error:CODE
LOWsherlock_project/sites.py178 except Exception:CODE
MEDIUM.github/workflows/validate_modified_targets.yml67 print(f"Error: Could not find {e.filename}", file=sys.stderr)CODE
MEDIUM.github/workflows/validate_modified_targets.yml70 print(f"Error: Could not decode JSON from a file - {e}", file=sys.stderr)CODE
Hyper-Verbose Identifiers17 hits · 17 pts
SeverityFileLineSnippetContext
LOWtests/test_unicode.py8def _make_future_with_exception(exc):CODE
LOWtests/test_unicode.py15def test_get_response_handles_unicode_decode_error():CODE
LOWtests/test_unicode.py35def test_get_response_handles_unicode_encode_error():CODE
LOWtests/few_test_basic.py6def test_username_via_message():CODE
LOWtests/test_probes.py30 def test_known_positives_via_message(self, sites_info, site, username):CODE
LOWtests/test_probes.py41 def test_known_positives_via_status_code(self, sites_info, site, username):CODE
LOWtests/test_probes.py50 def test_known_positives_via_response_url(self, sites_info, site, username):CODE
LOWtests/test_probes.py62 def test_likely_negatives_via_message(self, sites_info, site, random_len):CODE
LOWtests/test_probes.py84 def test_likely_negatives_via_status_code(self, sites_info, site, random_len):CODE
LOWtests/test_probes.py98def test_username_illegal_regex(sites_info):CODE
LOWtests/test_manifest.py6def test_validate_manifest_against_local_schema():CODE
LOWtests/test_manifest.py23def test_validate_manifest_against_remote_schema(remote_schema):CODE
LOWtests/test_manifest.py38def test_site_list_iterability (sites_info, target_name, target_expected_err_type):CODE
LOWtests/sherlock_interactives.py23 def walk_sherlock_for_files_with(pattern: str) -> list[str]:CODE
LOWtests/test_ux.py18def test_nsfw_explicit_selection(sites_obj, nsfwsites):CODE
LOWtests/test_ux.py26def test_wildcard_username_expansion():CODE
LOWtests/test_ux.py41def test_no_usernames_provided(cliargs):CODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHsherlock_project/notify.py0convert object to string. keyword arguments: self -- this object. return value: nicely formatted string to get informatiSTRING
HIGHsherlock_project/result.py0convert object to string. keyword arguments: self -- this object. return value: nicely formatted string to get informatiSTRING
HIGHsherlock_project/sites.py0convert object to string. keyword arguments: self -- this object. return value: nicely formatted string to get informatiSTRING
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWsherlock_project/sherlock.py340 # Open the file containing account linksCOMMENT
LOWsherlock_project/sherlock.py727 # Check if both output methods are entered as input.COMMENT
LOWsherlock_project/sherlock.py754 # Check if it's a valid pull requestCOMMENT
LOWsherlock_project/__main__.py14 # Check if the user is using the correct version of PythonCOMMENT
Deep Nesting5 hits · 5 pts
SeverityFileLineSnippetContext
LOWtests/sherlock_interactives.py23CODE
LOWsherlock_project/sherlock.py172CODE
LOWsherlock_project/sherlock.py540CODE
LOWsherlock_project/notify.py176CODE
LOWsherlock_project/sites.py78CODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsherlock_project/sherlock.py13CODE