Repository Analysis

qmk/qmk_firmware

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

4.9 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of qmk/qmk_firmware, a C project with 20,531 GitHub stars. SynthScan v2.0 examined 1,803,866 lines of code across 20570 source files, recording 6080 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 4.9 places this repository in the Likely human-written 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).

4.9
Adjusted Score
4.9
Raw Score
100%
Time Factor
2026-07-14
Last Push
20.5K
Stars
C
Language
1.8M
Lines of Code
20.6K
Files
6.1K
Pattern Hits
2026-07-14
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 5MEDIUM 856LOW 5219

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 6080 distinct pattern matches across 16 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.

Over-Commented Block5022 hits · 4984 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
4962 more matches not shown…
Decorative Section Separators847 hits · 3567 pts
SeverityFileLineSnippetContext
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c15 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c17 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c19 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c21 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c23 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c25 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c29 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c31 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c33 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c35 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c37 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c39 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c43 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c45 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c47 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c49 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c51 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUMkeyboards/keebio/iris_lm/keymaps/default/keymap.c53 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c15 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c17 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c19 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c21 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c23 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c25 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c29 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c31 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c33 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c35 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c37 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c39 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c43 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c45 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c47 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c49 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c51 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴───────COMMENT
MEDIUMkeyboards/keebio/iris_ce/keymaps/default/keymap.c53 // └────────┴────────┴────────┘ └────────┴────────┴────────┘COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c11 //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c13 //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬───COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c15 //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬─COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c17 //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴─COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c19 //├──────────┬───────┴──┬─────┴────┬───┴────────┴────────┴────────┴────────┴────────┴──────┬─┴────────┼────────┴─┬────COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c21 //└──────────┴──────────┴──────────┴───────────────────────────────────────────────────────┴──────────┴──────────┴────COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c25 //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬───────COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c27 //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬───COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c29 //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬─COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c31 //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴─COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c33 //├──────────┬───────┴──┬─────┴────┬───┴────────┴────────┴────────┴────────┴────────┴──────┬─┴────────┼────────┴─┬────COMMENT
MEDIUMkeyboards/keebio/tragicforce68/keymaps/default/keymap.c35 //└──────────┴──────────┴──────────┴───────────────────────────────────────────────────────┴──────────┴──────────┴────COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c42 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c44 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c46 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c48 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c50 //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c52 //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c56 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c58 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c60 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c62 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c64 //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────COMMENT
MEDIUMkeyboards/redox/keymaps/default/keymap.c66 //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ COMMENT
787 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.py100CODE
LOWlib/python/qmk/json_encoders.py128CODE
LOWlib/python/qmk/json_encoders.py161CODE
LOWlib/python/qmk/json_encoders.py195CODE
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.py80CODE
LOWlib/python/qmk/flashers.py110CODE
LOWlib/python/qmk/flashers.py217CODE
LOWlib/python/qmk/keyboard.py234CODE
LOWlib/python/qmk/cli/via2json.py23CODE
LOWlib/python/qmk/cli/mass_compile.py19CODE
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…
Hyper-Verbose Identifiers74 hits · 72 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.py48def _check_dfu_programmer_version():CODE
LOWlib/python/qmk/keyboard.py74def keyboard_alias_definitions():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
LOWlib/python/qmk/tests/test_cli_commands.py111def test_list_keymaps_community():CODE
LOWlib/python/qmk/tests/test_cli_commands.py117def test_list_keymaps_kb_only():CODE
LOWlib/python/qmk/tests/test_cli_commands.py123def test_list_keymaps_vendor_kb():CODE
LOWlib/python/qmk/tests/test_cli_commands.py129def test_list_keymaps_vendor_kb_rev():CODE
LOWlib/python/qmk/tests/test_cli_commands.py135def test_list_keymaps_no_keyboard_found():CODE
LOWlib/python/qmk/tests/test_cli_commands.py224def test_info_keyboard_render():STRING
LOWlib/python/qmk/tests/test_cli_commands.py287def test_generate_rgb_breathe_table():STRING
LOWlib/python/qmk/tests/test_cli_commands.py322def test_format_json_keyboard():STRING
LOWlib/python/qmk/tests/test_cli_commands.py334def test_format_json_keyboard_auto():STRING
LOWlib/python/qmk/tests/test_cli_commands.py340def test_format_json_keymap_auto():STRING
LOWlib/python/qmk/tests/test_cli_commands.py384def 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
LOWlib/python/qmk/cli/license_check.py37def _determine_suffix_condition(extensions):CODE
LOWlib/python/qmk/cli/license_check.py38 def _default_suffix_condition(s):CODE
LOWlib/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
LOWlib/python/qmk/cli/doctor/main.py30 def _parse_toolchain_release_file(file):CODE
LOWlib/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.py61def select_default_bootloader(mcu):CODE
LOWlib/python/qmk/cli/new/keyboard.py134def 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/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/make_dependencies.py20def generate_make_dependencies(cli):CODE
LOWlib/python/qmk/cli/generate/community_modules.py70def _render_api_implementations(api, module):CODE
LOWlib/python/qmk/cli/generate/community_modules.py111def _render_core_implementation(api, modules):CODE
14 more matches not shown…
Cross-Language Confusion4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHlib/python/qmk/cli/mass_compile.py92 @{{ grep '\\[ERRORS\\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \\e[1;31m[ERRORS]\\e[0m\\n" "{keyboard_namCODE
HIGHlib/python/qmk/cli/mass_compile.py93 || {{ grep '\\[WARNINGS\\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \\e[1;33m[WARNINGS]\\e[0m\\n" "{keyboCODE
HIGHlib/python/qmk/cli/mass_compile.py104 @rm -rf "{builddir}/{target_filename}.elf" 2>/dev/null || trueCODE
HIGHlib/python/qmk/cli/mass_compile.py105 @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.yml134 # 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
LOWkeyboards/acheron/apollo/readme.md21### Step 1: enter bootloaderCOMMENT
LOWkeyboards/acheron/apollo/readme.md29### Step 2: compile firmwareCOMMENT
LOWkeyboards/acheron/apollo/readme.md38### Step 3: flashingCOMMENT
LOWdocs/configurator_step_by_step.md5## Step 1: Select Your KeyboardCOMMENT
LOWdocs/configurator_step_by_step.md23## Step 2: Select Your Keyboard LayoutCOMMENT
LOWdocs/configurator_step_by_step.md31## Step 3: Name Your KeymapCOMMENT
LOWdocs/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
LOWlib/python/qmk/cli/doctor/main.py36 except Exception as e:CODE
LOWlib/python/qmk/cli/doctor/main.py46 except Exception as e:CODE
Unused Imports14 hits · 14 pts
SeverityFileLineSnippetContext
LOWutil/stm32eeprom_parser.py19CODE
LOWutil/ci/discord-results.py6CODE
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.py200 # 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.py92 # 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.py12CODE