Repository Analysis

guillaumemeyer/watermarks-remover

A privacy-first app that strips AI watermarks from content you own.

40.2 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of guillaumemeyer/watermarks-remover, a Python project with 19,171 GitHub stars. SynthScan v2.0 examined 39,305 lines of code across 177 source files, recording 1052 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 40.2 places this repository in the Strong AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

40.2
Adjusted Score
40.2
Raw Score
100%
Time Factor
2026-08-29
Last Push
19.2K
Stars
Python
Language
39.3K
Lines of Code
177
Files
1.1K
Pattern Hits
2026-08-29
Scan Date
0.25
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 45MEDIUM 129LOW 878

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1052 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers656 hits · 666 pts
SeverityFileLineSnippetContext
LOWtests/test_install_skill.py42def test_shipped_skills_satisfy_the_upload_spec(skill):CODE
LOWtests/test_install_skill.py82def test_validate_accepts_a_delimiter_line_with_trailing_whitespace(tmp_path):CODE
LOWtests/test_install_skill.py92def test_validate_rejects_name_directory_mismatch(tmp_path):CODE
LOWtests/test_install_skill.py99def test_validate_rejects_oversized_description(tmp_path):CODE
LOWtests/test_install_skill.py109def test_folded_description_is_joined_into_one_line():CODE
LOWtests/test_install_skill.py123def test_claude_code_target_installs_into_claude_home(tmp_path, skill):CODE
LOWtests/test_install_skill.py129def test_claude_code_target_honours_claude_config_dir(tmp_path):CODE
LOWtests/test_install_skill.py203def test_cowork_bundle_has_one_top_level_directory_named_after_the_skill(tmp_path, skill):CODE
LOWtests/test_install_skill.py269def test_list_reports_every_shipped_skill(tmp_path):CODE
LOWtests/test_install_skill.py275def test_unknown_skill_fails_without_touching_the_filesystem(tmp_path):CODE
LOWtests/test_install_skill.py58def test_validate_rejects_non_spec_frontmatter_key(tmp_path):CODE
LOWtests/test_install_skill.py69def test_validate_rejects_a_malformed_opening_delimiter(tmp_path, opening):CODE
LOWtests/test_install_skill.py144def test_claude_code_target_preserves_existing_install_without_force(tmp_path):CODE
LOWtests/test_install_skill.py155def test_claude_code_force_backs_up_and_replaces(tmp_path):CODE
LOWtests/test_install_skill.py168def test_claude_project_target_installs_into_project_directory(tmp_path):CODE
LOWtests/test_install_skill.py184def test_link_installs_a_symlink_to_the_repository_skill(tmp_path):CODE
LOWtests/test_install_skill.py215def test_cowork_bundle_default_path_is_dist(tmp_path):CODE
LOWtests/test_install_skill.py227def test_cowork_bundle_is_reproducible(tmp_path):CODE
LOWtests/test_install_skill.py237def test_cowork_bundle_refuses_to_overwrite_without_force(tmp_path):CODE
LOWtests/test_install_skill.py249def test_cowork_bundle_scripts_stay_executable(tmp_path):CODE
LOWtests/test_website_format_routing.py35def test_webp_classified_by_content_type_suffix_and_magic():CODE
LOWtests/test_website_format_routing.py48def test_extended_suffix_table():CODE
LOWtests/test_website_format_routing.py65def test_webp_marker_reaches_image_scanner_not_text():CODE
LOWtests/test_website_format_routing.py77def test_html_still_text_friendly():CODE
LOWtests/test_c2patool_report.py49def test_no_claim_found_is_not_a_manifest(monkeypatch, tmp_path):CODE
LOWtests/test_c2patool_report.py66def test_no_jumbf_data_is_not_a_manifest(monkeypatch, tmp_path):CODE
LOWtests/test_c2patool_report.py76def test_real_manifest_is_detected(monkeypatch, tmp_path):CODE
LOWtests/test_c2patool_report.py122def test_unrecognised_error_is_inconclusive(monkeypatch, tmp_path):CODE
LOWtests/test_c2patool_report.py134def test_conclusive_runs_are_marked_ok(monkeypatch, tmp_path):CODE
LOWtests/test_c2patool_report.py150def test_timeout_is_inconclusive(monkeypatch, tmp_path):CODE
LOWtests/test_c2patool_report.py170def test_inconclusive_probe_is_surfaced_in_the_report(monkeypatch, tmp_path):CODE
LOWtests/test_c2patool_report.py192def test_capabilities_rejects_a_present_but_unrunnable_tool(monkeypatch):CODE
LOWtests/test_http_server.py153def test_openapi_spec_reflects_auth(conn, monkeypatch):CODE
LOWtests/test_http_server.py163def test_inspect_text_finds_watermark(conn):CODE
LOWtests/test_http_server.py172def test_clean_text_roundtrip(conn):CODE
LOWtests/test_http_server.py182def test_clean_png_strips_metadata(conn):CODE
LOWtests/test_http_server.py308def test_binary_named_as_text_rejected(conn):CODE
LOWtests/test_http_server.py313def test_clean_unknown_format_rejected(conn):CODE
LOWtests/test_http_server.py320def test_inspect_unknown_format_reports_kind(conn):CODE
LOWtests/test_http_server.py329def test_missing_file_field_rejected(conn):CODE
LOWtests/test_http_server.py334def test_safe_name_sanitizes_traversal():CODE
LOWtests/test_http_server.py344def test_traversal_name_does_not_escape(conn, tmp_path):CODE
LOWtests/test_http_server.py449def test_batch_empty_files_rejected(conn):CODE
LOWtests/test_http_server.py455def test_batch_missing_files_field_rejected(conn):CODE
LOWtests/test_http_server.py461def test_batch_over_limit_rejected(conn, monkeypatch):CODE
LOWtests/test_http_server.py122def test_openapi_spec_covers_all_endpoints(conn):CODE
LOWtests/test_http_server.py141def test_openapi_spec_describes_request_bodies(conn):CODE
LOWtests/test_http_server.py193def test_clean_markdown_container(conn):CODE
LOWtests/test_http_server.py203def test_clean_av_honors_remove_pixel(conn, monkeypatch):CODE
LOWtests/test_http_server.py223def test_clean_av_honors_remove_audio_watermark(conn):CODE
LOWtests/test_http_server.py237def test_clean_av_rejects_invalid_remove_pixel(conn):CODE
LOWtests/test_http_server.py248def test_unknown_option_rejected(conn):CODE
LOWtests/test_http_server.py256def test_unknown_deep_images_mode_rejected(conn):CODE
LOWtests/test_http_server.py267def test_known_deep_images_modes_accepted(conn):CODE
LOWtests/test_http_server.py295def test_option_wrong_type_rejected(conn, key, value, type_name):CODE
LOWtests/test_http_server.py378def test_openapi_spec_covers_batch_endpoints(conn):CODE
LOWtests/test_http_server.py387def test_inspect_batch_mixed_results(conn):CODE
LOWtests/test_http_server.py409def test_clean_batch_mixed_results(conn):CODE
LOWtests/test_http_server.py431def test_batch_one_bad_option_does_not_abort_others(conn):CODE
LOWtests/test_http_server.py472def test_clean_jpeg_preserves_format_extension(conn):CODE
596 more matches not shown…
Decorative Section Separators116 hits · 410 pts
SeverityFileLineSnippetContext
MEDIUMinstall_skill.py62# --------------------------------------------------------------------------COMMENT
MEDIUMinstall_skill.py64# --------------------------------------------------------------------------COMMENT
MEDIUMinstall_skill.py190# --------------------------------------------------------------------------COMMENT
MEDIUMinstall_skill.py192# --------------------------------------------------------------------------COMMENT
MEDIUMinstall_skill.py264# --------------------------------------------------------------------------COMMENT
MEDIUMinstall_skill.py266# --------------------------------------------------------------------------COMMENT
MEDIUMinstall_skill.py303# --------------------------------------------------------------------------COMMENT
MEDIUMinstall_skill.py305# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_install_skill.py36# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_install_skill.py38# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_install_skill.py117# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_install_skill.py119# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_install_skill.py197# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_install_skill.py199# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_install_skill.py264# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_install_skill.py266# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_av_meta.py343# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_av_meta.py345# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_av_meta.py619# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_av_meta.py621# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_av_meta.py697# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_av_meta.py699# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_av_meta.py20# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_av_meta.py22# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_av_meta.py128# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_av_meta.py130# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clean_video.py55# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clean_video.py57# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clean_video.py133# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clean_video.py135# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clean_audio.py49# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clean_audio.py51# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clean_audio.py69# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clean_audio.py71# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clean_audio.py116# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clean_audio.py118# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py140# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py142# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py290# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py292# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py357# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py359# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py719# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py721# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py844# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py846# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py566# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_bench_synthid_text.py595# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_precommit_hooks.py280# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_precommit_hooks.py284# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_rewrite_text.py142# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_rewrite_text.py144# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_rewrite_text.py467# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_rewrite_text.py469# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_rewrite_text.py646# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_rewrite_text.py648# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_hook_written_file.py70# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_hook_written_file.py72# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_hook_written_file.py110# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_hook_written_file.py112# --------------------------------------------------------------------------COMMENT
56 more matches not shown…
Synthetic Comment Markers40 hits · 240 pts
SeverityFileLineSnippetContext
HIGHtests/test_av_meta.py349 data = _mp4_with_xmp(b"Generated by AI toolchain")CODE
HIGHtests/test_av_meta.py361 assert b"Generated by AI" not in dest.read_bytes()CODE
HIGHtests/test_av_meta.py366 data = _mp4_with_xmp(b"Generated by AI toolchain")CODE
HIGHtests/test_av_meta.py375 assert b"Generated by AI" not in cleanedCODE
HIGHtests/test_av_meta.py379 xmp = _extended_isobmff_box(b"uuid", XMP_UUID_HEX + b"Generated by AI")CODE
HIGHtests/test_av_meta.py402 data2 = _mp4_with_udta_tag(b"Generated by AI")CODE
HIGHtests/test_av_meta.py411 assert b"Generated by AI" not in dest.read_bytes()CODE
HIGHtests/test_av_meta.py416 data = _mp4_with_udta_tag(b"Generated by AI")CODE
HIGHtests/test_av_meta.py425 assert b"Generated by AI" not in cleanedCODE
HIGHtests/test_av_meta.py625 data = _wav(_wav_fmt_chunk(), _wav_list_info(b"Generated by AI"), _wav_data_chunk(8))CODE
HIGHtests/test_av_meta.py705 _id3v2_frame(b"TSSE", b"\x00Generated by AI"),CODE
HIGHtests/test_av_meta.py719 _id3v2_frame(b"TSSE", b"\x00Generated by AI"),CODE
HIGHtests/test_av_meta.py727 assert b"Generated by AI" not in cleanedCODE
HIGHtests/test_av_meta.py736 _id3v2_frame(b"TSSE", b"\x00Generated by AI"),CODE
HIGHtests/test_av_meta.py744 assert b"Generated by AI" not in cleaned # flagged frame is goneCODE
HIGHtests/test_av_meta.py751 _id3v2_frame(b"TSSE", b"\x00Generated by AI", major=4),CODE
HIGHtests/test_av_meta.py272 data = _flac(_id3v2_frame(b"COMM", b"\x00Generated by AI"))CODE
HIGHtests/test_av_meta.py390 assert b"Generated by AI" not in cleanedCODE
HIGHtests/test_av_meta.py441 moov = _moov_with_udta(b" toolGenerated by OpenAI Sora")CODE
HIGHtests/test_av_meta.py455 assert b"Generated by OpenAI Sora" not in cleanedCODE
HIGHtests/test_av_meta.py462 moov = _moov_with_udta(b" toolGenerated by OpenAI Sora" + b"\x00" * 32)CODE
HIGHtests/test_av_meta.py637 assert b"Generated by AI" not in cleanedCODE
HIGHtests/test_av_meta.py665 data = _wav(_wav_fmt_chunk(), _wav_list_info(b"Generated by AI"), _riff_chunk(b"data", audio))CODE
HIGHtests/test_av_meta.py763 assert b"Generated by AI" not in cleanedCODE
HIGHtests/test_av_meta.py782 body = b"TT2\x00\x00\x10\x00Generated by AI"CODE
HIGHtests/test_av_meta.py794 assert b"Generated by AI" not in cleanedCODE
HIGHtests/test_clean_image.py159 (b"Generated by AI with OpenAI", False),CODE
HIGHtests/test_container_meta.py442 assert "Generated by AI" not in coreCODE
HIGHtests/test_container_meta.py356 <dc:description>Generated by AI</dc:description>STRING
HIGHtests/test_zip_partial_evidence.py87 zf.writestr("content.opf", "<dc:creator>Generated by OpenAI</dc:creator>")CODE
HIGHtests/test_ai_generator_hints.py111 data = _minimal_png_with_text_chunk(b"tEXt", _text("Comment", "Generated by AI"))CODE
HIGHtests/test_ai_generator_hints.py143 (b"zTXt", b"Comment\x00\x00" + zlib.compress(b"Generated by AI")),CODE
HIGHtests/test_ai_generator_hints.py146 b"Comment\x00\x01\x00\x00\x00" + zlib.compress(b"Generated by AI"),CODE
HIGHtests/test_hook_written_file.py154 udta = box(b"udta", b" toolGenerated by OpenAI Sora" + b"\x00" * 32)CODE
HIGHtests/test_ooxml_xlsx_pptx.py77 <dc:description>Generated by AI</dc:description>CODE
HIGHskills/remove-ai-marks/references/how-claude-marks.md1# How Claude marks AI-generated contentCOMMENT
HIGH…lls/clean-user-facing-text/scripts/score_stylometry.py39# boilerplate commonly overrepresented in AI-generated text across frontier LLMs.COMMENT
HIGHservice/scripts/image_meta.py127 b"Generated by AI",CODE
HIGHservice/scripts/container_meta.py874 # vendor names such as "Claude" without being AI-generated metadata.COMMENT
HIGHservice/scripts/score_stylometry.py39# boilerplate commonly overrepresented in AI-generated text across frontier LLMs.COMMENT
Unused Imports87 hits · 82 pts
SeverityFileLineSnippetContext
LOWinstall_skill.py16CODE
LOWtests/test_install_skill.py3CODE
LOWtests/test_website_format_routing.py8CODE
LOWtests/test_c2patool_report.py3CODE
LOWtests/test_http_server.py3CODE
LOWtests/test_av_meta.py3CODE
LOWtests/test_markllm_detect.py3CODE
LOWtests/test_binary_guard.py3CODE
LOWtests/test_clean_video.py3CODE
LOWtests/test_clean_image.py3CODE
LOWtests/test_text_detectors.py3CODE
LOWtests/test_markllm_schemes.py8CODE
LOWtests/test_backup_preserved.py8CODE
LOWtests/test_container_meta.py3CODE
LOWtests/test_isobmff_truncated_bytescan.py9CODE
LOWtests/test_clean_audio.py3CODE
LOWtests/test_zip_partial_evidence.py8CODE
LOWtests/test_inspect_file.py3CODE
LOWtests/test_bench_synthid_text.py9CODE
LOWtests/test_format_dispatch.py3CODE
LOWtests/test_gumbel_detector.py8CODE
LOWtests/test_avif_heic.py3CODE
LOWtests/test_precommit_hooks.py3CODE
LOWtests/test_audit_sarif_and_concurrency.py3CODE
LOWtests/test_lightweight_skill.py3CODE
LOWtests/test_makefile_targets.py10CODE
LOWtests/test_ai_generator_hints.py10CODE
LOWtests/test_stylometry.py3CODE
LOWtests/test_rewrite_text.py3CODE
LOWtests/test_ctrlregen_clean.py3CODE
LOWtests/test_audit.py3CODE
LOWtests/test_hook_written_file.py8CODE
LOWtests/test_embedded_data_uris.py3CODE
LOWtests/test_detect_endpoint.py4CODE
LOWtests/test_entity_encoded_watermarks.py10CODE
LOWtests/test_clean_file_quiet.py3CODE
LOWtests/test_single_quoted_attributes.py10CODE
LOWtests/test_pdf_deep_images.py9CODE
LOWtests/test_image_formats_bmp_gif_tiff.py3CODE
LOWtests/test_ooxml_xlsx_pptx.py3CODE
LOWtests/test_truncated_tail_preserved.py8CODE
LOWtests/test_json_exit_code.py3CODE
LOWtests/test_synthid_score.py3CODE
LOWtests/test_pdf_structural_rewrite.py11CODE
LOWtests/test_markdiffusion_harness.py3CODE
LOWtests/test_child_console_windows.py15CODE
LOWtests/test_clean_text.py3CODE
LOWtests/test_epub.py3CODE
LOWtests/test_stylometry_empty_sentences.py7CODE
LOWtests/test_security_hardening.py3CODE
LOWtests/test_plugin_manifest.py3CODE
LOWskills/clean-user-facing-text/scripts/clean_text.py4CODE
LOWskills/clean-user-facing-text/scripts/inspect_text.py4CODE
LOW…lls/clean-user-facing-text/scripts/score_stylometry.py14CODE
LOWskills/clean-user-facing-text/scripts/common.py3CODE
LOWskills/clean-user-facing-text/scripts/text_unicode.py3CODE
LOWservice/scripts/clean_video.py17CODE
LOWservice/scripts/clean_file.py4CODE
LOWservice/scripts/markdiffusion_harness.py31CODE
LOWservice/scripts/inspect_image.py4CODE
27 more matches not shown…
Excessive Try-Catch Wrapping63 hits · 62 pts
SeverityFileLineSnippetContext
LOWservice/scripts/clean_video.py176 except Exception as e: # surface any subprocess failureCODE
LOWservice/scripts/clean_video.py214 except Exception: # take the default when ffprobe is missing or oddCODE
LOWservice/scripts/clean_video.py250 except Exception: # probe failures fall back to uniform timingCODE
LOWservice/scripts/clean_file.py165 except Exception as e:CODE
LOWservice/scripts/clean_file.py191 except Exception as e:CODE
LOWservice/scripts/clean_file.py212 except Exception as e:CODE
LOWservice/scripts/markdiffusion_harness.py95 except Exception: # noqa: S110 - optional torch device detectionCODE
LOWservice/scripts/markdiffusion_harness.py178 except Exception: # noqa: S110 - optional numpy importCODE
LOWservice/scripts/markdiffusion_harness.py185 except Exception: # noqa: S110 - optional torch importCODE
LOWservice/scripts/markdiffusion_harness.py189 except Exception:CODE
LOWservice/scripts/markdiffusion_harness.py273 except Exception as e:CODE
LOWservice/scripts/markdiffusion_harness.py341 except Exception as e:CODE
LOWservice/scripts/markdiffusion_harness.py398 except Exception as e:CODE
LOWservice/scripts/clean_image.py159 except Exception as e:CODE
LOWservice/scripts/image_meta.py242 except Exception:CODE
LOWservice/scripts/image_meta.py1446 except Exception as e:CODE
LOWservice/scripts/image_meta.py1482 except Exception as e:CODE
LOWservice/scripts/image_meta.py1596 except Exception as e:CODE
LOWservice/scripts/image_meta.py1701 except Exception as e:CODE
LOWservice/scripts/image_meta.py1778 except Exception as e:CODE
LOWservice/scripts/image_meta.py2192 except Exception as e:CODE
LOWservice/scripts/server.py125 except Exception:CODE
LOWservice/scripts/server.py163 except Exception:CODE
LOWservice/scripts/server.py1029 except Exception as e:CODE
LOWservice/scripts/clean_ctrlregen.py55 except Exception: # noqa: S110 - optional torch device detectionCODE
LOWservice/scripts/clean_ctrlregen.py151 except Exception as e:CODE
LOWservice/scripts/clean_ctrlregen.py174 except Exception as e:CODE
LOWservice/scripts/clean_audio.py149 except Exception: # take the default when ffprobe is missing or oddCODE
LOWservice/scripts/clean_audio.py186 except Exception:CODE
LOWservice/scripts/score_synthid.py102 except Exception as e:CODE
LOWservice/scripts/audit_website.py474 except Exception: # noqa: S112 - try next candidate sitemap on any failureCODE
LOWservice/scripts/audit_website.py497 except Exception: # noqa: S110 - robots.txt is optional; fall through to NoneCODE
LOWservice/scripts/audit_website.py602 except Exception as e:CODE
LOWservice/scripts/audit_website.py614 except Exception as e:CODE
LOWservice/scripts/audit_website.py619 except Exception as e:CODE
LOWservice/scripts/detect_text_watermark.py86 except Exception: # noqa: S110 - optional torch device detectionCODE
LOWservice/scripts/detect_text_watermark.py233 except Exception as e:CODE
LOWservice/scripts/detect_text_watermark.py291 except Exception as e:CODE
LOWservice/scripts/detect_text_watermark.py364 except Exception as e: # a bad request must not kill the workerCODE
LOWservice/scripts/detect_text_watermark.py405 except Exception as e:CODE
LOWservice/scripts/rewrite_text.py228 except Exception as e: # defensive: the detector contract is fail-softCODE
LOWservice/scripts/container_meta.py246 except Exception: # noqa: S112 - malformed data URI; skip to next matchCODE
LOWservice/scripts/container_meta.py297 except Exception:CODE
LOWservice/scripts/container_meta.py320 except Exception:CODE
LOWservice/scripts/container_meta.py685 except Exception as e:CODE
LOWservice/scripts/container_meta.py1226 except Exception: # noqa: S110 - malformed embedded media; keep original partCODE
LOWservice/scripts/container_meta.py1700 except Exception: # noqa: S110 - malformed embedded media; keep originalCODE
LOWservice/scripts/container_meta.py1890 except Exception as e:CODE
LOWservice/scripts/container_meta.py2067 except Exception as e:CODE
LOWservice/scripts/container_meta.py2154 except Exception as e:CODE
LOWservice/scripts/text_detectors.py204 except Exception as e:CODE
LOWservice/scripts/text_detectors.py319 except Exception as e: # fail-soft contract: never raiseCODE
LOWservice/scripts/bench_synthid_text.py492 except Exception as e: # fail-soft: optional dependencyCODE
LOWservice/scripts/bench_synthid_text.py514 except Exception as e:CODE
LOWservice/scripts/bench_synthid_text.py613 except Exception as e:CODE
LOWservice/scripts/bench_synthid_text.py637 except Exception as e:CODE
LOWservice/scripts/bench_synthid_text.py678 except Exception:CODE
LOWservice/scripts/bench_synthid_text.py713 except Exception as e:CODE
LOWservice/scripts/bench_synthid_text.py732 except Exception as e:CODE
LOWservice/scripts/bench_synthid_text.py753 except Exception as e:CODE
3 more matches not shown…
Deep Nesting55 hits · 42 pts
SeverityFileLineSnippetContext
LOWinstall_skill.py85CODE
LOWtests/test_container_meta.py218CODE
LOWtests/test_image_formats_bmp_gif_tiff.py80CODE
LOW…lls/clean-user-facing-text/scripts/score_stylometry.py318CODE
LOWskills/clean-user-facing-text/scripts/text_unicode.py404CODE
LOWservice/scripts/clean_file.py29CODE
LOWservice/scripts/image_meta.py247CODE
LOWservice/scripts/image_meta.py342CODE
LOWservice/scripts/image_meta.py388CODE
LOWservice/scripts/image_meta.py480CODE
LOWservice/scripts/image_meta.py593CODE
LOWservice/scripts/image_meta.py852CODE
LOWservice/scripts/image_meta.py911CODE
LOWservice/scripts/image_meta.py1125CODE
LOWservice/scripts/image_meta.py1210CODE
LOWservice/scripts/image_meta.py1246CODE
LOWservice/scripts/image_meta.py1275CODE
LOWservice/scripts/image_meta.py1791CODE
LOWservice/scripts/image_meta.py1857CODE
LOWservice/scripts/image_meta.py1916CODE
LOWservice/scripts/image_meta.py2041CODE
LOWservice/scripts/image_meta.py2131CODE
LOWservice/scripts/av_meta.py101CODE
LOWservice/scripts/av_meta.py371CODE
LOWservice/scripts/av_meta.py447CODE
LOWservice/scripts/av_meta.py475CODE
LOWservice/scripts/server.py676CODE
LOWservice/scripts/server.py721CODE
LOWservice/scripts/server.py769CODE
LOWservice/scripts/server.py988CODE
LOWservice/scripts/audit_website.py323CODE
LOWservice/scripts/audit_website.py379CODE
LOWservice/scripts/audit_website.py456CODE
LOWservice/scripts/audit_website.py503CODE
LOWservice/scripts/audit_website.py519CODE
LOWservice/scripts/detect_text_watermark.py325CODE
LOWservice/scripts/container_meta.py157CODE
LOWservice/scripts/container_meta.py226CODE
LOWservice/scripts/container_meta.py276CODE
LOWservice/scripts/container_meta.py465CODE
LOWservice/scripts/container_meta.py827CODE
LOWservice/scripts/container_meta.py1184CODE
LOWservice/scripts/container_meta.py1343CODE
LOWservice/scripts/container_meta.py1378CODE
LOWservice/scripts/container_meta.py1514CODE
LOWservice/scripts/container_meta.py1646CODE
LOWservice/scripts/container_meta.py2332CODE
LOWservice/scripts/container_meta.py2439CODE
LOWservice/scripts/container_meta.py281CODE
LOWservice/scripts/score_stylometry.py318CODE
LOWservice/scripts/bench_synthid_text.py872CODE
LOWservice/scripts/bench_synthid_text.py1110CODE
LOWservice/scripts/text_unicode.py404CODE
LOWservice/scripts/audit_lib.py212CODE
LOWservice/scripts/audit_dir.py58CODE
AI Slop Vocabulary10 hits · 32 pts
SeverityFileLineSnippetContext
MEDIUMcompose-check.sh8# harness/heavy -> one-shot CLIs must exit 0 on --helpCOMMENT
MEDIUMcompose.yaml4# docker compose --profile harness up --build -d # + markllm / markdiffusion harnessesCOMMENT
MEDIUMcompose.yaml8# (loopback-only host mapping). The heavy/harness images are one-shot CLIs:COMMENT
MEDIUMskills/clean-user-facing-text/scripts/common.py211 # A replaced or non-binary stdin (pytest capture, custom harness).COMMENT
MEDIUMservice/scripts/setup_markllm.sh5# harness.COMMENT
MEDIUMservice/scripts/text_detectors.py101# MarkLLM (open-source research harness: KGW / SynthID schemes)COMMENT
MEDIUMservice/scripts/common.py211 # A replaced or non-binary stdin (pytest capture, custom harness).COMMENT
MEDIUMservice/scripts/bench_synthid_text.py165 # No RLIMIT_AS here: every child is the MarkLLM harness or rewrite_text.py,COMMENT
MEDIUMservice/scripts/bench_synthid_text.py1201 # A clear by a hair is not a robust removal: require theCOMMENT
MEDIUMservice/scripts/setup_markdiffusion.sh4# Bootstrap the optional MarkDiffusion image-watermark harness backend.COMMENT
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHservice/scripts/markdiffusion_harness.py0resolve the ``auto`` device hint to a concrete torch device.STRING
HIGHservice/scripts/clean_ctrlregen.py0resolve the ``auto`` device hint to a concrete torch device.STRING
HIGHservice/scripts/detect_text_watermark.py0resolve the ``auto`` device hint to a concrete torch device.STRING
Fake / Example Data6 hits · 9 pts
SeverityFileLineSnippetContext
LOWtests/test_image_formats_bmp_gif_tiff.py351 assert b"Acme Corp" not in cleanedCODE
LOWtests/test_image_formats_bmp_gif_tiff.py367 assert b"Acme Corp" not in cleanedCODE
LOWtests/test_image_formats_bmp_gif_tiff.py389 assert b"Acme Corp" in cleanedCODE
LOWtests/test_epub.py122 _build_epub(creator="Jane Doe", generator="", with_c2pa_png=False, with_meta_part=False)CODE
LOWtests/test_epub.py194 epub = _build_epub(creator="Jane Doe", generator="", with_c2pa_png=False, with_meta_part=False)CODE
LOWtests/test_epub.py198 assert "Jane Doe" in opfCODE
Over-Commented Block8 hits · 8 pts
SeverityFileLineSnippetContext
LOWcompose.yaml1# Whole-infra bring-up for watermarks-remover.COMMENT
LOWservice/scripts/requirements-semantic.txt1# Optional dependency for the semantic-divergence metric in the SynthID-textCOMMENT
LOWservice/scripts/requirements-synthid-scorer.txt1# Minimal dependencies for the optional reverse-SynthID pixel scorer.COMMENT
LOWservice/scripts/requirements-markllm.txt1# Minimal dependencies for the optional MarkLLM text-watermark harness.COMMENT
LOWservice/scripts/setup_markllm.sh1#!/usr/bin/env bashCOMMENT
LOWservice/scripts/setup_markdiffusion.sh1#!/usr/bin/env bashCOMMENT
LOWservice/scripts/requirements-ctrlregen.txt1# Dependencies for the optional CtrlRegen pixel-removal backendCOMMENT
LOWservice/scripts/requirements-markdiffusion.txt1# Dependencies for the optional MarkDiffusion image-watermark harnessCOMMENT
Modern AI Meta-Vocabulary2 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_clean_video.py202 # remux orchestration is exercised without a GPU checkout.COMMENT
MEDIUMservice/scripts/bench_synthid_text.py457# Benchmark orchestrationCOMMENT
Cross-Language Confusion2 hits · 5 pts
SeverityFileLineSnippetContext
HIGH…lls/clean-user-facing-text/scripts/score_stylometry.py231 with words): a one-or-zero-sample CV is undefined, and reporting it as 0.0STRING
HIGHservice/scripts/score_stylometry.py231 with words): a one-or-zero-sample CV is undefined, and reporting it as 0.0STRING
AI Structural Patterns3 hits · 2 pts
SeverityFileLineSnippetContext
LOWservice/scripts/clean_video.py285CODE
LOWservice/scripts/image_meta.py2131CODE
LOWservice/scripts/rewrite_text.py459CODE
Modern Structural Boilerplate1 hit · 0 pts
SeverityFileLineSnippetContext
LOWservice/scripts/container_meta.py2246 def _settle(ran: bool) -> None:CODE