AI Slop Code Risk Monitor

crosspoint-reader/crosspoint-reader

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

Open-source e-reader firmware

3.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for crosspoint-reader/crosspoint-reader, a C project with 8,593 GitHub stars. SynthScan examined 318,002 lines of code across 865 source files, recording 678 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 3.8 (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.8
Adjusted Signal
3.8
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
8.6K
Stars
C
Language
318.0K
Lines of Code
865
Files
678
Pattern Hits
2026-10-31
Scan Date
0.08
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 8.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 6.8/100 · LOW

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

Agent Over-Engineering Ratio 3.9/100 · LOW

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

PR Review Velocity Impact 17.2/100 · LOW

Which changes need focused human review? 678 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 73MEDIUM 79LOW 526

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 678 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.

Cross-Language Confusion66 hits · 425 pts
SeverityFileLineSnippetContext
HIGH⚡test/test_trusted_time.py83 if (live >= 1735689600LL + 86400 && live <= 4102444800LL - 86400) {CODE
HIGH⚡test/test_trusted_time.py88 if (after >= 1735689600LL && after <= 4102444800LL) {CODE
HIGH⚡test/test_trusted_time.py89 assert(storedFloor >= live && storedFloor <= after);CODE
HIGHtest/test_trusted_time.py130 assert(configurations == 1 && strcmp(getenv("TZ"), zone) == 0);CODE
HIGHtest/test_trusted_time.py134 assert(configurations == 2 && strcmp(getenv("TZ"), zone) == 0);CODE
HIGHtest/test_ble_learning.py74 assert(noPress.saved == -1 && noPress.learnAction == bleturner::Action::None);CODE
HIGH⚡test/test_clipping_selection_text.py85 if (packedText.empty()) return prefixSpace && i == 0 ? " " : text;CODE
HIGH⚡test/test_clipping_selection_text.py94 return prefixSpace && i == 0 ? Range{range.start, range.start + 1} : range;CODE
HIGH⚡test/test_clipping_selection_text.py96 bool wordStartsParagraph(uint16_t i) const { return paragraphStart && i == 0; }CODE
HIGHtest/test_clipping_selection_text.py299 assert(cold.wordCount == 360 && cold.words[359].pageOffset == 2);CODE
HIGHtest/test_clipping_highlight_planes.py39 assert(renderer.dots == (a4 && mode != GfxRenderer::BW ? 4u : 0u));CODE
HIGHtest/test_clipping_highlight_planes.py40 assert(renderer.ditherRects == (a4 && mode != GfxRenderer::BW ? 0u : 1u));CODE
HIGH⚡test/test_recursive_dictionary.py257 view.content.pages.capacity() == 0 && view.content.lines.capacity() == 0 &&CODE
HIGH⚡test/test_recursive_dictionary.py262 assert(view.lookup->depth == 1 && view.content.text == dictionary.entries.at(20));CODE
HIGH⚡test/test_recursive_dictionary.py266 assert(view.finished && view.lookup->depth == 1);CODE
HIGH⚡test/test_recursive_dictionary.py270 assert(view.lookup->depth == 0 && view.content.text == dictionary.entries.at(10));CODE
HIGH⚡test/test_recursive_dictionary.py271 assert(view.content.currentPage == 1 && view.content.selection.valid);CODE
HIGH⚡test/test_recursive_dictionary.py272 assert(view.content.selection.lastPage == 1 && view.content.selection.firstWord == 2);CODE
HIGH⚡test/test_recursive_dictionary.py275 assert(view.lookup->depth == 0 && view.content.currentPage == 1);CODE
HIGH⚡test/test_recursive_dictionary.py285 assert(!view.finished && view.lookup->depth == 0 && view.content.text == dictionary.entries.at(10));CODE
HIGH⚡test/test_recursive_dictionary.py293 assert(view.lookup->depth == 0 && view.content.text == dictionary.entries.at(10) && view.content.currentPage == 1);CODE
HIGH⚡test/test_recursive_dictionary.py394 assert(!backView.finished && backView.lookup->depth == 1 && dictionary.reads == readsBeforeBack);CODE
HIGH⚡test/test_recursive_dictionary.py398 assert(!backView.finished && backView.lookup->depth == 0);CODE
HIGH⚡test/test_recursive_dictionary.py400 assert(backView.finished && backView.result.isCancelled && dictionary.reads == readsBeforeBack);CODE
HIGH⚡test/test_recursive_dictionary.py403 assert(parent.finished && parent.result.isCancelled);CODE
HIGH⚡test/test_recursive_dictionary.py437 assert(touchView.mappedInput.contactSuppressed && dictionary.reads == readsBeforeTouch);CODE
HIGH⚡test/test_recursive_dictionary.py438 assert(touchView.finished == onHeader && touchView.result.isCancelled == onHeader);CODE
HIGH⚡test/test_recursive_dictionary.py439 assert(bool(touchView.child) == (!onHeader && controlsEnabled));CODE
HIGH⚡test/test_recursive_dictionary.py519 assert(result == Dictionary::LookupResult::LowMemory && dictionary.searches == 0);CODE
HIGH⚡test/test_recursive_dictionary.py523 assert(result == Dictionary::LookupResult::LowMemory && dictionary.searches == 0);CODE
HIGH⚡test/test_recursive_dictionary.py526 assert(result == Dictionary::LookupResult::NotFound && dictionary.searches > 1);CODE
HIGHtest/test_recursive_dictionary.py54 " if (lookup && mappedInput.wasReleased(MappedInputManager::Button::Confirm))", 1CODE
HIGHtest/test_recursive_dictionary.py309 assert(view.lookup->depth == 16 && view.lookup->pendingWord.empty() && dictionary.reads == reads);CODE
HIGHtest/test_recursive_dictionary.py312 assert(view.lookup->depth == 0 && view.content.text == dictionary.entries.at(10) && view.content.currentPage == 1);CODE
HIGHtest/test_recursive_dictionary.py334 assert(view.lookup->depth == 1 && view.content.headword == "alias");CODE
HIGHtest/test_recursive_dictionary.py361 assert(cjk.y == 10 && cjk.block->ranges[0].start == 8 && cjk.block->ranges[1].start == 11);CODE
HIGHtest/test_recursive_dictionary.py422 assert(root.finished && root.result.isCancelled);CODE
HIGHtest/test_recursive_dictionary.py475bool isWordByte(unsigned char c) { return c >= 0x80 || std::isalnum(c) != 0; }CODE
HIGH⚡test/test_selection_buttons.py68 assert(activity.selected == 5 && activity.pendingButtonCount == 4);CODE
HIGH⚡test/test_selection_buttons.py71 assert(activity.selected == 7 && activity.confirmed == 7);CODE
HIGH⚡test/test_selection_buttons.py74 assert(activity.selected == 6 && activity.pendingButtonCount == 0);CODE
HIGHtest/test_selection_buttons.py85 assert(activity.selected == 9 && activity.pendingButtonCount == 0);CODE
HIGHtest/test_selection_buttons.py96 assert(activity.pendingButtonCount == 16 && overflows == 1);CODE
HIGHtest/test_selection_buttons.py99 assert(activity.selected == 23 && activity.pendingButtonCount == 0);CODE
HIGHtest/test_selection_buttons.py130 if (active && input.outsideTap) { active = false; update(); return true; }CODE
HIGHtest/test_text_settings_layout.py190 if (rect.y < clip.y || rect.bottom() > clip.bottom()) clippedText = true;CODE
HIGHtest/test_text_settings_layout.py222 assert(preview.x == safe.x && preview.width == safe.width);CODE
HIGH⚡test/test_text_settings_layout.py249 assert(activity.renderer.preview.x == preview.x && activity.renderer.preview.y == preview.y);CODE
HIGH⚡test/test_text_settings_layout.py250 assert(activity.renderer.preview.width == preview.width && activity.renderer.preview.height == preview.height);CODE
HIGH⚡test/test_text_settings_layout.py256 assert(content.x == safe.x && content.width == safe.width);CODE
HIGH⚡test/test_text_settings_layout.py263 assert(tab.x >= safe.x && tab.right() <= safe.x + safe.width);CODE
HIGH⚡test/test_text_settings_layout.py269 assert(rect.x >= bandLeft && rect.right() <= bandRight);CODE
HIGH⚡test/test_text_settings_layout.py272 return rect.x == bandLeft && rect.right() == bandRight && rect.height == std::max(1, metrics.headerUnderlineSize);CODE
HIGH⚡test/test_text_settings_layout.py285 assert(rect.x >= safe.x && rect.right() <= safe.x + safe.width);CODE
HIGH⚡test/test_text_settings_layout.py286 assert(rect.y >= content.y && rect.bottom() <= content.bottom());CODE
HIGH⚡test/test_text_settings_layout.py289 return rect.width == theme.listScrollWidth && rect.x >= safe.x && rect.right() <= safe.x + safe.width &&CODE
HIGH⚡test/test_text_settings_layout.py290 rect.y == content.y && rect.bottom() == content.bottom();CODE
HIGHtest/test_text_settings_layout.py383 assert(rect.y >= content.y && rect.bottom() <= content.bottom());CODE
HIGHtest/test_text_settings_layout.py385 assert(activity.nav.top <= selected - 1 && selected - 1 < activity.nav.top + 3);CODE
HIGH⚡test/test_remote_button_input.py27 bool wasPressed(uint8_t b) const { return b == button && pressed; }CODE
6 more matches not shown…
Over-Commented Block397 hits · 396 pts
SeverityFileLineSnippetContext
LOWplatformio.ini61# which batches into the SPI FIFO: ~3x on SD reads, at the cost of a 512-byte stackCOMMENT
LOWtest/test_trusted_time.py61#include <cassert>COMMENT
LOWtest/test_clipping_selection_text.py41#include <algorithm>COMMENT
LOWtest/test_recursive_dictionary.py61 "[this](const ActivityResult& result)")COMMENT
LOWtest/book_metadata_cache/BookMetadataCacheTest.cpp1#include <HalStorage.h>COMMENT
LOWtest/minibidi_arabic/MiniBidiArabicTest.cpp1// MiniBidiArabicTest — Arabic/Farsi/Urdu bidi + contextual shaping.COMMENT
LOWtest/ligature_guard/LigatureGuardTest.cpp1// LigatureGuardTest — font GSUB ligatures must not re-process Arabic text.COMMENT
LOWtest/clipping_sync/ClippingSyncTest.cpp1#include <ArduinoJson.h>COMMENT
LOWtest/differential_rounding/DifferentialRoundingTest.cpp1#include <gtest/gtest.h>COMMENT
LOWtest/differential_rounding/DifferentialRoundingTest.cpp301 EXPECT_EQ(testFont().getGlyph('x')->advanceX, 136);COMMENT
LOW…chapter_html_slim_parser/ChapterHtmlSlimParserTest.cpp1#include <Epub.h>COMMENT
LOWtest/sd_card_font/SdCardFontTest.cpp1#include <HalStorage.h>COMMENT
LOWtest/inflate_reader/InflateReaderTest.cpp1#include <gtest/gtest.h>COMMENT
LOWtest/hyphenation_eval/HyphenationEvaluationTest.cpp1#include <Utf8.h>COMMENT
LOW…phenation_eval/resources/spanish_hyphenation_tests.txt1# Hyphenation Test DataCOMMENT
LOW…phenation_eval/resources/swedish_hyphenation_tests.txt1# Hyphenation Test DataCOMMENT
LOW…phenation_eval/resources/italian_hyphenation_tests.txt1# Hyphenation Test DataCOMMENT
LOW…nation_eval/resources/portuguese_hyphenation_tests.txt1# Hyphenation Test DataCOMMENT
LOW…phenation_eval/resources/english_hyphenation_tests.txt1# Hyphenation Test DataCOMMENT
LOW…phenation_eval/resources/russian_hyphenation_tests.txt1# Hyphenation Test DataCOMMENT
LOW…yphenation_eval/resources/german_hyphenation_tests.txt1# Hyphenation Test DataCOMMENT
LOW…yphenation_eval/resources/french_hyphenation_tests.txt1# Hyphenation Test DataCOMMENT
LOW…yphenation_eval/resources/polish_hyphenation_tests.txt1# Hyphenation Test DataCOMMENT
LOWscripts/s3_nimble_psram.h1// Boards with PSRAM (BOARD_HAS_PSRAM): NimBLE's host (mbuf and HCI pools, connection and GATT structures) allocatedCOMMENT
LOWlib/PngToBmpConverter/PngToBmpConverter.cpp1#include "PngToBmpConverter.h"COMMENT
LOWlib/GfxRenderer/Bitmap.cpp1#include "Bitmap.h"COMMENT
LOWlib/GfxRenderer/GfxRenderer.cpp1#include "GfxRenderer.h"COMMENT
LOWlib/GfxRenderer/GfxRenderer.cpp401COMMENT
LOWlib/GfxRenderer/GlyphBitmap.h81}COMMENT
LOWlib/GfxRenderer/GfxRenderer.h61 uint32_t frameBufferSize = HalDisplay::BUFFER_SIZE;COMMENT
LOWlib/GfxRenderer/GfxRenderer.h101COMMENT
LOWlib/GfxRenderer/GfxRenderer.h241 // which it cannot reach directly.COMMENT
LOWlib/GfxRenderer/GfxRenderer.h261 // Compatibility queries for Overlay mode.COMMENT
LOWlib/GfxRenderer/GfxRenderer.h421 bool storeBwBuffer(); // Returns true if buffer was stored successfullyCOMMENT
LOWlib/Memory/BuildScratch.h1#pragma onceCOMMENT
LOWlib/Memory/Memory.h1#pragma onceCOMMENT
LOWlib/Txt/Txt.cpp1#include "Txt.h"COMMENT
LOWlib/Utf8/Utf8.h1#pragma onceCOMMENT
LOWlib/Utf8/Utf8.h21// Report absorbed input codepoint positions when requested; return empty if the callback fails.COMMENT
LOWlib/hal/HalStorage.cpp1#include "HalStorage.h"COMMENT
LOWlib/hal/HalPowerManager.cpp1#include "HalPowerManager.h"COMMENT
LOWlib/hal/HalPowerManager.cpp81 xSemaphoreGive(modeMutex);COMMENT
LOWlib/hal/HalPowerManager.cpp101 // GPIO13 gates the battery MOSFET on both Xteink C3 boards; driving it lowCOMMENT
LOWlib/hal/HalPowerManager.cpp121 // XTEINK_C3_GPIO13: it IS power.latch0 on the C3 Xteink boards, where theCOMMENT
LOWlib/hal/HalDisplay.h81 // Lend the framebuffer's ~48 KB STORAGE to a memory-hungry phase (chapterCOMMENT
LOWlib/hal/HalPowerManager.h41 // Setup wake up GPIO and enter deep sleepCOMMENT
LOWlib/hal/HalSystem.cpp1#include "HalSystem.h"COMMENT
LOWlib/hal/HalClock.h41 // Format the local time into a caller-provided buffer.COMMENT
LOWlib/hal/HalGPIO.h1#pragma onceCOMMENT
LOWlib/hal/HalGPIO.h21#define X3_I2C_SDA 20COMMENT
LOWlib/hal/HalGPIO.cpp1#include <BatteryMonitor.h>COMMENT
LOWlib/hal/HalHaptics.h1#pragma onceCOMMENT
LOWlib/expat/internal.h81COMMENT
LOWlib/expat/internal.h101COMMENT
LOWlib/expat/internal.h121#endifCOMMENT
LOWlib/expat/xmltok.h61*/COMMENT
LOWlib/expat/xmltok.h81/* The following tokens are returned only by XmlPrologTok */COMMENT
LOWlib/expat/xmltok.h101#define XML_TOK_NAME_PLUS 32 /* name+ */COMMENT
LOWlib/expat/xmltok.h121#define XML_TOK_IGNORE_SECT 42COMMENT
LOWlib/expat/xmlparse.c81#endifCOMMENT
337 more matches not shown…
Decorative Section Separators58 hits · 147 pts
SeverityFileLineSnippetContext
MEDIUMscripts/generate_kerning_ligature_epub.py220# ── XHTML content pages ──────────────────────────────────────────────COMMENT
MEDIUM⚡scripts/generate_br_section_break_epub.py68# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/generate_br_section_break_epub.py70# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡scripts/generate_br_section_break_epub.py80# ---------------------------------------------------------------------------STRING
MEDIUM⚡scripts/generate_br_section_break_epub.py82# ---------------------------------------------------------------------------STRING
MEDIUM⚡scripts/generate_br_section_break_epub.py92# ---------------------------------------------------------------------------STRING
MEDIUM⚡scripts/generate_br_section_break_epub.py94# ---------------------------------------------------------------------------STRING
MEDIUM⚡scripts/generate_br_section_break_epub.py110# ---------------------------------------------------------------------------STRING
MEDIUM⚡scripts/generate_br_section_break_epub.py112# ---------------------------------------------------------------------------STRING
MEDIUM⚡scripts/generate_br_section_break_epub.py122# ---------------------------------------------------------------------------STRING
MEDIUM⚡scripts/generate_br_section_break_epub.py124# ---------------------------------------------------------------------------STRING
MEDIUM⚡scripts/generate_br_section_break_epub.py135# ---------------------------------------------------------------------------STRING
MEDIUM⚡scripts/generate_br_section_break_epub.py137# ---------------------------------------------------------------------------STRING
MEDIUM⚡scripts/generate_br_section_break_epub.py145# ---------------------------------------------------------------------------STRING
MEDIUM⚡scripts/generate_br_section_break_epub.py147# ---------------------------------------------------------------------------STRING
MEDIUMscripts/generate_br_section_break_epub.py160# ---------------------------------------------------------------------------STRING
MEDIUMscripts/generate_br_section_break_epub.py162# ---------------------------------------------------------------------------STRING
MEDIUMscripts/generate_br_section_break_epub.py179# ---------------------------------------------------------------------------STRING
MEDIUMscripts/generate_br_section_break_epub.py181# ---------------------------------------------------------------------------STRING
MEDIUMscripts/gen_i18n.py49# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py51# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py118# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py120# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py260# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py262# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py311# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py313# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py447# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py449# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py750# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py752# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py869# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py871# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/gen_i18n.py433# ---------------------------------------------------------------------------STRING
MEDIUMscripts/gen_i18n.py435# ---------------------------------------------------------------------------STRING
MEDIUMlib/EpdFont/scripts/sd-fonts.yaml49 # ── Serif ──────────────────────────────────────────────────────────────COMMENT
MEDIUMlib/EpdFont/scripts/sd-fonts.yaml194 # ── Sans-serif ─────────────────────────────────────────────────────────COMMENT
MEDIUMlib/EpdFont/scripts/sd-fonts.yaml251 # ── Monospace ──────────────────────────────────────────────────────────COMMENT
MEDIUMlib/EpdFont/scripts/sd-fonts.yaml275 # ── Dyslexia ───────────────────────────────────────────────────────────────COMMENT
MEDIUMlib/EpdFont/scripts/sd-fonts.yaml288 # ── Accessibility ──────────────────────────────────────────────────────COMMENT
MEDIUMlib/EpdFont/scripts/sd-fonts.yaml312 # ── Hebrew ─────────────────────────────────────────────────────────────COMMENT
MEDIUMlib/EpdFont/scripts/sd-fonts.yaml341 # ── Arabic ─────────────────────────────────────────────────────────────COMMENT
MEDIUMlib/EpdFont/scripts/sd-fonts.yaml381 # ── Korean ─────────────────────────────────────────────────────────────COMMENT
MEDIUMlib/MiniBidi/minibidi.h53/* ── Bidi character classes (UAX #9) ────────────────────────────────── */COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp19// ── RequestHandler interface ─────────────────────────────────────────────────COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp159// ── OPTIONS ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp171// ── PROPFIND ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp298// ── GET ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp352// ── HEAD ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp386// ── PUT ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp410// ── DELETE ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp462// ── MKCOL ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp502// ── MOVE ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp574// ── COPY ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp669// ── LOCK / UNLOCK (dummy for client compatibility) ───────────────────────────COMMENT
MEDIUMsrc/network/WebDAVHandler.cpp699// ── Utility functions ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/network/html/FilesPage.html3944// ═══════════════════════════════════════════════════════════════════COMMENT
MEDIUMsrc/network/html/FilesPage.html3946// ═══════════════════════════════════════════════════════════════════COMMENT
Hyper-Verbose Identifiers38 hits · 36 pts
SeverityFileLineSnippetContext
LOWtest/test_patch_animatedgif.py35 def test_active_environment_and_idempotence(self):CODE
LOWtest/test_patch_animatedgif.py48 def test_unknown_decoder_source_fails_without_rewriting_it(self):CODE
LOWtest/test_patch_animatedgif.py55 def test_missing_active_dependency_cannot_be_satisfied_by_sibling(self):CODE
LOW⚡test/test_confirmation_translations.py12 def test_spanish_questions_include_both_marks(self):CODE
LOW⚡test/test_confirmation_translations.py19 def test_all_locales_have_explicit_confirmation_headings(self):CODE
LOW⚡test/test_confirmation_translations.py27 def test_partial_locales_do_not_freeze_english_button_labels(self):CODE
LOW⚡test/test_confirmation_translations.py34 def test_persian_questions_use_native_punctuation(self):CODE
LOW⚡test/test_confirmation_translations.py41 def test_callers_use_complete_question_keys(self):CODE
LOW…ation_eval/resources/generate_hyphenation_test_data.py56def generate_hyphenation_data(CODE
LOWscripts/patch_sdfat.py96def patch_selected_dependency(env):CODE
LOWscripts/generate_test_epub.py97def create_grayscale_test_image(filename, is_png=True):CODE
LOWscripts/generate_test_epub.py151def create_centering_test_image(filename, is_png=True):CODE
LOWscripts/generate_test_epub.py198def create_scaling_test_image(filename, is_png=True):CODE
LOWscripts/generate_test_epub.py273def create_wide_scaling_test_image(filename, is_png=True):CODE
LOWscripts/generate_test_epub.py372def create_gradient_test_image(filename, is_png=True):CODE
LOWscripts/gen_i18n.py815def _append_string_data_entry(lines: List[str], text: str) -> None:CODE
LOWscripts/gen_i18n.py376def format_cpp_string_literal(segments: List[str], indent: str = " ") -> List[str]:STRING
LOWscripts/patch_arduino_ble_controller.py19def filter_flash_only_bt_linkflags(linkflags):CODE
LOWscripts/patch_animatedgif.py157def patch_animatedgif_before_link(source, target, env):STRING
LOWlib/EpdFont/scripts/fontconvert_sdcard.py200def extract_ligature_glyph_indices_fonttools(font_path):CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py245def _extract_pairpos_subtable(subtable, glyph_to_cp, raw_kern):CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py300def extract_kerning_fonttools(font_path, codepoints, ppem):CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py453def extract_ligatures_fonttools(font_path, codepoints):CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py823def style_sections_total_size(sections):CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py830def generate_cpfont_multistyle(style_fonts, size, intervals, output_path,CODE
LOWlib/EpdFont/scripts/fontconvert.py422def _extract_pairpos_subtable(subtable, glyph_to_cp, raw_kern):CODE
LOWlib/EpdFont/scripts/fontconvert.py463def extract_kerning_fonttools(font_path, codepoints, ppem, pnum_subs=None):CODE
LOWlib/EpdFont/scripts/fontconvert.py624def extract_ligatures_fonttools(font_path, codepoints):CODE
LOWlib/EpdFont/scripts/verify_compression.py71def compact_aligned_to_packed(aligned_data, width, height):CODE
LOWsrc/network/html/SettingsPage.html350 function isQuickResumeSleepScreenSelected() {CODE
LOWsrc/network/html/SettingsPage.html368 function syncQuickResumeTimeoutForSleepScreen(sleepScreenChanged, quickResumeTimeoutChanged) {CODE
LOWsrc/network/html/FilesPage.html3056 function startConversionWithImageStates() {CODE
LOWsrc/network/html/FilesPage.html3509function restoreUploadSettingsFromStorage() {CODE
LOWsrc/network/html/FilesPage.html3519function updateUploadSettingsPersistence() {CODE
LOWsrc/network/html/FilesPage.html4018function sanitizeMetadataFilenamePart(value) {CODE
LOWsrc/network/html/FilesPage.html4037async function getMetadataFilenameForEpub(file) {CODE
LOWsrc/network/html/FilesPage.html4084function reserveAvailableUploadFilename(fileName, usedFileNames) {CODE
LOWsrc/network/html/FilesPage.html4318function stripFontEncryptionEntries(xmlText, fontPaths) {CODE
Verbosity Indicators20 hits · 34 pts
SeverityFileLineSnippetContext
LOWlib/EpdFont/FontDecompressor.cpp267 // Step 1: Collect unique glyph indices needed for this pageCOMMENT
LOWlib/EpdFont/FontDecompressor.cpp338 // Step 2: Compute total buffer size and collect unique groupsCOMMENT
LOWlib/EpdFont/FontDecompressor.cpp366 // Step 3: Allocate page buffer and lookup table for this slotCOMMENT
LOWlib/EpdFont/FontDecompressor.cpp469 // Step 4: For each unique group, decompress to temp buffer and extract needed glyphsCOMMENT
LOWlib/EpdFont/SdCardFont.cpp464 // Step 1: mark used left/right classes and count the page's kerned codepoints.COMMENT
LOWlib/EpdFont/SdCardFont.cpp480 // Step 2: build renumber maps (oldClassId -> newClassId, 1-based) andCOMMENT
LOWlib/EpdFont/SdCardFont.cpp504 // Step 3: size the three mini buffers (reused across pages when they fit; theCOMMENT
LOWlib/EpdFont/SdCardFont.cpp517 // Step 4: populate mini class tables. `codepoints` is already sorted (seeCOMMENT
LOWlib/EpdFont/SdCardFont.cpp535 // Step 5: read the full matrix's rows for each used left class, keep onlyCOMMENT
LOWlib/EpdFont/SdCardFont.cpp991 // Step 1: Extract unique codepoints from the UTF-8 texts (shared across all styles).COMMENT
LOW⚡src/network/html/FilesPage.html4853 // Step 1: Scale WIDTH to 800px (keep aspect ratio)COMMENT
LOW⚡src/network/html/FilesPage.html4854 // Step 2: Rotate 90° CW or CCW based on HANDEDNESSCOMMENT
LOW⚡src/network/html/FilesPage.html4855 // Step 3: If WIDTH > 480, split vertically with overlapCOMMENT
LOW⚡src/network/html/FilesPage.html4858 // Step 1: Scale WIDTH to 800 (this is the key difference!)COMMENT
LOW⚡src/network/html/FilesPage.html4979 // Step 1: Scale HEIGHT to 800px (up or down)COMMENT
LOW⚡src/network/html/FilesPage.html4980 // Step 2: If WIDTH > 480, split vertically with overlapCOMMENT
LOWsrc/network/html/FilesPage.html4873 // Step 2: Rotate 90° CW or CCWCOMMENT
LOWsrc/network/html/FilesPage.html4898 // Step 3: If WIDTH > 480, split verticallyCOMMENT
LOWsrc/network/html/FilesPage.html5069 // Step 1: Rotate 90° based on handednessCOMMENT
LOWsrc/network/html/FilesPage.html5091 // Step 2: Scale to fit 480x800 (if needed)COMMENT
Structural Annotation Overuse20 hits · 34 pts
SeverityFileLineSnippetContext
LOWlib/EpdFont/FontDecompressor.cpp267 // Step 1: Collect unique glyph indices needed for this pageCOMMENT
LOWlib/EpdFont/FontDecompressor.cpp338 // Step 2: Compute total buffer size and collect unique groupsCOMMENT
LOWlib/EpdFont/FontDecompressor.cpp366 // Step 3: Allocate page buffer and lookup table for this slotCOMMENT
LOWlib/EpdFont/FontDecompressor.cpp469 // Step 4: For each unique group, decompress to temp buffer and extract needed glyphsCOMMENT
LOWlib/EpdFont/SdCardFont.cpp464 // Step 1: mark used left/right classes and count the page's kerned codepoints.COMMENT
LOWlib/EpdFont/SdCardFont.cpp480 // Step 2: build renumber maps (oldClassId -> newClassId, 1-based) andCOMMENT
LOWlib/EpdFont/SdCardFont.cpp504 // Step 3: size the three mini buffers (reused across pages when they fit; theCOMMENT
LOWlib/EpdFont/SdCardFont.cpp517 // Step 4: populate mini class tables. `codepoints` is already sorted (seeCOMMENT
LOWlib/EpdFont/SdCardFont.cpp535 // Step 5: read the full matrix's rows for each used left class, keep onlyCOMMENT
LOWlib/EpdFont/SdCardFont.cpp991 // Step 1: Extract unique codepoints from the UTF-8 texts (shared across all styles).COMMENT
LOW⚡src/network/html/FilesPage.html4853 // Step 1: Scale WIDTH to 800px (keep aspect ratio)COMMENT
LOW⚡src/network/html/FilesPage.html4854 // Step 2: Rotate 90° CW or CCW based on HANDEDNESSCOMMENT
LOW⚡src/network/html/FilesPage.html4855 // Step 3: If WIDTH > 480, split vertically with overlapCOMMENT
LOW⚡src/network/html/FilesPage.html4858 // Step 1: Scale WIDTH to 800 (this is the key difference!)COMMENT
LOW⚡src/network/html/FilesPage.html4979 // Step 1: Scale HEIGHT to 800px (up or down)COMMENT
LOW⚡src/network/html/FilesPage.html4980 // Step 2: If WIDTH > 480, split vertically with overlapCOMMENT
LOWsrc/network/html/FilesPage.html4873 // Step 2: Rotate 90° CW or CCWCOMMENT
LOWsrc/network/html/FilesPage.html4898 // Step 3: If WIDTH > 480, split verticallyCOMMENT
LOWsrc/network/html/FilesPage.html5069 // Step 1: Rotate 90° based on handednessCOMMENT
LOWsrc/network/html/FilesPage.html5091 // Step 2: Scale to fit 480x800 (if needed)COMMENT
Excessive Try-Catch Wrapping20 hits · 31 pts
SeverityFileLineSnippetContext
LOW…ation_eval/resources/generate_hyphenation_test_data.py36 except Exception:CODE
MEDIUM…ation_eval/resources/generate_hyphenation_test_data.py105 print(f"Error: Language '{language}' not found in pyphen.")CODE
LOWscripts/git_branch.py42 except Exception as e: # pylint: disable=broad-exception-caughtCODE
MEDIUMscripts/git_branch.py19def run_git_value(project_dir, args, label):CODE
MEDIUMscripts/gen_i18n.py900 print(f"Error: Translations directory not found: {translations_dir}")CODE
MEDIUMscripts/gen_i18n.py904 print(f"Error: Output directory not found: {output_dir}")CODE
LOWscripts/gen_i18n.py1015 except Exception as e:CODE
LOWlib/EpdFont/scripts/build-sd-fonts.py81 except Exception as e: # noqa: BLE001 - reported via RuntimeError belowCODE
LOWlib/EpdFont/scripts/build-sd-fonts.py143 except Exception:CODE
LOWlib/EpdFont/scripts/build-sd-fonts.py282 except Exception as e:CODE
LOWlib/EpdFont/scripts/build-sd-fonts.py399 except Exception as e:CODE
MEDIUMlib/EpdFont/scripts/fontconvert_sdcard.py110 print(f"Error: unknown interval preset '{name}'", file=sys.stderr)CODE
MEDIUMlib/EpdFont/scripts/fontconvert_sdcard.py1008 print("Error: --intervals is required (e.g., --intervals latin-ext,greek,cyrillic)", file=sys.stderr)CODE
MEDIUMlib/EpdFont/scripts/fontconvert_sdcard.py1020 print("Error: --size or --sizes is required", file=sys.stderr)CODE
MEDIUMlib/EpdFont/scripts/fontconvert_sdcard.py1025 print("Error: fontfile is required in single-style mode", file=sys.stderr)CODE
MEDIUMlib/EpdFont/scripts/fontconvert_sdcard.py1057 print("Error: --output can only be used with a single size", file=sys.stderr)CODE
MEDIUMlib/EpdFont/scripts/fontconvert.py804 print("Error: --compress requires --2bit (byte-aligned compression only supports 2-bit format)", file=sys.stderr)CODE
MEDIUMlib/EpdFont/scripts/fontconvert.py1006 print(f"Error: {len(sparse_cols)} kern entries exceed the uint16 row-offset range", file=sys.stderr)STRING
MEDIUMlib/EpdFont/scripts/fontconvert.py1009 print(f"Error: {kern_right_class_count} right classes exceed the uint8 column range", file=sys.stderr)STRING
MEDIUMlib/EpdFont/scripts/verify_compression.py243 print(f"Error: {font_dir} is not a directory", file=sys.stderr)CODE
Deep Nesting23 hits · 20 pts
SeverityFileLineSnippetContext
LOW…ation_eval/resources/generate_hyphenation_test_data.py23CODE
LOWscripts/generate_test_bmps.py63CODE
LOWscripts/generate_test_bmps.py138CODE
LOWscripts/generate_test_bmps.py190CODE
LOWscripts/gen_i18n.py54CODE
LOWscripts/gen_i18n.py123CODE
LOWscripts/gen_i18n.py316CODE
LOWscripts/gen_i18n.py376CODE
LOWscripts/gen_i18n.py623CODE
LOWscripts/convert_icon.py35CODE
LOWscripts/debugging_monitor.py239CODE
LOWscripts/debugging_monitor.py454CODE
LOWlib/EpdFont/scripts/build-sd-fonts.py318CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py200CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py245CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py300CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py453CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py571CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py925CODE
LOWlib/EpdFont/scripts/fontconvert.py422CODE
LOWlib/EpdFont/scripts/fontconvert.py463CODE
LOWlib/EpdFont/scripts/fontconvert.py624CODE
LOWlib/EpdFont/scripts/verify_compression.py99CODE
Empty Error Handlers4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHscripts/patch_arduino_ble_controller.py79except NameError:CODE
HIGHscripts/debugging_monitor.py342except KeyboardInterrupt:CODE
HIGHscripts/debugging_monitor.py527except (AttributeError, ValueError):CODE
HIGHscripts/debugging_monitor.py228except ValueError:CODE
Fake / Example Data12 hits · 15 pts
SeverityFileLineSnippetContext
LOW⚡…chapter_html_slim_parser/ChapterHtmlSlimParserTest.cpp1589 "This is the second cell. It will probably overflow into the next page. Lorem ipsum dolor sit amet, consetetur "CODE
LOW⚡…chapter_html_slim_parser/ChapterHtmlSlimParserTest.cpp1589 "This is the second cell. It will probably overflow into the next page. Lorem ipsum dolor sit amet, consetetur "CODE
LOW⚡…chapter_html_slim_parser/ChapterHtmlSlimParserTest.cpp1592 "sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam "CODE
LOW⚡…chapter_html_slim_parser/ChapterHtmlSlimParserTest.cpp1592 "sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam "CODE
LOW⚡…chapter_html_slim_parser/ChapterHtmlSlimParserTest.cpp1594 "accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum "CODE
LOW⚡…chapter_html_slim_parser/ChapterHtmlSlimParserTest.cpp1595 "dolor sit amet."};CODE
LOWscripts/generate_br_section_break_epub.py35 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod "CODE
LOWscripts/generate_br_section_break_epub.py35 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod "CODE
LOWscripts/generate_test_epub.py646<p>FIRST PARAGRAPH after image. This paragraph follows an empty heading and an image-only paragraph. With the bug presenCODE
LOWscripts/generate_test_epub.py646<p>FIRST PARAGRAPH after image. This paragraph follows an empty heading and an image-only paragraph. With the bug presenCODE
LOWscripts/generate_test_epub.py711<p>FIRST PARAGRAPH after image. This paragraph follows an empty heading and an image-only paragraph. With the bug presenCODE
LOWscripts/generate_test_epub.py711<p>FIRST PARAGRAPH after image. This paragraph follows an empty heading and an image-only paragraph. With the bug presenCODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtest/epubs/generate_font_prewarm_benchmark.py0\ <?xml version="1.0" encoding="utf-8"?> <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:containerSTRING
HIGHscripts/generate_test_epub.py0\ <?xml version="1.0" encoding="utf-8"?> <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:containerSTRING
HIGHscripts/generate_kerning_ligature_epub.py0\ <?xml version="1.0" encoding="utf-8"?> <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:containerSTRING
Modern AI Meta-Vocabulary3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMdocs/contributing/architecture.md213## Scope guardrailsCOMMENT
MEDIUMscripts/generate_kerning_ligature_epub.py291double-f ligatures? &#x2018;Affixed,&#x2019; &#x2018;baffled,&#x2019; &#x2018;scaffolding,&#x2019;CODE
MEDIUMsrc/activities/reader/EpubReaderBookmarksActivity.h13 // The list rides the UiListActivity scaffold (themed rows, touch routing);COMMENT
AI Slop Vocabulary4 hits · 7 pts
SeverityFileLineSnippetContext
MEDIUMtest/test_recursive_dictionary.py50# The harness copies every constant but only some methods; clang's -Wall flags the unused ones.COMMENT
MEDIUMtest/test_remote_button_input.py165 cpp.write_text("#include <initializer_list>\n" + harness)STRING
MEDIUM⚡test/test_list_viewport.py65 cpp.write_text("#include <initializer_list>\n" + harness)STRING
MEDIUMlib/hal/HalDisplay.h31 // Pass seamless=true on any path where the panel already shows theCOMMENT
Unused Imports7 hits · 7 pts
SeverityFileLineSnippetContext
LOWscripts/generate-font-manifest.py19CODE
LOWscripts/generate-font-manifest.py23CODE
LOWscripts/generate_hyphenation_trie.py4CODE
LOWscripts/generate_test_epub.py13CODE
LOWscripts/debugging_monitor.py26CODE
LOWlib/EpdFont/scripts/fontconvert_sdcard.py25CODE
LOWlib/EpdFont/scripts/fontconvert.py4CODE
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMlib/EpdFont/scripts/sd-fonts.yaml3# This file is the single source of truth for which fonts are generated,COMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWlib/EpdFont/scripts/verify_compression.py104 # Check if this is a compressed font (has Groups array)COMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/firmware_size_history.py49CODE