{"slug":"shell","title":"Shell","extensions":[".sh",".bash",".zsh"],"entry_languages":["Shell"],"prompts":70,"repos":2,"sample":[{"repository":"anthropics/claude-code","slug":"anthropics-claude-code","checks":1},{"repository":"opengrep/opengrep","slug":"opengrep-opengrep","checks":4}],"tools":[{"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":50,"commands":["pre-commit hook check-added-large-files","pre-commit hook check-ast","pre-commit hook check-case-conflict"],"run":null,"via":"pre-commit hook check-ast","triggers":["pre_commit"],"examples":[{"repository":"opengrep/opengrep","slug":"opengrep-opengrep"}]},{"id":"semgrep","method":"static_analysis","kind":"security-scanning","languages":["*"],"upstream":"https://github.com/semgrep/semgrep","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":50,"commands":["pre-commit hook semgrep"],"run":null,"via":"pre-commit hook semgrep","triggers":["pre_commit"],"examples":[{"repository":"opengrep/opengrep","slug":"opengrep-opengrep"}]}],"headline":[],"raw_md":"https://awesomereviewers.com/raw/verify/shell.md","raw_json":"https://awesomereviewers.com/raw/verify/shell.json","url":"https://awesomereviewers.com/verify/shell/","baseline":{"slug":"every-change","title":"Any change","topics":["Code Style","Naming Conventions"],"checks":[{"kind":"formatting","title":"Formatting","method":"formatting","method_slug":"formatting","catches":"Layout drift that buries the real change in the diff.","tool":null,"alternatives":[],"note":null},{"kind":"linting","title":"Linting","method":"static_analysis","method_slug":"static-analysis","catches":"Bug-prone patterns, unused code and conventions the formatter does not cover.","tool":null,"alternatives":[],"note":null},{"kind":"type-checking","title":"Type checking","method":"static_analysis","method_slug":"static-analysis","catches":"Wrong types, unhandled null or None, call signatures broken across modules.","tool":null,"alternatives":[],"note":null},{"kind":"unit-tests","title":"Unit and integration tests","method":"testing","method_slug":"testing","catches":"Behaviour regressions on the paths the tests exercise.","tool":null,"alternatives":[],"note":null}],"prompts":[{"slug":"brew-avoid-variable-name-abbreviations","title":"Avoid variable name abbreviations","description":"Use complete, descriptive variable names instead of abbreviations to enhance code readability and maintainability. Short abbreviations like `dir`, `repo`, and single-letter variables often obscure the purpose of the variable and make code harder to understand for new contributors.","repository":"Homebrew/brew","domain":"devtools","topic":"Naming Conventions","language":"Shell","updated":"2024-09-25","comments":4,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-avoid-variable-name-abbreviations.md"},{"slug":"chef-standardize-shell-flags","title":"Standardize shell flags","description":"Always use `set -eou pipefail` at the beginning of shell scripts to ensure consistent error handling and behavior across the codebase. This combination provides important safety guarantees:","repository":"chef/chef","domain":"cloud-infra","topic":"Code Style","language":"Shell","updated":"2025-06-12","comments":3,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-standardize-shell-flags.md"},{"slug":"opengrep-ensure-cross-platform-compatibility","title":"Ensure cross-platform compatibility","description":"Write code that works consistently across different platforms and environments. Avoid using Unicode symbols or special characters that may not render properly in all terminals or logging systems, as they can cause display issues or interfere with automated processing. Use portable system paths and commands that work across different operating systems.","repository":"opengrep/opengrep","domain":"security","topic":"Code Style","language":"Shell","updated":"2025-07-02","comments":2,"stars":1546,"raw":"https://awesomereviewers.com/raw/opengrep-ensure-cross-platform-compatibility.md"},{"slug":"airflow-quote-shell-variables","title":"Quote shell variables","description":"Always quote shell script variable expansions using double quotes to prevent word splitting issues and ensure consistent behavior. This is particularly important in conditionals and when passing variables as command arguments.","repository":"apache/airflow","domain":"orchestration","topic":"Code Style","language":"Shell","updated":"2025-06-25","comments":2,"stars":40858,"raw":"https://awesomereviewers.com/raw/airflow-quote-shell-variables.md"},{"slug":"tensorflow-consistent-variable-naming","title":"Consistent variable naming","description":"Use ALL_CAPS for constants and environment variables in shell scripts, and reference these variables consistently throughout the script with proper quoting. This improves code readability and prevents errors when handling paths with spaces.","repository":"tensorflow/tensorflow","domain":"ml-systems","topic":"Naming Conventions","language":"Shell","updated":"2025-03-15","comments":2,"stars":190625,"raw":"https://awesomereviewers.com/raw/tensorflow-consistent-variable-naming.md"},{"slug":"unstructured-improve-code-readability","title":"improve code readability","description":"Format code to enhance readability and maintainability by breaking long lines and extracting repeated values into variables. Long command lines with multiple parameters should be split across multiple lines with proper line continuation, placing each parameter on its own line. When the same value (like URLs, paths, or configuration strings) appears multiple...","repository":"Unstructured-IO/unstructured","domain":"llm-infra","topic":"Code Style","language":"Shell","updated":"2024-07-02","comments":2,"stars":12117,"raw":"https://awesomereviewers.com/raw/unstructured-improve-code-readability.md"}],"prompt_count":6},"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":"semgrep","method":"static_analysis","kind":"security-scanning","languages":["*"],"upstream":"https://github.com/semgrep/semgrep","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":50,"commands":["pre-commit hook semgrep"],"run":null,"via":"pre-commit hook semgrep","triggers":["pre_commit"],"examples":[{"repository":"opengrep/opengrep","slug":"opengrep-opengrep"}]},"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":"bifrost-validate-security-context","title":"Validate security context","description":"Define and enforce security-context behavior as a clear contract, then implement CI/runtime logic to match it without brittle assumptions. Apply this in two places:","repository":"maximhq/bifrost","domain":"llm-infra","topic":"Security","language":"Shell","updated":"2026-07-14","comments":5,"stars":6862,"raw":"https://awesomereviewers.com/raw/bifrost-validate-security-context.md"},{"slug":"electron-avoid-runtime-credential-resolution","title":"avoid runtime credential resolution","description":"Security credentials and access control mechanisms should be pre-configured at deployment or configuration time rather than resolved dynamically at runtime. Dynamic credential fetching introduces injection risks and makes security boundaries harder to audit and control.","repository":"electron/electron","domain":"devtools","topic":"Security","language":"Shell","updated":"2025-07-23","comments":2,"stars":117644,"raw":"https://awesomereviewers.com/raw/electron-avoid-runtime-credential-resolution.md"},{"slug":"herdr-enforce-sensitive-file-permissions","title":"Enforce Sensitive File Permissions","description":"When creating or updating files that persist user-controlled commands/state for later execution (hooks, observer/session forwarding, etc.), treat the contents as sensitive and enforce least-privilege permissions at install/write time. Verify the permissions in an automated install/integration test so regressions are caught early.","repository":"ogulcancelik/herdr","domain":"security","topic":"Security","language":"Shell","updated":"2026-08-03","comments":1,"stars":26924,"raw":"https://awesomereviewers.com/raw/herdr-enforce-sensitive-file-permissions.md"},{"slug":"agentcore-samples-least-privilege-secret-scoping","title":"Least-privilege secret scoping","description":"When granting IAM access to Secrets Manager, avoid broad resource wildcards (e.g., `arn:aws:secretsmanager:...:secret:*`). Prefer narrowing by the exact secret ARN(s) or by a well-known secret-name prefix for the specific service/feature. Also remove redundant policy constraints that don’t add additional security beyond what the ARN already enforces.","repository":"awslabs/agentcore-samples","domain":"ai-agents","topic":"Security","language":"Shell","updated":"2026-07-23","comments":1,"stars":3244,"raw":"https://awesomereviewers.com/raw/agentcore-samples-least-privilege-secret-scoping.md"},{"slug":"hermes-agent-preserve-signing-entitlements","title":"Preserve signing entitlements","description":"On macOS, treat re-signing (including ad-hoc re-sign after quarantine stripping) as a security-sensitive operation: preserve the app’s entitlements for the main bundle and any helper apps. Otherwise, macOS TCC access (mic/screen audio) may break or continuously prompt because the re-signed artifacts no longer carry the expected entitlements. Also ensure...","repository":"nousresearch/hermes-agent","domain":"ai-agents","topic":"Security","language":"Shell","updated":"2026-07-16","comments":1,"stars":221948,"raw":"https://awesomereviewers.com/raw/hermes-agent-preserve-signing-entitlements.md"},{"slug":"last30days-skill-secure-env-lookup","title":"Secure env lookup","description":"When writing security-sensitive shell hooks/scripts, resolve credential *presence* safely: don’t read or print secret values, avoid `eval` for variable indirection, and enforce a deterministic, documented precedence order between `ENV_<KEY>` and raw env vars, falling back to OS keychain presence checks.","repository":"mvanhorn/last30days-skill","domain":"security","topic":"Security","language":"Shell","updated":"2026-06-25","comments":1,"stars":57799,"raw":"https://awesomereviewers.com/raw/last30days-skill-secure-env-lookup.md"},{"slug":"apisix-verify-download-integrity","title":"Verify Download Integrity","description":"When your code/CI downloads third-party binaries or packages and then installs them, verify integrity before installation (preferably SHA256/SHA256+signature). Store the expected checksum in versioned configuration keyed by the artifact/runtime version, and update it whenever you bump that version. Fail closed on mismatch.","repository":"apache/apisix","domain":"cloud-infra","topic":"Security","language":"Shell","updated":"2026-05-25","comments":1,"stars":16922,"raw":"https://awesomereviewers.com/raw/apisix-verify-download-integrity.md"},{"slug":"container-check-privilege-early","title":"Check Privilege Early","description":"When a script performs privileged or security-sensitive actions (e.g., deleting/installing application files in system directories), explicitly enforce the required authorization before proceeding.","repository":"apple/container","domain":"orchestration","topic":"Security","language":"Shell","updated":"2026-01-30","comments":1,"stars":48787,"raw":"https://awesomereviewers.com/raw/container-check-privilege-early.md"},{"slug":"agent-zero-sanitize-untrusted-tags","title":"Sanitize untrusted tags","description":"Treat any tag/markup coming from user input, LLM output, or external commands as untrusted. Validate and sanitize it at the earliest boundary before embedding into JSON or rendering in the UI—e.g., strip/escape disallowed tags so they can’t break parsers or visuals.","repository":"agent0ai/agent-zero","domain":"ai-agents","topic":"Security","language":"Shell","updated":"2025-04-08","comments":1,"stars":17612,"raw":"https://awesomereviewers.com/raw/agent-zero-sanitize-untrusted-tags.md"},{"slug":"claude-code-least-privilege-networking","title":"Least privilege networking","description":"Restrict network access to only what's necessary for your application to function, using explicit allowlisting rather than trying to block malicious traffic. Network traffic should be denied by default and only specifically required destinations should be allowed.","repository":"anthropics/claude-code","domain":"ai-agents","topic":"Security","language":"Shell","updated":"2025-03-12","comments":1,"stars":25432,"raw":"https://awesomereviewers.com/raw/claude-code-least-privilege-networking.md"},{"slug":"zed-warn-against-sudo","title":"Warn against sudo","description":"Applications that may need elevated privileges should explicitly warn against running the entire application with sudo. Instead, implement and document proper privilege escalation mechanisms (like polkit on Linux) for specific tasks requiring higher permissions.","repository":"zed-industries/zed","domain":"devtools","topic":"Security","language":"Shell","updated":"2024-12-17","comments":1,"stars":62119,"raw":"https://awesomereviewers.com/raw/zed-warn-against-sudo.md"},{"slug":"langfuse-avoid-automatic-package-execution","title":"Avoid automatic package execution","description":"Using `npx --yes` bypasses security prompts and automatically installs packages without verification, which could lead to supply chain attacks if package names are typosquatted or compromised. Always install required tools as explicit dependencies in your project.","repository":"langfuse/langfuse","domain":"observability","topic":"Security","language":"Shell","updated":"2024-08-31","comments":1,"stars":13574,"raw":"https://awesomereviewers.com/raw/langfuse-avoid-automatic-package-execution.md"}],"prompt_count":14},{"slug":"interfaces","title":"Public APIs, signatures, error paths, nullability","topics":["API","Error Handling","Null Handling"],"checks":[{"kind":"type-checking","title":"Type checking","method":"static_analysis","method_slug":"static-analysis","catches":"Wrong types, unhandled null or None, call signatures broken across modules.","tool":null,"alternatives":[],"note":null},{"kind":"unit-tests","title":"Unit and integration tests","method":"testing","method_slug":"testing","catches":"Behaviour regressions on the paths the tests exercise.","tool":null,"alternatives":[],"note":null},{"kind":"property-tests","title":"Property-based tests","method":"testing","method_slug":"testing","catches":"Edge-case inputs nobody wrote a test for; invariants over generated data.","tool":null,"alternatives":[],"note":null}],"prompts":[{"slug":"bifrost-config-aware-startup-failures","title":"Config-Aware Startup Failures","description":"When adding startup preflight checks (permissions, filesystem writeability, required directories), treat failure as part of error-handling policy: be precise, actionable, and configuration-aware.","repository":"maximhq/bifrost","domain":"llm-infra","topic":"Error Handling","language":"Shell","updated":"2026-07-17","comments":3,"stars":6862,"raw":"https://awesomereviewers.com/raw/bifrost-config-aware-startup-failures.md"},{"slug":"aidlc-workflows-fail-loudly-degrade-safely","title":"Fail Loudly, Degrade Safely","description":"In session/install hooks, never hide failures. Avoid OS/tool-specific command forms and exit-code-dependent fallbacks, and when an error occurs either (1) stop with a clear message or (2) degrade gracefully while recording structured diagnostics so `--doctor`/health checks can surface what broke.","repository":"awslabs/aidlc-workflows","domain":"orchestration","topic":"Error Handling","language":"Shell","updated":"2026-07-06","comments":3,"stars":3849,"raw":"https://awesomereviewers.com/raw/aidlc-workflows-fail-loudly-degrade-safely.md"},{"slug":"opengrep-contextual-failure-handling","title":"contextual failure handling","description":"Implement intelligent failure handling that makes contextual decisions about retry, cleanup, and error propagation based on the type and likelihood of recovery from specific failures.","repository":"opengrep/opengrep","domain":"security","topic":"Error Handling","language":"Shell","updated":"2025-07-02","comments":3,"stars":1546,"raw":"https://awesomereviewers.com/raw/opengrep-contextual-failure-handling.md"},{"slug":"brew-fail-with-messages","title":"Fail with messages","description":"Functions and scripts should never fail silently. When detecting error conditions, always provide clear error messages to stderr that include context about what failed and why, then return an appropriate non-zero exit code. For user-facing commands, include guidance about correct usage when applicable.","repository":"Homebrew/brew","domain":"devtools","topic":"Error Handling","language":"Shell","updated":"2025-01-12","comments":3,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-fail-with-messages.md"},{"slug":"brew-secure-api-url-parsing","title":"Secure API URL parsing","description":"When parsing API endpoint URLs, implement rigorous input validation using precise regular expressions. This includes: - Escaping special characters in domain literals (e.g., `github\\.com`)","repository":"Homebrew/brew","domain":"devtools","topic":"API","language":"Shell","updated":"2024-01-14","comments":3,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-secure-api-url-parsing.md"},{"slug":"apisix-fail-fast-artifact-downloads","title":"Fail-fast artifact downloads","description":"For required build/CI artifacts, make the reference configurable (with a sensible default) and fetch them with fail-fast settings so HTTP errors, missing files, or bad refs stop the build immediately.","repository":"apache/apisix","domain":"cloud-infra","topic":"Error Handling","language":"Shell","updated":"2026-05-21","comments":2,"stars":16922,"raw":"https://awesomereviewers.com/raw/apisix-fail-fast-artifact-downloads.md"},{"slug":"chef-standardize-bash-error-handling","title":"Standardize bash error-handling","description":"Always use `set -eou pipefail` at the beginning of bash scripts to ensure consistent and robust error handling. This combination ensures scripts fail immediately on errors (`-e`), treat unset variables as errors (`-u`), and properly handle pipeline failures (`-o pipefail`), preventing silent failures and making debugging easier.","repository":"chef/chef","domain":"cloud-infra","topic":"Error Handling","language":"Shell","updated":"2025-06-12","comments":2,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-standardize-bash-error-handling.md"},{"slug":"claude-code-fail-fast-principle","title":"Fail fast principle","description":"When writing security-sensitive shell scripts, use strict error handling to fail immediately on errors rather than attempting fallbacks or continuing silently. Always include `set -euo pipefail` to exit on errors, treat unbound variables as errors, and propagate pipeline failures. This prevents partial application of security configurations that could leave...","repository":"anthropics/claude-code","domain":"ai-agents","topic":"Error Handling","language":"Shell","updated":"2025-03-23","comments":2,"stars":25432,"raw":"https://awesomereviewers.com/raw/claude-code-fail-fast-principle.md"},{"slug":"unstructured-validate-api-parameter-formats","title":"Validate API parameter formats","description":"Ensure API parameters match the expected format and structure of target APIs before runtime. Validate parameter types, required fields, and data structures during development rather than discovering mismatches through runtime errors.","repository":"Unstructured-IO/unstructured","domain":"llm-infra","topic":"API","language":"Shell","updated":"2024-05-15","comments":2,"stars":12117,"raw":"https://awesomereviewers.com/raw/unstructured-validate-api-parameter-formats.md"}],"prompt_count":9},{"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":null,"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":"prometheus-leverage-standard-algorithms","title":"leverage standard algorithms","description":"When implementing common algorithmic tasks like string parsing, sorting, or comparison operations, prefer built-in utilities and standard library functions over custom implementations. Standard algorithms are typically more efficient, well-tested, and maintainable than custom solutions.","repository":"prometheus/prometheus","domain":"observability","topic":"Algorithms","language":"Shell","updated":"2025-05-27","comments":2,"stars":59616,"raw":"https://awesomereviewers.com/raw/prometheus-leverage-standard-algorithms.md"}],"prompt_count":1},{"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":"cline-safe-lock-reclamation","title":"Safe lock reclamation","description":"When implementing cross-process synchronization with filesystem primitives (e.g. `mkdir` as a mutex), avoid time-of-check-to-time-of-use races between detecting a stale lock and acting on it. Treat lock recovery as its own critical section:","repository":"cline/cline","domain":"ai-agents","topic":"Concurrency","language":"Shell","updated":"2026-10-07","comments":3,"stars":70886,"raw":"https://awesomereviewers.com/raw/cline-safe-lock-reclamation.md"}],"prompt_count":1},{"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":"tensorflow-verify-platform-compatibility-first","title":"Verify platform compatibility first","description":"When writing networking code that interacts with platform-specific features, always check for the existence of platform-specific functions or resources before attempting to use them. This prevents runtime errors when your code runs in different environments (Windows, Linux, macOS, containers) that might have different capabilities or implementations.","repository":"tensorflow/tensorflow","domain":"ml-systems","topic":"Networking","language":"Shell","updated":"2025-03-15","comments":2,"stars":190625,"raw":"https://awesomereviewers.com/raw/tensorflow-verify-platform-compatibility-first.md"},{"slug":"openpilot-optimize-git-network-operations","title":"Optimize git network operations","description":"When performing git operations that involve network communication, use proper syntax and efficient strategies to minimize data transfer and ensure correct remote branch handling.","repository":"commaai/openpilot","domain":"ml-systems","topic":"Networking","language":"Shell","updated":"2024-11-26","comments":2,"stars":58214,"raw":"https://awesomereviewers.com/raw/openpilot-optimize-git-network-operations.md"}],"prompt_count":2},{"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":null,"alternatives":[],"note":null}],"prompts":[{"slug":"terraform-descriptive-migration-functions","title":"Descriptive migration functions","description":"Name migration-related functions descriptively to convey their exact purpose and context of use. Include detailed documentation explaining when and how each function should be executed in the migration workflow. For example, instead of ambiguous names like `maintenancerelease`, use more specific terms like `setupBackportBranch` or `prepareMaintenanceBranch`...","repository":"hashicorp/terraform","domain":"cloud-infra","topic":"Migrations","language":"Shell","updated":"2025-02-18","comments":2,"stars":45532,"raw":"https://awesomereviewers.com/raw/terraform-descriptive-migration-functions.md"}],"prompt_count":1},{"slug":"performance","title":"Hot paths and performance","topics":["Performance Optimization"],"checks":[],"prompts":[],"prompt_count":0},{"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":"lmcache-remove-redundant-ai-commands","title":"Remove redundant AI commands","description":"Eliminate duplicate or redundant commands when setting up AI infrastructure, model serving, or ML library installations. Redundant commands create confusion, increase maintenance overhead, and can lead to unexpected behavior in AI workflows.","repository":"LMCache/LMCache","domain":"llm-infra","topic":"AI","language":"Shell","updated":"2025-05-19","comments":2,"stars":3800,"raw":"https://awesomereviewers.com/raw/lmcache-remove-redundant-ai-commands.md"},{"slug":"ollama-model-precision-matters","title":"Model precision matters","description":"When deploying AI models on specialized hardware accelerators (GPUs, NPUs), ensure you're using compatible model precision formats. Different hardware platforms have different optimal precision requirements that significantly impact performance and compatibility.","repository":"ollama/ollama","domain":"llm-infra","topic":"AI","language":"Shell","updated":"2025-03-03","comments":2,"stars":145705,"raw":"https://awesomereviewers.com/raw/ollama-model-precision-matters.md"},{"slug":"unstructured-embedding-provider-configuration","title":"embedding provider configuration","description":"When configuring embedding providers in AI integrations, ensure proper dimension specification and use dedicated test files for different providers. Always specify the embedding dimension that matches your chosen provider (e.g., 384 for huggingface embedders) and avoid modifying existing configurations for testing purposes.","repository":"Unstructured-IO/unstructured","domain":"llm-infra","topic":"AI","language":"Shell","updated":"2024-03-26","comments":2,"stars":12117,"raw":"https://awesomereviewers.com/raw/unstructured-embedding-provider-configuration.md"}],"prompt_count":3},{"slug":"observability","title":"Logging, metrics, tracing","topics":["Logging","Observability"],"checks":[],"prompts":[],"prompt_count":0},{"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":50,"commands":["pre-commit hook check-added-large-files","pre-commit hook check-ast","pre-commit hook check-case-conflict"],"run":null,"via":"pre-commit hook check-ast","triggers":["pre_commit"],"examples":[{"repository":"opengrep/opengrep","slug":"opengrep-opengrep"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"chef-externalize-configuration-values","title":"Externalize configuration values","description":"Avoid hardcoding configuration values directly in scripts, especially for values that might change between environments or contain sensitive information. Instead, use environment variables, build parameters, or secrets management systems.","repository":"chef/chef","domain":"cloud-infra","topic":"Configurations","language":"Shell","updated":"2025-01-06","comments":6,"stars":7860,"raw":"https://awesomereviewers.com/raw/chef-externalize-configuration-values.md"},{"slug":"unstructured-environment-variable-patterns","title":"Environment variable patterns","description":"Use consistent patterns for environment variable handling in shell scripts. Always provide sensible defaults using the `${VAR:-default}` syntax, validate required variables early with clear error messages, and preserve the ability to override configuration values.","repository":"Unstructured-IO/unstructured","domain":"llm-infra","topic":"Configurations","language":"Shell","updated":"2024-09-13","comments":5,"stars":12117,"raw":"https://awesomereviewers.com/raw/unstructured-environment-variable-patterns.md"},{"slug":"codex-avoid-hard-coded-configuration","title":"Avoid hard-coded configuration","description":"Make scripts and applications flexible by avoiding hard-coded configuration values. Instead, allow users to provide configuration through command-line flags, environment variables, or configuration files. When updating scripts to use configurable parameters:","repository":"openai/codex","domain":"ai-agents","topic":"Configurations","language":"Shell","updated":"2025-05-16","comments":4,"stars":31275,"raw":"https://awesomereviewers.com/raw/codex-avoid-hard-coded-configuration.md"},{"slug":"hermes-agent-safe-configuration-handling","title":"Safe Configuration Handling","description":"When configuration affects scripts (env vars, dotenv files, compatibility gates), treat it as serialized input/output and enforce correctness at three points: (1) safe encoding, (2) correct source scoping, and (3) declared bounds.","repository":"nousresearch/hermes-agent","domain":"ai-agents","topic":"Configurations","language":"Shell","updated":"2026-07-27","comments":3,"stars":221948,"raw":"https://awesomereviewers.com/raw/hermes-agent-safe-configuration-handling.md"},{"slug":"agentcore-samples-consistent-env-config","title":"Consistent env config","description":"For scripts and tests, load configuration consistently and safely, and make any expensive/external prerequisite behavior opt-in. Apply these rules: 1) Source the same env file(s) across related scripts (deploy/destroy/test) with a guarded “missing file” behavior.","repository":"awslabs/agentcore-samples","domain":"ai-agents","topic":"Configurations","language":"Shell","updated":"2026-07-23","comments":3,"stars":3244,"raw":"https://awesomereviewers.com/raw/agentcore-samples-consistent-env-config.md"},{"slug":"nanochat-safe-configuration-defaults","title":"Safe configuration defaults","description":"When writing run/config scripts, prefer *local, opt-in* environment changes and *guarded* defaults. **Rules** 1. **Don’t mutate persistent user config** (e.g., appending to `~/.bashrc`/`~/.profile`). If you need PATH changes, set them for the current process only (e.g., `export PATH=...` inside the script).","repository":"karpathy/nanochat","domain":"ml-systems","topic":"Configurations","language":"Shell","updated":"2026-02-01","comments":3,"stars":53189,"raw":"https://awesomereviewers.com/raw/nanochat-safe-configuration-defaults.md"},{"slug":"lmcache-optimize-cicd-pipelines","title":"optimize CI/CD pipelines","description":"CI/CD pipelines should be optimized for both performance and maintainability through strategic caching, script consolidation, and compilation optimization. This involves three key practices:","repository":"LMCache/LMCache","domain":"llm-infra","topic":"CI/CD","language":"Shell","updated":"2025-06-24","comments":3,"stars":3800,"raw":"https://awesomereviewers.com/raw/lmcache-optimize-cicd-pipelines.md"},{"slug":"openpilot-pin-dependency-versions","title":"Pin dependency versions","description":"Always pin specific versions of dependencies, tools, and commits in configuration files to ensure consistent behavior across environments and deployments. When pinning versions, include comments explaining the reasoning behind the specific version choice.","repository":"commaai/openpilot","domain":"ml-systems","topic":"Configurations","language":"Shell","updated":"2025-06-23","comments":3,"stars":58214,"raw":"https://awesomereviewers.com/raw/openpilot-pin-dependency-versions.md"},{"slug":"node-export-environment-variables-once","title":"Export environment variables once","description":"When writing shell scripts, set and export all environment variables at the top of the script rather than modifying them repeatedly throughout the script. This improves readability, maintainability, and prevents inconsistent environments between commands.","repository":"nodejs/node","domain":"runtimes","topic":"Configurations","language":"Shell","updated":"2025-05-04","comments":3,"stars":112178,"raw":"https://awesomereviewers.com/raw/node-export-environment-variables-once.md"},{"slug":"bazel-environment-aware-configuration-testing","title":"Environment-aware configuration testing","description":"When writing tests for configuration-dependent functionality, implement environment detection and conditional logic to handle platform-specific differences. Tests should detect system capabilities and adjust expectations accordingly rather than assuming uniform behavior across all environments.","repository":"bazelbuild/bazel","domain":"devtools","topic":"Configurations","language":"Shell","updated":"2025-04-29","comments":3,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-environment-aware-configuration-testing.md"},{"slug":"brew-environment-variable-safety","title":"Environment variable safety","description":"When configuring environment variables, especially those related to paths, implement these safety practices: 1. Validate path accessibility before use to ensure the environment is properly configured","repository":"Homebrew/brew","domain":"devtools","topic":"Configurations","language":"Shell","updated":"2025-04-25","comments":3,"stars":44168,"raw":"https://awesomereviewers.com/raw/brew-environment-variable-safety.md"},{"slug":"ollama-use-portable-path-configurations","title":"Use portable path configurations","description":"Build and configuration scripts should use portable path handling techniques to ensure they work correctly across different environments and installations.","repository":"ollama/ollama","domain":"llm-infra","topic":"Configurations","language":"Shell","updated":"2025-02-05","comments":3,"stars":145705,"raw":"https://awesomereviewers.com/raw/ollama-use-portable-path-configurations.md"}],"prompt_count":31},{"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":null,"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":null,"alternatives":[],"note":null}],"prompts":[{"slug":"bazel-write-specific-test-assertions","title":"Write specific test assertions","description":"Make test assertions specific and verifiable rather than relying on generic metrics or counts. Use explicit checks for expected behaviors and implement proper error handling to ensure tests fail fast when something goes wrong.","repository":"bazelbuild/bazel","domain":"devtools","topic":"Testing","language":"Shell","updated":"2025-07-21","comments":2,"stars":24489,"raw":"https://awesomereviewers.com/raw/bazel-write-specific-test-assertions.md"},{"slug":"opentelemetry-python-use-proper-testing-frameworks","title":"Use proper testing frameworks","description":"Always leverage established testing frameworks and APIs over custom bash scripts or direct Python execution for test automation. Using proper testing frameworks improves maintainability, provides better error handling, and enables more flexible test configuration.","repository":"open-telemetry/opentelemetry-python","domain":"observability","topic":"Testing","language":"Shell","updated":"2025-06-23","comments":2,"stars":2061,"raw":"https://awesomereviewers.com/raw/opentelemetry-python-use-proper-testing-frameworks.md"}],"prompt_count":2},{"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":[],"prompt_count":0}]}
