Repository Analysis

spree/spree

Open Source eCommerce Platform for B2B, Marketplace, and Enterprise. REST API, TypeScript SDK, and production-ready Next.js storefront. Self-host it. Own your stack. No vendor lock-in. Zero platform fees.

3.9 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of spree/spree, a Ruby project with 15,592 GitHub stars. SynthScan v2.0 examined 478,721 lines of code across 3554 source files, recording 1356 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 3.9 places this repository in the Likely human-written 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).

3.9
Adjusted Score
3.9
Raw Score
100%
Time Factor
2026-08-01
Last Push
15.6K
Stars
Ruby
Language
478.7K
Lines of Code
3.6K
Files
1.4K
Pattern Hits
2026-08-02
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 18HIGH 7MEDIUM 149LOW 1182

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 1356 distinct pattern matches across 13 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.

Fake / Example Data573 hits · 543 pts
SeverityFileLineSnippetContext
LOWdocs/plans/5.5-admin-customers-api.md201 "address1": "123 Main St",CODE
LOWdocs/plans/6.0-admin-spa.md502 "code": { "label": "Code", "placeholder": "SUMMER2026" },CODE
LOWdocs/plans/6.0-admin-spa.md505 "usage_limit": { "label": "Usage limit", "placeholder": "Unlimited" },CODE
LOWdocs/plans/6.0-admin-spa.md508 "promotion": { "name": { "label": "Name", "placeholder": "Summer Sale" } },CODE
LOWdocs/plans/6.0-admin-spa.md511 "stock_location": { "name": { "label": "Name", "placeholder": "Brooklyn warehouse" },CODE
LOWdocs/plans/6.0-admin-spa.md512 "admin_name": { "label": "Internal name", "placeholder": "Optional — shown only in the admin" CODE
LOWdocs/plans/decisions.md77("Acme" / "Acme Ltd" / "ACME Limited"), so the backfill into real CompanyCODE
LOWdocs/api-reference/store.yaml1936 address1: '123 Main St',CODE
LOWdocs/api-reference/store.yaml6049 address1: '123 Main St',CODE
LOWdocs/api-reference/storefront.yaml15793 dummy_key: PUBLICKEY123CODE
LOWdocs/api-reference/platform.yaml7228 dummy_key: PUBLICKEY123CODE
LOWdocs/api-reference/platform.yaml7252 dummy_key: PUBLICKEY123CODE
LOWdocs/api-reference/platform.yaml7323 dummy_key: PUBLICKEY123CODE
LOWdocs/api-reference/platform.yaml7400 dummy_key: PUBLICKEY123CODE
LOWdocs/api-reference/platform.yaml7476 dummy_key: UPDATED-DUMMY-KEY-123CODE
LOWdocs/api-reference/admin.yaml77 email: 'admin@example.com',CODE
LOWdocs/api-reference/admin.yaml82 source: spree api post /auth/login -d '{"email":"admin@example.com","password":"password123"}'CODE
LOWdocs/api-reference/admin.yaml559 email: 'admin@example.com',CODE
LOWdocs/api-reference/admin.yaml564 source: spree api post /auth/password_resets -d '{"email":"admin@example.com","redirect_url":"https://admin.yourCODE
LOWdocs/api-reference/admin.yaml12370 - key: dummy_keyCODE
LOWspree/core/app/models/spree/gateway/bogus.rb12 preference :dummy_key, :string, default: 'PUBLICKEY123'CODE
LOWspree/core/app/models/spree/gateway/bogus.rb173 [:dummy_key]CODE
LOWspree/core/spec/mailers/spree/admin_user_mailer_spec.rb5 let(:admin_user) { create(:admin_user, email: 'admin@example.com') }CODE
LOWspree/core/spec/mailers/spree/admin_user_mailer_spec.rb12 expect(message.to).to eq(['admin@example.com'])CODE
LOWspree/core/spec/mailers/spree/admin_user_mailer_spec.rb90 expect(message.to).to eq(['admin@example.com'])CODE
LOWspree/core/spec/models/spree/user_identity_spec.rb54 email: 'user@example.com',CODE
LOWspree/core/spec/models/spree/user_identity_spec.rb88 expect(user.email).to eq('user@example.com')CODE
LOWspree/core/spec/models/spree/order_spec.rb175 it { is_expected.to eq('John Doe') }CODE
LOWspree/core/spec/models/spree/user_spec.rb27 expect(user.full_name).to eq('John Doe')CODE
LOWspree/core/spec/models/spree/address_spec.rb874 address1: '123 Main St',CODE
LOWspree/core/spec/models/spree/address_spec.rb877 phone: '555-1234',CODE
LOWspree/core/spec/models/spree/order/checkout_spec.rb133 order.email = 'user@example.com'CODE
LOWspree/core/spec/models/spree/order/checkout_spec.rb193 order.email = 'user@example.com'CODE
LOWspree/core/spec/models/spree/order/checkout_spec.rb205 order.email = 'user@example.com'CODE
LOWspree/core/spec/models/spree/order/checkout_spec.rb227 order.email = 'user@example.com'CODE
LOWspree/core/spec/models/spree/order/checkout_spec.rb273 order.email = 'user@example.com'CODE
LOWspree/core/spec/models/spree/order/checkout_spec.rb483 order.email = 'spree@example.org'CODE
LOW…hentication/strategies/email_password_strategy_spec.rb4 let(:user) { create(:user, email: 'user@example.com', password: 'password123') }CODE
LOW…hentication/strategies/email_password_strategy_spec.rb5 let(:params) { { email: 'user@example.com', password: 'password123' } }CODE
LOW…hentication/strategies/email_password_strategy_spec.rb24 allow(strategy).to receive(:find_user_by_email).with('user@example.com').and_return(user)CODE
LOW…hentication/strategies/email_password_strategy_spec.rb47 let(:params) { { email: 'user@example.com', password: 'wrongpassword' } }CODE
LOW…hentication/strategies/email_password_strategy_spec.rb53 allow(strategy).to receive(:find_user_by_email).with('user@example.com').and_return(user)CODE
LOW…hentication/strategies/email_password_strategy_spec.rb87 let(:params) { { email: 'user@example.com', password: '' } }CODE
LOW…hentication/strategies/email_password_strategy_spec.rb98 let(:params) { { email: 'user@example.com' } }CODE
LOW…hentication/strategies/email_password_strategy_spec.rb125 let(:admin_user) { create(:admin_user, email: 'admin@example.com', password: 'admin123') }CODE
LOW…hentication/strategies/email_password_strategy_spec.rb126 let(:params) { { email: 'admin@example.com', password: 'admin123' } }CODE
LOW…hentication/strategies/email_password_strategy_spec.rb137 allow(strategy).to receive(:find_user_by_email).with('admin@example.com').and_return(admin_user)CODE
LOW…/spree/authentication/strategies/base_strategy_spec.rb4 let(:params) { { email: 'user@example.com', password: 'secret' } }CODE
LOW…/spec/models/spree/concerns/admin_user_methods_spec.rb55 expect(admin_user.full_name).to eq('John Doe')CODE
LOW…re/spec/presenters/spree/csv/formula_sanitizer_spec.rb26 expect(described_class.cell('123 Main St')).to eq('123 Main St')CODE
LOW…e/spec/presenters/spree/csv/customer_presenter_spec.rb10 address1: '123 Main St',CODE
LOW…e/spec/presenters/spree/csv/customer_presenter_spec.rb16 phone: '555-1234')CODE
LOW…/subscribers/spree/admin_user_email_subscriber_spec.rb7 let(:admin_user) { create(:admin_user, email: 'admin@example.com') }CODE
LOW…services/spree/imports/row_processors/customer_spec.rb29 'phone' => '555-0101',CODE
LOW…services/spree/imports/row_processors/customer_spec.rb32 'company' => 'Acme Corp',CODE
LOW…services/spree/imports/row_processors/customer_spec.rb33 'address1' => '123 Main St',CODE
LOW…services/spree/imports/row_processors/customer_spec.rb49 expect(user.phone).to eq '555-0101'CODE
LOW…services/spree/imports/row_processors/customer_spec.rb61 expect(address.company).to eq 'Acme Corp'CODE
LOW…services/spree/imports/row_processors/customer_spec.rb62 expect(address.address1).to eq '123 Main St'CODE
LOW…services/spree/imports/row_processors/customer_spec.rb122 'phone' => '555-0101'CODE
513 more matches not shown…
Hyper-Verbose Identifiers270 hits · 288 pts
SeverityFileLineSnippetContext
LOWdocs/plans/5.5-6.0-resource-translations-api.md84 def destroy_locale_translation(locale)CODE
LOWdocs/plans/5.4-disjunctive-option-faceting.md26def group_option_values_by_type(prefixed_ids)CODE
LOWspree/core/app/mailers/spree/base_mailer.rb111 def ensure_default_action_mailer_url_host(store_url = nil)CODE
LOWspree/core/app/models/spree/payment.rb267 def add_gateway_processing_error(error_message)CODE
LOWspree/core/app/models/spree/refund.rb49 def total_amount_reimbursed_for(reimbursement)CODE
LOWspree/core/app/models/spree/shipment.rb485 def update_attributes_and_order(params = {})CODE
LOWspree/core/app/models/spree/price.rb127 def compare_at_price_including_vat_for(price_options)CODE
LOWspree/core/app/models/spree/price.rb132 def display_price_including_vat_for(price_options)CODE
LOWspree/core/app/models/spree/price.rb136 def display_compare_at_price_including_vat_for(price_options)CODE
LOWspree/core/app/models/spree/promotion_rule.rb65 def eligibility_error_message(key, options = {})CODE
LOWspree/core/app/models/spree/fulfilment_changer.rb100 def get_desired_shipment_inventory_unit(state)CODE
LOWspree/core/app/models/spree/store_credit_category.rb38 def default_reimbursement_category(_options = {})CODE
LOWspree/core/app/models/spree/product.rb607 def variants_and_option_values(current_currency = nil)CODE
LOWspree/core/app/models/spree/reimbursement.rb81 def build_from_customer_return(customer_return)CODE
LOWspree/core/app/models/spree/export.rb163 def decode_prefixed_id_filters(params)CODE
LOWspree/core/app/models/spree/store_credit.rb208 def create_credit_record_params(amount)CODE
LOWspree/core/app/models/spree/taxon.rb271 def regenerate_taxon_products(only_once: false)CODE
LOWspree/core/app/models/spree/order.rb574 def find_line_item_by_variant(variant, options = {})CODE
LOWspree/core/app/models/spree/order.rb703 def available_payment_methods(store = nil)CODE
LOWspree/core/app/models/spree/order.rb1077 def valid_order_routing_strategy_class(klass_name)CODE
LOWspree/core/app/models/spree/payment_method.rb127 def create_payment_setup_session(customer:, external_data: {})CODE
LOWspree/core/app/models/spree/payment_method.rb133 def complete_payment_setup_session(setup_session:, params: {})CODE
LOWspree/core/app/models/spree/import_row.rb88 def attribute_by_schema_field(schema_field, mappings = nil)CODE
LOWspree/core/app/models/spree/import_mapping.rb35 def try_to_auto_assign_file_column(csv_headers)CODE
LOWspree/core/app/models/spree/stock_transfer.rb67 def find_stock_location_with_location_id(location_id)CODE
LOWspree/core/app/models/spree/store.rb315 def states_available_for_checkout(country)CODE
LOWspree/core/app/models/spree/store.rb410 def translate_with_store_locale_fallback(key)CODE
LOWspree/core/app/models/spree/line_item.rb300 def update_price_from_modifier(currency, opts)CODE
LOWspree/core/app/models/spree/gateway.rb41 def gateway_dashboard_payment_url(_payment)CODE
LOWspree/core/app/models/spree/promotion/rules/country.rb47 def compute_eligible_country_isos(order)CODE
LOWspree/core/app/models/spree/promotion/rules/taxon.rb109 def taxon_ids_in_order_including_ancestors(order)CODE
LOWspree/core/app/models/spree/order/store_credit.rb4 def add_store_credit_payments(amount = nil)CODE
LOW…e/core/app/models/spree/search_provider/meilisearch.rb353 def metafield_filter_condition(key, value)CODE
LOW…e/core/app/models/spree/search_provider/meilisearch.rb377 def format_metafield_filter_value(value, numeric)CODE
LOW…e/core/app/models/spree/search_provider/meilisearch.rb391 def group_option_values_by_type(prefixed_ids)CODE
LOW…e/core/app/models/spree/search_provider/meilisearch.rb401 def build_grouped_option_conditions(grouped)CODE
LOWspree/core/app/models/spree/calculator/default_tax.rb35 def compute_shipment_or_line_item(item)CODE
LOW…dels/spree/calculator/returns/default_refund_amount.rb21 def weighted_order_adjustment_amount(return_item)CODE
LOW…dels/spree/calculator/returns/default_refund_amount.rb25 def percentage_of_order_total(return_item)CODE
LOW…dels/spree/calculator/returns/default_refund_amount.rb31 def weighted_line_item_pre_tax_amount(return_item)CODE
LOWspree/core/app/models/spree/promotion_handler/coupon.rb123 def remove_promotion_adjustments(promotion)CODE
LOWspree/core/app/models/spree/promotion_handler/coupon.rb129 def remove_promotion_line_items(promotion)CODE
LOWspree/core/app/models/spree/product/channels.rb117 def apply_product_publications(publications_params)CODE
LOWspree/core/app/models/spree/product/channels.rb153 def decode_publication_channel_id(value)CODE
LOW…e/app/models/spree/adjustable/promotion_accumulator.rb50 def item_total_with_promotion(promotion_id)CODE
LOW…ore/app/models/spree/adjustable/adjustments_updater.rb44 def update_adjustable_attributes(attributes)CODE
LOWspree/core/app/models/spree/stock/estimator.rb21 def choose_default_shipping_rate(shipping_rates)CODE
LOWspree/core/app/models/spree/stock/splitter/weight.rb61 def split_package_contents_over_threshold(package)CODE
LOWspree/core/app/models/spree/stock/splitter/weight.rb71 def split_content_item_over_threshold(content_item)CODE
LOW…odels/spree/authentication/strategies/base_strategy.rb43 def find_or_create_user_from_oauth(provider:, uid:, info:, tokens: {})CODE
LOW…pp/models/spree/order_routing/rules/minimize_splits.rb24 def required_quantity_by_variant(order)CODE
LOWspree/core/app/models/spree/gateway/bogus.rb127 def create_payment_setup_session(customer:, external_data: {})CODE
LOWspree/core/app/models/spree/gateway/bogus.rb138 def complete_payment_setup_session(setup_session:, params: {})CODE
LOWspree/core/app/models/spree/reimbursement/credit.rb14 def total_amount_reimbursed_for(reimbursement)CODE
LOW…odels/spree/reimbursement/reimbursement_type_engine.rb33 def calculate_reimbursement_type(return_item)CODE
LOW…pp/models/concerns/spree/translatable_resource_slug.rb6 def localized_slugs_for_store(store)CODE
LOW…core/app/models/concerns/spree/metafield_filterable.rb68 def metafield_filter_condition(definition, predicate, value)CODE
LOW…core/app/models/concerns/spree/metafield_filterable.rb88 def metafield_value_expression(column, field_type)CODE
LOW…core/app/models/concerns/spree/metafield_filterable.rb130 def metafield_value_condition(field_type, predicate, value)CODE
LOWspree/core/app/models/concerns/spree/metafields.rb11 def extract_namespace_and_key(key_with_namespace)CODE
210 more matches not shown…
Over-Commented Block285 hits · 284 pts
SeverityFileLineSnippetContext
LOWpnpm-workspace.yaml1packages:COMMENT
LOWpnpm-workspace.yaml21# dangerouslyAllowAllBuilds: explicitly pinned to false. install scriptsCOMMENT
LOWpnpm-workspace.yaml41# security advisories. Dependabot cannot open these PRs itself — itsCOMMENT
LOW.claude/hooks/post-edit-format.sh1#!/usr/bin/env bashCOMMENT
LOW.claude/hooks/pre-commit-gate.sh1#!/usr/bin/env bashCOMMENT
LOW.claude/hooks/pre-commit-gate.sh21# git commit/push invocation. Handles env-var prefixes (FOO=bar, env FOO=bar)COMMENT
LOWdocs/plans/6.0-tax-provider.md281 # Commit tax for a completed order. Creates a tax document in externalCOMMENT
LOWdocs/plans/6.0-returns-exchanges-claims.md521```COMMENT
LOWdocs/plans/6.0-multi-vendor-marketplace.md181 has_many :role_users, class_name: 'Spree::RoleUser', as: :resource, dependent: :destroyCOMMENT
LOWdocs/plans/5.6-admin-spa-csv-import.md161 render json: serialize_resource(@resource), status: :createdCOMMENT
LOWdocs/plans/6.0-remove-master-variant.md221# rake spree:remove_master_variantCOMMENT
LOWdocs/plans/5.4-search-provider.md161 # Search, filter, and return facets in one call.COMMENT
LOWdocs/plans/6.0-replace-taxons-with-categories.md401### Phase 2: Data migration (rake task)COMMENT
LOWdocs/plans/6.0-typed-stock-movements.md341 add_column :spree_stock_items, :allocated_count, :integer, null: false, default: 0COMMENT
LOWspree/core/app/models/spree/base.rb81 # wire (e.g. `"currency"` for `Spree::Promotion::Rules::Currency`,COMMENT
LOWspree/core/app/models/spree/base.rb101 # Resolves against `available_types` where the class defines it, so anCOMMENT
LOWspree/core/app/models/spree/adjustment.rb1# Adjustments represent a change to the +item_total+ of an Order. Each adjustmentCOMMENT
LOWspree/core/app/models/spree/allowed_origin.rb61 # @return [Boolean]COMMENT
LOWspree/core/app/models/spree/metafield.rb41 belongs_to :metafield_definition, class_name: 'Spree::MetafieldDefinition'COMMENT
LOWspree/core/app/models/spree/custom_field.rb1module SpreeCOMMENT
LOWspree/core/app/models/spree/stock_item.rb81 # Units already allocated to pending shipments at this stock item.COMMENT
LOWspree/core/app/models/spree/product.rb1# PRODUCTSCOMMENT
LOWspree/core/app/models/spree/product.rb241 endCOMMENT
LOWspree/core/app/models/spree/rich_text_sanitizer.rb1# frozen_string_literal: trueCOMMENT
LOWspree/core/app/models/spree/api_key.rb121COMMENT
LOWspree/core/app/models/spree/current.rb41 # Returns the locale that base (untranslated) record columns are authoredCOMMENT
LOWspree/core/app/models/spree/order_routing_rule.rb1module SpreeCOMMENT
LOWspree/core/app/models/spree/reimbursement.rb41 # The reimbursement_models property should contain an array of all models that provideCOMMENT
LOWspree/core/app/models/spree/setup_tasks.rb1module SpreeCOMMENT
LOWspree/core/app/models/spree/export.rb21 #COMMENT
LOWspree/core/app/models/spree/export.rb41 #COMMENT
LOWspree/core/app/models/spree/market.rb101 countries.map(&:iso).compact.sortCOMMENT
LOWspree/core/app/models/spree/subscriber.rb1# frozen_string_literal: trueCOMMENT
LOWspree/core/app/models/spree/subscriber.rb21 # class OrderAuditLogger < Spree::SubscriberCOMMENT
LOWspree/core/app/models/spree/subscriber.rb41 #COMMENT
LOWspree/core/app/models/spree/subscriber.rb61 # # Handle payment refundCOMMENT
LOWspree/core/app/models/spree/subscriber.rb81 # @return [void]COMMENT
LOWspree/core/app/models/spree/subscriber.rb101 # @param method_name [Symbol] Method to call for this eventCOMMENT
LOWspree/core/app/models/spree/payment_response.rb1module SpreeCOMMENT
LOWspree/core/app/models/spree/ability.rb1# Implementation class for Cancan gem. Permissions are configured throughCOMMENT
LOWspree/core/app/models/spree/payment_method.rb61COMMENT
LOWspree/core/app/models/spree/payment_method.rb81 # - Transition payment session to completed/failedCOMMENT
LOWspree/core/app/models/spree/import.rb41 validate :ensure_attachment_content_typeCOMMENT
LOWspree/core/app/models/spree/import.rb101 # and the console, where the caller needs the data to exist when the callCOMMENT
LOWspree/core/app/models/spree/import.rb121 # validated against the store's allowed origins — the import-done emailCOMMENT
LOWspree/core/app/models/spree/import.rb421COMMENT
LOWspree/core/app/models/spree/price_list.rb41 endCOMMENT
LOWspree/core/app/models/spree/event.rb1# frozen_string_literal: trueCOMMENT
LOWspree/core/app/models/spree/gateway.rb1module SpreeCOMMENT
LOW…pp/models/spree/promotion/actions/create_line_items.rb21COMMENT
LOW…pp/models/spree/promotion/actions/create_line_items.rb41 # - Promo adds 1 item A to cart if order total greater then $30COMMENT
LOWspree/core/app/models/spree/order/payments.rb1module SpreeCOMMENT
LOWspree/core/app/models/spree/permission_sets/base.rb1# Base class for all permission sets.COMMENT
LOWspree/core/app/models/spree/permission_sets/base.rb41 # Delegates the `can` method to the ability instance.COMMENT
LOW…dels/spree/permission_sets/configuration_management.rb1# Permission set for managing store configuration and settings.COMMENT
LOWspree/core/app/models/spree/search_provider/base.rb21 # Search and paginate products. Does NOT compute filter facets — use #filters for that.COMMENT
LOWspree/core/app/models/spree/search_provider/base.rb61 #COMMENT
LOWspree/core/app/models/spree/promotion_handler/cart.rb1module SpreeCOMMENT
LOW…item/exchange_variant_eligibility/same_option_value.rb1module SpreeCOMMENT
LOWspree/core/app/models/spree/checkout/requirements.rb1module SpreeCOMMENT
225 more matches not shown…
Hallucination Indicators18 hits · 210 pts
SeverityFileLineSnippetContext
CRITICALspree/core/app/models/spree/payment_method.rb142 self.class.name.demodulize.titleize.gsub(/Gateway/, '').stripCODE
CRITICAL…dels/spree/calculator/returns/default_refund_amount.rb22 inventory_unit.order.adjustments.eligible.non_tax.sum(:amount) * percentage_of_order_total(return_item)CODE
CRITICALspree/core/app/models/spree/taxon_rules/available_on.rb8 date = value.to_i.days.ago.beginning_of_day.in_time_zone(timezone)CODE
CRITICAL…ript/spree/core/controllers/address_form_controller.js51 this.stateLabelTarget.parentNode.parentNode.classList.remove('hidden')CODE
CRITICALspree/core/config/initializers/active_storage.rb1Rails.application.config.active_storage.content_types_to_serve_as_binary.delete('image/svg+xml')CODE
CRITICALspree/core/spec/models/spree/order_spec.rb2879 order.line_items.first.variant.stock_items.update_all(count_on_hand: 0, backorderable: false)CODE
CRITICALspree/core/spec/services/spree/carts/update_spec.rb570 order.line_items.first.variant.stock_items.first.set_count_on_hand(20)CODE
CRITICALspree/core/spec/services/spree/carts/update_spec.rb615 order.line_items.first.variant.stock_items.first.set_count_on_hand(2)CODE
CRITICALspree/admin/app/javascript/spree/admin/application.js196 Turbo.navigator.delegate.adapter.progressBar.setValue(0)CODE
CRITICALspree/admin/app/javascript/spree/admin/application.js197 Turbo.navigator.delegate.adapter.progressBar.show()CODE
CRITICALspree/admin/app/javascript/spree/admin/application.js200 Turbo.navigator.delegate.adapter.progressBar.setValue(1)CODE
CRITICALspree/admin/app/javascript/spree/admin/application.js201 Turbo.navigator.delegate.adapter.progressBar.hide()CODE
CRITICAL…ipt/spree/admin/controllers/address_form_controller.js51 this.stateLabelTarget.parentNode.parentNode.classList.remove('hidden')CODE
CRITICAL…/controllers/concerns/spree/admin/analytics_concern.rb16 1.month.ago.end_of_day.to_date.in_time_zone(current_timezone)CODE
CRITICAL…/controllers/concerns/spree/admin/analytics_concern.rb22 Time.zone.now.beginning_of_day.to_date.in_time_zone(current_timezone)CODE
CRITICAL…ontrollers/spree/api/v3/store/carts_controller_spec.rb449 cart.line_items.first.variant.stock_items.update_all(count_on_hand: 0, backorderable: false)CODE
CRITICAL…ontrollers/spree/api/v3/store/carts_controller_spec.rb475 cart.line_items.first.variant.stock_items.update_all(count_on_hand: 0, backorderable: false)CODE
CRITICAL…ontrollers/spree/api/v3/store/carts_controller_spec.rb702 order.line_items.first.variant.stock_items.first.set_count_on_hand(20)CODE
Decorative Section Separators82 hits · 198 pts
SeverityFileLineSnippetContext
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb36 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb38 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb55 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb57 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb79 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb81 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb129 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb131 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb199 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb201 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb224 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb226 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb266 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb268 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb289 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb291 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb421 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb423 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb459 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb461 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb487 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb489 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb513 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb515 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb539 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb541 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb569 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb571 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb603 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb605 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb632 # ---------------------------------------------------------------COMMENT
MEDIUM…pec/models/spree/order_routing/strategy/parity_spec.rb634 # ---------------------------------------------------------------COMMENT
MEDIUM…ee/admin/config/initializers/spree_admin_navigation.rb5 # ===============================================COMMENT
MEDIUM…ee/admin/config/initializers/spree_admin_navigation.rb7 # ===============================================COMMENT
MEDIUM…ee/admin/config/initializers/spree_admin_navigation.rb213 # ===============================================COMMENT
MEDIUM…ee/admin/config/initializers/spree_admin_navigation.rb215 # ===============================================COMMENT
MEDIUM…ee/admin/config/initializers/spree_admin_navigation.rb374 # ===============================================COMMENT
MEDIUM…ee/admin/config/initializers/spree_admin_navigation.rb376 # ===============================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1281 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1283 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1359 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1361 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1433 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1435 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1493 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1495 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1554 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1556 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1615 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1617 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1662 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1664 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1705 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1707 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1740 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1742 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1775 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1777 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1788 # ==========================================COMMENT
MEDIUMspree/admin/config/initializers/spree_admin_tables.rb1790 # ==========================================COMMENT
22 more matches not shown…
Self-Referential Comments37 hits · 112 pts
SeverityFileLineSnippetContext
MEDIUMspree/core/app/models/spree/legacy_admin_user.rb2# This class is separate from LegacyUser to support distinct customer vs staff models.COMMENT
MEDIUMspree/core/app/models/spree/invitation.rb105 # This method is kept for backwards compatibility.COMMENT
MEDIUMspree/core/app/models/spree/refresh_token.rb34 # Create a refresh token for a userCOMMENT
MEDIUMspree/core/app/models/spree/webhook_delivery.rb89 # Create a new delivery with the same payload and queue it.COMMENT
MEDIUM…/models/concerns/spree/translatable_resource_scopes.rb7 # This method is to be used when you've already joined on the translatable table itselfCOMMENT
MEDIUMspree/core/spec/spec_helper.rb39# This file is copied to ~/spec when you run 'ruby script/generate rspec'COMMENT
MEDIUM…/core/spec/models/spree/shipment/custom_events_spec.rb43 # Create a second shipment that won't be shippedCOMMENT
MEDIUM…/spec/models/concerns/spree/has_image_alt_text_spec.rb4 # Create a dummy class to test the concernCOMMENT
MEDIUMspree/core/lib/spree/core.rb210 # This method is defined within the core gem on purpose.COMMENT
MEDIUMspree/core/lib/spree/core.rb226 # This method is defined within the core gem on purpose.COMMENT
MEDIUMspree/core/lib/spree/events.rb10 # This module provides a clean API for publishing events and subscribingCOMMENT
MEDIUMspree/core/lib/spree/events.rb109 # This method is idempotent - calling it multiple times has no effectCOMMENT
MEDIUM…/spree/events/adapters/active_support_notifications.rb92 # Create a single AS::N subscription that catches all Spree eventsCOMMENT
MEDIUMspree/emails/spec/spec_helper.rb30# This file is copied to ~/spec when you run 'ruby script/generate rspec'COMMENT
MEDIUMspree/admin/app/models/spree/admin/navigation.rb163 # Create a section header itemCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb18 # Create a text field with Spree form stylingCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb50 # Create a number field with Spree form stylingCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb71 # Create a money/currency field with Spree form styling and locale-aware formattingCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb133 # Create an email field with Spree form stylingCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb147 # Create a date field with Spree form stylingCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb161 # Create a datetime field with Spree form stylingCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb175 # Create a textarea with Spree form styling and auto-grow functionalityCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb196 # Create a rich text area (Trix editor) with Spree form stylingCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb211 # Create a select field with Spree form stylingCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb236 # Create a collection select field with Spree form stylingCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb262 # Create a checkbox with Spree custom control stylingCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb277 # Create a radio button with Spree custom control stylingCOMMENT
MEDIUMspree/admin/app/models/spree/admin/form_builder.rb298 # Create a direct file upload field with Spree form stylingCOMMENT
MEDIUM…min/app/controllers/spree/admin/payments_controller.rb98 # This method is overridden because we don't want order to have invalid payment since we are doing `order.next` COMMENT
MEDIUM…ee/admin/app/helpers/spree/admin/bulk_editor_helper.rb4 # Define the cell actions using Stimulus keyboard event filtersCOMMENT
MEDIUM…ee/admin/config/initializers/spree_admin_navigation.rb2# This file defines the default sidebar and settings navigation for Spree AdminCOMMENT
MEDIUMspree/admin/spec/spec_helper.rb29# This file is copied to ~/spec when you run 'ruby script/generate rspec'COMMENT
MEDIUM…/admin/spec/models/spree/admin/navigation/item_spec.rb171 # Create a child without active_condition so it will check its own childrenCOMMENT
MEDIUM…n/spec/helpers/spree/admin/json_preview_helper_spec.rb92 # Create a mock model that doesn't have a serializerCOMMENT
MEDIUMspree/dashboard/spec/spec_helper.rb30# This file is copied to ~/spec when you run 'ruby script/generate rspec'COMMENT
MEDIUMspree/api/spec/spec_helper.rb25# This file is copied to spec/ when you run 'rails generate rspec:install'COMMENT
MEDIUM…pi/spec/integration/spree/api/v3/admin/markets_spec.rb258 # Create a second market so the target isn't the last one in the store.COMMENT
Modern AI Meta-Vocabulary24 hits · 68 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md56Then connect the [docs MCP server](https://spreecommerce.org/docs/developer/agentic/mcp) and let your agent build with yCODE
MEDIUMREADME.md87* **[Agentic Development](https://spreecommerce.org/docs/developer/agentic/overview)** — [25 agent skills](https://githuCOMMENT
MEDIUMdocs/plans/5.5-agent-skills.md26- **Distribution channel is the [`skills`](https://github.com/vercel-labs/skills) CLI** (`npx skills add spree/agent-skiCODE
MEDIUMdocs/plans/5.6-project-layout-and-dashboard.md200// scaffold.ts (excerpt — new phase 2b: dashboard)COMMENT
MEDIUMdocs/plans/5.6-project-layout-and-dashboard.md499### Phase 5: Add dashboard scaffolding to create-spree-app *(implemented)*COMMENT
MEDIUM…enerators/spree/api_resource/api_resource_generator.rb6 # spree:api_resource — scaffold a complete v3-conformant API resource onCOMMENT
MEDIUM…ib/generators/spree/subscriber/subscriber_generator.rb4 # spree:subscriber — scaffold an event subscriber and register it.COMMENT
MEDIUM…/spree/api/v3/admin/translations/batches_controller.rb27 # The orchestration (resolve → upsert → rollback) lives inCOMMENT
MEDIUMpackages/dashboard-starter/README.md5> **Monorepo note.** The canonical source of this template lives at `packages/dashboard-starter` in [spree/spree](https:CODE
MEDIUMpackages/cli/src/context.ts40 // scaffold to mount THIS dir (`./backend:/rails`). The rewrite lands in theCOMMENT
MEDIUMpackages/cli/src/commands/init.ts54 // operator gave at scaffold time. Load sample data later any time withCOMMENT
MEDIUMpackages/cli/src/commands/init.ts192// clone, or a scaffold whose install step failed — mirroringCOMMENT
MEDIUMpackages/cli/src/commands/dev.ts62 // scaffold, a fresh clone) without requiring anyone to run `spree init`.COMMENT
MEDIUMpackages/cli/src/commands/plugin.ts415// Post-scaffold install + bannerCOMMENT
MEDIUMpackages/cli/src/commands/add.ts72 // repair a broken one (old scaffold output) — one gatekeeper for both.COMMENT
MEDIUMpackages/cli/src/commands/add.ts184// cookie. A localhost value can only be that scaffold output, never a realCOMMENT
MEDIUMpackages/create-spree-app/tests/scaffold.test.ts299 // scaffold calls process.exit(1) for non-empty dirs, so we mock itCOMMENT
MEDIUMpackages/create-spree-app/src/scaffold.ts114 // must never abort the scaffold before Phase 4: `spree init` is whatCOMMENT
MEDIUMpackages/create-spree-app/src/scaffold.ts156 // Remove the partial scaffold so the recovery command (`spree addCOMMENT
MEDIUMpackages/create-spree-app/src/dashboard.ts18 // --quiet: the scaffold's own summary cards cover the dashboard — theCOMMENT
MEDIUMpackages/create-spree-app/src/templates/package-json.ts34 // The floor matches the CLI behavior this scaffold relies on (theCOMMENT
MEDIUM.github/CONTRIBUTING.md470We also ship [agent skills](https://spreecommerce.org/docs/developer/agentic/agent-skills) (`npx skills add spree/agent-CODE
MEDIUM.github/workflows/packages.yml334 # npm would ship a scaffold whose install fails until the dashboardCOMMENT
MEDIUM.github/workflows/packages.yml483 # Gated on release-cli: the dashboard scaffold phase delegates to theCOMMENT
Redundant / Tautological Comments39 hits · 66 pts
SeverityFileLineSnippetContext
LOWspree/core/app/models/spree/product.rb672 # Check if the product is digital by checking if any of its shipping methods are digital deliveryCOMMENT
LOWspree/core/app/models/spree/webhook_endpoint.rb52 # Check if this endpoint is subscribed to a specific eventCOMMENT
LOWspree/core/app/models/spree/webhook_endpoint.rb113 # Check if the endpoint was auto-disabledCOMMENT
LOWspree/core/app/models/spree/webhook_endpoint.rb120 # Check if auto-disable threshold has been reachedCOMMENT
LOWspree/core/app/models/spree/order.rb466 # Check if the shipping address is a quick checkout addressCOMMENT
LOWspree/core/app/models/spree/order.rb474 # Check if quick checkout is available for this orderCOMMENT
LOWspree/core/app/models/spree/order.rb481 # Check if quick checkout requires an address collectionCOMMENT
LOWspree/core/app/models/spree/webhook_delivery.rb29 # Check if the delivery was successfulCOMMENT
LOWspree/core/app/models/spree/webhook_delivery.rb36 # Check if the delivery failedCOMMENT
LOWspree/core/app/models/spree/webhook_delivery.rb43 # Check if the delivery is pendingCOMMENT
LOWspree/core/app/models/spree/stock/quantifier.rb86 # Check if any of variant stock items is backorderableCOMMENT
LOWspree/core/app/models/concerns/spree/publishable.rb114 # Check if a parent class has an explicitly set prefixCOMMENT
LOW…/core/app/services/spree/taxons/regenerate_products.rb41 # Check if taxon still exists (may have been destroyed)COMMENT
LOW…/spree/promotion_handler/coupon_with_gift_card_spec.rb128 # Set total to less than the gift card payment amountCOMMENT
LOWspree/core/lib/spree/events.rb183 # Check if events are enabledCOMMENT
LOWspree/core/lib/spree/events.rb212 # Check if automatic lifecycle events (*.created/updated/deleted) are enabledCOMMENT
LOWspree/core/lib/spree/core/dependencies_helper.rb60 # Check if a specific dependency has been overriddenCOMMENT
LOWspree/admin/app/models/spree/admin/navigation.rb68 # Check if item existsCOMMENT
LOWspree/admin/app/models/spree/admin/table.rb25 # Check if date range filter is enabledCOMMENT
LOWspree/admin/app/models/spree/admin/table.rb31 # Check if row actions are enabledCOMMENT
LOWspree/admin/app/models/spree/admin/table.rb37 # Check if edit row action is enabledCOMMENT
LOWspree/admin/app/models/spree/admin/table.rb43 # Check if delete row action is enabledCOMMENT
LOWspree/admin/app/models/spree/admin/table.rb103 # Check if column existsCOMMENT
LOWspree/admin/app/models/spree/admin/table.rb251 # Check if bulk operations are enabled (has any bulk actions)COMMENT
LOWspree/admin/app/models/spree/admin/navigation/item.rb26 # Check if this item should be visible for the given user/contextCOMMENT
LOWspree/admin/app/models/spree/admin/navigation/item.rb45 # Check if this item is active based on current pathCOMMENT
LOWspree/admin/app/models/spree/admin/navigation/item.rb62 # Check if any child item is activeCOMMENT
LOWspree/admin/app/models/spree/admin/navigation/item.rb123 # Check if this is a section headerCOMMENT
LOWspree/admin/app/models/spree/admin/table/column.rb70 # Check if column uses custom sort scopes instead of ransackCOMMENT
LOWspree/admin/app/models/spree/admin/table/visibility.rb8 # Check if component is visible for the given contextCOMMENT
LOWspree/admin/app/models/spree/admin/table/filter.rb79 # Check if this operator requires a valueCOMMENT
LOW…ee/admin/app/models/spree/admin/table/query_builder.rb37 # Check if there are any filtersCOMMENT
LOW…ree/admin/app/models/spree/admin/table/filter_group.rb40 # Check if group is emptyCOMMENT
LOW…/app/controllers/concerns/spree/admin/table_concern.rb32 # Check if a table is registered for this controllerCOMMENT
LOW…/app/controllers/concerns/spree/admin/table_concern.rb55 # Check if current sort uses a custom scopeCOMMENT
LOWspree/admin/lib/spree/admin/engine.rb169 # Check if a context existsCOMMENT
LOWspree/admin/lib/spree/admin/engine.rb235 # Check if a table is registeredCOMMENT
LOW…ee/api/app/serializers/spree/api/v3/base_serializer.rb51 # Check if an association should be expandedCOMMENT
LOW…/app/controllers/concerns/spree/api/v3/http_caching.rb20 # Check if the current user is a guest (no authentication)COMMENT
Synthetic Comment Markers7 hits · 38 pts
SeverityFileLineSnippetContext
HIGH…/controllers/spree/admin/gift_cards_controller_spec.rb204 it 'creates a gift card with an auto-generated code' doCODE
HIGHpackages/dashboard/e2e/gift-cards.spec.ts29 test('creates a gift card with an auto-generated code', async ({ page }) => {CODE
HIGHpackages/dashboard/e2e/gift-cards.spec.ts39 // Auto-generated code is uppercase hex; just confirm a row with theCOMMENT
HIGHpackages/dashboard/src/locales/en.json717 "help": "1 issues a single card. More than 1 issues a batch with auto-generated codes."CODE
HIGHpackages/dashboard/src/locales/en.json951 "description": "Auto-generated codes for this promotion. Read-only — regenerate by changing the promotion's numbCODE
HIGHpackages/dashboard/src/locales/en.json952 "description_with_count": "{{count}} auto-generated codes. Read-only — regenerate by changing the promotion's nuCODE
HIGHpackages/dashboard/src/locales/en.json1692 "create_description": "Issue a single gift card or generate a batch with auto-generated codes.",CODE
Structural Annotation Overuse7 hits · 14 pts
SeverityFileLineSnippetContext
LOWdocs/plans/5.4-metafield-translations.md261### Step 1: MigrationCOMMENT
LOWdocs/plans/5.4-metafield-translations.md295### Step 2: Model changesCOMMENT
LOWdocs/plans/5.4-metafield-translations.md302### Step 3: Serializer changesCOMMENT
LOWdocs/plans/5.4-metafield-translations.md308### Step 4: Controller changesCOMMENT
LOWdocs/plans/5.4-metafield-translations.md314### Step 5: TestsCOMMENT
LOWpackages/dashboard-core/src/hooks/use-direct-upload.ts59 // Step 1: Get presigned upload URLCOMMENT
LOWpackages/dashboard-core/src/hooks/use-direct-upload.ts77 // Step 2: Upload file directly to storage.COMMENT
AI Slop Vocabulary5 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMspree/core/spec/models/spree/tax_rate_spec.rb129 # henceforth a net price and will not change.COMMENT
MEDIUMspree/core/lib/spree/core/controller_helpers/store.rb41 # (to facilitate differing prices depending on VAT rate for digital products in Europe, seeCOMMENT
LOWspree/admin/app/models/spree/admin/navigation.rb21 # Support both block styles: |nav| nav.add or just addCOMMENT
LOW…ree/admin/app/models/spree/admin/navigation/builder.rb32 # Support both block styles: |nav| nav.add or just addCOMMENT
MEDIUM…ee/admin/controllers/autocomplete_select_controller.js7// that scenarios are handled in the more robust select_controller.jsCOMMENT
Slop Phrases4 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMspree/core/config/i18n-tasks.yml169## In these cases you can use the built-in PatternMapper to map patterns to keys, e.g.:COMMENT
MEDIUMspree/core/lib/spree/core.rb234 # you can use Spree.payment_methodsCOMMENT
MEDIUMspree/admin/config/i18n-tasks.yml185## In these cases you can use the built-in PatternMapper to map patterns to keys, e.g.:COMMENT
LOWspree/lib/generators/spree/install/install_generator.rb91 say_status :skipping, "migrations (don't forget to run rake db:migrate)"CODE
Verbosity Indicators5 hits · 7 pts
SeverityFileLineSnippetContext
LOWspree/core/app/models/concerns/spree/user_roles.rb6 has_many :role_users, class_name: 'Spree::RoleUser', foreign_key: :user_id, as: :user, dependent: :destroy_async #CODE
LOW…/core/app/services/spree/products/auto_match_taxons.rb12 # we need to check if existing taxons still matchCOMMENT
LOW…/core/app/services/spree/products/auto_match_taxons.rb21 # we need to check if product matches any existing taxonsCOMMENT
LOWpackages/dashboard-core/src/hooks/use-direct-upload.ts59 // Step 1: Get presigned upload URLCOMMENT
LOWpackages/dashboard-core/src/hooks/use-direct-upload.ts77 // Step 2: Upload file directly to storage.COMMENT