AI Slop Code RIsk Monitor

leanprover-community/mathlib4

The math library of Lean 4

11.9 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for leanprover-community/mathlib4, a Lean project with 4,284 GitHub stars. SynthScan examined 32,690 lines of code across 146 source files, recording 252 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 11.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.

11.9
Adjusted Signal
11.9
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
4.3K
Stars
Lean
Language
32.7K
Lines of Code
146
Files
252
Pattern Hits
2026-10-12
Scan Date
0.08
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 28.4/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 1.2/100 · LOW

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

Agent Over-Engineering Ratio 23.8/100 · LOW

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

PR Review Velocity Impact 44.8/100 · MEDIUM

Which changes need focused human review? 252 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 11MEDIUM 41LOW 200

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

Excessive Try-Catch Wrapping57 hits · 62 pts
SeverityFileLineSnippetContext
MEDIUMscripts/downstream-tags.py19 print("Error: GitHub CLI (gh) is not installed or not in PATH", file=sys.stderr)CODE
LOWscripts/downstream-tags.py92 except Exception as e:CODE
MEDIUMscripts/downstream-tags.py93 print(f"Error fetching tags for {repo['name']}: {e}", file=sys.stderr)CODE
LOWscripts/downstream-tags.py127 except Exception as e:CODE
MEDIUMscripts/downstream-tags.py128 print(f"Error checking toolchain history for {repo['name']}: {e}", file=sys.stderr)CODE
LOWscripts/downstream-tags.py149 except Exception:CODE
MEDIUMscripts/verify_version_tags.py135 print("Error: GitHub CLI (gh) is not installed or not in PATH", file=sys.stderr)CODE
MEDIUMscripts/verify_version_tags.py195 print(f"Error fetching tags from GitHub: {stderr}", file=sys.stderr)CODE
MEDIUMscripts/verify_version_tags.py201 print(f"Error parsing GitHub response", file=sys.stderr)CODE
MEDIUM⚡scripts/verify_version_tags.py751 print("Error: Cannot use --all and --since together", file=sys.stderr)STRING
MEDIUM⚡scripts/verify_version_tags.py755 print("Error: Cannot specify a tag with --all", file=sys.stderr)STRING
MEDIUM⚡scripts/verify_version_tags.py759 print("Error: Cannot specify a tag with --since", file=sys.stderr)STRING
MEDIUM⚡scripts/verify_version_tags.py787 print("Error: No version tags found", file=sys.stderr)STRING
MEDIUM⚡scripts/verify_version_tags.py796 print(f"Error: Invalid version tag format for --since: {args.since}",STRING
MEDIUM⚡scripts/verify_version_tags.py803 print("Error: No version tags found", file=sys.stderr)STRING
MEDIUM⚡scripts/verify_version_tags.py808 print(f"Error: No version tags found >= {args.since}", file=sys.stderr)STRING
LOWscripts/verify_version_tags.py184 except Exception as e:CODE
LOWscripts/verify_version_tags.py493 except Exception:CODE
LOWscripts/verify_version_tags.py499 except Exception as e:CODE
MEDIUMscripts/verify_version_tags.py776 print(f"Error: Invalid version tag format: {args.tag}", file=sys.stderr)STRING
MEDIUMscripts/user_activity_report.py64 print("Error: 'gh' command not found. Please install GitHub CLI.", file=sys.stderr)CODE
MEDIUMscripts/user_activity_report.py79 print(f"Error: Invalid repository format '{repo_arg}'. {e}", file=sys.stderr)CODE
MEDIUMscripts/user_activity_report.py108 print(f"Error getting repository info: {e}", file=sys.stderr)CODE
MEDIUMscripts/user_activity_report.py327 print("Error: 'gh' is not authenticated. Please run 'gh auth login' first.", file=sys.stderr)CODE
MEDIUMscripts/downstream_dashboard.py33 print("Error: GitHub CLI (gh) is not installed or not in PATH", file=sys.stderr)CODE
LOWscripts/downstream_dashboard.py106 except Exception as e:CODE
MEDIUMscripts/downstream_dashboard.py107 print(f"Error fetching tags for {repo['name']}: {e}", file=sys.stderr)CODE
LOWscripts/downstream_dashboard.py141 except Exception as e:CODE
MEDIUMscripts/downstream_dashboard.py142 print(f"Error checking toolchain history for {repo['name']}: {e}", file=sys.stderr)CODE
LOWscripts/downstream_dashboard.py164 except Exception:CODE
LOWscripts/downstream_dashboard.py176 except Exception:CODE
LOWscripts/downstream_dashboard.py225 except Exception:CODE
LOWscripts/downstream_dashboard.py289 except Exception:CODE
LOWscripts/dag_traversal.py102 except Exception:CODE
LOWscripts/dag_traversal.py320 except Exception as e:CODE
LOW⚡scripts/migrate_to_fork.py486 except Exception:CODE
LOWscripts/migrate_to_fork.py161 except Exception:CODE
LOWscripts/migrate_to_fork.py196 except Exception as e:CODE
LOWscripts/migrate_to_fork.py207 except Exception:CODE
LOWscripts/migrate_to_fork.py229 except Exception:CODE
LOWscripts/migrate_to_fork.py243 except Exception as e:CODE
LOWscripts/migrate_to_fork.py280 except Exception as e:CODE
LOWscripts/migrate_to_fork.py285 except Exception:CODE
LOWscripts/migrate_to_fork.py296 except Exception as e:CODE
LOWscripts/migrate_to_fork.py316 except Exception:CODE
LOWscripts/migrate_to_fork.py429 except Exception:CODE
LOWscripts/migrate_to_fork.py498 except Exception as e:CODE
LOWscripts/migrate_to_fork.py566 except Exception as e:CODE
LOWscripts/migrate_to_fork.py617 except Exception:CODE
LOWscripts/migrate_to_fork.py646 except Exception as e:CODE
LOWscripts/migrate_to_fork.py685 except Exception as e:CODE
LOWscripts/migrate_to_fork.py734 except Exception as e:CODE
LOWscripts/migrate_to_fork.py744 except Exception as comment_error:CODE
LOWscripts/migrate_to_fork.py759 except Exception as e:CODE
LOWscripts/migrate_to_fork.py766 except Exception as e:CODE
LOWscripts/migrate_to_fork.py794 except Exception as e:CODE
LOWscripts/migrate_to_fork.py805 except Exception:CODE
Empty Error Handlers11 hits · 55 pts
SeverityFileLineSnippetContext
HIGHscripts/verify_version_tags.py571except (json.JSONDecodeError, KeyError):CODE
HIGHscripts/user_activity_report.py152except (subprocess.CalledProcessError, json.JSONDecodeError):CODE
HIGHscripts/user_activity_report.py199except (json.JSONDecodeError, KeyError, ValueError):CODE
HIGHscripts/user_activity_report.py227except (json.JSONDecodeError, KeyError, ValueError):CODE
HIGHscripts/downstream_dashboard.py289except Exception:CODE
HIGHscripts/dag_traversal.py102except Exception:CODE
HIGHscripts/dag_traversal.py115except ProcessLookupError:CODE
HIGHscripts/githelper.py204except subprocess.CalledProcessError:CODE
HIGHscripts/githelper.py218except subprocess.CalledProcessError:CODE
HIGHscripts/migrate_to_fork.py285except Exception:CODE
HIGHscripts/migrate_to_fork.py805except Exception:CODE
Decorative Section Separators13 hits · 45 pts
SeverityFileLineSnippetContext
MEDIUM⚡scripts/verify_version_tags.py220# ============================================================================COMMENT
MEDIUM⚡scripts/verify_version_tags.py222# ============================================================================COMMENT
MEDIUM⚡scripts/verify_version_tags.py627# ============================================================================COMMENT
MEDIUM⚡scripts/verify_version_tags.py629# ============================================================================COMMENT
MEDIUMscripts/runSkimmer.sh18# ---------------------------------------------COMMENT
MEDIUMscripts/runSkimmer.sh20# ---------------------------------------------COMMENT
MEDIUMscripts/runSkimmer.sh40# --------------------COMMENT
MEDIUMscripts/runSkimmer.sh42# --------------------COMMENT
MEDIUMscripts/dag_traversal.py736# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dag_traversal.py738# ---------------------------------------------------------------------------COMMENT
MEDIUM.github/workflows/update_dependencies.yml118 # ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/update_dependencies.yml134 # ── inputs ──────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/update_dependencies.yml157 # ── state ───────────────────────────────────────────────────────────COMMENT
Deep Nesting48 hits · 44 pts
SeverityFileLineSnippetContext
LOWscripts/fix_unused_simp_args.py53CODE
LOWscripts/fix_unused_simp_args.py100CODE
LOWscripts/downstream-tags.py96CODE
LOWscripts/downstream-tags.py152CODE
LOWscripts/rm_set_option.py61CODE
LOWscripts/rm_set_option.py339CODE
LOWscripts/rm_set_option.py141CODE
LOWscripts/verify_version_tags.py720CODE
LOWscripts/user_activity_report.py113CODE
LOWscripts/user_activity_report.py187CODE
LOWscripts/user_activity_report.py215CODE
LOWscripts/user_activity_report.py261CODE
LOWscripts/user_activity_report.py292CODE
LOWscripts/user_activity_report.py312CODE
LOWscripts/fix_nonlocal_set_option.py48CODE
LOWscripts/fix_deprecations.py18CODE
LOWscripts/rm_module_set_option.py69CODE
LOWscripts/rm_module_set_option.py168CODE
LOWscripts/rm_module_set_option.py188CODE
LOWscripts/rm_module_set_option.py206CODE
LOWscripts/rm_module_set_option.py279CODE
LOWscripts/rm_module_set_option.py132CODE
LOWscripts/rm_module_set_option.py214CODE
LOWscripts/parse_shake_output.py21CODE
LOWscripts/downstream_dashboard.py110CODE
LOWscripts/downstream_dashboard.py316CODE
LOWscripts/add_module_set_option.py130CODE
LOWscripts/dag_traversal.py667CODE
LOWscripts/dag_traversal.py835CODE
LOWscripts/dag_traversal.py106CODE
LOWscripts/dag_traversal.py130CODE
LOWscripts/dag_traversal.py178CODE
LOWscripts/dag_traversal.py543CODE
LOWscripts/dag_traversal.py632CODE
LOWscripts/dag_traversal.py313CODE
LOWscripts/migrate_to_fork.py304CODE
LOWscripts/migrate_to_fork.py320CODE
LOWscripts/migrate_to_fork.py471CODE
LOWscripts/migrate_to_fork.py503CODE
LOWscripts/migrate_to_fork.py571CODE
LOWscripts/migrate_to_fork.py651CODE
LOWscripts/migrate_to_fork.py798CODE
LOWscripts/lake-build-wrapper.py198CODE
LOWscripts/add_set_option.py202CODE
LOWscripts/add_set_option.py356CODE
LOWscripts/add_set_option.py86CODE
LOWscripts/add_set_option.py263CODE
LOWscripts/bench/combine.py35CODE
Verbosity Indicators18 hits · 38 pts
SeverityFileLineSnippetContext
LOWscripts/rm_set_option.py408 # Step 1: lakefile.leanCOMMENT
LOW⚡scripts/rm_set_option.py419 # Step 2: build DAGCOMMENT
LOW⚡scripts/rm_set_option.py424 # Step 3: scan for removable linesCOMMENT
LOW⚡scripts/rm_set_option.py464 # Step 4: initial build to ensure all .oleans are freshCOMMENT
LOW⚡scripts/rm_set_option.py468 # Step 5: traverse full DAG, skipping modules without removable lines.COMMENT
LOWscripts/rm_set_option.py540 # Step 6: summarize (only count target modules, not skipped ones)COMMENT
LOW⚡scripts/fix_nonlocal_set_option.py256 # Step 1: collect all deps of all failing modulesCOMMENT
LOW⚡scripts/fix_nonlocal_set_option.py261 # Step 2: add option to all deps that don't already have itCOMMENT
LOW⚡scripts/fix_nonlocal_set_option.py274 # Step 3: verify all check modules buildCOMMENT
LOW⚡scripts/fix_nonlocal_set_option.py283 # Step 4: binary search remove unnecessary optionsCOMMENT
LOWscripts/add_module_set_option.py171 # Step 1: remove from lakefileCOMMENT
LOWscripts/add_module_set_option.py189 # Step 2: determine which files to process via the import DAGCOMMENT
LOW⚡scripts/migrate_to_fork.py819 # Step 1: Check gh installationCOMMENT
LOW⚡scripts/migrate_to_fork.py823 # Step 2: Get usernameCOMMENT
LOW⚡scripts/migrate_to_fork.py826 # Step 3: Check/create forkCOMMENT
LOW⚡scripts/migrate_to_fork.py829 # Step 4: Setup remotesCOMMENT
LOW⚡scripts/migrate_to_fork.py839 # Step 5: Push branch to fork (if needed)COMMENT
LOW⚡scripts/migrate_to_fork.py845 # Step 6: Check for existing PRsCOMMENT
Structural Annotation Overuse18 hits · 38 pts
SeverityFileLineSnippetContext
LOWscripts/rm_set_option.py408 # Step 1: lakefile.leanCOMMENT
LOW⚡scripts/rm_set_option.py419 # Step 2: build DAGCOMMENT
LOW⚡scripts/rm_set_option.py424 # Step 3: scan for removable linesCOMMENT
LOW⚡scripts/rm_set_option.py464 # Step 4: initial build to ensure all .oleans are freshCOMMENT
LOW⚡scripts/rm_set_option.py468 # Step 5: traverse full DAG, skipping modules without removable lines.COMMENT
LOWscripts/rm_set_option.py540 # Step 6: summarize (only count target modules, not skipped ones)COMMENT
LOW⚡scripts/fix_nonlocal_set_option.py256 # Step 1: collect all deps of all failing modulesCOMMENT
LOW⚡scripts/fix_nonlocal_set_option.py261 # Step 2: add option to all deps that don't already have itCOMMENT
LOW⚡scripts/fix_nonlocal_set_option.py274 # Step 3: verify all check modules buildCOMMENT
LOW⚡scripts/fix_nonlocal_set_option.py283 # Step 4: binary search remove unnecessary optionsCOMMENT
LOWscripts/add_module_set_option.py171 # Step 1: remove from lakefileCOMMENT
LOWscripts/add_module_set_option.py189 # Step 2: determine which files to process via the import DAGCOMMENT
LOW⚡scripts/migrate_to_fork.py819 # Step 1: Check gh installationCOMMENT
LOW⚡scripts/migrate_to_fork.py823 # Step 2: Get usernameCOMMENT
LOW⚡scripts/migrate_to_fork.py826 # Step 3: Check/create forkCOMMENT
LOW⚡scripts/migrate_to_fork.py829 # Step 4: Setup remotesCOMMENT
LOW⚡scripts/migrate_to_fork.py839 # Step 5: Push branch to fork (if needed)COMMENT
LOW⚡scripts/migrate_to_fork.py845 # Step 6: Check for existing PRsCOMMENT
Over-Commented Block32 hits · 32 pts
SeverityFileLineSnippetContext
LOWbors.toml41# Redundant with the allow-list today (these are already excluded by omission),COMMENT
LOWdocs/1000.yaml1# This file tracks the formalisation status of theorems from the experimentalCOMMENT
LOWscripts/grind_unused_lemmas.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/runSkimmer.sh21COMMENT
LOWscripts/find-ci-errors.sh1#!/bin/bashCOMMENT
LOWscripts/find-ci-errors.sh21# # Find PRs and request master merge to fix infrastructure issuesCOMMENT
LOWscripts/lake-build-with-retry.sh1#!/bin/bashCOMMENT
LOWscripts/yaml_check.py61 authors: Optional[str] = NoneCOMMENT
LOWscripts/auto_commit.sh1#!/usr/bin/env bashCOMMENT
LOW.github/workflows/lake_cache_shadow.yml1name: Lake cache shadow (master)COMMENT
LOW.github/workflows/lake_cache_shadow.yml21# LAKE_CACHE_REVISION_ENDPOINT_PUBLIC — e.g. https://pub-<hash>.r2.dev/<prefix>/revisionsCOMMENT
LOW.github/workflows/lake_cache_shadow.yml41# The `toolchain_override` input, or else the LAKE_SHADOW_TOOLCHAIN_OVERRIDECOMMENT
LOW.github/workflows/build_template.yml121 # Hard-fail here (same style as the `lake lint` predates-config gate below in 'lint mathlib')COMMENT
LOW.github/workflows/build_template.yml421 echo "'mk_all --check' passed successfully."COMMENT
LOW.github/workflows/build_template.yml961 - name: get cache for Archive and CounterexamplesCOMMENT
LOW.github/workflows/export_crossrefs.yml101 # On manual runs this defaults to true (see the workflow_dispatchCOMMENT
LOW.github/workflows/validate_mathlib_ci_paths.yml1# Sanity checks for mathlib-ci usage in workflow filesCOMMENT
LOW.github/workflows/PR_summary.yml221 elseCOMMENT
LOW.github/workflows/zulip_emoji_reconcile.yml1# Keeps the Zulip emoji reactions on PR-related messages in sync with each PR'sCOMMENT
LOW.github/workflows/pr_check_downstream.yml1name: PR check downstreamCOMMENT
LOW.github/workflows/pr_check_downstream.yml21# (e.g. `FLT`) or its GitHub `owner/repo` slugCOMMENT
LOW.github/workflows/nightly_merge_master.yml61 # If the merge goes badly, we proceed anyway via '|| true'.COMMENT
LOW.github/workflows/update_dependencies.yml121 # already has identical content. This gate is therefore the ONLYCOMMENT
LOW.github/workflows/release_cache.yml1name: publish release cacheCOMMENT
LOW.github/workflows/release_cache.yml21# - The upload job mints its OIDC token under the `cache-upload-master`COMMENT
LOW.github/workflows/decls-diff.yml1# Post-build workflow that patches the `### PR summary` comment with aCOMMENT
LOW.github/workflows/publish_tools.yml1# Builds the trusted CI tooling (`cache` binary + the `lake-build-*` helper scripts)COMMENT
LOW.github/workflows/publish_tools.yml61 # `check-yaml` and `graph` are built as a smoke test that master's toolsCOMMENT
LOW.github/actions/get-tools/action.yml1# Populates `tools-branch/` with the trusted CI tooling (`cache` binary + theCOMMENT
LOW.github/actions/cache-trust-dispatch/action.yml61 # rather than an input: unlike `repo`/`branch`, the value does notCOMMENT
LOW.github/actions/cache-trust-dispatch/action.yml81 # mathlib4-nightly-testing fork), so it can only write `forks`.COMMENT
LOW.github/actions/setup-build-env/action.yml1# Shared runner setup for the self-hosted `build` and `test_lint` jobs inCOMMENT
Redundant / Tautological Comments20 hits · 27 pts
SeverityFileLineSnippetContext
LOWscripts/downstream-tags.py196 # Display resultsCOMMENT
LOWscripts/verify_version_tags.py858 # Check if this stable/patch version has a later patchSTRING
LOWscripts/user_activity_report.py194 # Check if cache is less than 24 hours oldCOMMENT
LOWscripts/user_activity_report.py222 # Check if cache is less than 6 hours oldCOMMENT
LOW⚡scripts/migrate_to_fork.py478 # Check if upstream is fork_remote/branch (which should point to the fork)COMMENT
LOW⚡scripts/migrate_to_fork.py836 # Check if branch is already migratedCOMMENT
LOWscripts/migrate_to_fork.py127 # Check if gh is installedCOMMENT
LOWscripts/migrate_to_fork.py147 # Check if authenticatedCOMMENT
LOWscripts/migrate_to_fork.py225 # Check if the output contains successful authentication messageCOMMENT
LOWscripts/migrate_to_fork.py269 # Check if fork existsCOMMENT
LOWscripts/migrate_to_fork.py383 # Check if origin exists and is differentCOMMENT
LOWscripts/migrate_to_fork.py401 # Check if 'origin' is available for the forkCOMMENT
LOWscripts/migrate_to_fork.py521 # Check if this PR is from the main repo or a forkCOMMENT
LOWscripts/auto_commit.sh77# Check if there are any staged changesCOMMENT
LOWscripts/add_set_option.py324 # Check if this specific error is gone (line shifted by insertion)COMMENT
LOW.github/workflows/nightly_detect_failure.yml169 # Check if the remote tag existsCOMMENT
LOW.github/workflows/nightly_detect_failure.yml614 # Check if we already posted a message for this nightly date and bump branch.COMMENT
LOW.github/workflows/remove_deprecated_decls.yml177 # Check if the branch exists remotelyCOMMENT
LOW.github/workflows/commit_verification.yml57 # Check if any commits have transient or auto prefixCOMMENT
LOW.github/workflows/update_dependencies.yml45 # Check if the branch exists remotelyCOMMENT
Hyper-Verbose Identifiers19 hits · 16 pts
SeverityFileLineSnippetContext
LOW⚡scripts/verify_version_tags.py224def verify_local_remote_consistency(tag: str) -> VerificationResult:CODE
LOWscripts/verify_version_tags.py455def verify_lean_version_string(tag: str, checkout_dir: str) -> VerificationResult:CODE
LOWscripts/user_activity_report.py159def get_contributors_fallback(owner: str, repo: str, limit: Optional[int] = None) -> List[Dict]:CODE
LOWscripts/rm_module_set_option.py106def module_set_option_pattern(option: str, value: str = "false") -> re.Pattern:CODE
LOWscripts/rm_module_set_option.py188def _collect_all_dependencies(dag: DAG, module_name: str) -> set[str]:CODE
LOWscripts/downstream_dashboard.py191def check_workflow_uses_action(repo: Dict[str, str], workflow_name: str, expected_action: str, silent=False) -> bool:CODE
LOWscripts/githelper.py208def git_get_branch_push_remote(branch: str) -> str | None:CODE
LOWscripts/githelper.py226def git_set_branch_push_remote(branch: str, remote: str) -> str | None:CODE
LOWscripts/githelper.py363def gh_get_all_branches_of_open_prs_from_fork(repo: str, fork: str) -> list[str]:STRING
LOWscripts/githelper.py427def cmd_fix_update_default_gh_repo() -> None:STRING
LOWscripts/githelper.py440def cmd_fix_set_origin_to_fork(fork: str) -> None:STRING
LOWscripts/githelper.py457def cmd_fix_update_origin_to_fork(fork: str) -> None:STRING
LOWscripts/githelper.py464def cmd_fix_update_master_remotes() -> None:STRING
LOW⚡scripts/migrate_to_fork.py471def check_branch_already_migrated(branch: str, username: str, fork_remote_name: str) -> bool:CODE
LOWscripts/migrate_to_fork.py434def validate_branch_for_migration(branch: str, auto_accept: bool = False) -> None:CODE
LOWscripts/lake-build-wrapper.py108 def open_group_for_normal_line(self, line: str):CODE
LOWscripts/bench/repeatedly.py45def read_measurements_from_outfile(outfile: Path) -> list[Measurement]:CODE
LOWscripts/bench/repeatedly.py53def write_measurements_to_outfile(CODE
LOW.github/workflows/validate_mathlib_ci_paths.yml172 def collect_mathlib_ci_checkouts(workflow, workflow_text):CODE
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMscripts/downstream_repos.yml1# This file contains basic information about significant downstream repositories.COMMENT
MEDIUMscripts/migrate_to_fork.py628 # Create the summaryCOMMENT
MEDIUMscripts/auto_commit.sh87# Create the commitCOMMENT
Unused Imports8 hits · 8 pts
SeverityFileLineSnippetContext
LOWscripts/fix_unused_simp_args.py13CODE
LOWscripts/fix_nonlocal_set_option.py23CODE
LOWscripts/fix_nonlocal_set_option.py25CODE
LOWscripts/fix_nonlocal_set_option.py31CODE
LOWscripts/fix_nonlocal_set_option.py32CODE
LOWscripts/rm_module_set_option.py26CODE
LOWscripts/rm_module_set_option.py34CODE
LOWscripts/add_module_set_option.py21CODE
Modern AI Meta-Vocabulary2 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUM⚡scripts/verify_version_tags.py628# Main verification orchestrationCOMMENT
MEDIUM.github/workflows/zulip_emoji_reconcile.yml118 # the `continue-on-error` the retired event-driven workflows carried.COMMENT
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMscripts/lake-build-with-retry.sh12# Make this script robust against unintentional errors.COMMENT
MEDIUMscripts/lint-bib.sh3# Make this script robust against unintentional errors.COMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/find-ci-errors.sh9# Usage:COMMENT