{"slug":"javascript","title":"JavaScript","extensions":[".js",".jsx",".mjs",".cjs"],"entry_languages":["JavaScript"],"prompts":318,"repos":22,"sample":[{"repository":"facebook/react","slug":"facebook-react","checks":7},{"repository":"vercel/next.js","slug":"vercel-next.js","checks":11},{"repository":"facebook/react-native","slug":"facebook-react-native","checks":4},{"repository":"nodejs/node","slug":"nodejs-node","checks":8},{"repository":"axios/axios","slug":"axios-axios","checks":7},{"repository":"mui/material-ui","slug":"mui-material-ui","checks":6},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid","checks":9},{"repository":"sveltejs/svelte","slug":"sveltejs-svelte","checks":5},{"repository":"expressjs/express","slug":"expressjs-express","checks":4},{"repository":"bmad-code-org/bmad-method","slug":"bmad-code-org-bmad-method","checks":7},{"repository":"prettier/prettier","slug":"prettier-prettier","checks":6},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress","checks":5},{"repository":"serverless/serverless","slug":"serverless-serverless","checks":6},{"repository":"discourse/discourse","slug":"discourse-discourse","checks":3},{"repository":"zen-browser/desktop","slug":"zen-browser-desktop","checks":2},{"repository":"fastify/fastify","slug":"fastify-fastify","checks":3},{"repository":"decolua/9router","slug":"decolua-9router","checks":2},{"repository":"tj/commander.js","slug":"tj-commander.js","checks":6},{"repository":"chalk/chalk","slug":"chalk-chalk","checks":2},{"repository":"adonisjs/core","slug":"adonisjs-core","checks":4},{"repository":"aws/aws-sdk-js","slug":"aws-aws-sdk-js","checks":3},{"repository":"cloudflare/workerd","slug":"cloudflare-workerd","checks":7}],"tools":[{"id":"eslint","method":"static_analysis","kind":"linting","languages":["javascript","typescript"],"upstream":"https://github.com/eslint/eslint","docs":"https://eslint.org/docs/latest/use/command-line-interface#exit-codes","autofix":true,"exit_codes":{"0":"no errors","1":"linting errors found","2":"configuration problem or internal error"},"repos":21,"share":95,"commands":["eslint .","eslint","eslint --fix"],"run":"eslint .","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"nodejs/node","slug":"nodejs-node"},{"repository":"axios/axios","slug":"axios-axios"},{"repository":"mui/material-ui","slug":"mui-material-ui"}]},{"id":"prettier","method":"formatting","kind":"formatting","languages":["javascript","typescript","yaml","config","docs"],"upstream":"https://github.com/prettier/prettier","docs":"https://prettier.io/docs/cli#exit-codes","autofix":true,"exit_codes":{"0":"everything formatted","1":"something was not formatted (--check)","2":"prettier error"},"repos":14,"share":64,"commands":["prettier --write .","prettier --check .","prettier --cache --check ."],"run":"prettier --write .","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"axios/axios","slug":"axios-axios"},{"repository":"mui/material-ui","slug":"mui-material-ui"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"}]},{"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":9,"share":41,"commands":["analyze (language: 2)","Tests (include: 5)","analyze (language: 1)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"nodejs/node","slug":"nodejs-node"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"sveltejs/svelte","slug":"sveltejs-svelte"},{"repository":"expressjs/express","slug":"expressjs-express"},{"repository":"bmad-code-org/bmad-method","slug":"bmad-code-org-bmad-method"},{"repository":"prettier/prettier","slug":"prettier-prettier"}]},{"id":"jest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/jestjs/jest","docs":null,"autofix":false,"exit_codes":{},"repos":7,"share":32,"commands":["jest","jest --maxWorkers=2 --ci --reporters=default --reporters=jest-junit","jest --runInBand"],"run":"jest","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"prettier/prettier","slug":"prettier-prettier"},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress"}]},{"id":"vitest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/vitest-dev/vitest","docs":null,"autofix":false,"exit_codes":{},"repos":7,"share":32,"commands":["vitest run","vitest","vitest --coverage"],"run":"vitest run","via":null,"triggers":["ci","local"],"examples":[{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"axios/axios","slug":"axios-axios"},{"repository":"mui/material-ui","slug":"mui-material-ui"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"sveltejs/svelte","slug":"sveltejs-svelte"},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress"}]},{"id":"codeql","method":"static_analysis","kind":"security-scanning","languages":["*"],"upstream":"https://github.com/github/codeql","docs":null,"autofix":false,"exit_codes":{},"repos":5,"share":23,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"nodejs/node","slug":"nodejs-node"},{"repository":"mui/material-ui","slug":"mui-material-ui"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"expressjs/express","slug":"expressjs-express"},{"repository":"tj/commander.js","slug":"tj-commander.js"}]},{"id":"mocha","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/mochajs/mocha","docs":null,"autofix":false,"exit_codes":{},"repos":4,"share":18,"commands":["mocha -- $npm_package_config_test_args","mocha --reporter spec scripts/spec.js","mocha --require coffeescript/register -s 1000 -t 10000 dist-tools/test/*.coffee"],"run":"mocha --require coffeescript/register -s 1000 -t 10000 dist-tools/test/*.coffee","via":null,"triggers":["local"],"examples":[{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"expressjs/express","slug":"expressjs-express"},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress"},{"repository":"aws/aws-sdk-js","slug":"aws-aws-sdk-js"}]},{"id":"playwright","method":"testing","kind":"browser-tests","languages":["javascript","typescript"],"upstream":"https://github.com/microsoft/playwright","docs":null,"autofix":false,"exit_codes":{},"repos":4,"share":18,"commands":["playwright test","playwright test $(node scripts/e2e-tier-scope.mjs pr-check nightly-check","playwright test ${SPECS[@]} --shard=${SHARD}/${SHARD_TOTAL}"],"run":"playwright test","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"mui/material-ui","slug":"mui-material-ui"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"}]},{"id":"dependency-review","method":"supply_chain","kind":"dependency-audit","languages":["*"],"upstream":"https://github.com/actions/dependency-review-action","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":14,"commands":["uses actions/dependency-review-action"],"run":null,"via":"GitHub Action actions/dependency-review-action","triggers":["ci"],"examples":[{"repository":"axios/axios","slug":"axios-axios"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"prettier/prettier","slug":"prettier-prettier"}]},{"id":"node-test","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/nodejs/node","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":14,"commands":["node --test","node --test .vitepress/tokenizeSearchText.test.js","node --test test/build/version.test.js"],"run":"node --test .vitepress/tokenizeSearchText.test.js","via":null,"triggers":["ci","local"],"examples":[{"repository":"axios/axios","slug":"axios-axios"},{"repository":"fastify/fastify","slug":"fastify-fastify"},{"repository":"tj/commander.js","slug":"tj-commander.js"}]},{"id":"biome","method":"static_analysis","kind":"linting","languages":["javascript","typescript","config"],"upstream":"https://github.com/biomejs/biome","docs":null,"autofix":true,"exit_codes":{},"repos":1,"share":5,"commands":[],"run":null,"via":null,"triggers":[],"examples":[{"repository":"vercel/next.js","slug":"vercel-next.js"}]},{"id":"npm-audit","method":"supply_chain","kind":"dependency-audit","languages":["javascript","typescript"],"upstream":"https://github.com/npm/cli","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":5,"commands":["npm audit signatures"],"run":"npm audit signatures","via":null,"triggers":["ci"],"examples":[{"repository":"adonisjs/core","slug":"adonisjs-core"}]},{"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":5,"commands":["pre-commit hook check-json"],"run":null,"via":"pre-commit hook check-json","triggers":["pre_commit","ci"],"examples":[{"repository":"bmad-code-org/bmad-method","slug":"bmad-code-org-bmad-method"}]},{"id":"semgrep","method":"static_analysis","kind":"security-scanning","languages":["*"],"upstream":"https://github.com/semgrep/semgrep","docs":null,"autofix":false,"exit_codes":{},"repos":1,"share":5,"commands":["semgrep ci"],"run":"semgrep ci","via":null,"triggers":["ci"],"examples":[{"repository":"cloudflare/workerd","slug":"cloudflare-workerd"}]}],"headline":["prettier","eslint","jest"],"raw_md":"https://awesomereviewers.com/raw/verify/javascript.md","raw_json":"https://awesomereviewers.com/raw/verify/javascript.json","url":"https://awesomereviewers.com/verify/javascript/","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":{"id":"prettier","method":"formatting","kind":"formatting","languages":["javascript","typescript","yaml","config","docs"],"upstream":"https://github.com/prettier/prettier","docs":"https://prettier.io/docs/cli#exit-codes","autofix":true,"exit_codes":{"0":"everything formatted","1":"something was not formatted (--check)","2":"prettier error"},"repos":14,"share":64,"commands":["prettier --write .","prettier --check .","prettier --cache --check ."],"run":"prettier --write .","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"axios/axios","slug":"axios-axios"},{"repository":"mui/material-ui","slug":"mui-material-ui"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"}]},"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":{"id":"eslint","method":"static_analysis","kind":"linting","languages":["javascript","typescript"],"upstream":"https://github.com/eslint/eslint","docs":"https://eslint.org/docs/latest/use/command-line-interface#exit-codes","autofix":true,"exit_codes":{"0":"no errors","1":"linting errors found","2":"configuration problem or internal error"},"repos":21,"share":95,"commands":["eslint .","eslint","eslint --fix"],"run":"eslint .","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"nodejs/node","slug":"nodejs-node"},{"repository":"axios/axios","slug":"axios-axios"},{"repository":"mui/material-ui","slug":"mui-material-ui"}]},"alternatives":[{"id":"biome","repos":1,"share":5}],"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":{"id":"jest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/jestjs/jest","docs":null,"autofix":false,"exit_codes":{},"repos":7,"share":32,"commands":["jest","jest --maxWorkers=2 --ci --reporters=default --reporters=jest-junit","jest --runInBand"],"run":"jest","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"prettier/prettier","slug":"prettier-prettier"},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress"}]},"alternatives":[{"id":"vitest","repos":7,"share":32},{"id":"mocha","repos":4,"share":18},{"id":"node-test","repos":3,"share":14}],"note":null}],"prompts":[{"slug":"serverless-use-descriptive-semantic-names","title":"Use descriptive semantic names","description":"Variable and function names should clearly communicate their purpose, type, and scope without requiring additional context. Avoid confusing naming patterns and follow established conventions to improve code readability and maintainability.","repository":"serverless/serverless","domain":"cloud-infra","topic":"Naming Conventions","language":"JavaScript","updated":"2023-05-23","comments":16,"stars":46810,"raw":"https://awesomereviewers.com/raw/serverless-use-descriptive-semantic-names.md"},{"slug":"svelte-prefer-simple-code-patterns","title":"prefer simple code patterns","description":"Choose straightforward, readable code patterns over complex or clever alternatives. This improves maintainability and reduces cognitive load for other developers.","repository":"sveltejs/svelte","domain":"app-frameworks","topic":"Code Style","language":"JavaScript","updated":"2025-07-23","comments":9,"stars":83580,"raw":"https://awesomereviewers.com/raw/svelte-prefer-simple-code-patterns.md"},{"slug":"prettier-refactor-complex-conditions","title":"refactor complex conditions","description":"Break down complex inline conditions and nested logic into separate, well-named functions or simpler expressions to improve code readability and maintainability.","repository":"prettier/prettier","domain":"devtools","topic":"Code Style","language":"JavaScript","updated":"2025-04-25","comments":9,"stars":50772,"raw":"https://awesomereviewers.com/raw/prettier-refactor-complex-conditions.md"},{"slug":"express-respect-lint-and-syntax-conventions","title":"Respect lint and syntax conventions","description":"Before introducing newer JavaScript syntax (ES6 classes, multiple `const` declarations, spread operators, template literals, etc.), verify it is actually supported by the project's configured linter and target Node/runtime compatibility. Several PRs had to be reverted or reworked because `eslint` rejected classes, template literals, or spread syntax that...","repository":"Expressjs/Express","domain":"app-frameworks","topic":"Code Style","language":"JavaScript","updated":"2024-08-02","comments":9,"stars":69580,"raw":"https://awesomereviewers.com/raw/express-respect-lint-and-syntax-conventions.md"},{"slug":"express-incremental-standard-style-adoption","title":"Incremental standard-style adoption","description":"The codebase is migrating toward the `standard` JavaScript style (no semicolons, multiple `const`/`let` declarations instead of comma-chained `var`, unindented chained method calls, space before function parentheses, etc.). Apply this style only to the lines you are already modifying, not as a wholesale reformat of untouched code — unrelated...","repository":"expressjs/Express","domain":"app-frameworks","topic":"Code Style","language":"JavaScript","updated":"2024-07-14","comments":9,"stars":69579,"raw":"https://awesomereviewers.com/raw/express-incremental-standard-style-adoption.md"},{"slug":"mermaid-consistent-style-and-diffs","title":"Consistent Style And Diffs","description":"Apply a consistent, tool-friendly coding style to reduce formatting churn and improve readability. **Rules** - **Keep diffs stable:** Don’t apply formatting-only changes to existing tests/cases unless the PR’s purpose is explicitly formatting coverage. Revert incidental alignment/whitespace changes; add new focused cases instead.","repository":"mermaid-js/mermaid","domain":"devtools","topic":"Code Style","language":"JavaScript","updated":"2026-01-05","comments":8,"stars":87952,"raw":"https://awesomereviewers.com/raw/mermaid-consistent-style-and-diffs.md"},{"slug":"prettier-use-descriptive-variable-names","title":"Use descriptive variable names","description":"Choose variable and function names that clearly communicate their purpose, type, and context. Avoid abbreviations, overly generic terms, and names that could be confused for different types.","repository":"prettier/prettier","domain":"devtools","topic":"Naming Conventions","language":"JavaScript","updated":"2024-08-16","comments":8,"stars":50772,"raw":"https://awesomereviewers.com/raw/prettier-use-descriptive-variable-names.md"},{"slug":"serverless-prefer-simple-readable-patterns","title":"prefer simple readable patterns","description":"Choose simple, readable code patterns over complex alternatives. Avoid unnecessary complexity that doesn't add functional value but makes code harder to understand and maintain.","repository":"serverless/serverless","domain":"cloud-infra","topic":"Code Style","language":"JavaScript","updated":"2023-05-09","comments":8,"stars":46810,"raw":"https://awesomereviewers.com/raw/serverless-prefer-simple-readable-patterns.md"},{"slug":"react-native-extract-complex-logic","title":"extract complex logic","description":"Break down complex functions and large files into smaller, focused units with clear responsibilities. Extract complex logic into well-named helper functions, split large files into focused modules, and prefer `const` over `let` for variables that won't be reassigned.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Code Style","language":"JavaScript","updated":"2025-03-31","comments":7,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-extract-complex-logic.md"},{"slug":"express-clear-intention-in-names","title":"Clear intention in names","description":"Choose names that clearly communicate intention and follow established conventions. This applies to variables, functions, methods, and architectural components.","repository":"expressjs/express","domain":"app-frameworks","topic":"Naming Conventions","language":"JavaScript","updated":"2022-07-04","comments":7,"stars":67300,"raw":"https://awesomereviewers.com/raw/express-clear-intention-in-names.md"},{"slug":"express-follow-standardjs-when-modifying","title":"Follow StandardJS when modifying","description":"When modifying existing code, update the touched lines to follow StandardJS conventions while preserving the style of untouched code. This ensures gradual, consistent adoption of StandardJS formatting.","repository":"expressjs/express","domain":"app-frameworks","topic":"Code Style","language":"JavaScript","updated":"2018-11-29","comments":7,"stars":67300,"raw":"https://awesomereviewers.com/raw/express-follow-standardjs-when-modifying.md"},{"slug":"bmad-method-normalize-generated-output","title":"Normalize Generated Output","description":"When generating files/metadata, make output deterministic and cross-platform by normalizing both *paths* and *text line endings*, and by keeping shared formatting rules/filters centralized.","repository":"bmad-code-org/bmad-method","domain":"app-frameworks","topic":"Code Style","language":"JavaScript","updated":"2026-07-28","comments":6,"stars":51859,"raw":"https://awesomereviewers.com/raw/bmad-method-normalize-generated-output.md"}],"prompt_count":53},"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":5,"share":23,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"nodejs/node","slug":"nodejs-node"},{"repository":"mui/material-ui","slug":"mui-material-ui"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"expressjs/express","slug":"expressjs-express"},{"repository":"tj/commander.js","slug":"tj-commander.js"}]},"alternatives":[{"id":"semgrep","repos":1,"share":5}],"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":{"id":"dependency-review","method":"supply_chain","kind":"dependency-audit","languages":["*"],"upstream":"https://github.com/actions/dependency-review-action","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":14,"commands":["uses actions/dependency-review-action"],"run":null,"via":"GitHub Action actions/dependency-review-action","triggers":["ci"],"examples":[{"repository":"axios/axios","slug":"axios-axios"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"prettier/prettier","slug":"prettier-prettier"}]},"alternatives":[{"id":"npm-audit","repos":1,"share":5}],"note":null}],"prompts":[{"slug":"9router-enforce-trust-boundaries","title":"Enforce trust boundaries","description":"Treat every point where data crosses a trust boundary as a security checkpoint, not an afterthought. Concretely: 1. Never leak secrets outward. Any response-shaping helper (e.g. `toProviderConnectionResponse()`) must strip credential fields such as `sessionToken`/`accessKeyId` from create, list, detail, and update responses even though the raw value is...","repository":"Decolua/9Router","domain":"llm-infra","topic":"Security","language":"JavaScript","updated":"2026-09-29","comments":6,"stars":31414,"raw":"https://awesomereviewers.com/raw/9router-enforce-trust-boundaries.md"},{"slug":"bmad-method-strict-input-validation","title":"Strict Input Validation","description":"Always validate and constrain any user-controlled or data-driven strings (IDs, slugs, CLI flags, manifest/CSV fields) before using them to build paths, filenames, or subprocess commands, and apply defense-in-depth against common classes of attacks.","repository":"bmad-code-org/bmad-method","domain":"security","topic":"Security","language":"JavaScript","updated":"2026-05-25","comments":6,"stars":51859,"raw":"https://awesomereviewers.com/raw/bmad-method-strict-input-validation.md"},{"slug":"9router-guard-trust-boundaries","title":"Guard trust boundaries","description":"Treat every point where data crosses a trust boundary — server to client, client to server, or internal module to external provider — as a security checkpoint, not a pass-through.","repository":"decolua/9router","domain":"llm-infra","topic":"Security","language":"JavaScript","updated":"2026-09-29","comments":5,"stars":31412,"raw":"https://awesomereviewers.com/raw/9router-guard-trust-boundaries.md"},{"slug":"qwen-code-fail-closed-security-hygiene","title":"Fail-Closed Security Hygiene","description":"Security gates and cleanup must be *fail-closed* and *boundary-proven*. Apply these rules when implementing/adjusting secure workflows: 1) **Authorization must not degrade**","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Security","language":"JavaScript","updated":"2026-07-26","comments":4,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-fail-closed-security-hygiene.md"},{"slug":"express-validate-untrusted-input-strictly","title":"Validate untrusted input strictly","description":"Treat any value that originates from user input, HTTP headers, or caller-supplied options as untrusted, and validate it with explicit, narrow rules rather than loose type checks. Prefer allow-lists or numeric ranges over single-type checks (e.g. reject any statusCode outside 100-999 instead of only checking `typeof === 'bigint'`), and only trust headers...","repository":"Expressjs/Express","domain":"app-frameworks","topic":"Security","language":"JavaScript","updated":"2025-10-16","comments":4,"stars":69580,"raw":"https://awesomereviewers.com/raw/express-validate-untrusted-input-strictly.md"},{"slug":"axios-validate-security-critical-inputs","title":"Validate security-critical inputs","description":"Always validate and sanitize user-supplied inputs before using them in security-sensitive operations. This helps prevent multiple types of vulnerabilities including Server-Side Request Forgery (SSRF), prototype pollution, and command injection.","repository":"axios/axios","domain":"app-frameworks","topic":"Security","language":"JavaScript","updated":"","comments":4,"stars":107000,"raw":"https://awesomereviewers.com/raw/axios-validate-security-critical-inputs.md"},{"slug":"express-validate-untrusted-external-input","title":"Validate untrusted external input","description":"Treat any data that originates outside the application's trust boundary—URL/route params, HTTP headers, and caller-supplied option objects—as untrusted until it is explicitly validated or the trust relationship is configured. Do not use raw external values directly as object keys, flags, or configuration overrides, since this can lead to prototype...","repository":"expressjs/Express","domain":"app-frameworks","topic":"Security","language":"JavaScript","updated":"2026-09-29","comments":3,"stars":69579,"raw":"https://awesomereviewers.com/raw/express-validate-untrusted-external-input.md"},{"slug":"9router-sanitize-untrusted-input-fail-closed","title":"Sanitize untrusted input, fail closed","description":"Treat any data that originates outside your own trust boundary—upstream provider responses, client-supplied tool/parameter names, or unconfigured feature state—as potentially hostile, and default to the safest possible behavior rather than optimistically trusting or guessing it.","repository":"Decolua/9Router","domain":"llm-infra","topic":"Security","language":"JavaScript","updated":"2026-09-13","comments":3,"stars":31641,"raw":"https://awesomereviewers.com/raw/9router-sanitize-untrusted-input-fail-closed.md"},{"slug":"hermes-agent-secure-boundary-enforcement","title":"Secure boundary enforcement","description":"When code crosses security boundaries (HTTP auth, subprocess execution, or policy-driven external side effects), it must follow the established secure path and validate before acting.","repository":"nousresearch/hermes-agent","domain":"ai-agents","topic":"Security","language":"JavaScript","updated":"2026-07-14","comments":3,"stars":221948,"raw":"https://awesomereviewers.com/raw/hermes-agent-secure-boundary-enforcement.md"},{"slug":"omniroute-fail-closed-credential-checks","title":"Fail-Closed Credential Checks","description":"When validating security state (e.g., whether credentials are encrypted, authorized sessions exist, tokens exist, etc.), treat any inability to inspect sensitive data as a security failure—don’t silently default to a permissive/incorrect outcome. In practice:","repository":"diegosouzapw/OmniRoute","domain":"llm-infra","topic":"Security","language":"JavaScript","updated":"2026-03-14","comments":2,"stars":33162,"raw":"https://awesomereviewers.com/raw/omniroute-fail-closed-credential-checks.md"},{"slug":"roo-code-sanitize-user-inputs","title":"Sanitize user inputs","description":"Always validate and sanitize user-provided inputs before using them\\ \\ in security-sensitive operations to prevent XSS attacks and unsafe redirections.\\ \\ \\n","repository":"RooCodeInc/Roo-Code","domain":"ai-agents","topic":"Security","language":"JavaScript","updated":"2025-07-20","comments":2,"stars":17288,"raw":"https://awesomereviewers.com/raw/roo-code-sanitize-user-inputs.md"},{"slug":"node-validate-network-request-parameters","title":"Validate network request parameters","description":"Always validate and sanitize all network request parameters to prevent injection attacks. This includes: 1. **URL validation**: Consider restricting URLs to trusted origins only (e.g., localhost/loopback interfaces) to reduce the attack surface.","repository":"nodejs/node","domain":"runtimes","topic":"Security","language":"JavaScript","updated":"2025-07-07","comments":2,"stars":112178,"raw":"https://awesomereviewers.com/raw/node-validate-network-request-parameters.md"}],"prompt_count":32},{"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":{"id":"jest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/jestjs/jest","docs":null,"autofix":false,"exit_codes":{},"repos":7,"share":32,"commands":["jest","jest --maxWorkers=2 --ci --reporters=default --reporters=jest-junit","jest --runInBand"],"run":"jest","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"prettier/prettier","slug":"prettier-prettier"},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress"}]},"alternatives":[{"id":"vitest","repos":7,"share":32},{"id":"mocha","repos":4,"share":18},{"id":"node-test","repos":3,"share":14}],"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":"express-preserve-api-compatibility-and-semantics","title":"Preserve API compatibility and semantics","description":"When adding or modifying public request/response/app methods, preserve their documented types, return values, and behavior unless the change is explicitly scoped to a major version with a deprecation path. Examples: don''t silently change `flatten` to `Array.prototype.flat` (different depth semantics) in a minor release, don''t let `cookie.expires` accept a...","repository":"expressjs/Express","domain":"app-frameworks","topic":"API","language":"JavaScript","updated":"2024-09-10","comments":19,"stars":69579,"raw":"https://awesomereviewers.com/raw/express-preserve-api-compatibility-and-semantics.md"},{"slug":"express-strict-null-checks","title":"Strict null checks","description":"Many reported bugs stemmed from using generic truthy/falsy checks (`!x`, `x || y`, ternaries) when the real intent was to detect \"missing\" (`null`/`undefined`) values. Falsy-but-valid values such as `''`, `0`, `false`, or `'0'` were incorrectly treated as absent, causing logic errors (e.g. an empty `X-Forwarded-Host` header being overwritten, or a `'0'`...","repository":"Expressjs/Express","domain":"app-frameworks","topic":"Null Handling","language":"JavaScript","updated":"2026-10-20","comments":14,"stars":69580,"raw":"https://awesomereviewers.com/raw/express-strict-null-checks.md"},{"slug":"express-propagate-and-clean-up-errors","title":"Propagate and clean up errors","description":"Never swallow an error or silently end a response/stream — forward it to the correct error channel. In middleware/handlers that's `next(err)` so the configured error-handling pipeline (and not the handler itself) decides how to log/report it; for one-off operations with a user-supplied callback (e.g. `fn` in `sendFile`), send the error there instead of into...","repository":"Expressjs/Express","domain":"app-frameworks","topic":"Error Handling","language":"JavaScript","updated":"2026-10-05","comments":13,"stars":69580,"raw":"https://awesomereviewers.com/raw/express-propagate-and-clean-up-errors.md"},{"slug":"bmad-method-narrow-catches-log-context","title":"Narrow catches, log context","description":"When handling errors, avoid two failure modes: (a) false-success/zero-signal outcomes and (b) silent data loss. Apply these rules consistently: 1) Fail loudly when correctness is impossible","repository":"bmad-code-org/bmad-method","domain":"app-frameworks","topic":"Error Handling","language":"JavaScript","updated":"2026-07-28","comments":12,"stars":51859,"raw":"https://awesomereviewers.com/raw/bmad-method-narrow-catches-log-context.md"},{"slug":"express-preserve-api-compatibility","title":"Preserve API compatibility","description":"When adding or changing public request/response methods, protect existing contracts and behavior instead of introducing silent breaking changes. Concretely:","repository":"Expressjs/Express","domain":"app-frameworks","topic":"API","language":"JavaScript","updated":"2026-05-11","comments":12,"stars":69580,"raw":"https://awesomereviewers.com/raw/express-preserve-api-compatibility.md"},{"slug":"express-explicit-nullish-checks","title":"Explicit nullish checks","description":"Avoid relying on loose truthiness (`||`, `!x`) when the goal is to detect \"missing\" (`null`/`undefined`) values, since this also matches other valid falsy values like `''''`, `0`, and `false`, silently discarding legitimate input. Use explicit, strict checks that only target nullish values: `x === undefined`, `x == null` (catches both `null` and `undefined`),...","repository":"expressjs/Express","domain":"app-frameworks","topic":"Null Handling","language":"JavaScript","updated":"2026-10-20","comments":10,"stars":69579,"raw":"https://awesomereviewers.com/raw/express-explicit-nullish-checks.md"},{"slug":"svelte-use-modern-null-safe-operators","title":"use modern null-safe operators","description":"Prefer modern JavaScript null-safe operators over verbose conditional checks to improve code readability and prevent null-related errors. Use optional chaining (?.) for safe property access, nullish coalescing (??) for default values, and nullish coalescing assignment (??=) for lazy initialization.","repository":"sveltejs/svelte","domain":"app-frameworks","topic":"Null Handling","language":"JavaScript","updated":"2025-01-29","comments":9,"stars":83580,"raw":"https://awesomereviewers.com/raw/svelte-use-modern-null-safe-operators.md"},{"slug":"express-propagate-errors-via-pipeline","title":"Propagate errors via pipeline","description":"Never swallow, locally render, or silently drop an error — always let it flow through the standard error-handling mechanism so it can be centrally logged, customized, and surfaced consistently. Concretely:","repository":"expressjs/Express","domain":"app-frameworks","topic":"Error Handling","language":"JavaScript","updated":"2026-10-05","comments":8,"stars":69579,"raw":"https://awesomereviewers.com/raw/express-propagate-errors-via-pipeline.md"},{"slug":"node-informative-error-messages","title":"Informative error messages","description":"Error messages should be specific, actionable, and include context that helps developers understand and fix the issue. Use standard error codes that can be tested and suppressed rather than relying only on text messages. Create errors at the point of detection rather than inside callbacks to preserve useful stack traces.","repository":"nodejs/node","domain":"runtimes","topic":"Error Handling","language":"JavaScript","updated":"2025-07-11","comments":8,"stars":112178,"raw":"https://awesomereviewers.com/raw/node-informative-error-messages.md"},{"slug":"express-enforce-null-safety-patterns","title":"Enforce null safety patterns","description":"Implement comprehensive null safety patterns to prevent runtime errors and ensure predictable behavior. Follow these guidelines: 1. Use explicit null/undefined checks instead of loose comparisons:","repository":"expressjs/express","domain":"app-frameworks","topic":"Null Handling","language":"JavaScript","updated":"2017-02-24","comments":8,"stars":67300,"raw":"https://awesomereviewers.com/raw/express-enforce-null-safety-patterns.md"},{"slug":"qwen-code-robust-error-propagation","title":"Robust error propagation","description":"When handling failures, ensure you (a) don’t lose the real root cause, (b) never introduce new exceptions while trying to report one, and (c) keep graceful degradation both implemented and tested.","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Error Handling","language":"JavaScript","updated":"2026-07-27","comments":7,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-robust-error-propagation.md"},{"slug":"node-public-over-internal-apis","title":"Public over internal APIs","description":"When designing or implementing APIs, always prefer publicly documented APIs over internal ones. Internal APIs may change without notice as they aren't subject to semantic versioning guarantees.","repository":"nodejs/node","domain":"runtimes","topic":"API","language":"JavaScript","updated":"2025-06-18","comments":7,"stars":112178,"raw":"https://awesomereviewers.com/raw/node-public-over-internal-apis.md"}],"prompt_count":70},{"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":{"id":"jest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/jestjs/jest","docs":null,"autofix":false,"exit_codes":{},"repos":7,"share":32,"commands":["jest","jest --maxWorkers=2 --ci --reporters=default --reporters=jest-junit","jest --runInBand"],"run":"jest","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"prettier/prettier","slug":"prettier-prettier"},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress"}]},"alternatives":[{"id":"vitest","repos":7,"share":32},{"id":"mocha","repos":4,"share":18},{"id":"node-test","repos":3,"share":14}],"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":9,"share":41,"commands":["analyze (language: 2)","Tests (include: 5)","analyze (language: 1)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"nodejs/node","slug":"nodejs-node"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"sveltejs/svelte","slug":"sveltejs-svelte"},{"repository":"expressjs/express","slug":"expressjs-express"},{"repository":"bmad-code-org/bmad-method","slug":"bmad-code-org-bmad-method"},{"repository":"prettier/prettier","slug":"prettier-prettier"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"workers-sdk-document-workflow-capabilities","title":"document workflow capabilities","description":"Workflow methods should include comments that document their orchestration capabilities and data access patterns. This helps developers understand the available temporal execution features and interaction methods.","repository":"cloudflare/workers-sdk","domain":"cloud-infra","topic":"Temporal","language":"JavaScript","updated":"2025-06-02","comments":2,"stars":3379,"raw":"https://awesomereviewers.com/raw/workers-sdk-document-workflow-capabilities.md"}],"prompt_count":1},{"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":"bmad-method-correct-matching-and-parsing","title":"Correct Matching And Parsing","description":"When writing installers/transformers/validators that search, rewrite, or regenerate files, require *matching/parsing correctness*: only operate on the exact structure you intend, and avoid ambiguous substring/position matches.","repository":"bmad-code-org/bmad-method","domain":"app-frameworks","topic":"Algorithms","language":"JavaScript","updated":"2026-04-26","comments":6,"stars":51859,"raw":"https://awesomereviewers.com/raw/bmad-method-correct-matching-and-parsing.md"},{"slug":"prettier-prefer-efficient-algorithms","title":"prefer efficient algorithms","description":"Choose more efficient algorithmic approaches by leveraging built-in methods and APIs instead of implementing manual solutions. This includes using iterator methods over manual loops, direct comparisons over complex operations, and existing path traversal APIs over custom implementations.","repository":"prettier/prettier","domain":"devtools","topic":"Algorithms","language":"JavaScript","updated":"2025-04-25","comments":6,"stars":50772,"raw":"https://awesomereviewers.com/raw/prettier-prefer-efficient-algorithms.md"},{"slug":"svelte-avoid-expensive-operations","title":"avoid expensive operations","description":"Identify and eliminate computationally expensive operations through early termination, better data structures, and algorithmic optimizations. Look for opportunities to short-circuit loops, cache results, and choose more efficient algorithms.","repository":"sveltejs/svelte","domain":"app-frameworks","topic":"Algorithms","language":"JavaScript","updated":"2025-03-05","comments":5,"stars":83580,"raw":"https://awesomereviewers.com/raw/svelte-avoid-expensive-operations.md"},{"slug":"mermaid-invariant-preserving-graph-algorithms","title":"Invariant-Preserving Graph Algorithms","description":"When a graph/geometry algorithm is used recursively (or downstream computations depend on its shape/metrics), don’t patch symptoms. Preserve invariants end-to-end:","repository":"mermaid-js/mermaid","domain":"devtools","topic":"Algorithms","language":"JavaScript","updated":"2025-08-08","comments":4,"stars":87952,"raw":"https://awesomereviewers.com/raw/mermaid-invariant-preserving-graph-algorithms.md"},{"slug":"chalk-validate-boundaries-and-nesting","title":"Validate boundaries and nesting","description":"When writing parsing, looping, or stateful algorithms, explicitly verify behavior at boundary conditions and across the full valid input range rather than relying on a few manual test cases. For spec-driven logic (e.g. regex matching unicode escapes), check against the actual specification limits (such as max code point 0x10FFFF, or 6-digit brace syntax)...","repository":"chalk/chalk","domain":"app-frameworks","topic":"Algorithms","language":"JavaScript","updated":"2019-06-23","comments":4,"stars":23342,"raw":"https://awesomereviewers.com/raw/chalk-validate-boundaries-and-nesting.md"},{"slug":"react-native-simplify-parsing-algorithms","title":"Simplify parsing algorithms","description":"When implementing parsing or processing algorithms, prioritize simplification and reusability over complex custom solutions. Convert complex conditional logic into simpler, well-defined data structures and reusable functions. Use established, proven algorithms from reliable sources rather than deriving custom implementations.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Algorithms","language":"JavaScript","updated":"2024-11-01","comments":3,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-simplify-parsing-algorithms.md"},{"slug":"freecodecamp-use-canonical-invariants","title":"Use canonical invariants","description":"When implementing algorithmic parsing/validation, base ordering/state on the canonical structured source, and keep validation logic split by invariant (local vs global) with explicit intent.","repository":"freeCodeCamp/freeCodeCamp","domain":"docs","topic":"Algorithms","language":"JavaScript","updated":"2026-03-18","comments":2,"stars":444449,"raw":"https://awesomereviewers.com/raw/freecodecamp-use-canonical-invariants.md"},{"slug":"deno-verify-algorithm-correctness","title":"Verify algorithm correctness","description":"Ensure algorithms produce expected results by validating data flow and checking that all execution paths return meaningful values rather than undefined or incorrect results. Pay special attention to conditional logic that filters or processes data, and verify that functions receive the necessary arguments to perform their intended operations.","repository":"denoland/deno","domain":"runtimes","topic":"Algorithms","language":"JavaScript","updated":"2024-11-23","comments":2,"stars":103714,"raw":"https://awesomereviewers.com/raw/deno-verify-algorithm-correctness.md"},{"slug":"express-clear-array-operations","title":"Clear array operations","description":"When working with arrays, prioritize clarity and explicitness over terse or clever constructs. For array membership checks, use `array.indexOf(item) === -1` rather than less obvious expressions like `!~array.indexOf(item)` or `array.indexOf(item) < 0`. This improves readability and makes code intent immediately clear to other developers.","repository":"expressjs/express","domain":"app-frameworks","topic":"Algorithms","language":"JavaScript","updated":"2022-02-06","comments":2,"stars":67300,"raw":"https://awesomereviewers.com/raw/express-clear-array-operations.md"},{"slug":"yoga-reset-algorithm-state-internally","title":"Reset algorithm state internally","description":"Algorithms should handle their own state initialization and cleanup internally rather than relying on callers to manage it. This prevents bugs caused by stale data from previous executions and reduces the burden on calling code.","repository":"facebook/yoga","domain":"runtimes","topic":"Algorithms","language":"JavaScript","updated":"2015-10-04","comments":2,"stars":18255,"raw":"https://awesomereviewers.com/raw/yoga-reset-algorithm-state-internally.md"}],"prompt_count":10},{"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":"oh-my-pi-race-free-cancellation-and-liveness-checks","title":"Race-free cancellation and liveness checks","description":"When wiring an `AbortSignal` (or any cancellation token) into async work — spawning processes, reading files, racing I/O — eliminate every window where a cancellation could be missed or where stale resource state could be misjudged as live.","repository":"can1357/oh-my-pi","domain":"app-frameworks","topic":"Concurrency","language":"JavaScript","updated":"2026-10-25","comments":15,"stars":37317,"raw":"https://awesomereviewers.com/raw/oh-my-pi-race-free-cancellation-and-liveness-checks.md"},{"slug":"serverless-consistent-asyncawait-usage","title":"consistent async/await usage","description":"When refactoring code to use async/await, ensure complete and consistent adoption throughout the function or module. Avoid mixing async/await syntax with .then() chains, as this creates confusing and hard-to-maintain code.","repository":"serverless/serverless","domain":"cloud-infra","topic":"Concurrency","language":"JavaScript","updated":"2023-05-22","comments":9,"stars":46810,"raw":"https://awesomereviewers.com/raw/serverless-consistent-asyncawait-usage.md"},{"slug":"fastify-concurrent-operations-completion-management","title":"Concurrent operations completion management","description":"When running concurrent operations in tests, ensure all operations complete before concluding the test. Race conditions occur when your test calls done() or resolves before all async operations finish, leading to flaky tests or missed assertions.","repository":"fastify/fastify","domain":"app-frameworks","topic":"Concurrency","language":"JavaScript","updated":"","comments":6,"stars":34000,"raw":"https://awesomereviewers.com/raw/fastify-concurrent-operations-completion-management.md"},{"slug":"node-await-all-promises","title":"Await all promises","description":"Always explicitly await all asynchronous operations, especially in cleanup code paths and resource management. Failing to properly await promises can lead to race conditions, resource leaks, and unpredictable behavior in concurrent environments.","repository":"nodejs/node","domain":"runtimes","topic":"Concurrency","language":"JavaScript","updated":"2025-06-22","comments":4,"stars":112178,"raw":"https://awesomereviewers.com/raw/node-await-all-promises.md"},{"slug":"workerd-simplify-async-patterns","title":"Simplify async patterns","description":"Use modern promise utilities and clean async patterns instead of manual promise construction. Prefer Promise.withResolvers() over manual promise creation with resolve/reject callbacks, and chain promises directly rather than wrapping them in unnecessary async functions.","repository":"cloudflare/workerd","domain":"cloud-infra","topic":"Concurrency","language":"JavaScript","updated":"2025-07-18","comments":3,"stars":6989,"raw":"https://awesomereviewers.com/raw/workerd-simplify-async-patterns.md"},{"slug":"svelte-async-cleanup-safety","title":"async cleanup safety","description":"Ensure async operations include proper safety checks to prevent race conditions, memory leaks, and inconsistent state. This includes equality checks before updates, destruction status verification, and proper cleanup mechanisms.","repository":"sveltejs/svelte","domain":"app-frameworks","topic":"Concurrency","language":"JavaScript","updated":"2025-07-03","comments":3,"stars":83580,"raw":"https://awesomereviewers.com/raw/svelte-async-cleanup-safety.md"},{"slug":"commander.js-thenable-detection-and-chaining","title":"Thenable detection and chaining","description":"When code must support both synchronous values and promises (e.g. user-supplied callbacks that may return a value or a Promise), detect \"thenable\" values by duck-typing (checking for a `.then` method) rather than using `instanceof Promise`. This is more robust and interoperable with any Promise-like implementation. Only perform async handling (await,...","repository":"tj/commander.js","domain":"app-frameworks","topic":"Concurrency","language":"JavaScript","updated":"2023-07-27","comments":3,"stars":28444,"raw":"https://awesomereviewers.com/raw/commander.js-thenable-detection-and-chaining.md"},{"slug":"react-separate-conditional-paths","title":"Separate conditional paths","description":"When working with concurrent operations, separate conditional logic from potentially expensive or suspenseful execution paths. This improves performance, prevents race conditions, and makes concurrent code more predictable and maintainable.","repository":"facebook/react","domain":"app-frameworks","topic":"Concurrency","language":"JavaScript","updated":"","comments":3,"stars":237000,"raw":"https://awesomereviewers.com/raw/react-separate-conditional-paths.md"},{"slug":"bifrost-await-connection-drains","title":"Await Connection Drains","description":"When async work depends on a connection that may still be resolving, prevent startup race conditions by (1) deferring the work to an “early” queue instead of silently skipping, and (2) awaiting the connection setup promises before concluding/awaiting the deferred work.","repository":"maximhq/bifrost","domain":"llm-infra","topic":"Concurrency","language":"JavaScript","updated":"2026-06-20","comments":2,"stars":6862,"raw":"https://awesomereviewers.com/raw/bifrost-await-connection-drains.md"},{"slug":"bmad-method-deterministic-file-operations","title":"Deterministic File Operations","description":"When implementing concurrent or bulk filesystem operations, ensure deterministic execution and atomicity: avoid async wrappers/behavior that introduce retry queues or event-loop interleaving that can reorder unlinks/overwrites.","repository":"bmad-code-org/bmad-method","domain":"app-frameworks","topic":"Concurrency","language":"JavaScript","updated":"2026-06-20","comments":2,"stars":51859,"raw":"https://awesomereviewers.com/raw/bmad-method-deterministic-file-operations.md"},{"slug":"discourse-prefer-asyncawait-patterns","title":"prefer async/await patterns","description":"Convert promise chains to async/await syntax for better readability, error handling, and proper cleanup operation placement. Async functions automatically return promises, so avoid redundant Promise.resolve() calls or manual promise wrapping.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Concurrency","language":"JavaScript","updated":"2025-06-25","comments":2,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-prefer-asyncawait-patterns.md"},{"slug":"query-deterministic-async-lifecycle","title":"Deterministic Async Lifecycle","description":"Ensure async features that depend on a query/promise’s lifecycle (e.g., cancellation hooks, query function availability) are wired using a deterministic initialization order. Don’t write code paths that assume `query`/`query.promise` already exists; either (a) centralize initialization (e.g., reuse a prefetch-like path) or (b) explicitly create/transition...","repository":"tanstack/query","domain":"app-frameworks","topic":"Concurrency","language":"JavaScript","updated":"2020-01-09","comments":2,"stars":49380,"raw":"https://awesomereviewers.com/raw/query-deterministic-async-lifecycle.md"}],"prompt_count":12},{"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":{"id":"jest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/jestjs/jest","docs":null,"autofix":false,"exit_codes":{},"repos":7,"share":32,"commands":["jest","jest --maxWorkers=2 --ci --reporters=default --reporters=jest-junit","jest --runInBand"],"run":"jest","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"prettier/prettier","slug":"prettier-prettier"},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress"}]},"alternatives":[{"id":"vitest","repos":7,"share":32},{"id":"mocha","repos":4,"share":18},{"id":"node-test","repos":3,"share":14}],"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":"express-rfc-compliant-http-semantics","title":"RFC-compliant HTTP semantics","description":"When implementing HTTP-level behavior—headers, charsets, content negotiation—always conform to the governing RFC rather than relying on internal Node.js conventions or convenience logic that silently changes existing semantics.","repository":"Expressjs/Express","domain":"app-frameworks","topic":"Networking","language":"JavaScript","updated":"2026-01-19","comments":6,"stars":69580,"raw":"https://awesomereviewers.com/raw/express-rfc-compliant-http-semantics.md"},{"slug":"express-rfc-compliant-protocol-handling","title":"RFC-compliant protocol handling","description":"When implementing HTTP-related features—header generation/parsing, charset declarations, content negotiation, or IP address comparisons—validate behavior against the governing RFC/IANA specification rather than relying on assumptions or ad-hoc string checks. Common pitfalls include: using an internal encoding alias (e.g. Node''s `utf8`) instead of the...","repository":"expressjs/Express","domain":"app-frameworks","topic":"Networking","language":"JavaScript","updated":"2026-01-19","comments":6,"stars":69579,"raw":"https://awesomereviewers.com/raw/express-rfc-compliant-protocol-handling.md"},{"slug":"express-handle-streams-properly","title":"Handle streams properly","description":"When transferring data over HTTP, properly implement streaming mechanisms to prevent memory exhaustion and potential denial-of-service vulnerabilities. Handle backpressure appropriately to ensure that slow clients cannot overwhelm server resources.","repository":"expressjs/express","domain":"app-frameworks","topic":"Networking","language":"JavaScript","updated":"2023-05-30","comments":5,"stars":67300,"raw":"https://awesomereviewers.com/raw/express-handle-streams-properly.md"},{"slug":"aws-sdk-js-content-integrity-verification","title":"Content integrity verification","description":"When handling HTTP responses, especially with streaming data, properly verify content integrity and length to prevent data corruption or unexpected termination. Key considerations:","repository":"aws/aws-sdk-js","domain":"cloud-infra","topic":"Networking","language":"JavaScript","updated":"2020-10-20","comments":5,"stars":7628,"raw":"https://awesomereviewers.com/raw/aws-sdk-js-content-integrity-verification.md"},{"slug":"axios-proxy-protocol-handling","title":"Proxy protocol handling","description":"When implementing HTTP clients with proxy support, ensure the connection to the proxy uses the protocol specified in the proxy configuration (not the request protocol). This is crucial for scenarios like accessing HTTPS resources through an HTTP proxy.","repository":"axios/axios","domain":"app-frameworks","topic":"Networking","language":"JavaScript","updated":"","comments":5,"stars":107000,"raw":"https://awesomereviewers.com/raw/axios-proxy-protocol-handling.md"},{"slug":"workerd-connection-reuse-safety","title":"Connection reuse safety","description":"When implementing network connection reuse, prioritize safety over performance by enforcing sequential request patterns and clear resource ownership. Connection reuse should be supported to avoid the overhead of creating new connections for each request, but must include proper safeguards to prevent concurrency issues and resource conflicts.","repository":"cloudflare/workerd","domain":"cloud-infra","topic":"Networking","language":"JavaScript","updated":"2025-08-06","comments":4,"stars":6989,"raw":"https://awesomereviewers.com/raw/workerd-connection-reuse-safety.md"},{"slug":"material-ui-event-triggered-network-requests","title":"Event-triggered network requests","description":"When implementing user interactions that trigger network requests, use precise event handling techniques to ensure reliable network operations. Specifically, check event properties like `event.button` (which button was pressed) rather than `event.buttons` (which buttons are currently pressed) to correctly handle user intent.","repository":"mui/material-ui","domain":"app-frameworks","topic":"Networking","language":"JavaScript","updated":"2025-02-18","comments":4,"stars":96063,"raw":"https://awesomereviewers.com/raw/material-ui-event-triggered-network-requests.md"},{"slug":"discourse-control-event-propagation","title":"Control event propagation","description":"Prevent unintended network requests and interface conflicts by properly controlling event propagation in interactive elements. Use `event.stopImmediatePropagation()` when multiple event listeners on the same element or its ancestors could trigger conflicting network operations.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Networking","language":"JavaScript","updated":"2025-08-18","comments":2,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-control-event-propagation.md"},{"slug":"ant-design-test-network-performance","title":"Test network performance","description":"Always validate network performance and connectivity before suggesting alternative endpoints or making routing decisions. Implement timeout-based checks to ensure alternatives are actually faster or more accessible for the user's specific network conditions.","repository":"ant-design/ant-design","domain":"app-frameworks","topic":"Networking","language":"JavaScript","updated":"2025-06-10","comments":2,"stars":95882,"raw":"https://awesomereviewers.com/raw/ant-design-test-network-performance.md"},{"slug":"appwrite-flexible-network-handling","title":"Flexible network handling","description":"When working with network connections and HTTP requests, implement flexible configuration patterns and robust response handling to prevent flaky behavior and ensure compatibility across environments.","repository":"appwrite/appwrite","domain":"app-frameworks","topic":"Networking","language":"JavaScript","updated":"2025-06-03","comments":2,"stars":51959,"raw":"https://awesomereviewers.com/raw/appwrite-flexible-network-handling.md"},{"slug":"mastodon-safe-proxy-configuration","title":"Safe proxy configuration","description":"When configuring proxy settings for network applications, always use proper compilation methods to prevent runtime errors and ensure consistent IP address handling across different connection types. Improper proxy configuration can cause server crashes when IP addresses are accessed, particularly when using string-based configurations with multiple values.","repository":"mastodon/mastodon","domain":"app-frameworks","topic":"Networking","language":"JavaScript","updated":"2024-11-12","comments":2,"stars":48691,"raw":"https://awesomereviewers.com/raw/mastodon-safe-proxy-configuration.md"},{"slug":"vite-self-referential-worker-urls","title":"Self-referential worker URLs","description":"When creating Web Workers for network communication, use self-referential URL patterns that are resilient to file renaming. This improves portability and reliability of your networking code.","repository":"vitejs/vite","domain":"devtools","topic":"Networking","language":"JavaScript","updated":"2024-11-11","comments":2,"stars":74031,"raw":"https://awesomereviewers.com/raw/vite-self-referential-worker-urls.md"}],"prompt_count":15},{"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":{"id":"playwright","method":"testing","kind":"browser-tests","languages":["javascript","typescript"],"upstream":"https://github.com/microsoft/playwright","docs":null,"autofix":false,"exit_codes":{},"repos":4,"share":18,"commands":["playwright test","playwright test $(node scripts/e2e-tier-scope.mjs pr-check nightly-check","playwright test ${SPECS[@]} --shard=${SHARD}/${SHARD_TOTAL}"],"run":"playwright test","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"mui/material-ui","slug":"mui-material-ui"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"}]},"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":{"id":"eslint","method":"static_analysis","kind":"linting","languages":["javascript","typescript"],"upstream":"https://github.com/eslint/eslint","docs":"https://eslint.org/docs/latest/use/command-line-interface#exit-codes","autofix":true,"exit_codes":{"0":"no errors","1":"linting errors found","2":"configuration problem or internal error"},"repos":21,"share":95,"commands":["eslint .","eslint","eslint --fix"],"run":"eslint .","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"nodejs/node","slug":"nodejs-node"},{"repository":"axios/axios","slug":"axios-axios"},{"repository":"mui/material-ui","slug":"mui-material-ui"}]},"alternatives":[{"id":"biome","repos":1,"share":5}],"note":null}],"prompts":[{"slug":"nextjs-effective-cache-management-in-nextjs-applications","title":"Effective Cache Management in Next.js Applications","description":"When implementing caching in Next.js applications, it is crucial to be intentional about the caching behavior for each component and function. Apply caching directives consistently and consider their implications.","repository":"vercel/next.js","domain":"app-frameworks","topic":"Next.js","language":"JavaScript","updated":"","comments":8,"stars":133000,"raw":"https://awesomereviewers.com/raw/nextjs-effective-cache-management-in-nextjs-applications.md"},{"slug":"nextjs-secure-data-handling-in-nextjs-applications","title":"Secure Data Handling in Next.js Applications","description":"When building Next.js applications that handle sensitive data, it's crucial to implement robust security measures to prevent data leakage and injection attacks.","repository":"vercel/next.js","domain":"app-frameworks","topic":"Next.js","language":"JavaScript","updated":"","comments":8,"stars":133000,"raw":"https://awesomereviewers.com/raw/nextjs-secure-data-handling-in-nextjs-applications.md"},{"slug":"nextjs-handling-dynamic-content-in-nextjs-components","title":"Handling Dynamic Content in Next.js Components","description":"When implementing Next.js components that rely on dynamic content (e.g. random values, current time), it is crucial to use proper boundary handling to avoid hydration errors and performance issues.","repository":"vercel/next.js","domain":"app-frameworks","topic":"Next.js","language":"JavaScript","updated":"","comments":6,"stars":133000,"raw":"https://awesomereviewers.com/raw/nextjs-handling-dynamic-content-in-nextjs-components.md"},{"slug":"nextjs-optimize-nextjs-resource-utilization","title":"Optimize Next.js Resource Utilization","description":"As a code reviewer, I recommend the following practices to optimize resource utilization when implementing Next.js applications.","repository":"vercel/next.js","domain":"app-frameworks","topic":"Next.js","language":"JavaScript","updated":"","comments":5,"stars":133000,"raw":"https://awesomereviewers.com/raw/nextjs-optimize-nextjs-resource-utilization.md"},{"slug":"material-ui-strict-mode-proof-hooks","title":"Strict mode-proof hooks","description":"Ensure your React components work correctly in both development (Strict Mode) and production environments by writing hooks that handle React''s intentional double-rendering behavior. When using side effects in initializers, guard them with refs to prevent duplicate executions:","repository":"mui/material-ui","domain":"app-frameworks","topic":"React","language":"JavaScript","updated":"2025-06-27","comments":4,"stars":96063,"raw":"https://awesomereviewers.com/raw/material-ui-strict-mode-proof-hooks.md"},{"slug":"react-native-preserve-component-patterns","title":"preserve component patterns","description":"When refactoring React components, maintain essential component patterns including type annotations, ref forwarding capabilities, and thoughtful component composition. Avoid losing important functionality during simplification.","repository":"facebook/react-native","domain":"app-frameworks","topic":"React","language":"JavaScript","updated":"2025-04-30","comments":4,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-preserve-component-patterns.md"},{"slug":"nextjs-maintain-consistent-naming-conventions-in-nextjs-code","title":"Maintain Consistent Naming Conventions in Next.js Code","description":"As a code reviewer for Next.js projects, ensure that all code artifacts, including component names, file names, and configuration keys, adhere to consistent naming conventions.","repository":"vercel/next.js","domain":"app-frameworks","topic":"Next.js","language":"JavaScript","updated":"","comments":4,"stars":133000,"raw":"https://awesomereviewers.com/raw/nextjs-maintain-consistent-naming-conventions-in-nextjs-code.md"},{"slug":"nextjs-proper-error-handling-in-nextjs-api-routes","title":"Proper Error Handling in Next.js API Routes","description":"This review focuses on ensuring proper error handling in Next.js API routes. Key principles include validating incoming request data, using consistent error response structures, and sanitizing error messages.","repository":"vercel/next.js","domain":"app-frameworks","topic":"Next.js","language":"JavaScript","updated":"","comments":4,"stars":133000,"raw":"https://awesomereviewers.com/raw/nextjs-proper-error-handling-in-nextjs-api-routes.md"},{"slug":"nextjs-proper-use-of-suspense-in-nextjs-components","title":"Proper Use of Suspense in Next.js Components","description":"When building Next.js applications that leverage server-side rendering (SSR) or Partial Prerendering (PPR), it is essential to wrap components that access dynamic or non-deterministic values in Suspense boundaries with appropriate fallbacks.","repository":"vercel/next.js","domain":"app-frameworks","topic":"Next.js","language":"JavaScript","updated":"","comments":4,"stars":133000,"raw":"https://awesomereviewers.com/raw/nextjs-proper-use-of-suspense-in-nextjs-components.md"},{"slug":"svelte-preserve-user-input-focus","title":"preserve user input focus","description":"When implementing reactive state updates that affect input elements, always check if the user is currently interacting with the element before applying the update. This prevents jarring user experiences where typing gets interrupted by state changes.","repository":"sveltejs/svelte","domain":"app-frameworks","topic":"React","language":"JavaScript","updated":"2025-07-14","comments":3,"stars":83580,"raw":"https://awesomereviewers.com/raw/svelte-preserve-user-input-focus.md"},{"slug":"nextjs-prefer-existence-checks-in-nextjs-components","title":"Prefer Existence Checks in Next.js Components","description":"When working with props, state, or other values in Next.js components that may be null, undefined, or contain error states, use existence checks rather than direct property access or value comparisons.","repository":"vercel/next.js","domain":"app-frameworks","topic":"Next.js","language":"JavaScript","updated":"","comments":3,"stars":133000,"raw":"https://awesomereviewers.com/raw/nextjs-prefer-existence-checks-in-nextjs-components.md"},{"slug":"react-complete-hook-dependencies","title":"Complete hook dependencies","description":"Always specify complete dependency arrays in React hooks to prevent bugs from stale closures and avoid unnecessary rerenders. When using hooks like useEffect, useMemo, or useCallback, include all values from the component scope that are referenced inside the hook's callback function.","repository":"facebook/react","domain":"app-frameworks","topic":"React","language":"JavaScript","updated":"","comments":3,"stars":237000,"raw":"https://awesomereviewers.com/raw/react-complete-hook-dependencies.md"}],"prompt_count":17},{"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":{"id":"jest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/jestjs/jest","docs":null,"autofix":false,"exit_codes":{},"repos":7,"share":32,"commands":["jest","jest --maxWorkers=2 --ci --reporters=default --reporters=jest-junit","jest --runInBand"],"run":"jest","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"prettier/prettier","slug":"prettier-prettier"},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress"}]},"alternatives":[{"id":"vitest","repos":7,"share":32},{"id":"mocha","repos":4,"share":18},{"id":"node-test","repos":3,"share":14}],"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":9,"share":41,"commands":["analyze (language: 2)","Tests (include: 5)","analyze (language: 1)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"nodejs/node","slug":"nodejs-node"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"sveltejs/svelte","slug":"sveltejs-svelte"},{"repository":"expressjs/express","slug":"expressjs-express"},{"repository":"bmad-code-org/bmad-method","slug":"bmad-code-org-bmad-method"},{"repository":"prettier/prettier","slug":"prettier-prettier"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"prettier-cache-correctness-validation","title":"Cache correctness validation","description":"Ensure caching implementations store the correct data and use appropriate strategies for the context. Cache should store the final processed output, not intermediate or input data, and should include strategy options for different security/performance requirements.","repository":"prettier/prettier","domain":"devtools","topic":"Caching","language":"JavaScript","updated":"2025-02-12","comments":4,"stars":50772,"raw":"https://awesomereviewers.com/raw/prettier-cache-correctness-validation.md"},{"slug":"query-active-cache-config-safety","title":"Active Cache & Config Safety","description":"When implementing caching layers/providers and cache-driven handlers: - **Assume multiple cache instances may exist.** Avoid single “default cache” globals for runtime behaviors (e.g., focus handlers). Track **all active caches** and update/notify each.","repository":"tanstack/query","domain":"app-frameworks","topic":"Caching","language":"JavaScript","updated":"2020-05-14","comments":4,"stars":49380,"raw":"https://awesomereviewers.com/raw/query-active-cache-config-safety.md"},{"slug":"aws-sdk-js-limit-cache-size","title":"Limit cache size","description":"Always implement size constraints on caches to prevent memory leaks and performance degradation. Unbounded caches can grow continuously and consume excessive memory, especially in long-running applications.","repository":"aws/aws-sdk-js","domain":"cloud-infra","topic":"Caching","language":"JavaScript","updated":"2018-10-30","comments":3,"stars":7628,"raw":"https://awesomereviewers.com/raw/aws-sdk-js-limit-cache-size.md"}],"prompt_count":3},{"slug":"performance","title":"Hot paths and performance","topics":["Performance Optimization"],"checks":[],"prompts":[{"slug":"express-avoid-hot-path-overhead","title":"Avoid hot-path overhead","description":"In performance-sensitive, frequently-executed code paths (per-request handlers, middleware, core request/response methods), minimize unnecessary allocations, indirection, and repeated expensive operations, and justify optimizations with real benchmarks rather than assumptions.","repository":"expressjs/Express","domain":"app-frameworks","topic":"Performance Optimization","language":"JavaScript","updated":"2026-06-26","comments":8,"stars":69579,"raw":"https://awesomereviewers.com/raw/express-avoid-hot-path-overhead.md"},{"slug":"express-hot-path-efficiency","title":"Hot-path efficiency","description":"Code that runs per-request or in other hot paths must avoid unnecessary overhead. Prefer simple, cheap operations over heavier alternatives when both achieve the same result: use direct string checks instead of regex for trivial cases, use plain `for` loops instead of `Array#forEach`/closures in tight loops, and short-circuit work that isn''t needed (e.g....","repository":"Expressjs/Express","domain":"app-frameworks","topic":"Performance Optimization","language":"JavaScript","updated":"2026-06-26","comments":7,"stars":69580,"raw":"https://awesomereviewers.com/raw/express-hot-path-efficiency.md"},{"slug":"node-benchmark-before-optimizing-code","title":"Benchmark before optimizing code","description":"Performance optimizations should be validated through benchmarks before implementation. This helps prevent premature optimization and ensures changes actually improve performance in real-world scenarios.","repository":"nodejs/node","domain":"runtimes","topic":"Performance Optimization","language":"JavaScript","updated":"2025-06-28","comments":7,"stars":112178,"raw":"https://awesomereviewers.com/raw/node-benchmark-before-optimizing-code.md"},{"slug":"svelte-measure-performance-impact","title":"Measure performance impact","description":"Before making performance-related changes, measure the actual impact with benchmarks and profiling. Many performance assumptions can be misleading without data.","repository":"sveltejs/svelte","domain":"app-frameworks","topic":"Performance Optimization","language":"JavaScript","updated":"2025-05-20","comments":7,"stars":83580,"raw":"https://awesomereviewers.com/raw/svelte-measure-performance-impact.md"},{"slug":"serverless-eliminate-redundant-operations","title":"Eliminate redundant operations","description":"Identify and eliminate repeated expensive operations to improve performance. Look for opportunities to cache results, avoid duplicate computations, and minimize unnecessary work.","repository":"serverless/serverless","domain":"cloud-infra","topic":"Performance Optimization","language":"JavaScript","updated":"2024-07-29","comments":7,"stars":46810,"raw":"https://awesomereviewers.com/raw/serverless-eliminate-redundant-operations.md"},{"slug":"chalk-hoist-invariant-work","title":"Hoist invariant work","description":"In hot paths (functions called repeatedly, e.g. styling/formatting code), avoid recomputing or re-allocating values that don't change between calls. Precompute and cache expensive-to-build objects (like `RegExp` instances) once at module/init time instead of rebuilding them on every invocation, cache frequently accessed built-in methods or mutable...","repository":"chalk/chalk","domain":"app-frameworks","topic":"Performance Optimization","language":"JavaScript","updated":"2020-06-09","comments":7,"stars":23342,"raw":"https://awesomereviewers.com/raw/chalk-hoist-invariant-work.md"},{"slug":"react-native-early-returns-prevent-waste","title":"Early returns prevent waste","description":"Add early return statements and duplicate checks to avoid unnecessary computations, memory allocations, and API calls. This pattern prevents performance degradation by stopping expensive operations before they begin.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Performance Optimization","language":"JavaScript","updated":"2025-02-05","comments":5,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-early-returns-prevent-waste.md"},{"slug":"oh-my-pi-bound-unbounded-external-output","title":"Bound unbounded external output","description":"When capturing or buffering output from external or long-running processes (child processes, hooks, wrappers, probes) whose output size is not controlled by your code, never let memory or disk usage grow unbounded. Enforce a fixed cap and keep only the relevant tail (or head) of the data, applying the most efficient mechanism available on each platform...","repository":"can1357/oh-my-pi","domain":"app-frameworks","topic":"Performance Optimization","language":"JavaScript","updated":"2026-10-23","comments":4,"stars":37317,"raw":"https://awesomereviewers.com/raw/oh-my-pi-bound-unbounded-external-output.md"},{"slug":"material-ui-avoid-render-cycle-allocations","title":"Avoid render cycle allocations","description":"Creating new objects, arrays, or functions inside a component's render cycle causes unnecessary allocations on every render, which can degrade performance, especially in frequently-rendered components.","repository":"mui/material-ui","domain":"app-frameworks","topic":"Performance Optimization","language":"JavaScript","updated":"2025-06-20","comments":4,"stars":96063,"raw":"https://awesomereviewers.com/raw/material-ui-avoid-render-cycle-allocations.md"},{"slug":"prettier-measure-performance-impacts","title":"Measure performance impacts","description":"Always benchmark and measure actual performance impacts before making optimization decisions, rather than relying on assumptions. Performance characteristics can vary significantly across different runtimes, data sizes, and usage patterns.","repository":"prettier/prettier","domain":"devtools","topic":"Performance Optimization","language":"JavaScript","updated":"2025-05-18","comments":4,"stars":50772,"raw":"https://awesomereviewers.com/raw/prettier-measure-performance-impacts.md"},{"slug":"express-optimize-hot-paths","title":"Optimize hot paths","description":"When writing code that will be executed frequently (hot paths), prioritize performance optimizations that reduce overhead. This includes: 1. **Move expensive operations out of frequently executed blocks**: Place resource-intensive operations like `require()` calls at module initialization rather than in request handlers or response methods.","repository":"expressjs/express","domain":"app-frameworks","topic":"Performance Optimization","language":"JavaScript","updated":"2024-06-05","comments":4,"stars":67300,"raw":"https://awesomereviewers.com/raw/express-optimize-hot-paths.md"},{"slug":"fastify-benchmark-before-choosing-methods","title":"Benchmark before choosing methods","description":"Always benchmark different implementation approaches for performance-critical operations before selecting a method. Different approaches (like array operations, string parsing, or data iteration) can have significant performance implications that may not be intuitive.","repository":"fastify/fastify","domain":"app-frameworks","topic":"Performance Optimization","language":"JavaScript","updated":"","comments":4,"stars":34000,"raw":"https://awesomereviewers.com/raw/fastify-benchmark-before-choosing-methods.md"}],"prompt_count":19},{"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":{"id":"jest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/jestjs/jest","docs":null,"autofix":false,"exit_codes":{},"repos":7,"share":32,"commands":["jest","jest --maxWorkers=2 --ci --reporters=default --reporters=jest-junit","jest --runInBand"],"run":"jest","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"facebook/react-native","slug":"facebook-react-native"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"prettier/prettier","slug":"prettier-prettier"},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress"}]},"alternatives":[{"id":"vitest","repos":7,"share":32},{"id":"mocha","repos":4,"share":18},{"id":"node-test","repos":3,"share":14}],"note":null}],"prompts":[{"slug":"9router-llm-provider-translation-fidelity","title":"LLM provider translation fidelity","description":"When writing adapters that translate between different LLM provider wire formats (OpenAI chat/completions, Responses API, Anthropic, Gemini, Zed, etc.) or route model IDs to providers, prioritize completeness and precision over broad assumptions.","repository":"Decolua/9Router","domain":"llm-infra","topic":"AI","language":"JavaScript","updated":"2026-09-29","comments":3,"stars":31414,"raw":"https://awesomereviewers.com/raw/9router-llm-provider-translation-fidelity.md"},{"slug":"langchainjs-consistent-ai-naming","title":"Consistent AI naming","description":"Use specific and consistent naming conventions when referencing AI services, models, and their parameters throughout your codebase. Always include the full provider name (e.g., \"AzureOpenAI\" instead of just \"Azure\") to clearly distinguish between different AI services and avoid ambiguity.","repository":"langchain-ai/langchainjs","domain":"ai-agents","topic":"AI","language":"JavaScript","updated":"2025-04-28","comments":3,"stars":15004,"raw":"https://awesomereviewers.com/raw/langchainjs-consistent-ai-naming.md"},{"slug":"bmad-method-control-agent-context-budgets","title":"Control Agent Context Budgets","description":"Always cap and actively prevent generative-agent context bloat. 1) Enforce explicit context/prompt budgets in code (hard max + warning threshold) so inputs never silently grow.","repository":"bmad-code-org/bmad-method","domain":"ai-agents","topic":"AI","language":"JavaScript","updated":"2026-01-15","comments":2,"stars":51859,"raw":"https://awesomereviewers.com/raw/bmad-method-control-agent-context-budgets.md"}],"prompt_count":3},{"slug":"observability","title":"Logging, metrics, tracing","topics":["Logging","Observability"],"checks":[],"prompts":[{"slug":"serverless-standardize-log-output-methods","title":"standardize log output methods","description":"Use `process.stdout.write` instead of `console.log` for controlled logging output to avoid linter issues and ensure consistent behavior. When using `process.stdout.write`, manually add newlines since they are not automatically appended like with `console.log`. Maintain consistent log message formatting with proper prefixes and structured layout.","repository":"serverless/serverless","domain":"cloud-infra","topic":"Logging","language":"JavaScript","updated":"2022-02-28","comments":4,"stars":46810,"raw":"https://awesomereviewers.com/raw/serverless-standardize-log-output-methods.md"},{"slug":"cypress-choose-appropriate-log-levels","title":"Choose appropriate log levels","description":"Select log levels based on the intended audience and actionability of the message. Use `debug` for internal development information that helps with troubleshooting, `warn` or `error` for user-actionable issues, and avoid logging messages that add noise without providing value to the user.","repository":"cypress-io/cypress","domain":"devtools","topic":"Logging","language":"JavaScript","updated":"2021-10-12","comments":4,"stars":48850,"raw":"https://awesomereviewers.com/raw/cypress-choose-appropriate-log-levels.md"},{"slug":"workerd-format-observability-test-data","title":"Format observability test data","description":"When writing tests for observability systems (tracing, metrics, logging), structure test assertions to be easily readable and debuggable. Instead of placing complex JSON outputs or structured data on single lines, split them across multiple lines with proper formatting.","repository":"cloudflare/workerd","domain":"cloud-infra","topic":"Observability","language":"JavaScript","updated":"2025-08-23","comments":2,"stars":6989,"raw":"https://awesomereviewers.com/raw/workerd-format-observability-test-data.md"},{"slug":"react-native-use-appropriate-log-levels","title":"Use appropriate log levels","description":"Choose logging levels that match the intended audience and purpose of the message. Use debug or silent logging for internal operations, optional behaviors, and retry logic that shouldn't be visible to end users. Reserve console output and higher log levels (info, warning, error) for user-relevant information.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Logging","language":"JavaScript","updated":"2025-05-09","comments":2,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-use-appropriate-log-levels.md"},{"slug":"fastify-support-flexible-logging","title":"Support flexible logging","description":"When designing logging interfaces, create flexible APIs that accommodate both standard and custom logging needs. This includes supporting custom log levels, allowing message format customization, and enabling level selection based on context.","repository":"fastify/fastify","domain":"app-frameworks","topic":"Logging","language":"JavaScript","updated":"","comments":2,"stars":34000,"raw":"https://awesomereviewers.com/raw/fastify-support-flexible-logging.md"}],"prompt_count":5},{"slug":"ci-config","title":"CI workflows and configuration files","topics":["CI/CD","Configurations"],"checks":[{"kind":"workflow-linting","title":"CI workflow linting","method":"static_analysis","method_slug":"static-analysis","catches":"Broken GitHub Actions syntax, script injection, over-broad token permissions.","tool":null,"alternatives":[],"note":null},{"kind":"file-hygiene","title":"File hygiene","method":"formatting","method_slug":"formatting","catches":"Invalid JSON, YAML or TOML, merge markers, trailing whitespace, oversized files.","tool":{"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":5,"commands":["pre-commit hook check-json"],"run":null,"via":"pre-commit hook check-json","triggers":["pre_commit","ci"],"examples":[{"repository":"bmad-code-org/bmad-method","slug":"bmad-code-org-bmad-method"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"react-native-configuration-validation-and-defaults","title":"Configuration validation and defaults","description":"Always validate configuration structure before accessing properties and provide sensible defaults while preserving explicit user overrides. Configuration code should defensively check for the existence of nested properties and gracefully handle missing or malformed configuration.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Configurations","language":"JavaScript","updated":"2025-02-25","comments":7,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-configuration-validation-and-defaults.md"},{"slug":"bmad-method-explicit-override-correctness","title":"Explicit override correctness","description":"When handling configuration from CLI/UI (e.g., `--set`, channel flags, migration prompts), treat user-provided values as explicit assertions that must (a) be seeded into the same data pipeline that prompts/templates use, (b) survive any schema-strict filtering only because the user asserted them, and (c) not be overwritten later by default/template/prompt...","repository":"bmad-code-org/bmad-method","domain":"cloud-infra","topic":"Configurations","language":"JavaScript","updated":"2026-04-29","comments":6,"stars":51859,"raw":"https://awesomereviewers.com/raw/bmad-method-explicit-override-correctness.md"},{"slug":"oh-my-pi-environment-driven-config-resolution","title":"Environment-driven config resolution","description":"When behavior depends on environment variables or config files (e.g. git's `core.hooksPath`, `GIT_DIR`, `GIT_CONFIG*`), never assume an in-process reimplementation of the resolution rules is complete. Config can be layered and overridden through many sources — env vars, `~`/`%(prefix)%` expansion, system/global/local config, `-c` flags, wrapper scripts —...","repository":"can1357/oh-my-pi","domain":"cloud-infra","topic":"Configurations","language":"JavaScript","updated":"2026-10-18","comments":5,"stars":37317,"raw":"https://awesomereviewers.com/raw/oh-my-pi-environment-driven-config-resolution.md"},{"slug":"express-app-settings-management","title":"App settings management","description":"Treat application settings as a well-defined, centrally managed API rather than ad-hoc values scattered through the codebase. - Always read and write settings through the accessor methods (`app.set()` / `app.get()`), never via direct object access like `app.settings.foo`; direct access bypasses validation and has been deprecated since 3.0.","repository":"expressjs/Express","domain":"app-frameworks","topic":"Configurations","language":"JavaScript","updated":"2026-03-21","comments":5,"stars":69579,"raw":"https://awesomereviewers.com/raw/express-app-settings-management.md"},{"slug":"mermaid-config-driven-theming","title":"Config-driven theming","description":"When rendering/layout is affected by configuration or theming, avoid magic numbers and ad-hoc config handling. Instead: - Use a centralized “effective config” helper for all config-derived decisions, including correct type coercion (e.g., treat `\"false\"` the same as `false`).","repository":"mermaid-js/mermaid","domain":"devtools","topic":"Configurations","language":"JavaScript","updated":"2026-01-15","comments":5,"stars":87952,"raw":"https://awesomereviewers.com/raw/mermaid-config-driven-theming.md"},{"slug":"prettier-validate-configuration-values","title":"validate configuration values","description":"Always validate configuration values and provide clear, actionable error messages when validation fails. Handle invalid values gracefully by either ignoring them or providing sensible defaults, and validate that configuration options are used in the correct context.","repository":"prettier/prettier","domain":"devtools","topic":"Configurations","language":"JavaScript","updated":"2025-05-24","comments":5,"stars":50772,"raw":"https://awesomereviewers.com/raw/prettier-validate-configuration-values.md"},{"slug":"serverless-structure-configs-for-clarity","title":"Structure configs for clarity","description":"Organize configuration objects to maximize clarity and maintainability while ensuring robust validation. Follow these principles: 1. Use single object definitions instead of multiple configurations to enable specific error messages","repository":"serverless/serverless","domain":"cloud-infra","topic":"Configurations","language":"JavaScript","updated":"2023-05-10","comments":5,"stars":46810,"raw":"https://awesomereviewers.com/raw/serverless-structure-configs-for-clarity.md"},{"slug":"discourse-use-dynamic-configuration-access","title":"Use dynamic configuration access","description":"Always access configuration values through proper service APIs rather than hardcoding them or using unreliable access patterns. This ensures configuration remains maintainable and behaves consistently across different contexts.","repository":"discourse/discourse","domain":"app-frameworks","topic":"Configurations","language":"JavaScript","updated":"2025-07-29","comments":4,"stars":44898,"raw":"https://awesomereviewers.com/raw/discourse-use-dynamic-configuration-access.md"},{"slug":"node-limit-environment-variable-scope","title":"Limit environment variable scope","description":"When working with environment variables for configuration: 1. **Reuse existing environment variables** rather than creating new ones. Leverage established variables like `NODE_TEST_CONTEXT` where possible to avoid fragmentation.","repository":"nodejs/node","domain":"runtimes","topic":"Configurations","language":"JavaScript","updated":"2025-07-14","comments":4,"stars":112178,"raw":"https://awesomereviewers.com/raw/node-limit-environment-variable-scope.md"},{"slug":"react-router-simplify-configuration-setup","title":"Simplify configuration setup","description":"Avoid redundant configuration parameters and prefer automated solutions over manual maintenance. Remove configuration options that duplicate library defaults, replace manual dependency lists with programmatic detection, and eliminate unused configuration logic when usage patterns change.","repository":"remix-run/react-router","domain":"app-frameworks","topic":"Configurations","language":"JavaScript","updated":"2025-02-12","comments":4,"stars":55270,"raw":"https://awesomereviewers.com/raw/react-router-simplify-configuration-setup.md"},{"slug":"cypress-environment-variable-handling","title":"Environment variable handling","description":"Environment variables should be properly validated, parsed, and documented with clear override mechanisms. Always validate that environment variable names are non-empty strings before processing. When parsing environment variable values, trim whitespace and remove surrounding quotes to handle cross-platform differences, especially on Windows where quotes...","repository":"cypress-io/cypress","domain":"devtools","topic":"Configurations","language":"JavaScript","updated":"2023-05-24","comments":4,"stars":48850,"raw":"https://awesomereviewers.com/raw/cypress-environment-variable-handling.md"},{"slug":"express-access-settings-properly","title":"Access settings properly","description":"Always use the provided settings accessor methods (`app.get()`, `app.set()`, `app.enabled()`, `app.disabled()`) to access application configuration instead of directly accessing the settings object. Direct access to the settings object was deprecated and may lead to inconsistent behavior or errors.","repository":"expressjs/express","domain":"app-frameworks","topic":"Configurations","language":"JavaScript","updated":"2016-03-15","comments":4,"stars":67300,"raw":"https://awesomereviewers.com/raw/express-access-settings-properly.md"}],"prompt_count":37},{"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":{"id":"dependency-review","method":"supply_chain","kind":"dependency-audit","languages":["*"],"upstream":"https://github.com/actions/dependency-review-action","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":14,"commands":["uses actions/dependency-review-action"],"run":null,"via":"GitHub Action actions/dependency-review-action","triggers":["ci"],"examples":[{"repository":"axios/axios","slug":"axios-axios"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"prettier/prettier","slug":"prettier-prettier"}]},"alternatives":[{"id":"npm-audit","repos":1,"share":5}],"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":9,"share":41,"commands":["analyze (language: 2)","Tests (include: 5)","analyze (language: 1)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"nodejs/node","slug":"nodejs-node"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"sveltejs/svelte","slug":"sveltejs-svelte"},{"repository":"expressjs/express","slug":"expressjs-express"},{"repository":"bmad-code-org/bmad-method","slug":"bmad-code-org-bmad-method"},{"repository":"prettier/prettier","slug":"prettier-prettier"}]},"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":9,"share":41,"commands":["analyze (language: 2)","Tests (include: 5)","analyze (language: 1)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"nodejs/node","slug":"nodejs-node"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"sveltejs/svelte","slug":"sveltejs-svelte"},{"repository":"expressjs/express","slug":"expressjs-express"},{"repository":"bmad-code-org/bmad-method","slug":"bmad-code-org-bmad-method"},{"repository":"prettier/prettier","slug":"prettier-prettier"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"serverless-use-runserverless-utility","title":"Use runServerless utility","description":"All new tests must be written using the `runServerless` utility instead of legacy testing approaches. This utility provides a more reliable way to test functionality by replicating full command runs, ensuring that cross-dependent machinery works as expected in production.","repository":"serverless/serverless","domain":"cloud-infra","topic":"Testing","language":"JavaScript","updated":"2023-05-25","comments":25,"stars":46810,"raw":"https://awesomereviewers.com/raw/serverless-use-runserverless-utility.md"},{"slug":"express-robust-async-test-patterns","title":"Robust async test patterns","description":"Write tests that exercise functionality the same way a real consumer would, and make sure asynchronous tests fail loudly rather than hanging. Prefer wiring behavior through the public API inside a request handler and asserting with supertest's `request(app).get('/').expect(...)`, instead of calling internal methods directly, testing an unrelated helper...","repository":"Expressjs/Express","domain":"app-frameworks","topic":"Testing","language":"JavaScript","updated":"2026-10-05","comments":15,"stars":69580,"raw":"https://awesomereviewers.com/raw/express-robust-async-test-patterns.md"},{"slug":"fastify-use-specific-assertion-methods","title":"Use specific assertion methods","description":"Choose the appropriate assertion method based on the data type being tested. This improves test readability and provides clearer error messages when tests fail.","repository":"fastify/fastify","domain":"app-frameworks","topic":"Testing","language":"JavaScript","updated":"","comments":15,"stars":34000,"raw":"https://awesomereviewers.com/raw/fastify-use-specific-assertion-methods.md"},{"slug":"qwen-code-branch-exact-test-coverage","title":"Branch-Exact Test Coverage","description":"Make workflow/test suites “branch-complete and predicate-exact”: every reachable `case` arm and every required gating condition must be exercised and asserted, with environment-correct shims/guards.","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Testing","language":"JavaScript","updated":"2026-07-29","comments":12,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-branch-exact-test-coverage.md"},{"slug":"9router-test-fidelity-and-assertions","title":"Test fidelity and assertions","description":"Tests must exercise the real production code path and fail with clear, actionable diagnostics when they break. 1. Never duplicate implementation logic inside a test file \"for isolation.\" If a helper (e.g. `stripReasoningContent`) is only defined and tested as a local copy, the test can pass while the real exported function is broken or never even reached....","repository":"Decolua/9Router","domain":"llm-infra","topic":"Testing","language":"JavaScript","updated":"2026-09-06","comments":7,"stars":31641,"raw":"https://awesomereviewers.com/raw/9router-test-fidelity-and-assertions.md"},{"slug":"workerd-comprehensive-assertion-testing","title":"comprehensive assertion testing","description":"Ensure test assertions are thorough and complete by testing both expected behavior and error conditions with specific error types and messages. Tests should cover edge cases, boundary conditions, and all relevant code branches rather than just happy path scenarios.","repository":"cloudflare/workerd","domain":"cloud-infra","topic":"Testing","language":"JavaScript","updated":"2025-08-11","comments":7,"stars":6989,"raw":"https://awesomereviewers.com/raw/workerd-comprehensive-assertion-testing.md"},{"slug":"9router-test-real-behavior-clearly","title":"Test real behavior clearly","description":"Tests should exercise the actual production code and fail with clear, actionable messages when something breaks. - Import and call the real implementation under test instead of re-declaring a copy of the logic inside the test file. A duplicated helper can silently drift from production code, giving false confidence that the feature is covered when it''s...","repository":"decolua/9router","domain":"llm-infra","topic":"Testing","language":"JavaScript","updated":"2026-09-06","comments":6,"stars":31412,"raw":"https://awesomereviewers.com/raw/9router-test-real-behavior-clearly.md"},{"slug":"mermaid-deterministic-testing-practices","title":"Deterministic Testing Practices","description":"Integration/e2e tests should be deterministic and directly tied to specified behavior. Apply these rules: 1) Avoid time-based waits. Wait for an observable condition (DOM element present, network idle, event emitted, SVG rendered) instead of `cy.wait(500)`.","repository":"mermaid-js/mermaid","domain":"devtools","topic":"Testing","language":"JavaScript","updated":"2025-02-26","comments":6,"stars":87952,"raw":"https://awesomereviewers.com/raw/mermaid-deterministic-testing-practices.md"},{"slug":"express-safe-async-test-assertions","title":"Safe async test assertions","description":"When asserting inside asynchronous callbacks (HTTP response handlers, `listen` callbacks, stream events, etc.), always guard assertions with `try`/`catch` (or `try`/`finally`) and guarantee that cleanup (`server.close()`) and the `done()` callback are invoked on both the success and failure path. An uncaught assertion thrown inside a callback is only caught...","repository":"expressjs/Express","domain":"app-frameworks","topic":"Testing","language":"JavaScript","updated":"2026-10-05","comments":5,"stars":69579,"raw":"https://awesomereviewers.com/raw/express-safe-async-test-assertions.md"},{"slug":"9router-clear-real-implementation-test-assertions","title":"Clear, real-implementation test assertions","description":"Tests must exercise the actual production code and fail with clear, actionable diagnostics rather than cryptic errors. - Import and test the real implementation instead of duplicating logic inline. A test that reimplements the function under test (e.g., copy-pasting `stripReasoningContent` into the test file) can pass even when the real code is broken;...","repository":"Decolua/9Router","domain":"llm-infra","topic":"Testing","language":"JavaScript","updated":"2026-09-06","comments":5,"stars":31414,"raw":"https://awesomereviewers.com/raw/9router-clear-real-implementation-test-assertions.md"},{"slug":"node-behavior-focused-test-design","title":"Behavior-focused test design","description":"Tests should focus on verifying behavior rather than implementation details to ensure they remain robust during refactoring. Avoid dependencies on timers or internal code structure that can lead to flaky and brittle tests.","repository":"nodejs/node","domain":"runtimes","topic":"Testing","language":"JavaScript","updated":"2025-06-21","comments":5,"stars":112178,"raw":"https://awesomereviewers.com/raw/node-behavior-focused-test-design.md"},{"slug":"express-ensure-test-completion","title":"Ensure test completion","description":"Tests must properly terminate by following appropriate asynchronous patterns. For asynchronous tests, always invoke the `done()` callback after assertions or use returned Promises. For synchronous tests, omit the `done` parameter entirely. Use Mocha's built-in assertion handling rather than manual try-catch blocks.","repository":"expressjs/express","domain":"app-frameworks","topic":"Testing","language":"JavaScript","updated":"2023-04-13","comments":5,"stars":67300,"raw":"https://awesomereviewers.com/raw/express-ensure-test-completion.md"}],"prompt_count":28},{"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":"svelte-document-complex-apis","title":"Document complex APIs","description":"Require comprehensive JSDoc documentation for classes, complex functions, and all exported functions to improve codebase maintainability and developer onboarding. Focus especially on code with broad reach across the codebase or non-obvious functionality.","repository":"sveltejs/svelte","domain":"app-frameworks","topic":"Documentation","language":"JavaScript","updated":"2025-07-08","comments":6,"stars":83580,"raw":"https://awesomereviewers.com/raw/svelte-document-complex-apis.md"},{"slug":"aws-sdk-js-document-apis-thoroughly","title":"Document APIs thoroughly","description":"All public API elements must be thoroughly documented with JSDoc annotations that clearly explain their purpose, parameters, return values, and default behaviors. Documentation should be precise, matching the actual code behavior rather than making assumptions or using misleading descriptions.","repository":"aws/aws-sdk-js","domain":"cloud-infra","topic":"Documentation","language":"JavaScript","updated":"2018-10-30","comments":6,"stars":7628,"raw":"https://awesomereviewers.com/raw/aws-sdk-js-document-apis-thoroughly.md"},{"slug":"node-document-with-precise-accuracy","title":"Document with precise accuracy","description":"Maintain precise and accurate documentation through both JSDoc annotations and explanatory comments. Ensure all technical documentation matches the actual implementation, avoiding inconsistencies between code and documentation.","repository":"nodejs/node","domain":"runtimes","topic":"Documentation","language":"JavaScript","updated":"2025-06-27","comments":5,"stars":112178,"raw":"https://awesomereviewers.com/raw/node-document-with-precise-accuracy.md"},{"slug":"prettier-add-explanatory-comments","title":"Add explanatory comments","description":"Add explanatory comments for complex logic, special cases, or non-obvious code behavior. Comments should explain the \"why\" behind the code and \"what\" specific conditions or syntax patterns are being handled.","repository":"prettier/prettier","domain":"devtools","topic":"Documentation","language":"JavaScript","updated":"2023-11-10","comments":5,"stars":50772,"raw":"https://awesomereviewers.com/raw/prettier-add-explanatory-comments.md"},{"slug":"fastify-consistent-jsdoc-standards","title":"Consistent JSDoc standards","description":"Document all public APIs and significant internal functions with comprehensive JSDoc comments that include accurate descriptions, parameter and return types, and any notable side effects. Follow standard JSDoc format conventions consistently across the codebase.","repository":"fastify/fastify","domain":"app-frameworks","topic":"Documentation","language":"JavaScript","updated":"","comments":5,"stars":34000,"raw":"https://awesomereviewers.com/raw/fastify-consistent-jsdoc-standards.md"},{"slug":"material-ui-document-implementation-decisions","title":"Document implementation decisions","description":"Add explanatory comments for non-obvious implementation details, especially when maintaining backward compatibility or implementing complex logic that isn't immediately clear without context. This helps other developers understand the reasoning behind design decisions and implementation choices.","repository":"mui/material-ui","domain":"app-frameworks","topic":"Documentation","language":"JavaScript","updated":"2025-04-17","comments":3,"stars":96063,"raw":"https://awesomereviewers.com/raw/material-ui-document-implementation-decisions.md"},{"slug":"react-native-meaningful-documentation-practices","title":"Meaningful documentation practices","description":"Documentation should enhance code understanding rather than duplicate information already present in the code. Avoid redundant type annotations in JSDoc when type systems like Flow are already used. Instead, focus on explaining intent, complex logic, and providing context that aids debugging and maintenance.","repository":"facebook/react-native","domain":"app-frameworks","topic":"Documentation","language":"JavaScript","updated":"2024-10-14","comments":3,"stars":123178,"raw":"https://awesomereviewers.com/raw/react-native-meaningful-documentation-practices.md"},{"slug":"qwen-code-i18n-translation-policy","title":"I18n Translation Policy","description":"Treat every newly added user-facing string key as a documentation/UX contract for all supported locales. When you add `t()` keys: 1) Classify the keys against the project’s translation policy (e.g., `MUST_TRANSLATE_KEYS`).","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Documentation","language":"JavaScript","updated":"2026-07-28","comments":2,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-i18n-translation-policy.md"},{"slug":"mermaid-document-api-changes","title":"Document API Changes","description":"When you change an exported/non-trivial API (or add new function parameters), update JSDoc so it is complete and directly helpful: - For every added/changed parameter: include a `{type}` and a short description of what the parameter controls.","repository":"mermaid-js/mermaid","domain":"devtools","topic":"Documentation","language":"JavaScript","updated":"2026-01-16","comments":2,"stars":87952,"raw":"https://awesomereviewers.com/raw/mermaid-document-api-changes.md"},{"slug":"cypress-document-non-obvious-code","title":"Document non-obvious code","description":"Add explanatory comments when code logic is unclear, implements workarounds, or has special reasoning that isn't immediately apparent to other developers. Comments should explain the \"why\" behind the implementation, not just the \"what\".","repository":"cypress-io/cypress","domain":"devtools","topic":"Documentation","language":"JavaScript","updated":"2023-03-24","comments":2,"stars":48850,"raw":"https://awesomereviewers.com/raw/cypress-document-non-obvious-code.md"},{"slug":"ink-ensure-documentation-usability","title":"Ensure documentation usability","description":"Documentation should be practical and serve its intended audience effectively. Examples must be runnable out-of-the-box or include clear setup instructions, while API documentation should focus on public interfaces that users actually need.","repository":"vadimdemedes/ink","domain":"app-frameworks","topic":"Documentation","language":"JavaScript","updated":"2020-12-27","comments":2,"stars":31825,"raw":"https://awesomereviewers.com/raw/ink-ensure-documentation-usability.md"},{"slug":"express-accurate-jsdoc-documentation","title":"Accurate JSDoc documentation","description":"Always ensure JSDoc comments accurately reflect the actual code implementation. Parameter types, optionality, and function behavior must be precisely documented to prevent confusion and bugs.","repository":"expressjs/express","domain":"app-frameworks","topic":"Documentation","language":"JavaScript","updated":"2018-04-16","comments":2,"stars":67300,"raw":"https://awesomereviewers.com/raw/express-accurate-jsdoc-documentation.md"}],"prompt_count":13}]}
