AI Slop Code RIsk Monitor

emmabostian/developer-portfolios

A list of developer portfolios for your inspiration

9.3 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for emmabostian/developer-portfolios, a Python project with 27,061 GitHub stars. SynthScan examined 13,850 lines of code across 22 source files, recording 75 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 9.3 (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.3
Adjusted Signal
9.3
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
27.1K
Stars
Python
Language
13.8K
Lines of Code
22
Files
75
Pattern Hits
2026-10-12
Scan Date
0.09
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 15.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.4/100 · LOW

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

Agent Over-Engineering Ratio 34.1/100 · MEDIUM

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

PR Review Velocity Impact 36.3/100 · MEDIUM

Which changes need focused human review? 75 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 2MEDIUM 20LOW 53

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

Decorative Section Separators14 hits · 45 pts
SeverityFileLineSnippetContext
MEDIUM⚡src/check_parking_redirects.py188# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡src/check_parking_redirects.py190# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py29# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py31# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py69# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py71# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py116# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py118# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py215# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py217# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py255# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py257# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py280# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/check_parking_redirects.py282# ---------------------------------------------------------------------------COMMENT
Hyper-Verbose Identifiers31 hits · 36 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_emoji_detection.py6 def test_link_text_with_emoji(self):CODE
LOW⚡tests/test_emoji_detection.py10 def test_no_emoji_in_link_text(self):CODE
LOW⚡tests/test_emoji_detection.py14 def test_emoji_in_bracketed_description(self):CODE
LOW⚡tests/test_emoji_detection.py18 def test_emoji_in_parenthesized_description(self):CODE
LOW⚡tests/test_emoji_detection.py22 def test_zwj_sequence_detection(self):CODE
LOW⚡tests/test_emoji_detection.py28 def test_url_with_emoji_but_not_text(self):CODE
LOWtests/test_url_format.py20 def test_nested_markdown_link(self):CODE
LOWtests/test_url_format.py42 def test_detects_missing_slashes(self):CODE
LOWtests/test_url_format.py47 def test_detects_nested_markdown_link(self):CODE
LOWtests/test_url_format.py60 def test_ignores_non_entry_lines(self):CODE
LOWtests/test_url_format.py64 def test_readme_has_no_malformed_urls(self):CODE
LOWtests/test_main_e2e.py8 def test_main_trims_and_writes_backup(self):CODE
LOWtests/test_fullstack_variants.py8 def test_bracket_variants_normalized(self):CODE
LOW⚡tests/test_remove_emoji.py6 def test_remove_from_link_text(self):CODE
LOW⚡tests/test_remove_emoji.py13 def test_remove_from_bracket_desc(self):CODE
LOW⚡tests/test_remove_emoji.py20 def test_remove_from_paren_desc(self):CODE
LOWtests/test_feed_json.py16def test_extract_portfolio_data():CODE
LOWtests/test_alphabetical.py6 def test_trim_and_remove_duplicate(self):CODE
LOWtests/test_alphabetical.py36 def test_non_markdown_ignored(self):CODE
LOWtests/test_alphabetical.py48 def test_multiple_adjacent_duplicates(self):CODE
LOWtests/test_alphabetical.py59 def test_remove_leading_single_letter_token(self):CODE
LOWtests/test_alphabetical.py70 def test_strip_aaa_prefix_token(self):CODE
LOWtests/test_alphabetical.py90 def test_validate_section_placement_single_misplaced(self):CODE
LOWtests/test_alphabetical.py118 def test_validate_section_placement_multiple_misplaced(self):CODE
LOWtests/test_alphabetical.py135 def test_validate_section_placement_accented_characters(self):CODE
LOWtests/test_alphabetical.py151 def test_validate_section_placement_no_misplaced(self):CODE
LOWtests/test_alphabetical.py166 def test_validate_section_placement_creates_new_section(self):CODE
LOWsrc/alphabetical.py90def validate_section_placement(lines):CODE
LOWsrc/alphabetical.py225def sort_lists_alphabetically(lines):CODE
LOWsrc/alphabetical.py507def remove_exact_duplicate_links(lines):CODE
LOWsrc/check_parking_redirects.py202def parse_lychee_flagged_urls(lychee_path: str) -> set:CODE
Excessive Try-Catch Wrapping18 hits · 25 pts
SeverityFileLineSnippetContext
LOWtests/test_feed_json.py99 except Exception as e:CODE
LOWtests/test_feed_json.py109 except Exception as e:CODE
MEDIUM⚡src/generate_feed.py67 print(f"Error: {readme_path} not found.")CODE
LOW⚡src/generate_feed.py69 except Exception as e:CODE
MEDIUM⚡src/generate_feed.py70 print(f"Error creating feed.json: {e}")CODE
LOWsrc/alphabetical.py157 except Exception:CODE
LOWsrc/alphabetical.py279 except Exception:CODE
LOWsrc/alphabetical.py661 except Exception as e:CODE
MEDIUMsrc/alphabetical.py662 print(f"Error creating feed.json: {e}")CODE
LOWsrc/alphabetical.py675 except Exception:CODE
LOW⚡src/check_parking_redirects.py181 except Exception:CODE
LOWsrc/check_parking_redirects.py84 except Exception:CODE
LOWsrc/check_parking_redirects.py159 except Exception as e:CODE
LOWsrc/check_parking_redirects.py240 except Exception as e:CODE
LOWsrc/run_tests.py24 except Exception as e:CODE
MEDIUMsrc/run_tests.py25 print(f"Error discovering tests in {args.dir}: {e}")CODE
LOWsrc/remove_emoji_in_readme.py20except Exception:CODE
LOWsrc/remove_emoji_in_readme.py23 except Exception:CODE
Empty Error Handlers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHsrc/alphabetical.py675except Exception:CODE
HIGHsrc/check_parking_redirects.py181except Exception:CODE
Deep Nesting5 hits · 4 pts
SeverityFileLineSnippetContext
LOWsrc/alphabetical.py90CODE
LOWsrc/alphabetical.py225CODE
LOWsrc/alphabetical.py507CODE
LOWsrc/check_parking_redirects.py219CODE
LOWsrc/run_dup_report.py13CODE
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMsrc/alphabetical.py12 # Use a robust split that treats common whitespace (including NBSP) as separatorsCOMMENT
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWsrc/alphabetical.py42 # Check if the word has uppercase letters after the first character (e.g. DevOps, GenAI)COMMENT
LOWsrc/alphabetical.py165 # Check if in correct sectionCOMMENT
Modern AI Meta-Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md1180- [Marco Bellingeri](https://marcobellingeri.dev) [Cloud Platform & AI Security Engineer | RAG & agentic AI | OWASP LLM CODE
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWfeed.json4134 "name": "John Doe",CODE