{"slug":"c","title":"C","extensions":[".c",".h"],"entry_languages":["C"],"prompts":67,"repos":6,"sample":[{"repository":"torvalds/linux","slug":"torvalds-linux","checks":6},{"repository":"neovim/neovim","slug":"neovim-neovim","checks":2},{"repository":"python/cpython","slug":"python-cpython","checks":9},{"repository":"redis/redis","slug":"redis-redis","checks":2},{"repository":"tree-sitter/tree-sitter","slug":"tree-sitter-tree-sitter","checks":7},{"repository":"bytedance/sonic","slug":"bytedance-sonic","checks":3}],"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":4,"share":67,"commands":["analyze (language: 1)","build (go-version: 4)","build (go-version: 4, runner_arch: 2)"],"run":"build (go-version: 4)","via":null,"triggers":["ci"],"examples":[{"repository":"python/cpython","slug":"python-cpython"},{"repository":"redis/redis","slug":"redis-redis"},{"repository":"tree-sitter/tree-sitter","slug":"tree-sitter-tree-sitter"},{"repository":"bytedance/sonic","slug":"bytedance-sonic"}]},{"id":"codeql","method":"static_analysis","kind":"security-scanning","languages":["*"],"upstream":"https://github.com/github/codeql","docs":null,"autofix":false,"exit_codes":{},"repos":2,"share":33,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"neovim/neovim","slug":"neovim-neovim"},{"repository":"redis/redis","slug":"redis-redis"}]},{"id":"codespell","method":"formatting","kind":"spelling","languages":["*"],"upstream":"https://github.com/codespell-project/codespell","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":17,"commands":["uses codespell-project/actions-codespell"],"run":null,"via":"GitHub Action codespell-project/actions-codespell","triggers":["ci"],"examples":[{"repository":"bytedance/sonic","slug":"bytedance-sonic"}]},{"id":"pre-commit-hooks","method":"formatting","kind":"file-hygiene","languages":["*"],"upstream":"https://github.com/pre-commit/pre-commit-hooks","docs":null,"autofix":true,"exit_codes":{},"repos":1,"share":17,"commands":["pre-commit hook check-case-conflict","pre-commit hook check-merge-conflict","pre-commit hook check-toml"],"run":null,"via":"pre-commit hook check-yaml","triggers":["pre_commit"],"examples":[{"repository":"python/cpython","slug":"python-cpython"}]}],"headline":[],"raw_md":"https://awesomereviewers.com/raw/verify/c.md","raw_json":"https://awesomereviewers.com/raw/verify/c.json","url":"https://awesomereviewers.com/verify/c/","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":"redis-clear-semantic-identifier-naming","title":"Clear Semantic Identifier Naming","description":"Adopt naming conventions that are (1) case-consistent by identifier kind and (2) semantically self-documenting (what it represents/includes/excludes, and what the function returns).","repository":"redis/redis","domain":"data-systems","topic":"Naming Conventions","language":"C","updated":"2026-04-23","comments":10,"stars":74261,"raw":"https://awesomereviewers.com/raw/redis-clear-semantic-identifier-naming.md"},{"slug":"cpython-use-idiomatic-conventions","title":"Use idiomatic conventions","description":"Write code that favors existing project idioms and clear control flow over ad hoc constructs, duplicated logic, or unnecessary complexity: - Avoid magic numbers; use the named constants the codebase already defines (e.g. `_Py_MAX_UNICODE` instead of hardcoding `0x10FFFF`), and use project-specific cast macros (e.g. `_PyMemoryView_CAST(v)`) instead of raw...","repository":"python/cpython","domain":"app-frameworks","topic":"Code Style","language":"C","updated":"2026-10-15","comments":9,"stars":77696,"raw":"https://awesomereviewers.com/raw/cpython-use-idiomatic-conventions.md"},{"slug":"redis-improve-readability-style","title":"Improve Readability Style","description":"Adopt a “review-first” style for complex C code: keep control flow and conditions small, make side effects explicit, and avoid duplication. Key rules:","repository":"redis/redis","domain":"data-systems","topic":"Code Style","language":"C","updated":"2026-05-09","comments":8,"stars":74261,"raw":"https://awesomereviewers.com/raw/redis-improve-readability-style.md"},{"slug":"neovim-prefer-concise-expressions","title":"prefer concise expressions","description":"Write concise, readable code by choosing the most direct expression for simple operations. Use ternary operators for simple boolean assignments instead of verbose if-else blocks, but avoid unnecessary ternaries when direct boolean assignment works. Return comparison results directly rather than using intermediate variables or verbose conditional blocks.","repository":"neovim/neovim","domain":"devtools","topic":"Code Style","language":"C","updated":"2025-07-28","comments":5,"stars":91433,"raw":"https://awesomereviewers.com/raw/neovim-prefer-concise-expressions.md"},{"slug":"tree-sitter-use-meaningful-identifiers","title":"Use meaningful identifiers","description":"Choose identifiers that accurately represent their purpose, semantics, and relationship to the codebase. Names should be self-documenting and consistent with established patterns in the module or API.","repository":"tree-sitter/tree-sitter","domain":"runtimes","topic":"Naming Conventions","language":"C","updated":"2022-01-12","comments":5,"stars":21799,"raw":"https://awesomereviewers.com/raw/tree-sitter-use-meaningful-identifiers.md"},{"slug":"neovim-use-descriptive-names","title":"Use descriptive names","description":"Avoid ambiguous or vague identifiers in favor of specific, self-documenting names that clearly convey purpose and context. Names should be immediately understandable without requiring additional context or documentation. Generic terms like \"float\" should be replaced with specific terms like \"floatwin\" or \"win_float\" to eliminate ambiguity. Function names...","repository":"neovim/neovim","domain":"devtools","topic":"Naming Conventions","language":"C","updated":"2025-07-13","comments":4,"stars":91433,"raw":"https://awesomereviewers.com/raw/neovim-use-descriptive-names.md"},{"slug":"tree-sitter-simplify-conditional-logic","title":"Simplify conditional logic","description":"Improve code readability by simplifying complex conditional expressions and control flow structures. Factor out repeated boolean expressions from nested conditions, use early returns instead of result variables when possible, and consolidate related conditional blocks.","repository":"tree-sitter/tree-sitter","domain":"runtimes","topic":"Code Style","language":"C","updated":"2024-07-05","comments":4,"stars":21799,"raw":"https://awesomereviewers.com/raw/tree-sitter-simplify-conditional-logic.md"},{"slug":"cpython-clear-unambiguous-naming","title":"Clear unambiguous naming","description":"Pick names (for functions, macros, and variables) that unambiguously convey their purpose and don't collide with existing identifiers that carry a different meaning in the same domain. Before naming, check whether a similar name already exists with different semantics elsewhere in the API/codebase (e.g. `PyFrozenSetWriter_Discard` is confusing next to...","repository":"python/cpython","domain":"app-frameworks","topic":"Naming Conventions","language":"C","updated":"2026-10-26","comments":3,"stars":77696,"raw":"https://awesomereviewers.com/raw/cpython-clear-unambiguous-naming.md"},{"slug":"neon-extract-and-reuse","title":"Extract and reuse","description":"Create focused utility functions for repeated or complex operations instead of duplicating logic across the codebase. When implementing functionality, first check if similar code already exists that can be reused.","repository":"neondatabase/neon","domain":"data-systems","topic":"Code Style","language":"C","updated":"2025-06-11","comments":3,"stars":19015,"raw":"https://awesomereviewers.com/raw/neon-extract-and-reuse.md"},{"slug":"sonic-consistent-semantic-naming","title":"Consistent semantic naming","description":"Maintain consistent naming conventions throughout the codebase and use semantically clear identifiers that clearly indicate their purpose and behavior. All functions, variables, and other identifiers should follow the same naming style (preferably snake_case for C code) and have descriptive names that make their functionality obvious.","repository":"bytedance/sonic","domain":"runtimes","topic":"Naming Conventions","language":"C","updated":"2023-06-27","comments":3,"stars":8532,"raw":"https://awesomereviewers.com/raw/sonic-consistent-semantic-naming.md"},{"slug":"runtime-use-utility-macros","title":"Use utility macros","description":"Use predefined utility macros for common operations instead of repeating manual calculations throughout your code. This improves readability, consistency, and reduces the likelihood of errors in calculations.","repository":"dotnet/runtime","domain":"runtimes","topic":"Code Style","language":"C","updated":"2025-05-30","comments":2,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-use-utility-macros.md"},{"slug":"linux-use-semantic-identifiers","title":"Use semantic identifiers","description":"Choose semantically appropriate identifiers and types that clearly represent their purpose. This includes using the correct data type (e.g., boolean for flags instead of integers) and ensuring proper spelling of all identifiers.","repository":"torvalds/linux","domain":"runtimes","topic":"Naming Conventions","language":"C","updated":"2024-09-18","comments":2,"stars":197350,"raw":"https://awesomereviewers.com/raw/linux-use-semantic-identifiers.md"}],"prompt_count":16},"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":33,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"neovim/neovim","slug":"neovim-neovim"},{"repository":"redis/redis","slug":"redis-redis"}]},"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":"redis-fail-fast-input-validation","title":"Fail Fast Input Validation","description":"Apply a single security rule: validate arity, lengths, ranges, and invariants before using inputs to index arrays, dereference pointers, compute derived pointers, or persist/serialize into security-sensitive targets.","repository":"redis/redis","domain":"data-systems","topic":"Security","language":"C","updated":"2026-05-05","comments":8,"stars":74261,"raw":"https://awesomereviewers.com/raw/redis-fail-fast-input-validation.md"},{"slug":"cpython-secure-sensitive-data-handling","title":"Secure sensitive data handling","description":"When implementing security-sensitive features (parsing untrusted cryptographic configs, enforcing TLS role restrictions, or maintaining a distrust/pinning list), apply defense-in-depth rather than relying on incidental implementation details:","repository":"python/cpython","domain":"security","topic":"Security","language":"C","updated":"2026-10-23","comments":6,"stars":77696,"raw":"https://awesomereviewers.com/raw/cpython-secure-sensitive-data-handling.md"},{"slug":"istio-audit-license-dependencies","title":"audit license dependencies","description":"Always verify the licensing compatibility of all dependencies, especially in security-critical networking code. GPL and other restrictive licenses can create legal compliance issues and security vulnerabilities through forced disclosure requirements or usage restrictions.","repository":"istio/istio","domain":"orchestration","topic":"Security","language":"C","updated":"2023-01-17","comments":1,"stars":37192,"raw":"https://awesomereviewers.com/raw/istio-audit-license-dependencies.md"}],"prompt_count":3},{"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":"cpython-robust-c-api-error-handling","title":"Robust C API error handling","description":"When writing C extension/interpreter code, treat every fallible C API call as a potential failure point and handle it consistently: - **Check return values immediately.** After calling functions like `PyNumber_Subtract`, `PyLong_AsLong`, `PyObject_GetAttrString`, etc., check for failure before using the result. Don''t assume a prior check covers a later...","repository":"python/cpython","domain":"app-frameworks","topic":"Error Handling","language":"C","updated":"2026-10-26","comments":12,"stars":77696,"raw":"https://awesomereviewers.com/raw/cpython-robust-c-api-error-handling.md"},{"slug":"redis-nullable-contracts-enforcement","title":"Nullable Contracts Enforcement","description":"Adopt explicit, consistent nullability contracts for pointer/optional-field parameters and honor them at every call site. Practical rules: - **Document/decide whether a parameter may be NULL**. If it can’t, keep the check out; if it can, guard and define behavior.","repository":"redis/redis","domain":"data-systems","topic":"Null Handling","language":"C","updated":"2026-04-15","comments":9,"stars":74261,"raw":"https://awesomereviewers.com/raw/redis-nullable-contracts-enforcement.md"},{"slug":"redis-failclamp-error-contracts","title":"Fail/Clamp Error Contracts","description":"When implementing commands with numeric failure modes (overflow, out-of-range, NaN/Inf) or multi-option parsing, define an explicit error contract and enforce it end-to-end:","repository":"redis/redis","domain":"data-systems","topic":"Error Handling","language":"C","updated":"2026-05-06","comments":8,"stars":74261,"raw":"https://awesomereviewers.com/raw/redis-failclamp-error-contracts.md"},{"slug":"redis-api-contracts-and-compatibility","title":"API Contracts And Compatibility","description":"When adding or evolving APIs (commands, module interfaces, persistence callbacks), make the contract explicit and stable: define lifecycle rules, invariants, grammar, and compatibility boundaries, and ensure implementations preserve existing behavior (including error/return types) across encodings and versions.","repository":"redis/redis","domain":"data-systems","topic":"API","language":"C","updated":"2026-05-04","comments":8,"stars":74261,"raw":"https://awesomereviewers.com/raw/redis-api-contracts-and-compatibility.md"},{"slug":"sonic-validate-memory-bounds","title":"validate memory bounds","description":"Always validate array and string bounds before accessing memory to prevent out-of-bounds access and potential crashes. When working with strings or arrays, especially those with known length information, check indices against the actual length before dereferencing pointers.","repository":"bytedance/sonic","domain":"runtimes","topic":"Null Handling","language":"C","updated":"2023-06-27","comments":7,"stars":8532,"raw":"https://awesomereviewers.com/raw/sonic-validate-memory-bounds.md"},{"slug":"neovim-validate-early-fail-fast","title":"validate early, fail fast","description":"Perform comprehensive input validation and precondition checks at the beginning of functions, before executing any operations that could have side effects or modify system state. This prevents partial execution, inconsistent states, and resource leaks when validation fails.","repository":"neovim/neovim","domain":"devtools","topic":"Error Handling","language":"C","updated":"2025-07-27","comments":5,"stars":91433,"raw":"https://awesomereviewers.com/raw/neovim-validate-early-fail-fast.md"},{"slug":"yoga-explicit-undefined-state-handling","title":"Explicit undefined state handling","description":"Always use explicit, well-defined representations for undefined, uninitialized, or invalid states instead of magic values or allowing undefined behavior to propagate silently. Create named constants or enum values for undefined states, and make conscious decisions about whether to crash, return defaults, or handle undefined values gracefully.","repository":"facebook/yoga","domain":"runtimes","topic":"Null Handling","language":"C","updated":"2017-02-23","comments":5,"stars":18255,"raw":"https://awesomereviewers.com/raw/yoga-explicit-undefined-state-handling.md"},{"slug":"cpython-validate-and-safely-clear-nullable-pointers","title":"Validate and safely clear nullable pointers","description":"In C extension code, every pointer that can legitimately be NULL (e.g., the result of PyObject_GetAttr, PyNumber_Add, or other APIs that may fail) must be checked for NULL immediately before it is dereferenced or passed to another API call. Do not assume an \"unlikely to fail\" call always succeeds—an unchecked NULL result can lead to a null dereference or...","repository":"python/cpython","domain":"app-frameworks","topic":"Null Handling","language":"C","updated":"2026-10-20","comments":4,"stars":77696,"raw":"https://awesomereviewers.com/raw/cpython-validate-and-safely-clear-nullable-pointers.md"},{"slug":"neovim-initialize-before-dereferencing","title":"Initialize before dereferencing","description":"Always ensure buffers, containers, and data structures are properly initialized before passing them to functions that will dereference them. This prevents null pointer dereferences and undefined behavior.","repository":"neovim/neovim","domain":"devtools","topic":"Null Handling","language":"C","updated":"2025-06-20","comments":4,"stars":91433,"raw":"https://awesomereviewers.com/raw/neovim-initialize-before-dereferencing.md"},{"slug":"neon-handle-all-error-paths","title":"Handle all error paths","description":"Ensure comprehensive error handling throughout the codebase by implementing proper error handling blocks, defensive validation, and thorough resource cleanup.","repository":"neondatabase/neon","domain":"data-systems","topic":"Error Handling","language":"C","updated":"2025-07-09","comments":3,"stars":19015,"raw":"https://awesomereviewers.com/raw/neon-handle-all-error-paths.md"},{"slug":"runtime-validate-before-access","title":"Validate before access","description":"Always validate parameters and initialize variables before access to prevent null dereference and undefined behavior. When handling arrays or pointers, require and validate length parameters. For conditionally initialized variables, ensure all code paths explicitly set values.","repository":"dotnet/runtime","domain":"runtimes","topic":"Null Handling","language":"C","updated":"2025-06-30","comments":3,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-validate-before-access.md"},{"slug":"neovim-api-extensibility-parameters","title":"API extensibility parameters","description":"Always design API functions with extensible parameter structures to accommodate future feature expansion without breaking changes. Use `Dict opts` parameters instead of individual boolean or primitive parameters, unless you are absolutely certain no expansion will ever be needed (which is usually wrong).","repository":"neovim/neovim","domain":"devtools","topic":"API","language":"C","updated":"2025-07-04","comments":2,"stars":91433,"raw":"https://awesomereviewers.com/raw/neovim-api-extensibility-parameters.md"}],"prompt_count":14},{"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":4,"share":67,"commands":["analyze (language: 1)","build (go-version: 4)","build (go-version: 4, runner_arch: 2)"],"run":"build (go-version: 4)","via":null,"triggers":["ci"],"examples":[{"repository":"python/cpython","slug":"python-cpython"},{"repository":"redis/redis","slug":"redis-redis"},{"repository":"tree-sitter/tree-sitter","slug":"tree-sitter-tree-sitter"},{"repository":"bytedance/sonic","slug":"bytedance-sonic"}]},"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":"redis-correct-fast-path-semantics","title":"Correct Fast-Path Semantics","description":"When implementing algorithmic optimizations (fast paths, binary search vs linear, prefetch/slot routing, realloc/compaction shortcuts), require *semantic correctness* and *invariant preservation* before performance.","repository":"redis/redis","domain":"data-systems","topic":"Algorithms","language":"C","updated":"2026-05-07","comments":7,"stars":74261,"raw":"https://awesomereviewers.com/raw/redis-correct-fast-path-semantics.md"},{"slug":"cpython-validate-recursive-algorithms-against-nesting","title":"Validate recursive algorithms against nesting","description":"When an algorithm operates on hierarchical or recursive structures (nested scopes, nested comprehensions, tree-like state), verify it with multi-level test cases, not just the flat/single-level case. Bugs repeatedly surfaced only when a second level of nesting was introduced, e.g. a comprehension inside another comprehension inside a class body, or a free...","repository":"python/cpython","domain":"app-frameworks","topic":"Algorithms","language":"C","updated":"2026-10-21","comments":5,"stars":77696,"raw":"https://awesomereviewers.com/raw/cpython-validate-recursive-algorithms-against-nesting.md"},{"slug":"tree-sitter-validate-algorithm-boundaries","title":"validate algorithm boundaries","description":"Always validate boundary conditions and termination criteria in algorithms to prevent infinite loops, out-of-bounds access, and incorrect behavior. This includes checking loop bounds against variable type limits, validating range parameters, and ensuring proper termination conditions.","repository":"tree-sitter/tree-sitter","domain":"runtimes","topic":"Algorithms","language":"C","updated":"2024-10-27","comments":4,"stars":21799,"raw":"https://awesomereviewers.com/raw/tree-sitter-validate-algorithm-boundaries.md"},{"slug":"runtime-decompose-complex-algorithms","title":"Decompose complex algorithms","description":"When implementing algorithms, break down complex methods that handle multiple concerns into smaller, more focused methods. This improves maintainability, makes edge cases easier to handle, and allows for more flexible reuse of algorithm components.","repository":"dotnet/runtime","domain":"runtimes","topic":"Algorithms","language":"C","updated":"2024-06-27","comments":4,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-decompose-complex-algorithms.md"},{"slug":"neon-optimize-data-structures","title":"Optimize data structures","description":"When implementing algorithms, prioritize data structure choices that minimize resource usage while maintaining functionality. Consider if a simpler approach with counters, efficient state tracking, or built-in functions can replace complex custom implementations.","repository":"neondatabase/neon","domain":"data-systems","topic":"Algorithms","language":"C","updated":"2025-07-03","comments":3,"stars":19015,"raw":"https://awesomereviewers.com/raw/neon-optimize-data-structures.md"},{"slug":"llama.cpp-optimize-algorithmic-complexity","title":"optimize algorithmic complexity","description":"When implementing or refactoring algorithms, prioritize efficient data structures and computational approaches over simpler but slower alternatives. This is especially critical in performance-sensitive code where operations may be called frequently.","repository":"ggml-org/llama.cpp","domain":"llm-infra","topic":"Algorithms","language":"C","updated":"2025-06-27","comments":3,"stars":83559,"raw":"https://awesomereviewers.com/raw/llama.cpp-optimize-algorithmic-complexity.md"},{"slug":"yoga-algorithm-specification-compliance","title":"Algorithm specification compliance","description":"When implementing layout algorithms, ensure strict adherence to web standards and specifications, particularly regarding control flow and edge case handling. Complex algorithms like baseline calculation require precise implementation of specification details to avoid subtle bugs.","repository":"facebook/yoga","domain":"runtimes","topic":"Algorithms","language":"C","updated":"2017-01-05","comments":3,"stars":18255,"raw":"https://awesomereviewers.com/raw/yoga-algorithm-specification-compliance.md"},{"slug":"neovim-optimize-data-structure-operations","title":"optimize data structure operations","description":"When working with data structures, prioritize efficiency through proper memory management and compact data representation. Use appropriate conversion patterns that handle memory cleanup correctly, and leverage bit manipulation techniques for space-efficient data storage.","repository":"neovim/neovim","domain":"devtools","topic":"Algorithms","language":"C","updated":"2023-07-29","comments":2,"stars":91433,"raw":"https://awesomereviewers.com/raw/neovim-optimize-data-structure-operations.md"},{"slug":"sonic-bounds-checking-first","title":"bounds checking first","description":"Always validate array and buffer bounds before accessing elements to prevent out-of-bounds access and potential security vulnerabilities. This is critical in algorithms that iterate through data structures or perform string operations.","repository":"bytedance/sonic","domain":"runtimes","topic":"Algorithms","language":"C","updated":"2023-06-27","comments":2,"stars":8532,"raw":"https://awesomereviewers.com/raw/sonic-bounds-checking-first.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":"cpython-lock-the-right-resource","title":"Lock the right resource","description":"When protecting shared mutable state, make sure the synchronization actually covers the memory that other threads can see and mutate, and scope it correctly:","repository":"python/cpython","domain":"app-frameworks","topic":"Concurrency","language":"C","updated":"2026-10-24","comments":10,"stars":77696,"raw":"https://awesomereviewers.com/raw/cpython-lock-the-right-resource.md"},{"slug":"redis-thread-ownership-discipline","title":"Thread Ownership Discipline","description":"When code can run on both main and IO threads, require an explicit ownership + synchronization rule for every shared piece of state (flags, counters, refcounts, pending lists, and memory frees). Concretely:","repository":"redis/redis","domain":"data-systems","topic":"Concurrency","language":"C","updated":"2026-03-22","comments":9,"stars":74261,"raw":"https://awesomereviewers.com/raw/redis-thread-ownership-discipline.md"},{"slug":"neovim-prevent-autocommand-reentrancy","title":"prevent autocommand reentrancy","description":"Guard against reentrancy issues when operations may trigger autocommands or async events that could invalidate state or cause recursive execution. Check for existing execution context before proceeding and validate that pointers/state remain valid after operations that may trigger autocommands.","repository":"neovim/neovim","domain":"devtools","topic":"Concurrency","language":"C","updated":"2025-07-10","comments":3,"stars":91433,"raw":"https://awesomereviewers.com/raw/neovim-prevent-autocommand-reentrancy.md"},{"slug":"neon-guard-against-race-conditions","title":"Guard against race conditions","description":"When working with concurrent operations, always implement proper guards to prevent race conditions between processes. This includes: 1. Adding explicit checks before operations that might be affected by concurrent processes:","repository":"neondatabase/neon","domain":"data-systems","topic":"Concurrency","language":"C","updated":"2025-06-16","comments":3,"stars":19015,"raw":"https://awesomereviewers.com/raw/neon-guard-against-race-conditions.md"}],"prompt_count":4},{"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":"istio-leverage-kernel-network-structures","title":"leverage kernel network structures","description":"When implementing eBPF networking programs, prefer using kernel-native data structures and BPF helpers over maintaining custom eBPF maps that duplicate network routing information. The kernel already tracks IP-to-MAC mappings, interface information, and routing data through its networking stack.","repository":"istio/istio","domain":"orchestration","topic":"Networking","language":"C","updated":"2023-02-17","comments":3,"stars":37192,"raw":"https://awesomereviewers.com/raw/istio-leverage-kernel-network-structures.md"},{"slug":"neovim-follow-protocol-standards","title":"follow protocol standards","description":"When implementing network protocols or communication formats, prioritize standardized specifications over legacy or device-specific formats, even when existing code uses older approaches. Legacy formats may work but can cause compatibility issues and confusion for applications that expect standard compliance.","repository":"neovim/neovim","domain":"devtools","topic":"Networking","language":"C","updated":"2025-07-28","comments":2,"stars":91433,"raw":"https://awesomereviewers.com/raw/neovim-follow-protocol-standards.md"},{"slug":"neon-handle-network-interrupts-safely","title":"Handle network interrupts safely","description":"Network code must properly handle interrupts and maintain consistent connection state at all potential interruption points. When implementing network operations:","repository":"neondatabase/neon","domain":"data-systems","topic":"Networking","language":"C","updated":"2025-07-08","comments":2,"stars":19015,"raw":"https://awesomereviewers.com/raw/neon-handle-network-interrupts-safely.md"},{"slug":"netty-check-feature-compatibility","title":"Check feature compatibility","description":"When using kernel-specific networking features like io_uring, always implement runtime detection of feature support before enabling them. This ensures your code remains compatible across different kernel versions while taking advantage of newer optimizations when available.","repository":"netty/netty","domain":"runtimes","topic":"Networking","language":"C","updated":"2025-01-20","comments":2,"stars":34227,"raw":"https://awesomereviewers.com/raw/netty-check-feature-compatibility.md"}],"prompt_count":4},{"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":4,"share":67,"commands":["analyze (language: 1)","build (go-version: 4)","build (go-version: 4, runner_arch: 2)"],"run":"build (go-version: 4)","via":null,"triggers":["ci"],"examples":[{"repository":"python/cpython","slug":"python-cpython"},{"repository":"redis/redis","slug":"redis-redis"},{"repository":"tree-sitter/tree-sitter","slug":"tree-sitter-tree-sitter"},{"repository":"bytedance/sonic","slug":"bytedance-sonic"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"redis-consistent-ttl-pre-check","title":"Consistent TTL Pre-check","description":"When handling TTL/expiration, decide “already expired?” (and validate expiry inputs) before performing DB mutations or expensive work, and then keep DB changes, stats/counters, and keyspace notifications consistent with the real outcome. For conditional variants (NX/XX, ENX/FNX/FXX), short-circuit behavior must match the condition.","repository":"redis/redis","domain":"data-systems","topic":"Caching","language":"C","updated":"2026-05-01","comments":5,"stars":74261,"raw":"https://awesomereviewers.com/raw/redis-consistent-ttl-pre-check.md"}],"prompt_count":1},{"slug":"performance","title":"Hot paths and performance","topics":["Performance Optimization"],"checks":[],"prompts":[{"slug":"redis-bounded-prefetch-batches","title":"Bounded Prefetch Batches","description":"When adding performance optimizations (prefetch/batching/fast paths), make them bounded, gated, and semantics-correct: - **Bound the work**: use fixed small batch sizes (e.g., 16) and stack-backed buffers with a safe default cap; avoid strategies where user-controlled sizes can force huge allocations (e.g., `vecReserve(count)` without a ceiling).","repository":"redis/redis","domain":"data-systems","topic":"Performance Optimization","language":"C","updated":"2026-05-05","comments":9,"stars":74261,"raw":"https://awesomereviewers.com/raw/redis-bounded-prefetch-batches.md"},{"slug":"cpython-benchmark-hot-path-regressions","title":"Benchmark hot-path regressions","description":"When adding bookkeeping for correctness or edge cases (deduplication, debug stats, extra tracking structures), make sure the common/fast path doesn't pay for work it doesn't need. Defer allocations, extra passes, or per-call checks until they're actually required, and fall back to a cheap path when the condition that triggers the extra cost is absent or...","repository":"python/cpython","domain":"app-frameworks","topic":"Performance Optimization","language":"C","updated":"2026-10-26","comments":4,"stars":77696,"raw":"https://awesomereviewers.com/raw/cpython-benchmark-hot-path-regressions.md"},{"slug":"runtime-optimize-aligned-simd-operations","title":"Optimize aligned SIMD operations","description":"Always use proper memory alignment for SIMD (Single Instruction, Multiple Data) operations to maximize performance. When implementing vector operations:","repository":"dotnet/runtime","domain":"runtimes","topic":"Performance Optimization","language":"C","updated":"2025-06-25","comments":2,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-optimize-aligned-simd-operations.md"},{"slug":"neon-optimize-what-matters","title":"Optimize what matters","description":"Focus optimization efforts on performance-critical paths rather than applying micro-optimizations everywhere. Balance code clarity and maintainability against performance gains, and only optimize when there's a measurable benefit.","repository":"neondatabase/neon","domain":"data-systems","topic":"Performance Optimization","language":"C","updated":"2025-06-20","comments":2,"stars":19015,"raw":"https://awesomereviewers.com/raw/neon-optimize-what-matters.md"},{"slug":"tree-sitter-optimize-memory-usage-patterns","title":"optimize memory usage patterns","description":"Focus on reducing memory footprint and improving cache efficiency through careful data structure design and function parameter optimization. Consider using smaller data types when the value range permits, and design function interfaces to minimize memory overhead.","repository":"tree-sitter/tree-sitter","domain":"runtimes","topic":"Performance Optimization","language":"C","updated":"2025-04-15","comments":2,"stars":21799,"raw":"https://awesomereviewers.com/raw/tree-sitter-optimize-memory-usage-patterns.md"},{"slug":"istio-optimize-hot-path-performance","title":"optimize hot path performance","description":"Identify and eliminate expensive operations in frequently executed code paths, particularly in packet processing and network handling contexts. Hot paths are code sections that execute repeatedly at high frequency, where even small performance penalties can significantly impact overall system performance.","repository":"istio/istio","domain":"orchestration","topic":"Performance Optimization","language":"C","updated":"2022-12-09","comments":2,"stars":37192,"raw":"https://awesomereviewers.com/raw/istio-optimize-hot-path-performance.md"}],"prompt_count":6},{"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":"tree-sitter-consolidate-related-logging","title":"consolidate related logging","description":"When logging information about the same operation or context, combine multiple related log statements into a single, comprehensive message rather than using separate log calls. This reduces log noise, improves readability, and can enhance performance by reducing the number of logging function calls.","repository":"tree-sitter/tree-sitter","domain":"runtimes","topic":"Logging","language":"C","updated":"2021-02-08","comments":2,"stars":21799,"raw":"https://awesomereviewers.com/raw/tree-sitter-consolidate-related-logging.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":{"id":"pre-commit-hooks","method":"formatting","kind":"file-hygiene","languages":["*"],"upstream":"https://github.com/pre-commit/pre-commit-hooks","docs":null,"autofix":true,"exit_codes":{},"repos":1,"share":17,"commands":["pre-commit hook check-case-conflict","pre-commit hook check-merge-conflict","pre-commit hook check-toml"],"run":null,"via":"pre-commit hook check-yaml","triggers":["pre_commit"],"examples":[{"repository":"python/cpython","slug":"python-cpython"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"tree-sitter-conditional-compilation-guards","title":"Conditional compilation guards","description":"Always use appropriate preprocessor directives to guard platform-specific, version-dependent, or feature-specific code. Ensure that conditional compilation checks accurately reflect the actual availability of features and APIs, not just version numbers or single configuration flags.","repository":"tree-sitter/tree-sitter","domain":"runtimes","topic":"Configurations","language":"C","updated":"2025-01-18","comments":4,"stars":21799,"raw":"https://awesomereviewers.com/raw/tree-sitter-conditional-compilation-guards.md"},{"slug":"neon-configuration-context-alignment","title":"Configuration context alignment","description":"Choose the appropriate configuration context based on how changes will be handled by the system. When defining custom configuration variables: 1. Use `PGC_POSTMASTER` for options that require a server restart or cannot be changed while the server is running","repository":"neondatabase/neon","domain":"data-systems","topic":"Configurations","language":"C","updated":"2025-06-04","comments":3,"stars":19015,"raw":"https://awesomereviewers.com/raw/neon-configuration-context-alignment.md"},{"slug":"llvm-project-explicit-configuration-requirements","title":"Explicit configuration requirements","description":"Always specify explicit configuration parameters rather than relying on default settings that may vary across different build environments or target platforms. This is particularly critical in test files where assumptions about default compiler settings, target triples, or language standards can cause failures in cross-compilation scenarios or different...","repository":"llvm/llvm-project","domain":"runtimes","topic":"Configurations","language":"C","updated":"2025-07-27","comments":2,"stars":33702,"raw":"https://awesomereviewers.com/raw/llvm-project-explicit-configuration-requirements.md"},{"slug":"runtime-centralize-platform-configurations","title":"Centralize platform configurations","description":"Platform-specific code and API usage should be centralized in designated configuration files rather than scattered throughout the codebase. When adding code that might not be available on all supported platforms:","repository":"dotnet/runtime","domain":"runtimes","topic":"Configurations","language":"C","updated":"2021-06-16","comments":2,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-centralize-platform-configurations.md"}],"prompt_count":4},{"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":4,"share":67,"commands":["analyze (language: 1)","build (go-version: 4)","build (go-version: 4, runner_arch: 2)"],"run":"build (go-version: 4)","via":null,"triggers":["ci"],"examples":[{"repository":"python/cpython","slug":"python-cpython"},{"repository":"redis/redis","slug":"redis-redis"},{"repository":"tree-sitter/tree-sitter","slug":"tree-sitter-tree-sitter"},{"repository":"bytedance/sonic","slug":"bytedance-sonic"}]},"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":4,"share":67,"commands":["analyze (language: 1)","build (go-version: 4)","build (go-version: 4, runner_arch: 2)"],"run":"build (go-version: 4)","via":null,"triggers":["ci"],"examples":[{"repository":"python/cpython","slug":"python-cpython"},{"repository":"redis/redis","slug":"redis-redis"},{"repository":"tree-sitter/tree-sitter","slug":"tree-sitter-tree-sitter"},{"repository":"bytedance/sonic","slug":"bytedance-sonic"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"llvm-project-preserve-known-test-issues","title":"preserve known test issues","description":"When tests exhibit known false positives or false negatives, preserve these test cases with clear documentation rather than removing them. This practice prevents accidental \"fixes\" that mask underlying problems and helps track when issues are genuinely resolved.","repository":"llvm/llvm-project","domain":"runtimes","topic":"Testing","language":"C","updated":"2025-07-28","comments":2,"stars":33702,"raw":"https://awesomereviewers.com/raw/llvm-project-preserve-known-test-issues.md"}],"prompt_count":1},{"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":{"id":"codespell","method":"formatting","kind":"spelling","languages":["*"],"upstream":"https://github.com/codespell-project/codespell","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":17,"commands":["uses codespell-project/actions-codespell"],"run":null,"via":"GitHub Action codespell-project/actions-codespell","triggers":["ci"],"examples":[{"repository":"bytedance/sonic","slug":"bytedance-sonic"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"redis-doc-semantics-consistency","title":"Doc Semantics Consistency","description":"Ensure comments and public-facing documentation precisely match the actual behavior and contract. Apply this standard by checking: - **No doc/behavior drift**: If you add/adjust command options (e.g., STRICT/PERSIST) or state transitions (e.g., TTL handling), update all descriptions (PR text, command docs, inline comments) to reflect the implemented...","repository":"redis/redis","domain":"data-systems","topic":"Documentation","language":"C","updated":"2026-04-29","comments":8,"stars":74261,"raw":"https://awesomereviewers.com/raw/redis-doc-semantics-consistency.md"},{"slug":"neovim-documentation-accuracy-standards","title":"Documentation accuracy standards","description":"Ensure all function documentation accurately reflects the actual code behavior and includes complete, properly formatted descriptions of parameters and return values.","repository":"neovim/neovim","domain":"devtools","topic":"Documentation","language":"C","updated":"2025-07-28","comments":6,"stars":91433,"raw":"https://awesomereviewers.com/raw/neovim-documentation-accuracy-standards.md"},{"slug":"runtime-document-non-obvious-logic","title":"Document non-obvious logic","description":"Add clear comments explaining the purpose and reasoning behind complex or non-obvious code logic. Comments should explain 'why' certain implementation choices were made or how specific variables and conditions function, rather than just restating what the code does. This is especially important for security-related checks, timing mechanisms, interruption...","repository":"dotnet/runtime","domain":"runtimes","topic":"Documentation","language":"C","updated":"2025-05-30","comments":2,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-document-non-obvious-logic.md"},{"slug":"sonic-meaningful-comment-practices","title":"Meaningful comment practices","description":"Comments should explain the reasoning behind code decisions rather than restating what the code obviously does. Focus on the \"why\" rather than the \"what\" to provide value that isn't immediately apparent from reading the code itself.","repository":"bytedance/sonic","domain":"runtimes","topic":"Documentation","language":"C","updated":"2023-06-27","comments":2,"stars":8532,"raw":"https://awesomereviewers.com/raw/sonic-meaningful-comment-practices.md"}],"prompt_count":4}]}
