{"slug":"csharp","title":"C#","extensions":[".cs"],"entry_languages":["C#"],"prompts":42,"repos":4,"sample":[{"repository":"dotnet/runtime","slug":"dotnet-runtime","checks":3},{"repository":"Azure/azure-sdk-for-net","slug":"azure-azure-sdk-for-net","checks":4},{"repository":"Azure/azure-powershell","slug":"azure-azure-powershell","checks":1},{"repository":"octokit/octokit.net","slug":"octokit-octokit.net","checks":2}],"tools":[{"id":"codeql","method":"static_analysis","kind":"security-scanning","languages":["*"],"upstream":"https://github.com/github/codeql","docs":null,"autofix":false,"exit_codes":{},"repos":2,"share":50,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"Azure/azure-powershell","slug":"azure-azure-powershell"},{"repository":"octokit/octokit.net","slug":"octokit-octokit.net"}]},{"id":"ci-matrix","method":"testing","kind":"version-matrix","languages":["*"],"upstream":"https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":25,"commands":["analyze (language: 1)"],"run":"analyze (language: 1)","via":null,"triggers":["ci"],"examples":[{"repository":"octokit/octokit.net","slug":"octokit-octokit.net"}]}],"headline":[],"raw_md":"https://awesomereviewers.com/raw/verify/csharp.md","raw_json":"https://awesomereviewers.com/raw/verify/csharp.json","url":"https://awesomereviewers.com/verify/csharp/","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":"octokit.net-consistent-naming-patterns","title":"Consistent naming patterns","description":"Follow consistent naming conventions throughout the codebase to improve readability and maintainability: 1. **Client property names should be singular**, not plural:","repository":"octokit/octokit.net","domain":"devtools","topic":"Naming Conventions","language":"C#","updated":"2018-08-10","comments":14,"stars":2793,"raw":"https://awesomereviewers.com/raw/octokit.net-consistent-naming-patterns.md"},{"slug":"runtime-optimize-for-readability","title":"Optimize for readability","description":"Write code that clearly communicates intent by using appropriate naming and formatting techniques. Improve readability by: 1. Replacing magic numbers and string literals with named constants:","repository":"dotnet/runtime","domain":"runtimes","topic":"Code Style","language":"C#","updated":"2025-07-02","comments":11,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-optimize-for-readability.md"},{"slug":"runtime-follow-naming-patterns","title":"Follow naming patterns","description":"Maintain consistent naming patterns throughout your code to improve readability and maintainability. Follow these guidelines: 1. Use PascalCase for public methods and members","repository":"dotnet/runtime","domain":"runtimes","topic":"Naming Conventions","language":"C#","updated":"2025-06-26","comments":9,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-follow-naming-patterns.md"},{"slug":"octokit.net-maintain-consistent-style","title":"Maintain consistent style","description":"Follow established patterns consistently throughout the codebase to improve readability and maintainability: 1. **Use auto properties with appropriate access modifiers**:","repository":"octokit/octokit.net","domain":"devtools","topic":"Code Style","language":"C#","updated":"2022-04-20","comments":7,"stars":2793,"raw":"https://awesomereviewers.com/raw/octokit.net-maintain-consistent-style.md"},{"slug":"azure-sdk-for-net-use-domain-specific-type-names","title":"Use domain-specific type names","description":"Types should be named with clear domain context rather than generic terms. Avoid single-word or overly generic names that could be ambiguous or conflict with other types. Instead, prefix type names with their domain or service name to provide clear context and prevent naming collisions.","repository":"Azure/azure-sdk-for-net","domain":"cloud-infra","topic":"Naming Conventions","language":"C#","updated":"2025-07-02","comments":6,"stars":5809,"raw":"https://awesomereviewers.com/raw/azure-sdk-for-net-use-domain-specific-type-names.md"},{"slug":"azure-sdk-for-net-maintain-clean-code-structure","title":"Maintain clean code structure","description":"Keep code clean and well-organized by:\\n1. Removing unnecessary elements:\\n\\ \\   - Delete commented-out code that is no longer needed\\n   - Remove unused using\\ \\ directives","repository":"Azure/azure-sdk-for-net","domain":"cloud-infra","topic":"Code Style","language":"C#","updated":"2025-06-05","comments":5,"stars":5809,"raw":"https://awesomereviewers.com/raw/azure-sdk-for-net-maintain-clean-code-structure.md"},{"slug":"azure-powershell-self-documenting-calls-models","title":"Self-Documenting Calls & Models","description":"When reviewing code, enforce two style rules: 1) **Make complex calls self-documenting**: prefer **named arguments** over positional parameters, and pass **intent variables** instead of literals when the value is logically derived.","repository":"Azure/azure-powershell","domain":"cloud-infra","topic":"Code Style","language":"C#","updated":"2026-07-19","comments":3,"stars":4762,"raw":"https://awesomereviewers.com/raw/azure-powershell-self-documenting-calls-models.md"},{"slug":"azure-powershell-consistent-identifier-naming","title":"Consistent Identifier Naming","description":"Use naming rules that keep identifiers consistent, unambiguous, and resilient to change: - Centralize repeated string keys/labels used as identifiers (e.g., dictionary/property-bag keys) into named constants so the same literal can’t drift across methods.","repository":"Azure/azure-powershell","domain":"cloud-infra","topic":"Naming Conventions","language":"C#","updated":"2026-07-13","comments":2,"stars":4762,"raw":"https://awesomereviewers.com/raw/azure-powershell-consistent-identifier-naming.md"},{"slug":"yoga-follow-language-naming-conventions","title":"Follow language naming conventions","description":"Ensure all identifiers (properties, methods, classes, variables) follow the established naming conventions of the programming language being used. This improves code readability, maintainability, and consistency across the codebase.","repository":"facebook/yoga","domain":"runtimes","topic":"Naming Conventions","language":"C#","updated":"2016-10-04","comments":2,"stars":18255,"raw":"https://awesomereviewers.com/raw/yoga-follow-language-naming-conventions.md"}],"prompt_count":9},"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":50,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"Azure/azure-powershell","slug":"azure-azure-powershell"},{"repository":"octokit/octokit.net","slug":"octokit-octokit.net"}]},"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":"azure-powershell-validate-security-inputs","title":"Validate Security Inputs","description":"Apply security validation and gating at the boundaries of security-sensitive behavior: - Validate identifiers and API-version-like parameters during cmdlet/argument binding (e.g., GUIDs, strict date patterns) so malformed inputs can’t flow into authorization/resource construction.","repository":"Azure/azure-powershell","domain":"cloud-infra","topic":"Security","language":"C#","updated":"2026-07-27","comments":6,"stars":4762,"raw":"https://awesomereviewers.com/raw/azure-powershell-validate-security-inputs.md"},{"slug":"octokit.net-secure-permission-modeling","title":"Secure permission modeling","description":"When implementing security-related models such as permissions, carefully design the properties to prevent unauthorized modifications and maintain appropriate constraints:","repository":"octokit/octokit.net","domain":"devtools","topic":"Security","language":"C#","updated":"2023-01-06","comments":2,"stars":2793,"raw":"https://awesomereviewers.com/raw/octokit.net-secure-permission-modeling.md"},{"slug":"runtime-constant-time-cryptographic-validation","title":"Constant-time cryptographic validation","description":"Always use constant-time comparison methods when validating cryptographic values to prevent timing side-channel attacks. Operations like comparing authentication tags, MACs, hashes, or any security-sensitive values should use dedicated APIs such as `CryptographicOperations.FixedTimeEquals()` rather than standard equality operators or methods.","repository":"dotnet/runtime","domain":"runtimes","topic":"Security","language":"C#","updated":"2025-07-01","comments":1,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-constant-time-cryptographic-validation.md"},{"slug":"azure-sdk-for-net-complete-authentication-testing","title":"Complete authentication testing","description":"Always verify both positive and negative authentication scenarios in your security tests. For each authentication mechanism, test that credentials are properly included when required and correctly absent when not needed. This comprehensive approach prevents potential authentication bypasses and ensures proper access control.","repository":"Azure/azure-sdk-for-net","domain":"cloud-infra","topic":"Security","language":"C#","updated":"2025-06-17","comments":1,"stars":5809,"raw":"https://awesomereviewers.com/raw/azure-sdk-for-net-complete-authentication-testing.md"}],"prompt_count":4},{"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":"runtime-specific-exceptions-with-context","title":"Specific exceptions with context","description":"Always throw the most specific exception type appropriate for the error condition and include contextual information in the error message. This helps developers quickly identify and fix issues.","repository":"dotnet/runtime","domain":"runtimes","topic":"Error Handling","language":"C#","updated":"2025-07-02","comments":9,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-specific-exceptions-with-context.md"},{"slug":"azure-sdk-for-net-check-before-dereferencing","title":"Check before dereferencing","description":"Always verify objects are not null before dereferencing them, particularly when using methods that might return null like FirstOrDefault(), LastOrDefault(), or 'as' casts. Prevent NullReferenceExceptions by adding explicit null checks before accessing members.","repository":"Azure/azure-sdk-for-net","domain":"cloud-infra","topic":"Null Handling","language":"C#","updated":"2025-06-30","comments":7,"stars":5809,"raw":"https://awesomereviewers.com/raw/azure-sdk-for-net-check-before-dereferencing.md"},{"slug":"octokit.net-use-nullable-for-optionals","title":"Use nullable for optionals","description":"When a property or parameter represents an optional value that might be absent in requests or responses, use nullable types rather than non-nullable types with default values. This clearly distinguishes between \"not set\" and an explicit value, prevents sending unintended defaults in API requests, and properly handles missing values in API responses.","repository":"octokit/octokit.net","domain":"devtools","topic":"Null Handling","language":"C#","updated":"2018-11-07","comments":6,"stars":2793,"raw":"https://awesomereviewers.com/raw/octokit.net-use-nullable-for-optionals.md"},{"slug":"azure-powershell-null-safe-inputs-and-mapping","title":"Null-Safe Inputs And Mapping","description":"When a value is optional (or can differ by feature/region/constructor), never assume it’s present or non-empty. Apply consistent null/empty/whitespace handling, gate context-dependent logic, and validate after any transform (e.g., JSON/model conversion) so missing fields don’t silently change behavior.","repository":"Azure/azure-powershell","domain":"cloud-infra","topic":"Null Handling","language":"C#","updated":"2026-07-27","comments":5,"stars":4762,"raw":"https://awesomereviewers.com/raw/azure-powershell-null-safe-inputs-and-mapping.md"},{"slug":"azure-powershell-api-versioning-and-client-methods","title":"API versioning and client methods","description":"When changing API clients, keep API versioning and HTTP operation semantics explicit and isolated. **Do** - **Scope ApiVersion changes** to only the new operation(s). If a shared client is used by many cmdlets, either (a) split the client, (b) wrap the new operation in a dedicated client/operation class, or (c) prove all affected cmdlets are covered.","repository":"Azure/azure-powershell","domain":"cloud-infra","topic":"API","language":"C#","updated":"2026-07-16","comments":5,"stars":4762,"raw":"https://awesomereviewers.com/raw/azure-powershell-api-versioning-and-client-methods.md"},{"slug":"azure-powershell-consistent-error-handling","title":"Consistent error handling","description":"Apply a single, predictable error-handling strategy across cmdlets and SDK wrappers: - **Make existence semantics consistent**: if a method supports `throwIfNotExists` (or callers rely on it), every related “read/modify” path must honor it the same way (return `null` vs throw), and callers should not silently diverge between Get/With* operations.","repository":"Azure/azure-powershell","domain":"cloud-infra","topic":"Error Handling","language":"C#","updated":"2026-07-08","comments":5,"stars":4762,"raw":"https://awesomereviewers.com/raw/azure-powershell-consistent-error-handling.md"},{"slug":"runtime-prevent-null-references","title":"Prevent null references","description":"Use defensive coding practices to prevent null reference exceptions\\ \\ by properly handling potentially null values throughout your code. \\n\\n1. **Properly\\ \\ initialize objects** instead of using default values when instantiation is needed:","repository":"dotnet/runtime","domain":"runtimes","topic":"Null Handling","language":"C#","updated":"2025-07-01","comments":5,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-prevent-null-references.md"},{"slug":"azure-sdk-for-net-specific-exceptions-for-clarity","title":"Specific exceptions for clarity","description":"Use specific exception types with meaningful error messages rather than generic exceptions to improve error handling, debugging, and API usability. This allows callers to distinguish between different error conditions and respond appropriately.","repository":"Azure/azure-sdk-for-net","domain":"cloud-infra","topic":"Error Handling","language":"C#","updated":"2025-06-30","comments":5,"stars":5809,"raw":"https://awesomereviewers.com/raw/azure-sdk-for-net-specific-exceptions-for-clarity.md"},{"slug":"octokit.net-design-intuitive-api-methods","title":"Design intuitive API methods","description":"When designing API methods, prioritize intuitive usage patterns and backwards compatibility. Follow these guidelines: 1. Order parameters from required to optional, maintaining consistency across overloads:","repository":"octokit/octokit.net","domain":"devtools","topic":"API","language":"C#","updated":"2020-04-14","comments":5,"stars":2793,"raw":"https://awesomereviewers.com/raw/octokit.net-design-intuitive-api-methods.md"},{"slug":"azure-sdk-for-net-preserve-api-compatibility","title":"Preserve API compatibility","description":"When evolving APIs, maintain backward compatibility to prevent breaking\\ \\ changes for existing consumers. \\n\\nKey approaches:\\n\\n1. **Retain removed members\\ \\ with obsolete attributes**: When removing or replacing public methods, mark the\\ \\ original as obsolete but maintain its functionality.","repository":"Azure/azure-sdk-for-net","domain":"cloud-infra","topic":"API","language":"C#","updated":"","comments":5,"stars":5809,"raw":"https://awesomereviewers.com/raw/azure-sdk-for-net-preserve-api-compatibility.md"},{"slug":"octokit.net-catch-specific-exceptions","title":"Catch specific exceptions","description":"Always catch specific exception types rather than using general catch blocks. This improves error handling precision, enables targeted recovery strategies, and maintains consistency across your codebase.","repository":"octokit/octokit.net","domain":"devtools","topic":"Error Handling","language":"C#","updated":"2022-07-06","comments":4,"stars":2793,"raw":"https://awesomereviewers.com/raw/octokit.net-catch-specific-exceptions.md"},{"slug":"runtime-honor-api-contracts","title":"Honor API contracts","description":"When implementing or modifying APIs, carefully preserve the historical behavior and semantic contracts of existing interfaces, even when those behaviors seem counterintuitive. This includes maintaining consistent exception throwing patterns and honoring the distinct purposes of method overloads.","repository":"dotnet/runtime","domain":"runtimes","topic":"API","language":"C#","updated":"2025-07-01","comments":2,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-honor-api-contracts.md"}],"prompt_count":13},{"slug":"services","title":"Service and framework code","topics":["Fastify","NestJS","Spring","Axum","Celery","Temporal"],"checks":[{"kind":"unit-tests","title":"Unit and integration tests","method":"testing","method_slug":"testing","catches":"Behaviour regressions on the paths the tests exercise.","tool":null,"alternatives":[],"note":null},{"kind":"version-matrix","title":"Version and platform matrix","method":"testing","method_slug":"testing","catches":"Breakage on a runtime version, OS or feature combination you did not run locally.","tool":{"id":"ci-matrix","method":"testing","kind":"version-matrix","languages":["*"],"upstream":"https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":25,"commands":["analyze (language: 1)"],"run":"analyze (language: 1)","via":null,"triggers":["ci"],"examples":[{"repository":"octokit/octokit.net","slug":"octokit-octokit.net"}]},"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":"runtime-optimize-memory-access","title":"Optimize memory access","description":"When implementing performance-critical algorithms, carefully consider memory access patterns. Document alignment assumptions when using low-level operations like `MemoryMarshal.Cast` or SIMD intrinsics. Prefer reference-based APIs over pinning to avoid GC interference. For bulk operations, use specialized helpers like `LoadUnsafe(ref T source, nuint...","repository":"dotnet/runtime","domain":"runtimes","topic":"Algorithms","language":"C#","updated":"2025-06-26","comments":9,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-optimize-memory-access.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":"runtime-avoid-busy-waiting","title":"Avoid busy waiting","description":"When implementing concurrent code that waits for conditions to be met, avoid busy-wait loops that continuously consume CPU resources. Busy-waiting wastes processing power, reduces overall system performance, and can increase power consumption.","repository":"dotnet/runtime","domain":"runtimes","topic":"Concurrency","language":"C#","updated":"2025-07-02","comments":5,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-avoid-busy-waiting.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":[],"prompt_count":0},{"slug":"ui","title":"UI components and pages","topics":["React","Next","Next.js","Vue","Angular"],"checks":[{"kind":"browser-tests","title":"End-to-end browser tests","method":"testing","method_slug":"testing","catches":"User flows broken across components, routing and the network.","tool":null,"alternatives":[],"note":null},{"kind":"linting","title":"Linting","method":"static_analysis","method_slug":"static-analysis","catches":"Bug-prone patterns, unused code and conventions the formatter does not cover.","tool":null,"alternatives":[],"note":null}],"prompts":[],"prompt_count":0},{"slug":"data","title":"Databases, migrations, caching","topics":["Database","Migrations","Caching"],"checks":[{"kind":"unit-tests","title":"Unit and integration tests","method":"testing","method_slug":"testing","catches":"Behaviour regressions on the paths the tests exercise.","tool":null,"alternatives":[],"note":null},{"kind":"version-matrix","title":"Version and platform matrix","method":"testing","method_slug":"testing","catches":"Breakage on a runtime version, OS or feature combination you did not run locally.","tool":{"id":"ci-matrix","method":"testing","kind":"version-matrix","languages":["*"],"upstream":"https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":25,"commands":["analyze (language: 1)"],"run":"analyze (language: 1)","via":null,"triggers":["ci"],"examples":[{"repository":"octokit/octokit.net","slug":"octokit-octokit.net"}]},"alternatives":[],"note":null}],"prompts":[],"prompt_count":0},{"slug":"performance","title":"Hot paths and performance","topics":["Performance Optimization"],"checks":[],"prompts":[{"slug":"azure-sdk-for-net-minimize-memory-allocations","title":"Minimize memory allocations","description":"Reduce garbage collection pressure and improve application performance by avoiding unnecessary memory allocations. This significantly impacts overall system responsiveness, especially for high-throughput services.","repository":"Azure/azure-sdk-for-net","domain":"cloud-infra","topic":"Performance Optimization","language":"C#","updated":"2025-07-02","comments":6,"stars":5809,"raw":"https://awesomereviewers.com/raw/azure-sdk-for-net-minimize-memory-allocations.md"},{"slug":"runtime-cache-expensive-computations","title":"Cache expensive computations","description":"Avoid recomputing expensive operations by caching results when they will be used multiple times. This applies to method calls, property access, and static property lookups. The performance impact of repeated calculations can be significant, especially in hot code paths.","repository":"dotnet/runtime","domain":"runtimes","topic":"Performance Optimization","language":"C#","updated":"2025-07-01","comments":5,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-cache-expensive-computations.md"}],"prompt_count":2},{"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":[],"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":null,"alternatives":[],"note":null}],"prompts":[{"slug":"azure-sdk-for-net-standardize-environment-variables","title":"Standardize environment variables","description":"Ensure environment variable names are consistently spelled, properly referenced, and follow established naming conventions across test files. Replace hardcoded values with environment variables for credentials, endpoints, and other configurable test parameters. Always provide meaningful defaults when environment variables aren't available to ensure tests...","repository":"Azure/azure-sdk-for-net","domain":"cloud-infra","topic":"Configurations","language":"C#","updated":"2025-06-25","comments":4,"stars":5809,"raw":"https://awesomereviewers.com/raw/azure-sdk-for-net-standardize-environment-variables.md"},{"slug":"azure-powershell-avoid-manual-sdk-edits","title":"Avoid manual SDK edits","description":"When working on CI/CD pipelines, treat anything under `*Management.Sdk/Generated/*` (or similarly generated folders) as read-only. **Standard** - **Do not manually edit generated SDK/model files.** CI may fail and changes will be overwritten on the next regen.","repository":"Azure/azure-powershell","domain":"cloud-infra","topic":"CI/CD","language":"C#","updated":"2026-07-14","comments":3,"stars":4762,"raw":"https://awesomereviewers.com/raw/azure-powershell-avoid-manual-sdk-edits.md"},{"slug":"octokit.net-abstract-configuration-access","title":"Abstract configuration access","description":"Use abstraction layers to access configuration settings rather than accessing environment variables, feature flags, or other configuration sources directly. This improves maintainability by centralizing configuration logic, enabling validation, and simplifying testing.","repository":"octokit/octokit.net","domain":"devtools","topic":"Configurations","language":"C#","updated":"2016-12-23","comments":3,"stars":2793,"raw":"https://awesomereviewers.com/raw/octokit.net-abstract-configuration-access.md"},{"slug":"runtime-feature-flag-implementation","title":"Feature flag implementation","description":"When implementing feature flags, ensure consistency between runtime and compiled scenarios. Feature switches marked with `FeatureSwitchDefinition` must properly return the AppContext switch value when defined:","repository":"dotnet/runtime","domain":"runtimes","topic":"Configurations","language":"C#","updated":"","comments":2,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-feature-flag-implementation.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":1,"share":25,"commands":["analyze (language: 1)"],"run":"analyze (language: 1)","via":null,"triggers":["ci"],"examples":[{"repository":"octokit/octokit.net","slug":"octokit-octokit.net"}]},"alternatives":[],"note":null}],"prompts":[],"prompt_count":0},{"slug":"tests","title":"The tests themselves","topics":["Testing"],"checks":[{"kind":"mutation-testing","title":"Mutation testing","method":"testing","method_slug":"testing","catches":"Tests that keep passing whatever the code does.","tool":null,"alternatives":[],"note":null},{"kind":"version-matrix","title":"Version and platform matrix","method":"testing","method_slug":"testing","catches":"Breakage on a runtime version, OS or feature combination you did not run locally.","tool":{"id":"ci-matrix","method":"testing","kind":"version-matrix","languages":["*"],"upstream":"https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":25,"commands":["analyze (language: 1)"],"run":"analyze (language: 1)","via":null,"triggers":["ci"],"examples":[{"repository":"octokit/octokit.net","slug":"octokit-octokit.net"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"octokit.net-use-specific-assertions","title":"Use specific assertions","description":"Always write assertions that verify specific, expected values rather than simple existence or boolean checks. This ensures tests validate exactly what you intend and provides clearer error messages when tests fail.","repository":"octokit/octokit.net","domain":"devtools","topic":"Testing","language":"C#","updated":"2018-06-20","comments":8,"stars":2793,"raw":"https://awesomereviewers.com/raw/octokit.net-use-specific-assertions.md"},{"slug":"runtime-maintainable-test-structure","title":"Maintainable test structure","description":"Write tests that are maintainable, self-documenting, and that promote good testing practices: 1. **Use proper assertion mechanisms**: Prefer modern assertion patterns over legacy approaches. Use built-in assertion methods that clearly indicate what is being tested.","repository":"dotnet/runtime","domain":"runtimes","topic":"Testing","language":"C#","updated":"2025-07-02","comments":5,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-maintainable-test-structure.md"},{"slug":"azure-sdk-for-net-write-deterministic-tests","title":"Write deterministic tests","description":"Tests should be deterministic, reliable, and isolated from external dependencies to ensure consistent results across environments. To achieve this: 1. **Avoid direct network calls** that can introduce flakiness and slow down tests. Instead:","repository":"Azure/azure-sdk-for-net","domain":"cloud-infra","topic":"Testing","language":"C#","updated":"2025-06-19","comments":4,"stars":5809,"raw":"https://awesomereviewers.com/raw/azure-sdk-for-net-write-deterministic-tests.md"},{"slug":"azure-powershell-unit-tests-for-cmdlet-paths","title":"Unit tests for cmdlet paths","description":"Add isolated unit tests for cmdlet production paths using mocked client operations. Tests must validate more than a “happy path” scenario run: - Verify exact client call arguments (including resource identifiers and IDs).","repository":"Azure/azure-powershell","domain":"cloud-infra","topic":"Testing","language":"C#","updated":"2026-07-16","comments":2,"stars":4762,"raw":"https://awesomereviewers.com/raw/azure-powershell-unit-tests-for-cmdlet-paths.md"}],"prompt_count":4},{"slug":"docs","title":"Documentation and comments","topics":["Documentation"],"checks":[{"kind":"docs-build","title":"Docs build","method":"static_analysis","method_slug":"static-analysis","catches":"Broken cross-references, links and markup in documentation.","tool":null,"alternatives":[],"note":null},{"kind":"spelling","title":"Spelling","method":"formatting","method_slug":"formatting","catches":"Typos in identifiers, comments and docs.","tool":null,"alternatives":[],"note":null}],"prompts":[{"slug":"octokit.net-document-public-api-elements","title":"Document public API elements","description":"Every public API element (classes, methods, properties, constructors) must have XML documentation comments that clearly describe its purpose and usage. This improves developer experience through IntelliSense and ensures the API is well-documented.","repository":"octokit/octokit.net","domain":"devtools","topic":"Documentation","language":"C#","updated":"2023-07-24","comments":8,"stars":2793,"raw":"https://awesomereviewers.com/raw/octokit.net-document-public-api-elements.md"},{"slug":"azure-sdk-for-net-document-code-reasoning","title":"Document code reasoning","description":"Add clear, concise comments that explain the \"why\" behind complex logic, non-obvious decisions, and implicit behaviors. Focus on documenting: 1. **Algorithmic choices and control flow** - Explain why loops are broken, conditions are checked, or specific approaches are used.","repository":"Azure/azure-sdk-for-net","domain":"cloud-infra","topic":"Documentation","language":"C#","updated":"2025-06-25","comments":6,"stars":5809,"raw":"https://awesomereviewers.com/raw/azure-sdk-for-net-document-code-reasoning.md"},{"slug":"runtime-document-code-meaningfully","title":"Document code meaningfully","description":"Provide meaningful documentation that enhances code maintainability and understanding. Follow these practices: 1. **Explain the \"why\"** - Document complex or non-obvious code behavior with comments that explain reasoning, not just functionality:","repository":"dotnet/runtime","domain":"runtimes","topic":"Documentation","language":"C#","updated":"2025-06-27","comments":5,"stars":16578,"raw":"https://awesomereviewers.com/raw/runtime-document-code-meaningfully.md"},{"slug":"azure-powershell-documentation-source-and-tone","title":"Documentation Source And Tone","description":"When updating documentation (assembly metadata, cmdlet HelpMessage, generated stubs, etc.), ensure (1) you change the correct source of truth and (2) the text is written for users, not for internal implementation.","repository":"Azure/azure-powershell","domain":"cloud-infra","topic":"Documentation","language":"C#","updated":"2026-04-24","comments":2,"stars":4762,"raw":"https://awesomereviewers.com/raw/azure-powershell-documentation-source-and-tone.md"}],"prompt_count":4}]}
