AI Slop Code RIsk Monitor

inferjay/AndroidDevTools

收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。

16.1 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for inferjay/AndroidDevTools, a Python project with 8,060 GitHub stars. SynthScan examined 3,382 lines of code across 6 source files, recording 43 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 16.1 (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.

16.1
Adjusted Signal
16.1
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
8.1K
Stars
Python
Language
3.4K
Lines of Code
6
Files
43
Pattern Hits
2026-10-12
Scan Date
0.17
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 49.3/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 5.0/100 · LOW

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

Agent Over-Engineering Ratio 52.2/100 · HIGH

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

PR Review Velocity Impact 50.8/100 · HIGH

Which changes need focused human review? 43 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

Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.

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

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 0LOW 42

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 43 distinct pattern matches across 4 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 Identifiers37 hits · 45 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_auto_merge_android_download_pr.py80 def test_merges_verified_bot_pr_after_cloudflare_success(self) -> None:CODE
LOW⚡tests/test_auto_merge_android_download_pr.py85 def test_merges_when_no_review_is_required(self) -> None:CODE
LOW⚡tests/test_auto_merge_android_download_pr.py89 def test_rejects_pr_from_other_author(self) -> None:CODE
LOW⚡tests/test_auto_merge_android_download_pr.py95 def test_rejects_unexpected_file(self) -> None:CODE
LOW⚡tests/test_auto_merge_android_download_pr.py101 def test_waits_for_check_on_exact_head_commit(self) -> None:CODE
LOW⚡tests/test_auto_merge_android_download_pr.py109 def test_failed_check_blocks_merge(self) -> None:CODE
LOW⚡tests/test_auto_merge_android_download_pr.py115 def test_missing_cloudflare_check_times_out(self) -> None:CODE
LOW⚡tests/test_auto_merge_android_download_pr.py120 def test_head_change_after_check_blocks_merge(self) -> None:CODE
LOW⚡tests/test_auto_merge_android_download_pr.py126 def test_base_branch_change_after_check_blocks_merge(self) -> None:CODE
LOW⚡tests/test_auto_merge_android_download_pr.py130 def test_required_review_blocks_merge(self) -> None:CODE
LOW⚡tests/test_update_android_downloads.py63 def test_studio_fixture_parses_expected_count_and_latest_release(self) -> None:CODE
LOW⚡tests/test_update_android_downloads.py72 def test_emulator_fixture_deduplicates_exact_official_duplicate(self) -> None:CODE
LOW⚡tests/test_update_android_downloads.py80 def test_repository_xml_cross_validation_matches_stable_and_beta(self) -> None:CODE
LOW⚡tests/test_update_android_downloads.py205 def test_old_matched_release_has_no_staleness_warning(self) -> None:CODE
LOW⚡tests/test_update_android_downloads.py213 def test_fresh_archive_rollover_clears_warning(self) -> None:CODE
LOW⚡tests/test_update_android_downloads.py223 def test_repository_older_beta_rollout_still_fails_closed(self) -> None:CODE
LOW⚡tests/test_update_android_downloads.py291 def test_stable_download_mismatches_still_fail_before_supersession(self) -> None:CODE
LOW⚡tests/test_update_android_downloads.py301 def test_incomplete_beta_entry_is_not_treated_as_absent(self) -> None:CODE
LOW⚡tests/test_update_android_downloads.py310 def test_superseded_beta_keeps_archive_download_validation(self) -> None:CODE
LOWtests/test_update_android_downloads.py93 def test_emulator_numeric_order_preserves_official_dates_and_downloads(self) -> None:CODE
LOWtests/test_update_android_downloads.py102 def test_emulator_transition_checks_numeric_maximum_per_channel(self) -> None:CODE
LOWtests/test_update_android_downloads.py123 def test_nonmonotonic_emulator_update_is_idempotent_and_rollback_writes_nothing(self) -> None:CODE
LOWtests/test_update_android_downloads.py156 def test_repository_newer_beta_rollout_is_reported_without_failing(self) -> None:CODE
LOWtests/test_update_android_downloads.py188 def test_repository_newer_staleness_boundary_and_future_date(self) -> None:CODE
LOWtests/test_update_android_downloads.py236 def test_absent_beta_is_reported_as_superseded_by_matched_stable(self) -> None:CODE
LOWtests/test_update_android_downloads.py252 def test_supersession_requires_independently_matched_newer_stable(self) -> None:CODE
LOWtests/test_update_android_downloads.py267 def test_existing_older_beta_package_does_not_use_stable_fallback(self) -> None:CODE
LOWtests/test_update_android_downloads.py275 def test_exact_beta_match_and_mismatches_take_priority_over_supersession(self) -> None:CODE
LOWtests/test_update_android_downloads.py323 def test_download_validation_rejects_untrusted_host(self) -> None:CODE
LOWtests/test_update_android_downloads.py336 def test_download_validation_rejects_missing_checksum(self) -> None:CODE
LOWtests/test_update_android_downloads.py349 def test_rendering_uses_stable_id_and_escapes_markup(self) -> None:CODE
LOWtests/test_update_android_downloads.py374 def test_marker_replacement_preserves_surrounding_page(self) -> None:CODE
LOWtests/test_update_android_downloads.py384 def test_bootstrap_then_write_is_idempotent(self) -> None:CODE
LOWscripts/update_android_downloads.py469def _replace_all_downloads_container(page: str, marker_name: str, body: str) -> str:CODE
LOWscripts/update_android_downloads.py546def parse_repository_emulator(xml_text: str) -> list[dict[str, object]]:CODE
LOWscripts/update_android_downloads.py586def _version_from_emulator_name(name: str) -> str:CODE
LOWscripts/update_android_downloads.py597def validate_emulator_repository(CODE
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHscripts/update_android_downloads.py113except ValueError:CODE
Unused Imports4 hits · 4 pts
SeverityFileLineSnippetContext
LOWtests/test_auto_merge_android_download_pr.py3CODE
LOWtests/test_update_android_downloads.py4CODE
LOWscripts/update_android_downloads.py11CODE
LOWscripts/auto_merge_android_download_pr.py4CODE
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/update_android_downloads.py597CODE