{"slug":"typescript","title":"TypeScript","extensions":[".ts",".tsx",".mts",".cts"],"entry_languages":["TypeScript","TSX"],"prompts":1343,"repos":93,"sample":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp","checks":6},{"repository":"facebook/react","slug":"facebook-react","checks":7},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent","checks":10},{"repository":"microsoft/vscode","slug":"microsoft-vscode","checks":11},{"repository":"vercel/next.js","slug":"vercel-next.js","checks":11},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n","checks":11},{"repository":"electron/electron","slug":"electron-electron","checks":5},{"repository":"langgenius/dify","slug":"langgenius-dify","checks":15},{"repository":"axios/axios","slug":"axios-axios","checks":7},{"repository":"microsoft/typescript","slug":"microsoft-typescript","checks":4},{"repository":"denoland/deno","slug":"denoland-deno","checks":4},{"repository":"angular/angular","slug":"angular-angular","checks":4},{"repository":"mui/material-ui","slug":"mui-material-ui","checks":6},{"repository":"ant-design/ant-design","slug":"ant-design-ant-design","checks":6},{"repository":"shadcn-ui/ui","slug":"shadcn-ui-ui","checks":4},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid","checks":9},{"repository":"supabase/supabase","slug":"supabase-supabase","checks":6},{"repository":"ChatGPTNextWeb/NextChat","slug":"chatgptnextweb-nextchat","checks":4},{"repository":"opencut-app/opencut","slug":"opencut-app-opencut","checks":0},{"repository":"earendil-works/pi","slug":"earendil-works-pi","checks":9},{"repository":"oven-sh/bun","slug":"oven-sh-bun","checks":9},{"repository":"microsoft/playwright","slug":"microsoft-playwright","checks":4},{"repository":"unionlabs/union","slug":"unionlabs-union","checks":7},{"repository":"vitejs/vite","slug":"vitejs-vite","checks":5},{"repository":"nestjs/nest","slug":"nestjs-nest","checks":4},{"repository":"cline/cline","slug":"cline-cline","checks":6},{"repository":"grafana/grafana","slug":"grafana-grafana","checks":11},{"repository":"lobehub/lobe-chat","slug":"lobehub-lobe-chat","checks":7},{"repository":"google-gemini/gemini-cli","slug":"google-gemini-gemini-cli","checks":8},{"repository":"nuxt/nuxt","slug":"nuxt-nuxt","checks":8},{"repository":"remix-run/react-router","slug":"remix-run-react-router","checks":7},{"repository":"firecrawl/firecrawl","slug":"firecrawl-firecrawl","checks":11},{"repository":"aaif-goose/goose","slug":"aaif-goose-goose","checks":12},{"repository":"vuejs/core","slug":"vuejs-core","checks":4},{"repository":"tanstack/query","slug":"tanstack-query","checks":4},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress","checks":5},{"repository":"mastodon/mastodon","slug":"mastodon-mastodon","checks":5},{"repository":"prisma/prisma","slug":"prisma-prisma","checks":7},{"repository":"colinhacks/zod","slug":"colinhacks-zod","checks":4},{"repository":"getsentry/sentry","slug":"getsentry-sentry","checks":13},{"repository":"apache/airflow","slug":"apache-airflow","checks":20},{"repository":"evanw/esbuild","slug":"evanw-esbuild","checks":5},{"repository":"calcom/cal.com","slug":"calcom-cal.com","checks":5},{"repository":"novuhq/novu","slug":"novuhq-novu","checks":10},{"repository":"menloresearch/jan","slug":"menloresearch-jan","checks":10},{"repository":"can1357/oh-my-pi","slug":"can1357-oh-my-pi","checks":6},{"repository":"twentyhq/twenty","slug":"twentyhq-twenty","checks":4},{"repository":"fastify/fastify","slug":"fastify-fastify","checks":3},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute","checks":14},{"repository":"honojs/hono","slug":"honojs-hono","checks":2},{"repository":"vadimdemedes/ink","slug":"vadimdemedes-ink","checks":3},{"repository":"openai/codex","slug":"openai-codex","checks":12},{"repository":"drizzle-team/drizzle-orm","slug":"drizzle-team-drizzle-orm","checks":6},{"repository":"supermemoryai/supermemory","slug":"supermemoryai-supermemory","checks":6},{"repository":"PostHog/posthog","slug":"posthog-posthog","checks":22},{"repository":"sst/opencode","slug":"sst-opencode","checks":9},{"repository":"continuedev/continue","slug":"continuedev-continue","checks":7},{"repository":"nrwl/nx","slug":"nrwl-nx","checks":9},{"repository":"promptfoo/promptfoo","slug":"promptfoo-promptfoo","checks":12},{"repository":"QwenLM/qwen-code","slug":"qwenlm-qwen-code","checks":13},{"repository":"SigNoz/signoz","slug":"signoz-signoz","checks":11},{"repository":"chalk/chalk","slug":"chalk-chalk","checks":2},{"repository":"tokio-rs/axum","slug":"tokio-rs-axum","checks":8},{"repository":"coleam00/Archon","slug":"coleam00-archon","checks":2},{"repository":"argoproj/argo-cd","slug":"argoproj-argo-cd","checks":11},{"repository":"better-auth/better-auth","slug":"better-auth-better-auth","checks":6},{"repository":"gravitational/teleport","slug":"gravitational-teleport","checks":11},{"repository":"block/goose","slug":"block-goose","checks":12},{"repository":"adonisjs/core","slug":"adonisjs-core","checks":4},{"repository":"bytedance/UI-TARS-desktop","slug":"bytedance-ui-tars-desktop","checks":5},{"repository":"wavetermdev/waveterm","slug":"wavetermdev-waveterm","checks":7},{"repository":"RooCodeInc/Roo-Code","slug":"roocodeinc-roo-code","checks":6},{"repository":"dyad-sh/dyad","slug":"dyad-sh-dyad","checks":7},{"repository":"browserbase/stagehand","slug":"browserbase-stagehand","checks":7},{"repository":"vercel/ai","slug":"vercel-ai","checks":4},{"repository":"langchain-ai/langchainjs","slug":"langchain-ai-langchainjs","checks":6},{"repository":"langfuse/langfuse","slug":"langfuse-langfuse","checks":17},{"repository":"mountain-loop/yaak","slug":"mountain-loop-yaak","checks":5},{"repository":"TanStack/router","slug":"tanstack-router","checks":6},{"repository":"openai/codex-security","slug":"openai-codex-security","checks":15},{"repository":"elie222/inbox-zero","slug":"elie222-inbox-zero","checks":5},{"repository":"aws/aws-sdk-js","slug":"aws-aws-sdk-js","checks":3},{"repository":"kilo-org/kilocode","slug":"kilo-org-kilocode","checks":7},{"repository":"cloudflare/workerd","slug":"cloudflare-workerd","checks":7},{"repository":"maximhq/bifrost","slug":"maximhq-bifrost","checks":12},{"repository":"Helicone/helicone","slug":"helicone-helicone","checks":7},{"repository":"snyk/cli","slug":"snyk-cli","checks":8},{"repository":"awslabs/aidlc-workflows","slug":"awslabs-aidlc-workflows","checks":6},{"repository":"cloudflare/workers-sdk","slug":"cloudflare-workers-sdk","checks":5},{"repository":"paper-design/shaders","slug":"paper-design-shaders","checks":3},{"repository":"likec4/likec4","slug":"likec4-likec4","checks":6},{"repository":"cloudflare/agents","slug":"cloudflare-agents","checks":5},{"repository":"rocicorp/mono","slug":"rocicorp-mono","checks":3}],"tools":[{"id":"tsc","method":"static_analysis","kind":"type-checking","languages":["typescript"],"upstream":"https://github.com/microsoft/TypeScript","docs":null,"autofix":false,"exit_codes":{},"repos":86,"share":92,"commands":["tsc --noEmit","tsc","tsc -b"],"run":"tsc --noEmit","via":null,"triggers":["pre_commit","ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"facebook/react","slug":"facebook-react"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"}]},{"id":"vitest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/vitest-dev/vitest","docs":null,"autofix":false,"exit_codes":{},"repos":68,"share":73,"commands":["vitest run","vitest","vitest run --coverage"],"run":"vitest run","via":null,"triggers":["ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"electron/electron","slug":"electron-electron"}]},{"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":59,"share":63,"commands":["eslint .","eslint","eslint . --fix"],"run":"eslint .","via":null,"triggers":["pre_commit","ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"facebook/react","slug":"facebook-react"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"}]},{"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":53,"share":57,"commands":["prettier --write .","prettier --check .","prettier --experimental-cli --write ."],"run":"prettier --write .","via":null,"triggers":["pre_commit","ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"facebook/react","slug":"facebook-react"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"axios/axios","slug":"axios-axios"}]},{"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":46,"share":49,"commands":["analyze (language: 2)","analyze (include: 2)","analyze (include: 1)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"langgenius/dify","slug":"langgenius-dify"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"earendil-works/pi","slug":"earendil-works-pi"},{"repository":"microsoft/playwright","slug":"microsoft-playwright"},{"repository":"vitejs/vite","slug":"vitejs-vite"}]},{"id":"playwright","method":"testing","kind":"browser-tests","languages":["javascript","typescript"],"upstream":"https://github.com/microsoft/playwright","docs":null,"autofix":false,"exit_codes":{},"repos":41,"share":44,"commands":["playwright test","playwright test --ui","playwright test $(echo $FILES"],"run":"playwright test","via":null,"triggers":["ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"facebook/react","slug":"facebook-react"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"}]},{"id":"jest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/jestjs/jest","docs":null,"autofix":false,"exit_codes":{},"repos":26,"share":28,"commands":["jest","jest --coverage","jest --watch"],"run":"jest","via":null,"triggers":["ci","local"],"examples":[{"repository":"facebook/react","slug":"facebook-react"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"angular/angular","slug":"angular-angular"},{"repository":"ant-design/ant-design","slug":"ant-design-ant-design"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"supabase/supabase","slug":"supabase-supabase"}]},{"id":"codeql","method":"static_analysis","kind":"security-scanning","languages":["*"],"upstream":"https://github.com/github/codeql","docs":null,"autofix":false,"exit_codes":{},"repos":25,"share":27,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"microsoft/typescript","slug":"microsoft-typescript"},{"repository":"mui/material-ui","slug":"mui-material-ui"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"nestjs/nest","slug":"nestjs-nest"},{"repository":"lobehub/lobe-chat","slug":"lobehub-lobe-chat"}]},{"id":"node-test","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/nodejs/node","docs":null,"autofix":false,"exit_codes":{},"repos":25,"share":27,"commands":["node --test buzz/*.test.mjs","node --test scripts/*.test.js","node --test scripts/mac-update-requirements.test.cjs"],"run":"node --test scripts/mac-update-requirements.test.cjs","via":null,"triggers":["ci","local"],"examples":[{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"electron/electron","slug":"electron-electron"},{"repository":"langgenius/dify","slug":"langgenius-dify"},{"repository":"axios/axios","slug":"axios-axios"}]},{"id":"biome","method":"static_analysis","kind":"linting","languages":["javascript","typescript","config"],"upstream":"https://github.com/biomejs/biome","docs":null,"autofix":true,"exit_codes":{},"repos":21,"share":23,"commands":["biome format --write .","biome check --write","biome format ."],"run":"biome format --write .","via":null,"triggers":["ci","local"],"examples":[{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"ant-design/ant-design","slug":"ant-design-ant-design"},{"repository":"earendil-works/pi","slug":"earendil-works-pi"},{"repository":"unionlabs/union","slug":"unionlabs-union"},{"repository":"cline/cline","slug":"cline-cline"}]},{"id":"semgrep","method":"static_analysis","kind":"security-scanning","languages":["*"],"upstream":"https://github.com/semgrep/semgrep","docs":null,"autofix":false,"exit_codes":{},"repos":8,"share":9,"commands":["semgrep scan --config=auto","semgrep ci","semgrep scan --config p/default --baseline-commit $BASELINE_COMMIT --error"],"run":"semgrep scan --config=auto","via":null,"triggers":["ci"],"examples":[{"repository":"vitejs/vite","slug":"vitejs-vite"},{"repository":"prisma/prisma","slug":"prisma-prisma"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"langfuse/langfuse","slug":"langfuse-langfuse"},{"repository":"cloudflare/workerd","slug":"cloudflare-workerd"},{"repository":"awslabs/aidlc-workflows","slug":"awslabs-aidlc-workflows"}]},{"id":"mocha","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/mochajs/mocha","docs":null,"autofix":false,"exit_codes":{},"repos":7,"share":8,"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":["ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"cypress-io/cypress","slug":"cypress-io-cypress"},{"repository":"evanw/esbuild","slug":"evanw-esbuild"},{"repository":"novuhq/novu","slug":"novuhq-novu"}]},{"id":"gitleaks","method":"static_analysis","kind":"secret-scanning","languages":["*"],"upstream":"https://github.com/gitleaks/gitleaks","docs":null,"autofix":false,"exit_codes":{},"repos":6,"share":6,"commands":["gitleaks git --config=.gitleaks.toml --baseline-path=.gitleaks-baseline.json --log-opts=$SCAN_REF --report-format=sarif --report-path=gitleaks.sarif .","gitleaks git --pre-commit --redact --staged --verbose","gitleaks version"],"run":"gitleaks git --config=.gitleaks.toml --baseline-path=.gitleaks-baseline.json --log-opts=$SCAN_REF --report-format=sarif --report-path=gitleaks.sarif .","via":"pre-commit hook gitleaks","triggers":["pre_commit","ci"],"examples":[{"repository":"cline/cline","slug":"cline-cline"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"elie222/inbox-zero","slug":"elie222-inbox-zero"},{"repository":"maximhq/bifrost","slug":"maximhq-bifrost"},{"repository":"snyk/cli","slug":"snyk-cli"},{"repository":"awslabs/aidlc-workflows","slug":"awslabs-aidlc-workflows"}]},{"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":6,"share":6,"commands":["npm audit --audit-level=critical","npm audit --audit-level=high","npm audit --prefix runtime --omit=dev --audit-level=high"],"run":"npm audit signatures","via":null,"triggers":["ci","local"],"examples":[{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"earendil-works/pi","slug":"earendil-works-pi"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"promptfoo/promptfoo","slug":"promptfoo-promptfoo"},{"repository":"adonisjs/core","slug":"adonisjs-core"},{"repository":"openai/codex-security","slug":"openai-codex-security"}]},{"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":5,"share":5,"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":"apache/airflow","slug":"apache-airflow"},{"repository":"novuhq/novu","slug":"novuhq-novu"},{"repository":"maximhq/bifrost","slug":"maximhq-bifrost"}]},{"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":4,"share":4,"commands":["pre-commit hook end-of-file-fixer","pre-commit hook check-merge-conflict","pre-commit hook trailing-whitespace"],"run":null,"via":"pre-commit hook end-of-file-fixer","triggers":["pre_commit"],"examples":[{"repository":"getsentry/sentry","slug":"getsentry-sentry"},{"repository":"apache/airflow","slug":"apache-airflow"},{"repository":"maximhq/bifrost","slug":"maximhq-bifrost"},{"repository":"Helicone/helicone","slug":"helicone-helicone"}]},{"id":"codespell","method":"formatting","kind":"spelling","languages":["*"],"upstream":"https://github.com/codespell-project/codespell","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":3,"commands":["uses codespell-project/actions-codespell","pre-commit hook codespell"],"run":null,"via":"GitHub Action codespell-project/actions-codespell","triggers":["pre_commit","ci"],"examples":[{"repository":"apache/airflow","slug":"apache-airflow"},{"repository":"openai/codex","slug":"openai-codex"},{"repository":"langfuse/langfuse","slug":"langfuse-langfuse"}]},{"id":"fast-check","method":"testing","kind":"property-tests","languages":["javascript","typescript"],"upstream":"https://github.com/dubzzz/fast-check","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":3,"commands":[],"run":null,"via":null,"triggers":[],"examples":[{"repository":"nuxt/nuxt","slug":"nuxt-nuxt"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"langfuse/langfuse","slug":"langfuse-langfuse"}]},{"id":"stryker","method":"testing","kind":"mutation-testing","languages":["javascript","typescript"],"upstream":"https://github.com/stryker-mutator/stryker-js","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":3,"commands":["stryker run","stryker run --config-file stryker.disablebail.json --mutate $BATCH_MUTATE","stryker run --mutate $BATCH_MUTATE"],"run":"stryker run --config-file stryker.disablebail.json --mutate $BATCH_MUTATE","via":null,"triggers":["ci","local"],"examples":[{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"openai/codex-security","slug":"openai-codex-security"}]}],"headline":["prettier","eslint","tsc","vitest"],"raw_md":"https://awesomereviewers.com/raw/verify/typescript.md","raw_json":"https://awesomereviewers.com/raw/verify/typescript.json","url":"https://awesomereviewers.com/verify/typescript/","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":53,"share":57,"commands":["prettier --write .","prettier --check .","prettier --experimental-cli --write ."],"run":"prettier --write .","via":null,"triggers":["pre_commit","ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"facebook/react","slug":"facebook-react"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"axios/axios","slug":"axios-axios"}]},"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":59,"share":63,"commands":["eslint .","eslint","eslint . --fix"],"run":"eslint .","via":null,"triggers":["pre_commit","ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"facebook/react","slug":"facebook-react"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"}]},"alternatives":[{"id":"biome","repos":21,"share":23}],"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":{"id":"tsc","method":"static_analysis","kind":"type-checking","languages":["typescript"],"upstream":"https://github.com/microsoft/TypeScript","docs":null,"autofix":false,"exit_codes":{},"repos":86,"share":92,"commands":["tsc --noEmit","tsc","tsc -b"],"run":"tsc --noEmit","via":null,"triggers":["pre_commit","ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"facebook/react","slug":"facebook-react"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"}]},"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":"vitest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/vitest-dev/vitest","docs":null,"autofix":false,"exit_codes":{},"repos":68,"share":73,"commands":["vitest run","vitest","vitest run --coverage"],"run":"vitest run","via":null,"triggers":["ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"electron/electron","slug":"electron-electron"}]},"alternatives":[{"id":"jest","repos":26,"share":28},{"id":"node-test","repos":25,"share":27},{"id":"mocha","repos":7,"share":8}],"note":null}],"prompts":[{"slug":"hono-consistent-descriptive-identifiers","title":"Consistent, descriptive identifiers","description":"Choose names that are specific, self-explanatory, and consistent with the rest of the codebase. Before introducing a new option, type, or generic parameter, search for existing analogous APIs and reuse their naming pattern instead of inventing a new one (e.g. use `headerName` because bearer-auth/JWT/JWK middleware already use it, instead of `header` or...","repository":"HONOJS/HONO","domain":"app-frameworks","topic":"Naming Conventions","language":"TypeScript","updated":"2026-02-19","comments":22,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-consistent-descriptive-identifiers.md"},{"slug":"hono-consistent-unambiguous-naming","title":"Consistent, unambiguous naming","description":"Choose identifier names that are unambiguous, self-explanatory, and consistent with existing conventions already used elsewhere in the codebase or in the relevant external spec/ecosystem. Before introducing a new name, check how similar concepts are named in sibling modules (e.g. other middlewares, adapters, generics) and reuse that convention rather than...","repository":"honojs/Hono","domain":"app-frameworks","topic":"Naming Conventions","language":"TypeScript","updated":"2026-02-19","comments":15,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-consistent-unambiguous-naming.md"},{"slug":"twenty-simplify-control-flow-patterns","title":"simplify control flow patterns","description":"Improve code readability by simplifying control flow structures and avoiding unnecessary complexity. This involves three key practices: **1. Use early returns instead of nested if/else blocks:**","repository":"twentyhq/twenty","domain":"app-frameworks","topic":"Code Style","language":"TypeScript","updated":"2025-09-17","comments":12,"stars":35477,"raw":"https://awesomereviewers.com/raw/twenty-simplify-control-flow-patterns.md"},{"slug":"angular-maintain-consistent-style","title":"maintain consistent style","description":"Ensure consistent application of coding style conventions throughout the codebase, including naming patterns, type usage, code organization, and formatting standards.","repository":"angular/angular","domain":"app-frameworks","topic":"Code Style","language":"TypeScript","updated":"2025-08-21","comments":12,"stars":98611,"raw":"https://awesomereviewers.com/raw/angular-maintain-consistent-style.md"},{"slug":"cli-consistent-readable-patterns","title":"consistent readable patterns","description":"Maintain consistent coding patterns and prioritize readability to make code easier to understand and maintain. This includes using consistent approaches for similar operations, avoiding overly complex constructions, and ensuring code follows predictable patterns.","repository":"snyk/cli","domain":"security","topic":"Code Style","language":"TypeScript","updated":"2024-07-23","comments":12,"stars":5178,"raw":"https://awesomereviewers.com/raw/cli-consistent-readable-patterns.md"},{"slug":"qwen-code-single-source-helpers","title":"Single Source Helpers","description":"When code review finds duplicated logic or repeated formatting/constants, treat it as a “single source of truth” violation. Factor shared logic into a helper/module and reuse it everywhere; avoid hardcoded literals where an existing helper/constant exists; and keep established idioms consistent.","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Code Style","language":"TypeScript","updated":"2026-07-28","comments":11,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-single-source-helpers.md"},{"slug":"mermaid-consistent-naming-rules","title":"Consistent Naming Rules","description":"Adopt consistent, explicit identifier naming across diagrams and TypeScript APIs. **Rules** 1) **Diagram ids/syntax keywords** - Use **lower-case** diagram identifiers.","repository":"mermaid-js/mermaid","domain":"devtools","topic":"Naming Conventions","language":"TypeScript","updated":"2026-03-17","comments":10,"stars":87952,"raw":"https://awesomereviewers.com/raw/mermaid-consistent-naming-rules.md"},{"slug":"hono-prefer-concise-idiomatic-syntax","title":"Prefer concise idiomatic syntax","description":"Write code using the shortest, most idiomatic form that remains clear, and stay consistent with the project''s established conventions rather than reverting to verbose patterns. Concretely:","repository":"HONOJS/HONO","domain":"app-frameworks","topic":"Code Style","language":"TypeScript","updated":"2026-02-08","comments":10,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-prefer-concise-idiomatic-syntax.md"},{"slug":"playwright-use-descriptive-identifier-names","title":"Use descriptive identifier names","description":"Choose specific, descriptive names for variables, methods, types, and other identifiers that clearly communicate their purpose and behavior. Avoid generic names, unnecessary abbreviations, and assumptions about usage context.","repository":"microsoft/playwright","domain":"devtools","topic":"Naming Conventions","language":"TypeScript","updated":"2025-07-30","comments":10,"stars":76113,"raw":"https://awesomereviewers.com/raw/playwright-use-descriptive-identifier-names.md"},{"slug":"ai-consistent-semantic-naming","title":"Consistent semantic naming","description":"Use clear, consistent, and semantic naming patterns across your codebase to improve readability and maintainability: 1. **Start function names with verbs** that describe the action being performed:","repository":"vercel/ai","domain":"ai-agents","topic":"Naming Conventions","language":"TypeScript","updated":"2025-07-08","comments":10,"stars":15590,"raw":"https://awesomereviewers.com/raw/ai-consistent-semantic-naming.md"},{"slug":"langchainjs-typescript-naming-standards","title":"TypeScript naming standards","description":"Follow consistent naming conventions in TypeScript to improve code clarity, type safety, and developer experience: 1. **Capitalize types and interfaces**: All type and interface names should start with an uppercase letter.","repository":"langchain-ai/langchainjs","domain":"ai-agents","topic":"Naming Conventions","language":"TypeScript","updated":"2025-05-26","comments":10,"stars":15004,"raw":"https://awesomereviewers.com/raw/langchainjs-typescript-naming-standards.md"},{"slug":"prowler-nextjs-directory-structure","title":"Next.js directory structure","description":"Keep the Next.js `/app` directory strictly for routing purposes as per framework conventions. Non-routing related code like tools, utilities, and services should be moved to appropriate directories such as `/lib/`. This improves code organization, maintainability, and follows Next.js best practices.","repository":"prowler-cloud/prowler","domain":"security","topic":"Code Style","language":"TypeScript","updated":"2025-04-27","comments":10,"stars":11834,"raw":"https://awesomereviewers.com/raw/prowler-nextjs-directory-structure.md"}],"prompt_count":242},"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":25,"share":27,"commands":["uses github/codeql-action/analyze"],"run":null,"via":"GitHub Action github/codeql-action/analyze","triggers":["ci"],"examples":[{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"microsoft/typescript","slug":"microsoft-typescript"},{"repository":"mui/material-ui","slug":"mui-material-ui"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"nestjs/nest","slug":"nestjs-nest"},{"repository":"lobehub/lobe-chat","slug":"lobehub-lobe-chat"}]},"alternatives":[{"id":"semgrep","repos":8,"share":9}],"note":null},{"kind":"secret-scanning","title":"Secret scanning","method":"static_analysis","method_slug":"static-analysis","catches":"Credentials and tokens committed to the repository.","tool":{"id":"gitleaks","method":"static_analysis","kind":"secret-scanning","languages":["*"],"upstream":"https://github.com/gitleaks/gitleaks","docs":null,"autofix":false,"exit_codes":{},"repos":6,"share":6,"commands":["gitleaks git --config=.gitleaks.toml --baseline-path=.gitleaks-baseline.json --log-opts=$SCAN_REF --report-format=sarif --report-path=gitleaks.sarif .","gitleaks git --pre-commit --redact --staged --verbose","gitleaks version"],"run":"gitleaks git --config=.gitleaks.toml --baseline-path=.gitleaks-baseline.json --log-opts=$SCAN_REF --report-format=sarif --report-path=gitleaks.sarif .","via":"pre-commit hook gitleaks","triggers":["pre_commit","ci"],"examples":[{"repository":"cline/cline","slug":"cline-cline"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"elie222/inbox-zero","slug":"elie222-inbox-zero"},{"repository":"maximhq/bifrost","slug":"maximhq-bifrost"},{"repository":"snyk/cli","slug":"snyk-cli"},{"repository":"awslabs/aidlc-workflows","slug":"awslabs-aidlc-workflows"}]},"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":"npm-audit","method":"supply_chain","kind":"dependency-audit","languages":["javascript","typescript"],"upstream":"https://github.com/npm/cli","docs":null,"autofix":false,"exit_codes":{},"repos":6,"share":6,"commands":["npm audit --audit-level=critical","npm audit --audit-level=high","npm audit --prefix runtime --omit=dev --audit-level=high"],"run":"npm audit signatures","via":null,"triggers":["ci","local"],"examples":[{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"earendil-works/pi","slug":"earendil-works-pi"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"promptfoo/promptfoo","slug":"promptfoo-promptfoo"},{"repository":"adonisjs/core","slug":"adonisjs-core"},{"repository":"openai/codex-security","slug":"openai-codex-security"}]},"alternatives":[{"id":"dependency-review","repos":5,"share":5}],"note":null}],"prompts":[{"slug":"promptfoo-redact-credentials-at-export-boundaries","title":"Redact credentials at export boundaries","description":"Any path by which data can leave the trust boundary — tracing/OTLP export, debug logs, error messages, DB persistence, cached results, or API responses — must pass through a shared sanitizer that scrubs credentials before the data is written, logged, or serialized. Treat this as a defense-in-depth problem, not a single regex: credentials appear as headers...","repository":"promptfoo/promptfoo","domain":"ai-agents","topic":"Security","language":"TypeScript","updated":"2026-10-20","comments":21,"stars":26565,"raw":"https://awesomereviewers.com/raw/promptfoo-redact-credentials-at-export-boundaries.md"},{"slug":"qwen-code-secure-boundary-enforcement","title":"Secure Boundary Enforcement","description":"Standard: at every trust boundary, enforce security invariants in a way that cannot be skipped by flags, parsing edge cases, alternate code paths, or serialization differences.","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Security","language":"TypeScript","updated":"2026-07-29","comments":20,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-secure-boundary-enforcement.md"},{"slug":"cline-fail-closed-security-handling","title":"Fail-Closed Security Handling","description":"Apply a single principle across auth, credentials, routing, sandboxing, and logging: **security must default to deny and must never proceed on ambiguous/dismissed outcomes; state and boundaries must be explicit and consistent.**","repository":"Cline/Cline","domain":"ai-agents","topic":"Security","language":"TypeScript","updated":"2026-10-24","comments":13,"stars":70840,"raw":"https://awesomereviewers.com/raw/cline-fail-closed-security-handling.md"},{"slug":"cline-fail-closed-security-boundaries","title":"Fail-Closed Security Boundaries","description":"Adopt a single secure-by-default rule-set: **authentication/authorization gates must fail closed**, **secret-bearing data must never be logged**, and **sandbox/file boundaries must be enforced with real paths and deny escape hatches**.","repository":"ClInE/cLiNe","domain":"ai-agents","topic":"Security","language":"TypeScript","updated":"2026-10-23","comments":13,"stars":70838,"raw":"https://awesomereviewers.com/raw/cline-fail-closed-security-boundaries.md"},{"slug":"cline-fail-closed-secrets-safety","title":"Fail-Closed Secrets Safety","description":"Use fail-closed security boundaries and secret-safe observability by default. ### 1) Auth/CSRF: never store or act on unverified callbacks - Treat `state` (or equivalent anti-forgery token) as a required verification gate.","repository":"CLINE/cline","domain":"ai-agents","topic":"Security","language":"TypeScript","updated":"2026-10-23","comments":12,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-fail-closed-secrets-safety.md"},{"slug":"cline-fail-closed-auth-and-logging","title":"Fail-Closed Auth And Logging","description":"Security standard: authentication/authorization and credential-handling code must fail closed and must not leak secrets. 1) Auth callback state/nonce enforcement (fail-closed)","repository":"cline/CLINE","domain":"ai-agents","topic":"Security","language":"TypeScript","updated":"2026-10-21","comments":11,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-fail-closed-auth-and-logging.md"},{"slug":"inbox-zero-sanitize-all-inputs","title":"Sanitize all inputs","description":"Properly sanitize or escape all user-provided inputs before using them in sensitive contexts to prevent injection attacks. This applies to multiple contexts:","repository":"elie222/inbox-zero","domain":"app-frameworks","topic":"Security","language":"TypeScript","updated":"2025-07-03","comments":11,"stars":8267,"raw":"https://awesomereviewers.com/raw/inbox-zero-sanitize-all-inputs.md"},{"slug":"vscode-enforce-security-invariants","title":"Enforce security invariants","description":"Security decisions (sandboxing, allow/deny access, and token attachment) must remain correct across time, async races, and concurrent policy contributions.","repository":"microsoft/VSCode","domain":"devtools","topic":"Security","language":"TypeScript","updated":"2026-10-15","comments":10,"stars":194303,"raw":"https://awesomereviewers.com/raw/vscode-enforce-security-invariants.md"},{"slug":"oh-my-pi-enforce-security-checks-everywhere","title":"Enforce security checks everywhere","description":"Security-sensitive logic—credential/secret redaction, data-scope isolation, authorization/allowlist matching, and output sanitization—must be enforced on every code path that can reach the sensitive data or untrusted input, not just the common or first-discovered path. Audit all entry points (alternate parsers, fallback branches, defaults, display paths)...","repository":"can1357/oh-my-pi","domain":"security","topic":"Security","language":"TypeScript","updated":"2026-10-31","comments":9,"stars":37317,"raw":"https://awesomereviewers.com/raw/oh-my-pi-enforce-security-checks-everywhere.md"},{"slug":"cal.com-authorization-hierarchy-verification","title":"Authorization hierarchy verification","description":"Always implement comprehensive authorization checks that verify user permissions at the appropriate hierarchy level (individual → team → organization) before allowing operations. Consider multiple permission levels and provide proper fallbacks when users have different roles across teams or organizations.","repository":"calcom/cal.com","domain":"app-frameworks","topic":"Security","language":"TypeScript","updated":"2025-07-16","comments":9,"stars":37732,"raw":"https://awesomereviewers.com/raw/cal.com-authorization-hierarchy-verification.md"},{"slug":"cline-redact-secrets-in-diagnostics","title":"Redact secrets in diagnostics","description":"Never let credentials, tokens, or other sensitive values reach logs, error messages, or telemetry, even indirectly. URLs commonly carry secrets in userinfo (`user:pass@host`), query strings (OAuth codes, state, device codes), or even path segments (some MCP servers embed API keys there); when logging a URL, reduce it to `origin` (or `protocol` for...","repository":"cline/cline","domain":"ai-agents","topic":"Security","language":"TypeScript","updated":"2026-10-23","comments":8,"stars":70886,"raw":"https://awesomereviewers.com/raw/cline-redact-secrets-in-diagnostics.md"},{"slug":"omniroute-harden-client-url-fetches","title":"Harden Client URL Fetches","description":"Any client-controlled URL (including OpenAI image_url) must be treated as SSRF-/DoS-/parsing-risk input and validated *at every transition* before connecting.","repository":"diegosouzapw/OmniRoute","domain":"llm-infra","topic":"Security","language":"TypeScript","updated":"2026-06-03","comments":8,"stars":33162,"raw":"https://awesomereviewers.com/raw/omniroute-harden-client-url-fetches.md"}],"prompt_count":102},{"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":{"id":"tsc","method":"static_analysis","kind":"type-checking","languages":["typescript"],"upstream":"https://github.com/microsoft/TypeScript","docs":null,"autofix":false,"exit_codes":{},"repos":86,"share":92,"commands":["tsc --noEmit","tsc","tsc -b"],"run":"tsc --noEmit","via":null,"triggers":["pre_commit","ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"facebook/react","slug":"facebook-react"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"}]},"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":"vitest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/vitest-dev/vitest","docs":null,"autofix":false,"exit_codes":{},"repos":68,"share":73,"commands":["vitest run","vitest","vitest run --coverage"],"run":"vitest run","via":null,"triggers":["ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"electron/electron","slug":"electron-electron"}]},"alternatives":[{"id":"jest","repos":26,"share":28},{"id":"node-test","repos":25,"share":27},{"id":"mocha","repos":7,"share":8}],"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":{"id":"fast-check","method":"testing","kind":"property-tests","languages":["javascript","typescript"],"upstream":"https://github.com/dubzzz/fast-check","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":3,"commands":[],"run":null,"via":null,"triggers":[],"examples":[{"repository":"nuxt/nuxt","slug":"nuxt-nuxt"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"langfuse/langfuse","slug":"langfuse-langfuse"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"qwen-code-fail-safe-error-handling","title":"Fail-safe Error Handling","description":"Use fail-safe error handling everywhere in long-running / retrying flows: cleanup must be guaranteed, state/cursors must follow the intended retry semantics, and errors must remain diagnosable.","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Error Handling","language":"TypeScript","updated":"2026-07-28","comments":24,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-fail-safe-error-handling.md"},{"slug":"cline-explicit-failure-handling","title":"Explicit failure handling","description":"Every operation that can fail must have its failure path treated as deliberately as its success path. Three recurring gaps keep surfacing in review: 1. **Unhandled rejections/exceptions from \"success\" callbacks.** A `.then(onSuccess, onError)` only catches a rejection of the original promise, not a throw inside `onSuccess` itself; a bare `.then(fn)` on a...","repository":"cline/cline","domain":"ai-agents","topic":"Error Handling","language":"TypeScript","updated":"2026-10-24","comments":20,"stars":70886,"raw":"https://awesomereviewers.com/raw/cline-explicit-failure-handling.md"},{"slug":"n8n-guard-against-null","title":"Guard against null","description":"Always use optional chaining (`?.`) and nullish coalescing (`??`) operators when accessing potentially undefined or null properties. These patterns prevent TypeErrors when accessing nested properties and provide appropriate defaults only when values are null or undefined.","repository":"n8n-io/n8n","domain":"ai-agents","topic":"Null Handling","language":"TypeScript","updated":"2025-07-23","comments":14,"stars":122978,"raw":"https://awesomereviewers.com/raw/n8n-guard-against-null.md"},{"slug":"inbox-zero-handle-async-operation-errors","title":"Handle async operation errors","description":"Always wrap asynchronous operations in try-catch-finally blocks to prevent unhandled promise rejections and ensure proper cleanup. When errors occur, provide users with meaningful feedback while preserving application state.","repository":"elie222/inbox-zero","domain":"app-frameworks","topic":"Error Handling","language":"TSX","updated":"2025-07-08","comments":14,"stars":8267,"raw":"https://awesomereviewers.com/raw/inbox-zero-handle-async-operation-errors.md"},{"slug":"cline-explicit-error-handling","title":"Explicit Error Handling","description":"Adopt a standard that prevents misleading state, lost root causes, and unhandled async failures—especially in recovery/timeout paths. Rules: 1) Handle both rejection and exceptions in promise chains","repository":"CLINE/CLINE","domain":"ai-agents","topic":"Error Handling","language":"TypeScript","updated":"2026-10-24","comments":13,"stars":70837,"raw":"https://awesomereviewers.com/raw/cline-explicit-error-handling.md"},{"slug":"hono-optional-value-handling","title":"Optional value handling","description":"When a value can legitimately be `undefined`/`null` at runtime, make sure both the type signature and the code reflect that, and access it safely: - Type values correctly: if a function/property can return `undefined` (e.g. a missing route match, a header lookup, a route param), its type must include `| undefined` (or `| null`) rather than being asserted...","repository":"honojs/hono","domain":"app-frameworks","topic":"Null Handling","language":"TypeScript","updated":"2026-03-04","comments":13,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-optional-value-handling.md"},{"slug":"hono-explicit-nullish-value-handling","title":"Explicit nullish value handling","description":"When dealing with optional, nullable, or possibly-missing values, handle them explicitly and avoid redundant or misleading fallback patterns: - Don''t add unnecessary fallbacks when the language already handles the case safely. For example, spreading `undefined` is a no-op, so `{ ...args?.header }` is sufficient; `{ ...(args?.header ?? {}) }` is redundant.","repository":"HONOJS/HONO","domain":"app-frameworks","topic":"Null Handling","language":"TypeScript","updated":"2025-09-24","comments":13,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-explicit-nullish-value-handling.md"},{"slug":"cline-precise-async-error-coverage","title":"Precise async error coverage","description":"Ensure every async boundary fully captures *both* rejected promises and synchronous exceptions, and only performs recovery/retry when the error classification is precise and safe.","repository":"Cline/Cline","domain":"ai-agents","topic":"Error Handling","language":"TypeScript","updated":"2026-10-24","comments":12,"stars":70840,"raw":"https://awesomereviewers.com/raw/cline-precise-async-error-coverage.md"},{"slug":"hono-design-extensible-composable-option-apis","title":"Design extensible, composable option APIs","description":"When designing public APIs for middleware, helpers, and client functions, favor extensible, composable configuration over ad-hoc parameters that are hard to grow later:","repository":"honojs/Hono","domain":"app-frameworks","topic":"API","language":"TypeScript","updated":"2026-02-17","comments":12,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-design-extensible-composable-option-apis.md"},{"slug":"react-router-api-consistency-patterns","title":"API consistency patterns","description":"Ensure API design follows consistent patterns for naming, typing, and composition to improve developer experience and maintainability. **Key principles:**","repository":"remix-run/react-router","domain":"app-frameworks","topic":"API","language":"TypeScript","updated":"2025-07-28","comments":12,"stars":55270,"raw":"https://awesomereviewers.com/raw/react-router-api-consistency-patterns.md"},{"slug":"promptfoo-classify-and-isolate-failures","title":"Classify and isolate failures","description":"When a response, stream, or batch item can fail independently, explicitly validate it and keep that failure from corrupting unrelated results or silently becoming a \"pass.\" Two rules apply broadly:","repository":"promptfoo/promptfoo","domain":"ai-agents","topic":"Error Handling","language":"TypeScript","updated":"2026-10-28","comments":11,"stars":26565,"raw":"https://awesomereviewers.com/raw/promptfoo-classify-and-isolate-failures.md"},{"slug":"cline-fail-safe-error-routing","title":"Fail Safe Error Routing","description":"In error/timeout/recovery flows, ensure every failure (including exceptions thrown inside callbacks, stream write failures, and detached promises) is routed through the code path that owns reporting/retries/state invariants—never as an unhandled rejection/exception and never as a silent fallback.","repository":"CLINE/cline","domain":"ai-agents","topic":"Error Handling","language":"TypeScript","updated":"2026-10-23","comments":11,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-fail-safe-error-routing.md"}],"prompt_count":322},{"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":"vitest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/vitest-dev/vitest","docs":null,"autofix":false,"exit_codes":{},"repos":68,"share":73,"commands":["vitest run","vitest","vitest run --coverage"],"run":"vitest run","via":null,"triggers":["ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"electron/electron","slug":"electron-electron"}]},"alternatives":[{"id":"jest","repos":26,"share":28},{"id":"node-test","repos":25,"share":27},{"id":"mocha","repos":7,"share":8}],"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":46,"share":49,"commands":["analyze (language: 2)","analyze (include: 2)","analyze (include: 1)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"langgenius/dify","slug":"langgenius-dify"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"earendil-works/pi","slug":"earendil-works-pi"},{"repository":"microsoft/playwright","slug":"microsoft-playwright"},{"repository":"vitejs/vite","slug":"vitejs-vite"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"axum-code-review-interaction-patterns","title":"Axum Code Review: Interaction Patterns","description":"When implementing Axum-based applications, it is crucial to ensure that the interaction patterns between components are well-designed and clearly documented. This includes understanding edge cases, limitations, and best practices around state sharing, router nesting, and extractor ordering.","repository":"tokio-rs/axum","domain":"app-frameworks","topic":"Axum","language":"TypeScript","updated":"","comments":9,"stars":22100,"raw":"https://awesomereviewers.com/raw/axum-code-review-interaction-patterns.md"},{"slug":"axum-consistent-axum-usage-in-typescript","title":"Consistent axum Usage in TypeScript","description":"When implementing TypeScript code that uses the axum package, maintain consistent and idiomatic usage: always use lowercase 'axum', leverage axum's built-in types correctly, follow best practices for state and dependencies, ensure proper error handling, and use routing and middleware features effectively.","repository":"tokio-rs/axum","domain":"app-frameworks","topic":"Axum","language":"TypeScript","updated":"","comments":5,"stars":22100,"raw":"https://awesomereviewers.com/raw/axum-consistent-axum-usage-in-typescript.md"},{"slug":"fastify-adhere-to-fastify-coding-conventions","title":"Adhere to Fastify Coding Conventions","description":"When implementing code that uses the Fastify package in TypeScript, ensure the following conventions are followed: avoid contractions, use Oxford commas, and maintain consistent formatting.","repository":"fastify/fastify","domain":"app-frameworks","topic":"Fastify","language":"TypeScript","updated":"","comments":5,"stars":34000,"raw":"https://awesomereviewers.com/raw/fastify-adhere-to-fastify-coding-conventions.md"},{"slug":"fastify-explicit-configuration-usage-in-fastify","title":"Explicit Configuration Usage in Fastify","description":"When using the Fastify framework in TypeScript, ensure that all configuration options are explicitly declared and properly documented. This includes clearly defining all required configuration parameters, explicitly specifying any configuration constraints or mutually exclusive options, and providing comprehensive examples.","repository":"fastify/fastify","domain":"app-frameworks","topic":"Fastify","language":"TypeScript","updated":"","comments":5,"stars":34000,"raw":"https://awesomereviewers.com/raw/fastify-explicit-configuration-usage-in-fastify.md"},{"slug":"fastify-properly-handle-errors-in-fastify-applications","title":"Properly Handle Errors in Fastify Applications","description":"When implementing error handling in Fastify applications, it is important to always throw instances of the Error class rather than primitive values or non-Error objects. This ensures that errors are properly propagated through the Fastify error handling chain.","repository":"fastify/fastify","domain":"app-frameworks","topic":"Fastify","language":"TypeScript","updated":"","comments":5,"stars":34000,"raw":"https://awesomereviewers.com/raw/fastify-properly-handle-errors-in-fastify-applications.md"},{"slug":"fastify-proper-handling-of-promises-in-fastify-implementations","title":"Proper Handling of Promises in Fastify Implementations","description":"When implementing Fastify applications in TypeScript, it is important to follow consistent patterns for handling promises and respecting the framework's specific constraints. Avoid mixing async/await with callback styles, especially when registering routes, plugins, or parsers.","repository":"fastify/fastify","domain":"app-frameworks","topic":"Fastify","language":"TypeScript","updated":"","comments":4,"stars":34000,"raw":"https://awesomereviewers.com/raw/fastify-proper-handling-of-promises-in-fastify-implementations.md"},{"slug":"nest-use-factory-providers","title":"Use factory providers","description":"Prefer `useFactory` over `useValue` for better performance in NestJS dependency injection, especially for large objects or complex configurations. Using `useValue` with large objects can significantly slow down application bootstrapping due to expensive module serialization.","repository":"nestjs/nest","domain":"app-frameworks","topic":"NestJS","language":"TypeScript","updated":"2023-11-17","comments":3,"stars":71767,"raw":"https://awesomereviewers.com/raw/nest-use-factory-providers.md"},{"slug":"fastify-consistent-fastify-integration-patterns","title":"Consistent Fastify Integration Patterns","description":"When implementing integrations and plugins using the Fastify framework, maintain consistent coding patterns and conventions: follow Fastify's recommended package naming conventions, ensure integrations provide clear and comprehensive documentation, use Fastify's built-in type definitions and decorators consistently, and include full RFC references when referencing external protocol standards.","repository":"fastify/fastify","domain":"app-frameworks","topic":"Fastify","language":"TypeScript","updated":"","comments":3,"stars":34000,"raw":"https://awesomereviewers.com/raw/fastify-consistent-fastify-integration-patterns.md"},{"slug":"cline-durable-idempotent-orchestration","title":"Durable, idempotent orchestration","description":"Multi-step orchestrated operations (git push + task creation, remote command execution, etc.) must tolerate process restarts, disconnects, and retries without producing duplicate side effects or hanging indefinitely. Avoid storing critical orchestration state only in ephemeral, process-local structures (e.g., in-memory WeakMaps in a sidecar); if a step can...","repository":"cline/cline","domain":"ai-agents","topic":"Temporal","language":"TypeScript","updated":"2026-10-22","comments":2,"stars":70886,"raw":"https://awesomereviewers.com/raw/cline-durable-idempotent-orchestration.md"},{"slug":"cal.com-centralize-workflow-scheduling","title":"Centralize workflow scheduling","description":"Avoid scattering workflow scheduling logic across multiple handlers. Instead, create dedicated service methods for different workflow contexts to improve maintainability and reduce duplication.","repository":"calcom/cal.com","domain":"app-frameworks","topic":"Temporal","language":"TypeScript","updated":"2025-08-25","comments":2,"stars":37732,"raw":"https://awesomereviewers.com/raw/cal.com-centralize-workflow-scheduling.md"},{"slug":"novu-avoid-optional-decorator","title":"avoid @Optional decorator","description":"Avoid using the @Optional decorator in NestJS dependency injection as it disables runtime DI validation during bootstrap. This can cause missing provider dependencies to go undetected during compilation, leading to runtime failures without clear error messages.","repository":"novuhq/novu","domain":"app-frameworks","topic":"NestJS","language":"TypeScript","updated":"2025-08-11","comments":2,"stars":37700,"raw":"https://awesomereviewers.com/raw/novu-avoid-optional-decorator.md"},{"slug":"workers-sdk-workflow-documentation-clarity","title":"workflow documentation clarity","description":"Ensure all workflow-related documentation, help text, and code comments use proper grammar and punctuation. Workflow systems involve complex orchestration, retries, and fault tolerance mechanisms that require clear, professional documentation for maintainability and developer understanding.","repository":"cloudflare/workers-sdk","domain":"cloud-infra","topic":"Temporal","language":"TypeScript","updated":"2025-06-02","comments":2,"stars":3379,"raw":"https://awesomereviewers.com/raw/workers-sdk-workflow-documentation-clarity.md"}],"prompt_count":17},{"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":{"id":"fast-check","method":"testing","kind":"property-tests","languages":["javascript","typescript"],"upstream":"https://github.com/dubzzz/fast-check","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":3,"commands":[],"run":null,"via":null,"triggers":[],"examples":[{"repository":"nuxt/nuxt","slug":"nuxt-nuxt"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"langfuse/langfuse","slug":"langfuse-langfuse"}]},"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":{"id":"stryker","method":"testing","kind":"mutation-testing","languages":["javascript","typescript"],"upstream":"https://github.com/stryker-mutator/stryker-js","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":3,"commands":["stryker run","stryker run --config-file stryker.disablebail.json --mutate $BATCH_MUTATE","stryker run --mutate $BATCH_MUTATE"],"run":"stryker run --config-file stryker.disablebail.json --mutate $BATCH_MUTATE","via":null,"triggers":["ci","local"],"examples":[{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"openai/codex-security","slug":"openai-codex-security"}]},"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":"cline-spec-aligned-parsing-algorithms","title":"Spec-Aligned Parsing Algorithms","description":"When implementing parsing/transform/estimation algorithms for structured inputs, prioritize **format-correct tokenization**, **stateful correctness**, and **complexity safety**.","repository":"ClInE/cLiNe","domain":"ai-agents","topic":"Algorithms","language":"TypeScript","updated":"2026-10-24","comments":9,"stars":70838,"raw":"https://awesomereviewers.com/raw/cline-spec-aligned-parsing-algorithms.md"},{"slug":"aidlc-workflows-deterministic-boundary-modeling","title":"Deterministic Boundary Modeling","description":"When an algorithm’s correctness depends on what “exactly” was bound/parsed/scanned, never rely on lossy representations (timestamps, ambiguous regex slices, quoted/escaped strings, overlapping recursion). Instead:","repository":"awslabs/aidlc-workflows","domain":"orchestration","topic":"Algorithms","language":"TypeScript","updated":"2026-08-04","comments":8,"stars":3849,"raw":"https://awesomereviewers.com/raw/aidlc-workflows-deterministic-boundary-modeling.md"},{"slug":"typescript-optimize-critical-loops","title":"Optimize critical loops","description":"When implementing algorithms with nested loops or recursive operations, carefully analyze the computational complexity and optimize the critical path. Pay attention to loop ordering, early termination conditions, and unnecessary recomputation.","repository":"microsoft/typescript","domain":"runtimes","topic":"Algorithms","language":"TypeScript","updated":"2025-02-05","comments":8,"stars":105378,"raw":"https://awesomereviewers.com/raw/typescript-optimize-critical-loops.md"},{"slug":"omniroute-idempotent-normalization-pipelines","title":"Idempotent normalization pipelines","description":"When code must normalize or classify structured data (messages, request bodies, model/provider selection, metrics), implement it as deterministic, *idempotent*, and *non-mutating* transformations.","repository":"diegosouzapw/OmniRoute","domain":"llm-infra","topic":"Algorithms","language":"TypeScript","updated":"2026-06-30","comments":7,"stars":33162,"raw":"https://awesomereviewers.com/raw/omniroute-idempotent-normalization-pipelines.md"},{"slug":"mermaid-prefer-grammar-over-regex","title":"Prefer Grammar Over Regex","description":"Use the language parser/grammar (e.g., Langium/Jison) for diagram syntax instead of hand-rolled regex parsing. Regex is allowed only for small, well-bounded token-level helpers when (a) it precisely matches the intended grammar slice (e.g., remove only *outer* quotes), (b) it doesn’t destructively change user content or semantics, and (c) it preserves...","repository":"mermaid-js/mermaid","domain":"devtools","topic":"Algorithms","language":"TypeScript","updated":"2026-03-17","comments":7,"stars":87952,"raw":"https://awesomereviewers.com/raw/mermaid-prefer-grammar-over-regex.md"},{"slug":"cline-complexity-safe-correctness","title":"Complexity-Safe Correctness","description":"When implementing algorithmic logic (parsing, path transforms, selection/slicing, or cost/estimate functions), treat correctness and runtime bounds as first-class requirements.","repository":"CLINE/CLINE","domain":"ai-agents","topic":"Algorithms","language":"TypeScript","updated":"2026-10-24","comments":6,"stars":70837,"raw":"https://awesomereviewers.com/raw/cline-complexity-safe-correctness.md"},{"slug":"cline-semantics-first-algorithm-rules","title":"Semantics-First Algorithm Rules","description":"When implementing non-trivial logic (token estimation, parsing, normalization, cap/policy decisions, diff/tree composition), first write down the exact semantics/invariants the algorithm must satisfy, then implement and test against “tricky shapes” that commonly break those semantics.","repository":"Cline/Cline","domain":"ai-agents","topic":"Algorithms","language":"TypeScript","updated":"2026-10-24","comments":6,"stars":70840,"raw":"https://awesomereviewers.com/raw/cline-semantics-first-algorithm-rules.md"},{"slug":"qwen-code-sorted-selection-safety","title":"Sorted Selection Safety","description":"When code decides “latest/first/anchor” behavior (events, schedule steps, URL/mention parsing), it must be deterministic by construction: sort inputs by the relevant timestamp/field before using positional selection (e.g., findLast), use dedup keys at the correct granularity to avoid permanent suppression, and make regex/parsers unambiguous with correct...","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Algorithms","language":"TypeScript","updated":"2026-07-28","comments":6,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-sorted-selection-safety.md"},{"slug":"oh-my-pi-iterative-cycle-safe-traversal","title":"Iterative, cycle-safe traversal","description":"When walking graph or tree structures whose depth or shape is attacker/user controlled (JSON-like payloads, recall graphs, nested message content), avoid naive recursive walks and naive cycle checks — both degrade from an engineering bug into an algorithmic complexity bug:","repository":"can1357/oh-my-pi","domain":"app-frameworks","topic":"Algorithms","language":"TypeScript","updated":"2026-10-31","comments":5,"stars":37317,"raw":"https://awesomereviewers.com/raw/oh-my-pi-iterative-cycle-safe-traversal.md"},{"slug":"promptfoo-ancestor-stack-cycle-detection","title":"Ancestor-stack cycle detection","description":"When writing recursive algorithms that walk graph-like or tree-like data (deep clone, serialization, search), distinguish \"this object is one of the current recursion's ancestors\" (a real cycle) from \"this object was visited somewhere else in the structure\" (a legitimate shared/non-cyclic reference). Using a single global `WeakSet`/`Set` of visited nodes...","repository":"promptfoo/promptfoo","domain":"ai-agents","topic":"Algorithms","language":"TypeScript","updated":"2026-10-14","comments":5,"stars":26565,"raw":"https://awesomereviewers.com/raw/promptfoo-ancestor-stack-cycle-detection.md"},{"slug":"cline-accurate-parsing-estimation","title":"Accurate Parsing Estimation","description":"When implementing algorithmic utilities (parsers, normalizers, token/complexity estimators), specify and enforce invariants, and test the edge cases that break naive implementations.","repository":"cline/CLINE","domain":"ai-agents","topic":"Algorithms","language":"TypeScript","updated":"2026-10-12","comments":5,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-accurate-parsing-estimation.md"},{"slug":"mono-avoid-unnecessary-computations","title":"avoid unnecessary computations","description":"Optimize algorithms by eliminating redundant work and intermediate data structures. Look for opportunities to use lazy evaluation, conditional execution, and more efficient operations.","repository":"rocicorp/mono","domain":"data-systems","topic":"Algorithms","language":"TypeScript","updated":"2025-08-01","comments":5,"stars":2091,"raw":"https://awesomereviewers.com/raw/mono-avoid-unnecessary-computations.md"}],"prompt_count":65},{"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":{"id":"fast-check","method":"testing","kind":"property-tests","languages":["javascript","typescript"],"upstream":"https://github.com/dubzzz/fast-check","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":3,"commands":[],"run":null,"via":null,"triggers":[],"examples":[{"repository":"nuxt/nuxt","slug":"nuxt-nuxt"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"langfuse/langfuse","slug":"langfuse-langfuse"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"oh-my-pi-race-safe-concurrent-state","title":"Race-safe concurrent state","description":"Code that spans multiple await points or acts on shared/long-lived state (sessions, locks, lifecycle refs, worktrees, caches) must never trust a snapshot taken before the suspension point, and must never assume a status flag alone stops concurrent work. Two concrete rules follow from the recurring bugs:","repository":"can1357/oh-my-pi","domain":"app-frameworks","topic":"Concurrency","language":"TypeScript","updated":"2026-10-31","comments":19,"stars":37317,"raw":"https://awesomereviewers.com/raw/oh-my-pi-race-safe-concurrent-state.md"},{"slug":"cline-revalidate-state-after-awaits","title":"Revalidate state after awaits","description":"Many races in this codebase come from code that reads shared mutable state (a session slot, a cached config, an in-flight \"current\" pointer, a pending promise resolver), then awaits something, and finally acts on a stale assumption that nothing changed in the meantime. Examples: a teardown writing a session''s terminal status after a replacement already took...","repository":"cline/cline","domain":"ai-agents","topic":"Concurrency","language":"TypeScript","updated":"2026-10-26","comments":15,"stars":70886,"raw":"https://awesomereviewers.com/raw/cline-revalidate-state-after-awaits.md"},{"slug":"cline-async-claims-and-generations","title":"Async Claims And Generations","description":"When an async flow “resolves” shared state (answers a question, updates UI/model state, applies attach/detach replies, forwards terminal input, writes checkpoint hashes, etc.), treat concurrency as a first-class contract:","repository":"Cline/Cline","domain":"ai-agents","topic":"Concurrency","language":"TypeScript","updated":"2026-10-24","comments":10,"stars":70840,"raw":"https://awesomereviewers.com/raw/cline-async-claims-and-generations.md"},{"slug":"promptfoo-propagate-cancellation-signals","title":"Propagate cancellation signals","description":"Many concurrency bugs stemmed from abort/cancellation signals not being threaded through every async call, or from async operations that could hang forever once a caller stopped waiting. When writing any multi-step async flow (provider calls, caches, delays, connection setup, streaming reads), treat the `AbortSignal`/cancellation token as a first-class...","repository":"promptfoo/promptfoo","domain":"ai-agents","topic":"Concurrency","language":"TypeScript","updated":"2026-10-18","comments":10,"stars":26565,"raw":"https://awesomereviewers.com/raw/promptfoo-propagate-cancellation-signals.md"},{"slug":"cline-async-race-ownership-rules","title":"Async race ownership rules","description":"When multiple async operations can overlap with replacement/teardown (UI unmount, session rebuild, polling vs actions, stop/dispose, in-flight RPCs), require explicit *ownership* and *lifecycle binding*:","repository":"CLINE/CLINE","domain":"ai-agents","topic":"Concurrency","language":"TypeScript","updated":"2026-10-24","comments":9,"stars":70837,"raw":"https://awesomereviewers.com/raw/cline-async-race-ownership-rules.md"},{"slug":"roo-code-protect-shared-state-access","title":"Protect shared state access","description":"Ensure thread-safe access to shared state by using appropriate synchronization mechanisms and atomic operations. Avoid race conditions by: 1. Using atomic operations or locks when modifying shared state","repository":"RooCodeInc/Roo-Code","domain":"ai-agents","topic":"Concurrency","language":"TypeScript","updated":"2025-07-21","comments":9,"stars":17288,"raw":"https://awesomereviewers.com/raw/roo-code-protect-shared-state-access.md"},{"slug":"cline-async-ownership-and-cleanup","title":"Async ownership and cleanup","description":"When async work outlives its creator, late completions/callbacks will corrupt the current state (wrong session, double-send, lost attachments, teardown overwritten). Standardize concurrency ownership and cleanup:","repository":"ClInE/cLiNe","domain":"ai-agents","topic":"Concurrency","language":"TypeScript","updated":"2026-10-24","comments":8,"stars":70838,"raw":"https://awesomereviewers.com/raw/cline-async-ownership-and-cleanup.md"},{"slug":"cline-synchronous-claim-and-gating","title":"Synchronous Claim and Gating","description":"In async/concurrent code, establish the operation’s ownership and validity *before* the first `await`, and ensure every continuation checks that it is still the active owner. Also make required ordering explicit (chain/await when later logic depends on it) and always clean up resources when you settle.","repository":"CLINE/cline","domain":"ai-agents","topic":"Concurrency","language":"TypeScript","updated":"2026-10-24","comments":8,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-synchronous-claim-and-gating.md"},{"slug":"gemini-cli-prevent-concurrent-state-races","title":"Prevent concurrent state races","description":"When multiple operations can execute concurrently (e.g., multiple keystrokes in the same React event loop, simultaneous async calls), ensure they don't operate on stale state or create race conditions. Use centralized state management patterns like reducers, proper synchronization flags, and avoid direct state manipulation from concurrent contexts.","repository":"google-gemini/gemini-cli","domain":"ai-agents","topic":"Concurrency","language":"TypeScript","updated":"2025-07-25","comments":8,"stars":65062,"raw":"https://awesomereviewers.com/raw/gemini-cli-prevent-concurrent-state-races.md"},{"slug":"cline-concurrency-safe-async-flows","title":"Concurrency-safe Async Flows","description":"When implementing async/concurrent behavior, prevent stale updates, duplicate side-effects, and resource leaks by following these rules: 1) Register wiring once; route through mutable state","repository":"cline/CLINE","domain":"ai-agents","topic":"Concurrency","language":"TypeScript","updated":"2026-10-24","comments":7,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-concurrency-safe-async-flows.md"},{"slug":"cline-guard-against-stale-async","title":"Guard Against Stale Async","description":"When async operations can overlap (polls, refreshes, reads with caches, sign-out/account switches, clipboard reads, timers), ensure only the latest/valid result can produce side effects.","repository":"CLINE/CLINE","domain":"ai-agents","topic":"Concurrency","language":"TSX","updated":"2026-10-24","comments":7,"stars":70837,"raw":"https://awesomereviewers.com/raw/cline-guard-against-stale-async.md"},{"slug":"cline-guard-async-state-updates","title":"Guard Async State Updates","description":"When multiple async operations (fetches, timers, clipboard reads, event streams) can overlap, ensure only the newest/authorized result can mutate shared state or UI.","repository":"CLINE/cline","domain":"ai-agents","topic":"Concurrency","language":"TSX","updated":"2026-10-21","comments":7,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-guard-async-state-updates.md"}],"prompt_count":61},{"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":"vitest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/vitest-dev/vitest","docs":null,"autofix":false,"exit_codes":{},"repos":68,"share":73,"commands":["vitest run","vitest","vitest run --coverage"],"run":"vitest run","via":null,"triggers":["ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"electron/electron","slug":"electron-electron"}]},"alternatives":[{"id":"jest","repos":26,"share":28},{"id":"node-test","repos":25,"share":27},{"id":"mocha","repos":7,"share":8}],"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":"hono-http-header-semantics","title":"HTTP header semantics","description":"When implementing networking middleware (proxy, compress, CORS, etc.), handle HTTP headers according to their exact RFC semantics rather than naive string checks, and be deliberate about merge/overwrite order.","repository":"honojs/Hono","domain":"cloud-infra","topic":"Networking","language":"TypeScript","updated":"2026-05-21","comments":8,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-http-header-semantics.md"},{"slug":"cline-stateful-network-dispatch","title":"Stateful Network Dispatch","description":"Network code should behave deterministically across retries/reconnects by (a) confirming exactly when data is accepted/“dispatched”, (b) preventing duplicate sends, and (c) bounding/aborting all network work.","repository":"Cline/Cline","domain":"ai-agents","topic":"Networking","language":"TypeScript","updated":"2026-10-23","comments":7,"stars":70840,"raw":"https://awesomereviewers.com/raw/cline-stateful-network-dispatch.md"},{"slug":"hono-http-header-spec-compliance","title":"HTTP header spec compliance","description":"When reading, writing, or forwarding HTTP headers, follow RFC semantics instead of naive string checks. For multi-value headers (Accept-Encoding, Vary, Connection, Cache-Control, etc.), parse them properly by splitting on commas, trimming whitespace, and handling parameters such as q-values and wildcards rather than relying on `.includes()` or substring...","repository":"honojs/hono","domain":"cloud-infra","topic":"Networking","language":"TypeScript","updated":"2026-05-21","comments":7,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-http-header-spec-compliance.md"},{"slug":"cline-reliable-network-retries","title":"Reliable Network Retries","description":"When implementing networked features (hub dispatch, reconnect/reattach, model/catalog fetches, and local-proxy HTTP), ensure retries are safe and bounded:","repository":"CLINE/cline","domain":"ai-agents","topic":"Networking","language":"TypeScript","updated":"2026-10-23","comments":6,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-reliable-network-retries.md"},{"slug":"playwright-proxy-configuration-precedence","title":"proxy configuration precedence","description":"Ensure proxy configuration follows proper precedence hierarchy and handles different proxy types correctly. User-specified proxy settings should always take priority over environment variables, similar to how browsers handle proxy configuration.","repository":"microsoft/playwright","domain":"devtools","topic":"Networking","language":"TypeScript","updated":"2025-07-29","comments":6,"stars":76113,"raw":"https://awesomereviewers.com/raw/playwright-proxy-configuration-precedence.md"},{"slug":"nest-follow-protocol-standards","title":"Follow protocol standards","description":"When implementing networking features, strictly adhere to protocol specifications and standards to ensure proper interoperability. This applies to HTTP headers, status codes, and protocol-specific connection handling.","repository":"nestjs/nest","domain":"app-frameworks","topic":"Networking","language":"TypeScript","updated":"2022-10-24","comments":6,"stars":71767,"raw":"https://awesomereviewers.com/raw/nest-follow-protocol-standards.md"},{"slug":"cline-network-retry-and-bounds","title":"Network retry and bounds","description":"Define networking behavior so failures don’t cause duplicate work, hangs, or incorrect routing. Apply these rules: 1) Track dispatch boundaries for retry/resend UX","repository":"CLINE/CLINE","domain":"ai-agents","topic":"Networking","language":"TypeScript","updated":"2026-10-23","comments":5,"stars":70837,"raw":"https://awesomereviewers.com/raw/cline-network-retry-and-bounds.md"},{"slug":"cline-network-request-lifecycle","title":"Network request lifecycle","description":"Any code that performs network I/O must define (1) routing correctness (proxy vs loopback/local), and (2) a bounded request lifecycle (AbortSignal/timeout) for *every* path, including fallbacks; and (3) consistent in-flight cancellation/grace semantics on disconnect.","repository":"cline/CLINE","domain":"ai-agents","topic":"Networking","language":"TypeScript","updated":"2026-10-22","comments":5,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-network-request-lifecycle.md"},{"slug":"bun-network-api-compatibility","title":"Network API compatibility","description":"When implementing networking APIs that mirror Node.js functionality, ensure both behavior and error patterns match Node.js exactly. This is critical for maintaining compatibility with the Node.js ecosystem and ensuring that code works consistently across both environments.","repository":"oven-sh/bun","domain":"runtimes","topic":"Networking","language":"TypeScript","updated":"2025-05-28","comments":5,"stars":79093,"raw":"https://awesomereviewers.com/raw/bun-network-api-compatibility.md"},{"slug":"cline-proxy-and-timeout-discipline","title":"Proxy And Timeout Discipline","description":"When you customize networking (HTTP agents, proxy dispatchers, sandboxes, or long-running requests), follow these rules: 1) Preserve loopback/direct routing semantics","repository":"ClInE/cLiNe","domain":"ai-agents","topic":"Networking","language":"TypeScript","updated":"2026-10-22","comments":4,"stars":70838,"raw":"https://awesomereviewers.com/raw/cline-proxy-and-timeout-discipline.md"},{"slug":"workerd-http-protocol-compliance","title":"HTTP protocol compliance","description":"Ensure HTTP protocol implementations strictly follow RFC standards and handle edge cases correctly. This includes proper header parsing that respects quoted-string constructions, realistic port value assignments, and appropriate status code filtering.","repository":"cloudflare/workerd","domain":"cloud-infra","topic":"Networking","language":"TypeScript","updated":"2025-08-07","comments":4,"stars":6989,"raw":"https://awesomereviewers.com/raw/workerd-http-protocol-compliance.md"},{"slug":"gemini-cli-centralize-proxy-configuration","title":"Centralize proxy configuration","description":"Avoid duplicate proxy configuration across your application by establishing a single point of proxy setup and leveraging built-in proxy support where available. Multiple proxy configurations can lead to conflicts, inconsistent behavior, and maintenance overhead.","repository":"google-gemini/gemini-cli","domain":"ai-agents","topic":"Networking","language":"TypeScript","updated":"2025-07-17","comments":4,"stars":65062,"raw":"https://awesomereviewers.com/raw/gemini-cli-centralize-proxy-configuration.md"}],"prompt_count":34},{"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":41,"share":44,"commands":["playwright test","playwright test --ui","playwright test $(echo $FILES"],"run":"playwright test","via":null,"triggers":["ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"facebook/react","slug":"facebook-react"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"}]},"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":59,"share":63,"commands":["eslint .","eslint","eslint . --fix"],"run":"eslint .","via":null,"triggers":["pre_commit","ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"facebook/react","slug":"facebook-react"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"}]},"alternatives":[{"id":"biome","repos":21,"share":23}],"note":null}],"prompts":[{"slug":"n8n-component-naming-consistency","title":"Component naming consistency","description":"Ensure component usage in templates matches registered components. Vue components must be referenced in templates by either their kebab-case equivalent or by their exact registered name.","repository":"n8n-io/n8n","domain":"ai-agents","topic":"Vue","language":"TypeScript","updated":"2025-07-01","comments":12,"stars":122978,"raw":"https://awesomereviewers.com/raw/n8n-component-naming-consistency.md"},{"slug":"query-stable-lifecycle-correct-hooks","title":"Stable, lifecycle-correct hooks","description":"Ensure React hooks and query integrations remain correct across renders, SSR/hydration, and subscriptions. Rules: 1) Keep QueryClient stable in React components","repository":"tanstack/query","domain":"app-frameworks","topic":"React","language":"TypeScript","updated":"2026-04-10","comments":9,"stars":49380,"raw":"https://awesomereviewers.com/raw/query-stable-lifecycle-correct-hooks.md"},{"slug":"waveterm-manage-bindings-and-state","title":"Manage bindings and state","description":"Ensure components explicitly initialize reactive state, manage input/keybinding lifecycle, and decide whether children should subscribe to live atoms or use a stable snapshot.","repository":"wavetermdev/waveterm","domain":"devtools","topic":"React","language":"TSX","updated":"2025-10-21","comments":9,"stars":17328,"raw":"https://awesomereviewers.com/raw/waveterm-manage-bindings-and-state.md"},{"slug":"helicone-memoize-derived-state","title":"Memoize derived state","description":"Avoid using `useState` + `useEffect` to compute values that can be derived directly from existing props, state, or query results. Filtering, mapping, formatting, or any other pure transformation of existing data should be wrapped in `useMemo` (with the correct dependency array) rather than recomputed on every render or pushed into local state via an effect.","repository":"Helicone/helicone","domain":"app-frameworks","topic":"React","language":"TSX","updated":"2025-07-09","comments":9,"stars":6248,"raw":"https://awesomereviewers.com/raw/helicone-memoize-derived-state.md"},{"slug":"query-stable-react-rendering","title":"Stable React Rendering","description":"Write React components and tests so they don’t depend on React’s internal render/callback sequencing, and so Suspense boundaries capture the work that actually suspends.","repository":"tanstack/query","domain":"app-frameworks","topic":"React","language":"TSX","updated":"2025-10-14","comments":7,"stars":49380,"raw":"https://awesomereviewers.com/raw/query-stable-react-rendering.md"},{"slug":"ant-design-prevent-component-re-mounting","title":"Prevent component re-mounting","description":"Maintain stable component structure to prevent unnecessary re-mounting and unmounting of child components. Conditional rendering that changes component tree structure can cause child components to lose state and trigger mount/unmount cycles, breaking components with mount effects.","repository":"ant-design/ant-design","domain":"app-frameworks","topic":"React","language":"TSX","updated":"2025-09-02","comments":7,"stars":95882,"raw":"https://awesomereviewers.com/raw/ant-design-prevent-component-re-mounting.md"},{"slug":"cline-visibility-safe-react-state","title":"Visibility-safe React state","description":"When building React UIs that can be hidden/shown (startup screens, side panels, modals, drawers, activity shells), design for **correct state + correct side effects** across transitions.","repository":"ClInE/cLiNe","domain":"ai-agents","topic":"React","language":"TSX","updated":"2026-10-21","comments":6,"stars":70838,"raw":"https://awesomereviewers.com/raw/cline-visibility-safe-react-state.md"},{"slug":"qwen-code-action-slot-invariants","title":"Action slot invariants","description":"When building React “action slot” containers (inline vs overflow menus, responsive headers, hold/click controls), enforce these invariants: 1) **Preserve host mount semantics**","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"React","language":"TSX","updated":"2026-07-28","comments":6,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-action-slot-invariants.md"},{"slug":"angular-leverage-existing-angular-patterns","title":"leverage existing Angular patterns","description":"Before implementing new functionality, check if Angular already provides a suitable utility, service, or pattern that can be reused. This promotes consistency across the codebase, reduces duplication, and follows established Angular conventions.","repository":"angular/angular","domain":"app-frameworks","topic":"Angular","language":"TypeScript","updated":"2025-08-08","comments":6,"stars":98611,"raw":"https://awesomereviewers.com/raw/angular-leverage-existing-angular-patterns.md"},{"slug":"langfuse-hook-and-state-correctness","title":"Hook and state correctness","description":"Ensure React hooks and state updates follow best practices to prevent subtle bugs: 1. **Call hooks unconditionally** at the top level of your component or custom hook - never inside conditionals, loops, or nested functions:","repository":"langfuse/langfuse","domain":"observability","topic":"React","language":"TSX","updated":"2025-06-03","comments":6,"stars":13574,"raw":"https://awesomereviewers.com/raw/langfuse-hook-and-state-correctness.md"},{"slug":"react-router-hook-dependencies-stability","title":"Hook dependencies stability","description":"Ensure hook dependencies are minimal, stable, and follow React''s rules to prevent unnecessary re-renders and maintain predictable behavior. This includes:","repository":"remix-run/react-router","domain":"app-frameworks","topic":"React","language":"TSX","updated":"2025-05-01","comments":6,"stars":55270,"raw":"https://awesomereviewers.com/raw/react-router-hook-dependencies-stability.md"},{"slug":"query-respect-angular-di","title":"Respect Angular DI","description":"When integrating with Angular’s DI and reactivity, follow these rules: - **Dependency access:** For hook-like utilities, accept an optional **Injector** (or injector-derived path) so the function can be executed both **inside and outside** the normal injection context. Use Angular’s injection-context/assert-injector helpers to resolve dependencies from the...","repository":"tanstack/query","domain":"app-frameworks","topic":"Angular","language":"TypeScript","updated":"2025-04-13","comments":6,"stars":49380,"raw":"https://awesomereviewers.com/raw/query-respect-angular-di.md"}],"prompt_count":82},{"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":"vitest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/vitest-dev/vitest","docs":null,"autofix":false,"exit_codes":{},"repos":68,"share":73,"commands":["vitest run","vitest","vitest run --coverage"],"run":"vitest run","via":null,"triggers":["ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"electron/electron","slug":"electron-electron"}]},"alternatives":[{"id":"jest","repos":26,"share":28},{"id":"node-test","repos":25,"share":27},{"id":"mocha","repos":7,"share":8}],"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":46,"share":49,"commands":["analyze (language: 2)","analyze (include: 2)","analyze (include: 1)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"langgenius/dify","slug":"langgenius-dify"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"earendil-works/pi","slug":"earendil-works-pi"},{"repository":"microsoft/playwright","slug":"microsoft-playwright"},{"repository":"vitejs/vite","slug":"vitejs-vite"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"oh-my-pi-complete-cache-invalidation-keys","title":"Complete cache invalidation keys","description":"A cache is only as correct as its invalidation logic, and the recurring failure mode across these reviews is a cache key or dirtiness check that omits some dimension the cached value actually depends on. Examples seen repeatedly: a history-search cache keyed on directory identity but not on rows written by another connection; an embedding cache invalidated...","repository":"can1357/oh-my-pi","domain":"app-frameworks","topic":"Caching","language":"TypeScript","updated":"2026-10-31","comments":21,"stars":37317,"raw":"https://awesomereviewers.com/raw/oh-my-pi-complete-cache-invalidation-keys.md"},{"slug":"drizzle-orm-database-type-consistency","title":"Database type consistency","description":"Ensure database-specific types, imports, and serialization are used consistently throughout the codebase. This prevents runtime errors, improves type safety, and maintains proper data handling across different database systems.","repository":"drizzle-team/drizzle-orm","domain":"data-systems","topic":"Database","language":"TypeScript","updated":"2024-12-16","comments":15,"stars":29461,"raw":"https://awesomereviewers.com/raw/drizzle-orm-database-type-consistency.md"},{"slug":"mono-type-safe-database-operations","title":"type-safe database operations","description":"Implement proper type conversion and validation when working with different database systems to prevent runtime errors and data corruption. This is critical when handling data types that behave differently across database engines.","repository":"rocicorp/mono","domain":"data-systems","topic":"Database","language":"TypeScript","updated":"2025-07-09","comments":10,"stars":2091,"raw":"https://awesomereviewers.com/raw/mono-type-safe-database-operations.md"},{"slug":"cline-cache-correctness-retries","title":"Cache correctness & retries","description":"Adopt a single standard for all caches (data, discovery, warm-ups, and load-result caches): 1) Key by the real identity (include all dependencies) - Build cache keys from the complete set of inputs that affect the result (e.g., tool name + arguments; account scope + workspace root; plugin path + execution mode + registry status).","repository":"CLINE/CLINE","domain":"ai-agents","topic":"Caching","language":"TypeScript","updated":"2026-10-19","comments":9,"stars":70837,"raw":"https://awesomereviewers.com/raw/cline-cache-correctness-retries.md"},{"slug":"cline-dependency-aware-caching","title":"Dependency-Aware Caching","description":"Caching is safe only when you (1) key by the full dependency set, (2) gate reads by a revision/stale check, (3) invalidate only the correct scope, and (4) handle async failures with rollback + bounded retries.","repository":"ClInE/cLiNe","domain":"ai-agents","topic":"Caching","language":"TypeScript","updated":"2026-10-19","comments":9,"stars":70838,"raw":"https://awesomereviewers.com/raw/cline-dependency-aware-caching.md"},{"slug":"inbox-zero-use-transactions-for-consistency","title":"Use transactions for consistency","description":"Always wrap multiple related database operations in a transaction to ensure data consistency and prevent partial updates. This applies to operations across different tables or when coordinating database updates with external services (e.g., Redis cache).","repository":"elie222/inbox-zero","domain":"app-frameworks","topic":"Database","language":"TypeScript","updated":"2025-06-17","comments":9,"stars":8267,"raw":"https://awesomereviewers.com/raw/inbox-zero-use-transactions-for-consistency.md"},{"slug":"promptfoo-cache-key-completeness","title":"Cache key completeness","description":"A cache (or in-flight request dedupe) key must encode every parameter that can change the response, and an entry must only be reused when it truly represents the same logical request. Before adding or reusing a key, enumerate all inputs that affect behavior — timeouts/deadlines, credentials or profile identity, session/trace/memory IDs, retrieval filters,...","repository":"promptfoo/promptfoo","domain":"ai-agents","topic":"Caching","language":"TypeScript","updated":"2026-10-28","comments":8,"stars":26565,"raw":"https://awesomereviewers.com/raw/promptfoo-cache-key-completeness.md"},{"slug":"vscode-cache-correctness-rules","title":"Cache correctness rules","description":"Use this checklist whenever you add or change caching: 1) Define dependencies: List every input/state that can change the correctness of the cached value (e.g., category+storage, account+marketplace URL, connection metered-state, ignoreCase spelling, DOM state).","repository":"microsoft/VSCode","domain":"devtools","topic":"Caching","language":"TypeScript","updated":"2026-10-23","comments":8,"stars":194303,"raw":"https://awesomereviewers.com/raw/vscode-cache-correctness-rules.md"},{"slug":"cline-cache-with-revisions","title":"Cache with Revisions","description":"Cache only what you can prove is still valid. **Standards** 1. **Key by semantic inputs, not just “request type”**: include all parameters that affect the result (e.g., pinned read key must include tool + arguments; cache lookup key must include account scope + workspace root + repo+branch).","repository":"CLINE/cline","domain":"ai-agents","topic":"Caching","language":"TypeScript","updated":"2026-10-19","comments":8,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-cache-with-revisions.md"},{"slug":"cline-correct-keyed-caches","title":"Correct Keyed Caches","description":"Cache only when you can prove the cached value still matches the current “identity” of the request/state, and always have a bounded strategy for refresh/retry.","repository":"cline/CLINE","domain":"ai-agents","topic":"Caching","language":"TypeScript","updated":"2026-10-19","comments":8,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-correct-keyed-caches.md"},{"slug":"cline-versioned-cache-validity","title":"Versioned cache validity","description":"Cache entries must be tied to a *versioned identity* of the data and only served while that identity is still valid; refresh/retry must be deterministic and bounded.","repository":"Cline/Cline","domain":"ai-agents","topic":"Caching","language":"TypeScript","updated":"2026-10-19","comments":8,"stars":70840,"raw":"https://awesomereviewers.com/raw/cline-versioned-cache-validity.md"},{"slug":"qwen-code-correct-dedup-cache-keys","title":"Correct Dedup Cache Keys","description":"When implementing cursor-based dedup/caching for event dispatch, ensure the dedup “key space” matches the real uniqueness of what you’re trying to prevent:","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Caching","language":"TypeScript","updated":"2026-07-28","comments":8,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-correct-dedup-cache-keys.md"}],"prompt_count":50},{"slug":"performance","title":"Hot paths and performance","topics":["Performance Optimization"],"checks":[],"prompts":[{"slug":"vscode-bound-hot-path-work","title":"Bound Hot-Path Work","description":"When code runs on hot UI paths (keystrokes, popup open, navigation) or retains state for long-lived sessions, enforce **bounded work** and **targeted updates**.","repository":"microsoft/VSCode","domain":"devtools","topic":"Performance Optimization","language":"TypeScript","updated":"2026-09-10","comments":10,"stars":194303,"raw":"https://awesomereviewers.com/raw/vscode-bound-hot-path-work.md"},{"slug":"qwen-code-bound-hot-loop-work","title":"Bound Hot-Loop Work","description":"Default to explicit resource budgets and ensure they’re actually enforced. Apply these rules in code review: 1) **Bound inputs and remote pagination**","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Performance Optimization","language":"TypeScript","updated":"2026-07-28","comments":10,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-bound-hot-loop-work.md"},{"slug":"hono-benchmark-driven-hot-path-optimization","title":"Benchmark-driven hot-path optimization","description":"For code that executes on every request or in other hot paths (router matching, context/response creation, param decoding, JSX stringification, etc.), prioritize measured performance over assumed performance, and avoid redundant work.","repository":"honojs/Hono","domain":"app-frameworks","topic":"Performance Optimization","language":"TypeScript","updated":"2026-02-19","comments":9,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-benchmark-driven-hot-path-optimization.md"},{"slug":"hono-benchmark-hot-path-optimizations","title":"Benchmark hot-path optimizations","description":"For code on frequently executed paths (request handling, routing, serialization, middleware), base optimization decisions on actual benchmarks rather than assumptions, and avoid introducing redundant work. Concretely:","repository":"HONOJS/HONO","domain":"app-frameworks","topic":"Performance Optimization","language":"TypeScript","updated":"2025-03-18","comments":9,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-benchmark-hot-path-optimizations.md"},{"slug":"qwen-code-hot-path-efficiency","title":"Hot Path Efficiency","description":"Default to “do the minimum possible work per hot-path update.” Apply these checks: 1) Early-exit before side effects - If a piece of async work is no longer relevant (stale session, unmounted view, toggled-away state), return before starting the network call/timer/observer.","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Performance Optimization","language":"TSX","updated":"2026-07-28","comments":8,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-hot-path-efficiency.md"},{"slug":"omniroute-efficient-hot-path-discipline","title":"Efficient hot-path discipline","description":"Adopt a performance-safety standard: prevent unbounded state growth in monitoring, and keep critical-path CPU/memory work linear and avoidable. Apply these rules:","repository":"diegosouzapw/OmniRoute","domain":"llm-infra","topic":"Performance Optimization","language":"TypeScript","updated":"2026-07-15","comments":8,"stars":33162,"raw":"https://awesomereviewers.com/raw/omniroute-efficient-hot-path-discipline.md"},{"slug":"zod-hot-path-performance-rules","title":"Hot-Path Performance Rules","description":"Default to the cheapest behavior: gate expensive work behind explicit options or conditions, and keep the parsing “fast path” strictly minimal. Practical rules:","repository":"colinhacks/zod","domain":"app-frameworks","topic":"Performance Optimization","language":"TypeScript","updated":"2025-12-29","comments":8,"stars":42628,"raw":"https://awesomereviewers.com/raw/zod-hot-path-performance-rules.md"},{"slug":"mermaid-prefer-fast-paths-and-caching","title":"Prefer fast-paths and caching","description":"When performance matters, structure code to avoid unnecessary work: (1) keep cheap fast-paths first for short-circuiting, (2) cache expensive global lookups (like config) instead of repeatedly calling them, (3) reuse costly parser/services/stateful objects, (4) lazy-load heavy dependencies only when required, and (5) remove redundant rendering/computation...","repository":"mermaid-js/mermaid","domain":"devtools","topic":"Performance Optimization","language":"TypeScript","updated":"2026-01-07","comments":7,"stars":87952,"raw":"https://awesomereviewers.com/raw/mermaid-prefer-fast-paths-and-caching.md"},{"slug":"langfuse-cache-expensive-operations","title":"Cache expensive operations","description":"Identify and cache results of computationally expensive or repetitive operations instead of recalculating them multiple times. This includes function calls, date object creation, data transformations, and resolved promises.","repository":"langfuse/langfuse","domain":"observability","topic":"Performance Optimization","language":"TypeScript","updated":"2025-07-01","comments":7,"stars":13574,"raw":"https://awesomereviewers.com/raw/langfuse-cache-expensive-operations.md"},{"slug":"cline-avoid-redundant-expensive-work","title":"Avoid redundant expensive work","description":"Expensive work (external process spawning, large downloads, clipboard round-trips, remote session hydration, heavy git queries) must not be duplicated accidentally. Prefer batching/streaming and ensure you fetch/compute once, then reuse the result for telemetry, success/failure, and downstream logic. Also ensure event listeners and background effects don’t...","repository":"CLINE/CLINE","domain":"ai-agents","topic":"Performance Optimization","language":"TypeScript","updated":"2026-10-24","comments":6,"stars":70837,"raw":"https://awesomereviewers.com/raw/cline-avoid-redundant-expensive-work.md"},{"slug":"cline-batch-and-cap-work","title":"Batch and Cap Work","description":"For performance-critical code, avoid unbounded or duplicated expensive work. Prefer (1) reuse of already-computed snapshots/results, (2) batching instead of per-item subprocess calls, and (3) strict size/time caps with streaming and early termination.","repository":"Cline/Cline","domain":"ai-agents","topic":"Performance Optimization","language":"TypeScript","updated":"2026-10-24","comments":6,"stars":70840,"raw":"https://awesomereviewers.com/raw/cline-batch-and-cap-work.md"},{"slug":"query-minimize-hot-path-work","title":"Minimize Hot-Path Work","description":"When working on performance-sensitive code (query observers, hydration, render-triggering state, hot utilities), ensure you only do the necessary work and no redundant allocations/wrappers, while also preventing leaks.","repository":"tanstack/query","domain":"app-frameworks","topic":"Performance Optimization","language":"TypeScript","updated":"2026-04-26","comments":6,"stars":49380,"raw":"https://awesomereviewers.com/raw/query-minimize-hot-path-work.md"}],"prompt_count":70},{"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":"vitest","method":"testing","kind":"unit-tests","languages":["javascript","typescript"],"upstream":"https://github.com/vitest-dev/vitest","docs":null,"autofix":false,"exit_codes":{},"repos":68,"share":73,"commands":["vitest run","vitest","vitest run --coverage"],"run":"vitest run","via":null,"triggers":["ci","local"],"examples":[{"repository":"freeCodeCamp/freeCodeCamp","slug":"freecodecamp-freecodecamp"},{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"vercel/next.js","slug":"vercel-next.js"},{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"electron/electron","slug":"electron-electron"}]},"alternatives":[{"id":"jest","repos":26,"share":28},{"id":"node-test","repos":25,"share":27},{"id":"mocha","repos":7,"share":8}],"note":null}],"prompts":[{"slug":"lobe-chat-model-specification-accuracy","title":"Model specification accuracy","description":"Ensure AI model configurations accurately reflect official specifications and avoid hardcoded assumptions. Model parameters, token limits, capabilities, and naming should match vendor documentation rather than using generic defaults.","repository":"lobehub/lobe-chat","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2025-09-03","comments":12,"stars":65138,"raw":"https://awesomereviewers.com/raw/lobe-chat-model-specification-accuracy.md"},{"slug":"gemini-cli-ai-model-integration-patterns","title":"AI model integration patterns","description":"When integrating with AI models and LLMs, structure your code to properly handle model responses, separate concerns between layers, and implement robust failure detection mechanisms.","repository":"google-gemini/gemini-cli","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2025-07-18","comments":10,"stars":65062,"raw":"https://awesomereviewers.com/raw/gemini-cli-ai-model-integration-patterns.md"},{"slug":"stagehand-configurable-model-selection","title":"Configurable model selection","description":"Avoid hard-coding model names and provider-specific configurations throughout the codebase. Instead, implement flexible model selection patterns that support runtime configuration and consistent naming conventions across different AI providers.","repository":"browserbase/stagehand","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2025-04-24","comments":9,"stars":16443,"raw":"https://awesomereviewers.com/raw/stagehand-configurable-model-selection.md"},{"slug":"cline-model-limits-correctness","title":"Model Limits Correctness","description":"When integrating LLM providers, treat model capabilities and token limits as *schema-variant inputs* and enforce conservative, well-tested limit computation.","repository":"CLINE/cline","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2026-10-18","comments":6,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-model-limits-correctness.md"},{"slug":"promptfoo-evidence-complete-llm-grading","title":"Evidence-complete LLM grading","description":"Automated grading and evaluation logic for LLM outputs (redteam graders, eval scoring, result interchange) must base pass/fail decisions on all available evidence, not on a narrow signal that is convenient to check. Do not shortcut grading on an empty or trivial final response text when other signals (e.g. a trace summary showing an actual tool call, side...","repository":"promptfoo/promptfoo","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2026-10-11","comments":6,"stars":26565,"raw":"https://awesomereviewers.com/raw/promptfoo-evidence-complete-llm-grading.md"},{"slug":"nextchat-provider-specific-ai-handling","title":"Provider-specific AI handling","description":"Implement provider-specific logic when integrating different AI services, as each provider has unique requirements for message formatting, API endpoints, validation rules, and optimization strategies.","repository":"ChatGPTNextWeb/NextChat","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2025-08-08","comments":6,"stars":85721,"raw":"https://awesomereviewers.com/raw/nextchat-provider-specific-ai-handling.md"},{"slug":"n8n-standardize-llm-interface-parameters","title":"Standardize LLM interface parameters","description":"Maintain consistent parameter names and interface patterns across LLM implementations to improve maintainability and prevent integration issues. This includes:","repository":"n8n-io/n8n","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2025-07-18","comments":6,"stars":122978,"raw":"https://awesomereviewers.com/raw/n8n-standardize-llm-interface-parameters.md"},{"slug":"cline-model-aware-limits-and-reasoning","title":"Model-aware limits and reasoning","description":"When building AI/gateway/provider request logic, derive token budgets and reasoning payloads from the most accurate, provider-verified model metadata, and make defaulting/clamping semantics explicit.","repository":"cline/CLINE","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2026-10-18","comments":5,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-model-aware-limits-and-reasoning.md"},{"slug":"cline-normalize-reasoning-tokens","title":"Normalize reasoning tokens","description":"When integrating LLM providers/adapters, treat reasoning and token budgets as *provider-specific data shapes* and normalize them so downstream systems don’t double-count or receive invalid fields.","repository":"CLINE/CLINE","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2026-10-18","comments":5,"stars":70837,"raw":"https://awesomereviewers.com/raw/cline-normalize-reasoning-tokens.md"},{"slug":"cline-safe-llm-retry-recovery","title":"Safe LLM retry recovery","description":"When adding retry, continuation, or recovery logic around LLM streaming responses (stream errors, max-tokens truncation, degenerate/incomplete output, etc.), never silently discard work that already happened or is still pending delivery. Before issuing a retry: confirm the underlying error is actually marked retryable and back off appropriately rather than...","repository":"cline/cline","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2026-10-15","comments":5,"stars":70886,"raw":"https://awesomereviewers.com/raw/cline-safe-llm-retry-recovery.md"},{"slug":"helicone-centralize-model-specific-logic","title":"Centralize model-specific logic","description":"Avoid hardcoding model IDs, provider formats, or model-family checks directly in business logic; this creates duplicated knowledge that drifts out of sync and breaks when new models or providers are added. Prefer a centralized model registry or typed provider enum as the single source of truth for model IDs, response formats, and usage/pricing structures,...","repository":"Helicone/helicone","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2025-09-16","comments":5,"stars":6248,"raw":"https://awesomereviewers.com/raw/helicone-centralize-model-specific-logic.md"},{"slug":"continue-standardize-ai-model-interfaces","title":"Standardize AI model interfaces","description":"When implementing AI model integrations, maintain consistent interfaces and proper type definitions across different providers. This ensures compatibility, prevents runtime errors, and simplifies maintenance.","repository":"continuedev/continue","domain":"ai-agents","topic":"AI","language":"TypeScript","updated":"2025-06-24","comments":5,"stars":27819,"raw":"https://awesomereviewers.com/raw/continue-standardize-ai-model-interfaces.md"}],"prompt_count":28},{"slug":"observability","title":"Logging, metrics, tracing","topics":["Logging","Observability"],"checks":[],"prompts":[{"slug":"cline-telemetry-correctness-rules","title":"Telemetry correctness rules","description":"Adopt a single standard for all observability code: 1) Be policy-compliant and opt-out safe - Prefer typed helper functions for telemetry events (fixed event names and fixed payload shapes).","repository":"ClInE/cLiNe","domain":"ai-agents","topic":"Observability","language":"TypeScript","updated":"2026-10-21","comments":17,"stars":70838,"raw":"https://awesomereviewers.com/raw/cline-telemetry-correctness-rules.md"},{"slug":"cline-telemetry-correctness-contract","title":"Telemetry correctness contract","description":"Make observability code behave like a correctness-critical contract—not “best effort.” Apply these rules: - **Use typed, policy-compliant helpers** for telemetry event names and payload shapes (never free-form event strings). Keep payloads **stable** and **bounded**; never emit raw prompt/text when counts/sanitized fields suffice.","repository":"Cline/Cline","domain":"ai-agents","topic":"Observability","language":"TypeScript","updated":"2026-10-21","comments":16,"stars":70840,"raw":"https://awesomereviewers.com/raw/cline-telemetry-correctness-contract.md"},{"slug":"cline-telemetry-semantics-contract","title":"Telemetry Semantics Contract","description":"All observability/telemetry code must follow a consistent “semantics contract”: events must be emitted exactly once, with correct timing/attribution, and with strict schemas that respect opt-out and sanitization.","repository":"CLINE/CLINE","domain":"ai-agents","topic":"Observability","language":"TypeScript","updated":"2026-10-21","comments":15,"stars":70837,"raw":"https://awesomereviewers.com/raw/cline-telemetry-semantics-contract.md"},{"slug":"cline-telemetry-event-integrity","title":"Telemetry event integrity","description":"Treat telemetry as data that other code and dashboards depend on, not as scattered debug prints. Register every new event in the central catalog (e.g. `CORE_TELEMETRY_EVENTS`) with a typed `captureX` helper instead of calling `.capture()` with a raw string literal or ad-hoc properties — this keeps names consistent and is enforced by catalog-consistency...","repository":"cline/cline","domain":"ai-agents","topic":"Observability","language":"TypeScript","updated":"2026-10-16","comments":10,"stars":70886,"raw":"https://awesomereviewers.com/raw/cline-telemetry-event-integrity.md"},{"slug":"cline-telemetry-correctness-and-timing","title":"Telemetry correctness and timing","description":"Telemetry must be (a) policy-compliant, (b) causally correct in time, and (c) semantically accurate in meaning—so monitoring never turns “what happened” into “something close”.","repository":"cline/CLINE","domain":"ai-agents","topic":"Observability","language":"TypeScript","updated":"2026-10-16","comments":9,"stars":70839,"raw":"https://awesomereviewers.com/raw/cline-telemetry-correctness-and-timing.md"},{"slug":"n8n-use-structured-logging","title":"Use structured logging","description":"Always use the project's structured logger instead of direct console methods (`console.log`, `console.error`, etc.). This ensures consistent log formatting, proper level-based filtering, and integration with monitoring systems.","repository":"n8n-io/n8n","domain":"ai-agents","topic":"Logging","language":"TypeScript","updated":"2025-07-17","comments":8,"stars":122978,"raw":"https://awesomereviewers.com/raw/n8n-use-structured-logging.md"},{"slug":"prisma-manage-output-streams-carefully","title":"Manage output streams carefully","description":"Always consider the destination and lifecycle of output streams to prevent protocol interference, data loss, and unexpected behavior. Choose stdout for application output and stderr for debugging/logging. Avoid accidentally closing streams and be mindful of output pollution in protocol-sensitive contexts.","repository":"prisma/prisma","domain":"data-systems","topic":"Logging","language":"TypeScript","updated":"2025-07-03","comments":6,"stars":42967,"raw":"https://awesomereviewers.com/raw/prisma-manage-output-streams-carefully.md"},{"slug":"roo-code-use-structured-logging","title":"Use structured logging","description":"Replace direct `console.log`, `console.warn`, and `console.error` calls with a centralized logging abstraction. This ensures logs are consistently formatted, properly categorized by severity, and can be filtered or disabled in production environments.","repository":"RooCodeInc/Roo-Code","domain":"ai-agents","topic":"Logging","language":"TypeScript","updated":"2025-07-17","comments":5,"stars":17288,"raw":"https://awesomereviewers.com/raw/roo-code-use-structured-logging.md"},{"slug":"langfuse-use-structured-logging-framework","title":"Use structured logging framework","description":"Replace all console.* calls with an appropriate structured logging framework using proper log levels. This ensures consistent logging patterns, better log management, and appropriate handling of different severity levels.","repository":"langfuse/langfuse","domain":"observability","topic":"Logging","language":"TypeScript","updated":"2025-07-09","comments":5,"stars":13574,"raw":"https://awesomereviewers.com/raw/langfuse-use-structured-logging-framework.md"},{"slug":"firecrawl-use-structured-error-logging","title":"Use structured error logging","description":"Always use the proper logger instance instead of console methods, and format error logs with structured data objects rather than string concatenation. Console logging methods like `console.error` can lead to log flooding in production and lack proper log level controls. Structured logging with error objects enables better log parsing, monitoring, and...","repository":"firecrawl/firecrawl","domain":"ai-agents","topic":"Logging","language":"TypeScript","updated":"2025-06-09","comments":5,"stars":54535,"raw":"https://awesomereviewers.com/raw/firecrawl-use-structured-error-logging.md"},{"slug":"stagehand-use-structured-logging-consistently","title":"Use structured logging consistently","description":"Always use the established logging framework instead of console.log or ad-hoc logging approaches. This ensures consistent log formatting, proper log levels, and better log management across the application.","repository":"browserbase/stagehand","domain":"ai-agents","topic":"Logging","language":"TypeScript","updated":"2025-05-15","comments":5,"stars":16443,"raw":"https://awesomereviewers.com/raw/stagehand-use-structured-logging-consistently.md"},{"slug":"ai-verify-properties-before-logging","title":"Verify properties before logging","description":"When logging object properties, always verify that the property names exactly match the actual structure of the object being logged. Incorrect property names (like 'responses' instead of 'response') or non-existent properties will result in undefined values in logs, reducing their usefulness for debugging and troubleshooting.","repository":"vercel/ai","domain":"ai-agents","topic":"Logging","language":"TypeScript","updated":"2025-04-13","comments":5,"stars":15590,"raw":"https://awesomereviewers.com/raw/ai-verify-properties-before-logging.md"}],"prompt_count":31},{"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":4,"share":4,"commands":["pre-commit hook end-of-file-fixer","pre-commit hook check-merge-conflict","pre-commit hook trailing-whitespace"],"run":null,"via":"pre-commit hook end-of-file-fixer","triggers":["pre_commit"],"examples":[{"repository":"getsentry/sentry","slug":"getsentry-sentry"},{"repository":"apache/airflow","slug":"apache-airflow"},{"repository":"maximhq/bifrost","slug":"maximhq-bifrost"},{"repository":"Helicone/helicone","slug":"helicone-helicone"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"workers-sdk-configuration-validation-messages","title":"Configuration validation messages","description":"Ensure configuration validation provides clear, actionable error messages that guide users toward correct configuration. Validation should be comprehensive, checking not only types but also value ranges, logical consistency, and edge cases like undefined vs explicitly set values.","repository":"cloudflare/workers-sdk","domain":"cloud-infra","topic":"Configurations","language":"TypeScript","updated":"2025-08-27","comments":13,"stars":3379,"raw":"https://awesomereviewers.com/raw/workers-sdk-configuration-validation-messages.md"},{"slug":"nuxt-configuration-resolution-patterns","title":"configuration resolution patterns","description":"When defining configuration schemas, use consistent patterns for safe property access, async resolution, and default value handling. Always use optional chaining with fallback values for nested configuration properties, leverage `$resolve` for complex async configuration logic, and ensure proper backwards compatibility.","repository":"nuxt/nuxt","domain":"app-frameworks","topic":"Configurations","language":"TypeScript","updated":"2025-07-02","comments":10,"stars":57769,"raw":"https://awesomereviewers.com/raw/nuxt-configuration-resolution-patterns.md"},{"slug":"oh-my-pi-validate-and-scope-configuration-changes","title":"Validate and scope configuration changes","description":"Configuration values from settings, CLI flags, YAML, or environment variables are untrusted input and must be validated/normalized at the point of use, not just cast through a schema. Loosely-typed arrays or fields (e.g. a model-id list) can still receive non-string or malformed entries from `config set` or hand-edited YAML; guard every element with a...","repository":"can1357/oh-my-pi","domain":"cloud-infra","topic":"Configurations","language":"TypeScript","updated":"2026-10-31","comments":9,"stars":37317,"raw":"https://awesomereviewers.com/raw/oh-my-pi-validate-and-scope-configuration-changes.md"},{"slug":"nest-explicit-default-configurations","title":"Explicit default configurations","description":"Always provide explicit default values for configuration options to improve code readability and maintainability. Use helper methods consistently for default value management, and document defaults clearly.","repository":"nestjs/nest","domain":"app-frameworks","topic":"Configurations","language":"TypeScript","updated":"2023-12-04","comments":9,"stars":71767,"raw":"https://awesomereviewers.com/raw/nest-explicit-default-configurations.md"},{"slug":"cline-unify-config-resolution","title":"Unify config resolution","description":"When the same setting (a base URL, a git remote, a host name, an API-key check, a bind-fallback flag) is resolved in more than one place, each implementation tends to drift and the app ends up showing or using inconsistent values (e.g. the webview linking to production while the account service actually hit staging, or the manifest showing a different repo...","repository":"cline/cline","domain":"ai-agents","topic":"Configurations","language":"TypeScript","updated":"2026-10-24","comments":8,"stars":70886,"raw":"https://awesomereviewers.com/raw/cline-unify-config-resolution.md"},{"slug":"qwen-code-consistent-config-gates","title":"Consistent Config Gates","description":"When behavior is driven by config/flags (timeouts, scopes, feature gates, safe-mode), ensure every code path uses the same authoritative inputs and does not silently degrade.","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Configurations","language":"TypeScript","updated":"2026-07-29","comments":8,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-consistent-config-gates.md"},{"slug":"kilocode-conditional-configuration-management","title":"Conditional configuration management","description":"Ensure configurations are conditional, context-aware, and resilient. Use feature flags to control functionality availability rather than instructing systems to avoid certain features. Implement proper fallbacks for missing configuration values and support backward compatibility when introducing new config formats.","repository":"kilo-org/kilocode","domain":"ai-agents","topic":"Configurations","language":"TypeScript","updated":"2025-08-15","comments":8,"stars":7302,"raw":"https://awesomereviewers.com/raw/kilocode-conditional-configuration-management.md"},{"slug":"lobe-chat-environment-variable-access","title":"Environment variable access","description":"Use direct `process.env` access and standardized configuration management instead of custom environment variable wrappers. Avoid redundant abstraction layers when the framework or libraries already handle environment variable inference automatically.","repository":"lobehub/lobe-chat","domain":"ai-agents","topic":"Configurations","language":"TypeScript","updated":"2025-06-05","comments":8,"stars":65138,"raw":"https://awesomereviewers.com/raw/lobe-chat-environment-variable-access.md"},{"slug":"cline-consistent-config-resolution","title":"Consistent Config Resolution","description":"When decisions depend on environment/provider/backend/config, resolve them once using shared, centralized helpers, then pass the resolved value downstream. Avoid duplicated “mini re-resolvers” that can drift.","repository":"Cline/Cline","domain":"ai-agents","topic":"Configurations","language":"TypeScript","updated":"2026-10-22","comments":7,"stars":70840,"raw":"https://awesomereviewers.com/raw/cline-consistent-config-resolution.md"},{"slug":"promptfoo-configuration-precedence-rules","title":"Configuration precedence rules","description":"Whenever a setting can come from multiple sources (explicit per-call config, provider-level overrides, suite/global env, specific env vars, or built-in defaults), the precedence order must be explicit, documented, and verified end-to-end — never silently dropped or confused with a built-in default.","repository":"promptfoo/promptfoo","domain":"ai-agents","topic":"Configurations","language":"TypeScript","updated":"2026-10-20","comments":7,"stars":26565,"raw":"https://awesomereviewers.com/raw/promptfoo-configuration-precedence-rules.md"},{"slug":"roo-code-configure-with-care","title":"Configure with care","description":"Always validate configuration values before use, provide sensible defaults, and centralize constants in shared modules. When implementing configuration handling:","repository":"RooCodeInc/Roo-Code","domain":"ai-agents","topic":"Configurations","language":"TypeScript","updated":"2025-07-21","comments":7,"stars":17288,"raw":"https://awesomereviewers.com/raw/roo-code-configure-with-care.md"},{"slug":"inbox-zero-validate-environment-variables-strictly","title":"Validate environment variables strictly","description":"Enforce strict validation of environment variables using Zod schemas with explicit environment-specific rules. Required configurations should be mandatory in production while allowing flexibility in development/test environments.","repository":"elie222/inbox-zero","domain":"app-frameworks","topic":"Configurations","language":"TypeScript","updated":"2025-07-08","comments":7,"stars":8267,"raw":"https://awesomereviewers.com/raw/inbox-zero-validate-environment-variables-strictly.md"}],"prompt_count":119},{"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":"npm-audit","method":"supply_chain","kind":"dependency-audit","languages":["javascript","typescript"],"upstream":"https://github.com/npm/cli","docs":null,"autofix":false,"exit_codes":{},"repos":6,"share":6,"commands":["npm audit --audit-level=critical","npm audit --audit-level=high","npm audit --prefix runtime --omit=dev --audit-level=high"],"run":"npm audit signatures","via":null,"triggers":["ci","local"],"examples":[{"repository":"nousresearch/hermes-agent","slug":"nousresearch-hermes-agent"},{"repository":"earendil-works/pi","slug":"earendil-works-pi"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"promptfoo/promptfoo","slug":"promptfoo-promptfoo"},{"repository":"adonisjs/core","slug":"adonisjs-core"},{"repository":"openai/codex-security","slug":"openai-codex-security"}]},"alternatives":[{"id":"dependency-review","repos":5,"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":46,"share":49,"commands":["analyze (language: 2)","analyze (include: 2)","analyze (include: 1)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"langgenius/dify","slug":"langgenius-dify"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"earendil-works/pi","slug":"earendil-works-pi"},{"repository":"microsoft/playwright","slug":"microsoft-playwright"},{"repository":"vitejs/vite","slug":"vitejs-vite"}]},"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":{"id":"stryker","method":"testing","kind":"mutation-testing","languages":["javascript","typescript"],"upstream":"https://github.com/stryker-mutator/stryker-js","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":3,"commands":["stryker run","stryker run --config-file stryker.disablebail.json --mutate $BATCH_MUTATE","stryker run --mutate $BATCH_MUTATE"],"run":"stryker run --config-file stryker.disablebail.json --mutate $BATCH_MUTATE","via":null,"triggers":["ci","local"],"examples":[{"repository":"n8n-io/n8n","slug":"n8n-io-n8n"},{"repository":"diegosouzapw/OmniRoute","slug":"diegosouzapw-omniroute"},{"repository":"openai/codex-security","slug":"openai-codex-security"}]},"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":46,"share":49,"commands":["analyze (language: 2)","analyze (include: 2)","analyze (include: 1)"],"run":"analyze (language: 2)","via":null,"triggers":["ci"],"examples":[{"repository":"microsoft/vscode","slug":"microsoft-vscode"},{"repository":"langgenius/dify","slug":"langgenius-dify"},{"repository":"mermaid-js/mermaid","slug":"mermaid-js-mermaid"},{"repository":"earendil-works/pi","slug":"earendil-works-pi"},{"repository":"microsoft/playwright","slug":"microsoft-playwright"},{"repository":"vitejs/vite","slug":"vitejs-vite"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"qwen-code-test-critical-branches","title":"Test critical branches","description":"When code adds/changes behavior (UI logic, URL rewriting, state-merge rules, keyboard/pointer guards, or error-recovery flows), ensure tests cover (1) the behavior itself (not just indirectly), (2) the negative guard cases that prevent regressions, and (3) the full interaction path users trigger.","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Testing","language":"TSX","updated":"2026-07-29","comments":20,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-test-critical-branches.md"},{"slug":"oh-my-pi-assert-behavior-not-wiring","title":"Assert behavior, not wiring","description":"A test must fail when the behavior it claims to cover regresses, and pass only because that behavior holds — not because it restates configuration, echoes a value the test itself just set, or grep's implementation source. Before merging a test, ask \"would reverting the fix turn this red?\" and \"does my fake/stub enforce the same rules as the real...","repository":"can1357/oh-my-pi","domain":"app-frameworks","topic":"Testing","language":"TypeScript","updated":"2026-10-31","comments":15,"stars":37317,"raw":"https://awesomereviewers.com/raw/oh-my-pi-assert-behavior-not-wiring.md"},{"slug":"hono-meaningful-deterministic-tests","title":"Meaningful, deterministic tests","description":"Tests should verify real, intended behavior and must fail when that behavior is broken. Before adding a test, confirm it actually exercises the code path and would catch a regression — a test that passes even against the old/incorrect implementation provides no value. Assert on precise, meaningful values (actual header content, response body, instance...","repository":"honojs/hono","domain":"app-frameworks","topic":"Testing","language":"TypeScript","updated":"2026-05-26","comments":15,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-meaningful-deterministic-tests.md"},{"slug":"hono-write-focused-deterministic-tests","title":"Write focused, deterministic tests","description":"Keep the test suite lean and trustworthy by following these rules: 1. **Avoid redundancy.** Before adding a test, check whether the behavior is already covered elsewhere (e.g. in another test file or an existing case). Don''t add near-duplicate tests (e.g. many permutations of header-based auth) when one success and one failure case already prove the logic...","repository":"HONOJS/HONO","domain":"app-frameworks","topic":"Testing","language":"TypeScript","updated":"2026-05-26","comments":13,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-write-focused-deterministic-tests.md"},{"slug":"query-deterministic-test-assertions","title":"Deterministic Test Assertions","description":"For tests, prefer deterministic, intention-revealing assertions and keep runtime tests and type-only tests strictly separated. Apply: 1) Use the right matcher for the claim","repository":"tanstack/query","domain":"app-frameworks","topic":"Testing","language":"TSX","updated":"2025-04-13","comments":12,"stars":49380,"raw":"https://awesomereviewers.com/raw/query-deterministic-test-assertions.md"},{"slug":"hono-write-effective-deterministic-tests","title":"Write effective, deterministic tests","description":"Every test must genuinely validate the behavior it claims to cover, run deterministically, and avoid noise from redundant or stale cases. - **Verify the test actually fails without the fix.** Before adding a regression test, temporarily revert the fix and confirm the test fails. A test that passes on both old and new code gives false confidence (e.g....","repository":"honojs/Hono","domain":"app-frameworks","topic":"Testing","language":"TypeScript","updated":"2026-08-20","comments":10,"stars":32741,"raw":"https://awesomereviewers.com/raw/hono-write-effective-deterministic-tests.md"},{"slug":"query-contract-accurate-testing","title":"Contract-Accurate Testing","description":"Tests should assert the behavior contract precisely, include the missing coverage for changed code, and stay isolated/noisy-control friendly. Key rules:","repository":"tanstack/query","domain":"app-frameworks","topic":"Testing","language":"TypeScript","updated":"2026-03-25","comments":10,"stars":49380,"raw":"https://awesomereviewers.com/raw/query-contract-accurate-testing.md"},{"slug":"mermaid-precise-scenario-based-testing","title":"Precise Scenario-Based Testing","description":"When writing tests, ensure they (1) match the scenario name and input data, (2) exercise behavior through the appropriate layer (prefer public/high-level APIs so defaults/precedence are covered), (3) use the project’s DOM test helpers/fixtures and avoid unnecessary mocks/polyfills, and (4) assert specific outcomes (including exact error messages) rather...","repository":"mermaid-js/mermaid","domain":"devtools","topic":"Testing","language":"TypeScript","updated":"2026-01-08","comments":10,"stars":87952,"raw":"https://awesomereviewers.com/raw/mermaid-precise-scenario-based-testing.md"},{"slug":"angular-comprehensive-test-coverage","title":"comprehensive test coverage","description":"Ensure test suites provide comprehensive coverage by including edge cases, different input scenarios, and all code paths. Tests should cover not just the happy path, but also boundary conditions, error cases, and various input combinations.","repository":"angular/angular","domain":"app-frameworks","topic":"Testing","language":"TypeScript","updated":"2025-08-16","comments":9,"stars":98611,"raw":"https://awesomereviewers.com/raw/angular-comprehensive-test-coverage.md"},{"slug":"cline-verify-regression-test-efficacy","title":"Verify regression test efficacy","description":"A test written for a bug fix is only useful if it actually distinguishes broken behavior from fixed behavior. Before merging, confirm each regression test fails against the pre-fix code and passes against the fix — don't just assert it \"should\" catch the bug.","repository":"cline/cline","domain":"ai-agents","topic":"Testing","language":"TypeScript","updated":"2026-10-23","comments":8,"stars":70886,"raw":"https://awesomereviewers.com/raw/cline-verify-regression-test-efficacy.md"},{"slug":"vscode-deterministic-regression-tests","title":"Deterministic Regression Tests","description":"When fixing or adding behavior, update tests so they deterministically exercise the exact event/guard path and assert observable outcomes—never rely on “happy-path only” coverage.","repository":"microsoft/VSCode","domain":"devtools","topic":"Testing","language":"TypeScript","updated":"2026-10-16","comments":8,"stars":194303,"raw":"https://awesomereviewers.com/raw/vscode-deterministic-regression-tests.md"},{"slug":"zod-assert-meaningful-outcomes","title":"Assert meaningful outcomes","description":"When writing tests, validate the *actual user-visible behavior and structured error data*, not just a substring or a indirectly implied result. Make failures unambiguous (no swallow-pass patterns) and keep tests easy to debug.","repository":"colinhacks/zod","domain":"app-frameworks","topic":"Testing","language":"TypeScript","updated":"2025-11-03","comments":8,"stars":42628,"raw":"https://awesomereviewers.com/raw/zod-assert-meaningful-outcomes.md"}],"prompt_count":78},{"slug":"docs","title":"Documentation and comments","topics":["Documentation"],"checks":[{"kind":"docs-build","title":"Docs build","method":"static_analysis","method_slug":"static-analysis","catches":"Broken cross-references, links and markup in documentation.","tool":null,"alternatives":[],"note":null},{"kind":"spelling","title":"Spelling","method":"formatting","method_slug":"formatting","catches":"Typos in identifiers, comments and docs.","tool":{"id":"codespell","method":"formatting","kind":"spelling","languages":["*"],"upstream":"https://github.com/codespell-project/codespell","docs":null,"autofix":false,"exit_codes":{},"repos":3,"share":3,"commands":["uses codespell-project/actions-codespell","pre-commit hook codespell"],"run":null,"via":"GitHub Action codespell-project/actions-codespell","triggers":["pre_commit","ci"],"examples":[{"repository":"apache/airflow","slug":"apache-airflow"},{"repository":"openai/codex","slug":"openai-codex"},{"repository":"langfuse/langfuse","slug":"langfuse-langfuse"}]},"alternatives":[],"note":null}],"prompts":[{"slug":"roo-code-internationalize-all-text","title":"Internationalize all text","description":"All user-facing text must be wrapped with translation functions instead of using hardcoded English strings. This includes regular UI text, accessibility attributes (aria-label, title, alt), and screen reader announcements. Using translation keys creates a consistent, maintainable internationalization system and ensures the application is accessible to users...","repository":"RooCodeInc/Roo-Code","domain":"ai-agents","topic":"Documentation","language":"TSX","updated":"2025-07-22","comments":14,"stars":17288,"raw":"https://awesomereviewers.com/raw/roo-code-internationalize-all-text.md"},{"slug":"qwen-code-keep-docs-accurate","title":"Keep Docs Accurate","description":"Adopt a rule that comments/JSDoc/API docs must be both *correct* and *useful at the point of use*—never misleading, stale, or attached to the wrong symbol.","repository":"QwenLM/qwen-code","domain":"ai-agents","topic":"Documentation","language":"TypeScript","updated":"2026-07-29","comments":11,"stars":26407,"raw":"https://awesomereviewers.com/raw/qwen-code-keep-docs-accurate.md"},{"slug":"langfuse-sync-documentation-with-code","title":"Sync documentation with code","description":"Always ensure documentation and comments accurately reflect the actual code implementation. When modifying code, update all related documentation to maintain consistency. This applies to:","repository":"langfuse/langfuse","domain":"observability","topic":"Documentation","language":"TypeScript","updated":"2025-07-09","comments":9,"stars":13574,"raw":"https://awesomereviewers.com/raw/langfuse-sync-documentation-with-code.md"},{"slug":"typescript-document-function-behavior-completely","title":"Document function behavior completely","description":"Functions should be documented with comprehensive JSDoc comments that cover: 1. Purpose and behavior description 2. All parameters with their types and constraints","repository":"microsoft/typescript","domain":"runtimes","topic":"Documentation","language":"TypeScript","updated":"2025-07-23","comments":7,"stars":105378,"raw":"https://awesomereviewers.com/raw/typescript-document-function-behavior-completely.md"},{"slug":"roo-code-document-i18n-string-usage","title":"Document i18n string usage","description":"All user-facing strings must be documented with translation function usage to ensure proper internationalization support. This includes error messages, notifications, labels, and any text displayed to users.","repository":"RooCodeInc/Roo-Code","domain":"ai-agents","topic":"Documentation","language":"TypeScript","updated":"2025-07-21","comments":7,"stars":17288,"raw":"https://awesomereviewers.com/raw/roo-code-document-i18n-string-usage.md"},{"slug":"langchainjs-use-comprehensive-jsdoc","title":"Use comprehensive JSDoc","description":"Always use JSDoc format (`/** */`) instead of regular comments (`//`) for documenting classes, functions, and interfaces. Documentation should be comprehensive, including:","repository":"langchain-ai/langchainjs","domain":"ai-agents","topic":"Documentation","language":"TypeScript","updated":"2025-06-18","comments":7,"stars":15004,"raw":"https://awesomereviewers.com/raw/langchainjs-use-comprehensive-jsdoc.md"},{"slug":"cli-document-intent-and-reasoning","title":"Document intent and reasoning","description":"Add comments that explain the reasoning, intent, or context behind code decisions, especially for non-obvious logic, workarounds, or business requirements. Focus on the \"why\" rather than just the \"what\" to help future maintainers understand the decision-making process.","repository":"snyk/cli","domain":"security","topic":"Documentation","language":"TypeScript","updated":"2025-01-28","comments":7,"stars":5178,"raw":"https://awesomereviewers.com/raw/cli-document-intent-and-reasoning.md"},{"slug":"mermaid-use-supported-documentation-formats","title":"Use supported documentation formats","description":"When updating documentation, examples, or config-related code: 1) Follow the source of truth for generated artifacts - **Do** change the upstream schema/config file.","repository":"mermaid-js/mermaid","domain":"devtools","topic":"Documentation","language":"TypeScript","updated":"2025-12-17","comments":6,"stars":87952,"raw":"https://awesomereviewers.com/raw/mermaid-use-supported-documentation-formats.md"},{"slug":"gemini-cli-ensure-comprehensive-user-documentation","title":"Ensure comprehensive user documentation","description":"All user-facing features, APIs, and tools must have clear, comprehensive documentation that explains their purpose, limitations, and usage. Documentation should use terminology that users can understand, provide helpful guidance for common scenarios, and include warnings about potential issues.","repository":"google-gemini/gemini-cli","domain":"ai-agents","topic":"Documentation","language":"TypeScript","updated":"2025-07-23","comments":6,"stars":65062,"raw":"https://awesomereviewers.com/raw/gemini-cli-ensure-comprehensive-user-documentation.md"},{"slug":"workers-sdk-jsdoc-documentation-standards","title":"JSDoc documentation standards","description":"All public functions and complex code should have proper JSDoc documentation. Functions must include clear descriptions of their purpose, parameters, and return values. Ensure JSDoc comments are accurate, well-formatted, and kept up-to-date with code changes.","repository":"cloudflare/workers-sdk","domain":"cloud-infra","topic":"Documentation","language":"TypeScript","updated":"2025-08-28","comments":5,"stars":3379,"raw":"https://awesomereviewers.com/raw/workers-sdk-jsdoc-documentation-standards.md"},{"slug":"angular-add-explanatory-comments","title":"Add explanatory comments","description":"Code should include explanatory comments when the purpose, behavior, or context is not immediately clear from reading the code itself. This is especially important for:","repository":"angular/angular","domain":"app-frameworks","topic":"Documentation","language":"TypeScript","updated":"2025-08-26","comments":5,"stars":98611,"raw":"https://awesomereviewers.com/raw/angular-add-explanatory-comments.md"},{"slug":"router-maintain-comprehensive-documentation","title":"Maintain comprehensive documentation","description":"When making code changes, ensure all relevant documentation is updated comprehensively across different formats and locations. This includes: 1. **JSDoc comments** for functions, especially internal APIs that need usage context","repository":"TanStack/router","domain":"app-frameworks","topic":"Documentation","language":"TypeScript","updated":"2025-08-18","comments":5,"stars":11590,"raw":"https://awesomereviewers.com/raw/router-maintain-comprehensive-documentation.md"}],"prompt_count":42}]}
