AI Slop Code Risk Monitor

discourse/discourse

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

A platform for community discussion. Free, open, simple.

1.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for discourse/discourse, a Ruby project with 48,041 GitHub stars. SynthScan examined 2,985,312 lines of code across 21547 source files, recording 4565 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 1.8 (Low pattern signal); it is not an authorship estimate.

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

1.8
Adjusted Signal
1.8
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
48.0K
Stars
Ruby
Language
3.0M
Lines of Code
21.5K
Files
4.6K
Pattern Hits
2026-10-31
Scan Date
0.00
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 7.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.3/100 · LOW

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

Agent Over-Engineering Ratio 3.4/100 · LOW

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

PR Review Velocity Impact 8.1/100 · LOW

Which changes need focused human review? 4565 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 21HIGH 4MEDIUM 145LOW 4395

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 4565 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers1887 hits · 1955 pts
SeverityFileLineSnippetContext
LOWapp/mailers/invite_mailer.rb71 def send_password_instructions(user)CODE
LOWapp/mailers/user_notifications.rb293 def account_second_factor_disabled(user, opts = {})CODE
LOWapp/mailers/user_notifications.rb534 def user_invited_to_private_message(user, opts)CODE
LOWapp/mailers/user_notifications.rb587 def prepare_digest_localizations(user, topics)CODE
LOWapp/mailers/user_notifications.rb1022 def build_user_email_token_by_template(template, user, email_token)CODE
LOWapp/models/topic_posters_summary.rb79 def shuffle_last_poster_to_back_in(summary)CODE
LOWapp/models/user_profile.rb77 def upload_profile_background(upload)CODE
LOWapp/models/category.rb1472 def check_permissions_compatibility(parent_permissions, child_permissions)CODE
LOW⚡app/models/reviewable_post.rb90 def perform_reject_and_keep_deleted(performed_by, _args)CODE
LOW⚡app/models/reviewable_post.rb94 def perform_approve_and_restore(performed_by, _args)CODE
LOW⚡app/models/reviewable_post.rb100 def perform_approve_and_unhide(performed_by, _args)CODE
LOW⚡app/models/reviewable_post.rb107 def perform_reject_and_delete(performed_by, _args)CODE
LOW⚡app/models/reviewable_post.rb113 def perform_reject_and_suspend(performed_by, args)CODE
LOW⚡app/models/reviewable_post.rb120 def perform_reject_and_silence(performed_by, args)CODE
LOWapp/models/reviewable_user.rb200 def perform_delete_user_block(performed_by, args)CODE
LOWapp/models/reviewable_flagged_post.rb186 def perform_unsilence_user_and_ignore(performed_by, args)CODE
LOWapp/models/reviewable_flagged_post.rb234 def perform_ignore_and_do_nothing(performed_by, args)CODE
LOWapp/models/reviewable_flagged_post.rb259 def perform_agree_and_suspend(performed_by, args)CODE
LOWapp/models/reviewable_flagged_post.rb266 def perform_agree_and_silence(performed_by, args)CODE
LOWapp/models/reviewable_flagged_post.rb297 def perform_delete_and_block_user(performed_by, args)CODE
LOWapp/models/reviewable_flagged_post.rb306 def perform_agree_and_restore(performed_by, args)CODE
LOWapp/models/reviewable_flagged_post.rb357 def perform_delete_and_ignore(performed_by, args)CODE
LOWapp/models/reviewable_flagged_post.rb363 def perform_delete_and_ignore_replies(performed_by, args)CODE
LOWapp/models/reviewable_flagged_post.rb376 def perform_delete_and_agree_replies(performed_by, args)CODE
LOWapp/models/topic_user.rb73 def auto_notification_for_staging(CODE
LOWapp/models/topic_user.rb152 def notification_level_change(user_id, topic_id, notification_level, reason_id)CODE
LOWapp/models/discourse_connect.rb120 def lookup_or_create_user_unsafe(ip_address)CODE
LOWapp/models/discourse_connect.rb245 def match_email_or_create_user(ip_address)CODE
LOWapp/models/discourse_connect.rb343 def change_external_attributes_and_override(sso_record, user)CODE
LOWapp/models/topic.rb63 def filtered_topic_thumbnails(extra_sizes: [])CODE
LOWapp/models/topic.rb540 def enqueue_og_image_regeneration_after_counter_change(previous_count:, current_count:)CODE
LOWapp/models/topic.rb1508 def participant_groups_summary(options = {})CODE
LOWapp/models/topic.rb1699 def inherit_auto_close_from_category(timer_type: :close)CODE
LOWapp/models/topic.rb2059 def convert_to_private_message(user)CODE
LOWapp/models/topic.rb2159 def update_category_topic_count_by(num)CODE
LOWapp/models/topic.rb2235 def rate_limit_topic_invitation(invited_by)CODE
LOWapp/models/topic.rb2255 def cannot_permanently_delete_reason(user)CODE
LOWapp/models/topic.rb2337 def invite_to_private_message(invited_by, target_user, guardian)CODE
LOWapp/models/topic.rb2395 def apply_per_day_rate_limit_for(key, method_name)CODE
LOWapp/models/group.rb480 def filter_posts_for_guardian(result, guardian, opts = nil)CODE
LOWapp/models/group.rb940 def trigger_user_removed_event(user)CODE
LOWapp/models/group.rb1282 def send_membership_notification(user)CODE
LOWapp/models/category_list.rb282 def categories_with_descendants(categories = @categories)CODE
LOWapp/models/user_notification_schedule.rb20 def create_do_not_disturb_timings(delete_existing: false)CODE
LOWapp/models/theme_modifier_set.rb81 def add_theme_setting_modifier(modifier_name, setting_name)CODE
LOWapp/models/theme_modifier_set.rb86 def refresh_theme_setting_modifiers(target_setting_name: nil, target_setting_value: nil)CODE
LOWapp/models/remote_theme.rb444 def update_theme_color_schemes(theme, schemes)CODE
LOWapp/models/remote_theme.rb518 def create_theme_site_settings(theme, theme_site_settings)CODE
LOW⚡app/models/reviewable_queued_post.rb153 def perform_approve_post_closed(performed_by, args)CODE
LOW⚡app/models/reviewable_queued_post.rb157 def perform_reject_and_suspend(performed_by, args)CODE
LOW⚡app/models/reviewable_queued_post.rb164 def perform_reject_and_silence(performed_by, args)CODE
LOWapp/models/reviewable_queued_post.rb180 def perform_revise_and_reject_post(performed_by, args)CODE
LOWapp/models/reviewable_queued_post.rb239 def perform_delete_and_block_user(performed_by, args)CODE
LOWapp/models/post_action.rb114 def add_moderator_post_if_needed(moderator, disposition, delete_post = false)CODE
LOWapp/models/theme.rb866 def resolve_group_settings_for_user(settings_hash, guardian)CODE
LOWapp/models/theme.rb1074 def convert_list_to_json_schema(setting_row, setting)CODE
LOWapp/models/unsubscribe_key.rb31 def get_unsubscribe_strategy_for(key)CODE
LOWapp/models/upload.rb447 def target_jpeg_image_quality(local_path, test_quality)CODE
LOWapp/models/upload.rb520 def sync_optimized_videos_secure_status(mark_secure)CODE
LOWapp/models/post.rb612 def sync_category_description(category = nil)CODE
1827 more matches not shown…
Over-Commented Block1945 hits · 1934 pts
SeverityFileLineSnippetContext
LOWapp/models/user_api_key_client.rb21COMMENT
LOWapp/models/draft.rb341 endCOMMENT
LOWapp/models/draft.rb361#COMMENT
LOWapp/models/tag_group_membership.rb1# frozen_string_literal: trueCOMMENT
LOWapp/models/sidebar_url.rb101COMMENT
LOWapp/models/single_sign_on_record.rb1# frozen_string_literal: trueCOMMENT
LOWapp/models/single_sign_on_record.rb21# created_at :datetime not nullCOMMENT
LOWapp/models/child_theme.rb21COMMENT
LOWapp/models/user_custom_field.rb21# Table name: user_custom_fieldsCOMMENT
LOWapp/models/user_ip_address_history.rb1# frozen_string_literal: trueCOMMENT
LOWapp/models/user_ip_address_history.rb21#COMMENT
LOWapp/models/directory_item.rb241# Table name: directory_itemsCOMMENT
LOWapp/models/directory_item.rb261# index_directory_items_on_likes_given (likes_given)COMMENT
LOWapp/models/topic_group.rb81#COMMENT
LOWapp/models/group_history.rb41 records = records.where("#{filter}_id" => id)COMMENT
LOWapp/models/group_history.rb61# acting_user_id :integer not nullCOMMENT
LOWapp/models/directory_column.rb61#COMMENT
LOWapp/models/onceoff_log.rb1# frozen_string_literal: trueCOMMENT
LOWapp/models/topic_tag.rb41 counters_to_update[:public_topic_count] = -1COMMENT
LOWapp/models/topic_tag.rb61#COMMENT
LOWapp/models/topic_allowed_group.rb1# frozen_string_literal: trueCOMMENT
LOWapp/models/topic_allowed_group.rb21# index_topic_allowed_groups_on_topic_id_and_group_id (topic_id,group_id) UNIQUECOMMENT
LOWapp/models/user_profile.rb221# bio_cooked_version :integerCOMMENT
LOWapp/models/user_profile.rb241#COMMENT
LOWapp/models/topic_view_item.rb61 )COMMENT
LOWapp/models/topic_view_item.rb81# index_topic_views_on_viewed_at_and_topic_id (viewed_at,topic_id)COMMENT
LOWapp/models/user_profile_view.rb61 profile_views.joins("INNER JOIN users ON users.id = user_profile_views.user_id")COMMENT
LOWapp/models/user_profile_view.rb81#COMMENT
LOWapp/models/category.rb861 ids.each { |id| category_groups.build(group_id: id) }COMMENT
LOWapp/models/category.rb1521COMMENT
LOWapp/models/category.rb1541# default_slow_mode_seconds :integerCOMMENT
LOWapp/models/category.rb1561# posts_year :integer default(0)COMMENT
LOWapp/models/category.rb1581# updated_at :datetime not nullCOMMENT
LOWapp/models/tag.rb361COMMENT
LOWapp/models/tag.rb381#COMMENT
LOWapp/models/user_required_fields_version.rb1# frozen_string_literal: trueCOMMENT
LOWapp/models/ignored_user.rb21 SQLCOMMENT
LOWapp/models/backup_draft_post.rb1# frozen_string_literal: trueCOMMENT
LOWapp/models/backup_draft_post.rb21# index_backup_draft_posts_on_post_id (post_id) UNIQUECOMMENT
LOWapp/models/color_scheme_color.rb21# id :integer not null, primary keyCOMMENT
LOWapp/models/user_badge.rb141# badge_id :integer not nullCOMMENT
LOWapp/models/user_action.rb521 )COMMENT
LOWapp/models/user_action.rb541# target_user_id :integerCOMMENT
LOWapp/models/user_avatar.rb361# selected_user_associated_account_id :bigintCOMMENT
LOWapp/models/group_mention.rb1# frozen_string_literal: trueCOMMENT
LOWapp/models/group_mention.rb21# index_group_mentions_on_post_id_and_group_id (post_id,group_id) UNIQUECOMMENT
LOWapp/models/reviewable_score.rb121# id :bigint not null, primary keyCOMMENT
LOWapp/models/reviewable_score.rb141# index_reviewable_scores_on_user_id (user_id)COMMENT
LOWapp/models/reviewable_post.rb181# id :bigint not null, primary keyCOMMENT
LOWapp/models/reviewable_post.rb201# topic_id :integerCOMMENT
LOWapp/models/application_request.rb121endCOMMENT
LOWapp/models/skipped_email_log.rb81# custom_reason :textCOMMENT
LOWapp/models/given_daily_like.rb61# == Schema InformationCOMMENT
LOWapp/models/user_stat.rb361 BadgeGranter.queue_badge_grant(Badge::Trigger::UserChange, user: user)COMMENT
LOWapp/models/user_stat.rb381# likes_received :integer default(0), not nullCOMMENT
LOWapp/models/tag_user.rb241 .joins(:tag)COMMENT
LOWapp/models/tag_user.rb261# IndexesCOMMENT
LOWapp/models/user_warning.rb1# frozen_string_literal: trueCOMMENT
LOWapp/models/user_warning.rb21#COMMENT
LOWapp/models/email_login_code.rb81 # wins the race, so two concurrent redemptions of the same code can't bothCOMMENT
1885 more matches not shown…
Fake / Example Data474 hits · 542 pts
SeverityFileLineSnippetContext
LOWapp/serializers/wizard_field_serializer.rb47 translate("placeholder")CODE
LOWfrontend/discourse-i18n/src/index.js385 // I18n.prepareOptions({name: "John Doe"}, {name: "Mary Doe", role: "user"});COMMENT
LOWfrontend/discourse-i18n/src/index.js386 // #=> {name: "John Doe", role: "user"}COMMENT
LOWfrontend/discourse/app/ui-kit/d-text-field.js48 @computed("placeholder", "placeholderKey")CODE
LOW…ourse/app/static/prosemirror/extensions/placeholder.ts16 key: new PluginKey("placeholder"),CODE
LOW…ourse/app/static/prosemirror/extensions/placeholder.ts27 if (contextChanged?.key === "placeholder") {CODE
LOWfrontend/discourse/app/static/wizard/models/wizard.js192 "placeholder",CODE
LOWfrontend/discourse/type-tests/models/topic-test.ts481topic.generateInviteLink("user@example.com", null, undefined);CODE
LOWfrontend/discourse/tests/unit/models/composer-test.js563 { name: "foo@bar.com", type: "email" },CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js178 <p>Lorem ipsum <span>dolor sit amet, consectetur</span> <strike>elit.</strike></p>CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js178 <p>Lorem ipsum <span>dolor sit amet, consectetur</span> <strike>elit.</strike></p>CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js181 const markdown = `Lorem ipsum dolor sit amet, consectetur ~~elit.~~\n\nUt minim veniam, quis nostrud laboris ut aliqCODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js181 const markdown = `Lorem ipsum dolor sit amet, consectetur ~~elit.~~\n\nUt minim veniam, quis nostrud laboris ut aliqCODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js340 let html = `Lorem ipsum dolor sit amet,CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js340 let html = `Lorem ipsum dolor sit amet,CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js347 let output = `Lorem ipsum dolor sit amet, \n\n\`\`\`\nvar helloWorld = () => {\n alert(' hello \t\t world ');CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js347 let output = `Lorem ipsum dolor sit amet, \n\n\`\`\`\nvar helloWorld = () => {\n alert(' hello \t\t world ');CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js351 html = `Lorem ipsum dolor sit amet, <code>var helloWorld = () => {CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js351 html = `Lorem ipsum dolor sit amet, <code>var helloWorld = () => {CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js356 output = `Lorem ipsum dolor sit amet, \`var helloWorld = () => { alert(' hello world '); return; } helloWorld();\`coCODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js356 output = `Lorem ipsum dolor sit amet, \`var helloWorld = () => { alert(' hello world '); return; } helloWorld();\`coCODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js438 let html = "<blockquote>Lorem ipsum</blockquote>";CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js439 let output = "> Lorem ipsum";CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js443 "<blockquote>Lorem ipsum</blockquote><blockquote><p>dolor sit amet</p></blockquote>";CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js443 "<blockquote>Lorem ipsum</blockquote><blockquote><p>dolor sit amet</p></blockquote>";CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js444 output = "> Lorem ipsum\n\n> dolor sit amet";CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js444 output = "> Lorem ipsum\n\n> dolor sit amet";CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js448 "<blockquote>\nLorem ipsum\n<blockquote><p>dolor <blockquote>sit</blockquote> amet</p></blockquote></blockquote>";CODE
LOW⚡frontend/discourse/tests/unit/lib/to-markdown-test.js449 output = "> Lorem ipsum\n>\n> > dolor\n> >\n> > > sit\n> >\n> > amet";CODE
LOWfrontend/discourse/tests/unit/lib/build-quote-test.js49 buildQuote(post, "lorem ipsum", { full: true }),CODE
LOWfrontend/discourse/tests/unit/lib/build-quote-test.js50 '[quote="eviltrout, post:1, topic:2, full:true"]\nlorem ipsum\n[/quote]\n\n',CODE
LOW…ourse/tests/acceptance/create-account-external-test.js151 setupAuthData({ name: "John Doe", name_from_provider: true });CODE
LOW…nd/discourse/tests/acceptance/composer-actions-test.js692 '[quote="bianca, post:1, topic:130, full:true"]\nLorem ipsum dolor sit amet, consectetur adipiscing elit. MaecenCODE
LOW…nd/discourse/tests/acceptance/composer-actions-test.js692 '[quote="bianca, post:1, topic:130, full:true"]\nLorem ipsum dolor sit amet, consectetur adipiscing elit. MaecenCODE
LOWfrontend/discourse/tests/acceptance/group-index-test.js33 "placeholder",CODE
LOWfrontend/discourse/tests/acceptance/group-index-test.js68 "placeholder",CODE
LOW…ourse/tests/acceptance/invite-show-user-fields-test.js52 await fillIn("#new-account-name", "John Doe");CODE
LOWfrontend/discourse/tests/acceptance/composer-test.js1516 "placeholder",CODE
LOWfrontend/discourse/tests/acceptance/composer-test.js1534 .hasAttribute("placeholder", i18n("modified_value"));CODE
LOW…tend/discourse/tests/acceptance/create-account-test.js126 Session.current().email = "foo@bar.com";CODE
LOW…tend/discourse/tests/acceptance/create-account-test.js130 assert.strictEqual(email, "foo@bar.com");CODE
LOW…e/tests/acceptance/group-manage-email-settings-test.js247 email_username: "test@test.com",CODE
LOW…e/tests/acceptance/group-manage-email-settings-test.js274 .hasValue("test@test.com", "email username is prefilled");CODE
LOW…ntend/discourse/tests/acceptance/invite-accept-test.js138 await fillIn("#new-account-name", "John Doe");CODE
LOW…/javascripts/acceptance/chat-channel-reactions-test.js13 message: "Lorem ipsum!",CODE
LOW…/javascripts/acceptance/chat-channel-reactions-test.js14 cooked: `<p>Lorem ipsum!</p>`,CODE
LOW⚡plugins/chat/spec/models/chat/direct_message_spec.rb84 new_user = Fabricate.build(:user, username: "johndoe", name: "John Doe")CODE
LOW⚡plugins/chat/spec/models/chat/direct_message_spec.rb88 I18n.t("chat.channel.dm_title.single_user", username: "John Doe"),CODE
LOW⚡plugins/chat/spec/models/chat/direct_message_spec.rb93 user2.update!(name: "John Doe")CODE
LOWplugins/chat/spec/models/chat/direct_message_spec.rb108 new_user = Fabricate.build(:user, username: "johndoe", name: "John Doe")CODE
LOW…t/spec/jobs/regular/chat/pull_hotlinked_images_spec.rb42 hand_written = fabricate_chat_message("placeholder")CODE
LOW…cripts/acceptance/create-event-composer-action-test.js61 "placeholder",CODE
LOW…cripts/acceptance/create-event-composer-action-test.js169 document.querySelector("#reply-title").getAttribute("placeholder"),CODE
LOW…-events/spec/system/composer/prosemirror_event_spec.rb51 expect(location_input["placeholder"]).to include("location")CODE
LOW…discourse_workflows/data_table_rows_controller_spec.rb41 fab!(:row) { insert_data_table_row(data_table, "email" => "test@test.com") }CODE
LOW…discourse_workflows/data_table_rows_controller_spec.rb54 expect(json["rows"][0]["email"]).to eq("test@test.com")CODE
LOW…discourse_workflows/data_table_rows_controller_spec.rb75 filters: [{ columnName: "email", condition: "invalid", value: "test@test.com" }],CODE
LOW…course_workflows/data_table_columns_controller_spec.rb38 fab!(:row) { insert_data_table_row(data_table, "email" => "test@test.com") }CODE
LOW…course_workflows/data_table_columns_controller_spec.rb58 "email" => "test@test.com",CODE
LOW…course_workflows/data_table_columns_controller_spec.rb71 fab!(:row) { insert_data_table_row(data_table, "email" => "test@test.com") }CODE
414 more matches not shown…
Self-Referential Comments101 hits · 310 pts
SeverityFileLineSnippetContext
MEDIUMapp/models/topic_link.rb409 # Create the reflection if we canCOMMENT
MEDIUMapp/models/topic_link_click.rb14 # Create a click from a URL and post_idCOMMENT
MEDIUMapp/models/private_message_topic_tracking_state.rb3# This class is used to mirror unread and new status for private messages betweenCOMMENT
MEDIUMapp/models/topic_list.rb105 # Create a lookup for all the user ids we needCOMMENT
MEDIUMapp/models/reviewable.rb169 # Create a new reviewable, or if the target has already been reviewed return it to theCOMMENT
MEDIUMapp/models/topic_tracking_state.rb3# This class is used to mirror unread and new status back to end usersCOMMENT
MEDIUMapp/models/post.rb1011 # Create a reply relationship between quoted posts and this new postCOMMENT
MEDIUMapp/models/concerns/reviewable_action_builder.rb199 # Create a result object.COMMENT
MEDIUMapp/jobs/regular/group_smtp_email.rb79 # Create an incoming email record for tracking purposes.COMMENT
MEDIUMapp/controllers/application_controller.rb639 # This method is intended to be a no-op.COMMENT
MEDIUMapp/services/theme_settings_migrations_runner.rb7 # Defining a method `get_category_id_by_name` will result in the `getCategoryIdByName` function being made availableCOMMENT
MEDIUMapp/services/post_alerter.rb721 # Create the notificationCOMMENT
MEDIUM⚡…services/video_conversion/aws_media_convert_adapter.rb310 # Create a temporary upload object to leverage FileStore::BaseStore path generationCOMMENT
MEDIUM…ervices/notifications/delete_previous_notifications.rb3# Create a new notification while deleting previous versions of it.COMMENT
MEDIUMconfig/locales/transliterate.bg.yml2# This file contains content for the i18n transliteration map fromCOMMENT
MEDIUMconfig/locales/transliterate.de.yml3# This file contains transliteration rules for GermanCOMMENT
MEDIUMconfig/locales/transliterate.ru.yml2# This file contains content for the i18n transliteration map fromCOMMENT
MEDIUMconfig/locales/transliterate.en.yml3# This file contains default transliteration rules and configures stringexCOMMENT
MEDIUMconfig/locales/transliterate.vi.yml3# This file contains transliteration rules for VietnameseCOMMENT
MEDIUMconfig/locales/transliterate.ug.yml3# This file contains transliteration rules for Uyghur based onCOMMENT
MEDIUMconfig/locales/transliterate.ar.yml3# This file contains transliteration rules for ArabicCOMMENT
MEDIUMconfig/initializers/100-wrap_parameters.rb5# This file contains settings for ActionController::ParamsWrapper whichCOMMENT
MEDIUM…ration/app/jobs/onceoff/migrate_from_slack_official.rb88 # Create the rule, with clever logic for avoiding duplicatesCOMMENT
MEDIUM…ugins/discourse-chat-integration/app/helpers/helper.rb151 # Create a rule for a specific channelCOMMENT
MEDIUM…scourse-chat-integration/spec/services/manager_spec.rb292 # Create a group & userCOMMENT
MEDIUM…scourse-chat-integration/spec/services/manager_spec.rb300 # Create a categoryCOMMENT
MEDIUM…/discourse-adplugin/spec/system/admin_house_ad_spec.rb59 # Create a new adCOMMENT
MEDIUM…s/chat/app/queries/chat/tracking_state_report_query.rb4 # This class is responsible for querying the user's current trackingCOMMENT
MEDIUMplugins/chat/spec/system/uploads_spec.rb23 # Define the JavaScript to simulate dragging an external imageCOMMENT
MEDIUMplugins/chat/spec/lib/chat/message_processor_spec.rb27 # Create a message with an image in a onebox (common when posting URLs with images)COMMENT
MEDIUM…at/spec/services/video_conversion/chat_message_spec.rb10 # Create a chat message with video uploadCOMMENT
MEDIUMplugins/chat/lib/chat_sdk/message.rb33 # This method is a convenience wrapper around `create` with `streaming: true` set by default.COMMENT
MEDIUM…s/discourse-assign/spec/components/topic_query_spec.rb110 # Create a new topic with only a post assignment (no topic assignment)COMMENT
MEDIUMplugins/discourse-assign/lib/assigner.rb390 # Create a webhook eventCOMMENT
MEDIUMplugins/discourse-assign/lib/assigner.rb453 # Create a webhook eventCOMMENT
MEDIUM…ents/spec/models/discourse_events/events/event_spec.rb174 # Creating a livestream event enqueues onebox warming, which wouldCOMMENT
MEDIUMplugins/discourse-ai/app/models/ai_artifact.rb91 # Create the version recordCOMMENT
MEDIUM…iscourse-ai/spec/models/shared_ai_conversation_spec.rb162 # Create a post with an AI artifactCOMMENT
MEDIUM…se-ai/spec/requests/admin/ai_agents_controller_spec.rb430 # Create the agentCOMMENT
MEDIUM…se-ai/spec/requests/ai_bot/topic_serialization_spec.rb17 # Create a bot post with the custom field setCOMMENT
MEDIUM…se-ai/spec/lib/discourse_automation/llm_triage_spec.rb225 # Create a post and capture its topicCOMMENT
MEDIUM…spec/lib/discourse_automation/llm_agent_triage_spec.rb21 # Create the user for this agentCOMMENT
MEDIUM⚡…spec/lib/discourse_automation/llm_agent_triage_spec.rb221 # Create a category and tags for the testCOMMENT
MEDIUM⚡…spec/lib/discourse_automation/llm_agent_triage_spec.rb226 # Create a topic with category and tagsCOMMENT
MEDIUM⚡…spec/lib/discourse_automation/llm_agent_triage_spec.rb236 # Create a post in that topicCOMMENT
MEDIUM…spec/lib/discourse_automation/llm_agent_triage_spec.rb293 # Create a private message topicCOMMENT
MEDIUM…spec/lib/discourse_automation/llm_agent_triage_spec.rb305 # Create a follow-up postCOMMENT
MEDIUM…scourse-ai/spec/lib/completions/cancel_manager_spec.rb96 # Create a model that points to our hanging serverCOMMENT
MEDIUM…i/spec/lib/completions/prompt_messages_builder_spec.rb275 # Create a topic with tagsCOMMENT
MEDIUM…se-ai/spec/lib/completions/endpoints/anthropic_spec.rb1467 # Create a mock prompt with tool results in messages (simulating what dialect produces)COMMENT
MEDIUM…/discourse-ai/spec/lib/agents/tools/edit_image_spec.rb102 # Create a private message post with an uploadCOMMENT
MEDIUM…/discourse-ai/spec/lib/agents/tools/edit_image_spec.rb106 # Create an upload associated with the private postCOMMENT
MEDIUM…/discourse-ai/spec/lib/agents/tools/edit_image_spec.rb130 # Create a private message post with an uploadCOMMENT
MEDIUM…/discourse-ai/spec/lib/agents/tools/edit_image_spec.rb134 # Create an upload associated with the private postCOMMENT
MEDIUM…/discourse-ai/spec/lib/agents/tools/edit_image_spec.rb159 # Create a tool that raises an errorCOMMENT
MEDIUM…/discourse-ai/spec/lib/agents/tools/researcher_spec.rb47 # Create a second LLM model to test the researcher_llm optionCOMMENT
MEDIUM…iscourse-ai/spec/lib/agents/tools/create_image_spec.rb81 # Create a tool that raises an errorCOMMENT
MEDIUM…ourse-ai/spec/lib/utils/ai_staff_action_logger_spec.rb51 # Create a agent with a large system promptCOMMENT
MEDIUM…ourse-ai/spec/lib/utils/ai_staff_action_logger_spec.rb412 # Create a quota for the modelCOMMENT
MEDIUM…ourse-ai/spec/lib/utils/research/llm_formatter_spec.rb27 # Create a post with content that will exceed our token limitCOMMENT
41 more matches not shown…
Hallucination Indicators21 hits · 225 pts
SeverityFileLineSnippetContext
CRITICAL…nd/discourse/app/static/prosemirror/core/serializer.js35 : content.firstChild.type.schema.nodes.paragraph.create(CODE
CRITICAL…d/discourse/app/static/prosemirror/extensions/quote.js275 const paragraph = view.state.schema.nodes.paragraph.create();CODE
CRITICAL…urse/app/static/prosemirror/extensions/link-toolbar.js211 this.#view.state.schema.nodes.paragraph.create(CODE
CRITICAL…/discourse/app/static/prosemirror/extensions/onebox.js393 view.state.schema.nodes.onebox_inline.create({CODE
CRITICAL…/discourse/app/static/prosemirror/extensions/onebox.js407 const oneboxNode = view.state.schema.nodes.onebox.create({CODE
CRITICAL…/discourse/app/static/prosemirror/extensions/onebox.js428 nodes.push(view.state.schema.nodes.paragraph.create());CODE
CRITICAL…p/static/prosemirror/extensions/override-drag-ghost.ts60 const wrappedNode = view.state.schema.nodes.paragraph.create(CODE
CRITICAL…nd/discourse/app/static/prosemirror/extensions/link.ts370 tr.addMark(from, to, view.state.schema.marks.link.create({ href: text }));CODE
CRITICALfrontend/discourse/app/lib/flag-targets/topic-flag.js29 flagModal.args.model.flagModel.actions_summary.forEach((a) => {CODE
CRITICALfrontend/discourse/app/lib/flag-targets/topic-flag.js37 return flagModal.args.model.flagModel.actions_summary.some((a) => {CODE
CRITICAL…ntegration/components/prosemirror-editor/table-test.js1629 view.state.schema.nodes.paragraph.create(CODE
CRITICAL⚡config/initializers/assets.rb12Rails.application.config.assets.paths.push(CODE
CRITICAL⚡config/initializers/assets.rb19Rails.application.config.assets.paths.push(CODE
CRITICAL⚡config/initializers/assets.rb24Rails.application.config.assets.excluded_paths.push(CODE
CRITICAL…g/assets/javascripts/discourse/lib/post-voting-flag.js26 return flagModal.args.model.flagModel.availableFlags.includes(CODE
CRITICAL…/assets/javascripts/discourse/lib/chat-message-flag.js47 flagModal.args.model.flagModel.availableFlags.includes(flag.name_key) &&CODE
CRITICAL…/unit/components/workflows/build-with-ai-modal-test.js52 modal.aiResponse.response.proposal.script_validations.push({CODE
CRITICAL…oards/lib/discourse_workflows/nodes/create_board/v1.rb105 invalid_parameters!(step.exception.record.errors.full_messages.join(", "))CODE
CRITICAL…ib/discourse_workflows/nodes/create_board_column/v1.rb155 invalid_parameters!(step.exception.record.errors.full_messages.join(", "))CODE
CRITICALspec/requests/invites_controller_spec.rb1605 expect(invite.invited_users.first.user.groups.pluck(:name)).to contain_exactly(CODE
CRITICALlib/middleware/default_headers.rb17 Rails.application.config.action_dispatch.default_headers.to_h.except(*EXCLUDED_HEADERS)CODE
Decorative Section Separators25 hits · 80 pts
SeverityFileLineSnippetContext
MEDIUMapp/assets/stylesheets/common/nested-view.scss21// ── Top-level nested view ──────────────────────────────────────────COMMENT
MEDIUMapp/assets/stylesheets/common/nested-view.scss400// ── Context view ──────────────────────────────────────────────────COMMENT
MEDIUMapp/assets/stylesheets/common/nested-view.scss439// ── Nested post (single comment in tree) ───────────────────────────COMMENT
MEDIUMapp/assets/stylesheets/common/nested-view.scss1018// ── Children container ─────────────────────────────────────────────COMMENT
MEDIUMapp/assets/stylesheets/common/nested-view.scss1054// ── Deep-link highlight animation ──────────────────────────────────COMMENT
MEDIUMapp/assets/stylesheets/common/nested-view.scss1069// ── Activity log modal ────────────────────────────────────────────COMMENT
MEDIUMapp/assets/stylesheets/common/nested-view.scss1167// ── Mobile layout ─────────────────────────────────────────────────COMMENT
MEDIUMplugins/chat/lib/chat/message_mover.rb8# -------------------COMMENT
MEDIUMplugins/chat/lib/chat/transcript_service.rb316 # ----------------------------------------COMMENT
MEDIUMspec/system/page_objects/pages/nested_view.rb47 # ── Root view assertions ──────────────────────────────────────COMMENT
MEDIUMspec/system/page_objects/pages/nested_view.rb65 # ── Context view assertions ───────────────────────────────────COMMENT
MEDIUMspec/system/page_objects/pages/nested_view.rb95 # ── Post assertions ───────────────────────────────────────────COMMENT
MEDIUMspec/system/page_objects/pages/nested_view.rb431 # ── Actions ───────────────────────────────────────────────────COMMENT
MEDIUMspec/system/page_objects/pages/nested_view.rb658 # ── Deletion/recovery assertions ─────────────────────────────COMMENT
MEDIUMspec/system/page_objects/pages/nested_view.rb693 # ── Ignored-user placeholder assertions ──────────────────────COMMENT
MEDIUMspec/system/page_objects/pages/nested_view.rb710 # ── Post actions ────────────────────────────────────────────COMMENT
MEDIUMspec/system/page_objects/pages/nested_view.rb733 # ── Pinned post assertions ─────────────────────────────────COMMENT
MEDIUMspec/system/page_objects/pages/nested_view.rb743 # ── Load more ───────────────────────────────────────────────COMMENT
MEDIUMspec/system/page_objects/pages/nested_view.rb754 # ── Cloaking ─────────────────────────────────────────────────COMMENT
MEDIUMspec/system/page_objects/pages/nested_view.rb773 # ── Suggested topics ──────────────────────────────────────────COMMENT
MEDIUMscript/memstats.rb6#------------------------------------------------------------------------------COMMENT
MEDIUMscript/memstats.rb28#------------------------------------------------------------------------------COMMENT
MEDIUM⚡lib/discourse_webauthn/registration_service.rb85 #==================================================COMMENT
MEDIUM⚡lib/discourse_webauthn/registration_service.rb89 #==================================================COMMENT
MEDIUM⚡lib/discourse_webauthn/registration_service.rb98 #==================================================COMMENT
AI Slop Vocabulary20 hits · 44 pts
SeverityFileLineSnippetContext
LOWapp/models/category.rb876 # Ideally we can just call .clear here, but it runs SQL, we only want to run itCOMMENT
LOWapp/models/theme_field.rb464 self.value_baked = Digest::SHA1.hexdigest(result.join(",")) # We don't use the compiled CSS here, we just use it to CODE
LOWapp/models/email_token.rb72 # If the user's email is already taken, just return nil (failure)COMMENT
MEDIUMapp/models/post.rb671 # Ideally we would want a more comprehensive way of saying that certainCOMMENT
MEDIUM⚡…services/video_conversion/aws_media_convert_adapter.rb310 # Create a temporary upload object to leverage FileStore::BaseStore path generationCOMMENT
MEDIUMfrontend/discourse/app/lib/get-url.js42 // Strip http: and https: to ensure robust domain comparisonCOMMENT
MEDIUMconfig/initializers/100-secret_token.rb4# backwards support of "seamless" upgrade from Rails 3.COMMENT
LOW…scourse-ai/spec/lib/completions/endpoints/nova_spec.rb233 # lets just return the tool call again, this is about ensuring we encode the prompt rightCOMMENT
MEDIUM…ugins/discourse-ai/lib/agents/tool_runner/discourse.rb18 # default to public visibility and only elevate when `with_private: true`COMMENT
MEDIUMplugins/live/spec/system/live_livekit_spec.rb24# media harness satisfies the LiveKit SDK: livekit-client never callsCOMMENT
MEDIUMplugins/boards/app/models/boards/board.rb59 # Essentially a legacy group ID, don't want anyone to use it.COMMENT
LOWspec/lib/trashable_spec.rb4 # post is trashable, just use it.COMMENT
MEDIUMspec/lib/onebox/engine/loom_onebox_spec.rb13 '<iframe class="loom-onebox" src="https://www.loom.com/embed/c9695e5dc084496c80b7d7516d2a569a?sid=e1279914-ecaa-4fCODE
MEDIUMspec/lib/onebox/engine/wistia_onebox_spec.rb16 '<iframe src="https://fast.wistia.net/embed/iframe/26sk4lmiix" width="960" height="540" title="Nice." frameborder=CODE
MEDIUMscript/import_scripts/lithium.rb8# If you have leverage you may get a data dump, in my case it was provided in XMLCOMMENT
LOWlib/site_setting_extension.rb920 # a custom getter for it, so we can just use the normal getterCOMMENT
LOWlib/topic_query.rb771 # topics. Otherwise, just use bumped_at.COMMENT
LOWlib/onebox/engine/youtube_onebox.rb178 # use params.include? so that you can just add "&loop"COMMENT
LOWlib/second_factor/actions/discourse_connect_provider.rb15 # 'prompt=none' was requested, so just return a failed authenticationCOMMENT
LOW…ate/20250714010001_backfill_themeable_site_settings.rb11 # and theme site settings will just use the default value.COMMENT
Redundant / Tautological Comments27 hits · 43 pts
SeverityFileLineSnippetContext
LOWapp/controllers/list_controller.rb464 # Check if the category slug is incorrect and redirect to a link containingCOMMENT
LOW…discourse-assign/spec/requests/list_controller_spec.rb465 # Assign topics to different users and groupsCOMMENT
LOW…discourse-assign/spec/requests/list_controller_spec.rb488 # Assign topics to different users and groupsCOMMENT
LOW…ugins/discourse-ai/app/models/llm_credit_allocation.rb40 # Check if association is preloaded to avoid N+1 queriesCOMMENT
LOW…ins/discourse-ai/app/jobs/regular/digest_rag_upload.rb24 # Check if this is the first time we process this upload.COMMENT
LOWplugins/discourse-ai/discourse_automation/llm_tagger.rb107 # Check if we can perform the action before proceedingCOMMENT
LOW…spec/lib/discourse_automation/llm_agent_triage_spec.rb207 # Set up to cause an errorCOMMENT
LOW…ugins/discourse-ai/lib/agents/tool_runner/discourse.rb237 # Check if user already existsCOMMENT
LOWplugins/discourse-ai/lib/agents/tools/edit_image.rb67 # Check if upload has access controlCOMMENT
LOWplugins/discourse-ai/lib/automation/llm_triage.rb232 # Check if another triage rule already created a reviewable for this post.COMMENT
LOWplugins/discourse-ai/lib/ai_bot/entry_point.rb231 # Check if the only recipients are botsCOMMENT
LOW⚡…rs/discourse_subscriptions/user/payments_controller.rb93 # Check if the charge is associated with the given email and has no customer IDCOMMENT
LOW⚡…rs/discourse_subscriptions/user/payments_controller.rb99 # Check if there are more charges to fetchCOMMENT
LOW⚡…rs/discourse_subscriptions/user/payments_controller.rb102 # Set starting_after to the last charge's ID for the next batchCOMMENT
LOWspec/requests/admin/themes_controller_spec.rb1048 # Set back to defaultCOMMENT
LOW…regular/site_setting_update_default_categories_spec.rb41 # Set default_categories_watching to the new value otherwiseCOMMENT
LOWscript/backport.rb122 # Check if release branch existsCOMMENT
LOWscript/bulk_import/uploads_importer.yml29# Check if files are missing in the upload store and update the database accordingly.COMMENT
LOWscript/bulk_import/uploads_importer.yml51 # Set this to true if the site is a multisite and configure the `multisite_db_name` accordinglyCOMMENT
LOWscript/import_scripts/friendsmegplus.rb38 # Set this to the base URL for the site; required for importing videosCOMMENT
LOWscript/import_scripts/discuz_x.rb24 # Set DISCUZX_BASE_DIR to the base directory of your discuz installation.COMMENT
LOWscript/import_scripts/zoho.rb176 # Check if Zoho's most common form of a code block is present.COMMENT
LOWlib/validators/video_conversion_enabled_validator.rb13 # Check if MediaConvert role ARN is providedCOMMENT
LOWlib/validators/video_conversion_enabled_validator.rb16 # Check if S3 credentials are provided (either access keys or IAM profile)COMMENT
LOWlib/validators/video_conversion_enabled_validator.rb37 # Check if using IAM profileCOMMENT
LOWlib/validators/video_conversion_enabled_validator.rb40 # Check if access key and secret are providedCOMMENT
LOW…rate/20250626090725_add_my_messages_link_to_sidebar.rb13 # Check if "My Messages" link already existsCOMMENT
Structural Annotation Overuse27 hits · 40 pts
SeverityFileLineSnippetContext
LOWplugins/discourse-adplugin/README.md36### Step 1 - Install the Official Discourse Advertising PluginCOMMENT
LOWplugins/discourse-adplugin/README.md58### Step 2 - Configure Your Settings to Display Your AdvertismentsCOMMENT
LOWplugins/discourse-adplugin/README.md141### Step 3 - See Your AdCOMMENT
LOWdocs/INSTALL-cloud.md74### Step 1: Choose Your DomainCOMMENT
LOWdocs/INSTALL-cloud.md101### Step 2: Create and Access Your ServerCOMMENT
LOWdocs/INSTALL-cloud.md112### Step 3: Run the InstallerCOMMENT
LOW…es/docs/02-development-environments/03-docker-setup.md19## Step 1: Install DockerCOMMENT
LOW…es/docs/02-development-environments/03-docker-setup.md51## Step 2: Start ContainerCOMMENT
LOW…-guides/docs/03-code-internals/11-converting-modals.md13## Step 1: Move FilesCOMMENT
LOW…-guides/docs/03-code-internals/11-converting-modals.md17## Step 2: Update the JS fileCOMMENT
LOW…-guides/docs/03-code-internals/11-converting-modals.md40## Step 3: Update the TemplateCOMMENT
LOW…-guides/docs/03-code-internals/11-converting-modals.md80### Step 4: Update the showModal call sitesCOMMENT
LOW…-guides/docs/03-code-internals/11-converting-modals.md136## Step 5: TestsCOMMENT
LOW…per-guides/docs/03-code-internals/08-js-performance.md15## Step 1: Add `performance.measure()`COMMENT
LOW…per-guides/docs/03-code-internals/08-js-performance.md31## Step 2: Identify URLs for testingCOMMENT
LOW…per-guides/docs/03-code-internals/08-js-performance.md65## Step 3: Configure TachometerCOMMENT
LOW…per-guides/docs/03-code-internals/08-js-performance.md94## Step 4: Run benchmarkCOMMENT
LOW…er-guides/docs/05-themes-components/19-custom-icons.md9# Step 1 - Create an SVG SpritesheetCOMMENT
LOW…er-guides/docs/05-themes-components/19-custom-icons.md58# Step 2 - Add the spritesheet to your themeCOMMENT
LOWscript/import_scripts/phpbb3/settings.yml113 remote: false # WARNING: This can considerably slow down your import. It will try to download remote avatars.CODE
LOW.skills/discourse-frontend-conventions/SKILL.md17## Step 0: decide the scopeCOMMENT
LOW.skills/discourse-frontend-conventions/SKILL.md33## Step 1: private-symbols patternCOMMENT
LOW.skills/discourse-frontend-conventions/SKILL.md94## Step 2: member orderingCOMMENT
LOW.skills/discourse-frontend-conventions/SKILL.md147## Step 3: comments and blank linesCOMMENT
LOW.skills/discourse-frontend-conventions/SKILL.md175## Step 4: invocation ordering (`.gjs`/`.gts`, lint-enforced)COMMENT
LOW.skills/discourse-frontend-conventions/SKILL.md202## Step 5: documentation reviewCOMMENT
LOW.skills/discourse-frontend-conventions/SKILL.md242## Step 6: lintCOMMENT
Example Usage Blocks14 hits · 22 pts
SeverityFileLineSnippetContext
LOWapp/assets/stylesheets/common/foundation/mixins.scss207// Example usage:COMMENT
LOWplugins/discourse-oauth2-basic/plugin.rb29# Example usage:COMMENT
LOWspec/support/theme_screenshot_marker.rb5# Usage:COMMENT
LOWlib/discourse.rb18 # Usage:COMMENT
LOWlib/discourse_webauthn.rb69 # Usage:COMMENT
LOW⚡lib/plugin/instance.rb308 # Example usage:COMMENT
LOW⚡lib/plugin/instance.rb350 # Example usage:COMMENT
LOW⚡lib/plugin/instance.rb399 # Example usage:COMMENT
LOW⚡lib/plugin/instance.rb420 # Example usage:COMMENT
LOWlib/plugin/instance.rb122 # Example usage:COMMENT
LOWlib/plugin/instance.rb437 # Example usage:COMMENT
LOWlib/plugin/instance.rb460 # Example usage:COMMENT
LOWlib/emoji/regex_generator.rb11# Usage:COMMENT
LOWlib/scheduler/thread_pool.rb8 # Usage:COMMENT
Slop Phrases11 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUM…/lib/discourse_webauthn/authentication_service_spec.rb36# @params will contain authenticatorData and signature which you can use as is.COMMENT
LOWscript/bulk_import/discourse_merger.rb458 # make sure to get a backup with uploads then convert them to local.COMMENT
LOWscript/import_scripts/mylittleforum.rb35# If you update the Docker container and perform another import afterwards, make sure to back up these files beforehand.COMMENT
LOWscript/import_scripts/mybbru.rb9# If your forum has non-English usernames, don't forget to enable Unicode usernames in /admin/site_settingsCOMMENT
LOWscript/import_scripts/mybbru.rb9# If your forum has non-English usernames, don't forget to enable Unicode usernames in /admin/site_settingsCOMMENT
MEDIUMlib/discourse.rb1122 # you can use Discourse.warn when you want to report custom environmentCOMMENT
MEDIUMlib/plugin/instance.rb1390 # We'll include the HTML inside the unsubscribe form, so you can add your fields using theCOMMENT
LOWlib/plugin/instance.rb842 # When using this, make sure to consider the effect on AnonymousCacheCOMMENT
LOWlib/email_controller_helper/base_email_unsubscriber.rb13 # Don't forget to call super when extending this method.COMMENT
LOWlib/email_controller_helper/base_email_unsubscriber.rb31 # Don't forget to call super when extending this method.COMMENT
LOW…43_ensure_anonymous_and_logged_in_users_auto_groups.rb15 # new auto groups. Also make sure to rebake posts & update group mentions.COMMENT
Modern AI Meta-Vocabulary6 hits · 17 pts
SeverityFileLineSnippetContext
MEDIUMfrontend/discourse/app/services/store.ts251// You should only call this if you're a test scaffoldCOMMENT
MEDIUMplugins/discourse-ai/evals/lib/workbench.rb23 # The Workbench drives the orchestration loop: it prepares the StructuredCOMMENT
MEDIUMplugins/discourse-ai/app/models/ai_agent.rb5 # question_consolidator_llm_id is intentionally ignored after the RAG toolCOMMENT
MEDIUM…discourse-ai/lib/completions/endpoints/hugging_face.rb44 # whatever the context window has left.COMMENT
MEDIUMspec/requests/admin/themes_controller_spec.rb1146 # RemoteTheme is extensively tested, and setting up the test scaffold is a large overheadCOMMENT
MEDIUM.skills/discourse-ai-llm-presets/SKILL.md52 tokens: 1_000_000, # context window in tokensCODE
Magic Placeholder Names2 hits · 10 pts
SeverityFileLineSnippetContext
HIGH…lib/ai_tool_scripts/presets/image_generation/custom.js4 const apiKey = "YOUR_API_KEY";CODE
HIGH…per-guides/docs/06-general-guides/05-ai-bot-api-use.md29Api-Key: <your_api_key>CODE
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHlib/upload_creator.rb101 # FIXME: I've added a bunch of external_upload_too_big checks litteredCOMMENT
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHfrontend/discourse/app/controllers/topic.js1586 print() {CODE
TODO Padding2 hits · 3 pts
SeverityFileLineSnippetContext
LOWfrontend/discourse/app/models/draft.ts45 // TODO: implement thisCOMMENT
LOWspec/system/viewing_reviewable_spec.rb179 # TODO: Add test for watched words highlightingCOMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWlib/post_action_creator.rb128 # We need to check if the creator exists because it's possible `create_message_creator` returns nilCOMMENT