Repository Analysis

alexbelgium/hassio-addons

My homeassistant addons

8.2 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of alexbelgium/hassio-addons, a Shell project with 2,579 GitHub stars. SynthScan v2.0 examined 107,790 lines of code across 1239 source files, recording 396 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 8.2 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).

8.2
Adjusted Score
8.2
Raw Score
100%
Time Factor
2026-08-28
Last Push
2.6K
Stars
Shell
Language
107.8K
Lines of Code
1.2K
Files
396
Pattern Hits
2026-08-29
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 158LOW 238

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 396 distinct pattern matches across 14 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 Separators143 hits · 540 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
MEDIUMnginx_webserver_proxy/run.sh21# ---------------------------------------------------------------------------COMMENT
MEDIUMnginx_webserver_proxy/run.sh23# ---------------------------------------------------------------------------COMMENT
MEDIUMnginx_webserver_proxy/run.sh35# ---------------------------------------------------------------------------COMMENT
MEDIUMnginx_webserver_proxy/run.sh37# ---------------------------------------------------------------------------COMMENT
MEDIUMnginx_webserver_proxy/run.sh71# ---------------------------------------------------------------------------COMMENT
MEDIUMnginx_webserver_proxy/run.sh75# ---------------------------------------------------------------------------COMMENT
MEDIUMnginx_webserver_proxy/run.sh109# ---------------------------------------------------------------------------COMMENT
MEDIUMnginx_webserver_proxy/run.sh111# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh37# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh39# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh57# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh63# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh84# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh90# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh118# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh120# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh129# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh131# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh146# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh151# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_solo/run.sh220# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_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
MEDIUMcleanuparr/rootfs/ha_entrypoint.sh13# ─── Source standalone bashio if available ───────────────────────────────────COMMENT
MEDIUMcleanuparr/rootfs/ha_entrypoint.sh19# ─── Run cont-init.d scripts (banner, custom_script, ...) ────────────────────COMMENT
MEDIUMcleanuparr/rootfs/ha_entrypoint.sh28# ─── Setup persistent data directory ─────────────────────────────────────────COMMENT
MEDIUMcleanuparr/rootfs/ha_entrypoint.sh43# ─── 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
MEDIUMobsidian_syncserver_npm/run.sh42# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh44# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh62# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh68# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh89# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh95# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh172# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh178# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh187# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh189# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh204# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh209# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_syncserver_npm/run.sh278# ---------------------------------------------------------------------------COMMENT
MEDIUMobsidian_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
MEDIUMnetbird-server/rootfs/etc/cont-init.d/00-config.sh8# ==============================================================================COMMENT
MEDIUMobsidian_syncserver_ssl/run.sh37# ---------------------------------------------------------------------------COMMENT
83 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
LOWtransmission_openvpn/rootfs/etc/cont-init.d/99-run.sh90 # Check if the line contains a txt fileCOMMENT
LOWtransmission_openvpn/rootfs/etc/cont-init.d/99-run.sh94 # Check if the txt file existsCOMMENT
LOWtransmission_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 Block94 hits · 92 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
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
LOWbirdnet-go-dev/merge-prs.sh1#!/usr/bin/env bashCOMMENT
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…aude/skills/hassio-addon-workflow/scripts/pr_review.sh1#!/usr/bin/env bashCOMMENT
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.yaml361 ((.terminal_reason? // "") == "max_turns")))' \COMMENT
LOW.github/workflows/on_issues_ai_triage.yaml381 restore_needs_infoCOMMENT
LOW.github/workflows/on_issues_ai_triage.yaml421COMMENT
LOW.github/workflows/on_issues_ai_triage.yaml501COMMENT
LOW.github/workflows/on_issues_ai_triage.yaml601 # GITHUB_TOKEN + the job-level actions:write above needs no PAT atCOMMENT
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
LOW.github/scripts/resolve_symlinks.sh1#!/usr/bin/env bashCOMMENT
LOW.github/linters/.markdown-lint.yml1---COMMENT
LOWwhoogle/rootfs/etc/cont-init.d/32-nginx_ingress.sh1#!/usr/bin/with-contenv bashioCOMMENT
LOWtransmission/rootfs/etc/cont-init.d/19-json_repair.sh41 jq . -S "${JSONTOCHECK}" | cat > temp.json && mv temp.json "${JSONTOCHECK}"COMMENT
34 more matches not shown…
Verbosity Indicators25 hits · 40 pts
SeverityFileLineSnippetContext
LOWnginx_webserver_proxy/run.sh22# Step 1: Read add-on optionsCOMMENT
LOWnginx_webserver_proxy/run.sh36# Step 2: Validate static_site_rootCOMMENT
LOWnginx_webserver_proxy/run.sh72# Step 3: Write static-site server block into NPM's default_host dirCOMMENT
LOWnginx_webserver_proxy/run.sh110# Step 4: Hand off to NPM's own s6-overlay bootCOMMENT
LOWobsidian_syncserver_solo/run.sh38# Step 1: Read add-on optionsCOMMENT
LOWobsidian_syncserver_solo/run.sh58# Step 2: Resolve admin credentialsCOMMENT
LOWobsidian_syncserver_solo/run.sh85# Step 3: Point CouchDB at persistent storageCOMMENT
LOWobsidian_syncserver_solo/run.sh119# Step 4: Start CouchDB in the backgroundCOMMENT
LOWobsidian_syncserver_solo/run.sh130# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOWobsidian_syncserver_solo/run.sh147# Step 6: Provision for LiveSyncCOMMENT
LOWobsidian_syncserver_solo/run.sh221# Step 7: Hand the container's lifetime back to CouchDBCOMMENT
LOWobsidian_syncserver_npm/run.sh43# Step 1: Read add-on optionsCOMMENT
LOWobsidian_syncserver_npm/run.sh63# Step 2: Resolve admin credentialsCOMMENT
LOWobsidian_syncserver_npm/run.sh90# Step 3: Point CouchDB at persistent storageCOMMENT
LOWobsidian_syncserver_npm/run.sh173# Step 4: Start CouchDB in the backgroundCOMMENT
LOWobsidian_syncserver_npm/run.sh188# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOWobsidian_syncserver_npm/run.sh205# Step 6: Provision for LiveSyncCOMMENT
LOWobsidian_syncserver_npm/run.sh279# Step 7: Hand the container's lifetime back to CouchDBCOMMENT
LOWobsidian_syncserver_ssl/run.sh38# Step 1: Read add-on optionsCOMMENT
LOWobsidian_syncserver_ssl/run.sh64# Step 2: Resolve admin credentialsCOMMENT
LOWobsidian_syncserver_ssl/run.sh91# Step 3: Point CouchDB at persistent storageCOMMENT
LOWobsidian_syncserver_ssl/run.sh182# Step 4: Start CouchDB in the backgroundCOMMENT
LOWobsidian_syncserver_ssl/run.sh193# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOWobsidian_syncserver_ssl/run.sh210# Step 6: Provision for LiveSyncCOMMENT
LOWobsidian_syncserver_ssl/run.sh284# Step 7: Hand the container's lifetime back to CouchDBCOMMENT
Structural Annotation Overuse25 hits · 40 pts
SeverityFileLineSnippetContext
LOWnginx_webserver_proxy/run.sh22# Step 1: Read add-on optionsCOMMENT
LOWnginx_webserver_proxy/run.sh36# Step 2: Validate static_site_rootCOMMENT
LOWnginx_webserver_proxy/run.sh72# Step 3: Write static-site server block into NPM's default_host dirCOMMENT
LOWnginx_webserver_proxy/run.sh110# Step 4: Hand off to NPM's own s6-overlay bootCOMMENT
LOWobsidian_syncserver_solo/run.sh38# Step 1: Read add-on optionsCOMMENT
LOWobsidian_syncserver_solo/run.sh58# Step 2: Resolve admin credentialsCOMMENT
LOWobsidian_syncserver_solo/run.sh85# Step 3: Point CouchDB at persistent storageCOMMENT
LOWobsidian_syncserver_solo/run.sh119# Step 4: Start CouchDB in the backgroundCOMMENT
LOWobsidian_syncserver_solo/run.sh130# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOWobsidian_syncserver_solo/run.sh147# Step 6: Provision for LiveSyncCOMMENT
LOWobsidian_syncserver_solo/run.sh221# Step 7: Hand the container's lifetime back to CouchDBCOMMENT
LOWobsidian_syncserver_npm/run.sh43# Step 1: Read add-on optionsCOMMENT
LOWobsidian_syncserver_npm/run.sh63# Step 2: Resolve admin credentialsCOMMENT
LOWobsidian_syncserver_npm/run.sh90# Step 3: Point CouchDB at persistent storageCOMMENT
LOWobsidian_syncserver_npm/run.sh173# Step 4: Start CouchDB in the backgroundCOMMENT
LOWobsidian_syncserver_npm/run.sh188# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOWobsidian_syncserver_npm/run.sh205# Step 6: Provision for LiveSyncCOMMENT
LOWobsidian_syncserver_npm/run.sh279# Step 7: Hand the container's lifetime back to CouchDBCOMMENT
LOWobsidian_syncserver_ssl/run.sh38# Step 1: Read add-on optionsCOMMENT
LOWobsidian_syncserver_ssl/run.sh64# Step 2: Resolve admin credentialsCOMMENT
LOWobsidian_syncserver_ssl/run.sh91# Step 3: Point CouchDB at persistent storageCOMMENT
LOWobsidian_syncserver_ssl/run.sh182# Step 4: Start CouchDB in the backgroundCOMMENT
LOWobsidian_syncserver_ssl/run.sh193# Step 5: Wait for CouchDB to accept requestsCOMMENT
LOWobsidian_syncserver_ssl/run.sh210# Step 6: Provision for LiveSyncCOMMENT
LOWobsidian_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.sh29 # 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.sh45# 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
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