AI Slop Code Risk Monitor

flipperdevices/flipperzero-firmware

SlopCodeMonitor badge for flipperdevices/flipperzero-firmware Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Flipper Zero firmware source code

3.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for flipperdevices/flipperzero-firmware, a C project with 16,809 GitHub stars. SynthScan examined 425,375 lines of code across 2546 source files, recording 1132 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 3.7 (Low 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.

3.7
Adjusted Signal
3.7
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
16.8K
Stars
C
Language
425.4K
Lines of Code
2.5K
Files
1.1K
Pattern Hits
2026-10-31
Scan Date
0.03
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 10.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 5.3/100 · LOW

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

Agent Over-Engineering Ratio 2.5/100 · LOW

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

PR Review Velocity Impact 17.4/100 · LOW

Which changes need focused human review? 1132 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 74MEDIUM 61LOW 997

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 1132 distinct pattern matches across 18 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 Block869 hits · 768 pts
SeverityFileLineSnippetContext
LOWdocumentation/file_formats/SubGhzFileFormats.md301#Custom_preset_name: AM_2COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1# Doxyfile 1.10.0COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg21# Use doxygen to compare the used configuration file with the templateCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg41# project for which the documentation is generated. This name is used in theCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg61# pixels and the maximum width should not exceed 200 pixels. Doxygen will copyCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg81# and will distribute the generated files over these directories. Enabling thisCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg101# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCIICOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg121COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg161# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES thenCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg181FULL_PATH_NAMES = NOCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg201COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg221# such asCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg241# to treat a multi-line C++ comment block as a detailed description. Set thisCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg261COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg281# "sideeffect=@par Side Effects:^^"COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg301COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg321COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg341# use: inc=Fortran f=C.COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg361MARKDOWN_SUPPORT = YESCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg381MARKDOWN_ID_STYLE = DOXYGENCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg401# If you use Microsoft's C++/CLI language, you should set this option to YES toCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg421# The default value is: YES.COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg441# (for instance a group of public functions) to be put as a subgroup of thatCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg461# with only public data fields or simple typedef fields will be shown inline inCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg481# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. ThisCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg501# encounter. Generating dot graphs in parallel is controlled by theCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg521# class members and static file members will be hidden unless theCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg541# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internalCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg561# This flag is only useful for Objective-C code. If set to YES, local methods,COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg581# The default value is: YES.COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg601COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg621INTERNAL_DOCS = NOCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg641# their full class and namespace scopes in the documentation. If set to YES, theCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg661# the files that are included by a file in the documentation of that file.COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg681# The default value is: YES.COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg701# (brief and detailed) documentation of class members so that constructors andCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg721# be sorted only by class name, not including the namespace part.COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg741# The default value is: YES.COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg761COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg781# Set the SHOW_USED_FILES tag to NO to disable the list of files generated atCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg801COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg821# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILECOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg841# standard output by doxygen. If QUIET is set to YES this implies that theCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg861WARN_IF_UNDOCUMENTED = NOCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg881# documentation, but not about the absence of documentation. If EXTRACT_ALL isCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg901# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined doxygen will notCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg921WARN_FORMAT = "$file:$line: $text"COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg961# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen usesCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg981# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp andCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1081# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol namesCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1101COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1121# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is theCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1141# The FILTER_PATTERNS tag can be used to specify filters on a per file patternCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1161# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per fileCOMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1181# Minimum value: 7, maximum value: 10000, default value: 72.COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1201# The default value is: NO.COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1221COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1241COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1261COMMENT
LOWdocumentation/doxygen/Doxyfile.cfg1281ALPHABETICAL_INDEX = YESCOMMENT
809 more matches not shown…
Cross-Language Confusion (JS/TS)64 hits · 452 pts
SeverityFileLineSnippetContext
HIGH⚡…ons/system/js_app/examples/apps/Scripts/stringutils.js4print(lengthOfText);CODE
HIGH⚡…ons/system/js_app/examples/apps/Scripts/stringutils.js9print(substringResult);CODE
HIGH⚡…ons/system/js_app/examples/apps/Scripts/stringutils.js13print(result2);CODE
HIGH⚡…ons/system/js_app/examples/apps/Scripts/stringutils.js16print(upperCaseText);CODE
HIGH⚡…ons/system/js_app/examples/apps/Scripts/stringutils.js19print(lowerCaseText);CODE
HIGH…cations/system/js_app/examples/apps/Scripts/console.js1print("print", 1);CODE
HIGH⚡…/system/js_app/examples/apps/Scripts/array_buf_test.js2print("len =", arr_1.buffer.byteLength);CODE
HIGH⚡…/system/js_app/examples/apps/Scripts/array_buf_test.js5print("slice len =", arr_2.buffer.byteLength);CODE
HIGH⚡…/system/js_app/examples/apps/Scripts/array_buf_test.js7 print(arr_2[i]);CODE
HIGH…ons/system/js_app/examples/apps/Scripts/badusb_demo.js32 print("USB is connected");CODE
HIGH…ons/system/js_app/examples/apps/Scripts/badusb_demo.js58 print("USB not connected");CODE
HIGH…tions/system/js_app/examples/apps/Scripts/uart_echo.js9 print("0x" + data_view[0].toString(16));CODE
HIGH…plications/system/js_app/examples/apps/Scripts/load.js3print(result);CODE
HIGH…s/system/js_app/examples/apps/Scripts/uart_echo_8e1.js13 print("0x" + data_view[0].toString(16));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js3print("math.abs(-5):", math.abs(-5));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js4print("math.acos(0.5):", math.acos(0.5));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js5print("math.acosh(2):", math.acosh(2));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js6print("math.asin(0.5):", math.asin(0.5));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js7print("math.asinh(2):", math.asinh(2));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js8print("math.atan(1):", math.atan(1));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js9print("math.atan2(1, 1):", math.atan2(1, 1));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js10print("math.atanh(0.5):", math.atanh(0.5));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js11print("math.cbrt(27):", math.cbrt(27));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js12print("math.ceil(5.3):", math.ceil(5.3));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js13print("math.clz32(1):", math.clz32(1));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js14print("math.cos(math.PI):", math.cos(math.PI));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js15print("math.exp(1):", math.exp(1));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js16print("math.floor(5.7):", math.floor(5.7));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js17print("math.max(3, 5):", math.max(3, 5));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js18print("math.min(3, 5):", math.min(3, 5));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js19print("math.pow(2, 3):", math.pow(2, 3));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js20print("math.random():", math.random());CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js21print("math.sign(-5):", math.sign(-5));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js22print("math.sin(math.PI/2):", math.sin(math.PI / 2));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js23print("math.sqrt(25):", math.sqrt(25));CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/math.js24print("math.trunc(5.7):", math.trunc(5.7));CODE
HIGH⚡…ations/system/js_app/examples/apps/Scripts/bad_uart.js8 print("No CLI response");CODE
HIGH⚡…ations/system/js_app/examples/apps/Scripts/bad_uart.js16 print("key:", serial.readln());CODE
HIGH⚡…ations/system/js_app/examples/apps/Scripts/bad_uart.js18 print("uci cmd not found");CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/path.js3print("script has __dirname of" + __dirname);CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/path.js4print("script has __filename of" + __filename);CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/path.js6 print("math.js exist here.");CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/path.js8 print("math.js does not exist here.");CODE
HIGH⚡…ions/system/js_app/examples/apps/Scripts/event_loop.js5 print("Hi after 1337 ms");CODE
HIGH⚡…ions/system/js_app/examples/apps/Scripts/event_loop.js10 print("Counter two:", counter);CODE
HIGH⚡…ions/system/js_app/examples/apps/Scripts/event_loop.js19 print("Counter one:", counter);CODE
HIGH…ons/system/js_app/examples/apps/Scripts/interactive.js91print("If you're stuck here, something went wrong, re-run the script")CODE
HIGH…ons/system/js_app/examples/apps/Scripts/interactive.js93print("\n\nFinished correctly :)")CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/gpio.js14print("Commencing blinking (PC3)");CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/gpio.js21print("Commencing PWM (PA7)");CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/gpio.js28print("Press the button (PC1)");CODE
HIGH⚡…plications/system/js_app/examples/apps/Scripts/gpio.js30 print("PC0 is at", pot.readAnalog(), "mV");CODE
HIGH⚡…cations/system/js_app/examples/apps/Scripts/storage.js4print("File exists:", storage.fileExists(path));CODE
HIGH⚡…cations/system/js_app/examples/apps/Scripts/storage.js6print("Writing...");CODE
HIGH⚡…cations/system/js_app/examples/apps/Scripts/storage.js11print("File exists:", storage.fileExists(path));CODE
HIGH⚡…cations/system/js_app/examples/apps/Scripts/storage.js17print("Reading...");CODE
HIGH⚡…cations/system/js_app/examples/apps/Scripts/storage.js21print(text);CODE
HIGH⚡…cations/system/js_app/examples/apps/Scripts/storage.js23print("Removing...")CODE
HIGH⚡…cations/system/js_app/examples/apps/Scripts/storage.js26print("Done")CODE
HIGH⚡…lications/system/js_app/examples/apps/Scripts/delay.js1print("start");CODE
4 more matches not shown…
Decorative Section Separators38 hits · 90 pts
SeverityFileLineSnippetContext
MEDIUM⚡documentation/doxygen/Doxyfile.cfg2293#---------------------------------------------------------------------------COMMENT
MEDIUM⚡documentation/doxygen/Doxyfile.cfg2295#---------------------------------------------------------------------------COMMENT
MEDIUM⚡documentation/doxygen/Doxyfile.cfg2305#---------------------------------------------------------------------------COMMENT
MEDIUM⚡documentation/doxygen/Doxyfile.cfg2307#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg26#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg28#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg515#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg517#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg836#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg838#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg942#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg944#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg1185#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg1187#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg1272#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg1274#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg1292#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg1294#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg1958#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg1960#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2141#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2143#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2197#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2199#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2241#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2243#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2275#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2277#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2331#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2333#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2369#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2371#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2448#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2450#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2494#---------------------------------------------------------------------------COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg2496#---------------------------------------------------------------------------COMMENT
MEDIUMapplications/system/snake_game/snake_game.c414// ┌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┐COMMENT
MEDIUMapplications/system/snake_game/snake_game.c430// └╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┘COMMENT
Excessive Try-Catch Wrapping40 hits · 52 pts
SeverityFileLineSnippetContext
LOWscripts/update.py258 except Exception as e:CODE
LOWscripts/send_firebase_notification.py11 except Exception as e:CODE
LOWscripts/send_firebase_notification.py22 except Exception as e:CODE
MEDIUMscripts/send_firebase_notification.py7def __init__(self, service_account_file):CODE
MEDIUMscripts/send_firebase_notification.py15def send(self, title, body, condition):CODE
LOWscripts/selfupdate.py63 except Exception as e:CODE
LOWscripts/hs.py119 except Exception as e:CODE
LOWscripts/runfap.py98 except Exception as e:CODE
LOWscripts/assets.py278 except Exception as e:STRING
LOWscripts/storage.py18 except Exception as e:CODE
MEDIUMscripts/storage.py19 print(f"Error: {e}")CODE
LOWscripts/storage.py125 except Exception:CODE
MEDIUMscripts/storage.py14def wrapper(*args, **kwargs):CODE
LOWscripts/slideshow.py37 except Exception as e:CODE
LOWscripts/testops.py137 except Exception as e:CODE
LOWscripts/sconsdist.py123 except Exception as ex:CODE
LOWscripts/wifi_board.py52 except Exception as e:CODE
LOWscripts/wifi_board.py75 except Exception as e:CODE
LOWscripts/wifi_board.py173 except Exception as e:CODE
LOWscripts/wifi_board.py204 except Exception as e:CODE
MEDIUMscripts/wifi_board.py166def update(self):CODE
LOWscripts/fwflash.py255 except Exception:CODE
MEDIUMscripts/fwflash.py251def _valid_ip(self, address):CODE
LOWscripts/fbt_tools/fbt_apps.py119 except Exception:CODE
LOWscripts/fbt_tools/fbt_apps.py140 except Exception as e:CODE
MEDIUMscripts/fbt_tools/fbt_apps.py113def LoadAppManifest(env, entry):CODE
LOWscripts/flipper/storage.py177 except Exception:CODE
LOWscripts/flipper/storage.py220 except Exception:CODE
LOWscripts/flipper/utils/openocd.py114 except Exception as e:CODE
LOWscripts/flipper/utils/openocd.py123 except Exception as e:CODE
LOWscripts/fbt/version.py29 except Exception as e:CODE
MEDIUMscripts/fbt/version.py12def get_fast_git_version_id():CODE
LOWscripts/fbt/appmanifest.py226 except Exception as e:CODE
LOW⚡scripts/debug/FreeRTOS/FreeRTOSgdb/Task.py30 except Exception as exc:CODE
MEDIUM⚡scripts/debug/FreeRTOS/FreeRTOSgdb/Task.py31 print("Error Initializing Task Inspector: %s" % str(exc))CODE
LOW⚡scripts/debug/FreeRTOS/FreeRTOSgdb/Task.py38 except Exception as exc:CODE
LOWscripts/debug/FreeRTOS/FreeRTOSgdb/List.py33 except Exception as exc:CODE
MEDIUMscripts/debug/FreeRTOS/FreeRTOSgdb/List.py26def Assign(self, listObj):CODE
LOWscripts/debug/FreeRTOS/FreeRTOSgdb/QueueTools.py103 except Exception as exc:CODE
LOWscripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py102 except Exception as e:CODE
Empty Error Handlers7 hits · 35 pts
SeverityFileLineSnippetContext
HIGHscripts/testops.py133except:CODE
HIGHscripts/guruguru.py40except KeyboardInterrupt:CODE
HIGHscripts/fbt_tools/openocd.py41except KeyError:CODE
HIGHscripts/fbt_tools/fwbin.py70except KeyError:CODE
HIGHscripts/debug/FreeRTOS/FreeRTOSgdb/List.py33except Exception as exc:CODE
HIGHscripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py53except:CODE
HIGHscripts/debug/PyCortexMDebug/cmdebug/svd.py413except ValueError:CODE
Deep Nesting28 hits · 28 pts
SeverityFileLineSnippetContext
LOWscripts/fastfap.py70CODE
LOWscripts/imglint.py57CODE
LOWscripts/runfap.py45CODE
LOWscripts/assets.py118CODE
LOWscripts/storage.py148CODE
LOWscripts/testops.py76CODE
LOWscripts/sconsdist.py159CODE
LOWscripts/wifi_board.py166CODE
LOWscripts/fwflash.py166CODE
LOWscripts/infrared.py20CODE
LOWscripts/lint.py51CODE
LOWscripts/lint.py68CODE
LOWscripts/fbt_tools/fbt_extapps.py441CODE
LOWscripts/fbt_tools/fbt_extapps.py142CODE
LOWscripts/fbt_tools/pvsstudio.py28CODE
LOWscripts/flipper/utils/templite.py93CODE
LOWscripts/ufbt/site_init.py8CODE
LOWscripts/fbt/appmanifest.py417CODE
LOWscripts/fbt/sdk/collector.py107CODE
LOWscripts/fbt/sdk/cache.py170CODE
LOWscripts/debug/FreeRTOS/FreeRTOSgdb/List.py45CODE
LOWscripts/debug/FreeRTOS/FreeRTOSgdb/HandleRegistry.py50CODE
LOWscripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py118CODE
LOWscripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py165CODE
LOWscripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py208CODE
LOWscripts/debug/PyCortexMDebug/cmdebug/svd.py151CODE
LOWscripts/debug/PyCortexMDebug/cmdebug/svd.py258CODE
LOWsite_scons/site_init.py11CODE
Hyper-Verbose Identifiers23 hits · 23 pts
SeverityFileLineSnippetContext
LOWscripts/fastfap.py43def serialize_relsection_data(data: dict[UniqueRelData, list[int]]) -> bytes:CODE
LOWscripts/wifi_board.py159 def find_wifi_board_bootloader_port(self):CODE
LOWscripts/wifi_board.py162 def find_wifi_board_bootloader_port_damn_windows(self):CODE
LOWscripts/fwflash.py218def blackmagic_find_networked(serial: str):CODE
LOWscripts/lint.py118 def _apply_file_naming_convention(self, sources: list, dry_run: bool = False):CODE
LOWscripts/fbt_tools/fbt_extapps.py218 def _configure_deps_and_aliases(self, app_artifacts: FlipperExternalAppInfo):CODE
LOWscripts/fbt_tools/fbt_extapps.py338def _embed_app_metadata_emitter(target, source, env):CODE
LOWscripts/fbt_tools/fbt_extapps.py368def generate_embed_app_metadata_actions(source, target, env, for_signature):CODE
LOWscripts/fbt_tools/fbt_resources.py10def __generate_resources_dist_entries(env):CODE
LOWscripts/fbt_tools/compilation_db.py61def changed_since_last_build_node(child, target, prev_ni, node):CODE
LOWscripts/fbt_tools/compilation_db.py77 def emit_compilation_db_entry(target, source, env):CODE
LOWscripts/fbt_tools/compilation_db.py115def compilation_db_entry_action(target, source, env, **kw):CODE
LOWscripts/fbt_tools/fbt_sdk.py46def _api_amalgam_gen_origin_header(target, source, env):CODE
LOWscripts/fbt_tools/fbt_sdk.py186def _deploy_sdk_header_tree_action(target, source, env):CODE
LOWscripts/fbt_tools/fbt_sdk.py191def _deploy_sdk_header_tree_emitter(target, source, env):CODE
LOWscripts/flipper/utils/stm32wb55.py240 def option_bytes_id_to_address(self, id: int) -> int:CODE
LOWscripts/flipper/utils/stm32wb55.py256 def flash_dump_status_register(self):CODE
LOWscripts/fbt/version.py7def get_git_commit_unix_timestamp():CODE
LOWscripts/fbt/appmanifest.py326 def _check_if_app_target_supported(self, app_name: str):CODE
LOWscripts/fbt/appmanifest.py374 def get_incompatible_ext_apps(self):CODE
LOWscripts/fbt/sdk/collector.py82 def process_source_file_for_sdk(self, file_path: str):CODE
LOWscripts/fbt/sdk/collector.py93def stringify_array_dimension(size_descr):CODE
LOWsite_scons/fbt_extra/util.py12def should_gen_cdb_and_link_dir(env, requested_targets):CODE
Redundant / Tautological Comments14 hits · 21 pts
SeverityFileLineSnippetContext
LOWscripts/wifi_board.py63 # Check if channel foundCOMMENT
LOWscripts/flipper/utils/stm32wb55.py145 # Check if flash is already unlockedCOMMENT
LOWscripts/flipper/utils/stm32wb55.py156 # Check if flash is unlockedCOMMENT
LOWscripts/flipper/utils/stm32wb55.py165 # Check if options is already unlockedCOMMENT
LOWscripts/flipper/utils/stm32wb55.py176 # Check if options is unlockedCOMMENT
LOWscripts/flipper/utils/stm32wb55.py185 # Check if options is already lockedCOMMENT
LOWscripts/flipper/utils/stm32wb55.py196 # Check if options is lockedCOMMENT
LOWscripts/flipper/utils/stm32wb55.py205 # Check if flash is already lockedCOMMENT
LOWscripts/flipper/utils/stm32wb55.py216 # Check if flash is lockedCOMMENT
LOWscripts/flipper/utils/stm32wb55.py241 # Check if this option byte (dword) is mapped to a registerCOMMENT
LOWscripts/flipper/utils/programmer_openocd.py186 # Check if this option byte (dword) is mapped to a registerCOMMENT
LOWscripts/flipper/utils/programmer_openocd.py212 # Open file, check that it aligned to 8 bytesCOMMENT
LOWscripts/fbt/fapassets.py81 # Write files countCOMMENT
LOWscripts/fbt/fapassets.py102 # Write filesCOMMENT
Self-Referential Comments7 hits · 21 pts
SeverityFileLineSnippetContext
MEDIUMscripts/debug/FreeRTOS/FreeRTOS.py6# This file contains some python code that utilizes the GDB APICOMMENT
MEDIUMscripts/debug/FreeRTOS/FreeRTOSgdb/Task.py6# This file contains the implementation of a class to use forCOMMENT
MEDIUMscripts/debug/FreeRTOS/FreeRTOSgdb/List.py6# This file contains the class for inspectingCOMMENT
MEDIUMscripts/debug/FreeRTOS/FreeRTOSgdb/EventGroup.py6# This file contains the implementation of a Event Group InspectorCOMMENT
MEDIUMscripts/debug/FreeRTOS/FreeRTOSgdb/Types.py6# This file contains the implementation of someCOMMENT
MEDIUMscripts/debug/FreeRTOS/FreeRTOSgdb/QueueTools.py6# This file contains the implementation of a Queue InspectorCOMMENT
MEDIUMscripts/debug/FreeRTOS/FreeRTOSgdb/GDBCommands.py6# This file contains the implementation of some customCOMMENT
Slop Phrases7 hits · 16 pts
SeverityFileLineSnippetContext
MEDIUMdocumentation/doxygen/Doxyfile.cfg343# Note: For files without extension you can use no_extension as a placeholder.COMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg980# If the value of the INPUT tag contains directories, you can use theCOMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg1072# If the value of the INPUT tag contains directories, you can use theCOMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg1095# If the value of the EXAMPLE_PATH tag contains directories, you can use theCOMMENT
LOWapplications/services/gui/view.h202 * @warning Don't forget to commit model changesCOMMENT
LOWlib/drivers/bq27220.h21 * - Don't forget to reset chip before writing new config.COMMENT
LOWlib/mjs/mjs_gc.c316 * If we ever bring it back, don't forget to mark itCOMMENT
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHscripts/debug/PyCortexMDebug/PyCortexMDebug.py0this file is part of pycortexmdebug pycortexmdebug is free software: you can redistribute it and/or modify it under the STRING
HIGHscripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py0this file is part of pycortexmdebug pycortexmdebug is free software: you can redistribute it and/or modify it under the STRING
HIGHscripts/debug/PyCortexMDebug/cmdebug/svd.py0this file is part of pycortexmdebug pycortexmdebug is free software: you can redistribute it and/or modify it under the STRING
Unused Imports12 hits · 12 pts
SeverityFileLineSnippetContext
LOWscripts/update.py12CODE
LOWscripts/serial_cli_perf.py4CODE
LOWscripts/assets.py4CODE
LOWscripts/testops.py7CODE
LOWscripts/power.py6CODE
LOWscripts/infrared.py3CODE
LOWscripts/infrared.py6CODE
LOWscripts/debug/FreeRTOS/FreeRTOS.py22CODE
LOWscripts/debug/FreeRTOS/FreeRTOS.py24CODE
LOWscripts/debug/FreeRTOS/FreeRTOSgdb/HandleRegistry.py12CODE
LOWscripts/debug/FreeRTOS/FreeRTOSgdb/GDBCommands.py14CODE
LOWscripts/debug/PyCortexMDebug/cmdebug/svd_gdb.py22CODE
Verbosity Indicators7 hits · 10 pts
SeverityFileLineSnippetContext
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1187 // Step 1: Perform full authentication onceCOMMENT
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1242 // Step 2: Perform nested authentication multiple timesCOMMENT
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1411 // Step 1: Perform full authentication onceCOMMENT
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1427 // Step 2: Perform nested authentication a variable number of times to get nt_enc at a different PRNG offsetCOMMENT
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1644 // Step 1: Perform full authentication onceCOMMENT
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1661 // Step 2: Collect nested nt and parityCOMMENT
LOWlib/mjs/common/str_util.h151 * The purpose of this function is to parse comma separated string withoutCOMMENT
Structural Annotation Overuse6 hits · 9 pts
SeverityFileLineSnippetContext
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1187 // Step 1: Perform full authentication onceCOMMENT
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1242 // Step 2: Perform nested authentication multiple timesCOMMENT
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1411 // Step 1: Perform full authentication onceCOMMENT
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1427 // Step 2: Perform nested authentication a variable number of times to get nt_enc at a different PRNG offsetCOMMENT
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1644 // Step 1: Perform full authentication onceCOMMENT
LOWlib/nfc/protocols/mf_classic/mf_classic_poller.c1661 // Step 2: Collect nested nt and parityCOMMENT
AI Slop Vocabulary2 hits · 3 pts
SeverityFileLineSnippetContext
MEDIUMdocumentation/doxygen/Doxyfile.cfg1352# it is more robust and this tag (HTML_STYLESHEET) will in the future becomeCOMMENT
MEDIUMdocumentation/doxygen/Doxyfile.cfg1362# standard style sheet and is therefore more robust against future updates.COMMENT
AI Structural Patterns2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/flipper/utils/openocd.py144CODE
LOWscripts/flipper/utils/openocd.py169CODE
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippetContext
LOWapplications/system/js_app/examples/apps/Scripts/gui.js59 text: "This is a very long string that demonstrates the TextBox view. Use the D-Pad to scroll backwards and forwCODE
LOWapplications/system/js_app/examples/apps/Scripts/gui.js59 text: "This is a very long string that demonstrates the TextBox view. Use the D-Pad to scroll backwards and forwCODE
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/debug/flipperapps.py243 def set_debug_mode(self, mode: bool) -> None:CODE