AI Slop Code RIsk Monitor

qmk/qmk_firmware

Open-source keyboard firmware for Atmel AVR and Arm USB families

5.0 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for qmk/qmk_firmware, a C project with 20,753 GitHub stars. SynthScan examined 1,811,649 lines of code across 20663 source files, recording 6144 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 5.0 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

5.0
Adjusted Signal
5.0
Raw Pattern Score
100%
Time Factor
2026-10-06
Last Push
20.8K
Stars
C
Language
1.8M
Lines of Code
20.7K
Files
6.1K
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.4/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 9.9/100 · LOW

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

PR Review Velocity Impact 19.7/100 · LOW

Which changes need focused human review? 6144 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 11MEDIUM 874LOW 5259

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 6144 distinct pattern matches across 17 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 Block5058 hits · 5020 pts
SeverityFileLineSnippetContext
LOWsetup.cfg21COMMENT
LOWsetup.cfg41#COMMENT
LOWsetup.cfg61# definitions.COMMENT
LOWsetup.cfg81#COMMENT
LOWsetup.cfg101#COMMENT
LOWsetup.cfg121# config = {COMMENT
LOWsetup.cfg141COMMENT
LOWsetup.cfg161# 'key2': value1 +COMMENT
LOWsetup.cfg181# Use spaces around default or named assigns.COMMENT
LOWsetup.cfg201#COMMENT
LOWsetup.cfg241# Set to True to prefer splitting before '&', '|' or '^' rather thanCOMMENT
LOWsetup.cfg261#COMMENT
LOWsetup.cfg281split_before_named_assigns=TrueCOMMENT
LOWsetup.cfg321split_penalty_excess_character=7000COMMENT
LOWplatforms/pin_defs.h21#if __has_include("_pin_defs.h")COMMENT
LOWplatforms/progmem.h1#pragma onceCOMMENT
LOWplatforms/eeprom.h21void eeprom_update_dword(uint32_t *__p, uint32_t __value);COMMENT
LOWplatforms/eeprom.h41# define TOTAL_EEPROM_BYTE_COUNT (WEAR_LEVELING_LOGICAL_SIZE)COMMENT
LOWplatforms/eeprom.h61# include "eeprom_samd.h"COMMENT
LOWplatforms/eeprom.h81# error Unknown EEPROM driver.COMMENT
LOWplatforms/wait.h21extern "C" {COMMENT
LOWplatforms/synchronization_util.c1// Copyright 2023 Sergey Vlasov (@sigprof)COMMENT
LOWplatforms/atomic_util.h21COMMENT
LOWplatforms/gpio.h21# include_next "gpio.h" /* Include the platforms gpio.h */COMMENT
LOWplatforms/lv_conf.h221 *LV_LOG_LEVEL_USER Only logs added by the userCOMMENT
LOWplatforms/lv_conf.h261/*1: Show CPU usage and FPS count*/COMMENT
LOWplatforms/lv_conf.h281/*Change the built in (v)snprintf functions*/COMMENT
LOWplatforms/lv_conf.h341#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /*The default value just prevents GCC warning*/COMMENT
LOWplatforms/lv_conf.h361#define LV_FONT_MONTSERRAT_26 0COMMENT
LOWplatforms/lv_conf.h481#ifndef LV_USE_LABELCOMMENT
LOWplatforms/lv_conf.h521#if LV_USE_CALENDARCOMMENT
LOWplatforms/lv_conf.h621COMMENT
LOWplatforms/lv_conf.h681 #define LV_FREETYPE_CACHE_FT_FACES 0COMMENT
LOWplatforms/lv_conf.h741#ifndef LV_USE_DEMO_MUSICCOMMENT
LOWplatforms/suspend.h21#ifndef USB_SUSPEND_WAKEUP_DELAYCOMMENT
LOWplatforms/chibios/_pin_defs.h21# include <hal.h>COMMENT
LOWplatforms/chibios/_pin_defs.h41# define A13 PAL_LINE(GPIOA, 13)COMMENT
LOWplatforms/chibios/_pin_defs.h61# define B0 PAL_LINE(GPIOB, 0)COMMENT
LOWplatforms/chibios/_pin_defs.h81# define B20 PAL_LINE(GPIOB, 20)COMMENT
LOWplatforms/chibios/_pin_defs.h101# define C7 PAL_LINE(GPIOC, 7)COMMENT
LOWplatforms/chibios/_pin_defs.h121# define C27 PAL_LINE(GPIOC, 27)COMMENT
LOWplatforms/chibios/_pin_defs.h141# define D14 PAL_LINE(GPIOD, 14)COMMENT
LOWplatforms/chibios/_pin_defs.h161# define E1 PAL_LINE(GPIOE, 1)COMMENT
LOWplatforms/chibios/_pin_defs.h181# define E21 PAL_LINE(GPIOE, 21)COMMENT
LOWplatforms/chibios/_pin_defs.h201# define F8 PAL_LINE(GPIOF, 8)COMMENT
LOWplatforms/chibios/_pin_defs.h221# define G12 PAL_LINE(GPIOG, 12)COMMENT
LOWplatforms/chibios/_pin_defs.h241# define I0 PAL_LINE(GPIOI, 0)COMMENT
LOWplatforms/chibios/_pin_defs.h261# define J4 PAL_LINE(GPIOJ, 4)COMMENT
LOWplatforms/chibios/_pin_defs.h281# define K3 PAL_LINE(GPIOK, 3)COMMENT
LOWplatforms/chibios/gd32v_compatibility.h21 * we just redefine the GD32 names. */COMMENT
LOWplatforms/chibios/gd32v_compatibility.h41#define STM32_DMA_CR_MINC GD32_DMA_CTL_MNAGACOMMENT
LOWplatforms/chibios/gd32v_compatibility.h61# define ADC_SMPR2_SMP_AN1 ADC_SAMPT1_SMP_SPT1COMMENT
LOWplatforms/chibios/gd32v_compatibility.h81/* FLASH redefines */COMMENT
LOWplatforms/chibios/gd32v_compatibility.h101# if !defined(SERIAL_USART_CR1)COMMENT
LOWplatforms/chibios/gd32v_compatibility.h121# define SPI_CR1_BR_2 SPI_CTL0_PSC_2COMMENT
LOWplatforms/chibios/config.h1// Copyright 2023 Nick Brassel (@tzarc)COMMENT
LOWplatforms/chibios/suspend.c1/* TODO */COMMENT
LOWplatforms/chibios/interrupt_handlers.c1// Copyright 2023 Nick Brassel (@tzarc)COMMENT
LOWplatforms/chibios/interrupt_handlers.c41#endif // ECC_ERRORS_TRIGGER_NMI_INTERRUPTCOMMENT
LOWplatforms/chibios/atomic_util.h41}COMMENT
4998 more matches not shown…
Decorative Section Separators865 hits · 3645 pts
SeverityFileLineSnippetContext
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c15 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c17 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c19 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c21 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c23 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c25 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c29 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c31 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c33 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c35 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c37 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c39 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c43 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c45 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c47 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c49 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c51 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUM⚡keyboards/keebio/iris_lm/keymaps/default/keymap.c53 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c15 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c17 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c19 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c21 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c23 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c25 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c29 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c31 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c33 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c35 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c37 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c39 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c43 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c45 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c47 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c49 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c51 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUM⚡keyboards/keebio/iris_ce/keymaps/default/keymap.c53 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c11 //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c13 //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬───COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c15 //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬─COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c17 //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴─COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c19 //├──────────┬───────┴──┬─────┴────┬───┴────────┴────────┴────────┴────────┴────────┴──────┬─┴────────┼────────┴─┬────COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c21 //└──────────┴──────────┴──────────┴───────────────────────────────────────────────────────┴──────────┴──────────┴────COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c25 //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c27 //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬───COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c29 //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬─COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c31 //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴─COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c33 //├──────────┬───────┴──┬─────┴────┬───┴────────┴────────┴────────┴────────┴────────┴──────┬─┴────────┼────────┴─┬────COMMENT
MEDIUM⚡keyboards/keebio/tragicforce68/keymaps/default/keymap.c35 //└──────────┴──────────┴──────────┴───────────────────────────────────────────────────────┴──────────┴──────────┴────COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c42 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c44 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c46 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c48 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c50 //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c52 //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c56 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c58 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c60 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c62 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c64 //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────COMMENT
MEDIUM⚡keyboards/redox/keymaps/default/keymap.c66 //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ COMMENT
805 more matches not shown…
Hyper-Verbose Identifiers79 hits · 77 pts
SeverityFileLineSnippetContext
LOWutil/polling_rate.py26def usb_hid_interface_subclass(subclass):CODE
LOWutil/polling_rate.py34def usb_hid_interface_protocol(subclass, protocol):CODE
LOWutil/polling_rate.py47def usb_interface_polling_rate(speed, interval):CODE
LOW…/ergodox_ez/util/keymap_beautifier/KeymapBeautifier.py107 def index_conversion_map_reversed(self, conversion_map):STRING
LOW…/ergodox_ez/util/keymap_beautifier/KeymapBeautifier.py192 def calculate_column_max_widths(self, key_symbols):STRING
LOWlib/python/qmk/painter_qff.py163def _generate_font_glyphs_list(use_ascii, unicode_glyphs):CODE
LOWlib/python/qmk/community_modules.py45def find_available_module_paths():CODE
LOWlib/python/qmk/build_targets.py148 def generate_compilation_database(self, build_target: str = None, skip_clean: bool = False, **env_vars) -> None:CODE
LOWlib/python/qmk/keymap.py56def _generate_encodermap_table(keymap_json):STRING
LOWlib/python/qmk/keymap.py70def _generate_dipswitchmap_table(keymap_json):STRING
LOWlib/python/qmk/keymap.py83def _generate_macros_function(keymap_json):STRING
LOWlib/python/qmk/keymap.py156 def _impl_find_keymap_from_dir(relative_path):STRING
LOWlib/python/qmk/importers.py40def _extract_kbfirmware_layout(kbf_data):CODE
LOWlib/python/qmk/importers.py57def _extract_kbfirmware_keymap(kbf_data):CODE
LOWlib/python/qmk/compilation_database.py105def write_compilation_database(keyboard: str = None, keymap: str = None, output_path: Path = QMK_FIRMWARE / 'compile_comCODE
LOWlib/python/qmk/json_schema.py17def _dict_raise_on_duplicates(ordered_pairs):CODE
LOWlib/python/qmk/keycodes.py19def _potential_search_versions(version, lang=None):CODE
LOWlib/python/qmk/info.py70def _find_invalid_encoder_index(info_data):CODE
LOWlib/python/qmk/info.py504def _extract_split_handedness(info_data, config_c):CODE
LOWlib/python/qmk/info.py558def _extract_split_right_pins(info_data, config_c):CODE
LOWlib/python/qmk/flashers.py46def _check_dfu_programmer_version():CODE
LOWlib/python/qmk/keyboard.py74def keyboard_alias_definitions():CODE
LOWlib/python/qmk/keyboard.py145 def _resolve_recursive_aliases(kb):CODE
LOWlib/python/qmk/tests/test_qmk_keymap.py4def test_generate_c_pytest_basic():CODE
LOWlib/python/qmk/tests/test_qmk_keymap.py37def test_generate_json_pytest_basic():STRING
LOW⚡lib/python/qmk/tests/test_cli_commands.py113def test_list_keymaps_community():CODE
LOW⚡lib/python/qmk/tests/test_cli_commands.py119def test_list_keymaps_kb_only():CODE
LOW⚡lib/python/qmk/tests/test_cli_commands.py125def test_list_keymaps_vendor_kb():CODE
LOW⚡lib/python/qmk/tests/test_cli_commands.py131def test_list_keymaps_vendor_kb_rev():CODE
LOW⚡lib/python/qmk/tests/test_cli_commands.py137def test_list_keymaps_no_keyboard_found():CODE
LOWlib/python/qmk/tests/test_cli_commands.py226def test_info_keyboard_render():STRING
LOWlib/python/qmk/tests/test_cli_commands.py289def test_generate_rgb_breathe_table():STRING
LOWlib/python/qmk/tests/test_cli_commands.py324def test_format_json_keyboard():STRING
LOWlib/python/qmk/tests/test_cli_commands.py336def test_format_json_keyboard_auto():STRING
LOWlib/python/qmk/tests/test_cli_commands.py342def test_format_json_keymap_auto():STRING
LOWlib/python/qmk/tests/test_cli_commands.py386def test_find_multiple_conditions():STRING
LOWlib/python/qmk/cli/__init__.py18def _get_default_distrib_path():CODE
LOWlib/python/qmk/cli/__init__.py153def _find_broken_requirements(requirements):CODE
LOW⚡lib/python/qmk/cli/license_check.py37def _determine_suffix_condition(extensions):CODE
LOW⚡lib/python/qmk/cli/license_check.py38 def _default_suffix_condition(s):CODE
LOW⚡lib/python/qmk/cli/license_check.py46 def _specific_suffix_condition(s):CODE
LOWlib/python/qmk/cli/license_check.py68def _detect_license_from_file_contents(filename, absolute=False, short=False):CODE
LOWlib/python/qmk/cli/lint.py171def _chibios_conf_includenext_check(target):CODE
LOWlib/python/qmk/cli/lint.py180def _rules_mk_assignment_only(rules_mk):CODE
LOWlib/python/qmk/cli/lint.py206def _handle_duplicating_code_defaults(kb, info):CODE
LOWlib/python/qmk/cli/painter/make_font.py36def painter_convert_font_image(cli):CODE
LOWlib/python/qmk/cli/ci/validate_keyboard_targets.py9def ci_validate_keyboard_targets(cli):CODE
LOWlib/python/qmk/cli/doctor/check.py84def _check_arm_gcc_installation():CODE
LOWlib/python/qmk/cli/doctor/check.py124def _check_avr_gcc_installation():CODE
LOWlib/python/qmk/cli/doctor/check.py172def _check_dfu_programmer_version():CODE
LOW⚡lib/python/qmk/cli/doctor/main.py30 def _parse_toolchain_release_file(file):CODE
LOW⚡lib/python/qmk/cli/doctor/main.py40 def _parse_flashutils_release_file(file):CODE
LOWlib/python/qmk/cli/new/keymap.py23def _list_available_converters(kb_name):CODE
LOWlib/python/qmk/cli/new/keyboard.py73def select_default_bootloader(mcu):CODE
LOWlib/python/qmk/cli/new/keyboard.py146def prompt_heading_subheading(heading, subheading):CODE
LOWlib/python/qmk/cli/generate/keymap_h.py11def _generate_keycodes_function(keymap_json):CODE
LOWlib/python/qmk/cli/generate/keyboard_c.py73def _gen_led_duplicate_config(info_data, config_type):CODE
LOWlib/python/qmk/cli/generate/rgb_breathe_table.py68def generate_rgb_breathe_table(cli):STRING
LOWlib/python/qmk/cli/generate/config_h.py165def generate_led_animations_config(feature, led_feature_json, config_h_lines, enable_prefix, animation_prefix):CODE
LOWlib/python/qmk/cli/generate/config_h.py173def generate_stenography_config(kb_info_json, config_h_lines):CODE
19 more matches not shown…
Deep Nesting77 hits · 77 pts
SeverityFileLineSnippetContext
LOWutil/polling_rate.py12CODE
LOWutil/polling_rate.py34CODE
LOWutil/uf2conv.py37CODE
LOWutil/uf2conv.py168CODE
LOWutil/uf2conv.py210CODE
LOWutil/uf2conv.py278CODE
LOWutil/stm32eeprom_parser.py105CODE
LOWkeyboards/signum/3_0/keymaps/default/generate_km.py20CODE
LOWkeyboards/signum/3_0/keymaps/default/generate_km.py81CODE
LOWkeyboards/ferris/keymaps/json2crab.py22CODE
LOWkeyboards/ergodox_ez/util/compile_keymap.py157CODE
LOWkeyboards/ergodox_ez/util/compile_keymap.py569CODE
LOW…/ergodox_ez/util/keymap_beautifier/KeymapBeautifier.py364CODE
LOWlib/python/kle2xy.py49CODE
LOWlib/python/qmk/submodules.py6CODE
LOWlib/python/qmk/painter.py326CODE
LOWlib/python/qmk/painter.py409CODE
LOWlib/python/qmk/userspace.py130CODE
LOWlib/python/qmk/userspace.py154CODE
LOWlib/python/qmk/json_encoders.py104CODE
LOWlib/python/qmk/json_encoders.py132CODE
LOWlib/python/qmk/json_encoders.py165CODE
LOWlib/python/qmk/json_encoders.py199CODE
LOWlib/python/qmk/keymap.py83CODE
LOWlib/python/qmk/keymap.py153CODE
LOWlib/python/qmk/keymap.py209CODE
LOWlib/python/qmk/keymap.py330CODE
LOWlib/python/qmk/keymap.py392CODE
LOWlib/python/qmk/keymap.py479CODE
LOWlib/python/qmk/keymap.py156CODE
LOWlib/python/qmk/compilation_database.py39CODE
LOWlib/python/qmk/compilation_database.py69CODE
LOWlib/python/qmk/c_parse.py61CODE
LOWlib/python/qmk/c_parse.py114CODE
LOWlib/python/qmk/c_parse.py178CODE
LOWlib/python/qmk/c_parse.py237CODE
LOWlib/python/qmk/makefile.py6CODE
LOWlib/python/qmk/search.py229CODE
LOWlib/python/qmk/search.py268CODE
LOWlib/python/qmk/search.py272CODE
LOWlib/python/qmk/info.py70CODE
LOWlib/python/qmk/info.py625CODE
LOWlib/python/qmk/info.py671CODE
LOWlib/python/qmk/info.py719CODE
LOWlib/python/qmk/info.py739CODE
LOWlib/python/qmk/info.py809CODE
LOWlib/python/qmk/info.py906CODE
LOWlib/python/qmk/info.py933CODE
LOWlib/python/qmk/info.py1009CODE
LOWlib/python/qmk/commands.py102CODE
LOWlib/python/qmk/flashers.py78CODE
LOWlib/python/qmk/flashers.py108CODE
LOWlib/python/qmk/flashers.py215CODE
LOWlib/python/qmk/keyboard.py240CODE
LOWlib/python/qmk/cli/via2json.py23CODE
LOWlib/python/qmk/cli/mass_compile.py20CODE
LOWlib/python/qmk/cli/license_check.py54CODE
LOWlib/python/qmk/cli/license_check.py68CODE
LOWlib/python/qmk/cli/info.py184CODE
LOWlib/python/qmk/cli/migrate.py31CODE
17 more matches not shown…
Empty Error Handlers6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHlib/python/qmk/path.py44except ValueError:CODE
HIGHlib/python/qmk/cli/__init__.py24except Exception:CODE
HIGHlib/python/qmk/cli/doctor/check.py282except (PermissionError, FileNotFoundError):CODE
HIGHlib/python/qmk/cli/format/json.py23except ValidationError:CODE
HIGHlib/python/qmk/cli/format/json.py30except ValidationError:CODE
HIGHlib/python/qmk/cli/format/json.py37except ValidationError:CODE
Cross-Language Confusion4 hits · 30 pts
SeverityFileLineSnippetContext
HIGH⚡lib/python/qmk/cli/mass_compile.py88 @{{ grep '\\[ERRORS\\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \\e[1;31m[ERRORS]\\e[0m\\n" "{keyboard_namCODE
HIGH⚡lib/python/qmk/cli/mass_compile.py89 || {{ grep '\\[WARNINGS\\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \\e[1;33m[WARNINGS]\\e[0m\\n" "{keyboCODE
HIGH⚡lib/python/qmk/cli/mass_compile.py98 @rm -rf "{builddir}/{target_filename}.elf" 2>/dev/null || trueCODE
HIGH⚡lib/python/qmk/cli/mass_compile.py99 @rm -rf "{builddir}/{target_filename}.map" 2>/dev/null || trueCODE
Self-Referential Comments6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMutil/install_udev.sh77# Create a temporary directory for downloadsCOMMENT
MEDIUM.github/workflows/bootstrap_testing.yml136 # Create a test user for the bootstrap scriptCOMMENT
MEDIUMlib/python/qmk/painter_qff.py272 # Create the output imageCOMMENT
MEDIUMlib/python/qmk/cli/mass_compile.py43# This file is auto-generated by qmk mass-compileCOMMENT
MEDIUMlib/python/qmk/cli/painter/make_font.py19 # Create the font objectCOMMENT
MEDIUMlib/python/qmk/cli/painter/make_font.py40 # Create the font objectCOMMENT
Structural Annotation Overuse9 hits · 18 pts
SeverityFileLineSnippetContext
LOW⚡keyboards/acheron/apollo/readme.md21### Step 1: enter bootloaderCOMMENT
LOW⚡keyboards/acheron/apollo/readme.md29### Step 2: compile firmwareCOMMENT
LOW⚡keyboards/acheron/apollo/readme.md38### Step 3: flashingCOMMENT
LOWdocs/configurator_step_by_step.md5## Step 1: Select Your KeyboardCOMMENT
LOW⚡docs/configurator_step_by_step.md23## Step 2: Select Your Keyboard LayoutCOMMENT
LOW⚡docs/configurator_step_by_step.md31## Step 3: Name Your KeymapCOMMENT
LOW⚡docs/configurator_step_by_step.md39## Step 4: Define Your KeymapCOMMENT
LOWdocs/configurator_step_by_step.md58## Step 5: Save Your Keymap for Future ChangesCOMMENT
LOWdocs/configurator_step_by_step.md66## Step 6: Compile Your Firmware FileCOMMENT
Excessive Try-Catch Wrapping12 hits · 14 pts
SeverityFileLineSnippetContext
LOWlib/python/qmk/keymap.py202 except Exception as e:STRING
LOWlib/python/qmk/json_schema.py44 except Exception as e:CODE
LOWlib/python/qmk/info.py701 except Exception as e:CODE
LOWlib/python/qmk/info.py781 except Exception as e:CODE
LOWlib/python/qmk/info.py826 except Exception as e:CODE
LOWlib/python/qmk/cli/__init__.py24 except Exception:CODE
MEDIUMlib/python/qmk/cli/__init__.py237 _eprint('Error: Your Python is too old! Please upgrade to Python 3.9 or later.')CODE
LOWlib/python/qmk/cli/kle2json.py39 except Exception as e:CODE
LOWlib/python/qmk/cli/ci/validate_aliases.py11 except Exception:CODE
MEDIUMlib/python/qmk/cli/ci/validate_aliases.py8def _safe_keyboard_folder(target):CODE
LOW⚡lib/python/qmk/cli/doctor/main.py36 except Exception as e:CODE
LOW⚡lib/python/qmk/cli/doctor/main.py46 except Exception as e:CODE
Unused Imports13 hits · 13 pts
SeverityFileLineSnippetContext
LOWutil/stm32eeprom_parser.py19CODE
LOWkeyboards/ergodox_ez/util/compile_keymap.py11CODE
LOWkeyboards/ergodox_ez/util/compile_keymap.py12CODE
LOWkeyboards/ergodox_ez/util/compile_keymap.py13CODE
LOWkeyboards/ergodox_ez/util/compile_keymap.py14CODE
LOWlib/python/qmk/cli/painter/__init__.py1CODE
LOWlib/python/qmk/cli/painter/__init__.py2CODE
LOWlib/python/qmk/cli/doctor/__init__.py5CODE
LOWlib/python/qmk/cli/userspace/__init__.py1CODE
LOWlib/python/qmk/cli/userspace/__init__.py2CODE
LOWlib/python/qmk/cli/userspace/__init__.py3CODE
LOWlib/python/qmk/cli/userspace/__init__.py4CODE
LOWlib/python/qmk/cli/userspace/__init__.py5CODE
Redundant / Tautological Comments6 hits · 9 pts
SeverityFileLineSnippetContext
LOWlib/python/qmk/painter_qff.py352 # Check if we have all the ASCII glyphs presentCOMMENT
LOWlib/python/qmk/flashers.py198 # Check if the provided mcu has an avrdude-specific name, otherwise pass on what the user providedCOMMENT
LOWlib/python/qmk/cli/via2json.py80 # Check if passed LAYOUT is correctCOMMENT
LOWlib/python/qmk/cli/kle2json.py32 # Check if info.json exists, allow overwrite with forceCOMMENT
LOWlib/python/qmk/cli/generate/info_json.py82 # Display the resultsCOMMENT
LOWlib/python/qmk/cli/format/json.py114 # Display the results if print was setCOMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHdocs/coding_conventions_python.md120Return the number of seconds since 1970 Jan 1 00:00 UTC. This function always returns an integer number of seconds.STRING
Slop Phrases3 hits · 4 pts
SeverityFileLineSnippetContext
LOWdrivers/sensors/adns5050.c142// Don't forget to use the register map (as defined in the header file).COMMENT
LOWdrivers/sensors/adns5050.c213// Don't forget to use the definitions for CPI in the header file.COMMENT
LOWtmk_core/protocol/vusb/usbconfig.h244 * Don't forget to keep the array and this define in sync!COMMENT
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMquantum/quantum_keycodes.h84#define RAG(kc) (QK_RALT | QK_RGUI | (kc))COMMENT
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippetContext
LOWdocs/__capabilities_inc.md1Lorem ipsum dolor sit amet.CODE
LOWdocs/__capabilities_inc.md1Lorem ipsum dolor sit amet.CODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWutil/env-bootstrap.sh24# Usage:COMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWlib/python/qmk/tests/test_cli_commands.py14CODE