AI Slop Code RIsk Monitor

zubair-trabzada/geo-seo-claude

GEO-first SEO skill for Claude Code. Comprehensive AI search optimization for any website — citability scoring, AI crawler analysis, brand authority, schema markup, platform-specific optimization, and PDF reports. If you want learn how to sell this to real businesses, check out the skool community

20.7 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for zubair-trabzada/geo-seo-claude, a Python project with 10,996 GitHub stars. SynthScan examined 14,597 lines of code across 67 source files, recording 178 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 20.7 (Elevated 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.

20.7
Adjusted Signal
20.7
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
11.0K
Stars
Python
Language
14.6K
Lines of Code
67
Files
178
Pattern Hits
2026-10-12
Scan Date
0.06
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 48.1/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 6.0/100 · LOW

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

Agent Over-Engineering Ratio 32.5/100 · MEDIUM

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

PR Review Velocity Impact 56.4/100 · HIGH

Which changes need focused human review? 178 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 4MEDIUM 22LOW 152

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

Structural Annotation Overuse95 hits · 153 pts
SeverityFileLineSnippetContext
LOWagents/geo-technical.md17### Step 1: Fetch Page HTML and Response HeadersCOMMENT
LOWagents/geo-technical.md29### Step 2: Robots.txt and XML SitemapCOMMENT
LOWagents/geo-technical.md49### Step 3: Meta Tags AnalysisCOMMENT
LOWagents/geo-technical.md65### Step 4: Security HeadersCOMMENT
LOWagents/geo-technical.md88### Step 5: URL StructureCOMMENT
LOWagents/geo-technical.md108### Step 6: Mobile OptimizationCOMMENT
LOWagents/geo-technical.md123### Step 7: Core Web Vitals AssessmentCOMMENT
LOWagents/geo-technical.md154### Step 8: Server-Side Rendering and JavaScript Dependency (CRITICAL)COMMENT
LOWagents/geo-technical.md182### Step 9: Additional Technical ChecksCOMMENT
LOWagents/geo-technical.md190### Step 10: Agent-Readiness Signals (non-scoring)COMMENT
LOWagents/geo-technical.md209### Step 11: Calculate Technical ScoreCOMMENT
LOWagents/geo-platform-analysis.md16### Step 1: Google AI Overviews (AIO) ReadinessCOMMENT
LOWagents/geo-platform-analysis.md43### Step 2: ChatGPT Web Search OptimizationCOMMENT
LOWagents/geo-platform-analysis.md70### Step 3: Perplexity AI OptimizationCOMMENT
LOWagents/geo-platform-analysis.md100### Step 4: Google Gemini OptimizationCOMMENT
LOWagents/geo-platform-analysis.md128### Step 5: Bing Copilot OptimizationCOMMENT
LOWagents/geo-platform-analysis.md161### Step 6: Cross-Platform ComparisonCOMMENT
LOWagents/geo-platform-analysis.md171### Step 7: Platform-Specific Action ItemsCOMMENT
LOWagents/geo-schema.md23### Step 1: Detect Existing Structured DataCOMMENT
LOWagents/geo-schema.md48### Step 2: Parse and Validate Detected SchemasCOMMENT
LOWagents/geo-schema.md74### Step 3: Check Google Rich Result EligibilityCOMMENT
LOWagents/geo-schema.md101### Step 4: Evaluate Critical GEO SchemasCOMMENT
LOWagents/geo-schema.md191### Step 5: Flag Deprecated and Restricted SchemasCOMMENT
LOWagents/geo-schema.md207### Step 6: Note JavaScript-Injected Schema WarningCOMMENT
LOWagents/geo-schema.md219### Step 7: Generate Recommended JSON-LD TemplatesCOMMENT
LOWagents/geo-schema.md240### Step 8: Score Schema CompletenessCOMMENT
LOWagents/geo-ai-visibility.md17### Step 1: Fetch and Extract Target ContentCOMMENT
LOWagents/geo-ai-visibility.md24### Step 2: Citability AnalysisCOMMENT
LOWagents/geo-ai-visibility.md44### Step 3: AI Crawler Access CheckCOMMENT
LOWagents/geo-ai-visibility.md83### Step 4: llms.txt AnalysisCOMMENT
LOWagents/geo-ai-visibility.md109### Step 5: Brand Mention ScanningCOMMENT
LOWagents/geo-ai-visibility.md145### Step 6: Compile AI Visibility Report SectionCOMMENT
LOWagents/geo-ai-visibility.md149### Step 7: Calculate AI Visibility ScoreCOMMENT
LOWagents/geo-content.md17### Step 1: Extract and Analyze Page ContentCOMMENT
LOWagents/geo-content.md32### Step 2: Experience EvaluationCOMMENT
LOWagents/geo-content.md56### Step 3: Expertise EvaluationCOMMENT
LOWagents/geo-content.md81### Step 4: Authoritativeness EvaluationCOMMENT
LOWagents/geo-content.md105### Step 5: Trustworthiness EvaluationCOMMENT
LOWagents/geo-content.md132### Step 6: Content MetricsCOMMENT
LOWagents/geo-content.md172### Step 7: AI Content IndicatorsCOMMENT
LOW⚡agents/geo-content.md195### Step 8: Topical Authority AssessmentCOMMENT
LOW⚡agents/geo-content.md205### Step 9: Content FreshnessCOMMENT
LOW⚡agents/geo-content.md214### Step 10: Calculate Content ScoreCOMMENT
LOWskills/geo-crawlers/SKILL.md220### Step 1: Fetch and Parse robots.txtCOMMENT
LOW⚡skills/geo-crawlers/SKILL.md231### Step 2: Check Meta Robots TagsCOMMENT
LOW⚡skills/geo-crawlers/SKILL.md241### Step 3: Check HTTP HeadersCOMMENT
LOW⚡skills/geo-crawlers/SKILL.md250### Step 4: Check for AI-Specific FilesCOMMENT
LOW⚡skills/geo-crawlers/SKILL.md257### Step 5: Assess JavaScript Rendering RequirementsCOMMENT
LOWskills/geo-crawlers/SKILL.md268### Step 6: Parse Content SignalsCOMMENT
LOWskills/geo-crawlers/SKILL.md283### Step 7: Detect Cloudflare Managed robots.txtCOMMENT
LOWskills/geo-update/SKILL.md20### Step 1: Determine Installed LocationCOMMENT
LOWskills/geo-update/SKILL.md35### Step 2: Clone Latest from UpstreamCOMMENT
LOWskills/geo-update/SKILL.md44### Step 3: Compare Installed vs LatestCOMMENT
LOWskills/geo-update/SKILL.md55### Step 4: Apply UpdatesCOMMENT
LOW⚡skills/geo-update/SKILL.md97### Step 5: Update Python DependenciesCOMMENT
LOW⚡skills/geo-update/SKILL.md107### Step 6: Clean UpCOMMENT
LOW⚡skills/geo-update/SKILL.md113### Step 7: Report ResultsCOMMENT
LOWskills/geo-llmstxt/SKILL.md161### Step 1: Fetch the FileCOMMENT
LOWskills/geo-llmstxt/SKILL.md171### Step 2: Validate FormatCOMMENT
LOWskills/geo-llmstxt/SKILL.md189### Step 3: Assess Content QualityCOMMENT
35 more matches not shown…
Decorative Section Separators19 hits · 60 pts
SeverityFileLineSnippetContext
MEDIUMinstall-win.sh4# ============================================================COMMENT
MEDIUMinstall-win.sh7# ============================================================COMMENT
MEDIUMuninstall.sh4# ============================================================COMMENT
MEDIUMuninstall.sh6# ============================================================COMMENT
MEDIUMinstall.sh4# ============================================================COMMENT
MEDIUMinstall.sh8# ============================================================COMMENT
MEDIUMtests/test_fetch_page_ssr.py36# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_fetch_page_ssr.py38# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_fetch_page_ssr.py149# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_fetch_page_ssr.py151# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/crm_dashboard.py37# ── Paths ─────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/crm_dashboard.py44# ── Color helpers ──────────────────────────────────────────────────────COMMENT
MEDIUMscripts/crm_dashboard.py82# ── Load CRM ───────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/crm_dashboard.py91# ── Views ──────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/crm_dashboard.py296# ── Main ───────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/webapp/app.py29# ── Helpers ────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/webapp/app.py82# ── Template filters ────────────────────────────────────────────────────COMMENT
MEDIUMscripts/webapp/app.py102# ── Routes ─────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/webapp/app.py211# ── Run ─────────────────────────────────────────────────────────────────COMMENT
Hyper-Verbose Identifiers17 hits · 23 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_fetch_page_ssr.py156 def test_plain_html_has_ssr_content_true(self):CODE
LOW⚡tests/test_fetch_page_ssr.py160 def test_plain_html_has_no_csr_error(self):CODE
LOW⚡tests/test_fetch_page_ssr.py173 def test_wordpress_bricks_not_flagged(self):CODE
LOW⚡tests/test_fetch_page_ssr.py179 def test_wordpress_bricks_no_csr_error(self):CODE
LOW⚡tests/test_fetch_page_ssr.py186 def test_litespeed_cache_not_flagged(self):CODE
LOW⚡tests/test_fetch_page_ssr.py192 def test_litespeed_cache_no_csr_error(self):CODE
LOW⚡tests/test_fetch_page_ssr.py197 def test_prerender_service_not_flagged(self):CODE
LOW⚡tests/test_fetch_page_ssr.py203 def test_prerender_service_no_csr_error(self):CODE
LOW⚡tests/test_fetch_page_ssr.py215 def test_empty_app_div_flagged(self):CODE
LOW⚡tests/test_fetch_page_ssr.py221 def test_empty_app_div_has_error(self):CODE
LOW⚡tests/test_fetch_page_ssr.py226 def test_loading_root_div_flagged(self):CODE
LOW⚡tests/test_fetch_page_ssr.py232 def test_loading_root_div_has_error(self):CODE
LOW⚡tests/test_fetch_page_ssr.py241 def test_csr_error_includes_word_count(self):CODE
LOWtests/test_fetch_page_ssr.py256 def test_root_with_nested_scripts_and_rich_text_not_flagged(self):CODE
LOW⚡tests/test_fetch_robots_cloudflare.py53 def test_detects_cloudflare_managed_block(self):STRING
LOW⚡tests/test_fetch_robots_cloudflare.py59 def test_plain_robots_is_not_flagged(self):STRING
LOW⚡tests/test_fetch_robots_cloudflare.py63 def test_missing_robots_is_not_flagged(self):STRING
Empty Error Handlers4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHscripts/llmstxt_generator.py124except Exception:CODE
HIGHscripts/brand_scanner.py131except Exception:CODE
HIGHscripts/brand_scanner.py145except Exception:CODE
HIGHscripts/fetch_page.py452except Exception:CODE
Excessive Try-Catch Wrapping12 hits · 12 pts
SeverityFileLineSnippetContext
LOWscripts/llmstxt_generator.py116 except Exception as e:CODE
LOWscripts/llmstxt_generator.py124 except Exception:CODE
LOWscripts/llmstxt_generator.py146 except Exception as e:CODE
LOWscripts/llmstxt_generator.py260 except Exception:CODE
LOWscripts/brand_scanner.py131 except Exception:CODE
LOWscripts/brand_scanner.py145 except Exception:CODE
LOWscripts/citability_scorer.py258 except Exception as e:CODE
LOWscripts/fetch_page.py204 except Exception as e:CODE
LOWscripts/fetch_page.py319 except Exception as e:CODE
LOWscripts/fetch_page.py345 except Exception as e:CODE
LOWscripts/fetch_page.py452 except Exception:CODE
LOWscripts/fetch_page.py468 except Exception:CODE
Unused Imports12 hits · 12 pts
SeverityFileLineSnippetContext
LOWscripts/brand_scanner.py18CODE
LOWscripts/brand_scanner.py23CODE
LOWscripts/crm_dashboard.py14CODE
LOWscripts/crm_dashboard.py26CODE
LOWscripts/crm_dashboard.py29CODE
LOWscripts/crm_dashboard.py29CODE
LOWscripts/crm_dashboard.py29CODE
LOWscripts/crm_dashboard.py30CODE
LOWscripts/crm_dashboard.py31CODE
LOWscripts/webapp/app.py15CODE
LOWscripts/webapp/app.py15CODE
LOWscripts/webapp/app.py15CODE
Deep Nesting8 hits · 8 pts
SeverityFileLineSnippetContext
LOWscripts/llmstxt_generator.py30CODE
LOWscripts/llmstxt_generator.py130CODE
LOWscripts/brand_scanner.py104CODE
LOWscripts/citability_scorer.py26CODE
LOWscripts/citability_scorer.py247CODE
LOWscripts/fetch_page.py36CODE
LOWscripts/fetch_page.py210CODE
LOWscripts/fetch_page.py414CODE
Fake / Example Data6 hits · 6 pts
SeverityFileLineSnippetContext
LOWtests/test_fetch_page_ssr.py52 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed doCODE
LOWtests/test_fetch_page_ssr.py52 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed doCODE
LOWagents/geo-schema.md366- Generated templates should use realistic placeholder patterns like `[REPLACE: Your company name]` rather than lorem ipCODE
LOWdocs/commands-reference.md516/geo proposal example.com --tier standard --client-name "Acme Corp"CODE
LOWscripts/brand_scanner.py269 print("Example: python brand_scanner.py 'Acme Corp' acmecorp.com")CODE
LOWskills/geo-schema/SKILL.md284 "streetAddress": "123 Main St",CODE
Modern AI Meta-Vocabulary2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md120│ ├── geo-audit/ # Full audit orchestration & scoringCODE
MEDIUMdocs/architecture.md10│ ├── geo-audit/ # Full audit orchestration & scoringCODE
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/brand_scanner.py126 # Check if top result is about the brandCOMMENT
LOWscripts/citability_scorer.py55 # Check if answer appears early (first 60 words)COMMENT
AI Slop Vocabulary1 hit · 1 pts
SeverityFileLineSnippetContext
MEDIUMscripts/brand_scanner.py234 """Generate a comprehensive brand mention report."""STRING