Repository Analysis

we-promise/sure

The personal finance app for everyone (by everyone)

7.2 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of we-promise/sure, a Ruby project with 8,997 GitHub stars. SynthScan v2.0 examined 438,615 lines of code across 4004 source files, recording 1586 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 7.2 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

7.2
Adjusted Score
7.2
Raw Score
100%
Time Factor
2026-07-14
Last Push
9.0K
Stars
Ruby
Language
438.6K
Lines of Code
4.0K
Files
1.6K
Pattern Hits
2026-07-14
Scan Date
0.01
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 17HIGH 24MEDIUM 566LOW 979

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1586 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Decorative Section Separators357 hits · 1095 pts
SeverityFileLineSnippetContext
MEDIUMcompose.example.yml1# ===========================================================================COMMENT
MEDIUMcompose.example.yml3# ===========================================================================COMMENT
MEDIUMcompose.example.yml23# ----------------COMMENT
MEDIUMcompose.example.yml30# ----------------------------------------COMMENT
MEDIUMcompose.example.ai.yml1# ===========================================================================COMMENT
MEDIUMcompose.example.ai.yml4# ===========================================================================COMMENT
MEDIUMcompose.example.ai.yml44# ----------------COMMENT
MEDIUMcompose.example.ai.yml51# ----------------------------------------COMMENT
MEDIUMapp/models/budget.rb222 # =============================================================================COMMENT
MEDIUMapp/models/budget.rb224 # =============================================================================COMMENT
MEDIUMapp/models/budget.rb264 # =============================================================================COMMENT
MEDIUMapp/models/budget.rb266 # =============================================================================COMMENT
MEDIUMapp/models/budget.rb285 # =============================================================================COMMENT
MEDIUMapp/models/budget.rb287 # =============================================================================COMMENT
MEDIUMapp/models/qif_import.rb162 # ------------------------------------------------------------------COMMENT
MEDIUMapp/models/qif_import.rb164 # ------------------------------------------------------------------COMMENT
MEDIUMapp/models/qif_import.rb243 # ------------------------------------------------------------------COMMENT
MEDIUMapp/models/qif_import.rb245 # ------------------------------------------------------------------COMMENT
MEDIUMapp/models/qif_import.rb333 # ------------------------------------------------------------------COMMENT
MEDIUMapp/models/qif_import.rb335 # ------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb1231 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb1233 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb1240 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb1242 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb404 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb406 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb865 # -----------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb867 # -----------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb986 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb988 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb1011 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb1013 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb1166 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/demo/generator.rb1168 # ---------------------------------------------------------------------------COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb471 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb473 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb625 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb627 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb70 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb72 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb141 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb143 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb330 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb332 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb398 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb400 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb454 # ================================COMMENT
MEDIUMapp/models/provider/yahoo_finance.rb456 # ================================COMMENT
MEDIUMapp/models/provider/twelve_data.rb60 # ================================COMMENT
MEDIUMapp/models/provider/twelve_data.rb62 # ================================COMMENT
MEDIUMapp/models/provider/twelve_data.rb130 # ================================COMMENT
MEDIUMapp/models/provider/twelve_data.rb132 # ================================COMMENT
MEDIUMapp/models/provider/alpha_vantage.rb89 # ================================COMMENT
MEDIUMapp/models/provider/alpha_vantage.rb91 # ================================COMMENT
MEDIUMapp/models/provider/moex_public.rb80 # ================================COMMENT
MEDIUMapp/models/provider/moex_public.rb82 # ================================COMMENT
MEDIUMapp/models/provider/moex_public.rb180 # ================================COMMENT
MEDIUMapp/models/provider/moex_public.rb182 # ================================COMMENT
MEDIUMapp/models/provider/moex_public.rb205 # ================================COMMENT
MEDIUMapp/models/provider/moex_public.rb207 # ================================COMMENT
297 more matches not shown…
Self-Referential Comments192 hits · 586 pts
SeverityFileLineSnippetContext
MEDIUMcompose.example.yml8# This file is an example Docker Compose configuration for self hostingCOMMENT
MEDIUMcompose.example.ai.yml125 # Create the dirs yourself first so they are owned by your host userCOMMENT
MEDIUMapp/models/recurring_transaction.rb103 # Create a manual recurring transfer from an existing Transfer pair.COMMENT
MEDIUMapp/models/recurring_transaction.rb141 # Create a manual recurring transaction from an existing transactionCOMMENT
MEDIUMapp/models/assistant/function/import_bank_statement.rb132 # Create a CSV from extracted transactionsCOMMENT
MEDIUMapp/models/assistant/function/import_bank_statement.rb135 # Create a TransactionImportCOMMENT
MEDIUM…/models/plaid_account/transactions/category_matcher.rb11# This class is simply a FAST and CHEAP way to match categories that are high confidence.COMMENT
MEDIUMapp/models/family/data_exporter.rb12 # Create a StringIO to hold the zip data in memoryCOMMENT
MEDIUMapp/models/family/up_connectable.rb13 # Create an Up item with the given token and trigger an initial sync.COMMENT
MEDIUMapp/models/provider/configurable.rb125 # Define a custom check for whether this provider is configuredCOMMENT
MEDIUMapp/models/provider/configurable.rb133 # Define a configuration fieldCOMMENT
MEDIUMapp/models/sophtron_entry/processor.rb137 # Create a stable merchant ID from the merchant nameCOMMENT
MEDIUMapp/models/mercury_entry/processor.rb99 # Create a stable merchant ID from the counterparty nameCOMMENT
MEDIUMapp/models/vector_store/base.rb7 # Create a new vector store / collection / namespaceCOMMENT
MEDIUMapp/models/eval/langfuse/client.rb248 # Create a new request with the same properties (needed for retry since request body may be consumed)COMMENT
MEDIUMapp/models/coinbase_account/processor.rb206 # Create the tradeCOMMENT
MEDIUMapp/models/holding/gapfillable.rb22 # Create a new holding based on the previous day's dataCOMMENT
MEDIUMapp/models/lunchflow_entry/processor.rb85 # Create a deterministic hash from key transaction attributesCOMMENT
MEDIUMapp/models/lunchflow_entry/processor.rb142 # Create a stable merchant ID from the merchant nameCOMMENT
MEDIUMapp/models/concerns/enrichable.rb4# This module defines how models should, lock, unlock, and edit attributesCOMMENT
MEDIUMapp/jobs/rule_job.rb18 # Create the RuleRun record first with pending statusCOMMENT
MEDIUMapp/jobs/rule_job.rb70 # Create a failed rule run if we hadn't created one yetCOMMENT
MEDIUMapp/controllers/lunchflow_items_controller.rb185 # Create the internal Account with proper balance initializationCOMMENT
MEDIUMapp/controllers/simplefin_items_controller.rb150 # Create a Sync and enqueue it to run asynchronously with a runtime-only flagCOMMENT
MEDIUMapp/controllers/up_items_controller.rb28 # Create an Up connection and kick off its first sync.COMMENT
MEDIUMapp/controllers/snaptrade_items_controller.rb726 # Create the Sure accountCOMMENT
MEDIUMapp/controllers/plaid_items_controller.rb91 # Create the link via AccountProviderCOMMENT
MEDIUMapp/controllers/oidc_accounts_controller.rb37 # Create the OIDC identity linkCOMMENT
MEDIUMapp/controllers/oidc_accounts_controller.rb156 # Create the OIDC (or other SSO) identityCOMMENT
MEDIUMapp/controllers/enable_banking_items_controller.rb294 # Create the internal Account (uses save! internally, will raise on failure)COMMENT
MEDIUMapp/controllers/mercury_items_controller.rb185 # Create the internal Account with proper balance initializationCOMMENT
MEDIUMapp/controllers/api/v1/test_controller.rb17 # Create a mock resource that belongs to a different familyCOMMENT
MEDIUMapp/controllers/api/v1/tags_controller.rb44 # Create a new tag for the familyCOMMENT
MEDIUMtest/models/coinstats_item_test.rb160 # Create a linked accountCOMMENT
MEDIUMtest/models/coinstats_item_test.rb178 # Create an unlinked accountCOMMENT
MEDIUMtest/models/coinstats_item_test.rb209 # Create a linked accountCOMMENT
MEDIUMtest/models/coinstats_item_test.rb223 # Create an unlinked accountCOMMENT
MEDIUMtest/models/income_statement_test.rb183 # Create a regular transfer between accountsCOMMENT
MEDIUMtest/models/income_statement_test.rb197 # Create a loan payment transactionCOMMENT
MEDIUMtest/models/income_statement_test.rb210 # Create a one-time transactionCOMMENT
MEDIUMtest/models/income_statement_test.rb223 # Create a payment transaction (credit card payment)COMMENT
MEDIUMtest/models/income_statement_test.rb236 # Create an excluded transactionCOMMENT
MEDIUMtest/models/income_statement_test.rb285 # Create a truly empty familyCOMMENT
MEDIUMtest/models/income_statement_test.rb317 # Create a transfer to investment account (marked as investment_contribution)COMMENT
MEDIUMtest/models/income_statement_test.rb366 # Create a Roth IRA (tax-exempt) investment accountCOMMENT
MEDIUMtest/models/income_statement_test.rb374 # Create a dividend transaction in the Roth IRACOMMENT
MEDIUMtest/models/income_statement_test.rb388 # Create a 401k (tax-deferred) investment accountCOMMENT
MEDIUMtest/models/income_statement_test.rb396 # Create a dividend transaction in the 401kCOMMENT
MEDIUMtest/models/income_statement_test.rb410 # Create a taxable brokerage accountCOMMENT
MEDIUMtest/models/income_statement_test.rb418 # Create a dividend transaction in the taxable accountCOMMENT
MEDIUMtest/models/income_statement_test.rb432 # Create a crypto account (default taxable)COMMENT
MEDIUMtest/models/income_statement_test.rb440 # Create a transaction in the crypto accountCOMMENT
MEDIUMtest/models/income_statement_test.rb452 # Create a crypto account in a tax-deferred retirement accountCOMMENT
MEDIUMtest/models/income_statement_test.rb460 # Create a transaction in the tax-deferred crypto accountCOMMENT
MEDIUMtest/models/income_statement_test.rb648 # Create a fresh family with ONLY tax-advantaged accountsCOMMENT
MEDIUMtest/models/income_statement_test.rb656 # Create a 401k account (tax-deferred)COMMENT
MEDIUMtest/models/income_statement_test.rb664 # Create a Roth IRA account (tax-exempt)COMMENT
MEDIUMtest/models/snaptrade_data_helpers_test.rb4 # Create a test class that includes the concernCOMMENT
MEDIUMtest/models/snaptrade_data_helpers_test.rb141 # Create the security before resolve_security canCOMMENT
MEDIUMtest/models/rule_test.rb299 # Create a second accountCOMMENT
132 more matches not shown…
Hyper-Verbose Identifiers424 hits · 440 pts
SeverityFileLineSnippetContext
LOWapp/models/category_import.rb107 def ensure_placeholder_category(name)CODE
LOWapp/models/account.rb200 def create_from_simplefin_account(simplefin_account, account_type, subtype = nil)CODE
LOWapp/models/account.rb249 def create_from_enable_banking_account(enable_banking_account, account_type, subtype = nil)CODE
LOWapp/models/account.rb300 def create_from_coinbase_account(coinbase_account)CODE
LOWapp/models/account.rb325 def create_from_binance_account(binance_account)CODE
LOWapp/models/account.rb355 def create_from_kraken_account(kraken_account)CODE
LOWapp/models/account.rb361 def create_from_crypto_exchange_account(provider_account, family:)CODE
LOWapp/models/account.rb378 def build_simplefin_accountable_attributes(simplefin_account, account_type, subtype)CODE
LOWapp/models/investment_statement.rb278 def convert_to_family_currency(amount, from_currency)CODE
LOWapp/models/market_data_importer.rb102 def get_first_required_price_date(security)CODE
LOWapp/models/market_data_importer.rb109 def get_first_required_exchange_rate_date(from_currency:)CODE
LOWapp/models/rule_import.rb92 def extract_conditions_and_actions(fragments)CODE
LOWapp/models/rule_import.rb112 def create_or_update_rule_from_row(row)CODE
LOWapp/models/rule_import.rb203 def resolve_import_condition_value(condition_data)CODE
LOWapp/models/rule_import.rb234 def resolve_import_action_value(action_data)CODE
LOWapp/models/sure_import.rb63 def dry_run_totals_from_ndjson(content)CODE
LOWapp/models/sure_import.rb67 def dry_run_totals_from_line_type_counts(counts)CODE
LOWapp/models/sure_import.rb73 def expected_record_counts_from_ndjson(content)CODE
LOWapp/models/sure_import.rb77 def expected_record_counts_from_line_type_counts(counts)CODE
LOWapp/models/sure_import.rb295 def build_readback_verification(before_counts:, status_for_mismatch:)CODE
LOWapp/models/sophtron_item.rb74 def import_latest_sophtron_data(sync: nil)CODE
LOWapp/models/sophtron_item.rb274 def persist_remote_sophtron_accounts(accounts)CODE
LOWapp/models/brex_account.rb190 def build_institution_metadata(snapshot, kind)CODE
LOWapp/models/provider_merchant.rb10 def convert_to_family_merchant_for(family, attributes = {})CODE
LOWapp/models/snaptrade_item.rb52 def import_latest_snaptrade_data(sync: nil)CODE
LOWapp/models/indexa_capital_item.rb52 def import_latest_indexa_capital_data(sync: nil)CODE
LOWapp/models/family.rb149 def secondary_enabled_currency_objects(extra: [])CODE
LOWapp/models/family.rb190 def auto_share_existing_accounts_with(user)CODE
LOWapp/models/family.rb270 def auto_categorize_transactions_later(transactions, rule_run_id: nil)CODE
LOWapp/models/family.rb274 def auto_categorize_transactions(transaction_ids)CODE
LOWapp/models/family.rb278 def auto_detect_transaction_merchants_later(transactions, rule_run_id: nil)CODE
LOWapp/models/family.rb282 def auto_detect_transaction_merchants(transaction_ids)CODE
LOWapp/models/family.rb394 def securities_with_plan_restrictions(provider:)CODE
LOWapp/models/questrade_account.rb142 def extract_institution_metadata(data)CODE
LOWapp/models/enable_banking_item.rb402 def import_accounts_from_session(accounts_data)CODE
LOWapp/models/valuation.rb11 def build_reconciliation_name(accountable_type)CODE
LOWapp/models/valuation.rb15 def build_opening_anchor_name(accountable_type)CODE
LOWapp/models/valuation.rb19 def build_current_anchor_name(accountable_type)CODE
LOWapp/models/chat.rb176 def undelivered_error_payload(assistant_message)CODE
LOWapp/models/investment.rb131 def subtypes_grouped_for_select(currency: nil)CODE
LOWapp/models/account_statement.rb126 def reconciliation_statuses_for(statements, account:)CODE
LOWapp/models/account_statement.rb167 def allowed_content_types_for_filename(filename)CODE
LOWapp/models/trade_import.rb81 def investment_activity_label_for(qty)CODE
LOWapp/models/transaction.rb169 def set_preloaded_activity_security(security)CODE
LOWapp/models/transaction.rb333 def pending_duplicate_candidates(limit: 20, offset: 0)CODE
LOWapp/models/budget.rb75 def latest_valid_budget_start_date(family)CODE
LOWapp/models/budget.rb233 def budget_category_actual_spending(budget_category)CODE
LOWapp/models/budget.rb240 def category_median_monthly_expense(category)CODE
LOWapp/models/budget.rb244 def category_avg_monthly_expense(category)CODE
LOWapp/models/questrade_item.rb45 def import_latest_questrade_data(sync: nil)CODE
LOWapp/models/qif_import.rb379 def investment_activity_label_for(action)CODE
LOWapp/models/provider.rb47 def default_error_transformer(error)CODE
LOWapp/models/simplefin_item.rb48 def import_latest_simplefin_data(sync: nil)CODE
LOWapp/models/user.rb115 def request_impersonation_for(user_id)CODE
LOWapp/models/user.rb327 def update_dashboard_preferences(prefs)CODE
LOWapp/models/user.rb358 def update_reports_preferences(prefs)CODE
LOWapp/models/user.rb398 def update_transactions_preferences(prefs)CODE
LOWapp/models/recurring_transaction.rb346 def calculate_next_expected_date(from_date = last_occurrence_date)CODE
LOWapp/models/demo/generator.rb901 def generate_credit_card_charges(account, base_date, count)CODE
LOWapp/models/assistant/responder.rb49 def handle_follow_up_response(response)CODE
364 more matches not shown…
Over-Commented Block281 hits · 239 pts
SeverityFileLineSnippetContext
LOWpipelock.example.yaml1# Pipelock configuration for Docker ComposeCOMMENT
LOWpipelock.example.yaml101# Flight recorder (pipelock 2.7+): signed, hash-chained action receipts.COMMENT
LOWcompose.example.yml1# ===========================================================================COMMENT
LOWcompose.example.yml21#COMMENT
LOWcompose.example.ai.yml1# ===========================================================================COMMENT
LOWcompose.example.ai.yml21# on web port 3000 (auth token required); Pipelock adds scanningCOMMENT
LOWcompose.example.ai.yml41# https://github.com/we-promise/sure/blob/main/docs/hosting/docker.mdCOMMENT
LOWcompose.example.ai.yml121 - ./pipelock.example.yaml:/etc/pipelock/pipelock.yaml:roCOMMENT
LOWapp/models/snaptrade_account.rb61 # Expected JSON structure:COMMENT
LOWapp/models/account.rb101 # Writer for subtype that delegates to the accountable, allowing forms to setCOMMENT
LOWapp/models/account.rb421 # Default GoalPledge kind for this account. Manual accounts getCOMMENT
LOWapp/models/sophtron_item.rb1# Represents a Sophtron integration item for a family.COMMENT
LOWapp/models/sophtron_item.rb61COMMENT
LOWapp/models/entry.rb301 # @return [Boolean] true if entry should be skipped during provider syncCOMMENT
LOWapp/models/entry.rb441 endCOMMENT
LOWapp/models/sophtron_account.rb1# Represents a single bank account from Sophtron.COMMENT
LOWapp/models/family.rb181 # owns) with the given user, honoring the family's default sharing policy andCOMMENT
LOWapp/models/goal_pledge.rb41 #COMMENT
LOWapp/models/auth_config.rb21 endCOMMENT
LOWapp/models/simplefin_item.rb201 endCOMMENT
LOWapp/models/demo/generator.rb1require "securerandom"COMMENT
LOWapp/models/demo/generator.rb1301 return if depository_accounts.empty?COMMENT
LOWapp/models/sophtron_item/unlinking.rb1# frozen_string_literal: trueCOMMENT
LOWapp/models/sophtron_item/importer.rb1require "set"COMMENT
LOWapp/models/sophtron_item/importer.rb21 # Initializes a new importer.COMMENT
LOWapp/models/sophtron_item/importer.rb41 #COMMENT
LOWapp/models/sophtron_item/importer.rb261 # 1. Determines the appropriate sync start dateCOMMENT
LOWapp/models/sophtron_item/syncer.rb1# Orchestrates the complete sync process for a SophtronItem.COMMENT
LOWapp/models/sophtron_item/syncer.rb21 @sophtron_item = sophtron_itemCOMMENT
LOW…/models/plaid_account/transactions/category_matcher.rb1# The purpose of this matcher is to auto-match Plaid categories toCOMMENT
LOW…/models/plaid_account/investments/security_resolver.rb61 plaid_security_id: plaid_security_idCOMMENT
LOWapp/models/kraken_account/ledger_processor.rb1# frozen_string_literal: trueCOMMENT
LOW…/simplefin_account/liabilities/overpayment_analyzer.rb1# frozen_string_literal: trueCOMMENT
LOW…ls/simplefin_account/investments/holdings_processor.rb121 return [ parse_decimal(raw), key ]COMMENT
LOW…implefin_account/investments/transactions_processor.rb1# SimpleFin Investment transactions processorCOMMENT
LOWapp/models/security/health_checker.rb1# There are hundreds of thousands of market securities that Sure must handle.COMMENT
LOWapp/models/coinstats_account/transactions/processor.rb121 Array(tx[:transactions]).flat_map { |entry| Array(entry.with_indifferent_access[:items]) } +COMMENT
LOWapp/models/provider/base.rb1# Base class for all provider adaptersCOMMENT
LOWapp/models/provider/base.rb41 # Returns provider connection configurationsCOMMENT
LOWapp/models/provider/plaid_adapter.rb1# PlaidAdapter serves dual purposes:COMMENT
LOWapp/models/provider/rate_limitable.rb1# Shared concern for providers that need interval-based request throttlingCOMMENT
LOWapp/models/provider/moex_public.rb1# Moscow Exchange (MOEX) market-data provider built on the free, keyless ISSCOMMENT
LOWapp/models/provider/frankfurter.rb1# Frankfurter (https://frankfurter.dev), a free, keyless, open-source FX ratesCOMMENT
LOWapp/models/provider/plaid_eu_adapter.rb1# PlaidEuAdapter is a configuration-only manager for Plaid EU credentials.COMMENT
LOWapp/models/provider/configurable.rb1# Module for providers to declare their configuration requirementsCOMMENT
LOWapp/models/provider/configurable.rb21#COMMENT
LOWapp/models/provider/configurable.rb121 def description(text)COMMENT
LOWapp/models/provider/questrade.rb1# frozen_string_literal: trueCOMMENT
LOWapp/models/provider/tinkoff_invest.rb1# T-Bank (Tinkoff) Invest API securities provider, built on the token-based RESTCOMMENT
LOWapp/models/balance/base_calculator.rb21 #COMMENT
LOWapp/models/sophtron_entry/processor.rb1require "digest/md5"COMMENT
LOWapp/models/sophtron_entry/processor.rb21COMMENT
LOWapp/models/sophtron_entry/processor.rb121 # Extracts optional notes/description from the transaction.COMMENT
LOWapp/models/vector_store/base.rb21 # @param store_id [String]COMMENT
LOWapp/models/vector_store/pgvector.rb1# Adapter that stores embeddings locally in PostgreSQL using the pgvector extension.COMMENT
LOWapp/models/vector_store/qdrant.rb1# Adapter for Qdrant — a dedicated open-source vector database.COMMENT
LOWapp/models/ibkr_account/historical_balances_sync.rb81 # IBKR does not emit rows for weekends and some holidays. The reverseCOMMENT
LOWapp/models/ibkr_account/historical_balances_sync.rb121 start_non_cash_balance = previous_row ? previous_row[:non_cash] : row[:non_cash]COMMENT
LOWapp/models/coinstats_entry/processor.rb1# Processes a single CoinStats transaction into a local Transaction record.COMMENT
LOWapp/models/enable_banking_account/processor.rb41COMMENT
221 more matches not shown…
Hallucination Indicators17 hits · 185 pts
SeverityFileLineSnippetContext
CRITICALapp/models/goal.rb588 "#{symbol}#{amount_f.round.to_i.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\1,').reverse}"CODE
CRITICALapp/models/provider/kraken_adapter.rb16 kraken_items = family.kraken_items.active.credentials_configured.ordered.select(&:credentials_configured?)CODE
CRITICALapp/models/provider/kraken_adapter.rb97 credentialed_items = family.kraken_items.active.credentials_configured.ordered.select(&:credentials_configured?)CODE
CRITICALapp/controllers/categories_controller.rb108 Current.family.categories.alphabetically.roots.where.not(id: @category.id)CODE
CRITICALapp/controllers/brex_items_controller.rb61 @brex_items = Current.family.brex_items.active.ordered.includes(:syncs, :brex_accounts)CODE
CRITICALapp/controllers/wise_items_controller.rb270 @wise_items = Current.family.wise_items.active.ordered.includes(:syncs, :wise_accounts)CODE
CRITICALapp/controllers/pages_controller.rb49 @feed_insights = Current.family.insights.visible.ordered.limit(3)CODE
CRITICALapp/controllers/kraken_items_controller.rb193 credentialed_items = Current.family.kraken_items.active.credentials_configured.ordered.select(&:credentials_configCODE
CRITICALapp/controllers/mercury_items_controller.rb415 @mercury_items = Current.family.mercury_items.active.ordered.includes(:syncs, :mercury_accounts)CODE
CRITICALapp/controllers/mercury_items_controller.rb454 @mercury_items = Current.family.mercury_items.active.ordered.includes(:syncs, :mercury_accounts)CODE
CRITICALapp/controllers/mercury_items_controller.rb753 Current.family.mercury_items.active.ordered.select(&:credentials_configured?)CODE
CRITICALapp/controllers/settings/providers_controller.rb242 @wise_items = Current.family.wise_items.active.ordered.includes(:syncs, :wise_accounts)CODE
CRITICALapp/controllers/settings/providers_controller.rb244 @mercury_items = Current.family.mercury_items.active.ordered.includes(:syncs, :mercury_accounts)CODE
CRITICALapp/controllers/settings/providers_controller.rb246 @brex_items = Current.family.brex_items.active.ordered.includes(:syncs, :brex_accounts)CODE
CRITICALapp/controllers/settings/providers_controller.rb292 @questrade_items = Current.family.questrade_items.active.ordered.select(:id)CODE
CRITICALapp/controllers/settings/api_keys_controller.rb9 @api_keys = Current.user.api_keys.active.visible.order(created_at: :desc)CODE
CRITICALapp/controllers/settings/api_keys_controller.rb57 @api_key = Current.user.api_keys.active.visible.find(params[:id])CODE
Redundant / Tautological Comments109 hits · 165 pts
SeverityFileLineSnippetContext
LOWapp/models/sso_provider_tester.rb66 # Check if issuer matches exactly. OIDC discovery requires the configuredCOMMENT
LOWapp/models/llm_usage.rb160 # Check if this usage record represents a failed API callCOMMENT
LOWapp/models/oidc_identity.rb69 # Check if user is in any of the mapped groupsCOMMENT
LOWapp/models/enable_banking_account.rb30 # Check if account_id looks like a valid UUID (not an identification_hash)COMMENT
LOWapp/models/setting.rb216 # Check if it's a declared field firstCOMMENT
LOWapp/models/setting.rb245 # Check if a dynamic field exists (useful to distinguish nil value vs missing key)COMMENT
LOWapp/models/setting.rb250 # Check if dynamic entry existsCOMMENT
LOWapp/models/holding.rb102 # Check if this holding's cost_basis can be overwritten by the given sourceCOMMENT
LOWapp/models/holding.rb134 # Check if this holding's security can be changed by provider syncCOMMENT
LOWapp/models/holding.rb139 # Check if user has remapped this holding to a different securityCOMMENT
LOWapp/models/holding.rb246 # Check if cost_basis is known (has a source and positive value)COMMENT
LOWapp/models/simplefin_item.rb173 # Check if linked via legacy FK (use to_s for UUID comparison safety)COMMENT
LOWapp/models/simplefin_item.rb179 # Check if linked via AccountProviderCOMMENT
LOWapp/models/simplefin_item.rb369 # Check if last sync was more than 3 days agoCOMMENT
LOWapp/models/simplefin_item.rb379 # Check if linked accounts have recent transactionsCOMMENT
LOWapp/models/simplefin_item.rb402 # Check if the SimpleFin connection needs user attentionCOMMENT
LOWapp/models/user.rb188 # Check if user has a local password set (can authenticate locally)COMMENT
LOWapp/models/recurring_transaction.rb285 # Check if this recurring transaction has amount variance configuredCOMMENT
LOWapp/models/recurring_transaction.rb290 # Check if this recurring transaction should be marked inactiveCOMMENT
LOWapp/models/mercury_item/importer.rb284 # Check if this account has any stored transactionsCOMMENT
LOWapp/models/recurring_transaction/identifier.rb41 # Check if the last occurrence was within the last 45 daysCOMMENT
LOWapp/models/recurring_transaction/identifier.rb45 # Check if transactions occur on similar days (within 5 days of each other)COMMENT
LOWapp/models/recurring_transaction/identifier.rb259 # Check if days cluster together (within ~5 days variance)COMMENT
LOWapp/models/provider/openai.rb209 # Check if the specified model supports vision/PDF inputCOMMENT
LOWapp/models/provider/factory.rb59 # Check if a provider type has a registered adapterCOMMENT
LOWapp/models/provider/factory.rb82 # Check if any provider supports a given account typeCOMMENT
LOWapp/models/provider/syncable.rb18 # Check if the item is currently syncingCOMMENT
LOWapp/models/provider/syncable.rb30 # Check if the item requires an update (e.g., re-authentication)COMMENT
LOWapp/models/provider/configurable.rb77 # Check if provider is configured (all required fields present)COMMENT
LOWapp/models/provider/configurable.rb162 # Check if provider is properly configuredCOMMENT
LOWapp/models/provider/configurable.rb225 # Check if this field has a valueCOMMENT
LOWapp/models/provider/openai/auto_categorizer.rb304 # Check if one contains the otherCOMMENT
LOWapp/models/provider/openai/auto_categorizer.rb445 # Check if there's content after the thinking blockCOMMENT
LOWapp/models/provider/openai/bank_statement_extractor.rb152 # Check if we've seen this exact transaction in a different chunkCOMMENT
LOWapp/models/provider/openai/auto_merchant_detector.rb196 # Check if too many nulls OR missing results were returnedCOMMENT
LOWapp/models/rule/condition_filter/transaction_details.rb18 # Check if extra field is empty or nullCOMMENT
LOWapp/models/snaptrade_item/provided.rb48 # Check if user is registered with SnapTradeCOMMENT
LOWapp/models/snaptrade_item/provided.rb92 # Check if user already exists (shouldn't happen with timestamp suffix, but handle gracefully)COMMENT
LOWapp/models/lunchflow_item/importer.rb376 # Check if holdings are not supported (501 response)COMMENT
LOWapp/models/lunchflow_item/importer.rb401 # Check if this account has any stored transactionsCOMMENT
LOWapp/models/eval/sample.rb77 # Check if null is expectedCOMMENT
LOWapp/models/eval/metrics/chat_metrics.rb102 # Check if this specific function was called correctlyCOMMENT
LOWapp/models/eval/runners/categorization_runner.rb167 # Check if actual matches any acceptable category (primary or alternatives)COMMENT
LOWapp/models/eval/runners/categorization_runner.rb175 # Check if actual matches parent of expected categoryCOMMENT
LOWapp/models/account/linkable.rb67 # Check if account is linked to a specific providerCOMMENT
LOWapp/models/account/linkable.rb72 # Check if holdings can be deletedCOMMENT
LOWapp/models/account/provider_import_adapter.rb89 # Check if duplicate is protected - if so, link but don't modifyCOMMENT
LOWapp/models/coinbase_account/processor.rb190 # Check if trade already exists by external_idCOMMENT
LOWapp/models/lunchflow_entry/processor.rb90 # Check if entry with this external_id already existsCOMMENT
LOWapp/models/lunchflow_entry/processor.rb127 # Check if an entry with this external_id already exists in the accountCOMMENT
LOWapp/models/lunchflow_entry/processor.rb221 # Check if this transaction is marked as pendingCOMMENT
LOWapp/models/concerns/enrichable.rb99 # Check if any virtual attributes changed by comparing current value with what we setCOMMENT
LOWapp/models/concerns/currency_normalizable.rb53 # Check if a currency code is valid in the Money gemCOMMENT
LOWapp/jobs/snaptrade_connection_cleanup_job.rb26 # Check if other accounts still use this authorizationCOMMENT
LOWapp/jobs/indexa_capital_connection_cleanup_job.rb15 # Check if other accounts still use this connectionCOMMENT
LOWapp/jobs/identify_recurring_transactions_job.rb13 # Check if this job is stale (a newer one was scheduled)COMMENT
LOWapp/jobs/identify_recurring_transactions_job.rb17 # Check if there are still incomplete syncs - if so, skip and let the last sync trigger itCOMMENT
LOWapp/controllers/lunchflow_items_controller.rb16 # Check if family has credentialsCOMMENT
LOWapp/controllers/lunchflow_items_controller.rb24 # Check if already cachedCOMMENT
LOWapp/controllers/lunchflow_items_controller.rb61 # Check if family has Lunchflow credentials configuredCOMMENT
49 more matches not shown…
Magic Placeholder Names24 hits · 120 pts
SeverityFileLineSnippetContext
HIGHconfig/locales/views/settings/api_keys/nb.yml65 your_api_key: "Din API-nøkkel"CODE
HIGHconfig/locales/views/settings/api_keys/ca.yml36 your_api_key: La teva clau APICODE
HIGHconfig/locales/views/settings/api_keys/ca.yml118 your_api_key: La teva clau APICODE
HIGHconfig/locales/views/settings/api_keys/pt-BR.yml66 your_api_key: "Sua Chave de API"CODE
HIGHconfig/locales/views/settings/api_keys/es.yml66 your_api_key: "Tu Clave API"CODE
HIGHconfig/locales/views/settings/api_keys/hu.yml38 your_api_key: "Az API-kulcsod"CODE
HIGHconfig/locales/views/settings/api_keys/hu.yml98 your_api_key: "Az API-kulcsod"CODE
HIGHconfig/locales/views/settings/api_keys/ro.yml66 your_api_key: "Cheia ta API"CODE
HIGHconfig/locales/views/settings/api_keys/de.yml66 your_api_key: Dein API-SchlüsselCODE
HIGHconfig/locales/views/settings/api_keys/pl.yml66 your_api_key: Twój klucz APICODE
HIGHconfig/locales/views/settings/api_keys/en.yml35 your_api_key: "Your API Key"CODE
HIGHconfig/locales/views/settings/api_keys/ru.yml35 your_api_key: Ваш API-ключCODE
HIGHconfig/locales/views/settings/api_keys/ru.yml133 your_api_key: Ваш API-ключCODE
HIGHconfig/locales/views/settings/api_keys/fr.yml30 your_api_key: Votre clé APICODE
HIGHconfig/locales/views/settings/api_keys/fr.yml111 your_api_key: Votre clé APICODE
HIGHconfig/locales/views/settings/api_keys/zh-TW.yml66 your_api_key: "您的 API 金鑰"CODE
HIGHconfig/locales/views/settings/api_keys/tr.yml65 your_api_key: "API Anahtarınız"CODE
HIGHconfig/locales/views/settings/api_keys/vi.yml38 your_api_key: "Khóa API của bạn"CODE
HIGHconfig/locales/views/settings/api_keys/vi.yml98 your_api_key: "Khóa API của bạn"CODE
HIGHconfig/locales/views/settings/api_keys/zh-CN.yml31 your_api_key: 您的 API 密钥CODE
HIGHconfig/locales/views/settings/api_keys/zh-CN.yml91 your_api_key: 您的 API 密钥CODE
HIGHconfig/locales/views/settings/api_keys/nl.yml66 your_api_key: "Uw API Key"CODE
HIGHdocs/hosting/ai.md1200QDRANT_API_KEY=your-api-key # Optional, for authenticated instancesCODE
HIGHdocs/llm-guides/adding-a-securities-provider.md402provider = Provider::YourProvider.new("your_api_key")CODE
Structural Annotation Overuse63 hits · 112 pts
SeverityFileLineSnippetContext
LOWapp/data_migrations/balance_component_migrator.rb4 # Step 1: Update flows factorCOMMENT
LOWapp/data_migrations/balance_component_migrator.rb12 # Step 2: Set start values using LOCF (Last Observation Carried Forward)COMMENT
LOWapp/data_migrations/balance_component_migrator.rb33 # Step 3: Calculate net inflowsCOMMENT
LOWapp/models/mercury_item/importer.rb12 # Step 1: Fetch all accounts from MercuryCOMMENT
LOWapp/models/mercury_item/importer.rb27 # Step 2: Update linked accounts and create records for new accounts from APICOMMENT
LOWapp/models/mercury_item/importer.rb81 # Step 3: Fetch transactions only for linked accounts with active statusCOMMENT
LOWapp/models/sophtron_item/importer.rb74 # Step 1: Fetch all accounts from SophtronCOMMENT
LOWapp/models/sophtron_item/importer.rb89 # Step 2: Update linked accounts and create records for new accounts from APICOMMENT
LOWapp/models/sophtron_item/importer.rb138 # Step 3: Fetch transactions only for linked accounts with active statusCOMMENT
LOWapp/models/provider/yahoo_finance.rb636 # Step 1: Get cookie from Yahoo FinanceCOMMENT
LOWapp/models/provider/yahoo_finance.rb643 # Step 2: Get crumb using the cookieCOMMENT
LOWapp/models/snaptrade_item/importer.rb31 # Step 1: Fetch and store all accountsCOMMENT
LOWapp/models/snaptrade_item/importer.rb34 # Step 2: For LINKED accounts only, fetch holdings and activitiesCOMMENT
LOWapp/models/questrade_item/importer.rb32 # Step 1: Fetch and store all accountsCOMMENT
LOWapp/models/questrade_item/importer.rb35 # Step 2: For LINKED accounts only, fetch dataCOMMENT
LOWapp/models/lunchflow_item/importer.rb14 # Step 1: Fetch all accounts from LunchflowCOMMENT
LOWapp/models/lunchflow_item/importer.rb29 # Step 2: Update linked accounts and create records for new accounts from APICOMMENT
LOWapp/models/lunchflow_item/importer.rb80 # Step 3: Fetch transactions only for linked accounts with active statusCOMMENT
LOWapp/models/provider_merchant/enhancer.rb32 # Step 1: Update the provider merchant with website + logoCOMMENT
LOWapp/models/provider_merchant/enhancer.rb38 # Step 2: Deduplicate — find other merchants with the same website_urlCOMMENT
LOWapp/models/indexa_capital_item/importer.rb24 # Step 1: Fetch and store all accountsCOMMENT
LOWapp/models/indexa_capital_item/importer.rb27 # Step 2: For LINKED accounts only, fetch holdings dataCOMMENT
LOWapp/models/simplefin_item/importer.rb521 # Step 2: Fetch transactions/holdings using the regular window.COMMENT
LOWapp/jobs/simplefin_connection_update_job.rb17 # Step 1: Claim the new token and update the existing item's access_url.COMMENT
LOWapp/jobs/simplefin_connection_update_job.rb21 # Step 2: Sync the item to import fresh data.COMMENT
LOWapp/controllers/wise_items_controller.rb19 # Step 1: Validate token and fetch profiles, then proceed to profile selection.COMMENT
LOWapp/controllers/wise_items_controller.rb51 # Step 2: Show profile selection.COMMENT
LOWapp/controllers/wise_items_controller.rb62 # Step 3: Create one WiseItem per selected profile.COMMENT
LOWtest/models/balance/forward_calculator_test.rb747 # Step 1: Create account with a EUR entry and a stale exchange rate (1:1 EUR→USD).COMMENT
LOWtest/models/balance/forward_calculator_test.rb765 # Step 2: Corrected exchange rate arrives later (e.g. daily cron imports it).COMMENT
LOWtest/models/balance/forward_calculator_test.rb768 # Step 3: Next sync requests incremental from today — but the guard shouldCOMMENT
LOWtest/system/property_test.rb76 # Step 2: Enter balance informationCOMMENT
LOWtest/system/property_test.rb81 # Step 3: Enter address informationCOMMENT
LOWtest/system/accounts_test.rb26 # Step 1: Select property type and enter basic detailsCOMMENT
LOWtest/system/accounts_test.rb37 # Step 2: Enter balance informationCOMMENT
LOWtest/system/accounts_test.rb42 # Step 3: Enter address informationCOMMENT
LOWdocs/hosting/docker.md9### Step 1: Install DockerCOMMENT
LOWdocs/hosting/docker.md22### Step 2: Configure your Docker Compose file and environmentCOMMENT
LOWdocs/hosting/docker.md162### Step 4: Run the appCOMMENT
LOWdocs/hosting/docker.md176### Step 5: Create your accountCOMMENT
LOWdocs/hosting/docker.md193### Step 6: Run the app in the backgroundCOMMENT
LOWdocs/hosting/docker.md207### Step 7: Enjoy!COMMENT
LOWdocs/hosting/hetzner.md14## Step 1: Server Setup and SecurityCOMMENT
LOWdocs/hosting/hetzner.md53## Step 2: Create Application DirectoryCOMMENT
LOWdocs/hosting/hetzner.md64## Step 3: Configure Environment VariablesCOMMENT
LOWdocs/hosting/hetzner.md93## Step 4: Set Up Reverse Proxy with SSLCOMMENT
LOWdocs/hosting/hetzner.md140## Step 5: Deploy the ApplicationCOMMENT
LOWdocs/hosting/hetzner.md161## Step 6: Test the DeploymentCOMMENT
LOWdocs/hosting/hetzner.md189## Step 7: Set Up Automated BackupsCOMMENT
LOWdocs/hosting/hetzner.md234## Step 8: Set Up Basic MonitoringCOMMENT
LOWdocs/llm-guides/adding-a-securities-provider.md29## Step 1: Create the Provider ClassCOMMENT
LOWdocs/llm-guides/adding-a-securities-provider.md271## Step 2: Register in the Provider RegistryCOMMENT
LOWdocs/llm-guides/adding-a-securities-provider.md307## Step 3: Add SettingsCOMMENT
LOWdocs/llm-guides/adding-a-securities-provider.md331## Step 4: Add to the Settings UICOMMENT
LOWdocs/llm-guides/adding-a-securities-provider.md353## Step 5: Add TranslationsCOMMENT
LOWdocs/llm-guides/adding-a-securities-provider.md396## Step 6: TestCOMMENT
LOWmobile/docs/SIGNING_SETUP.md7### Step 1: Get Keystore Base64 EncodingCOMMENT
LOWmobile/docs/SIGNING_SETUP.md16### Step 2: Add Secrets on GitHubCOMMENT
LOWmobile/docs/SIGNING_SETUP.md31### Step 3: Verify SetupCOMMENT
LOWmobile/lib/services/sync_service.dart543 // Step 1: Process pending deletes (do this first to free up resources)COMMENT
3 more matches not shown…
Verbosity Indicators41 hits · 80 pts
SeverityFileLineSnippetContext
LOWapp/data_migrations/balance_component_migrator.rb4 # Step 1: Update flows factorCOMMENT
LOWapp/data_migrations/balance_component_migrator.rb12 # Step 2: Set start values using LOCF (Last Observation Carried Forward)COMMENT
LOWapp/data_migrations/balance_component_migrator.rb33 # Step 3: Calculate net inflowsCOMMENT
LOWapp/models/mercury_item/importer.rb12 # Step 1: Fetch all accounts from MercuryCOMMENT
LOWapp/models/mercury_item/importer.rb27 # Step 2: Update linked accounts and create records for new accounts from APICOMMENT
LOWapp/models/mercury_item/importer.rb81 # Step 3: Fetch transactions only for linked accounts with active statusCOMMENT
LOWapp/models/sophtron_item/importer.rb74 # Step 1: Fetch all accounts from SophtronCOMMENT
LOWapp/models/sophtron_item/importer.rb89 # Step 2: Update linked accounts and create records for new accounts from APICOMMENT
LOWapp/models/sophtron_item/importer.rb138 # Step 3: Fetch transactions only for linked accounts with active statusCOMMENT
LOWapp/models/provider/yahoo_finance.rb636 # Step 1: Get cookie from Yahoo FinanceCOMMENT
LOWapp/models/provider/yahoo_finance.rb643 # Step 2: Get crumb using the cookieCOMMENT
LOWapp/models/snaptrade_item/importer.rb31 # Step 1: Fetch and store all accountsCOMMENT
LOWapp/models/snaptrade_item/importer.rb34 # Step 2: For LINKED accounts only, fetch holdings and activitiesCOMMENT
LOWapp/models/questrade_item/importer.rb32 # Step 1: Fetch and store all accountsCOMMENT
LOWapp/models/questrade_item/importer.rb35 # Step 2: For LINKED accounts only, fetch dataCOMMENT
LOWapp/models/lunchflow_item/importer.rb14 # Step 1: Fetch all accounts from LunchflowCOMMENT
LOWapp/models/lunchflow_item/importer.rb29 # Step 2: Update linked accounts and create records for new accounts from APICOMMENT
LOWapp/models/lunchflow_item/importer.rb80 # Step 3: Fetch transactions only for linked accounts with active statusCOMMENT
LOWapp/models/provider_merchant/enhancer.rb32 # Step 1: Update the provider merchant with website + logoCOMMENT
LOWapp/models/provider_merchant/enhancer.rb38 # Step 2: Deduplicate — find other merchants with the same website_urlCOMMENT
LOWapp/models/indexa_capital_item/importer.rb24 # Step 1: Fetch and store all accountsCOMMENT
LOWapp/models/indexa_capital_item/importer.rb27 # Step 2: For LINKED accounts only, fetch holdings dataCOMMENT
LOWapp/models/concerns/enrichable.rb95 # So we need to check if the value actually changed by comparing before/afterCOMMENT
LOWapp/models/simplefin_item/importer.rb521 # Step 2: Fetch transactions/holdings using the regular window.COMMENT
LOWapp/jobs/simplefin_connection_update_job.rb17 # Step 1: Claim the new token and update the existing item's access_url.COMMENT
LOWapp/jobs/simplefin_connection_update_job.rb21 # Step 2: Sync the item to import fresh data.COMMENT
LOWapp/controllers/wise_items_controller.rb19 # Step 1: Validate token and fetch profiles, then proceed to profile selection.COMMENT
LOWapp/controllers/wise_items_controller.rb51 # Step 2: Show profile selection.COMMENT
LOWapp/controllers/wise_items_controller.rb62 # Step 3: Create one WiseItem per selected profile.COMMENT
LOWtest/models/balance/forward_calculator_test.rb747 # Step 1: Create account with a EUR entry and a stale exchange rate (1:1 EUR→USD).COMMENT
LOWtest/models/balance/forward_calculator_test.rb765 # Step 2: Corrected exchange rate arrives later (e.g. daily cron imports it).COMMENT
LOWtest/models/balance/forward_calculator_test.rb768 # Step 3: Next sync requests incremental from today — but the guard shouldCOMMENT
LOWtest/system/property_test.rb76 # Step 2: Enter balance informationCOMMENT
LOWtest/system/property_test.rb81 # Step 3: Enter address informationCOMMENT
LOWtest/system/accounts_test.rb26 # Step 1: Select property type and enter basic detailsCOMMENT
LOWtest/system/accounts_test.rb37 # Step 2: Enter balance informationCOMMENT
LOWtest/system/accounts_test.rb42 # Step 3: Enter address informationCOMMENT
LOWmobile/lib/services/sync_service.dart543 // Step 1: Process pending deletes (do this first to free up resources)COMMENT
LOWmobile/lib/services/sync_service.dart549 // Step 2: Upload pending transactionsCOMMENT
LOWmobile/lib/services/sync_service.dart555 // Step 3: Download transactions from serverCOMMENT
LOWmobile/lib/services/sync_service.dart561 // Step 4: Sync accountsCOMMENT
Fake / Example Data44 hits · 50 pts
SeverityFileLineSnippetContext
LOWapp/models/demo/generator.rb43 create_family_and_users!("Demo Family", "user@example.com", onboarded: true, subscribed: true)CODE
LOWapp/models/demo/generator.rb58 create_family_and_users!("Demo Family", "user@example.com", onboarded: false, subscribed: false)CODE
LOWapp/models/demo/generator.rb87 def generate_default_data!(skip_clear: false, email: "user@example.com")CODE
LOWapp/models/account/provider_import_adapter.rb332 # This handles case variations in merchant names (e.g., "ACME Corp" vs "Acme Corp")COMMENT
LOWtest/models/indexa_capital_item_test.rb37 username: "user@example.com", document: "12345678A", password: "secret"CODE
LOWtest/models/address_test.rb6 line1: "123 Main St",CODE
LOWtest/models/address_test.rb18 line1: "123 Main St",CODE
LOWtest/models/user_test.rb53 user = User.new(email: "user@example.com")CODE
LOWtest/models/user_test.rb54 assert_equal "user@example.com", user.display_nameCODE
LOWtest/models/user_test.rb62 user = User.new(email: "user@example.com")CODE
LOWtest/models/provider/anthropic_test.rb70 Setting.stubs(:anthropic_access_token).returns("fake-token-1")CODE
LOWtest/models/provider/anthropic_test.rb74 ClimateControl.modify("ANTHROPIC_API_KEY" => "fake-token-2") doCODE
LOWtest/models/provider/indexa_capital_test.rb13 username: "user@example.com",CODE
LOWtest/models/provider/indexa_capital_test.rb28 Provider::IndexaCapital.new(username: "user@example.com")CODE
LOWtest/models/provider/indexa_capital_test.rb32 Provider::IndexaCapital.new(username: "user@example.com", document: "12345678A")CODE
LOW…ls/provider/anthropic/bank_statement_extractor_test.rb16 "account_holder" => "Jane Doe",CODE
LOW…ls/provider/anthropic/bank_statement_extractor_test.rb37 assert_equal "Jane Doe", result[:account_holder]CODE
LOW…odels/provider/openai/bank_statement_extractor_test.rb15 "account_holder" => "John Doe",CODE
LOW…odels/provider/openai/bank_statement_extractor_test.rb46 assert_equal "John Doe", result[:account_holder]CODE
LOW…odels/provider/openai/bank_statement_extractor_test.rb89 "account_holder" => "John Doe",CODE
LOWtest/models/mercury_entry/processor_test.rb58 process(tx(counterparty_name: "Acme Corp"))CODE
LOWtest/models/mercury_entry/processor_test.rb59 assert_equal "Acme Corp", @account.entries.last.nameCODE
LOWtest/models/questrade_account/processor_test.rb8 @questrade_item = @family.questrade_items.create!(name: "Test", refresh_token: "dummy-token")CODE
LOWtest/system/property_test.rb83 fill_in "Address Line 1", with: "123 Main St"CODE
LOWtest/system/property_test.rb97 assert_equal "123 Main St", created_account.property.address.line1CODE
LOWtest/system/accounts_test.rb44 fill_in "Address Line 1", with: "123 Main St"CODE
LOWtest/system/accounts_test.rb58 assert_equal "123 Main St", created_account.property.address.line1CODE
LOWtest/vcr_cassettes/stripe/checkout_session.yml117 "email": "user@example.com",CODE
LOWtest/vcr_cassettes/stripe/checkout_session.yml123 "customer_email": "user@example.com",CODE
LOWconfig/locales/views/properties/en.yml30 address_line1_placeholder: "123 Main Street"CODE
LOWconfig/locales/views/properties/vi.yml30 address_line1_placeholder: "123 Main Street"CODE
LOWdocs/hosting/oidc.md189User.find_by(email: "admin@example.com").update!(role: :super_admin)CODE
LOWdocs/hosting/oidc.md192User.find_by(email: "admin@example.com").role # => "super_admin"CODE
LOWmobile/test/services/telemetry_service_test.dart139 expect(TelemetryService.sanitizeUserId('user@example.com'), isNull);CODE
LOWmobile/test/services/telemetry_service_test.dart150 id: 'user@example.com',CODE
LOWmobile/test/services/telemetry_service_test.dart151 email: 'user@example.com',CODE
LOWmobile/test/services/telemetry_service_test.dart161 expect(userJson, isNot(contains('user@example.com')));CODE
LOWmobile/test/services/telemetry_service_test.dart188 expect(filtered.message, isNot(contains('user@example.com')));CODE
LOWmobile/test/services/telemetry_service_test.dart246 expect(filtered.message!.formatted, isNot(contains('user@example.com')));CODE
LOWmobile/test/services/log_service_test.dart20 expect(sanitized, isNot(contains('user@example.com')));CODE
LOWmobile/test/services/log_service_test.dart112 expect(exported, isNot(contains('user@example.com')));CODE
LOWmobile/test/services/log_service_test.dart126 isNot(contains('user@example.com')));CODE
LOWmobile/test/services/log_service_test.dart131 expect(exported, isNot(contains('user@example.com')));CODE
LOWmobile/lib/screens/login_screen.dart38 static const _emailPlaceholder = 'user@example.com';CODE
Modern AI Meta-Vocabulary10 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMapp/models/sophtron_item/importer.rb5# This class orchestrates the complete import process for a SophtronItem:COMMENT
MEDIUMapp/models/sophtron_item/syncer.rb26 # This method orchestrates all phases of the sync:COMMENT
MEDIUMapp/models/provider/openai.rb320 # caller batches are split to fit the model's context window. `fixed` isCOMMENT
MEDIUMapp/models/provider/openai/auto_merchant_detector.rb462 # Enhanced developer message with few-shot examples for smaller/local LLMsCOMMENT
MEDIUMapp/models/vector_store/embeddable.rb41 # embedding model token limits.COMMENT
MEDIUMapp/models/vector_store/pgvector.rb10# - An embedding model endpoint (EMBEDDING_URI_BASE / EMBEDDING_MODEL)COMMENT
MEDIUMapp/models/vector_store/qdrant.rb4# Like the Pgvector adapter you still supply your own embedding model; QdrantCOMMENT
MEDIUMapp/models/vector_store/qdrant.rb10# - An embedding model endpoint (EMBEDDING_MODEL_URL / EMBEDDING_MODEL_NAME)COMMENT
MEDIUMapp/controllers/pages_controller.rb4 # Per-widget dashboard layout guardrails. Deterministic defaults the masonryCOMMENT
MEDIUMapp/controllers/pages_controller.rb192 # Resolves a section's layout guardrails, applying the user's height presetCOMMENT
AI Slop Vocabulary10 hits · 21 pts
SeverityFileLineSnippetContext
LOWapp/models/simplefin_account.rb108 # For custom currency URLs, we'll just use the last part as currency codeCOMMENT
MEDIUMapp/models/holding.rb217 # typically be for real tickers not CUSTOM: ones. A more robust solution would track whichCOMMENT
LOWapp/models/simplefin_item.rb191 # We don't destroy it because has_one :account, dependent: :nullify would nullify the FK we just setCOMMENT
LOWapp/models/simplefin_item.rb193 # trigger autosave on the preloaded account association, reverting the FK we just set!COMMENT
MEDIUMapp/models/demo/generator.rb86 # Generate comprehensive realistic demo data with multi-currencyCOMMENT
MEDIUM…ls/simplefin_account/investments/holdings_processor.rb44 # Parse provider data with robust fallbacks across SimpleFin sourcesCOMMENT
LOWtest/models/coinstats_account/processor_test.rb36 # Should not raise, just return earlyCOMMENT
LOWtest/controllers/settings/providers_controller_test.rb218 # Entry should be removed, not just set to nilCOMMENT
LOWconfig/initializers/00_ssl.rb257 # Fallback: just use the custom CA (may break connections to public services)COMMENT
MEDIUMlib/generators/provider/family/family_generator.rb186 # This approach is more robust than trying to append to an existing include lineCOMMENT
Slop Phrases7 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMcompose.example.ai.yml181 - OLLAMA_MODELS=deepseek-r1:8b,llama3.1:8b,nomic-embed-text # Pre-load model on startup, you can change this to yoCODE
MEDIUMconfig/initializers/doorkeeper.rb396 # For example you can add an additional database column to `oauth_applications` table,COMMENT
LOWconfig/initializers/doorkeeper.rb53 # Don't forget to include Doorkeeper ORM mixins into your custom models:COMMENT
LOWconfig/initializers/doorkeeper.rb84 # [NOTE] If you apply this option on already existing project don't forget to manuallyCOMMENT
LOWconfig/initializers/doorkeeper.rb84 # [NOTE] If you apply this option on already existing project don't forget to manuallyCOMMENT
LOWconfig/initializers/doorkeeper.rb518 # them to make sure you doesn't get NoMethodError exception.COMMENT
MEDIUMspec/spec_helper.rb48# with RSpec, but feel free to customize to your heart's content.COMMENT
Example Usage Blocks6 hits · 9 pts
SeverityFileLineSnippetContext
LOWapp/models/concerns/currency_normalizable.rb9# Usage:COMMENT
LOWapp/jobs/snaptrade_activities_fetch_job.rb7# Usage:COMMENT
LOWapp/services/provider_loader.rb6# Usage:COMMENT
LOWtest/support/provider_adapter_test_interface.rb4# Usage:COMMENT
LOWlib/generators/provider/family/family_generator.rb6# Usage:COMMENT
LOWlib/generators/provider/global/global_generator.rb6# Usage:COMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWapp/models/enable_banking_item.rb51 # TODO: implement data retention policy for last_psu_ip (GDPR/CCPA — nullify after session expiry or 90 days)COMMENT