AI Slop Code Risk Monitor

PDFCraftTool/pdfcraft

SlopCodeMonitor badge for PDFCraftTool/pdfcraft Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

PDFCraft is a free, privacy-focused PDF toolkit that runs entirely in your browser. With 90+ professional tools, you can edit, convert, merge, split, and secure your PDF files without ever uploading them to a server.

1.4 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for PDFCraftTool/pdfcraft, a TypeScript project with 9,723 GitHub stars. SynthScan examined 698,119 lines of code across 967 source files, recording 505 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 1.4 (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.

1.4
Adjusted Signal
1.4
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
9.7K
Stars
TypeScript
Language
698.1K
Lines of Code
967
Files
505
Pattern Hits
2026-10-31
Scan Date
0.07
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 2.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 3.9/100 · LOW

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

Agent Over-Engineering Ratio 2.1/100 · LOW

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

PR Review Velocity Impact 6.2/100 · LOW

Which changes need focused human review? 505 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 63MEDIUM 40LOW 402

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 505 distinct pattern matches across 15 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 Confusion (JS/TS)63 hits · 392 pts
SeverityFileLineSnippetContext
HIGH⚡public/pymupdf-wasm/pymupdf.js713 elif order_val[j] == ']':CODE
HIGH⚡public/pymupdf-wasm/pymupdf.js721 elif char == ']':CODE
HIGH⚡public/pymupdf-wasm/pymupdf.js723 elif char.isdigit():CODE
HIGH⚡public/pymupdf-wasm/pymupdf.js833 elif char == ']':CODE
HIGH⚡public/pymupdf-wasm/pymupdf.js941 elif t2 != "null":CODE
HIGH⚡public/pymupdf-wasm/pymupdf.js946elif t != "null":CODE
HIGH⚡public/pymupdf-wasm/pymupdf.js955 elif t2 != "null":CODE
HIGH⚡public/pymupdf-wasm/pymupdf.js1352 elif cs_name not in ('DEVICEGRAY', 'GRAY', 'DEVICERGB', 'RGB', 'SRGB', ''):CODE
HIGH⚡public/pymupdf-wasm/pymupdf.js1361 elif pix.n > 4:CODE
HIGHpublic/pymupdf-wasm/pymupdf.js647 elif t != "null":CODE
HIGHpublic/pymupdf-wasm/pymupdf.js655 elif t2 != "null":CODE
HIGHpublic/pymupdf-wasm/pymupdf.js789elif t != "null":CODE
HIGHpublic/pymupdf-wasm/pymupdf.js801 elif t2 != "null":CODE
HIGHpublic/pymupdf-wasm/pymupdf.js890 elif final_order[k] == ']': arr_depth -= 1CODE
HIGHpublic/pymupdf-wasm/pymupdf.js1099elif t != "null":CODE
HIGHpublic/pymupdf-wasm/pymupdf.js1281 return NoneCODE
HIGH⚡public/pymupdf-wasm/pymupdf-lite.js713 elif order_val[j] == ']':CODE
HIGH⚡public/pymupdf-wasm/pymupdf-lite.js721 elif char == ']':CODE
HIGH⚡public/pymupdf-wasm/pymupdf-lite.js723 elif char.isdigit():CODE
HIGH⚡public/pymupdf-wasm/pymupdf-lite.js833 elif char == ']':CODE
HIGH⚡public/pymupdf-wasm/pymupdf-lite.js941 elif t2 != "null":CODE
HIGH⚡public/pymupdf-wasm/pymupdf-lite.js946elif t != "null":CODE
HIGH⚡public/pymupdf-wasm/pymupdf-lite.js955 elif t2 != "null":CODE
HIGH⚡public/pymupdf-wasm/pymupdf-lite.js1352 elif cs_name not in ('DEVICEGRAY', 'GRAY', 'DEVICERGB', 'RGB', 'SRGB', ''):CODE
HIGH⚡public/pymupdf-wasm/pymupdf-lite.js1361 elif pix.n > 4:CODE
HIGHpublic/pymupdf-wasm/pymupdf-lite.js647 elif t != "null":CODE
HIGHpublic/pymupdf-wasm/pymupdf-lite.js655 elif t2 != "null":CODE
HIGHpublic/pymupdf-wasm/pymupdf-lite.js789elif t != "null":CODE
HIGHpublic/pymupdf-wasm/pymupdf-lite.js801 elif t2 != "null":CODE
HIGHpublic/pymupdf-wasm/pymupdf-lite.js890 elif final_order[k] == ']': arr_depth -= 1CODE
HIGHpublic/pymupdf-wasm/pymupdf-lite.js1099elif t != "null":CODE
HIGHpublic/pymupdf-wasm/pymupdf-lite.js1281 return NoneCODE
HIGH⚡public/workers/extract-images.worker.js81 print(f"Error extracting image {xref}: {e}")CODE
HIGH⚡public/workers/table-of-contents-v2.worker.js38 return TrueCODE
HIGH⚡public/workers/table-of-contents-v2.worker.js39 return FalseCODE
HIGH⚡public/workers/table-of-contents-v2.worker.js43 return FalseCODE
HIGH⚡public/workers/table-of-contents-v2.worker.js46 return TrueCODE
HIGH⚡public/workers/table-of-contents-v2.worker.js59 return TrueCODE
HIGH⚡public/workers/table-of-contents-v2.worker.js61 print(f"Font download error: {e}")CODE
HIGH⚡public/workers/table-of-contents-v2.worker.js62 return FalseCODE
HIGH⚡public/workers/table-of-contents-v2.worker.js63 return FalseCODE
HIGHpublic/workers/table-of-contents-v2.worker.js92 print("Warning: CJK font needed but could not be loaded. Falling back to Helvetica.")CODE
HIGH⚡public/workers/table-of-contents-v2.worker.js183 print("Python: Generating bytes...")CODE
HIGH⚡public/workers/table-of-contents-v2.worker.js185 print(f"Python: Generated {len(result_bytes)} bytes")CODE
HIGH⚡public/workers/table-of-contents-v2.worker.js192 print(f"Python Error: {str(e)}")CODE
HIGHpublic/workers/word-to-pdf.worker.js278 elif para.alignment == WD_ALIGN_PARAGRAPH.RIGHT:CODE
HIGHpublic/workers/word-to-pdf.worker.js280 elif para.alignment == WD_ALIGN_PARAGRAPH.JUSTIFY:CODE
HIGHpublic/workers/word-to-pdf.worker.js494 elif element.tag.endswith('tbl'):CODE
HIGHpublic/workers/pptx-to-pdf.worker.js176 elif not target.startswith('ppt/'):CODE
HIGHpublic/workers/pptx-to-pdf.worker.js194 return NoneCODE
HIGHpublic/workers/pptx-to-pdf.worker.js217 return NoneCODE
HIGHpublic/workers/pptx-to-pdf.worker.js265 elif algn == 'r':CODE
HIGHpublic/workers/pptx-to-pdf.worker.js267 elif algn == 'just':CODE
HIGHpublic/workers/pptx-to-pdf.worker.js376 elif tag.endswith('sp'):CODE
HIGH⚡public/workers/pdf-to-excel.worker.js81 print(f"Error extracting table {i} on page {page_num}: {e}")CODE
HIGHsrc/lib/pdf/pymupdf-loader.ts387 elif n == 3:CODE
HIGHsrc/lib/pdf/pymupdf-loader.ts391 elif n == 4:CODE
HIGHsrc/lib/pdf/pymupdf-loader.ts492 return FalseCODE
HIGHsrc/lib/pdf/pymupdf-loader.ts514 return TrueCODE
HIGHsrc/lib/pdf/pymupdf-loader.ts534 return TrueCODE
3 more matches not shown…
Hyper-Verbose Identifiers177 hits · 178 pts
SeverityFileLineSnippetContext
LOW⚡scratch/test_placeholders.py35def translate_with_protection(text, target_lang):CODE
LOWscratch/batch_translate_threaded.py68def translate_with_protection(text, target_lang):CODE
LOW⚡scratch/test_token_replace.py29def translate_with_token_protection(text, target_lang):CODE
LOWscratch/batch_translate.py61def translate_with_protection(text, target_lang):CODE
LOWscratch/translate_chunk4_partA.py61def translate_with_protection(text, target_lang):CODE
LOWscratch/translate_all.py45def translate_list_with_retry(translator, texts, lang_code, batch_size=40):CODE
LOWscratch/translate_chunk4_threaded.py66def translate_with_protection(text, target_lang):CODE
LOW⚡public/pdfjs-annotation-viewer/web/viewer.js13685function webViewerPresentationMode() {CODE
LOW⚡public/pdfjs-annotation-viewer/web/viewer.js13688function webViewerSwitchAnnotationEditorMode(evt) {CODE
LOW⚡public/pdfjs-annotation-viewer/web/viewer.js13691function webViewerSwitchAnnotationEditorParams(evt) {CODE
LOW⚡public/pdfjs-annotation-viewer/web/viewer.js13739function webViewerOptionalContentConfig(evt) {CODE
LOW⚡public/pdfjs-annotation-viewer/web/viewer.js13742function webViewerSwitchScrollMode(evt) {CODE
LOW⚡public/pdfjs-annotation-viewer/web/viewer.js13745function webViewerSwitchSpreadMode(evt) {CODE
LOW⚡public/pdfjs-annotation-viewer/web/viewer.js13748function webViewerDocumentProperties() {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js276function backtrackBeforeAllVisibleElements(index, views, top) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js306 function isElementBottomAfterViewTop(view) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js311 function isElementNextAfterViewHorizontally(view) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js377function normalizeWheelEventDirection(evt) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js476function getActiveOrFocusedElement() {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js485function apiPageLayoutToViewerModes(layout) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js544 (function checkCanvasSizeLimitation() {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js2447function createTextNodeFromTextContent(element) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js9882function isValidAnnotationEditorMode(mode) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js13351 function addWindowResolutionChange(evt = null) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js13603function webViewerPresentationModeChanged(evt) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js13606function webViewerSidebarViewChanged({CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js13631function webViewerScrollModeChanged(evt) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js13636function webViewerSpreadModeChanged(evt) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js13721function webViewerPageNumberChanged(evt) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js13763function webViewerUpdateFindMatchesCount({CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js13772function webViewerUpdateFindControlState({CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js13793function webViewerRotationChanging(evt) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js13812function webViewerResolutionChange(evt) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js13815function webViewerVisibilityChange(evt) {CODE
LOWpublic/pdfjs-annotation-viewer/web/viewer.js14266function webViewerAnnotationEditorStatesChanged(data) {CODE
LOW⚡public/libreoffice-wasm/soffice.js2function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_CODE
LOWpublic/workers/mobi-to-pdf.worker.js113async function initializePythonConverter() {CODE
LOWpublic/workers/mobi-to-pdf.worker.js164async function reinitializePythonConverter() {CODE
LOWpublic/workers/extract-attachments.worker.js163function extractAttachmentsFromPDFsInWorker(fileBuffers, fileNames) {CODE
LOW⚡public/workers/table-of-contents-v2.worker.js41async def download_cjk_font_if_needed(needs_cjk):CODE
LOWpublic/workers/edit-attachments.worker.js150function getAttachmentsFromPDFInWorker(fileBuffer, fileName) {CODE
LOWpublic/workers/edit-attachments.worker.js223function editAttachmentsInPDFInWorker(fileBuffer, fileName, attachmentsToRemove) {CODE
LOWpublic/workers/word-to-pdf.worker.js115async function initializePythonConverter() {CODE
LOWpublic/workers/word-to-pdf.worker.js315 def render_text_with_formatting(x, y, text, props, max_width):CODE
LOWpublic/workers/pptx-to-pdf.worker.js105async function initializePythonConverter() {CODE
LOWpublic/workers/add-attachments.worker.js30function addAttachmentsToPDFInWorker(pdfBuffer, attachmentBuffers, attachmentNames, attachmentLevel, pageRange) {CODE
LOWpublic/workers/rtf-to-pdf.worker.js109async function initializePythonConverter() {CODE
LOWpublic/workers/rtf-to-pdf.worker.js203async function reinitializePythonConverter() {CODE
LOWpublic/workers/epub-to-pdf.worker.js142async function initializePythonConverter() {CODE
LOWpublic/workers/epub-to-pdf.worker.js193async function reinitializePythonConverter() {CODE
LOWpublic/direct-pdf-editor/editcore.js9var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyProCODE
LOWpublic/direct-pdf-editor/app.js3453function snapshotPrefersIncremental() {CODE
LOWsrc/config/tools.ts1647export function getAllToolsIncludingDisabled(): Tool[] {CODE
LOW…ents/studio/tool-options/OptimizeRepairToolOptions.tsx25export function OptimizeRepairToolOptions({CODE
LOWsrc/components/tools/edit-pdf/LegacyAnnotatorTool.tsx537 function setupArrowEndpointHandles() {CODE
LOWsrc/components/tools/edit-pdf/LegacyAnnotatorTool.tsx808 function setupColorPickerAndStroke() {CODE
LOWsrc/components/tools/edit-pdf/LegacyAnnotatorTool.tsx958 function setupUndoRedoAndAuthorPatch() {CODE
LOWsrc/components/tools/edit-pdf/LegacyAnnotatorTool.tsx1087 function updateUndoRedoButtonsState() {CODE
LOW…gnature-anchor-helper/PdfSignatureAnchorHelperTool.tsx18export function PdfSignatureAnchorHelperTool({ className = '' }: PdfSignatureAnchorHelperToolProps) {CODE
LOW…pdf-page-resizer-uniform/PdfPageResizerUniformTool.tsx18export function PdfPageResizerUniformTool({ className = '' }: PdfPageResizerUniformToolProps) {CODE
117 more matches not shown…
Fake / Example Data121 hits · 151 pts
SeverityFileLineSnippetContext
LOWmessages/zh.json137 "placeholder": "搜索工具...",CODE
LOW⚡messages/zh.json1167 "placeholder": "您的姓名"CODE
LOW⚡messages/zh.json1171 "placeholder": "your@email.com"CODE
LOW⚡messages/zh.json1175 "placeholder": "选择主题",CODE
LOWmessages/zh.json1186 "placeholder": "告诉我们更多关于您的咨询..."CODE
LOWmessages/zh.json1486 "placeholder": "搜索工具...",CODE
LOWmessages/ja.json137 "placeholder": "ツールを検索...",CODE
LOW⚡messages/ja.json1153 "placeholder": "あなたのお名前"CODE
LOW⚡messages/ja.json1157 "placeholder": "your@email.com"CODE
LOW⚡messages/ja.json1161 "placeholder": "件名を選択してください",CODE
LOWmessages/ja.json1172 "placeholder": "お問い合わせ内容の詳細を教えてください..."CODE
LOWmessages/ja.json1464 "placeholder": "検索ツール...",CODE
LOWmessages/de.json137 "placeholder": "Werkzeuge suchen...",CODE
LOW⚡messages/de.json1153 "placeholder": "Ihr Name"CODE
LOW⚡messages/de.json1157 "placeholder": "your@email.com"CODE
LOW⚡messages/de.json1161 "placeholder": "Wählen Sie einen Betreff",CODE
LOWmessages/de.json1172 "placeholder": "Erzählen Sie uns mehr über Ihre Anfrage..."CODE
LOWmessages/de.json1464 "placeholder": "Suchwerkzeuge...",CODE
LOWmessages/pl.json137 "placeholder": "Wyszukaj narzędzia...",CODE
LOW⚡messages/pl.json1167 "placeholder": "Twoje imię"CODE
LOW⚡messages/pl.json1171 "placeholder": "Twój@e-mail.com"CODE
LOW⚡messages/pl.json1175 "placeholder": "Wybierz temat",CODE
LOWmessages/pl.json1186 "placeholder": "Opowiedz nam więcej o swoim zapytaniu..."CODE
LOWmessages/pl.json1483 "placeholder": "Wyszukaj narzędzia...",CODE
LOWmessages/ta.json137 "placeholder": "கருவிகளைத் தேடுக...",CODE
LOW⚡messages/ta.json1167 "placeholder": "உங்கள் பெயர்"CODE
LOW⚡messages/ta.json1171 "placeholder": "your@email.com"CODE
LOW⚡messages/ta.json1175 "placeholder": "ஒரு பொருளைத் தேர்ந்தெடுக்கவும்",CODE
LOWmessages/ta.json1186 "placeholder": "உங்கள் விசாரணையைப் பற்றி மேலும் சொல்லுங்கள்..."CODE
LOWmessages/ta.json1486 "placeholder": "கருவிகளைத் தேடுக...",CODE
LOWmessages/pt.json137 "placeholder": "Pesquisar ferramentas...",CODE
LOW⚡messages/pt.json1153 "placeholder": "Seu nome"CODE
LOW⚡messages/pt.json1157 "placeholder": "seu@email.com"CODE
LOW⚡messages/pt.json1161 "placeholder": "Selecione um assunto",CODE
LOWmessages/pt.json1172 "placeholder": "Conte-nos mais sobre sua consulta..."CODE
LOWmessages/pt.json1464 "placeholder": "Buscar ferramentas...",CODE
LOWmessages/en.json137 "placeholder": "Search tools...",CODE
LOW⚡messages/en.json1167 "placeholder": "Your name"CODE
LOW⚡messages/en.json1171 "placeholder": "your@email.com"CODE
LOW⚡messages/en.json1175 "placeholder": "Select a subject",CODE
LOWmessages/en.json1186 "placeholder": "Tell us more about your inquiry..."CODE
LOWmessages/en.json1486 "placeholder": "Search tools...",CODE
LOWmessages/it.json137 "placeholder": "Cerca strumenti…",CODE
LOW⚡messages/it.json1153 "placeholder": "Il tuo nome"CODE
LOW⚡messages/it.json1157 "placeholder": "tuo@email.com"CODE
LOW⚡messages/it.json1161 "placeholder": "Seleziona un oggetto",CODE
LOWmessages/it.json1172 "placeholder": "Dicci qualcosa in più sulla tua richiesta…"CODE
LOWmessages/it.json1464 "placeholder": "Cerca strumenti...",CODE
LOWmessages/fr.json137 "placeholder": "Rechercher des outils...",CODE
LOW⚡messages/fr.json1153 "placeholder": "Votre nom"CODE
LOW⚡messages/fr.json1157 "placeholder": "votre@email.com"CODE
LOW⚡messages/fr.json1161 "placeholder": "Sélectionnez un sujet",CODE
LOWmessages/fr.json1172 "placeholder": "Dites-nous en plus sur votre demande..."CODE
LOWmessages/fr.json1464 "placeholder": "Rechercher des outils...",CODE
LOWmessages/ro.json137 "placeholder": "Caută instrumente...",CODE
LOW⚡messages/ro.json1153 "placeholder": "Numele tău"CODE
LOW⚡messages/ro.json1157 "placeholder": "your@email.com"CODE
LOW⚡messages/ro.json1161 "placeholder": "Selectează un subiect",CODE
LOWmessages/ro.json1172 "placeholder": "Spune-ne mai multe despre solicitarea ta..."CODE
LOWmessages/ro.json1464 "placeholder": "Instrumente de căutare...",CODE
61 more matches not shown…
Excessive Try-Catch Wrapping61 hits · 86 pts
SeverityFileLineSnippetContext
LOW⚡scratch/test_placeholders.py25 except Exception as e:CODE
MEDIUM⚡scratch/test_placeholders.py26 print(f"Error translating: {e}")CODE
LOWscratch/batch_translate_threaded.py35 except Exception:CODE
LOWscratch/batch_translate_threaded.py61 except Exception as e:CODE
LOW⚡scratch/test_token_replace.py25 except Exception as e:CODE
MEDIUM⚡scratch/test_token_replace.py26 print(f"Error translating: {e}")CODE
LOWscratch/translate.py62 except Exception as e:CODE
LOWscratch/translate.py99 except Exception as e:CODE
MEDIUMscratch/translate.py100 print(f"Error loading cache: {e}")CODE
LOWscratch/translate.py153 except Exception as exc:CODE
LOW⚡scratch/translate.py167 except Exception as e:CODE
MEDIUM⚡scratch/translate.py168 print(f"Error saving cache: {e}")CODE
LOW⚡scratch/translate.py175 except Exception as e:CODE
MEDIUM⚡scratch/translate.py176 print(f"Error saving final output: {e}")CODE
MEDIUMscratch/translate.py163def save_cache(cache):CODE
MEDIUMscratch/translate.py170def write_final_output(output):CODE
MEDIUMscratch/merge_splits.py24 print(f"Error: {split_file} does not exist.")CODE
LOWscratch/translate_script.py21 except Exception as e:CODE
LOWscratch/translate_all_robust.py53 except Exception as e:CODE
LOWscratch/translate_all_robust.py115 except Exception as e:CODE
MEDIUMscratch/translate_all_robust.py116 print(f"Error on batch attempt {attempt+1}/{retries}: {e}")CODE
LOWscratch/translate_all_robust.py132 except Exception as e:CODE
LOWscratch/translate_all_robust.py163 except Exception as e:CODE
LOWscratch/batch_translate.py29 except Exception:CODE
LOWscratch/batch_translate.py54 except Exception as e:CODE
LOWscratch/translate_chunk4_partA.py29 except Exception:CODE
LOWscratch/translate_chunk4_partA.py54 except Exception as e:CODE
LOWscratch/test_translate.py24 except Exception as e:CODE
MEDIUMscratch/test_translate.py25 print(f"Error translating: {e}")CODE
LOWscratch/translate_all.py66 except Exception as e:CODE
MEDIUMscratch/translate_all.py67 print(f"Error on attempt {attempt+1}/{retries}: {e}")CODE
LOWscratch/translate_all.py82 except Exception as e:CODE
LOWscratch/search_translations.py16 except Exception as e:CODE
MEDIUMscratch/search_translations.py17 print(f"Error reading {filename}: {e}")CODE
LOWscratch/translate_chunk4_threaded.py34 except Exception:CODE
LOWscratch/translate_chunk4_threaded.py60 except Exception as e:CODE
LOW⚡public/pymupdf-wasm/pymupdf.js1369 except Exception as e:CODE
LOWpublic/pymupdf-wasm/pymupdf.js743except Exception as e:CODE
LOW⚡public/pymupdf-wasm/pymupdf-lite.js1369 except Exception as e:CODE
LOWpublic/pymupdf-wasm/pymupdf-lite.js743except Exception as e:CODE
LOW⚡public/workers/extract-images.worker.js80 except Exception as e:CODE
MEDIUM⚡public/workers/extract-images.worker.js81 print(f"Error extracting image {xref}: {e}")CODE
LOW⚡public/workers/extract-images.worker.js86 except Exception as e:CODE
MEDIUMpublic/workers/extract-images.worker.js42def extract_images_from_pdf(input_bytes, options):CODE
LOW⚡public/workers/table-of-contents-v2.worker.js60 except Exception as e:CODE
LOW⚡public/workers/table-of-contents-v2.worker.js191 except Exception as e:CODE
LOWpublic/workers/word-to-pdf.worker.js471 except Exception as e:CODE
LOWpublic/workers/pptx-to-pdf.worker.js372 except Exception as e:CODE
LOWpublic/workers/pptx-to-pdf.worker.js454 except Exception as e:CODE
LOW⚡public/workers/pdf-to-excel.worker.js80 except Exception as e:CODE
MEDIUM⚡public/workers/pdf-to-excel.worker.js81 print(f"Error extracting table {i} on page {page_num}: {e}")CODE
LOW⚡public/workers/pdf-to-excel.worker.js88 except Exception as e:CODE
MEDIUMpublic/workers/pdf-to-excel.worker.js47def convert_pdf_to_excel(input_bytes, options=None):CODE
LOWsrc/lib/pdf/pymupdf-loader.ts263except Exception as e:CODE
LOWsrc/lib/pdf/pymupdf-loader.ts310 except Exception as e:CODE
LOWsrc/lib/pdf/pymupdf-loader.ts559 except Exception as e:CODE
LOWsrc/lib/pdf/pymupdf-loader.ts718 except Exception as e:CODE
LOWsrc/lib/pdf/pymupdf-loader.ts1084 except Exception as e:CODE
LOWsrc/lib/pdf/pymupdf-loader.ts1337 except Exception:CODE
LOWsrc/lib/pdf/pymupdf-loader.ts1424 except Exception:CODE
1 more matches not shown…
Decorative Section Separators12 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUMnetlify.toml18# ==========================================COMMENT
MEDIUMnetlify.toml20# ==========================================COMMENT
MEDIUMnetlify.toml33# ==========================================COMMENT
MEDIUMnetlify.toml35# ==========================================COMMENT
MEDIUMnetlify.toml153# ==========================================COMMENT
MEDIUMnetlify.toml155# ==========================================COMMENT
MEDIUM.github/workflows/docker-publish.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/docker-publish.yml5# =============================================================================COMMENT
MEDIUM.github/workflows/docker-publish.yml28 # ============================================================================COMMENT
MEDIUM.github/workflows/docker-publish.yml30 # ============================================================================COMMENT
MEDIUM.github/workflows/docker-publish.yml116 # ============================================================================COMMENT
MEDIUM.github/workflows/docker-publish.yml118 # ============================================================================COMMENT
Redundant / Tautological Comments20 hits · 33 pts
SeverityFileLineSnippetContext
LOWscratch/inspect_translated_parts.py5# Set stdout to UTF-8COMMENT
LOWscratch/inspect_chunk3.py23# Check if there are other translated partsCOMMENT
LOWscratch/translate_all_robust.py8# Set stdout to UTF-8 to prevent console print encoding errorsCOMMENT
LOWscratch/translate_all.py7# Set stdout to UTF-8 to prevent console print encoding errorsCOMMENT
LOWscratch/test_batch.py6# Set stdout to UTF-8COMMENT
LOW⚡public/pymupdf-wasm/pymupdf.js838 # Check if we are looking at the child refCOMMENT
LOW⚡public/pymupdf-wasm/pymupdf.js843 # Check if chunk starts with child_ref followed by non-digitCOMMENT
LOW⚡public/pymupdf-wasm/pymupdf.js1343 # Check if pixmap needs conversion to RGBCOMMENT
LOWpublic/pymupdf-wasm/pymupdf.js970 # Check if already in arrayCOMMENT
LOW⚡public/pymupdf-wasm/pymupdf-lite.js838 # Check if we are looking at the child refCOMMENT
LOW⚡public/pymupdf-wasm/pymupdf-lite.js843 # Check if chunk starts with child_ref followed by non-digitCOMMENT
LOW⚡public/pymupdf-wasm/pymupdf-lite.js1343 # Check if pixmap needs conversion to RGBCOMMENT
LOWpublic/pymupdf-wasm/pymupdf-lite.js970 # Check if already in arrayCOMMENT
LOWpublic/workers/table-of-contents-v2.worker.js77 # Check if we need CJK fontCOMMENT
LOWpublic/workers/fb2-to-pdf.worker.js60 # Check if it's a zipped FB2COMMENT
LOWpublic/workers/table-of-contents.worker.js109 # Check if we need a new pageCOMMENT
LOWpublic/workers/pdf-to-excel.worker.js56 # Check if we found any tablesCOMMENT
LOWsrc/lib/pdf/pymupdf-loader.ts287 # Check if we need a new pageCOMMENT
LOWsrc/lib/pdf/pymupdf-loader.ts749# Return resultCOMMENT
LOWsrc/lib/pdf/pymupdf-loader.ts1059 # Check if we need to reduce qualityCOMMENT
Self-Referential Comments6 hits · 21 pts
SeverityFileLineSnippetContext
MEDIUM⚡public/pymupdf-wasm/pymupdf.js1372 # Create a new RGB pixmap with same dimensionsCOMMENT
MEDIUM⚡public/pymupdf-wasm/pymupdf-lite.js1372 # Create a new RGB pixmap with same dimensionsCOMMENT
MEDIUMpublic/workers/table-of-contents-v2.worker.js98 # Create a new PDF for the TOC pageCOMMENT
MEDIUMpublic/workers/table-of-contents.worker.js59 # Create a new PDF for the TOC pageCOMMENT
MEDIUMpublic/workers/table-of-contents.worker.js171 # Create a link to the target pageCOMMENT
MEDIUMsrc/lib/pdf/pymupdf-loader.ts1135# Create a new documentCOMMENT
AI Slop Vocabulary6 hits · 14 pts
SeverityFileLineSnippetContext
LOW⚡public/pymupdf-wasm/pymupdf.js1379 # Last resort: just pass through and hope for the bestCOMMENT
LOW⚡public/pymupdf-wasm/pymupdf-lite.js1379 # Last resort: just pass through and hope for the bestCOMMENT
MEDIUMpublic/workers/table-of-contents-v2.worker.js256 // Use Blob for robust transfer, similar to word-to-pdf workerCOMMENT
MEDIUMsrc/lib/pdf/processors/pdf-scratchpad-canvas.ts122 // To keep it clean and robust, we expand size. In pdf-lib, translating all content requires pushing a graphicCOMMENT
MEDIUMsrc/lib/pdf/processors/form-logic-designer.ts144 // For inputs/checkboxes, Validate is the most robust event for valuesCOMMENT
MEDIUMsrc/lib/pdf/processors/table-of-contents.ts104 // Use V2 worker to bypass cache and use robust byte handlingCOMMENT
Verbosity Indicators8 hits · 12 pts
SeverityFileLineSnippetContext
LOWpublic/workers/pdf-to-docx.worker.js154 // Step 1: Write PDF to virtual filesystemCOMMENT
LOWpublic/workers/pdf-to-docx.worker.js165 // Step 2: Convert PDF to DOCX (returns page count)COMMENT
LOWpublic/workers/pdf-to-docx.worker.js181 // Step 3: Read resultCOMMENT
LOWsrc/lib/pdf/processors/citation-linker.ts77 // Step 2: Extract reference items (e.g. "[1] Author, Title. DOI: ...")COMMENT
LOWsrc/lib/pdf/processors/citation-linker.ts103 // Step 3: Scan body pages (1 to referencesPageNum - 1) for citation markers (e.g., [1] or [1,2])COMMENT
LOWsrc/lib/pdf/processors/citation-linker.ts156 // Step 4: If we are in "apply mode" (user selected which citations to link)COMMENT
LOWsrc/lib/utils/html-sanitizer.ts47 // Step 1: Replace disallowed tags but keep their contentCOMMENT
LOWsrc/lib/utils/html-sanitizer.ts93 // Step 2: Remove dangerous script/event content that might have been in textCOMMENT
Structural Annotation Overuse8 hits · 12 pts
SeverityFileLineSnippetContext
LOWpublic/workers/pdf-to-docx.worker.js154 // Step 1: Write PDF to virtual filesystemCOMMENT
LOWpublic/workers/pdf-to-docx.worker.js165 // Step 2: Convert PDF to DOCX (returns page count)COMMENT
LOWpublic/workers/pdf-to-docx.worker.js181 // Step 3: Read resultCOMMENT
LOWsrc/lib/pdf/processors/citation-linker.ts77 // Step 2: Extract reference items (e.g. "[1] Author, Title. DOI: ...")COMMENT
LOWsrc/lib/pdf/processors/citation-linker.ts103 // Step 3: Scan body pages (1 to referencesPageNum - 1) for citation markers (e.g., [1] or [1,2])COMMENT
LOWsrc/lib/pdf/processors/citation-linker.ts156 // Step 4: If we are in "apply mode" (user selected which citations to link)COMMENT
LOWsrc/lib/utils/html-sanitizer.ts47 // Step 1: Replace disallowed tags but keep their contentCOMMENT
LOWsrc/lib/utils/html-sanitizer.ts93 // Step 2: Remove dangerous script/event content that might have been in textCOMMENT
Slop Phrases3 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM⚡public/libreoffice-wasm/soffice.js2function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_CODE
LOW⚡public/libreoffice-wasm/soffice.js2function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_CODE
MEDIUMsrc-tauri/gen/schemas/acl-manifests.json1{"__app-acl__":{"default_permission":null,"permissions":{"allow-get-system-printers":{"identifier":"allow-get-system-priCODE
Deep Nesting6 hits · 6 pts
SeverityFileLineSnippetContext
LOWscratch/inspect_translated_parts.py10CODE
LOWscratch/translate.py44CODE
LOWscratch/translate.py87CODE
LOWscratch/translate_all_robust.py57CODE
LOWscratch/polish_translations.py3CODE
LOWscratch/translate_all.py45CODE
Unused Imports5 hits · 5 pts
SeverityFileLineSnippetContext
LOWscratch/translate_script.py5CODE
LOWscratch/inspect_keys.py2CODE
LOWscratch/test_batch.py2CODE
LOWscratch/test_batch.py3CODE
LOWscratch/search_translations.py1CODE
Over-Commented Block7 hits · 5 pts
SeverityFileLineSnippetContext
LOWpublic/pdfjs-annotation-viewer/web/viewer.js3081 }COMMENT
LOWpublic/pdfjs-annotation-viewer/web/viewer.js7001 }COMMENT
LOWpublic/pdfjs-annotation-viewer/web/viewer.js9101const DEFAULT_LAYER_PROPERTIES = null;COMMENT
LOWpublic/pdfjs-annotation-viewer/web/viewer.js9941 #enableHighlightFloatingButton = false;COMMENT
LOWpublic/direct-pdf-editor/styles.css1841 #text-editor-app #contextbar,COMMENT
LOWsrc-tauri/src/main.rs301COMMENT
LOWsrc/lib/pdf/processors/crop.ts121 // True destructive crop in PDF is complex (requires rewriting content streams).COMMENT
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOW⚡public/libreoffice-wasm/soffice.js2function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_CODE
LOWpublic/direct-pdf-editor/editcore.js9var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyProCODE