Repository Analysis

leanprover-community/mathlib4

The math library of Lean 4

11.3 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of leanprover-community/mathlib4, a Lean project with 3,599 GitHub stars. SynthScan v2.0 examined 32,693 lines of code across 145 source files, recording 255 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 11.3 places this repository in the Low 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).

11.3
Adjusted Score
11.3
Raw Score
100%
Time Factor
2026-07-14
Last Push
3.6K
Stars
Lean
Language
32.7K
Lines of Code
145
Files
255
Pattern Hits
2026-07-14
Scan Date
0.00
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

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

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 0MEDIUM 48LOW 207

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 255 distinct pattern matches across 13 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.

Decorative Section Separators19 hits · 66 pts
SeverityFileLineSnippetContext
MEDIUMscripts/verify_version_tags.py220# ============================================================================COMMENT
MEDIUMscripts/verify_version_tags.py222# ============================================================================COMMENT
MEDIUMscripts/verify_version_tags.py627# ============================================================================COMMENT
MEDIUMscripts/verify_version_tags.py629# ============================================================================COMMENT
MEDIUMscripts/runSkimmer.sh18# ---------------------------------------------COMMENT
MEDIUMscripts/runSkimmer.sh20# ---------------------------------------------COMMENT
MEDIUMscripts/runSkimmer.sh40# --------------------COMMENT
MEDIUMscripts/runSkimmer.sh42# --------------------COMMENT
MEDIUMscripts/dag_traversal.py726# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dag_traversal.py728# ---------------------------------------------------------------------------COMMENT
MEDIUM.github/workflows/nightly_bump_and_merge.yml71 # ============================================================================COMMENT
MEDIUM.github/workflows/nightly_bump_and_merge.yml73 # ============================================================================COMMENT
MEDIUM.github/workflows/nightly_bump_and_merge.yml114 # ============================================================================COMMENT
MEDIUM.github/workflows/nightly_bump_and_merge.yml116 # ============================================================================COMMENT
MEDIUM.github/workflows/nightly_bump_and_merge.yml317 # ============================================================================COMMENT
MEDIUM.github/workflows/nightly_bump_and_merge.yml319 # ============================================================================COMMENT
MEDIUM.github/workflows/update_dependencies.yml118 # ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/update_dependencies.yml134 # ── inputs ──────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/update_dependencies.yml157 # ── state ───────────────────────────────────────────────────────────COMMENT
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
MEDIUMscripts/verify_version_tags.py751 print("Error: Cannot use --all and --since together", file=sys.stderr)STRING
MEDIUMscripts/verify_version_tags.py755 print("Error: Cannot specify a tag with --all", file=sys.stderr)STRING
MEDIUMscripts/verify_version_tags.py759 print("Error: Cannot specify a tag with --since", file=sys.stderr)STRING
MEDIUMscripts/verify_version_tags.py787 print("Error: No version tags found", file=sys.stderr)STRING
MEDIUMscripts/verify_version_tags.py796 print(f"Error: Invalid version tag format for --since: {args.since}",STRING
MEDIUMscripts/verify_version_tags.py803 print("Error: No version tags found", file=sys.stderr)STRING
MEDIUMscripts/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.py92 except Exception:CODE
LOWscripts/dag_traversal.py310 except Exception as e:CODE
LOWscripts/migrate_to_fork.py488 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.py500 except Exception as e:CODE
LOWscripts/migrate_to_fork.py568 except Exception as e:CODE
LOWscripts/migrate_to_fork.py619 except Exception:CODE
LOWscripts/migrate_to_fork.py648 except Exception as e:CODE
LOWscripts/migrate_to_fork.py687 except Exception as e:CODE
LOWscripts/migrate_to_fork.py736 except Exception as e:CODE
LOWscripts/migrate_to_fork.py746 except Exception as comment_error:CODE
LOWscripts/migrate_to_fork.py761 except Exception as e:CODE
LOWscripts/migrate_to_fork.py768 except Exception as e:CODE
LOWscripts/migrate_to_fork.py796 except Exception as e:CODE
LOWscripts/migrate_to_fork.py807 except Exception:CODE
Deep Nesting51 hits · 47 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.py60CODE
LOWscripts/rm_set_option.py332CODE
LOWscripts/rm_set_option.py140CODE
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/lint-style.py108CODE
LOWscripts/lint-style.py143CODE
LOWscripts/dag_traversal.py657CODE
LOWscripts/dag_traversal.py825CODE
LOWscripts/dag_traversal.py96CODE
LOWscripts/dag_traversal.py120CODE
LOWscripts/dag_traversal.py168CODE
LOWscripts/dag_traversal.py533CODE
LOWscripts/dag_traversal.py622CODE
LOWscripts/dag_traversal.py303CODE
LOWscripts/migrate_to_fork.py304CODE
LOWscripts/migrate_to_fork.py320CODE
LOWscripts/migrate_to_fork.py473CODE
LOWscripts/migrate_to_fork.py505CODE
LOWscripts/migrate_to_fork.py573CODE
LOWscripts/migrate_to_fork.py653CODE
LOWscripts/migrate_to_fork.py800CODE
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
LOWscripts/bench/size/run.py24CODE
Verbosity Indicators18 hits · 38 pts
SeverityFileLineSnippetContext
LOWscripts/rm_set_option.py401 # Step 1: lakefile.leanCOMMENT
LOWscripts/rm_set_option.py412 # Step 2: build DAGCOMMENT
LOWscripts/rm_set_option.py417 # Step 3: scan for removable linesCOMMENT
LOWscripts/rm_set_option.py457 # Step 4: initial build to ensure all .oleans are freshCOMMENT
LOWscripts/rm_set_option.py461 # Step 5: traverse full DAG, skipping modules without removable lines.COMMENT
LOWscripts/rm_set_option.py533 # Step 6: summarize (only count target modules, not skipped ones)COMMENT
LOWscripts/fix_nonlocal_set_option.py256 # Step 1: collect all deps of all failing modulesCOMMENT
LOWscripts/fix_nonlocal_set_option.py261 # Step 2: add option to all deps that don't already have itCOMMENT
LOWscripts/fix_nonlocal_set_option.py274 # Step 3: verify all check modules buildCOMMENT
LOWscripts/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
LOWscripts/migrate_to_fork.py821 # Step 1: Check gh installationCOMMENT
LOWscripts/migrate_to_fork.py825 # Step 2: Get usernameCOMMENT
LOWscripts/migrate_to_fork.py828 # Step 3: Check/create forkCOMMENT
LOWscripts/migrate_to_fork.py831 # Step 4: Setup remotesCOMMENT
LOWscripts/migrate_to_fork.py841 # Step 5: Push branch to fork (if needed)COMMENT
LOWscripts/migrate_to_fork.py847 # Step 6: Check for existing PRsCOMMENT
Structural Annotation Overuse18 hits · 38 pts
SeverityFileLineSnippetContext
LOWscripts/rm_set_option.py401 # Step 1: lakefile.leanCOMMENT
LOWscripts/rm_set_option.py412 # Step 2: build DAGCOMMENT
LOWscripts/rm_set_option.py417 # Step 3: scan for removable linesCOMMENT
LOWscripts/rm_set_option.py457 # Step 4: initial build to ensure all .oleans are freshCOMMENT
LOWscripts/rm_set_option.py461 # Step 5: traverse full DAG, skipping modules without removable lines.COMMENT
LOWscripts/rm_set_option.py533 # Step 6: summarize (only count target modules, not skipped ones)COMMENT
LOWscripts/fix_nonlocal_set_option.py256 # Step 1: collect all deps of all failing modulesCOMMENT
LOWscripts/fix_nonlocal_set_option.py261 # Step 2: add option to all deps that don't already have itCOMMENT
LOWscripts/fix_nonlocal_set_option.py274 # Step 3: verify all check modules buildCOMMENT
LOWscripts/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
LOWscripts/migrate_to_fork.py821 # Step 1: Check gh installationCOMMENT
LOWscripts/migrate_to_fork.py825 # Step 2: Get usernameCOMMENT
LOWscripts/migrate_to_fork.py828 # Step 3: Check/create forkCOMMENT
LOWscripts/migrate_to_fork.py831 # Step 4: Setup remotesCOMMENT
LOWscripts/migrate_to_fork.py841 # Step 5: Push branch to fork (if needed)COMMENT
LOWscripts/migrate_to_fork.py847 # Step 6: Check for existing PRsCOMMENT
Redundant / Tautological Comments25 hits · 37 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
LOWscripts/lint-style.py118 # Check if the current line matches "(lemma|theorem) .* :"COMMENT
LOWscripts/migrate_to_fork.py480 # Check if upstream is fork_remote/branch (which should point to the fork)COMMENT
LOWscripts/migrate_to_fork.py838 # 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.py523 # 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.yml165 # Check if the remote tag existsCOMMENT
LOW.github/workflows/nightly_detect_failure.yml509 # Check if we already posted a message for this nightly date and bump branch.COMMENT
LOW.github/workflows/nightly_bump_and_merge.yml221 # Check if the diff contains files other than the specified onesCOMMENT
LOW.github/workflows/nightly_bump_and_merge.yml236 # Check if there are relevant branchesCOMMENT
LOW.github/workflows/nightly_bump_and_merge.yml313 # Output the resultsCOMMENT
LOW.github/workflows/nightly_bump_and_merge.yml369 # Output the message using the correct GitHub Actions syntaxCOMMENT
LOW.github/workflows/remove_deprecated_decls.yml174 # 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
Over-Commented Block29 hits · 29 pts
SeverityFileLineSnippetContext
LOWbors.toml41# `restrict_to_paths`.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/lake_cache_shadow.yml281 || echo "::warning::warm start from rev ${prev:0:12} failed; proceeding without it"COMMENT
LOW.github/workflows/lake_cache_shadow.yml401 # (Lake's revisionUrl ignores it for `.str` scopes), but staysCOMMENT
LOW.github/workflows/build_template.yml101 # CI writes the new container layout via the master-built cache binary,COMMENT
LOW.github/workflows/build_template.yml361 echo "Please run 'lake exe mk_all' to regenerate the import all files"COMMENT
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_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/update_dependencies.yml121 # already has identical content. This gate is therefore the ONLYCOMMENT
LOW.github/workflows/bors.yml21 # All other permissions are implicitly 'none'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.yml61COMMENT
LOW.github/actions/cache-trust-dispatch/action.yml81 case "$REPO" inCOMMENT
LOW.github/actions/setup-build-env/action.yml1# Shared runner setup for the self-hosted `build` and `test_lint` jobs inCOMMENT
Hyper-Verbose Identifiers21 hits · 18 pts
SeverityFileLineSnippetContext
LOWscripts/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/lint-style.py108def four_spaces_in_second_line(lines, path):CODE
LOWscripts/lint-style.py143def isolated_by_dot_semicolon_check(lines, path):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
LOWscripts/migrate_to_fork.py473def 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 Comments4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMscripts/downstream_repos.yml1# This file contains basic information about significant downstream repositories.COMMENT
MEDIUMscripts/migrate_to_fork.py630 # Create the summaryCOMMENT
MEDIUMscripts/auto_commit.sh87# Create the commitCOMMENT
MEDIUM.github/workflows/nightly_bump_and_merge.yml131 # Create a temporary directory for cloningCOMMENT
AI Slop Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMscripts/print-style-errors.sh3# Make this script robust against unintentional errors.COMMENT
MEDIUMscripts/lake-build-with-retry.sh11# Make this script robust against unintentional errors.COMMENT
MEDIUMscripts/lint-bib.sh3# Make this script robust against unintentional errors.COMMENT
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-Vocabulary1 hit · 4 pts
SeverityFileLineSnippetContext
MEDIUMscripts/verify_version_tags.py628# Main verification orchestrationCOMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/find-ci-errors.sh9# Usage:COMMENT