AI Slop Code Risk Monitor

basecamp/fizzy

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

Kanban as it should be. Not as it has been.

5.5 Moderate pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for basecamp/fizzy, a Ruby project with 8,276 GitHub stars. SynthScan examined 88,248 lines of code across 1243 source files, recording 315 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 5.5 (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.5
Adjusted Signal
5.5
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
8.3K
Stars
Ruby
Language
88.2K
Lines of Code
1.2K
Files
315
Pattern Hits
2026-10-31
Scan Date
0.01
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 18.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 7.1/100 · LOW

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

Agent Over-Engineering Ratio 7.2/100 · LOW

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

PR Review Velocity Impact 23.7/100 · LOW

Which changes need focused human review? 315 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 12HIGH 0MEDIUM 27LOW 276

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 315 distinct pattern matches across 12 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.

Over-Commented Block133 hits · 133 pts
SeverityFileLineSnippetContext
LOWmise.saas.toml1# SaaS-only mise overlay, loaded when MISE_ENV=saas (mise environmentCOMMENT
LOWapp/models/oauth.rb41COMMENT
LOWapp/models/oauth.rb81 # Dynamic client registration is open and unauthenticated, so a remoteCOMMENT
LOWapp/models/token_digester.rb1# Bearer credentials (access tokens, refresh tokens, client secrets) areCOMMENT
LOWapp/models/oauth/availability.rb1# Availability switches for the OAuth authorization server, so it can ship dark.COMMENT
LOWapp/models/oauth/availability.rb21#COMMENT
LOWapp/models/oauth/availability.rb41# The switches above choose clients. staff_only chooses people: while it's on,COMMENT
LOWapp/models/oauth/first_party_clients.rb1# Canonical registry of the OAuth clients Fizzy ships with, as bc3'sCOMMENT
LOWapp/models/oauth/first_party_clients.rb41 }.freezeCOMMENT
LOWapp/models/oauth/first_party_clients.rb101 elseCOMMENT
LOWapp/models/oauth/client_metadata.rb1# Client ID Metadata Documents (CIMD, draft-ietf-oauth-client-id-metadata-document):COMMENT
LOWapp/models/oauth/retired_refresh_token.rb1# A refresh token its grant has rotated away from. Presenting one again isCOMMENT
LOWapp/models/oauth/client.rb1class Oauth::Client < ApplicationRecordCOMMENT
LOWapp/models/oauth/client.rb21 GRANT_TYPES = %w[ authorization_code refresh_token ]COMMENT
LOWapp/models/oauth/client.rb121 personal_access.take or raiseCOMMENT
LOWapp/models/oauth/audit.rb1# OAuth lifecycle events, in the 37signals OAuth Standard's vocabularyCOMMENT
LOWapp/models/oauth/token_delegation.rb1# RFC 8693 token delegation (hosted plan, phase C): the hosted Fizzy MCPCOMMENT
LOWapp/models/oauth/token_delegation.rb21# own expiry; the server exchanges again when it lapses.COMMENT
LOWapp/models/oauth/token_delegation.rb101COMMENT
LOWapp/models/oauth/client_metadata/fetcher.rb1require "net/http"COMMENT
LOWapp/models/oauth/client_metadata/fetcher.rb21# and would send the request somewhere else. TLS verifies the peer againstCOMMENT
LOWapp/models/oauth/client_metadata/document.rb1# Validates a fetched client metadata document and maps it to the attributes anCOMMENT
LOWapp/models/oauth/client_metadata/resolver.rb1# Looks up, fetches and persists metadata document clients for the authorizationCOMMENT
LOWapp/models/identity/access_token.rb1class Identity::AccessToken < ApplicationRecordCOMMENT
LOWapp/models/identity/access_token.rb21 # none and reach every account their identity belongs to.COMMENT
LOWapp/models/identity/access_token.rb41 # token, revocation by possession, Connected Apps) reads one of these, orCOMMENT
LOWapp/models/identity/access_token.rb81 # memory, on the record that issued or rotated them, to be handed to theirCOMMENT
LOWapp/models/identity/access_token.rb101 # transaction would then wait on the client's lock. A replayed code exchangeCOMMENT
LOWapp/models/identity/access_token.rb121 # event always describes a grant that was really issued or really ended.COMMENT
LOWapp/models/identity/access_token.rb141 # replica, which may have neither the token nor, for a grant justCOMMENT
LOWapp/models/zip_file/reader.rb1class ZipFile::ReaderCOMMENT
LOWapp/models/push/subscription.rb21 # unlapsed grant to its app. That covers every way the two come apart (theCOMMENT
LOWapp/models/concerns/attachments.rb1module AttachmentsCOMMENT
LOWapp/javascript/lib/action_pack/passkey.js1// Web components for the ActionPack::Passkey Ruby helpers.COMMENT
LOWapp/jobs/search_reindex_job.rb1# Repair task — reindexes every searchable Card and Comment in the database.COMMENT
LOWapp/controllers/oauth/tokens_controller.rb21 # that counted requests first would answer 429 to the eleventh, not 404.COMMENT
LOWapp/controllers/oauth/tokens_controller.rb361 client_authentication_failedCOMMENT
LOWapp/controllers/oauth/base_controller.rb1class Oauth::BaseController < ApplicationControllerCOMMENT
LOWapp/controllers/oauth/base_controller.rb81 # The client a request acts for, if it names one.COMMENT
LOWapp/controllers/oauth/revocations_controller.rb1# Token revocation (RFC 7009). The server validates the client's credentialsCOMMENT
LOW…ontrollers/oauth/authorizations/switches_controller.rb1# "Not you?" on the consent screen. Signs the person out, then brings whoeverCOMMENT
LOWapp/controllers/concerns/authentication.rb101 def bearer_authorization?COMMENT
LOWapp/controllers/concerns/oauth/client_authentication.rb1# Client credentials arrive one of two ways (RFC 6749 §2.3.1):COMMENT
LOWapp/controllers/concerns/oauth/client_authentication.rb61 # A failed Basic authentication is a 401 challenging Basic (RFC 6749 §5.2):COMMENT
LOWapp/helpers/pagination_helper.rb1module PaginationHelperCOMMENT
LOWtest/integration/pagination_blob_html_xss_test.rb1require "test_helper"COMMENT
LOW…t/test_helpers/trusted_types_violations_test_helper.rb1# Inventories the Trusted Types violations system tests trip, without failingCOMMENT
LOWtest/channels/solid_cable_adapter_test.rb1require "test_helper"COMMENT
LOWconfig/locales/en.yml1# Files in the config/locales directory are used for internationalization andCOMMENT
LOWconfig/locales/en.yml21#COMMENT
LOWconfig/environments/production.rb61 endCOMMENT
LOWconfig/environments/production.rb121COMMENT
LOWconfig/environments/production.rb141COMMENT
LOWconfig/environments/test.rb1require "active_support/core_ext/integer/time"COMMENT
LOWconfig/initializers/permissions_policy.rb1# Be sure to restart your server when you modify this file.COMMENT
LOWconfig/initializers/content_security_policy.rb1# Be sure to restart your server when you modify this file.COMMENT
LOWconfig/initializers/content_security_policy.rb21# of HTML responses that carry the Trusted Types report-only policy below.COMMENT
LOWconfig/initializers/inflections.rb1# Be sure to restart your server when you modify this file.COMMENT
LOWconfig/initializers/active_storage_no_reuse.rb1# Enforce storage ledger integrity by preventing blob reuse in tracked contexts.COMMENT
LOWlib/rails_ext/active_record_replica_support.rb1# frozen_string_literal: trueCOMMENT
73 more matches not shown…
Hyper-Verbose Identifiers119 hits · 125 pts
SeverityFileLineSnippetContext
LOWapp/mailers/user_mailer.rb2 def email_change_confirmation(email_address:, token:, user:)CODE
LOWapp/models/application_platform.rb83 def extract_list_from_native_user_agent(prefix)CODE
LOWapp/models/color.rb17 def extract_from_legacy_export(value)CODE
LOWapp/models/signup.rb53 def handle_account_creation_error(error)CODE
LOWapp/models/card/readable.rb32 def inaccessible_notifications_from(sources, accessible_user_ids)CODE
LOWapp/models/card/eventable.rb35 def create_system_comment_for(event)CODE
LOWapp/models/card/exportable.rb41 def attachment_representation(attachment)CODE
LOWapp/models/identity/access_token.rb256 def find_honored_delegated_on_primary(token)CODE
LOWapp/models/identity/access_token.rb274 def find_and_digest_undigested(raw)CODE
LOWapp/models/board/accessible.rb43 def clean_inaccessible_data_for(user)CODE
LOWapp/models/board/storage.rb56 def sum_blob_bytes_in_batches(base_scope, record_ids)CODE
LOWapp/models/notification/event_payload.rb100 def card_url_with_comment_anchor(comment)CODE
LOWapp/models/magic_link/code.rb26 def remove_invalid_characters(code)CODE
LOWapp/models/zip_file/reader.rb95 def ensure_declared_within_budget(entry)CODE
LOWapp/models/user/email_address_changeable.rb7 def change_email_address_using_token(token)CODE
LOWapp/models/user/email_address_changeable.rb20 def send_email_address_change_confirmation(new_email_address)CODE
LOWapp/models/user/email_address_changeable.rb41 def generate_email_address_change_token(from: identity.email_address, to:, **options)CODE
LOWapp/models/user/attachable.rb7 def attachable_plain_text_representation(...)CODE
LOWapp/models/user/notifiable.rb18 def find_or_create_bundle_for(notification)CODE
LOWapp/models/user/notifiable.rb26 def expand_pending_bundle_for(notification)CODE
LOWapp/models/search/query.rb48 def remove_invalid_search_characters(terms)CODE
LOWapp/models/account/data_transfer/record_set.rb139 def check_associations_dont_exist(data)CODE
LOWapp/models/account/data_transfer/record_set.rb149 def check_association_doesnt_exist(data, association, associated_id)CODE
LOWapp/models/account/data_transfer/record_set.rb175 def check_unique_keys_available(data)CODE
LOWapp/models/account/data_transfer/record_set.rb187 def check_unique_key_available(column, value)CODE
LOWapp/models/account/data_transfer/manifest.rb81 def set_importable_model_names(record_sets)CODE
LOW…ount/data_transfer/action_text/rich_text_record_set.rb57 def transform_body_for_export(content)CODE
LOW…ount/data_transfer/action_text/rich_text_record_set.rb102 def transform_body_for_import(body)CODE
LOWapp/models/concerns/storage/tracked.rb71 def storage_attachments_for_records(recordables)CODE
LOWapp/javascript/helpers/scroll_helpers.js39function findNearestScrollableYAncestor(refElement) {CODE
LOWapp/javascript/helpers/scroll_helpers.js50function findNearestScrollableXAncestor(refElement) {CODE
LOWapp/controllers/oauth/base_controller.rb54 def refuse_malformed_parameters(names)CODE
LOWapp/controllers/oauth/base_controller.rb58 def malformed_parameters_description(names)CODE
LOWapp/controllers/oauth/clients_controller.rb40 def refuse_malformed_parameters(names)CODE
LOWapp/controllers/oauth/clients_controller.rb112 def dynamic_client_registration_response(client)CODE
LOWapp/controllers/prompts/cards_controller.rb32 def prepending_exact_matches_by_id(cards)CODE
LOWapp/controllers/concerns/authentication.rb18 def require_unauthenticated_access(**options)CODE
LOWapp/controllers/concerns/authentication.rb23 def allow_unauthenticated_access(**options)CODE
LOWapp/controllers/concerns/authentication.rb162 def request_bearer_authentication(status: :unauthorized, **params)CODE
LOWapp/controllers/concerns/authorization.rb9 def allow_unauthorized_access(**options)CODE
LOWapp/controllers/concerns/authorization.rb13 def require_access_without_a_user(**options)CODE
LOW…/controllers/concerns/authentication/via_magic_link.rb15 def redirect_to_fake_session_magic_link(email_address, **options)CODE
LOW…/controllers/concerns/authentication/via_magic_link.rb25 def redirect_to_session_magic_link(magic_link, return_to: nil)CODE
LOW…/controllers/concerns/authentication/via_magic_link.rb36 def serve_development_magic_link(magic_link)CODE
LOW…/controllers/concerns/authentication/via_magic_link.rb43 def set_pending_authentication_token(magic_link)CODE
LOWapp/helpers/oauth_helper.rb35 def oauth_client_display_identity(client, redirect_uri)CODE
LOWapp/helpers/oauth_helper.rb58 def oauth_client_remote_hosts(client)CODE
LOWapp/helpers/oauth_helper.rb74 def oauth_strongest_permission(tokens)CODE
LOWapp/helpers/oauth_helper.rb90 def oauth_connected_app_reach(tokens)CODE
LOWapp/helpers/cards_helper.rb42 def button_to_remove_card_image(card)CODE
LOWapp/helpers/notifications_helper.rb42 def notification_toggle_read_button(notification, url:)CODE
LOW⚡app/helpers/notifications_helper.rb64 def notifications_next_page_link(page)CODE
LOW⚡app/helpers/notifications_helper.rb70 def bundle_email_frequency_options_for(settings)CODE
LOW⚡app/helpers/notifications_helper.rb80 def event_notification_action(event)CODE
LOW⚡app/helpers/notifications_helper.rb88 def comment_notification_body(event)CODE
LOWapp/helpers/filters_helper.rb14 def filter_selected_boards_title(user_filtering)CODE
LOWapp/helpers/accesses_helper.rb18 def access_involvement_advance_button(board, user, show_watchers: true, icon_only: false)CODE
LOWapp/helpers/bridge_helper.rb24 def bridge_share_card_description(card)CODE
LOWapp/helpers/bridge_helper.rb32 def bridge_share_board_description(board)CODE
LOWapp/helpers/clipboard_helper.rb2 def button_to_copy_to_clipboard(url, &)CODE
59 more matches not shown…
Hallucination Indicators12 hits · 120 pts
SeverityFileLineSnippetContext
CRITICALapp/controllers/boards_controller.rb40 @board.account.users.active.alphabetically.includes(:identity).partition { |user| selected_user_ids.include? user.CODE
CRITICALapp/controllers/notifications_controller.rb6 @unread = Current.user.notifications.unread.ordered.preloaded.limit(max_unread_notifications) unless current_page_paCODE
CRITICALapp/controllers/users_controller.rb9 set_page_and_extract_portion_from Current.account.users.active.alphabetically.includes(:identity)CODE
CRITICALapp/controllers/cards/assignments_controller.rb5 @assigned_to = @card.assignees.active.alphabetically.where.not(id: Current.user)CODE
CRITICALapp/controllers/cards/assignments_controller.rb6 @users = @board.users.active.alphabetically.where.not(id: @card.assignees).where.not(id: Current.user)CODE
CRITICALapp/controllers/cards/taggings_controller.rb6 @tags = Current.account.tags.all.alphabetically.where.not(id: @tagged_with)CODE
CRITICALapp/controllers/boards/accesses_controller.rb5 set_page_and_extract_portion_from @board.account.users.active.alphabetically.includes(:identity)CODE
CRITICALapp/controllers/notifications/trays_controller.rb17 Current.user.notifications.unread.preloaded.ordered.limit(MAX_ENTRIES_LIMIT)CODE
CRITICALapp/controllers/notifications/trays_controller.rb21 Current.user.notifications.read.preloaded.ordered.limit(MAX_ENTRIES_LIMIT)CODE
CRITICALscript/load-prod-db-in-dev.rb51 url = Rails.application.routes.url_helpers.root_url(Rails.application.config.action_controller.default_url_options.merCODE
CRITICALsaas/test/integration/structured_log_redaction_test.rb222 Rails.application.config.structured_logging.logger.stubs(:info).with { |line| lines << line }CODE
CRITICALsaas/test/controllers/sessions/reviewer_sign_in_test.rb24 Rails.application.config.structured_logging.logger.stubs(:info).with { |line| lines << line }CODE
Self-Referential Comments23 hits · 69 pts
SeverityFileLineSnippetContext
MEDIUMtest/integration/active_storage_authorization_test.rb110 # Create the draft card and attachment with proper Current contextCOMMENT
MEDIUMtest/models/webhook/triggerable_test.rb13 # Create a test eventCOMMENT
MEDIUMtest/models/storage/attachment_tracking_test.rb90 # Create a model that doesn't respond to :boardCOMMENT
MEDIUMtest/models/storage/attachment_tracking_test.rb104 # Create a card with nil board association won't happen in practiceCOMMENT
MEDIUMtest/models/storage/totaled_test.rb177 # Create a new account to destroy (don't destroy fixtures)COMMENT
MEDIUMtest/models/account/import_test.rb180 # Create a ZIP with no account.jsonCOMMENT
MEDIUM…data_transfer/action_text/rich_text_record_set_test.rb10 # Create a malicious ActionText record that points to the victim's cardCOMMENT
MEDIUMtest/controllers/cards_controller_test.rb310 # Create a card with custom timestamps (simulating import)COMMENT
MEDIUMconfig/initializers/permissions_policy.rb3# Define an application-wide HTTP permissions policy. For furtherCOMMENT
MEDIUMconfig/initializers/content_security_policy.rb3# Define an application-wide Content Security Policy.COMMENT
MEDIUMlib/action_pack/web_authn/authenticator/attestation.rb31# The following methods are delegated to +authenticator_data+:COMMENT
MEDIUMdb/schema.rb1# This file is auto-generated from the current state of the database. InsteadCOMMENT
MEDIUMdb/schema.rb5# This file is the source Rails uses to define your schema when running `bin/railsCOMMENT
MEDIUMdb/queue_schema.rb1# This file is auto-generated from the current state of the database. InsteadCOMMENT
MEDIUMdb/queue_schema.rb5# This file is the source Rails uses to define your schema when running `bin/railsCOMMENT
MEDIUMdb/cache_schema.rb1# This file is auto-generated from the current state of the database. InsteadCOMMENT
MEDIUMdb/cache_schema.rb5# This file is the source Rails uses to define your schema when running `bin/railsCOMMENT
MEDIUMdb/cable_schema.rb1# This file is auto-generated from the current state of the database. InsteadCOMMENT
MEDIUMdb/cable_schema.rb5# This file is the source Rails uses to define your schema when running `bin/railsCOMMENT
MEDIUMdb/schema_sqlite.rb1# This file is auto-generated from the current state of the database. InsteadCOMMENT
MEDIUMdb/schema_sqlite.rb5# This file is the source Rails uses to define your schema when running `bin/railsCOMMENT
MEDIUMsaas/db/saas_schema.rb1# This file is auto-generated from the current state of the database. InsteadCOMMENT
MEDIUMsaas/db/saas_schema.rb5# This file is the source Rails uses to define your schema when running `bin/railsCOMMENT
Fake / Example Data10 hits · 10 pts
SeverityFileLineSnippetContext
LOWapp/javascript/controllers/upload_preview_controller.js4 static targets = [ "image", "input", "fileName", "placeholder" ]CODE
LOW…b_authn/public_key_credential/creation_options_test.rb8 name: "user@example.com",CODE
LOW…b_authn/public_key_credential/creation_options_test.rb16 assert_equal "user@example.com", @options.nameCODE
LOW…b_authn/public_key_credential/creation_options_test.rb42 assert_equal "user@example.com", user["name"]CODE
LOW…b_authn/public_key_credential/creation_options_test.rb59 name: "user@example.com",CODE
LOW…b_authn/public_key_credential/creation_options_test.rb81 name: "user@example.com",CODE
LOW…b_authn/public_key_credential/creation_options_test.rb100 name: "user@example.com",CODE
LOW…b_authn/public_key_credential/creation_options_test.rb113 name: "user@example.com",CODE
LOW…b_authn/public_key_credential/creation_options_test.rb124 name: "user@example.com",CODE
LOWdocs/api/sections/authentication.md53 -d '{"email_address": "user@example.com"}' \CODE
Decorative Section Separators2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMapp/models/account/seeder.rb24 # ---------------COMMENT
MEDIUMapp/models/account/seeder.rb26 # ---------------COMMENT
Example Usage Blocks4 hits · 6 pts
SeverityFileLineSnippetContext
LOWapp/jobs/search_reindex_job.rb12# Usage:COMMENT
LOWtest/webmock_ipaddr_extension.rb3# Usage:COMMENT
LOWlib/rails_ext/active_record_replica_support.rb6# Usage:COMMENT
LOWlib/rails_ext/active_record_date_arithmetic.rb6# Usage:COMMENT
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWconfig/deploy.yml19 ssl: true # Set this to false if you *don't* want SSLCODE
LOWconfig/environments/production.rb25 # Set BASE_URL to your instance's public URL (e.g., https://fizzy.example.com)COMMENT
LOWconfig/environments/production.rb109 # Set this to true and configure the email server for immediate delivery to raise delivery errors.COMMENT
LOWconfig/environments/test.rb47 # Set host to be used by links generated in mailer templates.COMMENT
Verbosity Indicators3 hits · 4 pts
SeverityFileLineSnippetContext
LOWtest/integration/oauth_flow_test.rb1994 # Step 1: Get consent screenCOMMENT
LOWtest/integration/oauth_flow_test.rb2008 # Step 2: Grant consentCOMMENT
LOWtest/integration/oauth_flow_test.rb2029 # Step 3: Exchange code for tokenCOMMENT
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOWtest/integration/oauth_flow_test.rb1994 # Step 1: Get consent screenCOMMENT
LOWtest/integration/oauth_flow_test.rb2008 # Step 2: Grant consentCOMMENT
LOWtest/integration/oauth_flow_test.rb2029 # Step 3: Exchange code for tokenCOMMENT
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMlib/action_pack/web_authn/public_key_credential.rb3# Represents a WebAuthn public key credential and orchestrates the registrationCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMdb/migrate/20251113163145_ensure_account_id_index.rb78 # a single index, since Triggerable only queries for `subscribed_actions` in conjunction withCOMMENT