From b6ddd13a9f6ec2ccf55bc1773d52391c5afc05ab Mon Sep 17 00:00:00 2001 From: Rockwell Windsor Rice Date: Sat, 12 Sep 2026 03:39:08 -0500 Subject: [PATCH] Fix/rails patterns followups Independent local Codex review PASS at a6a641940279b3306933939433b11ef18b2be7f2, no P0/P1. Independent 181 checks and strict skill validation pass. CI run 34667546951 passed, all 45 current checks green. Existing Rails skill mapping and documentation corrections only. Rollback: revert this squash commit. --- config/project-stack-mappings.json | 1 + skills/rails-patterns/SKILL.md | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/project-stack-mappings.json b/config/project-stack-mappings.json index 46fe11e32..6c90c6e6c 100644 --- a/config/project-stack-mappings.json +++ b/config/project-stack-mappings.json @@ -359,6 +359,7 @@ ], "rules": ["common"], "skills": [ + "rails-patterns", "tdd-workflow", "verification-loop" ], diff --git a/skills/rails-patterns/SKILL.md b/skills/rails-patterns/SKILL.md index 5133e8ab4..876df985a 100644 --- a/skills/rails-patterns/SKILL.md +++ b/skills/rails-patterns/SKILL.md @@ -163,8 +163,8 @@ module Invoices def build_invoice invoice = user.invoices.new(params.except(:line_items)) - invoice.tax_total = TaxCalculator.call(invoice) invoice.line_items.build(params[:line_items]) + invoice.tax_total = TaxCalculator.call(invoice) invoice.total = invoice.line_items.sum(&:amount) + invoice.tax_total invoice end @@ -258,7 +258,7 @@ Query objects accept a scope, so they compose: `Invoices::Overdue.call(scope: cu @posts = Post.published.includes(:author) ``` -`includes` lets Rails choose preload vs eager_load. Force `preload` for separate queries, `eager_load` for a JOIN when filtering on the association. In Rails 7.1+, `strict_loading` raises on accidental lazy loads. +`includes` lets Rails choose preload vs eager_load. Force `preload` for separate queries, `eager_load` for a JOIN when filtering on the association. Since Rails 6.1, `strict_loading` raises on accidental lazy loads. ### Counter cache @@ -472,5 +472,4 @@ If the page is server-rendered with occasional interactivity, Hotwire ships fast ## Related Skills - `backend-patterns` — service boundaries and adapter patterns (referenced by the Ruby patterns rules) -- `ruby-patterns` — language-level Ruby idioms (if present) - Ruby patterns rules (`rules/ruby/patterns.md`, installed as `rules/ecc/ruby/patterns.md`) — the decisions and when-to-use guidance this skill implements