AI Slop Code Risk Monitor

spantaleev/matrix-docker-ansible-deploy

SlopCodeMonitor badge for spantaleev/matrix-docker-ansible-deploy Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

🐳 Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker

5.8 Moderate pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for spantaleev/matrix-docker-ansible-deploy, a Jinja project with 6,510 GitHub stars. SynthScan examined 96,011 lines of code across 869 source files, recording 469 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 5.8 (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.

5.8
Adjusted Signal
5.8
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
6.5K
Stars
Jinja
Language
96.0K
Lines of Code
869
Files
469
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

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

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 21.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.6/100 · LOW

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

Agent Over-Engineering Ratio 4.7/100 · LOW

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

PR Review Velocity Impact 24.8/100 · LOW

Which changes need focused human review? 469 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 7MEDIUM 21LOW 441

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

Over-Commented Block397 hits · 378 pts
SeverityFileLineSnippetContext
LOWconf.py1# SPDX-FileCopyrightText: 2024 Slavi Pantaleev <slavi@devture.com>COMMENT
LOWbin/add-inventory-host.sh1#!/usr/bin/env bashCOMMENT
LOWbin/check-group-vars-jinja.py1#!/usr/bin/env python3COMMENT
LOWbin/install-roles.py1#!/usr/bin/env python3COMMENT
LOWbin/molecule-clean.sh1#!/bin/bashCOMMENT
LOWbin/molecule.sh1#!/bin/bashCOMMENT
LOWbin/ansible-python.sh1#!/bin/shCOMMENT
LOWbin/ansible-all-hosts.sh1#!/usr/bin/env bashCOMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml1# SPDX-FileCopyrightText: 2020 - 2022 Aaron RaimistCOMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml41matrix_client_element_container_src_dockerfile_path: "{{ matrix_client_element_container_src_files_path }}/apps/web/DockCOMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml141#COMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml161# Specifies the value of the `Permission-Policy` header.COMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml181#COMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml321matrix_client_element_default_theme: 'light'COMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml341COMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml361# Holds the final Element Web configuration (a combination of the default and its extension).COMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml381# This is unlike what it does when looking up YAML template files (no automatic parsing there).COMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml401# }COMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml421# You most likely don't need to touch this variable. Instead, see `matrix_client_element_location_sharing_map_style_defaCOMMENT
LOWroles/custom/matrix-client-element/defaults/main.yml441matrix_client_element_environment_variable_element_web_port: "{{ matrix_client_element_container_port }}"COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml81COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml101# is local and playbook-managed.COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml121#COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml141#COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml161COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml181matrix_bot_baibot_config_persistence_data_dir_path: /dataCOMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml261 #COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml281matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_prompt: "{{ matrix_bot_baibot_configCOMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml361matrix_bot_baibot_config_agents_static_definitions_mistral_config: "{{ matrix_bot_baibot_config_agents_static_definitionCOMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml421 # Your custom YAML configuration for this provider's configuration goes here.COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml501 # You can override individual variables from the default configuration, or introduce new ones.COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml541matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_reasoning_effort: ~COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml581# a cloned-voice handle (vv_<id>). An incompatible voice returns an error.COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml621# Resolution tier (used by certain models): "1K", "2K", "4K".COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml641matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_edit_safe_mode: ~COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml661COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml681#COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml721#COMMENT
LOWroles/custom/matrix-bot-baibot/defaults/main.yml741COMMENT
LOWroles/custom/matrix-conduit/defaults/main.yml41# Controls how long to sleep for after starting the matrix-synapse container.COMMENT
LOWroles/custom/matrix-conduit/defaults/main.yml181matrix_conduit_turn_secret: ''COMMENT
LOWroles/custom/matrix-bot-buscarron/defaults/main.yml221# Additional environment variables to pass to the Buscarron containerCOMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml1# SPDX-FileCopyrightText: 2023 - 2024 Michael HollisterCOMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml261COMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml301# If false, the media repo will not use the X-Forwarded-Host header commonly added by reverse proxies.COMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml341# The database pooling optionsCOMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml361matrix_media_repo_generate_signing_key: falseCOMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml381# * IT IS HIGHLY RECOMMENDED TO USE PER-DOMAIN CONFIGS WITH THIS FEATURE. *COMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml401# the media repo.COMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml421# See docs/admin.md for information on what these people can do. They must belong to one of theCOMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml441# thumbnails and other misc data is also stored in these places. The media repo, when lookingCOMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml461# To disable this datastore, making it readonly, specify `forKinds: []`.COMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml481# ID for the S3 datastore. Any unique alphanumeric string (e.g. generated via `pwgen -s 64 1`).COMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml501# before being uploaded to s3 (then the file is deleted). If you aren't concerned aboutCOMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml521# It is therefore important to include any trailing slashes or path information. ForCOMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml541# Whether archiving is enabled or not. Default enabled.COMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml561# ensure that the "cost" of running the media repo is worthwhile - small file uploads tendCOMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml581# this project recommends 30 minutes (1800 seconds).COMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml601 # The maximum number of TOTAL bytes a user can upload. Defaults to zero (no limit).COMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml621# The number of workers to use when downloading remote media. Raise this number if remoteCOMMENT
337 more matches not shown…
Decorative Section Separators14 hits · 48 pts
SeverityFileLineSnippetContext
MEDIUMroles/custom/matrix-client-commet/defaults/main.yml54# ---------------------------------------------------------------------------COMMENT
MEDIUMroles/custom/matrix-client-commet/defaults/main.yml56# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡roles/custom/matrix-client-commet/defaults/main.yml118# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡roles/custom/matrix-client-commet/defaults/main.yml120# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡roles/custom/matrix-client-commet/defaults/main.yml126# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡roles/custom/matrix-client-commet/defaults/main.yml128# ---------------------------------------------------------------------------COMMENT
MEDIUM…tom/matrix-bridge-hookshot/molecule/default/verify.yml57 # ------------------------------------------------------------------COMMENT
MEDIUM…tom/matrix-bridge-hookshot/molecule/default/verify.yml59 # ------------------------------------------------------------------COMMENT
MEDIUM…tom/matrix-bridge-hookshot/molecule/default/verify.yml124 # ------------------------------------------------------------------COMMENT
MEDIUM…tom/matrix-bridge-hookshot/molecule/default/verify.yml126 # ------------------------------------------------------------------COMMENT
MEDIUM…tom/matrix-bridge-hookshot/molecule/default/verify.yml167 # ------------------------------------------------------------------COMMENT
MEDIUM…tom/matrix-bridge-hookshot/molecule/default/verify.yml169 # ------------------------------------------------------------------COMMENT
MEDIUM…tom/matrix-bridge-hookshot/molecule/default/verify.yml325 # ------------------------------------------------------------------COMMENT
MEDIUM…tom/matrix-bridge-hookshot/molecule/default/verify.yml327 # ------------------------------------------------------------------COMMENT
Hyper-Verbose Identifiers26 hits · 34 pts
SeverityFileLineSnippetContext
LOW⚡bin/test-molecule-select-roles.py86 def test_livekit_bump_only_runs_its_consumer(self):CODE
LOW⚡bin/test-molecule-select-roles.py90 def test_postgres_bump_follows_shared_task(self):CODE
LOW⚡bin/test-molecule-select-roles.py94 def test_curl_bump_runs_every_consumer(self):CODE
LOW⚡bin/test-molecule-select-roles.py98 def test_multiple_image_bumps_union_with_direct_role_changes(self):CODE
LOW⚡bin/test-molecule-select-roles.py104 def test_direct_changes_ignore_roles_without_scenarios(self):CODE
LOW⚡bin/test-molecule-select-roles.py109 def test_documentation_change_runs_nothing(self):CODE
LOW⚡bin/test-molecule-select-roles.py113 def test_image_pin_comments_and_quoting_do_not_run_scenarios(self):CODE
LOW⚡bin/test-molecule-select-roles.py118 def test_shared_task_change_only_runs_consumers(self):CODE
LOW⚡bin/test-molecule-select-roles.py122 def test_shared_fixture_change_follows_nested_references(self):CODE
LOW⚡bin/test-molecule-select-roles.py126 def test_deleted_helper_uses_previous_consumers(self):CODE
LOW⚡bin/test-molecule-select-roles.py131 def test_renamed_helper_unions_previous_and_current_consumers(self):CODE
LOW⚡bin/test-molecule-select-roles.py137 def test_deleted_role_is_not_selected(self):CODE
LOW⚡bin/test-molecule-select-roles.py141 def test_new_scenario_is_selected(self):CODE
LOW⚡bin/test-molecule-select-roles.py145 def test_global_changes_run_all(self):CODE
LOW⚡bin/test-molecule-select-roles.py152 def test_unknown_shared_file_runs_all(self):CODE
LOW⚡bin/test-molecule-select-roles.py156 def test_unconsumed_image_bump_runs_all(self):CODE
LOW⚡bin/test-molecule-select-roles.py162 def test_unsupported_pins_run_all(self):CODE
LOW⚡bin/test-molecule-select-roles.py192 def test_shared_reference_cycles_terminate(self):CODE
LOW⚡bin/test-molecule-select-roles.py196 def test_comments_do_not_introduce_unresolved_references(self):CODE
LOW⚡bin/test-molecule-select-roles.py202 def test_symlinked_shared_helper_is_followed(self):CODE
LOW⚡bin/test-molecule-select-roles.py209 def test_invalid_comparison_runs_all(self):CODE
LOW⚡bin/test-molecule-select-roles.py212 def test_manual_dispatch_all_or_one_role(self):CODE
LOW⚡bin/test-molecule-select-roles.py219 def test_event_comparison_bases(self):CODE
LOWbin/test-molecule-select-roles.py176 def test_missing_pins_run_all(self):CODE
LOWbin/test-molecule-select-roles.py180 def test_unresolved_references_run_all(self):CODE
LOWbin/test-molecule-select-roles.py232 def test_cli_writes_github_output(self):CODE
Magic Placeholder Names4 hits · 30 pts
SeverityFileLineSnippetContext
HIGH⚡docs/configuring-playbook-user-verification-service.md70It is possible to set an API Auth Token to restrict access to the UVS. If this is enabled, anyone making a request to UVCODE
HIGH⚡docs/configuring-playbook-user-verification-service.md72By default, the token (`YOUR_TOKEN_HERE`) will be derived from `matrix_homeserver_generic_secret_key` in `group_vars/matCODE
HIGH⚡docs/configuring-playbook-user-verification-service.md74To set your own token, add the following configuration to your `vars.yml` file. Make sure to replace `YOUR_TOKEN_HERE` wCODE
HIGH⚡docs/configuring-playbook-user-verification-service.md77matrix_user_verification_service_uvs_auth_token: "YOUR_TOKEN_HERE"CODE
Redundant / Tautological Comments9 hits · 14 pts
SeverityFileLineSnippetContext
LOWroles/custom/matrix-media-repo/defaults/main.yml434# Set this to true to enable shared secret auth.COMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml570# Set this to -1 to indicate that there is no limit. Zero will force the use of maxBytes.COMMENT
LOWroles/custom/matrix-media-repo/defaults/main.yml804# Set this to false if rate limiting is handled at a higher level or you don't want it enabled.COMMENT
LOWroles/custom/matrix-bot-draupnir/defaults/main.yml177# Set this to the Pantalaimon URL if you're using that.COMMENT
LOWroles/custom/matrix-bot-mjolnir/defaults/main.yml102# Set this to the pantalaimon URL if you're using that.COMMENT
LOW…es/custom/matrix-bridge-heisenbridge/defaults/main.yml28# Set this to your Matrix ID if you want to enforce the owner, otherwise first _local_ user becomes oneCOMMENT
LOWroles/custom/matrix-bot-meowlnir/defaults/main.yml207# Set these to strong, unique values.COMMENT
LOW…tom/matrix-user-verification-service/defaults/main.yml13# Set this to the display name for ansible used in Output e.g. fail_msgCOMMENT
LOWmolecule-shared/tasks/homeserver-stub.yml59 # Set molecule_shared_stub_verbose to "1" to log every request the stub is asked for.COMMENT
Slop Phrases5 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMroles/custom/matrix-bridge-sms/defaults/main.yml120 # (optional) if you use a self signed certificate, you can add the public key hereCOMMENT
LOWroles/custom/matrix-synapse/vars/main.yml160# don't forget to actually configure it where appropriate (see worker.yaml.j2`, the nginx proxy configuration, etc).COMMENT
LOWroles/custom/matrix-synapse/vars/main.yml160# don't forget to actually configure it where appropriate (see worker.yaml.j2`, the nginx proxy configuration, etc).COMMENT
MEDIUMroles/custom/matrix-synapse/defaults/main.yml807# By default, all of the server's memory is taken into account, but you can adjust this.COMMENT
MEDIUMexamples/reverse-proxies/haproxy/haproxy.cfg44 # HAproxy wants the full chain and the private key in one file. For Letsencrypt manually generated certs (e.g., wildCOMMENT
Empty Error Handlers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHbin/molecule-select-roles.py94except (KeyError, subprocess.CalledProcessError):CODE
HIGHbin/molecule-select-roles.py89except subprocess.CalledProcessError:CODE
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHdocs/configuring-playbook-bot-baibot.md415# In this example, there's no need to define any of these below.COMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMroles/custom/matrix-synapse/vars/main.yml204# The following section contains content that had previously been generated by a script (`workers-doc-to-yaml.awk`) procCOMMENT
MEDIUMcollections/requirements.yml2# This file is not used by the playbook's standard CLI installation flow.COMMENT
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMroles/custom/matrix-base/defaults/main.yml281# They are meant for orchestration concerns like container networking and systemd ordering,COMMENT
MEDIUMroles/custom/matrix-base/defaults/main.yml290# It is meant for orchestration concerns like container networking, systemd ordering, and database creation,COMMENT
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOWbin/molecule-clean.sh11# Usage:COMMENT
LOWbin/molecule.sh15# Usage:COMMENT
LOWroles/custom/matrix-synapse/defaults/main.yml51# Example usage:COMMENT
Deep Nesting3 hits · 3 pts
SeverityFileLineSnippetContext
LOWbin/molecule-select-roles.py79CODE
LOWbin/molecule-select-roles.py154CODE
LOWbin/install-roles.py116CODE
Excessive Try-Catch Wrapping1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…/tasks/validate_config_sqlite_legacy_migration_bug.yml54 except Exception:CODE