Verifying JavaScript changes
Files: .js, .jsx, .mjs, .cjs. Derived from 22 scanned source repositories and 318 review prompts on https://awesomereviewers.com. Page: https://awesomereviewers.com/verify/javascript/
How to use this: run every check under Run on every change. Then, for each section under Add when the change touches that describes your diff, run its checks too. Checks catch what a tool can find; then apply the listed review prompts for what tools miss (fetch each prompt’s raw URL).
Usage is the share of scanned repositories in this language that run the tool. A missing tool means no scanned repository runs one the scanner recognises: fall back to the prompts.
Run on every change
- Formatting:
prettier (64% of repos). Command seen: prettier --write .. Autofixes. Exit codes: 0 everything formatted; 1 something was not formatted (–check); 2 prettier error. Docs: https://prettier.io/docs/cli#exit-codes
- Linting:
eslint (95% of repos). Command seen: eslint .. Autofixes. Exit codes: 0 no errors; 1 linting errors found; 2 configuration problem or internal error. Alternatives: biome (5%). Docs: https://eslint.org/docs/latest/use/command-line-interface#exit-codes
- Type checking — no tool detected in the sample. Catches: Wrong types, unhandled null or None, call signatures broken across modules.
- Unit and integration tests:
jest (32% of repos). Command seen: jest. Alternatives: vitest (32%), mocha (18%), node-test (14%). Docs: https://github.com/jestjs/jest
Review prompts (53 in total, most discussed first):
- Use descriptive semantic names — serverless/serverless, Naming Conventions
- prefer simple code patterns — sveltejs/svelte, Code Style
- refactor complex conditions — prettier/prettier, Code Style
- Respect lint and syntax conventions — Expressjs/Express, Code Style
- Incremental standard-style adoption — expressjs/Express, Code Style
- Consistent Style And Diffs — mermaid-js/mermaid, Code Style
- Use descriptive variable names — prettier/prettier, Naming Conventions
- prefer simple readable patterns — serverless/serverless, Code Style
- extract complex logic — facebook/react-native, Code Style
- Clear intention in names — expressjs/express, Naming Conventions
- Follow StandardJS when modifying — expressjs/express, Code Style
- Normalize Generated Output — bmad-code-org/bmad-method, Code Style
Add when the change touches
- Security scanning:
codeql (23% of repos). Runs via GitHub Action github/codeql-action/analyze. Alternatives: semgrep (5%). Docs: https://github.com/github/codeql
- Secret scanning — no tool detected in the sample. Catches: Credentials and tokens committed to the repository.
- Dependency audit:
dependency-review (14% of repos). Runs via GitHub Action actions/dependency-review-action. Alternatives: npm-audit (5%). Docs: https://github.com/actions/dependency-review-action
Review prompts (32 in total, most discussed first):
- Enforce trust boundaries — Decolua/9Router, Security
- Strict Input Validation — bmad-code-org/bmad-method, Security
- Guard trust boundaries — decolua/9router, Security
- Fail-Closed Security Hygiene — QwenLM/qwen-code, Security
- Validate untrusted input strictly — Expressjs/Express, Security
- Validate security-critical inputs — axios/axios, Security
- Validate untrusted external input — expressjs/Express, Security
- Sanitize untrusted input, fail closed — Decolua/9Router, Security
- Secure boundary enforcement — nousresearch/hermes-agent, Security
- Fail-Closed Credential Checks — diegosouzapw/OmniRoute, Security
- Sanitize user inputs — RooCodeInc/Roo-Code, Security
- Validate network request parameters — nodejs/node, Security
Public APIs, signatures, error paths, nullability
- Type checking — no tool detected in the sample. Catches: Wrong types, unhandled null or None, call signatures broken across modules.
- Unit and integration tests:
jest (32% of repos). Command seen: jest. Alternatives: vitest (32%), mocha (18%), node-test (14%). Docs: https://github.com/jestjs/jest
- Property-based tests — no tool detected in the sample. Catches: Edge-case inputs nobody wrote a test for; invariants over generated data.
Review prompts (70 in total, most discussed first):
- Preserve API compatibility and semantics — expressjs/Express, API
- Strict null checks — Expressjs/Express, Null Handling
- Propagate and clean up errors — Expressjs/Express, Error Handling
- Narrow catches, log context — bmad-code-org/bmad-method, Error Handling
- Preserve API compatibility — Expressjs/Express, API
- Explicit nullish checks — expressjs/Express, Null Handling
- use modern null-safe operators — sveltejs/svelte, Null Handling
- Propagate errors via pipeline — expressjs/Express, Error Handling
- Informative error messages — nodejs/node, Error Handling
- Enforce null safety patterns — expressjs/express, Null Handling
- Robust error propagation — QwenLM/qwen-code, Error Handling
- Public over internal APIs — nodejs/node, API
Service and framework code
- Unit and integration tests:
jest (32% of repos). Command seen: jest. Alternatives: vitest (32%), mocha (18%), node-test (14%). Docs: https://github.com/jestjs/jest
- Version and platform matrix:
ci-matrix (41% of repos). Command seen: analyze (language: 2). Docs: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
Review prompts (1 in total, most discussed first):
- Property-based tests — no tool detected in the sample. Catches: Edge-case inputs nobody wrote a test for; invariants over generated data.
- Fuzzing — no tool detected in the sample. Catches: Crashes, panics and hangs on malformed input, especially in parsers and decoders.
- Mutation testing — no tool detected in the sample. Catches: Tests that keep passing whatever the code does.
- Proofs and specifications — no tool detected in the sample. Catches: Design-level bugs in protocols and algorithms, checked against a specification.
Review prompts (10 in total, most discussed first):
- Correct Matching And Parsing — bmad-code-org/bmad-method, Algorithms
- prefer efficient algorithms — prettier/prettier, Algorithms
- avoid expensive operations — sveltejs/svelte, Algorithms
- Invariant-Preserving Graph Algorithms — mermaid-js/mermaid, Algorithms
- Validate boundaries and nesting — chalk/chalk, Algorithms
- Simplify parsing algorithms — facebook/react-native, Algorithms
- Use canonical invariants — freeCodeCamp/freeCodeCamp, Algorithms
- Verify algorithm correctness — denoland/deno, Algorithms
- Clear array operations — expressjs/express, Algorithms
- Reset algorithm state internally — facebook/yoga, Algorithms
Threads, async code, locks, shared state
- Concurrency model checking — no tool detected in the sample. Catches: Races and orderings that fail only under specific interleavings.
- Undefined-behaviour detection — no tool detected in the sample. Catches: Memory-safety and aliasing violations in unsafe code.
- Property-based tests — no tool detected in the sample. Catches: Edge-case inputs nobody wrote a test for; invariants over generated data.
Review prompts (12 in total, most discussed first):
- Race-free cancellation and liveness checks — can1357/oh-my-pi, Concurrency
- consistent async/await usage — serverless/serverless, Concurrency
- Concurrent operations completion management — fastify/fastify, Concurrency
- Await all promises — nodejs/node, Concurrency
- Simplify async patterns — cloudflare/workerd, Concurrency
- async cleanup safety — sveltejs/svelte, Concurrency
- Thenable detection and chaining — tj/commander.js, Concurrency
- Separate conditional paths — facebook/react, Concurrency
- Await Connection Drains — maximhq/bifrost, Concurrency
- Deterministic File Operations — bmad-code-org/bmad-method, Concurrency
- prefer async/await patterns — discourse/discourse, Concurrency
- Deterministic Async Lifecycle — tanstack/query, Concurrency
Network calls, retries, timeouts, protocols
- Unit and integration tests:
jest (32% of repos). Command seen: jest. Alternatives: vitest (32%), mocha (18%), node-test (14%). Docs: https://github.com/jestjs/jest
- Fuzzing — no tool detected in the sample. Catches: Crashes, panics and hangs on malformed input, especially in parsers and decoders.
Review prompts (15 in total, most discussed first):
- RFC-compliant HTTP semantics — Expressjs/Express, Networking
- RFC-compliant protocol handling — expressjs/Express, Networking
- Handle streams properly — expressjs/express, Networking
- Content integrity verification — aws/aws-sdk-js, Networking
- Proxy protocol handling — axios/axios, Networking
- Connection reuse safety — cloudflare/workerd, Networking
- Event-triggered network requests — mui/material-ui, Networking
- Control event propagation — discourse/discourse, Networking
- Test network performance — ant-design/ant-design, Networking
- Flexible network handling — appwrite/appwrite, Networking
- Safe proxy configuration — mastodon/mastodon, Networking
- Self-referential worker URLs — vitejs/vite, Networking
UI components and pages
- End-to-end browser tests:
playwright (18% of repos). Command seen: playwright test. Docs: https://github.com/microsoft/playwright
- Linting:
eslint (95% of repos). Command seen: eslint .. Autofixes. Exit codes: 0 no errors; 1 linting errors found; 2 configuration problem or internal error. Alternatives: biome (5%). Docs: https://eslint.org/docs/latest/use/command-line-interface#exit-codes
Review prompts (17 in total, most discussed first):
- Effective Cache Management in Next.js Applications — vercel/next.js, Next.js
- Secure Data Handling in Next.js Applications — vercel/next.js, Next.js
- Handling Dynamic Content in Next.js Components — vercel/next.js, Next.js
- Optimize Next.js Resource Utilization — vercel/next.js, Next.js
- Strict mode-proof hooks — mui/material-ui, React
- preserve component patterns — facebook/react-native, React
- Maintain Consistent Naming Conventions in Next.js Code — vercel/next.js, Next.js
- Proper Error Handling in Next.js API Routes — vercel/next.js, Next.js
- Proper Use of Suspense in Next.js Components — vercel/next.js, Next.js
- preserve user input focus — sveltejs/svelte, React
- Prefer Existence Checks in Next.js Components — vercel/next.js, Next.js
- Complete hook dependencies — facebook/react, React
Databases, migrations, caching
- Unit and integration tests:
jest (32% of repos). Command seen: jest. Alternatives: vitest (32%), mocha (18%), node-test (14%). Docs: https://github.com/jestjs/jest
- Version and platform matrix:
ci-matrix (41% of repos). Command seen: analyze (language: 2). Docs: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
Review prompts (3 in total, most discussed first):
- No tool-based check applies; rely on the prompts.
Review prompts (19 in total, most discussed first):
- Avoid hot-path overhead — expressjs/Express, Performance Optimization
- Hot-path efficiency — Expressjs/Express, Performance Optimization
- Benchmark before optimizing code — nodejs/node, Performance Optimization
- Measure performance impact — sveltejs/svelte, Performance Optimization
- Eliminate redundant operations — serverless/serverless, Performance Optimization
- Hoist invariant work — chalk/chalk, Performance Optimization
- Early returns prevent waste — facebook/react-native, Performance Optimization
- Bound unbounded external output — can1357/oh-my-pi, Performance Optimization
- Avoid render cycle allocations — mui/material-ui, Performance Optimization
- Measure performance impacts — prettier/prettier, Performance Optimization
- Optimize hot paths — expressjs/express, Performance Optimization
- Benchmark before choosing methods — fastify/fastify, Performance Optimization
Model, prompt and LLM code
- Unit and integration tests:
jest (32% of repos). Command seen: jest. Alternatives: vitest (32%), mocha (18%), node-test (14%). Docs: https://github.com/jestjs/jest
Review prompts (3 in total, most discussed first):
Logging, metrics, tracing
- No tool-based check applies; rely on the prompts.
Review prompts (5 in total, most discussed first):
CI workflows and configuration files
- CI workflow linting — no tool detected in the sample. Catches: Broken GitHub Actions syntax, script injection, over-broad token permissions.
- File hygiene:
pre-commit-hooks (5% of repos). Runs via pre-commit hook check-json. Autofixes. Docs: https://github.com/pre-commit/pre-commit-hooks
Review prompts (37 in total, most discussed first):
- Configuration validation and defaults — facebook/react-native, Configurations
- Explicit override correctness — bmad-code-org/bmad-method, Configurations
- Environment-driven config resolution — can1357/oh-my-pi, Configurations
- App settings management — expressjs/Express, Configurations
- Config-driven theming — mermaid-js/mermaid, Configurations
- validate configuration values — prettier/prettier, Configurations
- Structure configs for clarity — serverless/serverless, Configurations
- Use dynamic configuration access — discourse/discourse, Configurations
- Limit environment variable scope — nodejs/node, Configurations
- Simplify configuration setup — remix-run/react-router, Configurations
- Environment variable handling — cypress-io/cypress, Configurations
- Access settings properly — expressjs/express, Configurations
Dependencies and lockfiles
- Dependency audit:
dependency-review (14% of repos). Runs via GitHub Action actions/dependency-review-action. Alternatives: npm-audit (5%). Docs: https://github.com/actions/dependency-review-action
- Lockfile consistency — no tool detected in the sample. Catches: A lockfile that no longer matches its manifest.
- Version and platform matrix:
ci-matrix (41% of repos). Command seen: analyze (language: 2). Docs: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
The tests themselves
- Mutation testing — no tool detected in the sample. Catches: Tests that keep passing whatever the code does.
- Version and platform matrix:
ci-matrix (41% of repos). Command seen: analyze (language: 2). Docs: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
Review prompts (28 in total, most discussed first):
- Use runServerless utility — serverless/serverless, Testing
- Robust async test patterns — Expressjs/Express, Testing
- Use specific assertion methods — fastify/fastify, Testing
- Branch-Exact Test Coverage — QwenLM/qwen-code, Testing
- Test fidelity and assertions — Decolua/9Router, Testing
- comprehensive assertion testing — cloudflare/workerd, Testing
- Test real behavior clearly — decolua/9router, Testing
- Deterministic Testing Practices — mermaid-js/mermaid, Testing
- Safe async test assertions — expressjs/Express, Testing
- Clear, real-implementation test assertions — Decolua/9Router, Testing
- Behavior-focused test design — nodejs/node, Testing
- Ensure test completion — expressjs/express, Testing
- Docs build — no tool detected in the sample. Catches: Broken cross-references, links and markup in documentation.
- Spelling — no tool detected in the sample. Catches: Typos in identifiers, comments and docs.
Review prompts (13 in total, most discussed first):
- Document complex APIs — sveltejs/svelte, Documentation
- Document APIs thoroughly — aws/aws-sdk-js, Documentation
- Document with precise accuracy — nodejs/node, Documentation
- Add explanatory comments — prettier/prettier, Documentation
- Consistent JSDoc standards — fastify/fastify, Documentation
- Document implementation decisions — mui/material-ui, Documentation
- Meaningful documentation practices — facebook/react-native, Documentation
- I18n Translation Policy — QwenLM/qwen-code, Documentation
- Document API Changes — mermaid-js/mermaid, Documentation
- Document non-obvious code — cypress-io/cypress, Documentation
- Ensure documentation usability — vadimdemedes/ink, Documentation
- Accurate JSDoc documentation — expressjs/express, Documentation
Source repositories
facebook/react, vercel/next.js, facebook/react-native, nodejs/node, axios/axios, mui/material-ui, mermaid-js/mermaid, sveltejs/svelte, expressjs/express, bmad-code-org/bmad-method, prettier/prettier, cypress-io/cypress, serverless/serverless, discourse/discourse, zen-browser/desktop, fastify/fastify, decolua/9router, tj/commander.js, chalk/chalk, adonisjs/core, aws/aws-sdk-js, cloudflare/workerd