AI Slop Code RIsk Monitor

alexbelgium/hassio-addons

My homeassistant addons

8.2 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for alexbelgium/hassio-addons, a Shell project with 2,613 GitHub stars. SynthScan examined 109,959 lines of code across 1242 source files, recording 404 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 8.2 (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.

8.2
Adjusted Signal
8.2
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
2.6K
Stars
Shell
Language
110.0K
Lines of Code
1.2K
Files
404
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 13.8/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 23.0/100 · LOW

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

PR Review Velocity Impact 28.2/100 · MEDIUM

Which changes need focused human review? 404 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 1MEDIUM 160LOW 243

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 404 distinct pattern matches across 15 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.

Decorative Section Separators145 hits · 546 pts
SeverityFileLineSnippetContext
MEDIUM…_paperless_ngx/rootfs/etc/cont-init.d/00-deprecated.sh5# ==============================================================================COMMENT
MEDIUM…_paperless_ngx/rootfs/etc/cont-init.d/00-deprecated.sh7# ==============================================================================COMMENT
MEDIUM⚡nginx_webserver_proxy/run.sh21# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡nginx_webserver_proxy/run.sh23# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡nginx_webserver_proxy/run.sh35# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡nginx_webserver_proxy/run.sh37# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡nginx_webserver_proxy/run.sh71# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡nginx_webserver_proxy/run.sh75# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡nginx_webserver_proxy/run.sh109# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡nginx_webserver_proxy/run.sh111# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh37# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh39# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh57# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh63# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh84# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh90# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh118# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh120# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh129# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh131# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh146# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh151# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh220# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_solo/run.sh222# ---------------------------------------------------------------------------COMMENT
MEDIUMjoplin/rootfs/etc/cont-init.d/99-run.sh84# -------------------COMMENT
MEDIUMjoplin/rootfs/etc/cont-init.d/99-run.sh86# -------------------COMMENT
MEDIUMjoplin/rootfs/etc/cont-init.d/99-run.sh106# -------------------COMMENT
MEDIUMjoplin/rootfs/etc/cont-init.d/99-run.sh108# -------------------COMMENT
MEDIUMjoplin/rootfs/etc/cont-init.d/99-run.sh129# -------------------COMMENT
MEDIUMjoplin/rootfs/etc/cont-init.d/99-run.sh131# -------------------COMMENT
MEDIUM⚡cleanuparr/rootfs/ha_entrypoint.sh13# ─── Source standalone bashio if available ───────────────────────────────────COMMENT
MEDIUM⚡cleanuparr/rootfs/ha_entrypoint.sh19# ─── Run cont-init.d scripts (banner, custom_script, ...) ────────────────────COMMENT
MEDIUM⚡cleanuparr/rootfs/ha_entrypoint.sh29# ─── Setup persistent data directory ─────────────────────────────────────────COMMENT
MEDIUMcleanuparr/rootfs/ha_entrypoint.sh44# ─── Ingress proxy ───────────────────────────────────────────────────────────COMMENT
MEDIUMcleanuparr/rootfs/ha_entrypoint.sh49# ─── Add-on options as environment variables ─────────────────────────────────COMMENT
MEDIUMcleanuparr/rootfs/ha_entrypoint.sh66# ─── Start Cleanuparr directly (bypass original /entrypoint.sh) ──────────────COMMENT
MEDIUMportainer/rootfs/etc/cont-init.d/31-portainer.sh4# ==============================================================================COMMENT
MEDIUMportainer/rootfs/etc/cont-init.d/31-portainer.sh7# ==============================================================================COMMENT
MEDIUMmaintainerr/rootfs/ha_entrypoint.sh10# ─── Run cont-init.d scripts ─────────────────────────────────────────────────COMMENT
MEDIUMmaintainerr/rootfs/ha_entrypoint.sh20# ─── Setup persistent data directory ─────────────────────────────────────────COMMENT
MEDIUMmaintainerr/rootfs/ha_entrypoint.sh43# ─── Start Maintainerr as unprivileged node user ─────────────────────────────COMMENT
MEDIUMomni-tools/rootfs/etc/cont-init.d/99-run.sh3# ==============================================================================COMMENT
MEDIUMomni-tools/rootfs/etc/cont-init.d/99-run.sh6# ==============================================================================COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh42# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh44# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh62# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh68# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh89# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh95# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh172# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh178# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh187# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh189# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh204# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh209# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh278# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡obsidian_syncserver_npm/run.sh280# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh117# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh128# ---------------------------------------------------------------------------COMMENT
MEDIUMnetbird-server/rootfs/etc/cont-init.d/00-config.sh5# ==============================================================================COMMENT
85 more matches not shown…
Redundant / Tautological Comments68 hits · 104 pts
SeverityFileLineSnippetContext
LOWbirdnet-go/rootfs/etc/cont-init.d/99-run.sh25# Check if alsa_card is providedCOMMENT
LOWnextcloud/rootfs/etc/cont-init.d/30-ssl.sh14 #Check if files existCOMMENT
LOWcalibre_web/rootfs/etc/cont-init.d/00-data_location.sh18 # Check if config is located in an acceptable locationCOMMENT
LOWcalibre/rootfs/etc/cont-init.d/20-folders.sh19 # Check if config is located in an acceptable locationCOMMENT
LOWmonica/rootfs/etc/cont-init.d/99-run.sh112# Check if APP_KEY is not 32 characters longCOMMENT
LOWjellyfin/rootfs/etc/cont-init.d/20-folders.sh41# Check if config is located in an acceptable locationCOMMENT
LOWbrowser_chromium/rootfs/etc/cont-init.d/90-ssl.sh11 #Check if files existCOMMENT
LOWimmich/rootfs/etc/cont-init.d/99-run.sh100 # Check if the root user exists.COMMENT
LOWimmich/rootfs/etc/cont-init.d/20-folders.sh81 # Check if the existing library is a directory and not a symlink and has contentsCOMMENT
LOWbirdnet-go-dev/rootfs/etc/cont-init.d/99-run.sh25# Check if alsa_card is providedCOMMENT
LOW⚡transmission_openvpn/rootfs/etc/cont-init.d/99-run.sh90 # Check if the line contains a txt fileCOMMENT
LOW⚡transmission_openvpn/rootfs/etc/cont-init.d/99-run.sh94 # Check if the txt file existsCOMMENT
LOW⚡transmission_openvpn/rootfs/etc/cont-init.d/99-run.sh96 # Check if the txt file exists in the /config/openvpn/ directoryCOMMENT
LOWwebtrees/rootfs/etc/cont-init.d/99-run.sh22# Check if a migration is neededCOMMENT
LOW…eta_manager/rootfs/etc/cont-init.d/20-configuration.sh26# Check if config file is there, or create one from templateCOMMENT
LOWphotoprism/rootfs/run.sh47 # Check if path existsCOMMENT
LOWphotoprism/rootfs/run.sh54 # Check if path writableCOMMENT
LOWphotoprism/rootfs/etc/cont-init.d/32-nginx_ssl.sh24 #Check if files existCOMMENT
LOWphotoprism/rootfs/etc/cont-init.d/99-run.sh121 # Check if path existsCOMMENT
LOWphotoprism/rootfs/etc/cont-init.d/99-run.sh128 # Check if path writableCOMMENT
LOW…ar2mqtt/rootfs/etc/cont-init.d/89-mqtt_autodiscover.sh11 # Check if availableCOMMENT
LOW…net-pi-zach/rootfs/etc/cont-init.d/91-nginx_ingress.sh35# Check if the NGINX configuration file existsCOMMENT
LOWbirdnet-pi-zach/rootfs/etc/cont-init.d/33-mqtt.sh44# Check if MQTT service is available and not disabledCOMMENT
LOWbirdnet-pi-zach/rootfs/etc/cont-init.d/33-mqtt.sh65# Check if manual MQTT configuration is providedCOMMENT
LOW…pi-zach/rootfs/etc/cont-init.d/02-restorestreamdata.sh22 # Check if there are .wav files in /config/TemporaryFilesCOMMENT
LOWbirdnet-pi-zach/rootfs/etc/cont-init.d/98-oldcpu.sh20# Check if the CPU supports AVX2COMMENT
LOW…net-pi-zach/rootfs/etc/cont-init.d/31-config_checks.sh34 # Check if the variable is in configcurrent, if not, append itCOMMENT
LOW…net-pi-zach/rootfs/etc/cont-init.d/81-modifications.sh36 # Check if port 80 is correctly configuredCOMMENT
LOW…net-pi-zach/rootfs/etc/cont-finish.d/savestreamdata.sh10 # Check if the file contains a valid WAV headerCOMMENT
LOWgrampsweb/rootfs/etc/cont-init.d/32-nginx_ssl.sh24 #Check if files existCOMMENT
LOWgrampsweb/rootfs/etc/cont-init.d/99-run.sh30# Check if the secret key is defined in addon optionsCOMMENT
LOWgrampsweb/rootfs/etc/cont-init.d/99-run.sh36 # Check if the secret file exists; if not, create a new oneCOMMENT
LOWbirdnet-pi/rootfs/etc/cont-init.d/91-nginx_ingress.sh39# Check if the NGINX configuration file existsCOMMENT
LOWbirdnet-pi/rootfs/etc/cont-init.d/33-mqtt.sh44# Check if MQTT service is available and not disabledCOMMENT
LOWbirdnet-pi/rootfs/etc/cont-init.d/33-mqtt.sh65# Check if manual MQTT configuration is providedCOMMENT
LOW…dnet-pi/rootfs/etc/cont-init.d/02-restorestreamdata.sh22 # Check if there are .wav files in /config/TemporaryFilesCOMMENT
LOWbirdnet-pi/rootfs/etc/cont-init.d/98-oldcpu.sh20# Check if the CPU supports AVX2COMMENT
LOWbirdnet-pi/rootfs/etc/cont-init.d/31-config_checks.sh34 # Check if the variable is in configcurrent, if not, append itCOMMENT
LOWbirdnet-pi/rootfs/etc/cont-init.d/81-modifications.sh36 # Check if port 80 is correctly configuredCOMMENT
LOWbirdnet-pi/rootfs/etc/cont-finish.d/savestreamdata.sh10 # Check if the file contains a valid WAV headerCOMMENT
LOW.github/workflows/on_issues.yml34 #Increment counterCOMMENT
LOW.github/workflows/on_issues.yml40 #Check if relevant to addonCOMMENT
LOW…ay2mqtt/rootfs/etc/cont-init.d/91-mqtt_autodiscover.sh12 # Check if availableCOMMENT
LOWenedisgateway2mqtt/rootfs/etc/cont-init.d/99-run.sh58# Check if database is here or create symlinkCOMMENT
LOWenedisgateway2mqtt/rootfs/etc/cont-init.d/99-run.sh75# Check if config file is there, or create one from templateCOMMENT
LOWenedisgateway2mqtt/rootfs/etc/cont-init.d/99-run.sh83 # Check if yaml is validCOMMENT
LOWnetalertx/rootfs/etc/cont-init.d/91-configure.sh85 # Check if the interface is already configuredCOMMENT
LOWkometa/rootfs/etc/cont-init.d/20-configuration.sh26# Check if config file is there, or create one from templateCOMMENT
LOWtransmission/rootfs/etc/cont-init.d/19-json_repair.sh13 # Check if json file valid or notCOMMENT
LOWtransmission/rootfs/etc/cont-init.d/19-json_repair.sh25 # Check if all keys are still there, or add themCOMMENT
LOWtransmission/rootfs/etc/cont-init.d/19-json_repair.sh28 # Check if key existsCOMMENT
LOW…qtt_dev/rootfs/etc/cont-init.d/91-mqtt_autodiscover.sh12 # Check if availableCOMMENT
LOWenedisgateway2mqtt_dev/rootfs/etc/cont-init.d/99-run.sh58# Check if database is here or create symlinkCOMMENT
LOWenedisgateway2mqtt_dev/rootfs/etc/cont-init.d/99-run.sh75# Check if config file is there, or create one from templateCOMMENT
LOWenedisgateway2mqtt_dev/rootfs/etc/cont-init.d/99-run.sh83 # Check if yaml is validCOMMENT
LOW.templates/01-custom_script.sh207# Check if there is actual commandsCOMMENT
LOW.templates/ha_entrypoint_modif.sh40# Check if shebang existsCOMMENT
LOW.templates/91-universal_graphic_drivers.sh139 # Check if we have allready applied this layerCOMMENT
LOW.templates/01-config_yaml.sh43 # Check if config is located in an acceptable locationCOMMENT
LOW.templates/01-config_yaml.sh96# Check if there are lines to readCOMMENT
8 more matches not shown…
Over-Commented Block99 hits · 98 pts
SeverityFileLineSnippetContext
LOW.coderabbit.yaml1# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.jsonCOMMENT
LOW…rchived_paperless_ngx/rootfs/etc/cont-init.d/99-run.sh141fiCOMMENT
LOWzzz_archived_paperless_ngx/rootfs/templates/config.yaml1#============================#COMMENT
LOWbirdnet-go/rootfs/etc/cont-init.d/01-structure.sh141####################COMMENT
LOWbirdnet-go/rootfs/etc/cont-init.d/33-mqtt.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOWbirdnet-go/rootfs/etc/cont-init.d/99-run.sh1#!/command/with-contenv bashioCOMMENT
LOWcalibre_web/rootfs/etc/cont-init.d/32-nginx.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOWcalibre_web/rootfs/etc/cont-init.d/32-nginx.sh21# keyfile=$(bashio::config 'keyfile')COMMENT
LOWcalibre_web/rootfs/etc/cont-init.d/80-configuration.sh21COMMENT
LOWubooquity/rootfs/etc/32-nginx_ingress.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOWfree_games_claimer/rootfs/etc/cont-init.d/20-folders.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOWnginx_webserver_proxy/apparmor.txt1#include <tunables/global>COMMENT
LOWbinance-trading-bot/rootfs/etc/cont-init.d/99-run.sh1#!/usr/bin/env bashioCOMMENT
LOWbrowser_chromium/rootfs/etc/cont-init.d/20-folders.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOWcleanuparr/rootfs/ha_entrypoint.sh1#!/bin/bashCOMMENT
LOWcleanuparr/rootfs/ha_entrypoint.sh41COMMENT
LOWbirdnet-go-dev/merge-prs.sh1#!/usr/bin/env bashCOMMENT
LOWbirdnet-go-dev/merge-prs.sh21# that does not merge onto main at all.COMMENT
LOWbirdnet-go-dev/rootfs/etc/cont-init.d/01-structure.sh141fiCOMMENT
LOWbirdnet-go-dev/rootfs/etc/cont-init.d/33-mqtt.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOWbirdnet-go-dev/rootfs/etc/cont-init.d/33-mariadb.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOWinadyn/rootfs/etc/cont-init.d/99-run.sh1#!/usr/bin/env bashioCOMMENT
LOWaddons_updater/rootfs/usr/bin/ha_version.py1#!/usr/bin/env python3COMMENT
LOWportainer/rootfs/etc/cont-init.d/31-portainer.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOWcodex/rootfs/etc/cont-init.d/20-folders.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOW…laude/skills/hassio-addon-workflow/scripts/validate.sh1#!/usr/bin/env bashCOMMENT
LOW…aude/skills/hassio-addon-workflow/scripts/env_trace.sh1#!/usr/bin/env bashCOMMENT
LOW.claude/skills/hassio-addon-workflow/scripts/measure.sh1#!/usr/bin/env bashCOMMENT
LOW.claude/skills/hassio-addon-workflow/scripts/traps.sh1#!/usr/bin/env bashCOMMENT
LOW…aude/skills/hassio-addon-workflow/scripts/pr_review.sh1#!/usr/bin/env bashCOMMENT
LOW…aude/skills/hassio-addon-workflow/scripts/pr_review.sh101 # CI later counts as blocking until someone puts it here on purpose.COMMENT
LOWomni-tools/rootfs/etc/cont-init.d/99-run.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOWobsidian_syncserver_npm/run.sh1#!/command/with-contenv bashCOMMENT
LOWobsidian_syncserver_npm/run.sh121# database. This only replaces the "Congratulations" default page, so that aCOMMENT
LOWportainer_be/rootfs/etc/cont-init.d/31-portainer.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOWtandoor_recipes/rootfs/etc/cont-init.d/99-run.sh41 sqlite)COMMENT
LOWtandoor_recipes/rootfs/etc/cont-init.d/99-run.sh61 # pip install pymysql &>/dev/nullCOMMENT
LOWcollabora/rootfs/usr/local/bin/collabora-run.sh1#!/bin/bashCOMMENT
LOWcomicarr/rootfs/etc/cont-init.d/20-config_location.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOW.github/generate_map.py41# It applies only to rows that carry a real last_checked date and have sinceCOMMENT
LOW.github/workflows/on_issues_ai_triage.yaml1---COMMENT
LOW.github/workflows/on_issues_ai_triage.yaml181 # issue-open event is the outside reporter, who never has write.COMMENT
LOW.github/workflows/on_issues_ai_triage.yaml201 # actor". allowed_non_write_users does NOT cover this — it is onlyCOMMENT
LOW.github/workflows/on_issues_ai_triage.yaml241 set confidence accordingly rather than searching for the code.COMMENT
LOW.github/workflows/on_issues_ai_triage.yaml301 gh issue edit "$ISSUE" --repo "$REPO" --add-label ai:needs-info >/dev/null 2>&1 || trueCOMMENT
LOW.github/workflows/on_issues_ai_triage.yaml321 # Hand the issue to a human and take it out of the retry rotation.COMMENT
LOW.github/workflows/on_issues_ai_triage.yaml341 # Did the run die on its turn budget rather than on a workflow fault?COMMENT
LOW.github/workflows/on_issues_ai_triage.yaml381 "$EXECUTION_FILE" >/dev/null 2>&1COMMENT
LOW.github/workflows/on_issues_ai_triage.yaml401COMMENT
LOW.github/workflows/on_issues_ai_triage.yaml441 fiCOMMENT
LOW.github/workflows/on_issues_ai_triage.yaml501 COMMENT=""; CONF="low"COMMENT
LOW.github/workflows/on_pr_coderabbit.yml1---COMMENT
LOW.github/workflows/on_pr_coderabbit.yml81 if: steps.claim.outputs.go == 'true'COMMENT
LOW.github/workflows/onpush_builder.yaml281 run: |COMMENT
LOW.github/workflows/on_claude_mention.yml1---COMMENT
LOW.github/workflows/daily_ai_fix.yaml1---COMMENT
LOW.github/workflows/daily_ai_fix.yaml21# Tier 2 daily_ai_fix.yaml (this) Opus 5-xhigh daily fix/plan sweepCOMMENT
LOW.github/workflows/helper_stats_graphs.yaml41 for(i=2; i<=NR; i++){COMMENT
LOW.github/workflows/on_issue_approved.yaml1---COMMENT
LOW.github/scripts/ai_guard_paths.sh1#!/usr/bin/env bashCOMMENT
39 more matches not shown…
Verbosity Indicators25 hits · 40 pts
SeverityFileLineSnippetContext
LOW⚡nginx_webserver_proxy/run.sh22# Step 1: Read add-on optionsCOMMENT
LOW⚡nginx_webserver_proxy/run.sh36# Step 2: Validate static_site_rootCOMMENT
LOW⚡nginx_webserver_proxy/run.sh72# Step 3: Write static-site server block into NPM's default_host dirCOMMENT
LOW⚡nginx_webserver_proxy/run.sh110# Step 4: Hand off to NPM's own s6-overlay bootCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh38# Step 1: Read add-on optionsCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh58# Step 2: Resolve admin credentialsCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh85# Step 3: Point CouchDB at persistent storageCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh119# Step 4: Start CouchDB in the backgroundCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh130# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh147# Step 6: Provision for LiveSyncCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh221# Step 7: Hand the container's lifetime back to CouchDBCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh43# Step 1: Read add-on optionsCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh63# Step 2: Resolve admin credentialsCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh90# Step 3: Point CouchDB at persistent storageCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh173# Step 4: Start CouchDB in the backgroundCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh188# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh205# Step 6: Provision for LiveSyncCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh279# Step 7: Hand the container's lifetime back to CouchDBCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh38# Step 1: Read add-on optionsCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh64# Step 2: Resolve admin credentialsCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh91# Step 3: Point CouchDB at persistent storageCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh182# Step 4: Start CouchDB in the backgroundCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh193# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh210# Step 6: Provision for LiveSyncCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh284# Step 7: Hand the container's lifetime back to CouchDBCOMMENT
Structural Annotation Overuse25 hits · 40 pts
SeverityFileLineSnippetContext
LOW⚡nginx_webserver_proxy/run.sh22# Step 1: Read add-on optionsCOMMENT
LOW⚡nginx_webserver_proxy/run.sh36# Step 2: Validate static_site_rootCOMMENT
LOW⚡nginx_webserver_proxy/run.sh72# Step 3: Write static-site server block into NPM's default_host dirCOMMENT
LOW⚡nginx_webserver_proxy/run.sh110# Step 4: Hand off to NPM's own s6-overlay bootCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh38# Step 1: Read add-on optionsCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh58# Step 2: Resolve admin credentialsCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh85# Step 3: Point CouchDB at persistent storageCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh119# Step 4: Start CouchDB in the backgroundCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh130# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh147# Step 6: Provision for LiveSyncCOMMENT
LOW⚡obsidian_syncserver_solo/run.sh221# Step 7: Hand the container's lifetime back to CouchDBCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh43# Step 1: Read add-on optionsCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh63# Step 2: Resolve admin credentialsCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh90# Step 3: Point CouchDB at persistent storageCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh173# Step 4: Start CouchDB in the backgroundCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh188# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh205# Step 6: Provision for LiveSyncCOMMENT
LOW⚡obsidian_syncserver_npm/run.sh279# Step 7: Hand the container's lifetime back to CouchDBCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh38# Step 1: Read add-on optionsCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh64# Step 2: Resolve admin credentialsCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh91# Step 3: Point CouchDB at persistent storageCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh182# Step 4: Start CouchDB in the backgroundCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh193# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh210# Step 6: Provision for LiveSyncCOMMENT
LOW⚡obsidian_syncserver_ssl/run.sh284# Step 7: Hand the container's lifetime back to CouchDBCOMMENT
Self-Referential Comments9 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMimmich/rootfs/etc/cont-init.d/99-run.sh116 # Create the database if it does not existCOMMENT
MEDIUMbirdnet-go-dev/rootfs/etc/cont-init.d/33-mariadb.sh80# Create the database — birdnet-go connects to an existing schema and does NOTCOMMENT
MEDIUMaddons_updater/rootfs/etc/cont-init.d/99-run.sh94 #Define the folder addonCOMMENT
MEDIUM…pi-zach/rootfs/etc/cont-init.d/02-restorestreamdata.sh27 # Create the destination directory if it does not existCOMMENT
MEDIUM…net-pi-zach/rootfs/etc/cont-finish.d/savestreamdata.sh31 # Create the destination directoryCOMMENT
MEDIUM…dnet-pi/rootfs/etc/cont-init.d/02-restorestreamdata.sh27 # Create the destination directory if it does not existCOMMENT
MEDIUMbirdnet-pi/rootfs/etc/cont-finish.d/savestreamdata.sh31 # Create the destination directoryCOMMENT
MEDIUM.templates/ha_entrypoint.sh77 # Create a tiny test executable to confirm "exec" worksCOMMENT
MEDIUMzzz_archived_omada/rootfs/etc/cont-init.d/99-run.sh45 # Create a symbolic link in the current working directoryCOMMENT
Excessive Try-Catch Wrapping20 hits · 22 pts
SeverityFileLineSnippetContext
LOW…aude/skills/hassio-addon-workflow/scripts/env_trace.sh47except Exception as err:CODE
LOW.claude/skills/hassio-addon-workflow/scripts/measure.sh49 except Exception:CODE
LOWbirdnet-pi-zach/rootfs/helpers/birdnet_to_mqtt.py102 except Exception as e:CODE
LOWbirdnet-pi-zach/rootfs/helpers/birdnet_to_mqtt.py136except Exception as e:CODE
LOWbirdnet-pi/rootfs/helpers/birdnet_to_mqtt.py102 except Exception as e:CODE
LOWbirdnet-pi/rootfs/helpers/birdnet_to_mqtt.py136except Exception as e:CODE
LOW.github/generate_map.py190 except Exception:CODE
LOW…/rootfs/usr/local/bin/headroom-posttooluse-compress.py62 except Exception:CODE
LOW…/rootfs/usr/local/bin/headroom-posttooluse-compress.py71 except Exception:CODE
LOW…/rootfs/usr/local/bin/headroom-posttooluse-compress.py217 except Exception:CODE
LOW…de_desktop/rootfs/usr/local/bin/claude-tools-doctor.sh58except Exception as exc:CODE
LOW…de_desktop/rootfs/usr/local/bin/claude-tools-doctor.sh86 except Exception as exc:CODE
LOW…de_desktop/rootfs/usr/local/bin/claude-tools-doctor.sh118except Exception as exc:CODE
LOW…aude_desktop/rootfs/etc/cont-init.d/82-claude_tools.sh79except Exception:CODE
LOW…aude_desktop/rootfs/etc/cont-init.d/82-claude_tools.sh495 except Exception:CODE
LOW…aude_desktop/rootfs/etc/cont-init.d/82-claude_tools.sh504 except Exception:CODE
LOW…aude_desktop/rootfs/etc/cont-init.d/82-claude_tools.sh551 except Exception:CODE
LOW…aude_desktop/rootfs/etc/cont-init.d/82-claude_tools.sh651except Exception:CODE
MEDIUM…aude_desktop/rootfs/etc/cont-init.d/82-claude_tools.sh491def load_state():CODE
MEDIUM…aude_desktop/rootfs/etc/cont-init.d/82-claude_tools.sh499def save_state(state):CODE
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMfree_games_claimer/rootfs/etc/cont-init.d/99-run.sh49# The Home Assistant port mapping is intentionally kept at 6080 for a seamlessCOMMENT
MEDIUMplex/rootfs/etc/cont-init.d/21-folders.sh41 # Fallback (may be slower / less robust than rsync for huge libs)COMMENT
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…es_claimer/rootfs/usr/local/bin/migrate_vogler_data.py48except ValueError:CODE
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
LOW…hived_paperless_ngx/rootfs/etc/cont-init.d/31-nginx.sh16 bashio::log.warning "Ssl enabled, your site will be available at $(bashio::config "PAPERLESS_URL"). Don't forgetCODE
MEDIUMzzz_archived_paperless_ngx/rootfs/templates/config.yaml7# This file must be filled according to the yaml format. If the format is invalid, the addon will note an error. To valiCOMMENT
Unused Imports3 hits · 3 pts
SeverityFileLineSnippetContext
LOW…es_claimer/rootfs/usr/local/bin/migrate_vogler_data.py4CODE
LOWaddons_updater/rootfs/usr/bin/ha_version.py22CODE
LOW…/rootfs/usr/local/bin/headroom-posttooluse-compress.py59CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMente/rootfs/etc/cont-init.d/99-run.sh279# Main orchestrationCOMMENT
Hyper-Verbose Identifiers2 hits · 2 pts
SeverityFileLineSnippetContext
LOW.github/generate_map.py128def fetch_stargazer_usernames():CODE
LOW…sktop/rootfs/usr/local/bin/claude-safestorage-patch.js150function skipWhitespaceAndComments(source, i) {CODE
Example Usage Blocks1 hit · 1 pts
SeverityFileLineSnippetContext
LOW⚡.templates/bashio-standalone.sh354# Usage:COMMENT
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…es_claimer/rootfs/usr/local/bin/migrate_vogler_data.py124CODE