.vbw-planning/milestones/07-rails-audit-and-refactoring/01-quick-wins-and-security/01-RESEARCH.md
19 findings audited → 4 already correct → 15 actionable items
source_monitor_[resource]_table patternImportHistory.find(params[:import_history_id])schedule_pages_params uses .permit! — needs explicit allowlistby_source, by_status, by_item scopes (FetchLog has for_job, by_category)sourcemon_item_contents — use ItemContent.table_namein_step(step) plus named step scopesrecent scope already in Loggable concern — remove duplicateupdate_columns — use update!rescue_from ActiveRecord::Deadlocked (uses with_lock)result on success, nil on error — confusing; jobs are fire-and-forgetview_context.pluralize — use ActionController::Base.helpers.pluralize"readability" — use SourceMonitor.config.scraping.default_adaptercompact_blank fallback pattern repeated 3x across views — extract to helperAll groups can run in parallel — no cross-group file dependencies.