{"slug":"java","title":"Java","extensions":[".java"],"entry_languages":["Java"],"prompts":135,"repos":11,"sample":[{"repository":"flutter/flutter","slug":"flutter-flutter","checks":1},{"repository":"facebook/react-native","slug":"facebook-react-native","checks":4},{"repository":"spring-projects/spring-boot","slug":"spring-projects-spring-boot","checks":0},{"repository":"elastic/elasticsearch","slug":"elastic-elasticsearch","checks":1},{"repository":"spring-projects/spring-framework","slug":"spring-projects-spring-framework","checks":0},{"repository":"apache/spark","slug":"apache-spark","checks":8},{"repository":"netty/netty","slug":"netty-netty","checks":2},{"repository":"apache/kafka","slug":"apache-kafka","checks":0},{"repository":"bazelbuild/bazel","slug":"bazelbuild-bazel","checks":0},{"repository":"quarkusio/quarkus","slug":"quarkusio-quarkus","checks":0},{"repository":"deeplearning4j/deeplearning4j","slug":"deeplearning4j-deeplearning4j","checks":0}],"tools":[{"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":9,"commands":["analyze (language: 2)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"netty/netty","slug":"netty-netty"}]},{"id":"codeql","method":"static_analysis","kind":"security-scanning","languages":["*"],"upstream":"https://github.com/github/codeql","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":9,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"netty/netty","slug":"netty-netty"}]}],"headline":[],"raw_md":"https://awesomereviewers.com/raw/verify/java.md","raw_json":"https://awesomereviewers.com/raw/verify/java.json","url":"https://awesomereviewers.com/verify/java/","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":"The compiler type-checks on every build and test run; a failing build is this check failing."},{"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":"elasticsearch-extract-for-clarity","title":"Extract for clarity","description":"Extract complex or reused logic into focused, well-named methods with single responsibilities. This improves code readability, testability, and maintainability while reducing duplication. When refactoring:","repository":"elastic/elasticsearch","domain":"data-systems","topic":"Code Style","language":"Java","updated":"2025-07-02","comments":16,"stars":73104,"raw":"https://awesomereviewers.com/raw/elasticsearch-extract-for-clarity.md"},{"slug":"bazel-use-descriptive-unambiguous-names","title":"Use descriptive, unambiguous names","description":"Choose names that clearly communicate their purpose and avoid ambiguity or misinterpretation. Names should be self-documenting and consider what developers will wonder about at the call site.","repository":"bazelbuild/bazel","domain":"devtools","topic":"Naming Conventions","language":"Java","updated":"2025-08-27","comments":15,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-use-descriptive-unambiguous-names.md"},{"slug":"bazel-simplify-complex-code","title":"Simplify complex code","description":"Break down complex code structures into simpler, more readable forms to improve maintainability and reduce cognitive load. This involves several key practices:","repository":"bazelbuild/bazel","domain":"devtools","topic":"Code Style","language":"Java","updated":"2025-05-21","comments":15,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-simplify-complex-code.md"},{"slug":"spring-framework-spring-code-style","title":"Spring code style","description":"Follow Spring Framework's code style guidelines to ensure consistency\\ \\ across the codebase. Key rules include:\\n\\n1. **Import statements**: \\n   - Use\\ \\ specific imports rather than wildcard imports","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Code Style","language":"Java","updated":"2024-09-20","comments":13,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-spring-code-style.md"},{"slug":"deeplearning4j-clean-up-your-code","title":"Clean up your code","description":"Maintain clean, professional code by removing development artifacts\\ \\ and improving readability:\\n\\n1. **Remove debug code before committing**:\\n  \\ \\ - Delete all debugging print statements","repository":"deeplearning4j/deeplearning4j","domain":"ml-systems","topic":"Code Style","language":"Java","updated":"2024-08-06","comments":13,"stars":14036,"raw":"https://awesomereviewers.com/raw/deeplearning4j-clean-up-your-code.md"},{"slug":"kafka-use-semantically-accurate-names","title":"Use semantically accurate names","description":"Choose names that accurately reflect the purpose, scope, and semantics of variables, methods, and classes. Names should be self-documenting and eliminate ambiguity about what the code element represents or does.","repository":"apache/kafka","domain":"data-systems","topic":"Naming Conventions","language":"Java","updated":"2025-07-28","comments":9,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-use-semantically-accurate-names.md"},{"slug":"elasticsearch-name-reflects-meaning","title":"Name reflects meaning","description":"Choose names that clearly communicate the intent, behavior, and semantics of code elements. Names should be accurate, consistent, and follow established patterns:","repository":"elastic/elasticsearch","domain":"data-systems","topic":"Naming Conventions","language":"Java","updated":"2025-07-02","comments":9,"stars":73104,"raw":"https://awesomereviewers.com/raw/elasticsearch-name-reflects-meaning.md"},{"slug":"netty-semantic-over-generic-names","title":"Semantic over generic names","description":"Choose specific, descriptive names that clearly convey purpose over generic or abbreviated identifiers. Names should be self-documenting and unambiguous about their role.","repository":"netty/netty","domain":"runtimes","topic":"Naming Conventions","language":"Java","updated":"2025-06-02","comments":9,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-semantic-over-generic-names.md"},{"slug":"kafka-prefer-modern-collection-apis","title":"prefer modern collection APIs","description":"Use modern collection creation methods instead of legacy alternatives for improved readability and conciseness. Replace older patterns with their modern equivalents:","repository":"apache/kafka","domain":"data-systems","topic":"Code Style","language":"Java","updated":"2025-07-22","comments":8,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-prefer-modern-collection-apis.md"},{"slug":"spring-boot-follow-consistent-style-conventions","title":"Follow consistent style conventions","description":"Spring Boot projects maintain specific coding style conventions for consistency and readability. When contributing code, adhere to the following style guidelines:","repository":"spring-projects/spring-boot","domain":"app-frameworks","topic":"Code Style","language":"Java","updated":"2025-01-21","comments":8,"stars":77637,"raw":"https://awesomereviewers.com/raw/spring-boot-follow-consistent-style-conventions.md"},{"slug":"spring-framework-descriptive-specific-names","title":"Descriptive specific names","description":"Choose names that are specific, descriptive, and accurately reflect the purpose and domain of variables, methods, classes, and constants. Avoid overly generic terms that could be ambiguous or conflict with future features.","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Naming Conventions","language":"Java","updated":"2024-02-06","comments":8,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-descriptive-specific-names.md"},{"slug":"netty-simplify-control-flow","title":"Simplify control flow","description":"Streamline code by simplifying control flow structures to improve readability. Eliminate unnecessary nesting and verbosity by applying these guidelines:","repository":"netty/netty","domain":"runtimes","topic":"Code Style","language":"Java","updated":"2025-03-20","comments":7,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-simplify-control-flow.md"}],"prompt_count":23},"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":1,"share":9,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"netty/netty","slug":"netty-netty"}]},"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":"spring-boot-explicit-security-configurations","title":"Explicit security configurations","description":"When configuring security-related features, always use the most specific configurer classes to make security decisions explicit and improve code readability. For example, when disabling CSRF protection in Spring Security, use `CsrfConfigurer::disable` instead of the more generic `AbstractHttpConfigurer::disable`:","repository":"spring-projects/spring-boot","domain":"app-frameworks","topic":"Security","language":"Java","updated":"2024-06-04","comments":8,"stars":77637,"raw":"https://awesomereviewers.com/raw/spring-boot-explicit-security-configurations.md"},{"slug":"quarkus-secure-authentication-defaults","title":"Secure authentication defaults","description":"Configure authentication mechanisms with secure default settings to prevent security vulnerabilities. When implementing WebAuthn or similar authentication protocols:","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Security","language":"Java","updated":"2025-05-09","comments":4,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-secure-authentication-defaults.md"},{"slug":"netty-enable-header-validation","title":"Enable header validation","description":"Always enable HTTP header validation to prevent request/response splitting vulnerabilities. These attacks can occur when untrusted data containing CRLF sequences is inserted into HTTP headers, allowing attackers to inject additional headers or even response body content.","repository":"netty/netty","domain":"runtimes","topic":"Security","language":"Java","updated":"2025-05-16","comments":2,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-enable-header-validation.md"},{"slug":"elasticsearch-enforce-least-privilege","title":"Enforce least privilege","description":"Always assign the minimum permissions necessary for functionality when implementing role-based access controls. This fundamental security principle reduces the potential attack surface and minimizes the impact of compromised accounts.","repository":"elastic/elasticsearch","domain":"data-systems","topic":"Security","language":"Java","updated":"2025-07-01","comments":1,"stars":73104,"raw":"https://awesomereviewers.com/raw/elasticsearch-enforce-least-privilege.md"},{"slug":"bazel-temporary-security-workarounds","title":"temporary security workarounds","description":"When implementing workarounds for OS-level security restrictions, ensure they are explicitly temporary and include clear plans for proper long-term solutions. Avoid recommending users bypass security features through unofficial methods, and instead guide them toward sanctioned approaches when possible.","repository":"bazelbuild/bazel","domain":"devtools","topic":"Security","language":"Java","updated":"2025-06-30","comments":1,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-temporary-security-workarounds.md"},{"slug":"kafka-avoid-password-conversions","title":"avoid password conversions","description":"When handling sensitive data like passwords, avoid unnecessary type conversions that create additional copies in memory. Pass char[] arrays directly to methods that accept them instead of converting to String and back to char[]. This minimizes the number of sensitive data copies in memory and reduces the attack surface.","repository":"apache/kafka","domain":"data-systems","topic":"Security","language":"Java","updated":"2025-03-05","comments":1,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-avoid-password-conversions.md"},{"slug":"spring-framework-validate-security-sensitive-inputs","title":"Validate security-sensitive inputs","description":"Always use appropriate validation mechanisms for security-sensitive inputs to prevent vulnerabilities. When implementing validation for headers, origins, user inputs, or any security-related data, consult security documentation and use established validators rather than creating custom validation logic.","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Security","language":"Java","updated":"2024-10-11","comments":1,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-validate-security-sensitive-inputs.md"}],"prompt_count":7},{"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":"The compiler type-checks on every build and test run; a failing build is this check failing."},{"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":"spring-boot-preserve-api-compatibility","title":"Preserve API compatibility","description":"When evolving APIs, maintain backward compatibility to avoid breaking client code. Consider these guidelines: 1. **Add overloaded methods instead of modifying signatures**: When adding parameters, create a new method rather than changing an existing one.","repository":"spring-projects/spring-boot","domain":"app-frameworks","topic":"API","language":"Java","updated":"2024-01-10","comments":9,"stars":77637,"raw":"https://awesomereviewers.com/raw/spring-boot-preserve-api-compatibility.md"},{"slug":"quarkus-meaningful-error-communication","title":"Meaningful error communication","description":"Error handling should be designed to provide clear, actionable information to developers while avoiding redundancy. Follow these practices: 1. **Don''t duplicate error reporting** - If you''re throwing an exception, don''t also log the same error. This creates noise and confusion.","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Error Handling","language":"Java","updated":"2025-07-03","comments":7,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-meaningful-error-communication.md"},{"slug":"quarkus-api-evolution-strategy","title":"API evolution strategy","description":"Design APIs with future extensibility in mind by using parameter objects instead of direct method parameters. When an API might need additional parameters in the future, encapsulate them in an interface or class:","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"API","language":"Java","updated":"2025-05-14","comments":7,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-api-evolution-strategy.md"},{"slug":"bazel-prefer-simple-api-designs","title":"prefer simple API designs","description":"Design APIs with simple, direct interfaces rather than complex parameter passing patterns or unnecessary indirection. Use appropriate parameter types (e.g., `PathFragment` instead of `String`, `ImmutableMap` instead of `BiFunction`) and avoid expanding API surface area when existing patterns can be reused.","repository":"bazelbuild/bazel","domain":"devtools","topic":"API","language":"Java","updated":"2025-05-09","comments":7,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-prefer-simple-api-designs.md"},{"slug":"bazel-explicit-null-handling","title":"Explicit null handling","description":"Always make null handling explicit through proper annotations, defensive checks, and clear documentation. Use @Nullable annotations for parameters and fields that can be null, add precondition checks with meaningful error messages for required non-null values, and document when and why values may be null.","repository":"bazelbuild/bazel","domain":"devtools","topic":"Null Handling","language":"Java","updated":"2025-07-02","comments":6,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-explicit-null-handling.md"},{"slug":"spring-boot-meaningful-exception-design","title":"Meaningful exception design","description":"Design exceptions to provide clear context, preserve stack traces, and propagate correctly through your system. Key practices include: 1. Choose the most appropriate exception type based on the error condition:","repository":"spring-projects/spring-boot","domain":"app-frameworks","topic":"Error Handling","language":"Java","updated":"2025-02-17","comments":6,"stars":77637,"raw":"https://awesomereviewers.com/raw/spring-boot-meaningful-exception-design.md"},{"slug":"netty-use-null-validation-utilities","title":"Use null validation utilities","description":"Consistently use utility methods like `ObjectUtil.checkNotNull()` or `Objects.requireNonNull()` to validate that parameters are not null. When assigning parameters to instance variables, combine the null check with the assignment for cleaner, more maintainable code:","repository":"netty/netty","domain":"runtimes","topic":"Null Handling","language":"Java","updated":"2025-01-21","comments":6,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-use-null-validation-utilities.md"},{"slug":"deeplearning4j-validate-and-document-nulls","title":"Validate and document nulls","description":"Always handle null values explicitly and consistently throughout your codebase to prevent null pointer exceptions. Follow these guidelines: 1. **Validate nulls early** using Preconditions to provide clear error messages:","repository":"deeplearning4j/deeplearning4j","domain":"ml-systems","topic":"Null Handling","language":"Java","updated":"2022-04-10","comments":6,"stars":14036,"raw":"https://awesomereviewers.com/raw/deeplearning4j-validate-and-document-nulls.md"},{"slug":"kafka-api-completeness-validation","title":"API completeness validation","description":"Ensure APIs are complete by validating that all necessary cases are handled, all required arguments are properly validated, and response structures are consistent across similar operations.","repository":"apache/kafka","domain":"data-systems","topic":"API","language":"Java","updated":"2025-07-23","comments":5,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-api-completeness-validation.md"},{"slug":"kafka-defensive-null-validation","title":"Defensive null validation","description":"Always validate null parameters and dependencies early with proper ordering to prevent NullPointerExceptions and provide clear error messages. Use defensive programming practices including parameter validation, method overloading instead of null parameter handling, and careful ordering of null checks.","repository":"apache/kafka","domain":"data-systems","topic":"Null Handling","language":"Java","updated":"2025-07-17","comments":5,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-defensive-null-validation.md"},{"slug":"spring-framework-cleanup-error-handling","title":"Cleanup error handling","description":"When handling resources that require cleanup (like streams, connections, or transactions), ensure that errors during the cleanup phase don't overshadow or silently replace the original error. This applies to both try-with-resources and traditional try/finally blocks.","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Error Handling","language":"Java","updated":"2025-06-13","comments":5,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-cleanup-error-handling.md"},{"slug":"quarkus-prefer-optional-over-nulls","title":"Prefer Optional over nulls","description":"Use Java''s Optional API instead of null checks to improve code readability, safety, and maintainability. When dealing with potentially absent values:","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Null Handling","language":"Java","updated":"2025-05-24","comments":5,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-prefer-optional-over-nulls.md"}],"prompt_count":30},{"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":9,"commands":["analyze (language: 2)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"netty/netty","slug":"netty-netty"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"spring-boot-concrete-bean-return-types","title":"Concrete bean return types","description":"When defining `@Bean` methods in Spring configurations, use concrete return types rather than interfaces while using interface types in `@ConditionalOnMissingBean` annotations. This approach maximizes type information available to the Spring bean factory while maintaining flexibility in bean overriding.","repository":"spring-projects/spring-boot","domain":"app-frameworks","topic":"Spring","language":"Java","updated":"2024-01-27","comments":6,"stars":77637,"raw":"https://awesomereviewers.com/raw/spring-boot-concrete-bean-return-types.md"},{"slug":"spring-framework-respect-annotation-processing-order","title":"Respect annotation processing order","description":"When designing Spring components, pay careful attention to the order in which annotations are processed, especially for inheritance scenarios. Spring processes annotations in a specific sequence that can affect bean initialization and override behavior.","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Spring","language":"Java","updated":"2025-06-04","comments":5,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-respect-annotation-processing-order.md"},{"slug":"quarkus-spring-di-precedence-rules","title":"Spring DI precedence rules","description":"When developing Quarkus extensions that interact with classes containing Spring annotations (like `@Service`, `@Component`, etc.), ensure your extension respects Spring DI's scope definitions by setting appropriate annotation transformer priorities.","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Spring","language":"Java","updated":"2025-04-28","comments":2,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-spring-di-precedence-rules.md"}],"prompt_count":3},{"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":"elasticsearch-optimize-before-implementing","title":"Optimize before implementing","description":"Before implementing algorithms, evaluate their efficiency implications, especially for operations that may be executed frequently or with large datasets. Consider:","repository":"elastic/elasticsearch","domain":"data-systems","topic":"Algorithms","language":"Java","updated":"2025-06-30","comments":8,"stars":73104,"raw":"https://awesomereviewers.com/raw/elasticsearch-optimize-before-implementing.md"},{"slug":"bazel-optimize-algorithm-choices","title":"optimize algorithm choices","description":"Choose algorithms and data structures that provide both deterministic behavior and optimal performance characteristics. Prefer ordered collections when iteration order matters, optimize pattern matching to avoid expensive operations, and be mindful of algorithmic complexity.","repository":"bazelbuild/bazel","domain":"devtools","topic":"Algorithms","language":"Java","updated":"2025-07-12","comments":7,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-optimize-algorithm-choices.md"},{"slug":"spring-framework-use-appropriate-collections","title":"Use appropriate collections","description":"Choose the right collection implementation for each algorithmic task to optimize both performance and readability. Use Sets for operations requiring uniqueness, TreeMap for maintaining sorted keys, and leverage built-in collection methods rather than implementing operations manually.","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Algorithms","language":"Java","updated":"2020-08-03","comments":6,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-use-appropriate-collections.md"},{"slug":"kafka-optimize-algorithmic-complexity","title":"optimize algorithmic complexity","description":"Replace inefficient algorithms with more optimal data structures and approaches to improve computational complexity. Look for opportunities to use appropriate data structures (like priority queues) instead of linear searches, avoid redundant iterations, and choose efficient traversal patterns.","repository":"apache/kafka","domain":"data-systems","topic":"Algorithms","language":"Java","updated":"2025-07-21","comments":5,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-optimize-algorithmic-complexity.md"},{"slug":"quarkus-optimize-algorithmic-operations","title":"Optimize algorithmic operations","description":"Before implementing or modifying algorithms, carefully evaluate data structure properties and operation costs. Always: 1. **Understand data structure guarantees**: Choose structures that provide the necessary ordering and performance characteristics. For instance, when replacing one structure with another, be aware of their different behaviors:","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Algorithms","language":"Java","updated":"2025-06-17","comments":5,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-optimize-algorithmic-operations.md"},{"slug":"netty-optimize-search-operations","title":"Optimize search operations","description":"Enhance search algorithm performance by prioritizing common cases, using appropriate data structures, and avoiding unnecessary operations. When implementing binary search:","repository":"netty/netty","domain":"runtimes","topic":"Algorithms","language":"Java","updated":"2025-06-27","comments":4,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-optimize-search-operations.md"},{"slug":"react-native-optimize-algorithmic-efficiency","title":"optimize algorithmic efficiency","description":"When implementing algorithms, especially in performance-critical paths like scroll handlers or layout methods, prioritize computational efficiency and avoid expensive operations. Consider algorithmic complexity and choose more efficient approaches when dealing with large datasets or frequently called methods.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Algorithms","language":"Java","updated":"2024-12-05","comments":4,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-optimize-algorithmic-efficiency.md"},{"slug":"deeplearning4j-compare-floating-point-safely","title":"Compare floating-point safely","description":"When implementing numerical algorithms, never compare floating-point values directly for equality due to precision errors. Instead: 1. Use an epsilon threshold for comparisons:","repository":"deeplearning4j/deeplearning4j","domain":"ml-systems","topic":"Algorithms","language":"Java","updated":"2023-01-10","comments":4,"stars":14036,"raw":"https://awesomereviewers.com/raw/deeplearning4j-compare-floating-point-safely.md"},{"slug":"spark-test-algorithmic-performance-scaling","title":"Test algorithmic performance scaling","description":"When implementing or modifying algorithms, especially data structures like hash tables, bloom filters, or pattern matching logic, ensure performance characteristics are validated across different input scales. Many algorithms exhibit degraded performance or correctness issues that only become apparent with large datasets.","repository":"apache/spark","domain":"data-systems","topic":"Algorithms","language":"Java","updated":"2025-06-16","comments":2,"stars":41554,"raw":"https://awesomereviewers.com/raw/spark-test-algorithmic-performance-scaling.md"}],"prompt_count":9},{"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":[{"slug":"react-native-thread-safe-shared-state","title":"Thread-safe shared state","description":"Ensure that shared mutable state is properly protected against concurrent access to prevent race conditions and data corruption. When multiple threads can access the same mutable data, use appropriate synchronization mechanisms such as ThreadLocal, locks, or atomic operations.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Concurrency","language":"Java","updated":"2024-12-02","comments":10,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-thread-safe-shared-state.md"},{"slug":"bazel-executor-service-lifecycle","title":"Executor service lifecycle","description":"Properly manage executor service lifecycle to prevent resource leaks, deadlocks, and orphaned threads that can cause system inconsistencies. Key practices:","repository":"bazelbuild/bazel","domain":"devtools","topic":"Concurrency","language":"Java","updated":"2025-05-21","comments":7,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-executor-service-lifecycle.md"},{"slug":"kafka-synchronization-safety-patterns","title":"Synchronization safety patterns","description":"Ensure proper synchronization mechanisms to prevent deadlocks and race conditions in concurrent code. When designing thread-safe components, carefully consider lock ordering, avoid nested synchronization blocks that could cause deadlocks, and make mutable shared state thread-safe.","repository":"apache/kafka","domain":"data-systems","topic":"Concurrency","language":"Java","updated":"2025-07-14","comments":6,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-synchronization-safety-patterns.md"},{"slug":"quarkus-thread-safe-state-management","title":"Thread-safe state management","description":"When managing state accessed by multiple threads, ensure thread safety through appropriate synchronization mechanisms: 1. **Use thread-safe collections** for multi-threaded access:","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Concurrency","language":"Java","updated":"2025-07-01","comments":6,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-thread-safe-state-management.md"},{"slug":"elasticsearch-prefer-callbacks-over-blocking","title":"Prefer callbacks over blocking","description":"Always structure concurrent code to use asynchronous callbacks instead of blocking operations. Blocking calls like CountDownLatch, Thread.join(), or Future.get() can lead to thread starvation, reduced throughput, and complex deadlock scenarios.","repository":"elastic/elasticsearch","domain":"data-systems","topic":"Concurrency","language":"Java","updated":"2025-06-29","comments":6,"stars":73104,"raw":"https://awesomereviewers.com/raw/elasticsearch-prefer-callbacks-over-blocking.md"},{"slug":"netty-memory-ordering-needs-barriers","title":"Memory ordering needs barriers","description":"Ensure proper memory ordering in concurrent code by using appropriate memory barriers and atomic operations based on the access pattern. When implementing release-store semantics, place the store fence before the actual store to prevent instruction reordering:","repository":"netty/netty","domain":"runtimes","topic":"Concurrency","language":"Java","updated":"2025-04-01","comments":6,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-memory-ordering-needs-barriers.md"},{"slug":"spring-framework-minimize-lock-contention","title":"Minimize lock contention","description":"When implementing thread-safe code, minimize the scope and duration of locks to reduce contention and improve performance. Keep critical sections small, avoid redundant operations under locks, and consider whether pessimistic locking is appropriate for your use case.","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Concurrency","language":"Java","updated":"2024-06-06","comments":4,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-minimize-lock-contention.md"},{"slug":"deeplearning4j-always-secure-your-locks","title":"Always secure your locks","description":"When using locks or other synchronization mechanisms in concurrent code, always release locks in a finally block to ensure they are released even when exceptions occur. Failure to do so can lead to deadlocks if other threads need the same lock.","repository":"deeplearning4j/deeplearning4j","domain":"ml-systems","topic":"Concurrency","language":"Java","updated":"2019-12-06","comments":3,"stars":14036,"raw":"https://awesomereviewers.com/raw/deeplearning4j-always-secure-your-locks.md"},{"slug":"opencv-thread-safe-resource-cleanup","title":"Thread-safe resource cleanup","description":"When implementing resource cleanup in concurrent applications, avoid using deprecated finalizers and instead use PhantomReference-based cleanup mechanisms that ensure thread safety.","repository":"opencv/opencv","domain":"ml-systems","topic":"Concurrency","language":"Java","updated":"2025-03-17","comments":2,"stars":82865,"raw":"https://awesomereviewers.com/raw/opencv-thread-safe-resource-cleanup.md"},{"slug":"maplibre-native-lock-responsibly-always","title":"Lock responsibly, always","description":"Ensure proper management of locks and concurrent resources throughout their lifecycle. When implementing concurrency: 1. Encapsulate locking/unlocking in appropriate methods rather than duplicating code","repository":"maplibre/maplibre-native","domain":"app-frameworks","topic":"Concurrency","language":"Java","updated":"2024-08-23","comments":2,"stars":1411,"raw":"https://awesomereviewers.com/raw/maplibre-native-lock-responsibly-always.md"}],"prompt_count":10},{"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":"netty-protect-network-buffer-lifecycle","title":"Protect network buffer lifecycle","description":"When handling network buffers in protocol implementations, ensure proper lifecycle management to prevent memory leaks and data corruption. Key practices:","repository":"netty/netty","domain":"runtimes","topic":"Networking","language":"Java","updated":"2025-02-12","comments":4,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-protect-network-buffer-lifecycle.md"},{"slug":"kafka-validate-network-state","title":"validate network state","description":"Always validate network connectivity and cluster state before attempting network operations. Check for leader availability, partition existence, and proper metadata state to avoid unnecessary network calls and provide better error handling.","repository":"apache/kafka","domain":"data-systems","topic":"Networking","language":"Java","updated":"2025-07-24","comments":3,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-validate-network-state.md"},{"slug":"spring-framework-clone-network-headers-carefully","title":"Clone network headers carefully","description":"When working with HTTP or WebSocket headers in networking code, be cautious about header manipulation, cloning, and lifecycle management. Native headers in server implementations are often pooled and may be recycled after initial processing.","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Networking","language":"Java","updated":"2024-10-08","comments":3,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-clone-network-headers-carefully.md"},{"slug":"react-native-platform-api-consistency","title":"platform API consistency","description":"When implementing cross-platform functionality, prioritize consistency and avoid replicating platform-specific bugs or inconsistencies. Consider the broader architectural impact of API choices, especially when they require significant migrations or affect multiple components.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Networking","language":"Java","updated":"2025-06-11","comments":2,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-platform-api-consistency.md"},{"slug":"bazel-document-network-interface-purposes","title":"Document network interface purposes","description":"When implementing multiple network-related interfaces or classes that handle similar operations (like downloading), clearly document the purpose, scope, and differences between each interface to prevent confusion and misuse.","repository":"bazelbuild/bazel","domain":"devtools","topic":"Networking","language":"Java","updated":"2024-07-26","comments":2,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-document-network-interface-purposes.md"}],"prompt_count":5},{"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":[{"slug":"react-native-manage-component-state-dependencies","title":"manage component state dependencies","description":"Ensure React components have all necessary state information before rendering and that lifecycle events don't cause unintended state interactions. Components should validate they have required data (like sizing information) before updating, and state changes should be carefully managed to prevent side effects.","repository":"facebook/react-native","domain":"app-frameworks","topic":"React","language":"Java","updated":"2024-11-26","comments":2,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-manage-component-state-dependencies.md"}],"prompt_count":1},{"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":9,"commands":["analyze (language: 2)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"netty/netty","slug":"netty-netty"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"elasticsearch-prevent-redundant-operations","title":"Prevent redundant operations","description":"In distributed database systems, prevent redundant operations that can overload cluster resources. When implementing update operations that might be triggered simultaneously from multiple nodes:","repository":"elastic/elasticsearch","domain":"data-systems","topic":"Database","language":"Java","updated":"2025-07-02","comments":5,"stars":73104,"raw":"https://awesomereviewers.com/raw/elasticsearch-prevent-redundant-operations.md"},{"slug":"kafka-optimize-data-structures","title":"optimize data structures","description":"When working with data structures and collections, optimize for performance and correctness by using modern APIs, proper sizing, result filtering, and lazy initialization. Use `List.of()` and `Map.of()` instead of legacy `Collections.singletonList()` and `Collections.singletonMap()` for better readability and performance. Size collections appropriately -...","repository":"apache/kafka","domain":"data-systems","topic":"Database","language":"Java","updated":"2025-07-24","comments":4,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-optimize-data-structures.md"},{"slug":"quarkus-validate-database-connections-explicitly","title":"Validate database connections explicitly","description":"Always implement explicit database connection validation strategies to ensure robust application behavior during startup and runtime. This includes: 1. Configure validation queries with appropriate timeouts:","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Database","language":"Java","updated":"2025-07-01","comments":4,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-validate-database-connections-explicitly.md"},{"slug":"bazel-avoid-eager-cache-invalidation","title":"Avoid eager cache invalidation","description":"Resist the urge to eagerly invalidate cache entries unless you have definitive proof that the cached data is invalid and cannot provide value for future operations. Cache entries can still be valuable even when their associated remote artifacts have expired or been removed.","repository":"bazelbuild/bazel","domain":"devtools","topic":"Caching","language":"Java","updated":"2025-08-27","comments":3,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-avoid-eager-cache-invalidation.md"},{"slug":"spark-context-independent-schema-design","title":"context-independent schema design","description":"Database schema elements (views, constraints, tables) should be designed to be context-independent and self-contained. This means all identifiers should be fully qualified, and only information supported by the SQL parser should be included in DDL representations.","repository":"apache/spark","domain":"data-systems","topic":"Database","language":"Java","updated":"2025-07-28","comments":3,"stars":41554,"raw":"https://awesomereviewers.com/raw/spark-context-independent-schema-design.md"},{"slug":"spring-framework-database-agnostic-sql-syntax","title":"Database-agnostic SQL syntax","description":"Write SQL statements that conform to standard SQL rather than relying on vendor-specific dialects to ensure portability across different database systems.","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Database","language":"Java","updated":"2023-09-04","comments":3,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-database-agnostic-sql-syntax.md"}],"prompt_count":6},{"slug":"performance","title":"Hot paths and performance","topics":["Performance Optimization"],"checks":[],"prompts":[{"slug":"netty-optimize-allocation-hotspots","title":"Optimize allocation hotspots","description":"Identify and optimize object allocation in performance-critical paths by applying appropriate allocation strategies based on usage patterns. For frequently accessed objects, consider reusing instances rather than creating new ones. For short-lived objects in hot code paths, evaluate whether the JIT can optimize allocations away or if explicit object...","repository":"netty/netty","domain":"runtimes","topic":"Performance Optimization","language":"Java","updated":"2025-07-03","comments":17,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-optimize-allocation-hotspots.md"},{"slug":"spring-framework-minimize-allocation-hotspots","title":"Minimize allocation hotspots","description":"Reduce object creation in performance-critical paths by carefully evaluating allocation patterns. For frequently instantiated objects, consider caching instances or using static helpers, but always validate improvements with proper benchmarks.","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Performance Optimization","language":"Java","updated":"2024-02-01","comments":11,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-minimize-allocation-hotspots.md"},{"slug":"kafka-avoid-unnecessary-object-creation","title":"avoid unnecessary object creation","description":"Minimize object allocation in performance-critical code paths by reusing existing objects, caching expensive operations, and choosing efficient alternatives to object creation patterns.","repository":"apache/kafka","domain":"data-systems","topic":"Performance Optimization","language":"Java","updated":"2025-07-24","comments":6,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-avoid-unnecessary-object-creation.md"},{"slug":"bazel-avoid-unnecessary-computations","title":"Avoid unnecessary computations","description":"Before performing expensive operations, check if the work is actually needed or if more efficient alternatives exist. This includes validating preconditions, using optimized system calls, and avoiding duplicate method invocations.","repository":"bazelbuild/bazel","domain":"devtools","topic":"Performance Optimization","language":"Java","updated":"2025-07-15","comments":6,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-avoid-unnecessary-computations.md"},{"slug":"elasticsearch-measure-before-optimizing-performance","title":"Measure before optimizing performance","description":"Before implementing performance optimizations, measure and validate the impact through benchmarks. This applies especially to: 1. Changes affecting common operations (string conversions, collections)","repository":"elastic/elasticsearch","domain":"data-systems","topic":"Performance Optimization","language":"Java","updated":"2025-07-01","comments":6,"stars":73104,"raw":"https://awesomereviewers.com/raw/elasticsearch-measure-before-optimizing-performance.md"},{"slug":"quarkus-avoid-unnecessary-allocations","title":"Avoid unnecessary allocations","description":"Minimize object creation and memory allocations, especially in frequently called methods and hot code paths, to reduce garbage collection pressure and improve performance.","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Performance Optimization","language":"Java","updated":"2025-06-04","comments":4,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-avoid-unnecessary-allocations.md"},{"slug":"deeplearning4j-minimize-object-allocations","title":"Minimize object allocations","description":"Avoid creating unnecessary temporary objects or arrays which can impact performance through increased garbage collection and memory pressure. Apply these techniques to optimize memory usage:","repository":"deeplearning4j/deeplearning4j","domain":"ml-systems","topic":"Performance Optimization","language":"Java","updated":"2020-02-17","comments":4,"stars":14036,"raw":"https://awesomereviewers.com/raw/deeplearning4j-minimize-object-allocations.md"},{"slug":"react-native-avoid-expensive-allocations","title":"Avoid expensive allocations","description":"Minimize object creation and expensive operations in performance-critical code paths, particularly in frequently called methods like onDraw, layout operations, and UI updates.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Performance Optimization","language":"Java","updated":"2024-12-05","comments":3,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-avoid-expensive-allocations.md"}],"prompt_count":8},{"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":[{"slug":"deeplearning4j-numerical-stability-practices","title":"Numerical stability practices","description":"When implementing machine learning algorithms, ensure numerical correctness and stability by following these practices: 1. Use appropriate default parameters based on research paper recommendations. For example, in AdaBelief, use smaller epsilon values as recommended by the authors:","repository":"deeplearning4j/deeplearning4j","domain":"ml-systems","topic":"AI","language":"Java","updated":"2021-02-22","comments":5,"stars":14036,"raw":"https://awesomereviewers.com/raw/deeplearning4j-numerical-stability-practices.md"}],"prompt_count":1},{"slug":"observability","title":"Logging, metrics, tracing","topics":["Logging","Observability"],"checks":[],"prompts":[{"slug":"spring-boot-consistent-observability-data","title":"Consistent observability data","description":"When implementing observability features, always ensure consistency in your data model, especially with tags and attributes. This helps prevent issues with backends that expect consistent tag sets.","repository":"spring-projects/spring-boot","domain":"app-frameworks","topic":"Observability","language":"Java","updated":"2024-04-05","comments":7,"stars":77637,"raw":"https://awesomereviewers.com/raw/spring-boot-consistent-observability-data.md"},{"slug":"deeplearning4j-use-logging-best-practices","title":"Use logging best practices","description":"Adopt these logging best practices to ensure consistent, efficient, and meaningful logs: 1. **Use Lombok''s `@Slf4j` annotation** instead of manually declaring loggers:","repository":"deeplearning4j/deeplearning4j","domain":"ml-systems","topic":"Logging","language":"Java","updated":"2021-07-20","comments":5,"stars":14036,"raw":"https://awesomereviewers.com/raw/deeplearning4j-use-logging-best-practices.md"},{"slug":"kafka-use-parameterized-logging","title":"Use parameterized logging","description":"Use parameterized logging with placeholders (`{}`) instead of string concatenation for better performance and readability. When logging exceptions, pass the exception object as a separate parameter to the logger rather than including its message in the format string.","repository":"apache/kafka","domain":"data-systems","topic":"Logging","language":"Java","updated":"2025-07-20","comments":3,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-use-parameterized-logging.md"},{"slug":"quarkus-prevent-metrics-cardinality-explosion","title":"Prevent metrics cardinality explosion","description":"When implementing metrics and telemetry in your application, avoid using dynamic values like path parameters or user IDs directly as metric tags or dimensions. This practice causes cardinality explosion, which leads to excessive memory usage, degraded performance, and can overwhelm your monitoring systems.","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Observability","language":"Java","updated":"2025-05-15","comments":2,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-prevent-metrics-cardinality-explosion.md"},{"slug":"spring-boot-structured-log-message-quality","title":"Structured log message quality","description":"Design log messages to be clear, concise, and properly structured to maximize their utility for debugging and monitoring. When using structured logging, configure reasonable limits for data complexity to prevent resource exhaustion and ensure logs remain usable.","repository":"spring-projects/spring-boot","domain":"app-frameworks","topic":"Logging","language":"Java","updated":"2025-03-10","comments":2,"stars":77637,"raw":"https://awesomereviewers.com/raw/spring-boot-structured-log-message-quality.md"}],"prompt_count":5},{"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":"quarkus-document-configuration-comprehensively","title":"Document configuration comprehensively","description":"Configuration properties should be thoroughly documented with explicit details about constraints, units, default values, and behavior implications. This helps users understand how to use them correctly and troubleshoot issues.","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Configurations","language":"Java","updated":"2025-06-18","comments":7,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-document-configuration-comprehensively.md"},{"slug":"bazel-configuration-clarity-standards","title":"Configuration clarity standards","description":"Configuration options should be designed with clarity, consistency, and user experience as primary concerns. This includes several key practices: **Clear and specific help text**: Flag descriptions should explicitly explain their purpose and scope to avoid user confusion. For example, instead of generic descriptions, be specific about when and how the flag...","repository":"bazelbuild/bazel","domain":"devtools","topic":"Configurations","language":"Java","updated":"2025-05-20","comments":7,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-configuration-clarity-standards.md"},{"slug":"elasticsearch-use-configuration-access-methods","title":"Use configuration access methods","description":"When accessing configuration settings, always use the appropriate type-safe accessor methods provided by the configuration framework rather than manual string parsing. This improves code readability, maintainability, and reduces potential bugs from string parsing errors.","repository":"elastic/elasticsearch","domain":"data-systems","topic":"Configurations","language":"Java","updated":"2025-07-01","comments":6,"stars":73104,"raw":"https://awesomereviewers.com/raw/elasticsearch-use-configuration-access-methods.md"},{"slug":"spring-boot-document-configuration-properties-completely","title":"Document configuration properties completely","description":"Configuration properties should be fully documented with clear descriptions, explicit default values, and proper metadata. This helps users understand and configure the application correctly.","repository":"spring-projects/spring-boot","domain":"app-frameworks","topic":"Configurations","language":"Java","updated":"2024-09-09","comments":6,"stars":77637,"raw":"https://awesomereviewers.com/raw/spring-boot-document-configuration-properties-completely.md"},{"slug":"kafka-validate-configuration-dependencies","title":"validate configuration dependencies","description":"Validate configuration dependencies and constraints at initialization time rather than allowing invalid combinations to cause runtime failures. When configurations have interdependencies, implement validation logic that checks these relationships early and provides clear error messages.","repository":"apache/kafka","domain":"data-systems","topic":"Configurations","language":"Java","updated":"2025-07-25","comments":4,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-validate-configuration-dependencies.md"},{"slug":"bazel-build-action-separation","title":"build action separation","description":"Keep build actions focused on their core responsibility and move complex logic to appropriate abstraction layers like builders or configuration components. Build actions should contain minimal action-specific branching and avoid tight coupling to implementation details.","repository":"bazelbuild/bazel","domain":"devtools","topic":"CI/CD","language":"Java","updated":"2025-07-02","comments":4,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-build-action-separation.md"},{"slug":"netty-configurable-over-hardcoded","title":"Configurable over hardcoded","description":"Make configuration parameters configurable rather than hardcoding values, especially for limits, sizes, and thresholds. Provide reasonable defaults but allow users to override through:","repository":"netty/netty","domain":"runtimes","topic":"Configurations","language":"Java","updated":"2025-04-30","comments":4,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-configurable-over-hardcoded.md"},{"slug":"spring-framework-use-environment-independent-defaults","title":"Use environment-independent defaults","description":"When designing configuration options, avoid relying on environment-specific defaults such as system character encodings, file paths, or platform-specific features. Instead, specify explicit defaults that work consistently across all supported environments. This prevents subtle bugs that manifest only in specific environments.","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Configurations","language":"Java","updated":"2025-03-21","comments":4,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-use-environment-independent-defaults.md"},{"slug":"deeplearning4j-configurable-resource-locations","title":"Configurable resource locations","description":"Always make file paths, temporary directories, and resource locations configurable with reasonable defaults instead of hard-coding them. Users may have specific environment requirements such as using SSDs instead of system drives or working with constrained environments like Spring Boot.","repository":"deeplearning4j/deeplearning4j","domain":"ml-systems","topic":"Configurations","language":"Java","updated":"2021-08-16","comments":4,"stars":14036,"raw":"https://awesomereviewers.com/raw/deeplearning4j-configurable-resource-locations.md"},{"slug":"spark-prefer-system-properties-directly","title":"prefer system properties directly","description":"When detecting operating system or environment characteristics, prefer direct access to system properties over external library dependencies for basic checks. Use `System.getProperty(\"os.name\")` with `regionMatches()` for case-insensitive OS detection instead of relying on third-party utilities like Apache Commons Lang3's SystemUtils.","repository":"apache/spark","domain":"data-systems","topic":"Configurations","language":"Java","updated":"2025-07-18","comments":2,"stars":41554,"raw":"https://awesomereviewers.com/raw/spark-prefer-system-properties-directly.md"},{"slug":"react-native-configuration-consistency-management","title":"configuration consistency management","description":"Maintain consistent configuration references across all code branches and document temporary configuration code for future cleanup. Configuration inconsistencies can lead to compilation errors and maintenance debt.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Configurations","language":"Java","updated":"2024-12-05","comments":2,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-configuration-consistency-management.md"}],"prompt_count":11},{"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":9,"commands":["analyze (language: 2)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"netty/netty","slug":"netty-netty"}]},"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":9,"commands":["analyze (language: 2)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"netty/netty","slug":"netty-netty"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"kafka-comprehensive-test-coverage","title":"comprehensive test coverage","description":"Ensure tests cover not only the happy path but also edge cases, error scenarios, and complete workflows. Many code reviews reveal gaps where only basic functionality is tested while important edge cases, exception handling, and integration scenarios are missing.","repository":"apache/kafka","domain":"data-systems","topic":"Testing","language":"Java","updated":"2025-07-23","comments":11,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-comprehensive-test-coverage.md"},{"slug":"bazel-ensure-comprehensive-test-coverage","title":"Ensure comprehensive test coverage","description":"When implementing new functionality or modifying existing code, always add corresponding tests that comprehensively cover the changes. This includes testing the main functionality, edge cases, error conditions, and different execution paths.","repository":"bazelbuild/bazel","domain":"devtools","topic":"Testing","language":"Java","updated":"2025-05-14","comments":9,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-ensure-comprehensive-test-coverage.md"},{"slug":"spring-boot-optimize-test-case-design","title":"Optimize test case design","description":"Write focused, efficient tests that validate core functionality without unnecessary complexity. Key principles: 1. Test one concept per case 2. Use appropriate test scope (unit vs integration)","repository":"spring-projects/spring-boot","domain":"app-frameworks","topic":"Testing","language":"Java","updated":"2025-06-26","comments":8,"stars":77637,"raw":"https://awesomereviewers.com/raw/spring-boot-optimize-test-case-design.md"},{"slug":"spring-framework-use-assertj-correctly","title":"Use AssertJ correctly","description":"Spring Framework tests must use AssertJ for assertions rather than JUnit''s `Assertions`, Spring''s `Assert` class, or plain `assert` statements. Follow these AssertJ best practices:","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Testing","language":"Java","updated":"2024-03-26","comments":7,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-use-assertj-correctly.md"},{"slug":"elasticsearch-robust-test-assertions","title":"Robust test assertions","description":"Use precise, informative assertions in tests to provide clear feedback when tests fail and verify the correct behavior rather than implementation details.","repository":"elastic/elasticsearch","domain":"data-systems","topic":"Testing","language":"Java","updated":"2025-06-30","comments":6,"stars":73104,"raw":"https://awesomereviewers.com/raw/elasticsearch-robust-test-assertions.md"},{"slug":"quarkus-reuse-test-patterns","title":"Reuse test patterns","description":"Minimize duplication and improve test maintainability by reusing existing test patterns and leveraging parameterization. When testing similar functionality across modules or with varying inputs, prefer adapting existing test cases and using parameterized tests over creating entirely new test files.","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Testing","language":"Java","updated":"2025-06-17","comments":3,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-reuse-test-patterns.md"},{"slug":"netty-prevent-test-resource-leaks","title":"Prevent test resource leaks","description":"Always ensure proper cleanup of resources in tests to prevent memory leaks. When using EmbeddedChannel, call readOutbound() to process all expected buffers and finish() at the end of your test to verify no resources remain and release any remaining buffers. This is particularly important for tests involving data buffers, channels, and I/O operations.","repository":"netty/netty","domain":"runtimes","topic":"Testing","language":"Java","updated":"2021-07-12","comments":3,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-prevent-test-resource-leaks.md"},{"slug":"deeplearning4j-ensure-test-determinism","title":"Ensure test determinism","description":"Create reliable and reproducible tests by explicitly controlling test inputs and verifying function behavior doesn''t have unintended side effects. Two key practices to follow:","repository":"deeplearning4j/deeplearning4j","domain":"ml-systems","topic":"Testing","language":"Java","updated":"2023-03-16","comments":2,"stars":14036,"raw":"https://awesomereviewers.com/raw/deeplearning4j-ensure-test-determinism.md"}],"prompt_count":8},{"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":"bazel-add-explanatory-comments","title":"Add explanatory comments","description":"Add explanatory comments and documentation for complex logic, non-obvious code behavior, method parameters, and API functionality to improve code readability and maintainability.","repository":"bazelbuild/bazel","domain":"devtools","topic":"Documentation","language":"Java","updated":"2025-07-20","comments":11,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-add-explanatory-comments.md"},{"slug":"spring-framework-complete-api-documentation","title":"Complete API documentation","description":"Documentation should be complete, accurate, and follow Spring Framework conventions. Ensure your Javadocs include: 1. **Clear and accurate descriptions** that precisely explain behavior and purpose","repository":"spring-projects/spring-framework","domain":"app-frameworks","topic":"Documentation","language":"Java","updated":"2025-06-18","comments":10,"stars":58382,"raw":"https://awesomereviewers.com/raw/spring-framework-complete-api-documentation.md"},{"slug":"netty-document-public-apis","title":"Document public APIs","description":"All public-facing APIs must be thoroughly documented with clear javadocs. This includes: 1. **Classes and interfaces**: When creating or changing a class/interface to public visibility, add comprehensive documentation explaining its purpose and usage.","repository":"netty/netty","domain":"runtimes","topic":"Documentation","language":"Java","updated":"2025-04-28","comments":9,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-document-public-apis.md"},{"slug":"deeplearning4j-document-api-completely","title":"Document API completely","description":"All public APIs must have comprehensive and clear documentation that helps developers understand functionality without examining implementation details. Follow these guidelines:","repository":"deeplearning4j/deeplearning4j","domain":"ml-systems","topic":"Documentation","language":"Java","updated":"2021-11-15","comments":8,"stars":14036,"raw":"https://awesomereviewers.com/raw/deeplearning4j-document-api-completely.md"},{"slug":"quarkus-document-public-apis","title":"Document public APIs","description":"All public APIs, interfaces, and methods should include comprehensive JavaDoc that clearly explains their purpose, parameters, return values, and any non-obvious behaviors. This is especially important for:","repository":"quarkusio/quarkus","domain":"app-frameworks","topic":"Documentation","language":"Java","updated":"2025-05-01","comments":5,"stars":14667,"raw":"https://awesomereviewers.com/raw/quarkus-document-public-apis.md"},{"slug":"spring-boot-property-description-conventions","title":"Property description conventions","description":"When documenting configuration properties in Spring Boot applications, follow these conventions for clarity and consistency: 1. Avoid starting descriptions with articles like \"the\" or \"a\"","repository":"spring-projects/spring-boot","domain":"app-frameworks","topic":"Documentation","language":"Java","updated":"2024-09-09","comments":5,"stars":77637,"raw":"https://awesomereviewers.com/raw/spring-boot-property-description-conventions.md"},{"slug":"kafka-ensure-complete-javadoc-coverage","title":"Ensure complete JavaDoc coverage","description":"All public classes, methods, and parameters must have comprehensive JavaDoc documentation. This includes: 1. **Class-level JavaDoc**: Every public class and interface requires JavaDoc explaining its purpose and usage","repository":"apache/kafka","domain":"data-systems","topic":"Documentation","language":"Java","updated":"2025-07-24","comments":4,"stars":30575,"raw":"https://awesomereviewers.com/raw/kafka-ensure-complete-javadoc-coverage.md"},{"slug":"spark-complete-method-documentation","title":"Complete method documentation","description":"All public methods, especially in interfaces and APIs, must have comprehensive JavaDoc documentation that clearly describes their purpose, return values, and behavior. Avoid vague or ambiguous descriptions that leave developers guessing about the method's functionality.","repository":"apache/spark","domain":"data-systems","topic":"Documentation","language":"Java","updated":"2025-07-23","comments":2,"stars":41554,"raw":"https://awesomereviewers.com/raw/spark-complete-method-documentation.md"}],"prompt_count":8}]}
