{"slug":"ruby","title":"Ruby","extensions":[".rb"],"entry_languages":["Ruby"],"prompts":66,"repos":5,"sample":[{"repository":"rails/rails","slug":"rails-rails","checks":1},{"repository":"mastodon/mastodon","slug":"mastodon-mastodon","checks":5},{"repository":"discourse/discourse","slug":"discourse-discourse","checks":3},{"repository":"Homebrew/brew","slug":"homebrew-brew","checks":3},{"repository":"chef/chef","slug":"chef-chef","checks":0}],"tools":[{"id":"codeql","method":"static_analysis","kind":"security-scanning","languages":["*"],"upstream":"https://github.com/github/codeql","docs":null,"autofix":false,"exit_codes":{},"repos":2,"share":40,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"mastodon/mastodon","slug":"mastodon-mastodon"},{"repository":"Homebrew/brew","slug":"homebrew-brew"}]},{"id":"ci-matrix","method":"testing","kind":"version-matrix","languages":["*"],"upstream":"https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":20,"commands":["analyze (language: 3)"],"run":"analyze (language: 3)","via":null,"triggers":["ci"],"examples":[{"repository":"mastodon/mastodon","slug":"mastodon-mastodon"}]}],"headline":[],"raw_md":"https://awesomereviewers.com/raw/verify/ruby.md","raw_json":"https://awesomereviewers.com/raw/verify/ruby.json","url":"https://awesomereviewers.com/verify/ruby/","baseline":{"slug":"every-change","title":"Any change","topics":["Code Style","Naming Conventions"],"checks":[{"kind":"formatting","title":"Formatting","method":"formatting","method_slug":"formatting","catches":"Layout drift that buries the real change in the diff.","tool":null,"alternatives":[],"note":null},{"kind":"linting","title":"Linting","method":"static_analysis","method_slug":"static-analysis","catches":"Bug-prone patterns, unused code and conventions the formatter does not cover.","tool":null,"alternatives":[],"note":null},{"kind":"type-checking","title":"Type checking","method":"static_analysis","method_slug":"static-analysis","catches":"Wrong types, unhandled null or None, call signatures broken across modules.","tool":null,"alternatives":[],"note":null},{"kind":"unit-tests","title":"Unit and integration tests","method":"testing","method_slug":"testing","catches":"Behaviour regressions on the paths the tests exercise.","tool":null,"alternatives":[],"note":null}],"prompts":[{"slug":"discourse-use-descriptive-identifiers","title":"Use descriptive identifiers","description":"Choose names that clearly communicate purpose and reduce cognitive load for future readers. Avoid generic, abbreviated, or ambiguous identifiers in favor of self-documenting ones.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Naming Conventions","language":"Ruby","updated":"2025-08-22","comments":12,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-use-descriptive-identifiers.md"},{"slug":"mastodon-use-descriptive-specific-names","title":"Use descriptive specific names","description":"Choose descriptive, specific names that clearly communicate intent and behavior rather than generic or ambiguous alternatives. Names should be self-documenting and reduce the need for additional context or comments.","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Naming Conventions","language":"Ruby","updated":"2025-07-25","comments":9,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-use-descriptive-specific-names.md"},{"slug":"rails-self-documenting-identifier-names","title":"Self-documenting identifier names","description":"Use clear, self-documenting names for variables, methods, and classes\\ \\ that express intent without exposing unnecessary implementation details. \\n\\n\\ **For methods and variables:**","repository":"rails/rails","domain":"app-frameworks","topic":"Naming Conventions","language":"Ruby","updated":"2025-05-18","comments":9,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-self-documenting-identifier-names.md"},{"slug":"chef-extract-and-organize-methods","title":"Extract and organize methods","description":"Break down large, complex methods into smaller, focused methods with clear names that describe their purpose. This improves code readability, maintainability, and testability.","repository":"chef/chef","domain":"cloud-infra","topic":"Code Style","language":"Ruby","updated":"2023-11-15","comments":8,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-extract-and-organize-methods.md"},{"slug":"chef-consistent-descriptive-naming-patterns","title":"Consistent descriptive naming patterns","description":"Use clear, descriptive names that follow consistent patterns across the codebase. For methods and properties: 1. Use intention-revealing names that clearly indicate purpose","repository":"chef/chef","domain":"cloud-infra","topic":"Naming Conventions","language":"Ruby","updated":"2024-08-27","comments":7,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-consistent-descriptive-naming-patterns.md"},{"slug":"brew-follow-established-naming-patterns","title":"Follow established naming patterns","description":"Names should be descriptive and consistent with existing patterns in the codebase. This applies to methods, variables, and DSL elements: 1. Follow existing naming patterns for similar concepts:","repository":"Homebrew/brew","domain":"devtools","topic":"Naming Conventions","language":"Ruby","updated":"2025-07-04","comments":6,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-follow-established-naming-patterns.md"},{"slug":"mastodon-extract-complex-logic","title":"Extract complex logic","description":"Break down complex methods into smaller, well-named private methods to improve readability and maintainability. When a method contains multiple responsibilities, nested conditionals, or complex logic blocks, extract these into descriptive private methods.","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Code Style","language":"Ruby","updated":"2025-04-17","comments":6,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-extract-complex-logic.md"},{"slug":"rails-prefer-simpler-expressions","title":"Prefer simpler expressions","description":"Always choose the simplest, most readable way to express your code logic.\\ \\ Unnecessary complexity makes code harder to understand and maintain. \\n\\nWhen\\ \\ writing conditionals, method calls, or data transformations, ask yourself: \\\"\\ Is there a clearer way to express this?\\\"","repository":"rails/rails","domain":"app-frameworks","topic":"Code Style","language":"Ruby","updated":"2025-02-13","comments":6,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-prefer-simpler-expressions.md"},{"slug":"discourse-extract-duplicate-code","title":"Extract duplicate code","description":"When you notice repeated code patterns, logic blocks, or similar implementations across methods or classes, extract the common functionality into reusable methods or utilities. This improves maintainability, reduces bugs, and makes the codebase more consistent.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Code Style","language":"Ruby","updated":"2025-08-20","comments":5,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-extract-duplicate-code.md"},{"slug":"brew-simplify-complex-code-blocks","title":"Simplify complex code blocks","description":"Break down complex code blocks and expressions into simpler, more readable components. Complex boolean logic, nested conditions, and multi-operation lines should be refactored for clarity.","repository":"Homebrew/brew","domain":"devtools","topic":"Code Style","language":"Ruby","updated":"2025-03-06","comments":5,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-simplify-complex-code-blocks.md"},{"slug":"react-native-follow-established-naming-conventions","title":"Follow established naming conventions","description":"Ensure all identifiers (variables, methods, classes) adhere to the project's established naming conventions and accurately reflect their purpose. Consistency in naming patterns improves code readability and maintainability across the codebase.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Naming Conventions","language":"Ruby","updated":"2025-06-19","comments":2,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-follow-established-naming-conventions.md"}],"prompt_count":11},"changes":[{"slug":"security","title":"Authentication, input handling, secrets, permissions","topics":["Security"],"checks":[{"kind":"security-scanning","title":"Security scanning","method":"static_analysis","method_slug":"static-analysis","catches":"Injection, unsafe APIs and tainted data reaching a sink.","tool":{"id":"codeql","method":"static_analysis","kind":"security-scanning","languages":["*"],"upstream":"https://github.com/github/codeql","docs":null,"autofix":false,"exit_codes":{},"repos":2,"share":40,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"mastodon/mastodon","slug":"mastodon-mastodon"},{"repository":"Homebrew/brew","slug":"homebrew-brew"}]},"alternatives":[],"note":null},{"kind":"secret-scanning","title":"Secret scanning","method":"static_analysis","method_slug":"static-analysis","catches":"Credentials and tokens committed to the repository.","tool":null,"alternatives":[],"note":null},{"kind":"dependency-audit","title":"Dependency audit","method":"supply_chain","method_slug":"supply-chain","catches":"Known-vulnerable or disallowed dependencies and licenses.","tool":null,"alternatives":[],"note":null}],"prompts":[{"slug":"discourse-verify-authorization-explicitly","title":"verify authorization explicitly","description":"Always perform explicit authorization checks rather than assuming existing security controls are sufficient. Security vulnerabilities often arise from bypassed or missing permission verification, especially in edge cases like impersonation windows, controller action bypasses, or privilege escalation scenarios.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Security","language":"Ruby","updated":"2025-08-20","comments":8,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-verify-authorization-explicitly.md"},{"slug":"chef-secure-credential-management","title":"Secure credential management","description":"When handling passwords, certificates, or keys in your code, implement secure encryption and storage mechanisms to prevent exposure of sensitive data.","repository":"chef/chef","domain":"cloud-infra","topic":"Security","language":"Ruby","updated":"2024-10-29","comments":5,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-secure-credential-management.md"},{"slug":"rails-content-security-policy-configuration","title":"Content security policy configuration","description":"Implement Content Security Policy (CSP) configurations appropriately for your application's context. Use report-only mode during implementation to avoid breaking functionality while testing policies.","repository":"rails/rails","domain":"app-frameworks","topic":"Security","language":"Ruby","updated":"2025-01-13","comments":4,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-content-security-policy-configuration.md"},{"slug":"brew-prevent-injection-vulnerabilities","title":"Prevent injection vulnerabilities","description":"Always sanitize input data before using it in sensitive operations to prevent injection vulnerabilities. This applies to shell commands, file operations, and URL handling.","repository":"Homebrew/brew","domain":"devtools","topic":"Security","language":"Ruby","updated":"2025-06-03","comments":3,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-prevent-injection-vulnerabilities.md"},{"slug":"mastodon-minimize-html-attack-surface","title":"Minimize HTML attack surface","description":"When allowing HTML attributes or rendering user-generated content, explicitly limit the attack surface by restricting allowed properties to a minimal, vetted set rather than permitting broad categories of attributes.","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Security","language":"Ruby","updated":"2025-01-03","comments":2,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-minimize-html-attack-surface.md"}],"prompt_count":5},{"slug":"interfaces","title":"Public APIs, signatures, error paths, nullability","topics":["API","Error Handling","Null Handling"],"checks":[{"kind":"type-checking","title":"Type checking","method":"static_analysis","method_slug":"static-analysis","catches":"Wrong types, unhandled null or None, call signatures broken across modules.","tool":null,"alternatives":[],"note":null},{"kind":"unit-tests","title":"Unit and integration tests","method":"testing","method_slug":"testing","catches":"Behaviour regressions on the paths the tests exercise.","tool":null,"alternatives":[],"note":null},{"kind":"property-tests","title":"Property-based tests","method":"testing","method_slug":"testing","catches":"Edge-case inputs nobody wrote a test for; invariants over generated data.","tool":null,"alternatives":[],"note":null}],"prompts":[{"slug":"brew-prefer-explicit-nil-handling","title":"Prefer explicit nil handling","description":"Handle nil values explicitly and consistently to improve code clarity and type safety. Follow these guidelines: 1. Use early returns for nil validation:","repository":"Homebrew/brew","domain":"devtools","topic":"Null Handling","language":"Ruby","updated":"2025-06-17","comments":10,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-prefer-explicit-nil-handling.md"},{"slug":"chef-fail-gracefully-always","title":"Fail gracefully always","description":"Ensure code handles errors robustly by using protective patterns that prevent resource leaks, provide clear diagnostics, and degrade gracefully when possible:","repository":"chef/chef","domain":"cloud-infra","topic":"Error Handling","language":"Ruby","updated":"2025-06-02","comments":9,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-fail-gracefully-always.md"},{"slug":"brew-standardize-api-integration-patterns","title":"Standardize API integration patterns","description":"Establish consistent patterns for API integrations by following these guidelines: 1. Document API endpoint usage specifically: - Clearly specify which components use each endpoint","repository":"Homebrew/brew","domain":"devtools","topic":"API","language":"Ruby","updated":"2025-03-21","comments":7,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-standardize-api-integration-patterns.md"},{"slug":"rails-minimize-public-api-surface","title":"Minimize public API surface","description":"Design APIs with a minimal public surface area by carefully controlling which methods and properties are exposed. Start with a restricted set of public methods and expand only when there's clear evidence of need. This approach makes APIs easier to maintain and evolve while reducing the risk of breaking changes.","repository":"rails/rails","domain":"app-frameworks","topic":"API","language":"Ruby","updated":"2025-06-03","comments":6,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-minimize-public-api-surface.md"},{"slug":"brew-clear-error-recovery-paths","title":"Clear error recovery paths","description":"Implement error handling that provides both clear recovery paths for users and graceful degradation for the system. This includes: 1. Clear, actionable error messages that guide users to resolution","repository":"Homebrew/brew","domain":"devtools","topic":"Error Handling","language":"Ruby","updated":"2025-05-03","comments":6,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-clear-error-recovery-paths.md"},{"slug":"mastodon-early-nil-validation","title":"early nil validation","description":"Check for nil values early in methods and handle them gracefully before they can cause runtime errors or trigger expensive operations. This prevents NoMethodError exceptions and improves performance by avoiding unnecessary processing.","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Null Handling","language":"Ruby","updated":"2025-07-25","comments":5,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-early-nil-validation.md"},{"slug":"mastodon-api-parameter-design","title":"API parameter design","description":"Design API parameters with clear intent, proper validation, and thoughtful default behaviors. Parameter names should reflect their purpose rather than their source (e.g., `include_original` instead of `client_type == 'editor'`). Always validate parameters through StrongParameters to prevent security issues, and carefully consider the implications of default...","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"API","language":"Ruby","updated":"2025-06-24","comments":5,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-api-parameter-design.md"},{"slug":"rails-initialize-nil-prone-variables","title":"Initialize nil-prone variables","description":"Always initialize variables that might be nil to appropriate default values to prevent unexpected behavior. For boolean flags, explicitly initialize to false in constructors or initialization methods:","repository":"rails/rails","domain":"app-frameworks","topic":"Null Handling","language":"Ruby","updated":"2025-06-18","comments":5,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-initialize-nil-prone-variables.md"},{"slug":"chef-prefer-guard-clauses","title":"Prefer guard clauses","description":"Use guard clauses with early returns for null checking instead of wrapping code in conditional blocks. This improves readability by reducing nesting and making the code's \"happy path\" more evident.","repository":"chef/chef","domain":"cloud-infra","topic":"Null Handling","language":"Ruby","updated":"2025-01-06","comments":5,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-prefer-guard-clauses.md"},{"slug":"discourse-api-parameter-clarity","title":"API parameter clarity","description":"Design API parameters with clear naming, structured formats, and intuitive interfaces that are easy for clients to use and maintain. Avoid complex string parsing, ambiguous parameter names, or structures that require clients to perform additional processing.","repository":"discourse/discourse","domain":"app-frameworks","topic":"API","language":"Ruby","updated":"2025-08-21","comments":4,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-api-parameter-clarity.md"},{"slug":"rails-contextual-error-messages","title":"Contextual error messages","description":"Error messages should provide sufficient context to understand and debug the problem efficiently. Include both the expected and actual values in error messages, along with specific information about what failed. This makes troubleshooting much more straightforward and reduces debugging time.","repository":"rails/rails","domain":"app-frameworks","topic":"Error Handling","language":"Ruby","updated":"2025-05-19","comments":4,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-contextual-error-messages.md"},{"slug":"discourse-include-contextual-error-information","title":"Include contextual error information","description":"Error messages should include relevant contextual information such as IDs, file paths, job identifiers, and other debugging details to make troubleshooting easier. Generic error messages make it difficult to identify the specific instance or operation that failed, especially in systems processing multiple items concurrently.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Error Handling","language":"Ruby","updated":"2025-07-07","comments":3,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-include-contextual-error-information.md"}],"prompt_count":15},{"slug":"services","title":"Service and framework code","topics":["Fastify","NestJS","Spring","Axum","Celery","Temporal"],"checks":[{"kind":"unit-tests","title":"Unit and integration tests","method":"testing","method_slug":"testing","catches":"Behaviour regressions on the paths the tests exercise.","tool":null,"alternatives":[],"note":null},{"kind":"version-matrix","title":"Version and platform matrix","method":"testing","method_slug":"testing","catches":"Breakage on a runtime version, OS or feature combination you did not run locally.","tool":{"id":"ci-matrix","method":"testing","kind":"version-matrix","languages":["*"],"upstream":"https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":20,"commands":["analyze (language: 3)"],"run":"analyze (language: 3)","via":null,"triggers":["ci"],"examples":[{"repository":"mastodon/mastodon","slug":"mastodon-mastodon"}]},"alternatives":[],"note":null}],"prompts":[],"prompt_count":0},{"slug":"algorithms","title":"Algorithms, parsers, data transforms","topics":["Algorithms"],"checks":[{"kind":"property-tests","title":"Property-based tests","method":"testing","method_slug":"testing","catches":"Edge-case inputs nobody wrote a test for; invariants over generated data.","tool":null,"alternatives":[],"note":null},{"kind":"fuzzing","title":"Fuzzing","method":"testing","method_slug":"testing","catches":"Crashes, panics and hangs on malformed input, especially in parsers and decoders.","tool":null,"alternatives":[],"note":null},{"kind":"mutation-testing","title":"Mutation testing","method":"testing","method_slug":"testing","catches":"Tests that keep passing whatever the code does.","tool":null,"alternatives":[],"note":null},{"kind":"proofs","title":"Proofs and specifications","method":"formal","method_slug":"formal","catches":"Design-level bugs in protocols and algorithms, checked against a specification.","tool":null,"alternatives":[],"note":null}],"prompts":[{"slug":"brew-optimize-collection-operations","title":"Optimize collection operations","description":"Use Ruby's built-in collection methods to write more efficient and readable code. This reduces algorithmic complexity and improves performance by leveraging optimized implementations instead of writing manual iterations or chaining multiple operations.","repository":"Homebrew/brew","domain":"devtools","topic":"Algorithms","language":"Ruby","updated":"2025-07-01","comments":7,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-optimize-collection-operations.md"},{"slug":"chef-choose-semantic-algorithms","title":"Choose semantic algorithms","description":"Select algorithms and data operations that match the semantic intent of your code rather than using convenient but potentially problematic approaches. For operations like version comparisons, string parsing, and collection filtering, choose specialized methods over generic ones.","repository":"chef/chef","domain":"cloud-infra","topic":"Algorithms","language":"Ruby","updated":"2025-05-20","comments":6,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-choose-semantic-algorithms.md"},{"slug":"rails-efficient-data-processing","title":"Efficient data processing","description":"When implementing algorithms that process large data streams or collections, use a chunking approach rather than processing the entire input at once. This improves memory efficiency and prevents out-of-memory errors for large inputs.","repository":"rails/rails","domain":"app-frameworks","topic":"Algorithms","language":"Ruby","updated":"2025-05-18","comments":4,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-efficient-data-processing.md"},{"slug":"mastodon-optimize-collection-iterations","title":"optimize collection iterations","description":"Avoid multiple passes through the same data structure when a single iteration can accomplish the same work. This reduces computational complexity and improves performance, especially for large datasets.","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Algorithms","language":"Ruby","updated":"2025-05-03","comments":3,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-optimize-collection-iterations.md"},{"slug":"discourse-optimize-data-structure-choices","title":"optimize data structure choices","description":"Choose data structures that optimize for your access patterns and computational complexity requirements. When you need frequent membership testing or existence checking, prefer Set over Array to achieve O(1) lookup complexity instead of O(n) linear scanning.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Algorithms","language":"Ruby","updated":"2025-08-19","comments":2,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-optimize-data-structure-choices.md"}],"prompt_count":5},{"slug":"concurrency","title":"Threads, async code, locks, shared state","topics":["Concurrency"],"checks":[{"kind":"concurrency-model-checking","title":"Concurrency model checking","method":"formal","method_slug":"formal","catches":"Races and orderings that fail only under specific interleavings.","tool":null,"alternatives":[],"note":null},{"kind":"ub-detection","title":"Undefined-behaviour detection","method":"formal","method_slug":"formal","catches":"Memory-safety and aliasing violations in unsafe code.","tool":null,"alternatives":[],"note":null},{"kind":"property-tests","title":"Property-based tests","method":"testing","method_slug":"testing","catches":"Edge-case inputs nobody wrote a test for; invariants over generated data.","tool":null,"alternatives":[],"note":null}],"prompts":[],"prompt_count":0},{"slug":"networking","title":"Network calls, retries, timeouts, protocols","topics":["Networking","Axios"],"checks":[{"kind":"unit-tests","title":"Unit and integration tests","method":"testing","method_slug":"testing","catches":"Behaviour regressions on the paths the tests exercise.","tool":null,"alternatives":[],"note":null},{"kind":"fuzzing","title":"Fuzzing","method":"testing","method_slug":"testing","catches":"Crashes, panics and hangs on malformed input, especially in parsers and decoders.","tool":null,"alternatives":[],"note":null}],"prompts":[{"slug":"chef-secure-network-operations","title":"Secure network operations","description":"When performing network operations, prioritize security and configurability to ensure robustness across different environments. This includes: 1. **Use explicit command patterns**: When executing shell commands that involve network operations, avoid string interpolation and use argument arrays instead to prevent command injection vulnerabilities.","repository":"chef/chef","domain":"cloud-infra","topic":"Networking","language":"Ruby","updated":"2023-10-25","comments":4,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-secure-network-operations.md"},{"slug":"brew-use-ascii-only-urls","title":"Use ASCII-only URLs","description":"URLs in code should exclusively use ASCII characters for maximum security and compatibility. This prevents potential security vulnerabilities like homograph attacks and ensures consistent behavior across systems.","repository":"Homebrew/brew","domain":"devtools","topic":"Networking","language":"Ruby","updated":"2025-05-21","comments":3,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-use-ascii-only-urls.md"},{"slug":"mastodon-network-resource-limits","title":"Network resource limits","description":"Implement protective limits for network operations to prevent resource exhaustion and denial-of-service attacks. Network operations should have bounded resource consumption to avoid overwhelming servers or clients.","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Networking","language":"Ruby","updated":"2025-02-18","comments":3,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-network-resource-limits.md"}],"prompt_count":3},{"slug":"ui","title":"UI components and pages","topics":["React","Next","Next.js","Vue","Angular"],"checks":[{"kind":"browser-tests","title":"End-to-end browser tests","method":"testing","method_slug":"testing","catches":"User flows broken across components, routing and the network.","tool":null,"alternatives":[],"note":null},{"kind":"linting","title":"Linting","method":"static_analysis","method_slug":"static-analysis","catches":"Bug-prone patterns, unused code and conventions the formatter does not cover.","tool":null,"alternatives":[],"note":null}],"prompts":[],"prompt_count":0},{"slug":"data","title":"Databases, migrations, caching","topics":["Database","Migrations","Caching"],"checks":[{"kind":"unit-tests","title":"Unit and integration tests","method":"testing","method_slug":"testing","catches":"Behaviour regressions on the paths the tests exercise.","tool":null,"alternatives":[],"note":null},{"kind":"version-matrix","title":"Version and platform matrix","method":"testing","method_slug":"testing","catches":"Breakage on a runtime version, OS or feature combination you did not run locally.","tool":{"id":"ci-matrix","method":"testing","kind":"version-matrix","languages":["*"],"upstream":"https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":20,"commands":["analyze (language: 3)"],"run":"analyze (language: 3)","via":null,"triggers":["ci"],"examples":[{"repository":"mastodon/mastodon","slug":"mastodon-mastodon"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"rails-database-specific-query-optimization","title":"Database-specific query optimization","description":"Leverage database-specific features to optimize queries and improve performance. Different database engines have unique capabilities that can significantly enhance query efficiency when used appropriately.","repository":"rails/rails","domain":"app-frameworks","topic":"Database","language":"Ruby","updated":"2025-05-23","comments":7,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-database-specific-query-optimization.md"},{"slug":"discourse-validate-migration-data-comprehensively","title":"validate migration data comprehensively","description":"Migration scripts must thoroughly validate data conditions and handle edge cases to ensure reliable data transformation. Always check for data existence before applying operations, properly handle duplicate records, and avoid migrating calculated or derived fields.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Migrations","language":"Ruby","updated":"2025-08-25","comments":5,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-validate-migration-data-comprehensively.md"},{"slug":"mastodon-optimize-database-queries","title":"Optimize database queries","description":"Write efficient database queries by leveraging proper indexes, using performance-optimized ActiveRecord methods, and avoiding unnecessary database operations. Key practices include:","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Database","language":"Ruby","updated":"2025-07-23","comments":5,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-optimize-database-queries.md"},{"slug":"discourse-avoid-n1-queries","title":"Avoid N+1 queries","description":"Prevent N+1 query performance issues by batching database operations instead of making individual queries within loops. This is critical for application performance as each individual query adds significant overhead.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Database","language":"Ruby","updated":"2025-08-18","comments":4,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-avoid-n1-queries.md"},{"slug":"mastodon-migration-data-dependencies","title":"migration data dependencies","description":"Ensure that migrations properly handle data dependencies and sequencing to prevent deployment failures. When migrations depend on specific records existing (like default roles or seed data), create those records within the migration itself rather than relying on seeds or post-deployment processes.","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Migrations","language":"Ruby","updated":"2025-07-23","comments":4,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-migration-data-dependencies.md"}],"prompt_count":5},{"slug":"performance","title":"Hot paths and performance","topics":["Performance Optimization"],"checks":[],"prompts":[{"slug":"rails-minimize-unnecessary-object-allocations","title":"Minimize unnecessary object allocations","description":"Avoid creating unnecessary objects, especially in frequently executed code paths. This includes being mindful of implicit object allocations from common Ruby operations like array methods, string concatenations, and temporary variable creation.","repository":"rails/rails","domain":"app-frameworks","topic":"Performance Optimization","language":"Ruby","updated":"2025-05-06","comments":6,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-minimize-unnecessary-object-allocations.md"},{"slug":"brew-minimize-unnecessary-operations","title":"Minimize unnecessary operations","description":"Optimize performance by eliminating redundant operations and arranging code to avoid unnecessary computations, especially in frequently executed paths. Follow these principles:","repository":"Homebrew/brew","domain":"devtools","topic":"Performance Optimization","language":"Ruby","updated":"2025-04-02","comments":6,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-minimize-unnecessary-operations.md"},{"slug":"chef-memoize-expensive-operations","title":"Memoize expensive operations","description":"Cache results of expensive operations, especially shell commands and external queries, to avoid redundant executions. Use Ruby's idiomatic memoization pattern with blocks for clarity and efficiency. Only fetch data when needed, and structure code to optimize for the most common execution paths.","repository":"chef/chef","domain":"cloud-infra","topic":"Performance Optimization","language":"Ruby","updated":"2023-10-27","comments":6,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-memoize-expensive-operations.md"},{"slug":"mastodon-batch-similar-operations","title":"batch similar operations","description":"When performing multiple similar operations (database queries, Redis calls, job enqueues, or data lookups), batch them together or eliminate redundancy to reduce overhead and improve performance.","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Performance Optimization","language":"Ruby","updated":"2025-06-10","comments":5,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-batch-similar-operations.md"},{"slug":"discourse-cache-expensive-operations","title":"Cache expensive operations","description":"Identify and eliminate duplicate computations by caching results of expensive operations. This includes memoizing method calls, avoiding redundant database queries, and caching computed values that are used multiple times.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Performance Optimization","language":"Ruby","updated":"2025-08-22","comments":3,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-cache-expensive-operations.md"}],"prompt_count":5},{"slug":"ai","title":"Model, prompt and LLM code","topics":["AI","Pytorch"],"checks":[{"kind":"unit-tests","title":"Unit and integration tests","method":"testing","method_slug":"testing","catches":"Behaviour regressions on the paths the tests exercise.","tool":null,"alternatives":[],"note":null}],"prompts":[],"prompt_count":0},{"slug":"observability","title":"Logging, metrics, tracing","topics":["Logging","Observability"],"checks":[],"prompts":[{"slug":"discourse-include-contextual-log-information","title":"Include contextual log information","description":"Log messages should include sufficient context to make them useful for debugging, monitoring, and audit trails. Include relevant entity IDs, operation details, and descriptive information that helps identify what was happening when the log entry was created.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Logging","language":"Ruby","updated":"2025-08-18","comments":4,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-include-contextual-log-information.md"}],"prompt_count":1},{"slug":"ci-config","title":"CI workflows and configuration files","topics":["CI/CD","Configurations"],"checks":[{"kind":"workflow-linting","title":"CI workflow linting","method":"static_analysis","method_slug":"static-analysis","catches":"Broken GitHub Actions syntax, script injection, over-broad token permissions.","tool":null,"alternatives":[],"note":null},{"kind":"file-hygiene","title":"File hygiene","method":"formatting","method_slug":"formatting","catches":"Invalid JSON, YAML or TOML, merge markers, trailing whitespace, oversized files.","tool":null,"alternatives":[],"note":null}],"prompts":[{"slug":"mastodon-centralize-configuration-management","title":"centralize configuration management","description":"Migrate configuration from direct environment variable access to Rails' config_for mechanism for better organization, testability, and maintainability. Instead of accessing ENV variables directly throughout the codebase, consolidate them into YAML configuration files loaded at application startup.","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Configurations","language":"Ruby","updated":"2025-07-21","comments":7,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-centralize-configuration-management.md"},{"slug":"rails-configure-at-proper-scope","title":"Configure at proper scope","description":"Place configuration options at their proper scope within the framework hierarchy. Avoid tight coupling between components and ensure user configurations aren't accidentally overridden.","repository":"rails/rails","domain":"app-frameworks","topic":"Configurations","language":"Ruby","updated":"2025-01-07","comments":7,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-configure-at-proper-scope.md"},{"slug":"chef-explicit-configuration-over-implicit","title":"Explicit configuration over implicit","description":"Always define explicit configuration defaults rather than relying on implicit behavior or autovivification. Configuration values should: 1. Use explicit nil defaults instead of undefined values","repository":"chef/chef","domain":"cloud-infra","topic":"Configurations","language":"Ruby","updated":"2024-12-20","comments":5,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-explicit-configuration-over-implicit.md"},{"slug":"discourse-safe-setting-modifications","title":"Safe setting modifications","description":"When modifying site settings during operations like imports, jobs, or plugin initialization, implement proper safeguards to prevent unintended permanent changes. Consider the impact on existing sites and provide mechanisms for restoration or warnings.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Configurations","language":"Ruby","updated":"2025-08-10","comments":4,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-safe-setting-modifications.md"},{"slug":"brew-structured-environment-configuration","title":"Structured environment configuration","description":"Use structured environment variable handling with explicit validation instead of directly accessing ENV hash. Implement proper parsing for boolean values, default values, and type conversion. Consider making paths user-specific when creating temporary configurations.","repository":"Homebrew/brew","domain":"devtools","topic":"Configurations","language":"Ruby","updated":"2025-06-05","comments":4,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-structured-environment-configuration.md"},{"slug":"brew-correct-github-actions-annotations","title":"Correct GitHub Actions annotations","description":"When using GitHub Actions workflow commands for annotations, always include double colons in the syntax (::command::). Proper formatting ensures warnings and errors are correctly displayed in the GitHub Actions UI and processed by workflow runners.","repository":"Homebrew/brew","domain":"devtools","topic":"CI/CD","language":"Ruby","updated":"2024-03-14","comments":4,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-correct-github-actions-annotations.md"},{"slug":"react-native-environment-variable-validation","title":"Environment variable validation","description":"Environment variables should be properly validated with correct type checking and without redundant conditions. Common issues include comparing strings to integers and using unnecessary double-checks that can lead to unexpected behavior.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Configurations","language":"Ruby","updated":"2025-06-19","comments":2,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-environment-variable-validation.md"}],"prompt_count":7},{"slug":"dependencies","title":"Dependencies and lockfiles","topics":[],"checks":[{"kind":"dependency-audit","title":"Dependency audit","method":"supply_chain","method_slug":"supply-chain","catches":"Known-vulnerable or disallowed dependencies and licenses.","tool":null,"alternatives":[],"note":null},{"kind":"lockfile-check","title":"Lockfile consistency","method":"supply_chain","method_slug":"supply-chain","catches":"A lockfile that no longer matches its manifest.","tool":null,"alternatives":[],"note":null},{"kind":"version-matrix","title":"Version and platform matrix","method":"testing","method_slug":"testing","catches":"Breakage on a runtime version, OS or feature combination you did not run locally.","tool":{"id":"ci-matrix","method":"testing","kind":"version-matrix","languages":["*"],"upstream":"https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":20,"commands":["analyze (language: 3)"],"run":"analyze (language: 3)","via":null,"triggers":["ci"],"examples":[{"repository":"mastodon/mastodon","slug":"mastodon-mastodon"}]},"alternatives":[],"note":null}],"prompts":[],"prompt_count":0},{"slug":"tests","title":"The tests themselves","topics":["Testing"],"checks":[{"kind":"mutation-testing","title":"Mutation testing","method":"testing","method_slug":"testing","catches":"Tests that keep passing whatever the code does.","tool":null,"alternatives":[],"note":null},{"kind":"version-matrix","title":"Version and platform matrix","method":"testing","method_slug":"testing","catches":"Breakage on a runtime version, OS or feature combination you did not run locally.","tool":{"id":"ci-matrix","method":"testing","kind":"version-matrix","languages":["*"],"upstream":"https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":20,"commands":["analyze (language: 3)"],"run":"analyze (language: 3)","via":null,"triggers":["ci"],"examples":[{"repository":"mastodon/mastodon","slug":"mastodon-mastodon"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"rails-organize-tests-for-clarity","title":"Organize tests for clarity","description":"Structure tests to maximize clarity and maintainability by: 1. Placing related tests together in appropriate test files 2. Using built-in assertion helpers instead of raw assertions","repository":"rails/rails","domain":"app-frameworks","topic":"Testing","language":"Ruby","updated":"2025-06-03","comments":8,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-organize-tests-for-clarity.md"},{"slug":"discourse-optimize-test-fixtures","title":"optimize test fixtures","description":"Use the `fab!` shorthand syntax for creating test fixtures and reuse fabricated objects across tests to improve performance and maintainability. The `fab!` method creates objects once per test context and reuses them, reducing database overhead compared to creating new objects for each test.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Testing","language":"Ruby","updated":"2025-08-20","comments":5,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-optimize-test-fixtures.md"},{"slug":"mastodon-optimize-test-organization","title":"optimize test organization","description":"Organize tests to minimize factory creation, reduce duplication, and improve performance by chaining assertions and extracting common values. **Key practices:**","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Testing","language":"Ruby","updated":"2024-12-20","comments":4,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-optimize-test-organization.md"},{"slug":"chef-use-strict-test-doubles","title":"Use strict test doubles","description":"Always use strict test doubles (instance_double, class_double) instead of basic doubles or OpenStruct in tests. Strict doubles provide compile-time checks that prevent tests from passing when the mocked interface changes, improving test maintainability and catching integration issues early.","repository":"chef/chef","domain":"cloud-infra","topic":"Testing","language":"Ruby","updated":"2021-08-26","comments":4,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-use-strict-test-doubles.md"},{"slug":"brew-structure-test-fixtures-clearly","title":"Structure test fixtures clearly","description":"Test fixtures should clearly separate input parameters from expected outputs to enhance readability and maintainability. For table-driven tests, use a consistent pattern that explicitly distinguishes between test inputs and expected results. This approach makes tests more understandable and easier to maintain over time.","repository":"Homebrew/brew","domain":"devtools","topic":"Testing","language":"Ruby","updated":"2025-06-17","comments":3,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-structure-test-fixtures-clearly.md"}],"prompt_count":5},{"slug":"docs","title":"Documentation and comments","topics":["Documentation"],"checks":[{"kind":"docs-build","title":"Docs build","method":"static_analysis","method_slug":"static-analysis","catches":"Broken cross-references, links and markup in documentation.","tool":null,"alternatives":[],"note":null},{"kind":"spelling","title":"Spelling","method":"formatting","method_slug":"formatting","catches":"Typos in identifiers, comments and docs.","tool":null,"alternatives":[],"note":null}],"prompts":[{"slug":"chef-document-with-examples","title":"Document with examples","description":"Always include comprehensive documentation with clear examples for properties, methods, and code patterns. Documentation should include: 1. **Property descriptions**: Use the `description:` attribute to explain what each property does","repository":"chef/chef","domain":"cloud-infra","topic":"Documentation","language":"Ruby","updated":"2025-02-11","comments":7,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-document-with-examples.md"},{"slug":"rails-write-complete-api-examples","title":"Write complete API examples","description":"Always provide complete, context-rich code examples in API documentation. Examples should show the full usage context and avoid abbreviated or partial code snippets that may confuse developers.","repository":"rails/rails","domain":"app-frameworks","topic":"Documentation","language":"Ruby","updated":"2025-06-30","comments":5,"stars":57027,"raw":"https://awesomereviewers.com/raw/rails-write-complete-api-examples.md"},{"slug":"brew-document-non-obvious-decisions","title":"Document non-obvious decisions","description":"Always add clear comments explaining non-obvious code decisions such as magic numbers, arbitrary values, truncation limits, or special case handling. Convert magic numbers to named constants with explanatory comments when appropriate. This documentation helps future developers understand the reasoning behind code decisions and makes maintenance easier.","repository":"Homebrew/brew","domain":"devtools","topic":"Documentation","language":"Ruby","updated":"2025-05-30","comments":3,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-document-non-obvious-decisions.md"},{"slug":"aws-sdk-js-example-documentation-standards","title":"Example documentation standards","description":"Organize API documentation examples for maximum clarity and usefulness. Place hand-written examples before generated examples since they're typically more valuable to users. When using @example tags, include only the descriptive title without redundant 'Example:' prefixes.","repository":"aws/aws-sdk-js","domain":"cloud-infra","topic":"Documentation","language":"Ruby","updated":"2015-07-22","comments":2,"stars":7628,"raw":"https://awesomereviewers.com/raw/aws-sdk-js-example-documentation-standards.md"}],"prompt_count":4}]}
