AI Slop Code RIsk Monitor

lra/mackup

Backup and keep your application settings in sync.

34.5 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for lra/mackup, a Python project with 15,338 GitHub stars. SynthScan examined 11,416 lines of code across 653 source files, recording 195 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 34.5 (High 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.

34.5
Adjusted Signal
34.5
Raw Pattern Score
100%
Time Factor
2026-09-09
Last Push
15.3K
Stars
Python
Language
11.4K
Lines of Code
653
Files
195
Pattern Hits
2026-10-12
Scan Date
0.00
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 82.0/100 · CRITICAL

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

Hallucinated Dependency & Supply Chain Risk 0.0/100 · LOW

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

Agent Over-Engineering Ratio 27.2/100 · MEDIUM

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

PR Review Velocity Impact 78.1/100 · CRITICAL

Which changes need focused human review? 195 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 0MEDIUM 76LOW 119

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 195 distinct pattern matches across 10 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.

Self-Referential Comments74 hits · 259 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/test_utils.py37 # Create a tmp fileCOMMENT
MEDIUM⚡tests/test_utils.py49 # Create a tmp folderCOMMENT
MEDIUM⚡tests/test_utils.py77 # Create a tmp fileCOMMENT
MEDIUM⚡tests/test_utils.py81 # Create a tmp folderCOMMENT
MEDIUM⚡tests/test_utils.py134 # Create a tmp folderCOMMENT
MEDIUM⚡tests/test_utils.py137 # Create a tmp fileCOMMENT
MEDIUM⚡tests/test_utils.py141 # Create a tmp folderCOMMENT
MEDIUM⚡tests/test_utils.py169 # Create a tmp folderCOMMENT
MEDIUM⚡tests/test_utils.py172 # Create a tmp fileCOMMENT
MEDIUM⚡tests/test_utils.py176 # Create a tmp folderCOMMENT
MEDIUM⚡tests/test_utils.py202 # Create a source and a destination tmp foldersCOMMENT
MEDIUM⚡tests/test_utils.py206 # Create a folder inside the source folderCOMMENT
MEDIUM⚡tests/test_utils.py209 # Create the same subfolder inside the destination folderCOMMENT
MEDIUM⚡tests/test_utils.py214 # Create a tmp file in the src subfolderCOMMENT
MEDIUMtests/test_utils.py103 # Create a tmp FIFO fileCOMMENT
MEDIUMtests/test_utils.py108 # Create a tmp folderCOMMENT
MEDIUMtests/test_utils.py244 # Create a tmp fileCOMMENT
MEDIUMtests/test_utils.py248 # Create a tmp folderCOMMENT
MEDIUMtests/test_utils.py271 # Create a tmp fileCOMMENT
MEDIUMtests/test_utils.py275 # Create a tmp directory with a sub folderCOMMENT
MEDIUM⚡tests/test_application.py16 # Create a mock Mackup instanceCOMMENT
MEDIUM⚡tests/test_application.py20 # Create a temporary home directoryCOMMENT
MEDIUM⚡tests/test_application.py30 # Create the ApplicationProfile instanceCOMMENT
MEDIUM⚡tests/test_application.py54 # Create a test file in the home directoryCOMMENT
MEDIUM⚡tests/test_application.py58 # Create the actual fileCOMMENT
MEDIUM⚡tests/test_application.py98 # Create a verbose ApplicationProfileCOMMENT
MEDIUM⚡tests/test_application.py106 # Create a test file in the home directoryCOMMENT
MEDIUM⚡tests/test_application.py110 # Create the actual fileCOMMENT
MEDIUM⚡tests/test_application.py139 # Create a test file in the mackup directoryCOMMENT
MEDIUM⚡tests/test_application.py143 # Create the actual fileCOMMENT
MEDIUM⚡tests/test_application.py172 # Create a verbose ApplicationProfileCOMMENT
MEDIUM⚡tests/test_application.py180 # Create a test file in the mackup directoryCOMMENT
MEDIUM⚡tests/test_application.py184 # Create the actual fileCOMMENT
MEDIUM⚡tests/test_application.py213 # Create a test directory in the home directoryCOMMENT
MEDIUM⚡tests/test_application.py218 # Create a file inside the directoryCOMMENT
MEDIUM⚡tests/test_application.py247 # Create a test directory in the mackup directoryCOMMENT
MEDIUM⚡tests/test_application.py252 # Create a file inside the directoryCOMMENT
MEDIUM⚡tests/test_application.py281 # Create a dry_run ApplicationProfileCOMMENT
MEDIUM⚡tests/test_application.py289 # Create a test file in the home directoryCOMMENT
MEDIUM⚡tests/test_application.py293 # Create the actual fileCOMMENT
MEDIUM⚡tests/test_application.py318 # Create a dry_run ApplicationProfileCOMMENT
MEDIUM⚡tests/test_application.py326 # Create a test file in the mackup directoryCOMMENT
MEDIUM⚡tests/test_application.py330 # Create the actual fileCOMMENT
MEDIUM⚡tests/test_application.py399 # Create a test file in the mackup directory (regular file, not a link)COMMENT
MEDIUM⚡tests/test_application.py404 # Create the mackup file as a regular fileCOMMENT
MEDIUM⚡tests/test_application.py408 # Create the home file as a regular file (not a link)COMMENT
MEDIUM⚡tests/test_application.py439 # Create a test fileCOMMENT
MEDIUM⚡tests/test_application.py444 # Create the mackup fileCOMMENT
MEDIUM⚡tests/test_application.py448 # Create a different target fileCOMMENT
MEDIUM⚡tests/test_application.py453 # Create the home file as a symbolic link pointing to the wrong targetCOMMENT
MEDIUM⚡tests/test_application.py483 # Create a test fileCOMMENT
MEDIUM⚡tests/test_application.py488 # Create the mackup file firstCOMMENT
MEDIUM⚡tests/test_application.py492 # Create the home file as a symbolic link pointing to the mackup fileCOMMENT
MEDIUM⚡tests/test_application.py519 # Create a test fileCOMMENT
MEDIUM⚡tests/test_application.py524 # Create the mackup file first (simulating link install)COMMENT
MEDIUM⚡tests/test_application.py528 # Create the home file as a symbolic link pointing to the mackup fileCOMMENT
MEDIUM⚡tests/test_application.py565 # Create a verbose ApplicationProfileCOMMENT
MEDIUM⚡tests/test_application.py573 # Create a test fileCOMMENT
MEDIUM⚡tests/test_application.py578 # Create the mackup file first (simulating link install)COMMENT
MEDIUM⚡tests/test_application.py582 # Create the home file as a symbolic link pointing to the mackup fileCOMMENT
14 more matches not shown…
Hyper-Verbose Identifiers75 hits · 70 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_utils.py48 def test_delete_folder_recursively(self):CODE
LOW⚡tests/test_utils.py200 def test_copy_dir_that_exists(self):CODE
LOWtests/test_utils.py330 def test_failed_backup_location(self):CODE
LOWtests/test_utils.py353 def test_dropbox_folder_location_with_malformed_host_db(self):CODE
LOWtests/test_utils.py379 def test_google_drive_folder_location_with_missing_path_entry(self):CODE
LOWtests/test_utils.py402 def test_google_drive_folder_location_uses_user_default_db(self):CODE
LOWtests/test_utils.py431 def test_can_file_be_synced_on_current_platform(self):CODE
LOWtests/test_appsdb_xdg.py34 def test_legacy_custom_apps_dir(self):CODE
LOWtests/test_appsdb_xdg.py52 def test_legacy_takes_priority_over_xdg(self):CODE
LOWtests/test_appsdb_xdg.py69 def test_both_directories_merged(self):CODE
LOWtests/test_appsdb_xdg.py81 def test_xdg_default_fallback(self):CODE
LOWtests/test_appsdb_xdg.py93 def test_applications_database_loads_xdg_apps(self):CODE
LOWtests/test_appsdb_xdg.py104 def test_applications_database_priority_loads_legacy(self):CODE
LOWtests/test_config.py18def assert_correct_config_read(expected_directory):CODE
LOWtests/test_config.py39 def test_config_find_correct_default(self):CODE
LOWtests/test_config.py63 def test_config_finds_correct_envvar(self):CODE
LOWtests/test_config.py110 def test_config_engine_dropbox(self):CODE
LOWtests/test_config.py128 def test_config_engine_filesystem_absolute(self):CODE
LOWtests/test_config.py146 def test_config_engine_filesystem(self):CODE
LOWtests/test_config.py168 def test_config_engine_google_drive(self):CODE
LOWtests/test_config.py186 def test_config_engine_icloud(self):CODE
LOW⚡tests/test_config.py206 def test_config_engine_filesystem_no_path(self):CODE
LOW⚡tests/test_config.py210 def test_config_engine_unknown(self):CODE
LOW⚡tests/test_config.py214 def test_config_apps_to_ignore(self):CODE
LOWtests/test_config.py250 def test_config_apps_to_ignore_and_sync(self):CODE
LOW⚡tests/test_config_file_option.py20 def test_config_with_relative_path(self):CODE
LOW⚡tests/test_config_file_option.py26 def test_config_with_absolute_path(self):CODE
LOW⚡tests/test_config_file_option.py33 def test_mackup_with_config_file(self):CODE
LOW⚡tests/test_config_file_option.py41 def test_mackup_without_config_file(self):CODE
LOW⚡tests/test_config_file_option.py49 def test_config_file_does_not_exist(self):CODE
LOW⚡tests/test_application.py52 def test_copy_files_to_mackup_folder_permission_error(self):CODE
LOW⚡tests/test_application.py96 def test_copy_files_to_mackup_folder_permission_error_verbose(self):CODE
LOW⚡tests/test_application.py137 def test_copy_files_from_mackup_folder_permission_error(self):CODE
LOW⚡tests/test_application.py170 def test_copy_files_from_mackup_folder_permission_error_verbose(self):CODE
LOW⚡tests/test_application.py211 def test_copy_files_to_mackup_folder_with_directory_permission_error(self):CODE
LOW⚡tests/test_application.py245 def test_copy_files_from_mackup_folder_with_directory_permission_error(self):CODE
LOW⚡tests/test_application.py279 def test_copy_files_to_mackup_folder_dry_run_no_permission_error(self):CODE
LOW⚡tests/test_application.py316 def test_copy_files_from_mackup_folder_dry_run_no_permission_error(self):CODE
LOW⚡tests/test_application.py397 def test_link_uninstall_mackup_not_a_link(self):CODE
LOW⚡tests/test_application.py437 def test_link_uninstall_mackup_points_to_wrong_target(self):CODE
LOW⚡tests/test_application.py481 def test_link_uninstall_mackup_points_correctly(self):CODE
LOW⚡tests/test_application.py517 def test_copy_files_to_mackup_folder_skips_already_linked_files(self):CODE
LOW⚡tests/test_application.py563 def test_copy_files_to_mackup_folder_skips_already_linked_files_verbose(self):CODE
LOW⚡tests/test_application.py620 def test_copy_files_to_mackup_folder_backs_up_symlink_to_different_location(self):CODE
LOWtests/test_application.py85 def test_files_are_sorted_for_deterministic_processing(self):CODE
LOWtests/test_application.py353 def test_copy_files_to_mackup_folder_decline_replace_skips_copy(self):CODE
LOWtests/test_application.py375 def test_copy_files_from_mackup_folder_decline_replace_skips_copy(self):CODE
LOW⚡tests/test_backup_after_link_install.py55 def test_backup_after_link_install_does_not_delete_mackup_files(self):CODE
LOWtests/test_backup_after_link_install.py136 def test_backup_after_link_install_verbose_shows_skip_message(self):CODE
LOW⚡tests/test_cli.py155 def test_backup_and_restore_full_workflow(self):CODE
LOW⚡tests/test_cli.py189 def test_backup_preserves_file_permissions(self):CODE
LOW⚡tests/test_cli.py207 def test_restore_with_missing_backup(self):CODE
LOWtests/test_cli.py95 def test_backup_creates_mackup_folder(self):CODE
LOWtests/test_cli.py128 def test_restore_copies_file_back(self):CODE
LOWtests/test_cli.py304 def test_restore_fails_when_mackup_folder_missing(self):CODE
LOWtests/test_cli.py317 def test_force_and_force_no_are_mutually_exclusive(self):CODE
LOWtests/test_cli.py328 def test_backup_single_named_app(self):CODE
LOWtests/test_cli.py338 def test_backup_unsupported_app_exits_with_error(self):CODE
LOWtests/test_cli.py350 def test_backup_named_app_overrides_config(self):CODE
LOWtests/test_cli.py373 def test_link_uninstall_single_app_skips_global_teardown(self):CODE
15 more matches not shown…
Structural Annotation Overuse10 hits · 18 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_backup_after_link_install.py65 # Step 1: Simulate initial state - files exist in homeCOMMENT
LOWtests/test_backup_after_link_install.py76 # Step 2: Run link installCOMMENT
LOWtests/test_backup_after_link_install.py109 # Step 3: Run backup (this is where the edge case would occur)COMMENT
LOW⚡tests/test_cli.py164 # Step 1: BackupCOMMENT
LOW⚡tests/test_cli.py172 # Step 2: Modify original fileCOMMENT
LOW⚡tests/test_cli.py181 # Step 3: Restore (should replace modified file with backup)COMMENT
LOWdoc/configuration_merge_guide.md16## Step 0: Read Through This Entire Guide FirstCOMMENT
LOWdoc/configuration_merge_guide.md20## Step 1: Determine Which Configuration Files to MergeCOMMENT
LOWdoc/configuration_merge_guide.md46## Step 2: Prepare Your Workstations for SyncingCOMMENT
LOWdoc/configuration_merge_guide.md145## Step 3: Push Out the Configuration Files with MackupCOMMENT
Redundant / Tautological Comments13 hits · 14 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_utils.py44 # Check if mackup can really delete itCOMMENT
LOW⚡tests/test_utils.py69 # Check if mackup can really delete itCOMMENT
LOWtests/test_utils.py92 # Check if mackup can copy itCOMMENT
LOWtests/test_utils.py120 # Check if mackup can copy itCOMMENT
LOWtests/test_utils.py156 # Check if mackup can copy itCOMMENT
LOWtests/test_utils.py189 # Check if mackup can copy itCOMMENT
LOWtests/test_utils.py230 # Check if mackup can copy itCOMMENT
LOWtests/test_utils.py259 # Check if mackup can link it and the link points to the correct placeCOMMENT
LOWtests/test_cli.py29 # Set HOME to our test directoryCOMMENT
LOWsrc/mackup/application.py70 # Check if home file is a symlink pointing to mackup fileCOMMENT
LOWsrc/mackup/application.py222 # Check if we already have a backupCOMMENT
LOWsrc/mackup/application.py312 # Check if there is already a file in the home folderCOMMENT
LOWsrc/mackup/application.py365 # Check if there is a corresponding file in the home folderCOMMENT
Verbosity Indicators6 hits · 12 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_backup_after_link_install.py65 # Step 1: Simulate initial state - files exist in homeCOMMENT
LOWtests/test_backup_after_link_install.py76 # Step 2: Run link installCOMMENT
LOWtests/test_backup_after_link_install.py109 # Step 3: Run backup (this is where the edge case would occur)COMMENT
LOW⚡tests/test_cli.py164 # Step 1: BackupCOMMENT
LOW⚡tests/test_cli.py172 # Step 2: Modify original fileCOMMENT
LOW⚡tests/test_cli.py181 # Step 3: Restore (should replace modified file with backup)COMMENT
Deep Nesting10 hits · 10 pts
SeverityFileLineSnippetContext
LOWsrc/mackup/config.py257CODE
LOWsrc/mackup/appsdb.py17CODE
LOWsrc/mackup/application.py50CODE
LOWsrc/mackup/application.py126CODE
LOWsrc/mackup/application.py185CODE
LOWsrc/mackup/application.py269CODE
LOWsrc/mackup/application.py348CODE
LOWsrc/mackup/utils.py153CODE
LOWsrc/mackup/utils.py238CODE
LOWsrc/mackup/main.py258CODE
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMdoc/.mackup.cfg19# If you want to specify another directory, you can use the "file_system"COMMENT
Over-Commented Block3 hits · 3 pts
SeverityFileLineSnippetContext
LOWdoc/.mackup.cfg1#COMMENT
LOWdoc/.mackup.cfg21# files where you explicitly told him to, using the "path" setting.COMMENT
LOWdoc/.mackup.cfg41# If this list is empty, Mackup will try to sync all the supportedCOMMENT
Excessive Try-Catch Wrapping2 hits · 2 pts
SeverityFileLineSnippetContext
LOWtests/test_config.py56 except Exception:CODE
LOW⚡tests/test_cli.py221 except Exception as e:CODE
Modern AI Meta-Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMdoc/ARCHITECTURE.md242├── mackup.py # Core orchestration engineCODE