AI Slop Code Risk Monitor

samuelclay/NewsBlur

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

NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.

5.1 Moderate pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for samuelclay/NewsBlur, a HTML project with 7,676 GitHub stars. SynthScan examined 1,321,442 lines of code across 5807 source files, recording 4165 pattern matches distributed across 23 syntactic categories. The legacy adjusted pattern signal is 5.1 (Moderate pattern signal); it is not an authorship estimate.

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

5.1
Adjusted Signal
5.1
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
7.7K
Stars
HTML
Language
1.3M
Lines of Code
5.8K
Files
4.2K
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 9.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 7.5/100 · LOW

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

Agent Over-Engineering Ratio 12.8/100 · LOW

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

PR Review Velocity Impact 24.2/100 · LOW

Which changes need focused human review? 4165 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 161HIGH 219MEDIUM 306LOW 3479

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 4165 distinct pattern matches across 23 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.

Hallucination Indicators161 hits · 1678 pts
SeverityFileLineSnippetContext
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml12 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml13 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml14 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml27 at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:112)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml28 at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml29 at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:40)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml30 at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassPCODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml31 at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:53)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml34 at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml35 at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml36 at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml40 at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml41 at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml42 at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml43 at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml44 at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml45 at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml46 at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml47 at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml58 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml59 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml60 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml73 at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:112)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml74 at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml75 at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:40)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml76 at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassPCODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml77 at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:53)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml80 at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml81 at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml82 at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml86 at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml87 at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml88 at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml89 at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml90 at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml91 at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml92 at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)CODE
CRITICAL⚡…ontrols-recovery-2026-10-17/baseline-failing-tests.xml93 at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml79 at io.mockk.impl.recording.states.VerifyingState.failIfNotPassed(VerifyingState.kt:61)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml80 at io.mockk.impl.recording.states.VerifyingState.recordingDone(VerifyingState.kt:40)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml81 at io.mockk.impl.recording.CommonCallRecorder.done(CommonCallRecorder.kt:47)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml82 at io.mockk.impl.eval.RecordedBlockEvaluator.record(RecordedBlockEvaluator.kt:63)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml83 at io.mockk.impl.eval.VerifyBlockEvaluator.verify(VerifyBlockEvaluator.kt:30)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml91 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml92 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml93 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml106 at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:112)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml107 at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml108 at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:40)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml109 at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassPCODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml110 at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:53)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml113 at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml114 at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml115 at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml119 at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml120 at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml121 at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml122 at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml123 at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.CODE
CRITICAL⚡…-2026-10-17/drag-regression/baseline-failing-tests.xml124 at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.CODE
101 more matches not shown…
Hyper-Verbose Identifiers1938 hits · 1577 pts
SeverityFileLineSnippetContext
LOWclients/browser-extension/src/options/options.js505async function handleRemoveBlockedDomain(domain) {CODE
LOWclients/browser-extension/src/popup/popup.js139async function syncPendingArchivesFromPopup() {CODE
LOWclients/ios/static/mark.js644 value: function callNoMatchOnInvalidRanges(range, last) {CODE
LOWclients/ios/static/mark.js744 value: function wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) {CODE
LOWclients/ios/static/mark.js808 value: function wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) {CODE
LOWclients/ios/static/storyDetailView.js334function applyClassifierHighlights(classifiers) {CODE
LOWclients/ios/static/storyDetailView.js455function newsblurListenIsContainer(element) {CODE
LOWclients/ios/static/storyDetailView.js527function newsblurListenClearHighlight() {CODE
LOWclients/ios/static/storyDetailView.js613function newsblurListenSetMiniPlayer(shown) {CODE
LOWclients/store/test_google_play.py13 def test_listing_stage_preserves_video_extra_locale_and_reads_back(self):CODE
LOWclients/store/test_google_play.py42 def test_missing_video_in_listing_readback_stops_staging(self):CODE
LOWclients/store/test_google_play.py52 def test_product_patch_changes_only_listings_and_preserves_extra_locale(self):CODE
LOWclients/store/test_google_play.py87 def test_configuration_change_in_product_readback_fails(self):CODE
LOWclients/store/test_google_play.py96 def test_changed_product_baseline_blocks_all_patches(self):CODE
LOWclients/store/google_play.py194def unchanged_product_configuration(before, after):CODE
LOWclients/store/test_google_play_assets.py26 def test_image_inventory_retries_transient_http_failure(self):CODE
LOWclients/store/test_google_play_assets.py43 def test_image_inventory_does_not_retry_permission_failure(self):CODE
LOWclients/store/test_google_play_assets.py92 def test_lost_upload_response_resumes_without_duplicate_or_second_clear(self):CODE
LOWclients/store/test_google_play_assets.py104 def test_lost_delete_response_recovers_empty_set(self):CODE
LOW⚡clients/store/test_google_play_assets.py117 def test_unexpected_image_blocks_deletion(self):CODE
LOW⚡clients/store/test_google_play_assets.py123 def test_changed_resume_prefix_blocks_further_upload(self):CODE
LOW⚡clients/store/test_google_play_assets.py132 def test_unrelated_text_track_or_image_changes_fail_preservation(self):CODE
LOWclients/store/test_google_play_assets.py146 def test_readback_rejects_reordered_images(self):CODE
LOWclients/store/test_google_play_assets.py154 def test_foreign_change_in_later_group_blocks_all_mutations(self):CODE
LOWclients/store/test_google_play_assets.py174 def test_video_update_preserves_all_other_listing_fields(self):CODE
LOWarchive/jammit.py98 def javascript_tag_compressed(self, asset_package, asset_type_ext):CODE
LOWarchive/jammit.py107 def stylesheet_tag_compressed(self, asset_package, asset_type_ext):CODE
LOW⚡archive/fabfile.py150def assign_digitalocean_roledefs(split=False):CODE
LOWarchive/fabfile.py534def setup_repo_local_settings():CODE
LOWarchive/fabfile.py788def switch_forked_mongoengine():CODE
LOWarchive/fabfile.py1676def setup_original_page_server():CODE
LOWarchive/fabfile.py1761def setup_feeds_fetched_monitor():CODE
LOWarchive/ansible/do_inventory.py509 def load_droplet_variables_for_host(self):CODE
LOWarchive/api/newsblur.py169 def mark_story_hashes_as_read(self, story_hashes):CODE
LOWutils/prometheus_worker_slots.py46def discard_corrupt_slot_files(prom_dir, slot):CODE
LOWutils/feed_fetcher.py309 def openrss_corrected_address(self, address):CODE
LOWutils/feed_fetcher.py1008 def https_probe_looks_like_a_feed(response):CODE
LOWutils/feed_fetcher.py1364 def migrate_openrss_feed_address(self):CODE
LOWutils/feed_fetcher.py1387 def migrate_https_feed_address(self):CODE
LOWutils/feed_fetcher.py1837 def compare_feed_attribute_changes(self):CODE
LOWutils/feed_fetcher.py1976 def reset_database_connections(self):CODE
LOWutils/feed_fetcher.py2393 def fetch_and_process_archive_pages(self, feed_id):CODE
LOWutils/feed_fetcher.py2583 def count_unreads_for_subscribers(self, feed, new_story_count=0, new_story_hashes=None):CODE
LOWutils/feed_fetcher.py2690 def calculate_feed_scores_with_stories(self, user_subs, stories, stories_cutoff=None):CODE
LOWutils/feed_fetcher.py2696 def classify_stories_for_subscribers(self, feed, stories, new_story_count, new_story_hashes=None):CODE
LOWutils/feed_fetcher.py257def fetch_url_with_scrapingbee(url):STRING
LOWutils/feed_functions.py464def strip_underscore_from_feed_address(feed_address):CODE
LOWutils/feed_functions.py511def rewrite_openrss_to_feed_address(url):CODE
LOWutils/feed_functions.py548def _openrss_path_segment_is_hostname(segment):CODE
LOWutils/rtl_css.py681def _mirror_gradient_direction(argument, name):CODE
LOWutils/fields.py52 def contribute_to_related_class(self, cls, related):CODE
LOWutils/url_safety.py147def _requests_response_from_httpx(httpx_response):CODE
LOWutils/user_functions.py123def invalidate_template_cache(fragment_name, *variables):CODE
LOWutils/ai_functions.py235def classify_stories_with_vision(prompt_classifier, stories, model=ANTHROPIC_MODEL, user_id=None):CODE
LOWutils/reddit_fetcher.py136 def normalized_listing_segments(self):CODE
LOWutils/reddit_fetcher.py156 def should_fetch_original_rss(self):CODE
LOWutils/reddit_fetcher.py190 def extract_listing_path_and_sort(self):CODE
LOWutils/youtube_fetcher.py37def strip_xml_control_characters(value):CODE
LOWutils/youtube_fetcher.py193 def _thumbnail_url_from_snippet(self, payload):CODE
LOWutils/story_functions.py46def _normalize_image_url_for_dedup(url):CODE
1878 more matches not shown…
Empty Error Handlers183 hits · 890 pts
SeverityFileLineSnippetContext
HIGHutils/zgrep.py146except UnicodeDecodeError:CODE
HIGHutils/feed_fetcher.py1323except Exception:CODE
HIGHutils/feed_fetcher.py1887except ValueError:CODE
HIGHutils/url_safety.py175except ValueError:CODE
HIGHutils/feedfinder_pilgrim.py310except:CODE
HIGHutils/feedfinder_pilgrim.py106except:CODE
HIGHutils/feedfinder_pilgrim.py243except (AttributeError, UnicodeDecodeError):CODE
HIGHutils/user_functions.py110except User.DoesNotExist:CODE
HIGHutils/youtube_fetcher.py283except Exception:CODE
HIGHutils/story_functions.py621except UnicodeDecodeError:CODE
HIGHutils/story_functions.py236except (ValueError, TypeError, OverflowError):CODE
HIGHutils/story_functions.py335except UnicodeEncodeError:CODE
HIGHutils/ip_rate_tracker.py333except Exception:CODE
HIGHutils/ip_rate_tracker.py745except Exception:CODE
HIGHutils/webfeed_fetcher.py154except requests.RequestException:CODE
HIGHutils/webfeed_fetcher.py200except requests.RequestException:CODE
HIGHutils/llm_costs.py362except Exception:CODE
HIGHutils/llm_costs.py270except Exception:CODE
HIGHutils/backups/offsite_status.py115except Exception:CODE
HIGHutils/backups/offsite_status.py190except Exception:CODE
HIGHutils/backups/offsite_status.py247except Exception:CODE
HIGHutils/backups/offsite_status.py292except Exception:CODE
HIGHutils/backups/offsite_status.py313except Exception:CODE
HIGHutils/backups/offsite_status.py165except (IOError, json.JSONDecodeError):CODE
HIGHflask_monitor/flask_settings.py9except ImportError:CODE
HIGHnewsblur_web/settings.py861except ModuleNotFoundError:CODE
HIGHnewsblur_web/settings.py870except ModuleNotFoundError:CODE
HIGHnewsblur_web/settings.py877except ModuleNotFoundError:CODE
HIGHnewsblur_web/settings.py1301except KeyError:CODE
HIGHnewsblur_web/test_settings.py39except Exception:CODE
HIGHnewsblur_mcp/newsblur_mcp/server.py119except Exception:CODE
HIGHnewsblur_mcp/newsblur_mcp/tools/feeds.py162except Exception:CODE
HIGHnewsblur_mcp/newsblur_mcp/cli/auth.py153except Exception:CODE
HIGHnewsblur_mcp/newsblur_mcp/cli/auth.py68except (json.JSONDecodeError, OSError):CODE
HIGHnewsblur_mcp/newsblur_mcp/cli/auth.py80except (json.JSONDecodeError, OSError):CODE
HIGHnewsblur_mcp/newsblur_mcp/cli/auth.py275except (json.JSONDecodeError, OSError):CODE
HIGHnewsblur_mcp/newsblur_mcp/cli/auth.py293except (json.JSONDecodeError, OSError):CODE
HIGHnewsblur_mcp/newsblur_mcp/cli/output.py331except (ValueError, AttributeError):CODE
HIGHapps/reader/models.py1427except LockError:CODE
HIGHapps/reader/views.py108except:CODE
HIGHapps/reader/views.py3539except (json.JSONDecodeError, AttributeError):CODE
HIGHapps/reader/views.py6237except UserSubscriptionFolders.DoesNotExist:CODE
HIGHapps/reader/views.py3244except (urllib.error.URLError, socket.timeout, UnicodeEncodeError, http.client.InvalidURL):CODE
HIGHapps/reader/views.py5142except Feed.DoesNotExist:CODE
HIGHapps/reader/views.py3537except (ValueError, TypeError):CODE
HIGHapps/reader/views.py5512except MStarredStoryCounts.DoesNotExist:CODE
HIGHapps/reader/views.py492except User.DoesNotExist:CODE
HIGHapps/reader/views.py3535except Exception:CODE
HIGHapps/statistics/rtrending.py374except (ValueError, TypeError):CODE
HIGHapps/statistics/rtrending.py400except (ValueError, TypeError):CODE
HIGHapps/statistics/rtrending.py437except (ValueError, TypeError):CODE
HIGHapps/statistics/rscrapingbee.py123except Exception:CODE
HIGHapps/statistics/rscrapingbee.py350except ValueError:CODE
HIGHapps/statistics/rtrending_subscriptions.py158except (ValueError, TypeError):CODE
HIGHapps/statistics/rtrending_subscriptions.py220except (ValueError, TypeError):CODE
HIGHapps/rss_feeds/models.py1111except MStory.DoesNotExist:CODE
HIGHapps/rss_feeds/models.py3247except Exception:CODE
HIGHapps/rss_feeds/models.py4357except Exception:CODE
HIGHapps/rss_feeds/models.py367except MFeedIcon.DoesNotExist:CODE
HIGHapps/rss_feeds/models.py1164except (KeyError, UnsafeUrlError):CODE
123 more matches not shown…
Decorative Section Separators239 hits · 753 pts
SeverityFileLineSnippetContext
MEDIUM⚡archive/fabfile.py140# ================COMMENT
MEDIUM⚡archive/fabfile.py142# ================COMMENT
MEDIUM⚡archive/fabfile.py1959# ===============COMMENT
MEDIUM⚡archive/fabfile.py1961# ===============COMMENT
MEDIUMarchive/fabfile.py47# ============COMMENT
MEDIUMarchive/fabfile.py49# ============COMMENT
MEDIUMarchive/fabfile.py227# =============COMMENT
MEDIUMarchive/fabfile.py229# =============COMMENT
MEDIUMarchive/fabfile.py385# ==================COMMENT
MEDIUMarchive/fabfile.py387# ==================COMMENT
MEDIUMarchive/fabfile.py406# ==================COMMENT
MEDIUMarchive/fabfile.py408# ==================COMMENT
MEDIUMarchive/fabfile.py882# ===============COMMENT
MEDIUMarchive/fabfile.py884# ===============COMMENT
MEDIUMarchive/fabfile.py1283# ==============COMMENT
MEDIUMarchive/fabfile.py1285# ==============COMMENT
MEDIUMarchive/fabfile.py1789# ================COMMENT
MEDIUMarchive/fabfile.py1791# ================COMMENT
MEDIUMarchive/fabfile.py1850# =========================COMMENT
MEDIUMarchive/fabfile.py1852# =========================COMMENT
MEDIUMarchive/fabfile.py1994# ==========COMMENT
MEDIUMarchive/fabfile.py1996# ==========COMMENT
MEDIUMarchive/fabfile.py2211# ===========COMMENT
MEDIUMarchive/fabfile.py2213# ===========COMMENT
MEDIUMarchive/fabfile.py2259# ===============COMMENT
MEDIUMarchive/fabfile.py2261# ===============COMMENT
MEDIUMarchive/fabfile.py2281# ==============COMMENT
MEDIUMarchive/fabfile.py2283# ==============COMMENT
MEDIUMutils/check_health.sh59# =====================COMMENT
MEDIUMutils/check_health.sh61# =====================COMMENT
MEDIUMutils/check_health.sh145# =====================COMMENT
MEDIUMutils/check_health.sh147# =====================COMMENT
MEDIUMutils/check_health.sh364# =====================COMMENT
MEDIUMutils/check_health.sh366# =====================COMMENT
MEDIUM⚡newsblur_web/docker_local_settings.py4# ===================COMMENT
MEDIUM⚡newsblur_web/docker_local_settings.py6# ===================COMMENT
MEDIUM⚡newsblur_web/docker_local_settings.py16# ===================COMMENT
MEDIUM⚡newsblur_web/docker_local_settings.py18# ===================COMMENT
MEDIUM⚡newsblur_web/docker_local_settings.py86# ===============COMMENT
MEDIUM⚡newsblur_web/docker_local_settings.py88# ===============COMMENT
MEDIUM⚡newsblur_web/docker_local_settings.py96# =============COMMENT
MEDIUM⚡newsblur_web/docker_local_settings.py98# =============COMMENT
MEDIUMnewsblur_web/docker_local_settings.py159# ===========COMMENT
MEDIUMnewsblur_web/docker_local_settings.py161# ===========COMMENT
MEDIUM⚡newsblur_web/settings.py416# ==============COMMENT
MEDIUM⚡newsblur_web/settings.py418# ==============COMMENT
MEDIUM⚡newsblur_web/settings.py427# ===========COMMENT
MEDIUM⚡newsblur_web/settings.py429# ===========COMMENT
MEDIUM⚡newsblur_web/settings.py434# ===============COMMENT
MEDIUM⚡newsblur_web/settings.py436# ===============COMMENT
MEDIUM⚡newsblur_web/settings.py781# =================COMMENT
MEDIUM⚡newsblur_web/settings.py783# =================COMMENT
MEDIUM⚡newsblur_web/settings.py789# ====================COMMENT
MEDIUM⚡newsblur_web/settings.py791# ====================COMMENT
MEDIUM⚡newsblur_web/settings.py1163# ==================COMMENT
MEDIUM⚡newsblur_web/settings.py1165# ==================COMMENT
MEDIUM⚡newsblur_web/settings.py1174# ==========COMMENT
MEDIUM⚡newsblur_web/settings.py1176# ==========COMMENT
MEDIUM⚡newsblur_web/settings.py1181# ==========COMMENT
MEDIUM⚡newsblur_web/settings.py1183# ==========COMMENT
179 more matches not shown…
Over-Commented Block398 hits · 364 pts
SeverityFileLineSnippetContext
LOWansible.cfg21# Retry establishing the SSH connection this many times before marking a hostCOMMENT
LOWclients/ios/Classes/OfflineCleanImages.h1//COMMENT
LOWclients/ios/Classes/HorizontalPageDelegate.swift1//COMMENT
LOWclients/ios/Classes/HorizontalPageDelegate.swift21//COMMENT
LOWclients/ios/Classes/HorizontalPageDelegate.swift41// let pageIndex = (currentViewController.pageIndex ?? -1) - 1COMMENT
LOWclients/ios/Classes/HorizontalPageDelegate.swift61//COMMENT
LOWclients/ios/Classes/SmallActivityCell.m1//COMMENT
LOWclients/ios/Classes/DividerView.swift1//COMMENT
LOWclients/ios/Classes/SiteCell.m1//COMMENT
LOWclients/ios/Classes/ActivitiesNavigationBar.m1//COMMENT
LOWclients/ios/Classes/ActivitiesNavigationBar.m21// subViewFrame.size.height = 64;COMMENT
LOWclients/ios/Classes/FeedDetailTableCell.m1//COMMENT
LOWclients/ios/Classes/FontSettingsViewController.m1//COMMENT
LOWclients/ios/Classes/StoryPagesViewController.swift1//COMMENT
LOWclients/ios/Classes/MoveSiteViewController.m1//COMMENT
LOWclients/ios/Classes/ThemeManager.m1//COMMENT
LOWclients/ios/Classes/SmallInteractionCell.m1//COMMENT
LOWclients/ios/Classes/InteractionCell.m1#import "NewsBlur-Swift.h"COMMENT
LOWclients/ios/Classes/FriendsListViewController.m1#import "NewsBlur-Swift.h"COMMENT
LOWclients/ios/Classes/AddSiteViewController.m1//COMMENT
LOWclients/ios/Classes/FeedTableCell.m1//COMMENT
LOWclients/ios/Classes/FeedChooserViewController.m1#import "NewsBlur-Swift.h"COMMENT
LOWclients/ios/Classes/StoryDetailObjCViewController.m1//COMMENT
LOWclients/ios/Classes/StoryPagesObjCViewController.h1//COMMENT
LOWclients/ios/Classes/SplitViewController.swift401// print("canPerformAction: \(action) with \(sender ?? "nil")")COMMENT
LOWclients/ios/Classes/LoginViewController.m1//COMMENT
LOWclients/ios/Classes/DashList.swift161 } else if folderId == "trending:good_reads" {COMMENT
LOWclients/ios/Classes/NewsBlurAppDelegate.m1// NewsBlurAppDelegate.mCOMMENT
LOWclients/ios/Classes/NewsBlurAppDelegate.m21#import "FontSettingsViewController.h"COMMENT
LOWclients/ios/Classes/NewsBlurAppDelegate.m41#import "FMDatabaseAdditions.h"COMMENT
LOWclients/ios/Classes/NewsBlurAppDelegate.m401- (void)application:(UIApplication *)application willEncodeRestorableStateWithCoder:(NSCoder *)coder {COMMENT
LOWclients/ios/Classes/NewsBlurAppDelegate.m421 // NSInteger version = [coder decodeIntegerForKey:@"version"];COMMENT
LOWclients/ios/Classes/NewsBlurAppDelegate.m2441 storiesCollection.isSocialView = NO;COMMENT
LOWclients/ios/Classes/FirstTimeUserViewController.m1#import "NewsBlur-Swift.h"COMMENT
LOWclients/ios/Classes/ProfileBadge.m1//COMMENT
LOWclients/ios/Classes/FeedDetailObjCViewController.h1//COMMENT
LOWclients/ios/Classes/AddSiteTableCell.m1//COMMENT
LOWclients/ios/Classes/ShareViewController.m1//COMMENT
LOWclients/ios/Classes/ActivityCell.m1//COMMENT
LOWclients/ios/Classes/FeedsObjCViewController.m1//COMMENT
LOWclients/ios/Classes/FeedsObjCViewController.m21#import "Utilities.h"COMMENT
LOWclients/ios/Classes/FeedsObjCViewController.m1021 }];COMMENT
LOWclients/ios/Classes/FeedsObjCViewController.m1521 [userPreferences synchronize];COMMENT
LOWclients/ios/Classes/FeedsObjCViewController.m1541// [settingsButton setImage:[[ThemeManager themeManager] themedImage:settingsImage] forState:UIControlStateNormal];COMMENT
LOWclients/ios/Classes/StoriesCollection.m1//COMMENT
LOWclients/ios/Classes/SmallInteractionCell.h1//COMMENT
LOWclients/ios/Classes/ThemeManager.h1//COMMENT
LOWclients/ios/Classes/NBCopyLinkActivity.h1//COMMENT
LOWclients/ios/Classes/ActivitiesNavigationBar.h1//COMMENT
LOWclients/ios/Classes/SiteCell.h1//COMMENT
LOWclients/ios/Classes/Storyboards.swift1//COMMENT
LOWclients/ios/Classes/ActivityModule.m1//COMMENT
LOWclients/ios/Classes/OfflineCleanImages.m1//COMMENT
LOWclients/ios/Classes/FontListViewController.m1//COMMENT
LOWclients/ios/Classes/SmallActivityCell.h1//COMMENT
LOW…ts/ios/Classes/FirstTimeUserAddFriendsViewController.m1#import "NewsBlur-Swift.h"COMMENT
LOWclients/ios/Classes/UserTagsViewController.m1//COMMENT
LOWclients/ios/Classes/FeedTableCell.h1//COMMENT
LOWclients/ios/Classes/UnreadCountView.m1//COMMENT
LOWclients/ios/Classes/NewsBlurApplication.h1//COMMENT
338 more matches not shown…
Excessive Try-Catch Wrapping286 hits · 302 pts
SeverityFileLineSnippetContext
MEDIUMclients/ios/run_ios.py543 print("Error: No simulator UDID specified.\n")CODE
MEDIUMclients/ios/Classes/AuxSceneDelegate.swift31 print("Error activating scene: \(error)")CODE
MEDIUMclients/ios/Classes/AuxSceneDelegate.swift35 print("Error activating scene: \(error)")CODE
MEDIUMclients/ios/scripts/convert_icons_to_pdf.py23 print("Error: cairosvg is required. Install with: pip install cairosvg")CODE
LOWclients/ios/scripts/convert_icons_to_pdf.py47 except Exception as e:CODE
MEDIUMclients/android/run_android.py898 print(f"Error: {exc}", file=sys.stderr)CODE
MEDIUM…NewsBlur Archive/NewsBlur Archive/ViewController.swift62 print("Error opening Safari preferences: \(error)")STRING
LOWclients/store/google_play.py320 except Exception:CODE
LOWarchive/fabfile.py2190 except Exception as e:CODE
LOWarchive/munin/munin/__init__.py57 except Exception as exc:CODE
LOWconfig/gunicorn_conf.py64 except Exception as e:CODE
LOW.agents/skills/investigate-forum/screenshot.py164 except Exception:CODE
LOWutils/analytics_degradation.py90 except Exception as e:CODE
LOWutils/prometheus_worker_slots.py68 except Exception as e:CODE
LOWutils/json_functions.py156 except Exception as e:CODE
LOWutils/feed_fetcher.py283 except Exception as e:CODE
LOWutils/feed_fetcher.py873 except Exception as e:CODE
LOWutils/feed_fetcher.py1000 except Exception as e:CODE
LOWutils/feed_fetcher.py1126 except Exception as e:CODE
LOWutils/feed_fetcher.py1215 except Exception as e:CODE
LOWutils/feed_fetcher.py1323 except Exception:CODE
LOWutils/feed_fetcher.py1862 except Exception as e:CODE
LOWutils/feed_fetcher.py2154 except Exception as e:CODE
LOWutils/feed_fetcher.py2223 except Exception as e:CODE
LOWutils/feed_fetcher.py2259 except Exception as e:CODE
LOWutils/ai_functions.py178 except Exception as e:CODE
LOWutils/ai_functions.py230 except Exception as e:CODE
LOWutils/ai_functions.py430 except Exception as e:CODE
LOWutils/reddit_fetcher.py515 except Exception:CODE
LOWutils/youtube_fetcher.py230 except Exception:CODE
LOWutils/youtube_fetcher.py244 except Exception:CODE
LOWutils/youtube_fetcher.py283 except Exception:CODE
LOWutils/tornado_escape.py38except Exception:CODE
LOWutils/story_functions.py52 except Exception:CODE
LOWutils/story_functions.py111 except Exception:CODE
LOWutils/story_functions.py282 except Exception:CODE
LOWutils/ip_rate_tracker.py333 except Exception:CODE
LOWutils/ip_rate_tracker.py658 except Exception:CODE
LOWutils/ip_rate_tracker.py745 except Exception:CODE
LOW⚡utils/prometheus_middleware.py21 except Exception as e:CODE
LOWutils/prometheus_middleware.py43 except Exception as retry_error:CODE
LOWutils/prometheus_middleware.py56 except Exception as e:CODE
MEDIUMutils/prometheus_middleware.py33def __call__(self, request):CODE
LOWutils/feedfinder_forman.py45 except Exception as e:CODE
MEDIUMutils/feedfinder_forman.py40def get_feed(self, url, skip_user_agent=False):CODE
LOW⚡utils/webfeed_fetcher.py220 except Exception:CODE
LOW⚡utils/webfeed_fetcher.py227 except Exception:CODE
LOW⚡utils/webfeed_fetcher.py237 except Exception:CODE
LOW⚡utils/webfeed_fetcher.py247 except Exception:CODE
LOW⚡utils/webfeed_fetcher.py255 except Exception:CODE
LOW⚡utils/webfeed_fetcher.py269 except Exception:CODE
LOW⚡utils/webfeed_fetcher.py279 except Exception:CODE
LOW⚡utils/webfeed_fetcher.py289 except Exception:CODE
LOWutils/llm_costs.py270 except Exception:CODE
LOWutils/llm_costs.py285 except Exception as e:CODE
LOWutils/llm_costs.py316 except Exception as e:CODE
LOWutils/llm_costs.py350 except Exception as e:CODE
LOWutils/llm_costs.py362 except Exception:CODE
LOWutils/monitor_task_fetches.py32 except Exception as e:CODE
LOWutils/monitor_work_queue.py30 except Exception as e:CODE
226 more matches not shown…
Deep Nesting375 hits · 298 pts
SeverityFileLineSnippetContext
LOWclients/ios/run_ios.py440CODE
LOWclients/android/run_android.py623CODE
LOWclients/store/google_play_assets.py46CODE
LOWclients/store/test_google_play_assets.py132CODE
LOWarchive/jammit.py34CODE
LOWarchive/fabfile.py322CODE
LOWarchive/fabfile.py577CODE
LOWarchive/fabfile.py594CODE
LOWarchive/fabfile.py1115CODE
LOWarchive/fabfile.py1196CODE
LOWarchive/fabfile.py2053CODE
LOWarchive/fabfile.py2375CODE
LOWarchive/munin/munin/cassandra.py26CODE
LOWarchive/munin/munin/cassandra.py52CODE
LOWarchive/munin/munin/__init__.py27CODE
LOWarchive/munin/munin/__init__.py47CODE
LOWarchive/munin/munin/mysql.py13CODE
LOWarchive/ansible/do_inventory.py162CODE
LOWarchive/ansible/do_inventory.py227CODE
LOWutils/zgrep.py117CODE
LOWutils/json_fetcher.py86CODE
LOWutils/json_functions.py43CODE
LOWutils/json_functions.py50CODE
LOWutils/feed_fetcher.py330CODE
LOWutils/feed_fetcher.py1431CODE
LOWutils/feed_fetcher.py1643CODE
LOWutils/feed_fetcher.py1717CODE
LOWutils/feed_fetcher.py1998CODE
LOWutils/feed_fetcher.py2393CODE
LOWutils/rtail.py17CODE
LOWutils/feed_functions.py174CODE
LOWutils/feed_functions.py196CODE
LOWutils/feed_functions.py330CODE
LOWutils/rtl_css.py173CODE
LOWutils/rtl_css.py423CODE
LOWutils/rtl_css.py454CODE
LOWutils/rtl_css.py571CODE
LOWutils/rtl_css.py694CODE
LOWutils/rtl_css.py713CODE
LOWutils/url_safety.py102CODE
LOWutils/log.py29CODE
LOWutils/redis_raw_log_middleware.py95CODE
LOWutils/redis_raw_log_middleware.py118CODE
LOWutils/feedfinder_pilgrim.py407CODE
LOWutils/tlnb.py34CODE
LOWutils/tlnb.py110CODE
LOWutils/tlnb.py160CODE
LOWutils/user_functions.py135CODE
LOWutils/ai_functions.py50CODE
LOWutils/ai_functions.py183CODE
LOWutils/ai_functions.py235CODE
LOWutils/reddit_fetcher.py206CODE
LOWutils/youtube_fetcher.py174CODE
LOWutils/youtube_fetcher.py287CODE
LOWutils/youtube_fetcher.py513CODE
LOWutils/tornado_escape.py212CODE
LOWutils/story_functions.py163CODE
LOWutils/story_functions.py291CODE
LOWutils/image_functions.py52CODE
LOWutils/ip_rate_tracker.py698CODE
315 more matches not shown…
Unused Imports259 hits · 239 pts
SeverityFileLineSnippetContext
LOWclients/ios/scripts/convert_icons_to_pdf.py16CODE
LOWclients/android/run_android.py56CODE
LOWarchive/munin/munin/cassandra.py4CODE
LOWarchive/munin/munin/riak.py9CODE
LOWarchive/munin/munin/ddwrt.py4CODE
LOWarchive/ansible/do_inventory.py124CODE
LOWarchive/ansible/do_inventory.py124CODE
LOWarchive/ansible/do_inventory.py124CODE
LOWarchive/perf/locust.py1CODE
LOWarchive/perf/locust.py2CODE
LOWarchive/perf/locust.py4CODE
LOW.agents/skills/investigate-forum/screenshot.py35CODE
LOWutils/zgrep.py6CODE
LOWutils/zgrep.py11CODE
LOWutils/feed_fetcher.py66CODE
LOWutils/feed_fetcher.py68CODE
LOWutils/feed_fetcher.py70CODE
LOWutils/feed_fetcher.py88CODE
LOWutils/feed_functions.py9CODE
LOWutils/redis_raw_log_middleware.py1CODE
LOWutils/redis_raw_log_middleware.py5CODE
LOWutils/tlnb.py6CODE
LOWutils/ai_functions.py10CODE
LOWutils/ai_functions.py11CODE
LOWutils/youtube_fetcher.py15CODE
LOWutils/youtube_fetcher.py16CODE
LOWutils/story_functions.py14CODE
LOWutils/hostname_ssh.py7CODE
LOWutils/mongo_raw_log_middleware.py5CODE
LOWutils/mongo_raw_log_middleware.py6CODE
LOWutils/mongo_raw_log_middleware.py8CODE
LOWutils/mongo_raw_log_middleware.py13CODE
LOWutils/webfeed_fetcher.py10CODE
LOWutils/exception_middleware.py7CODE
LOWutils/exception_middleware.py10CODE
LOWutils/monitor_work_queue.py9CODE
LOWutils/S3.py15CODE
LOWutils/S3.py16CODE
LOWutils/templatetags/utils_tags.py4CODE
LOWutils/templatetags/utils_tags.py13CODE
LOWutils/templatetags/utils_tags.py15CODE
LOWutils/templatetags/utils_tags.py15CODE
LOWutils/archive/memcached_status.py2CODE
LOWansible/utils/generate_hetzner_inventory.py3CODE
LOWansible/utils/generate_hetzner_inventory.py4CODE
LOWansible/utils/generate_hetzner_inventory.py5CODE
LOWansible/utils/generate_hetzner_inventory.py6CODE
LOWansible/utils/generate_hetzner_inventory.py12CODE
LOWflask_monitor/flask_settings.py8CODE
LOWflask_monitor/db_monitor.py1CODE
LOWnewsblur_web/__init__.py1CODE
LOWnewsblur_web/__init__.py1CODE
LOWnewsblur_web/__init__.py5CODE
LOWnewsblur_web/settings.py857CODE
LOWnewsblur_web/settings.py860CODE
LOWnewsblur_web/settings.py866CODE
LOWnewsblur_web/settings.py873CODE
LOWnewsblur_web/celeryapp.py1CODE
LOWnewsblur_web/celeryapp.py1CODE
LOWnewsblur_web/test_settings.py4CODE
199 more matches not shown…
Redundant / Tautological Comments67 hits · 100 pts
SeverityFileLineSnippetContext
LOWworktree-dev.sh93# Check if setup has been runCOMMENT
LOWworktree-dev.sh177 # Check if we can copy from parent repo (handle both regular repo and worktree)COMMENT
LOWworktree-dev.sh206 # Check if shared services are already running (using original container names)COMMENT
LOWworktree-dev.sh396 # Check if this worktree already has chrome-devtools configured with --isolatedCOMMENT
LOWworktree-dev.sh413# Check if shared services are already runningCOMMENT
LOWworktree-dev.sh522 # Check if any container is in Exited state (potential broken network)COMMENT
LOWclients/ios/scripts/fix_alpha_target.rb32# Check if already added to Alpha targetCOMMENT
LOWclients/ios/scripts/add_files_to_xcode.rb36# Check if files already exist in projectCOMMENT
LOWclients/ios/scripts/add_files_to_xcode.rb65 # Check if Icons group/reference already existsCOMMENT
LOWclients/safari-extension/build.sh20# Check if browser extension existsCOMMENT
LOWarchive/netdata_docker/vars/main.yml10# Set whether to run the Agent web server/dashboard/API, or disable them.COMMENT
LOWutils/test_haproxy_toggle.sh119# Display resultsCOMMENT
LOW⚡utils/feed_fetcher.py147 # Check if any of the indicators are presentCOMMENT
LOWutils/feed_fetcher.py1484 # Check if caller requested a specific max_stories limit (e.g. bootstrap_popular_feeds)COMMENT
LOWutils/feed_fetcher.py1489 # Check if this is a high-volume feed that can handle more storiesCOMMENT
LOWutils/retry_unlinked_loop.sh33 # Check if there are no more unlinked feedsCOMMENT
LOWutils/story_functions.py417 # Check if wrapper has height:0 and padding-bottom (responsive embed pattern)COMMENT
LOWutils/feedfinder_forman.py112 # Check if it is already a feed.COMMENT
LOWutils/search_openrss_24h.py63 # Check if within last 24 hoursCOMMENT
LOWutils/bootstrap_loop.sh65 # Check if we've processed all entriesCOMMENT
LOWutils/load_test_deploy.sh113# Display resultsCOMMENT
LOWutils/view_functions.py80 # Check if in_progress cleared but no result (request failed)COMMENT
LOWutils/view_functions.py173 # Check if parameter is includedCOMMENT
LOWutils/view_functions.py179 # Check if parameter is correct typeCOMMENT
LOWutils/ssh_hz.sh33# Check if an alias is providedCOMMENT
LOWutils/ssh_hz.sh57# Check if a host was foundCOMMENT
LOWansible/roles/consul/tasks/get_consul_manager_ip.py34 # Check if the group existsCOMMENT
LOWnewsblur_web/docker_local_settings.py66# Set this to the username that is shown on the homepage to unauthenticated users.COMMENT
LOWnewsblur_web/settings.py906 # Set traces_sample_rate to 1.0 to capture 100%COMMENT
LOWnewsblur_mcp/newsblur_mcp/cli/auth.py338 # Check if expiredCOMMENT
LOWflask_metrics/flask_metrics_postgres.py51 # Check if this is a primary by looking for connected replicasCOMMENT
LOWflask_metrics/flask_metrics_postgres.py182 # Check if we're in recovery (i.e., a replica)COMMENT
LOWapps/reader/models.py1891 # Check if user is archive and story is outside unread cutoffCOMMENT
LOWapps/reader/models.py3758 # Check if user already has a custom icon for the original feedCOMMENT
LOWapps/reader/views.py1417 # Check if user wants YouTube captions enabledCOMMENT
LOWapps/reader/views.py2960 # Check if user wants YouTube captions enabledCOMMENT
LOWapps/reader/views.py3211 # Check if path can be encoded as ASCIICOMMENT
LOWapps/reader/views.py3992 # Check if Twitter API is active for userCOMMENT
LOWapps/reader/views.py6136 # Check if user is archive tier (required for this feature)COMMENT
LOWapps/reader/views.py6201 # Check if user is archive tier (required for this feature)COMMENT
LOWapps/rss_feeds/models.py5563 # Check if new_tag (case-insensitive) is already presentCOMMENT
LOWapps/rss_feeds/text_importer.py298 # Check if we should try UTF-8 first.COMMENT
LOWapps/rss_feeds/page_importer.py130 # Check if the HTML declares UTF-8 charset and use that instead.COMMENT
LOWapps/rss_feeds/page_importer.py288 # Check if the HTML declares UTF-8 charset and use that instead.COMMENT
LOWapps/rss_feeds/test_rss_feeds.py383 # Check if we're getting the right formatCOMMENT
LOWapps/discover/views.py1501 # Check if a Feed with this address already existsCOMMENT
LOW⚡…/management/commands/index_popular_feeds_for_search.py114 # Check if already indexed (unless reindexing)COMMENT
LOWapps/oauth/views.py939 # Check if this is a browser extension redirectCOMMENT
LOWapps/newsletters/views.py149 # Check if it looks like ImprovMX formatCOMMENT
LOWapps/ask_ai/views.py181 # Read the file content from Django's InMemoryUploadedFileCOMMENT
LOWapps/webfeed/views.py148 # Check if feed already existsCOMMENT
LOWapps/clustering/models.py791 # Check if any member already belongs to an existing clusterCOMMENT
LOWapps/search/models.py814 # Check if index existsCOMMENT
LOWapps/search/models.py940 # Check if already indexed to avoid expensive vector generationCOMMENT
LOWapps/search/models.py1158 # Check if index existsCOMMENT
LOWapps/search/models.py1699 # Check if index existsCOMMENT
LOWapps/profile/models.py2586 # Check if there's already an active subscription. The AI classifier usage billing subCOMMENT
LOWapps/profile/middleware.py892 # Check if rate limit would be exceededCOMMENT
LOW…ps/profile/management/commands/generate_dev_session.py28 # Check if we're in developmentCOMMENT
LOW…ps/profile/management/commands/generate_dev_session.py35 # Check if session file exists and is not being forced to regenerateCOMMENT
7 more matches not shown…
Structural Annotation Overuse57 hits · 98 pts
SeverityFileLineSnippetContext
LOWclients/ios/CLAUDE.md174# Step 1: Find available simulators and their UDIDsCOMMENT
LOWclients/ios/CLAUDE.md177# Step 2: Use --udid with any actionCOMMENT
LOWclients/ios/Classes/NewsBlurAppDelegate.m6047 // Step 1: Remove classifier at old scopeCOMMENT
LOWclients/ios/Classes/NewsBlurAppDelegate.m6060 // Step 2: Add classifier at new scope after remove succeedsCOMMENT
LOW…ients/ios/Other Sources/OnePasswordExtension/README.md37### Step 1: Download the Source Code and Sample AppsCOMMENT
LOW…ients/ios/Other Sources/OnePasswordExtension/README.md47### Step 2: Install the Latest versions of 1Password & XcodeCOMMENT
LOW…ients/ios/Other Sources/OnePasswordExtension/README.md60### Step 3: Run the AppsCOMMENT
LOW.agents/skills/investigate-forum/SKILL.md52## Step 0: PreflightCOMMENT
LOW.agents/skills/investigate-forum/SKILL.md65## Step 1: Fetch the queueCOMMENT
LOW.agents/skills/investigate-forum/SKILL.md79## Step 2: Investigate one topicCOMMENT
LOW.agents/skills/investigate-forum/SKILL.md143## Step 3: Fix PR flow (tier 1, or tier 2 after Sam approves the fix)COMMENT
LOW.agents/skills/investigate-forum/SKILL.md217## Step 4: Reply-only flowCOMMENT
LOW.agents/skills/investigate-forum/SKILL.md221## Step 5: Tier 2 flowCOMMENT
LOW.agents/skills/investigate-forum/SKILL.md236## Step 6: Draft the forum replyCOMMENT
LOW.agents/skills/investigate-forum/SKILL.md261## Step 7: Record stateCOMMENT
LOW.agents/skills/investigate-forum/SKILL.md299## Step 8: ReportCOMMENT
LOW.claude/commands/commit-all.md19### Step 1: Analyze and group changesCOMMENT
LOW.claude/commands/commit-all.md30### Step 2: Commit each groupCOMMENT
LOW.claude/commands/commit-all.md42### Step 3: ConfirmCOMMENT
LOW⚡.claude/commands/commit.md19### Step 1: Determine which files to stageCOMMENT
LOW⚡.claude/commands/commit.md29### Step 2: Stage the relevant filesCOMMENT
LOW⚡.claude/commands/commit.md35### Step 3: Verify staged changesCOMMENT
LOW⚡.claude/commands/commit.md39### Step 4: CommitCOMMENT
LOW.claude/commands/commit.md57### Step 5: ConfirmCOMMENT
LOW⚡.claude/commands/commit-push.md10### Step 1: CommitCOMMENT
LOW⚡.claude/commands/commit-push.md14### Step 2: PushCOMMENT
LOW⚡.claude/commands/commit-push.md24### Step 3: ConfirmCOMMENT
LOW.claude/commands/feature.md23### Step 1: Find the matching blog postCOMMENT
LOW⚡.claude/commands/feature.md34### Step 2: Study existing feature styleCOMMENT
LOW⚡.claude/commands/feature.md43### Step 3: Write 4-5 feature optionsCOMMENT
LOW⚡.claude/commands/feature.md52### Step 4: Ask the user to choose a featureCOMMENT
LOW⚡.claude/commands/feature.md56### Step 5: Post to productionCOMMENT
LOW.claude/commands/feature.md75### Step 6: Confirm featureCOMMENT
LOW.claude/commands/feature.md79### Step 7: Write tweet setsCOMMENT
LOW⚡.claude/skills/find-skills/SKILL.md36### Step 1: Understand What They NeedCOMMENT
LOW⚡.claude/skills/find-skills/SKILL.md44### Step 2: Check the Leaderboard FirstCOMMENT
LOW⚡.claude/skills/find-skills/SKILL.md52### Step 3: Search for SkillsCOMMENT
LOW.claude/skills/find-skills/SKILL.md66### Step 4: Verify Quality Before RecommendingCOMMENT
LOW.claude/skills/find-skills/SKILL.md74### Step 5: Present Options to the UserCOMMENT
LOW.claude/skills/find-skills/SKILL.md96### Step 6: Offer to InstallCOMMENT
LOW⚡utils/feed_fetcher.py152 # Step 1: HTML Unescaping - convert HTML entities to their literal charactersCOMMENT
LOW⚡utils/feed_fetcher.py156 # Step 2: Encoding ReinterpretationCOMMENT
LOW⚡apps/rss_feeds/models.py4844 # Step 1: Fetch the Google News article page to get signature and timestamp.COMMENT
LOW⚡apps/rss_feeds/models.py4866 # Step 2: Call batchexecute API to decode the URLCOMMENT
LOW…s/discover/management/commands/discover_newsletters.py1361 # Step 1: Always fetch sitemap to get publication slugs (fast, idempotent)COMMENT
LOW…s/discover/management/commands/discover_newsletters.py1395 # Step 2: Fetch each publication page for metadataCOMMENT
LOW…r/management/commands/backfill_underpopulated_feeds.py149 # Step 1: Load fixture and identify gapsCOMMENT
LOW…r/management/commands/backfill_underpopulated_feeds.py206 # Step 3: Categorize discovered feeds with ClaudeCOMMENT
LOW…r/management/commands/backfill_underpopulated_feeds.py217 # Step 4: Merge into fixtureCOMMENT
LOW⚡apps/webfeed/tasks.py567 # Step 4: Variants already carry preview stories and are ranked best-first.COMMENT
LOWapps/webfeed/tasks.py420 # Step 1: Fetch page HTMLCOMMENT
LOWapps/webfeed/tasks.py446 # Step 2: Call the configured LLM for XPath analysis. The model is non-deterministicCOMMENT
LOWapps/webfeed/tasks.py513 # Step 3: First analysis pass, plus a single retry when nothing matched.COMMENT
LOW⚡apps/profile/models.py1850 # Step 1: Get the order to retrieve purchaseTokenCOMMENT
LOW⚡apps/profile/models.py1869 # Step 2: Store GooglePlayIds for RTDN mappingCOMMENT
LOW⚡apps/profile/models.py1897 # Step 4: Determine renewals from latestOrderIdCOMMENT
LOWapps/profile/models.py1882 # Step 3: Get full subscription state via purchaseTokenCOMMENT
Cross-Language Confusion16 hits · 88 pts
SeverityFileLineSnippetContext
HIGH⚡archive/fabfile.py1950 run("mkdir -p ~%s/.ssh && chmod 700 ~%s/.ssh" % (repo_user, repo_user))CODE
HIGHarchive/fabfile.py498 run("mkdir -p ~/.ssh && chmod 700 ~/.ssh")CODE
HIGHarchive/fabfile.py567 run("./configure && make && sudo make install")CODE
HIGHarchive/fabfile.py570 run("./configure && make && sudo make install")CODE
HIGH.agents/skills/investigate-forum/screenshot.py163 page.wait_for_function("window.NEWSBLUR && window.NEWSBLUR.reader", timeout=30000)CODE
HIGHutils/management_functions.py26 os.dup2(null, i)CODE
HIGHutils/management_functions.py30 os.close(null)CODE
HIGH⚡apps/rss_feeds/models.py4869 '["garturlreq",[["X","X",["X","X"],null,null,1,1,"US:en"'CODE
HIGH⚡apps/rss_feeds/models.py4870 ',null,1,null,null,null,null,null,0,1],"X","X",1,[1,1,1]'CODE
HIGH⚡apps/rss_feeds/models.py4871 f',1,1,null,0,0,null,0],"{base64_str}",{timestamp}'CODE
HIGHapps/rss_feeds/management/commands/calculate_scores.py79 os.dup2(null, i)CODE
HIGHapps/rss_feeds/management/commands/calculate_scores.py83 os.close(null)CODE
HIGHapps/oauth/views.py1175 body: formData.toString()CODE
HIGHapps/notifications/models.py485 apns.push(notification=notification, device_token=token)CODE
HIGHapps/archive_extension/views.py96 matched_story_hash: str or null,STRING
HIGHlocalization/manage.py357 "nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : "CODE
Cross-File Repetition14 hits · 70 pts
SeverityFileLineSnippetContext
HIGHapps/discover/management/commands/discover_podcasts.py0use claude to categorize feeds that don't have categories.STRING
HIGH…s/discover/management/commands/discover_newsletters.py0use claude to categorize feeds that don't have categories.STRING
HIGH…ps/discover/management/commands/discover_subreddits.py0use claude to categorize feeds that don't have categories.STRING
HIGH…ps/discover/management/commands/discover_real_feeds.py0make a get request to feedly, optionally through scrapingbee proxy.STRING
HIGH…s/discover/management/commands/discover_newsletters.py0make a get request to feedly, optionally through scrapingbee proxy.STRING
HIGH…r/management/commands/backfill_underpopulated_feeds.py0make a get request to feedly, optionally through scrapingbee proxy.STRING
HIGHapps/recommendations/tests.py0this file demonstrates two different styles of tests (one doctest and one unittest). these will both pass when you run "STRING
HIGHapps/mobile/tests.py0this file demonstrates two different styles of tests (one doctest and one unittest). these will both pass when you run "STRING
HIGHapps/static/tests.py0this file demonstrates two different styles of tests (one doctest and one unittest). these will both pass when you run "STRING
HIGHapps/api/tests.py0this file demonstrates two different styles of tests (one doctest and one unittest). these will both pass when you run "STRING
HIGHapps/recommendations/tests.py0another way to test that 1 + 1 is equal to 2. >>> 1 + 1 == 2 trueSTRING
HIGHapps/mobile/tests.py0another way to test that 1 + 1 is equal to 2. >>> 1 + 1 == 2 trueSTRING
HIGHapps/static/tests.py0another way to test that 1 + 1 is equal to 2. >>> 1 + 1 == 2 trueSTRING
HIGHapps/api/tests.py0another way to test that 1 + 1 is equal to 2. >>> 1 + 1 == 2 trueSTRING
Fake / Example Data52 hits · 65 pts
SeverityFileLineSnippetContext
LOWclients/ios/Widget Extension/WidgetStory.swift85 content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec ornare dolor. Vivamus porta miCODE
LOWclients/ios/Widget Extension/WidgetStory.swift85 content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec ornare dolor. Vivamus porta miCODE
LOW…er Sources/OnePasswordExtension/OnePasswordExtension.m596'label-tag',m(a));e(c,'label-data',g(a,'data-label'));e(c,'label-aria',g(a,'aria-label'));e(c,'label-top',n(a));b=[];forCODE
LOW…roid/NewsBlur/app/src/test/resources/shortContent.json242 "about": "Minim tempor commodo tempor enim duis voluptate pariatur consequat sit. Eiusmod eiusmod reprehenderit ipsuCODE
LOWnode/tests/classifier_add_utils.test.js61 value: 'Jane Doe',CODE
LOWnode/tests/classifier_add_utils.test.js71 like_author: 'Jane Doe'CODE
LOWnode/tests/classifier_add_utils.test.js150 const from_model = { feed_id: 42, type: 'author', value: 'Jane Doe', scope: 'feed', folder_name: '' };CODE
LOWnode/tests/classifier_add_utils.test.js151 const from_dom = { feed_id: '42', type: 'author', value: 'Jane Doe', scope: undefined, folder_name: undefined };CODE
LOWapps/reader/forms.py26 attrs={"tabindex": 1, "class": "NB-input", "placeholder": _("Username or email")}CODE
LOWapps/reader/forms.py32 widget=forms.PasswordInput(attrs={"tabindex": 2, "class": "NB-input", "placeholder": _("Password")}),CODE
LOW⚡apps/reader/forms.py100 widget=forms.TextInput(attrs={"class": "NB-input", "placeholder": _("Username")}),CODE
LOW⚡apps/reader/forms.py109 attrs={"maxlength": 75, "class": "NB-input", "placeholder": _("Email address")}CODE
LOW⚡apps/reader/forms.py117 attrs={"class": "NB-input", "placeholder": _("Password (optional)")},CODE
LOWapps/reader/tests.py62 self.user = User.objects.create_user(username="testuser", password="testpass", email="test@test.com")CODE
LOW⚡apps/analyzer/tests.py91 author="John Doe",CODE
LOW⚡apps/analyzer/tests.py95 self.assertEqual(classifier.author, "John Doe")CODE
LOW⚡apps/analyzer/tests.py372 author="John Doe",CODE
LOW⚡apps/analyzer/tests.py377 story = {"story_feed_id": self.feed.pk, "story_authors": "John Doe"}CODE
LOW⚡apps/analyzer/tests.py1733 author="John Doe",CODE
LOWapps/analyzer/tests.py44 self.user = User.objects.create_user(username="testuser", password="testpass", email="test@test.com")CODE
LOWapps/analyzer/tests.py1702 "story_authors": "John Doe",CODE
LOWapps/analyzer/tests.py1768 author="John Doe",CODE
LOWapps/archive_extension/tests.py61 email="test@test.com",CODE
LOWmedia/js/mobile/jquery.mobile-1.0b1.js4090 if( !this.getAttribute('value') || text.length == 0 || $this.jqmData('placeholder') ){CODE
LOWmedia/js/newsblur/reader/reader_add_feed.js507 this.$('.NB-add-folder-input').attr('placeholder', interpolate(gettext("New folder under %(folder)s..."), {foldeCODE
LOW⚡media/js/newsblur/reader/reader_classifier.js3508 $input.attr('placeholder', interpolate(gettext('e.g., %(first)s or %(second)s'), {first: '\\bcat\\b'CODE
LOW⚡media/js/newsblur/reader/reader_classifier.js3510 $input.attr('placeholder', interpolate(gettext('e.g., %(first)s or %(second)s'), {first: '\\bbreakinCODE
LOW⚡media/js/newsblur/reader/reader_classifier.js3512 $input.attr('placeholder', interpolate(gettext('e.g., %(first)s or %(second)s'), {first: '/news/\\d+CODE
LOW⚡media/js/newsblur/reader/reader_classifier.js3514 $input.attr('placeholder', interpolate(gettext('e.g., %(first)s or %(second)s'), {first: '^Sam', secCODE
LOW⚡media/js/newsblur/reader/reader_classifier.js3537 $input.attr('placeholder', gettext('Enter text to match...'));CODE
LOW⚡media/js/newsblur/reader/reader_classifier.js3539 $input.attr('placeholder', gettext('Enter URL pattern to match...'));CODE
LOW⚡media/js/newsblur/reader/reader_classifier.js3541 $input.attr('placeholder', gettext('Enter author pattern...'));CODE
LOW⚡media/js/newsblur/reader/reader_classifier.js3543 $input.attr('placeholder', '');CODE
LOW⚡media/js/newsblur/views/story_ask_ai_view.js691 $input.attr('placeholder', gettext('Recording...'));CODE
LOW⚡media/js/newsblur/views/story_ask_ai_view.js701 $input.attr('placeholder', gettext('Transcribing...'));CODE
LOW⚡media/js/newsblur/views/story_ask_ai_view.js709 $input.attr('placeholder', gettext('Follow up...'));CODE
LOWmedia/js/newsblur/views/story_ask_ai_view.js726 $input.attr('placeholder', gettext('Follow up...'));CODE
LOWmedia/js/newsblur/views/story_ask_ai_view.js747 $input.attr('placeholder', gettext('Quota exceeded'));CODE
LOWmedia/js/newsblur/views/story_ask_ai_view.js750 $input.attr('placeholder', gettext('Follow up...'));CODE
LOW⚡media/js/newsblur/views/story_detail_view.js2593 $input.attr('placeholder', gettext('Recording...'));CODE
LOW⚡media/js/newsblur/views/story_detail_view.js2599 $input.attr('placeholder', gettext('Transcribing...'));CODE
LOW⚡media/js/newsblur/views/story_detail_view.js2608 $input.attr('placeholder', gettext('Ask a question...'));CODE
LOWmedia/js/newsblur/views/story_detail_view.js2629 $input.attr('placeholder', gettext('Quota exceeded'));CODE
LOWmedia/js/newsblur/views/story_detail_view.js2636 $input.attr('placeholder', error || gettext('Error - please try again'));CODE
LOW⚡media/js/newsblur/views/archive_view.js1750 $input.attr('placeholder', gettext('Recording...'));CODE
LOW⚡media/js/newsblur/views/archive_view.js1757 $input.attr('placeholder', gettext('Transcribing...'));CODE
LOW⚡media/js/newsblur/views/archive_view.js1764 $input.attr('placeholder', gettext('Ask about your browsing history...'));CODE
LOW⚡media/js/newsblur/views/archive_view.js1773 $input.attr('placeholder', gettext('Ask about your browsing history...'));CODE
LOW⚡media/js/newsblur/views/archive_view.js1794 $input.attr('placeholder', gettext('Ask about your browsing history...'));CODE
LOW⚡media/js/newsblur/views/archive_view.js1799 $input.attr('placeholder', gettext('Enable microphone in browser settings to use voice input'));CODE
LOW⚡media/js/newsblur/views/archive_view.js1803 $input.attr('placeholder', error || gettext('Voice recording failed. Please try again.'));CODE
LOW⚡media/js/newsblur/views/archive_view.js1806 $input.attr('placeholder', gettext('Ask about your browsing history...'));CODE
Self-Referential Comments17 hits · 48 pts
SeverityFileLineSnippetContext
MEDIUMdocker/postgres/entrypoint.sh4# Create a user with the specified UID/GIDCOMMENT
MEDIUMutils/ai_functions.py87 # Define the tool for classificationCOMMENT
MEDIUMutils/ratelimit.py18 # This class is designed to be sub-classedCOMMENT
MEDIUMblog/_plugins/paginated_feed.rb28 # Create the feed pageCOMMENT
MEDIUMapps/reader/test_reader.py456 # Create a folder-scoped classifier for "YouTube (no shorts)" (top-level path)COMMENT
MEDIUMapps/reader/test_reader.py543 # Create a folder-scoped classifier with the full nested pathCOMMENT
MEDIUMapps/reader/tests.py149 # Create a story with the new tag alreadyCOMMENT
MEDIUMapps/monitor/views/newsblur_llm_costs.py35 # Define the dimensions we track (use centralized lists from RLLMCosts)COMMENT
MEDIUMapps/discover/views.py1511 # Create a bare Feed record directly — no feed discovery, no HTTP requestsCOMMENT
MEDIUMapps/newsletters/models.py104 # Create a new feed if it doesn't exist by stable newsletter identity.COMMENT
MEDIUMapps/search/models.py206 # Create the finish callbacksCOMMENT
MEDIUMapps/push/test_push.py3# This file is part of djpubsubhubbub.COMMENT
MEDIUMapps/push/test_push.py372 # Create a feed first since PushSubscription requires itSTRING
MEDIUMapps/profile/models.py498 # Create the archived recordCOMMENT
MEDIUMapps/profile/views.py756 # Create the instance.COMMENT
MEDIUM…ps/profile/management/commands/generate_dev_session.py56 # Create a new sessionCOMMENT
MEDIUMapps/analyzer/tests.py1526 # Create a UserSubscriptionFolders entry so the endpoint can organize by folderCOMMENT
Synthetic Comment Markers6 hits · 42 pts
SeverityFileLineSnippetContext
HIGHclients/ios/MarketingCooking/README.md5The five food photographs are real photography, downloaded from the source images and visually inspected. `photo-sourcesCODE
HIGHnode/ask_ai.js1// Ask AI streaming handler -- relays AI-generated story summaries and Q&ACOMMENT
HIGHnode/briefing.js1// Briefing streaming handler -- relays AI-generated news briefing progressCOMMENT
HIGHapps/briefing/views.py232 # views.py: Add display names for AI-generated sections not in BRIEFING_SECTION_DEFINITIONS.COMMENT
HIGHapps/archive_extension/models.py49 # AI-generated categorizationCOMMENT
HIGHmedia/js/newsblur/models/briefing_sections.js26 // the section order from the AI-generated summary HTML.COMMENT
AI Slop Vocabulary14 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUMclients/ios/Classes/StoryPagesObjCViewController.m1381 // Update content inset on all pages' web views so swiping between them is seamlessCOMMENT
MEDIUMclients/store/artwork/android/16.0/capture-tablet.rb2# capture-tablet.rb composes only real native panes, after the isolated harness has seeded its account.COMMENT
MEDIUMutils/feedfinder_pilgrim.py404##### test harness ######COMMENT
MEDIUMutils/scrubber/__init__.py281 # TODO: This probably needs to be more robustCOMMENT
MEDIUMansible/roles/consul/files/consul.hcl47# This cannot be used in conjunction with the legacy -bootstrap flag. This flag requiresCOMMENT
LOWapps/rss_feeds/models.py2165 # Don't mangle stories with code, just use newCOMMENT
MEDIUMapps/ask_ai/prompts.py48 full_prompt="""Please provide a comprehensive paragraph summary of the following article.CODE
MEDIUMapps/webfeed/prompts.py78 # On retry, the first pass matched nothing; nudge hard toward robust selectors.COMMENT
LOWapps/clustering/models.py801 # existing zCL: — just add new members and update sCL: pointers.COMMENT
MEDIUMapps/profile/views.py411 # Log comprehensive debugging info to diagnose the encoding issueCOMMENT
LOWapps/notifications/models.py430 # - export "Apple Push Service: com.newsblur.NewsBlur" as aps.p12 (or just use aps.cer in #5)COMMENT
MEDIUMmedia/js/mobile/jquery.mobile-1.0b1.js1283// robust, there are a few unfortunate browser bugs surrounding expectedCOMMENT
MEDIUMmedia/js/newsblur/welcome/welcome.js33 // Clone all cards and append them for seamless infinite loop.COMMENT
MEDIUMmedia/js/newsblur/welcome/welcome.js89 // Never wrap — use the duplicate content for seamless transitions.COMMENT
Verbosity Indicators19 hits · 30 pts
SeverityFileLineSnippetContext
LOWclients/ios/Classes/NewsBlurAppDelegate.m6047 // Step 1: Remove classifier at old scopeCOMMENT
LOWclients/ios/Classes/NewsBlurAppDelegate.m6060 // Step 2: Add classifier at new scope after remove succeedsCOMMENT
LOW⚡utils/feed_fetcher.py152 # Step 1: HTML Unescaping - convert HTML entities to their literal charactersCOMMENT
LOW⚡utils/feed_fetcher.py156 # Step 2: Encoding ReinterpretationCOMMENT
LOW⚡apps/rss_feeds/models.py4844 # Step 1: Fetch the Google News article page to get signature and timestamp.COMMENT
LOW⚡apps/rss_feeds/models.py4866 # Step 2: Call batchexecute API to decode the URLCOMMENT
LOW…s/discover/management/commands/discover_newsletters.py1361 # Step 1: Always fetch sitemap to get publication slugs (fast, idempotent)COMMENT
LOW…s/discover/management/commands/discover_newsletters.py1395 # Step 2: Fetch each publication page for metadataCOMMENT
LOW…r/management/commands/backfill_underpopulated_feeds.py149 # Step 1: Load fixture and identify gapsCOMMENT
LOW…r/management/commands/backfill_underpopulated_feeds.py206 # Step 3: Categorize discovered feeds with ClaudeCOMMENT
LOW…r/management/commands/backfill_underpopulated_feeds.py217 # Step 4: Merge into fixtureCOMMENT
LOW⚡apps/webfeed/tasks.py567 # Step 4: Variants already carry preview stories and are ranked best-first.COMMENT
LOWapps/webfeed/tasks.py420 # Step 1: Fetch page HTMLCOMMENT
LOWapps/webfeed/tasks.py446 # Step 2: Call the configured LLM for XPath analysis. The model is non-deterministicCOMMENT
LOWapps/webfeed/tasks.py513 # Step 3: First analysis pass, plus a single retry when nothing matched.COMMENT
LOW⚡apps/profile/models.py1850 # Step 1: Get the order to retrieve purchaseTokenCOMMENT
LOW⚡apps/profile/models.py1869 # Step 2: Store GooglePlayIds for RTDN mappingCOMMENT
LOW⚡apps/profile/models.py1897 # Step 4: Determine renewals from latestOrderIdCOMMENT
LOWapps/profile/models.py1882 # Step 3: Get full subscription state via purchaseTokenCOMMENT
AI Structural Patterns40 hits · 30 pts
SeverityFileLineSnippetContext
LOWarchive/munin/munin/cassandra.py24CODE
LOWutils/mongo_raw_log_middleware.py93CODE
LOWutils/PyRSS2Gen.py314CODE
LOWutils/PyRSS2Gen.py433CODE
LOWutils/exception_middleware.py31CODE
LOWnewsblur_mcp/newsblur_mcp/tools/stories.py9CODE
LOWnewsblur_mcp/newsblur_mcp/tools/stories.py57CODE
LOWnewsblur_mcp/newsblur_mcp/tools/stories.py154CODE
LOWnewsblur_mcp/newsblur_mcp/tools/stories.py193CODE
LOWnewsblur_mcp/newsblur_mcp/tools/classifiers.py7CODE
LOWnewsblur_mcp/newsblur_mcp/tools/classifiers.py64CODE
LOWapps/reader/models.py189CODE
LOWapps/reader/models.py486CODE
LOWapps/reader/models.py752CODE
LOWapps/reader/models.py1798CODE
LOWapps/reader/models.py1914CODE
LOWapps/reader/views.py736CODE
LOWapps/reader/views.py912CODE
LOWapps/listen/voices.py219CODE
LOWapps/social/models.py1105CODE
LOWapps/social/models.py1210CODE
LOWapps/social/models.py1313CODE
LOWapps/social/models.py1425CODE
LOWapps/briefing/scoring.py36CODE
LOWapps/profile/models.py5592CODE
LOWapps/profile/views.py144CODE
LOWapps/profile/views.py166CODE
LOWapps/profile/views.py345CODE
LOWapps/profile/views.py377CODE
LOWapps/profile/views.py388CODE
LOWapps/profile/views.py403CODE
LOWapps/analyzer/models.py1245CODE
LOWapps/analyzer/models.py1435CODE
LOWapps/analyzer/views.py347CODE
LOWapps/analyzer/views.py574CODE
LOWapps/analyzer/views.py858CODE
LOWapps/archive_extension/models.py171CODE
LOWapps/archive_extension/search.py230CODE
LOWapps/archive_extension/search.py320CODE
LOWlocalization/manage.py118CODE
Slop Phrases5 hits · 13 pts
SeverityFileLineSnippetContext
MEDIUMclients/ios/Other Sources/fmdb/fmdb.m875 // just mix things up a bit for demonstration purposes.COMMENT
MEDIUMclients/ios/Other Sources/fmdb/fmdb.m1262 // just mix things up a bit for demonstration purposes.COMMENT
MEDIUMclients/ios/Other Sources/fmdb/fmdb.m1297 // just mix things up a bit for demonstration purposes.COMMENT
LOWarchive/fabfile.py1420 # Don't forget to add 'setup_postgres_backups' to newCOMMENT
MEDIUMconfig/pystartup.py3# bound to the Esc key by default (you can change it - see readline docs).COMMENT
Modern AI Meta-Vocabulary4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMutils/feed_fetcher.py2009 # If fetching archive pages, come back once the archive scaffolding is builtCOMMENT
MEDIUMapps/webfeed/prompts.py70 # Truncate HTML to ~100KB for LLM context windowCOMMENT
MEDIUMapps/clustering/models.py561 # Two guardrails must pass:COMMENT
MEDIUMapps/clustering/models.py679 # guardrails from find_semantic_clusters apply here for any remainingCOMMENT
Modern Structural Boilerplate10 hits · 10 pts
SeverityFileLineSnippetContext
LOWutils/prometheus_worker_slots.py34logger = logging.getLogger(__name__)CODE
LOW⚡utils/prometheus_middleware.py11logger = logging.getLogger(__name__)CODE
LOWutils/pipeline_utils.py22logger = logging.getLogger(__name__)CODE
LOWutils/scrubber/__init__.py12__all__ = ["Scrubber", "SelectiveScriptScrubber", "ScrubberWarning", "UnapprovedJavascript", "urlize"]CODE
LOWnewsblur_web/__init__.py7__all__ = ["celery_app"]CODE
LOWnewsblur_mcp/newsblur_mcp/auth.py22logger = logging.getLogger(__name__)CODE
LOWnewsblur_mcp/newsblur_mcp/server.py24logger = logging.getLogger(__name__)CODE
LOWnewsblur_mcp/newsblur_mcp/cli/auth.py73def set_server_url(server: str) -> None:CODE
LOWnewsblur_mcp/newsblur_mcp/cli/auth.py280def set_readonly(enabled: bool) -> None:CODE
LOWapps/api/social_auth.py29logger = logging.getLogger(__name__)CODE
Example Usage Blocks4 hits · 6 pts
SeverityFileLineSnippetContext
LOWutils/retry_unlinked_loop.sh8# Usage:COMMENT
LOWutils/consul_ui.sh11# Usage:COMMENT
LOWutils/bootstrap_loop.sh8# Usage:COMMENT
LOWutils/check_health.sh5# Usage:COMMENT
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMapps/ask_ai/test_tasks.py21CODE