Verifying Ruby changes
Files: .rb. Derived from 5 scanned source repositories and 66 review prompts on https://awesomereviewers.com. Page: https://awesomereviewers.com/verify/ruby/
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 — no tool detected in the sample. Catches: Layout drift that buries the real change in the diff.
- Linting — no tool detected in the sample. Catches: Bug-prone patterns, unused code and conventions the formatter does not cover.
- Type checking — no tool detected in the sample. Catches: Wrong types, unhandled null or None, call signatures broken across modules.
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
Review prompts (11 in total, most discussed first):
- Use descriptive identifiers — discourse/discourse, Naming Conventions
- Use descriptive specific names — mastodon/mastodon, Naming Conventions
- Self-documenting identifier names — rails/rails, Naming Conventions
- Extract and organize methods — chef/chef, Code Style
- Consistent descriptive naming patterns — chef/chef, Naming Conventions
- Follow established naming patterns — Homebrew/brew, Naming Conventions
- Extract complex logic — mastodon/mastodon, Code Style
- Prefer simpler expressions — rails/rails, Code Style
- Extract duplicate code — discourse/discourse, Code Style
- Simplify complex code blocks — Homebrew/brew, Code Style
- Follow established naming conventions — facebook/react-native, Naming Conventions
Add when the change touches
- Security scanning:
codeql (40% of repos). Runs via GitHub Action github/codeql-action/analyze. Docs: https://github.com/github/codeql
- Secret scanning — no tool detected in the sample. Catches: Credentials and tokens committed to the repository.
- Dependency audit — no tool detected in the sample. Catches: Known-vulnerable or disallowed dependencies and licenses.
Review prompts (5 in total, most discussed first):
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 — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
- Property-based tests — no tool detected in the sample. Catches: Edge-case inputs nobody wrote a test for; invariants over generated data.
Review prompts (15 in total, most discussed first):
- Prefer explicit nil handling — Homebrew/brew, Null Handling
- Fail gracefully always — chef/chef, Error Handling
- Standardize API integration patterns — Homebrew/brew, API
- Minimize public API surface — rails/rails, API
- Clear error recovery paths — Homebrew/brew, Error Handling
- early nil validation — mastodon/mastodon, Null Handling
- API parameter design — mastodon/mastodon, API
- Initialize nil-prone variables — rails/rails, Null Handling
- Prefer guard clauses — chef/chef, Null Handling
- API parameter clarity — discourse/discourse, API
- Contextual error messages — rails/rails, Error Handling
- Include contextual error information — discourse/discourse, Error Handling
Service and framework code
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
- Version and platform matrix:
ci-matrix (20% of repos). Command seen: analyze (language: 3). Docs: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
- 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 (5 in total, most discussed first):
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.
Network calls, retries, timeouts, protocols
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
- Fuzzing — no tool detected in the sample. Catches: Crashes, panics and hangs on malformed input, especially in parsers and decoders.
Review prompts (3 in total, most discussed first):
UI components and pages
- End-to-end browser tests — no tool detected in the sample. Catches: User flows broken across components, routing and the network.
- Linting — no tool detected in the sample. Catches: Bug-prone patterns, unused code and conventions the formatter does not cover.
Databases, migrations, caching
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
- Version and platform matrix:
ci-matrix (20% of repos). Command seen: analyze (language: 3). Docs: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
Review prompts (5 in total, most discussed first):
- No tool-based check applies; rely on the prompts.
Review prompts (5 in total, most discussed first):
Model, prompt and LLM code
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
Logging, metrics, tracing
- No tool-based check applies; rely on the prompts.
Review prompts (1 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 — no tool detected in the sample. Catches: Invalid JSON, YAML or TOML, merge markers, trailing whitespace, oversized files.
Review prompts (7 in total, most discussed first):
Dependencies and lockfiles
- Dependency audit — no tool detected in the sample. Catches: Known-vulnerable or disallowed dependencies and licenses.
- Lockfile consistency — no tool detected in the sample. Catches: A lockfile that no longer matches its manifest.
- Version and platform matrix:
ci-matrix (20% of repos). Command seen: analyze (language: 3). 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 (20% of repos). Command seen: analyze (language: 3). Docs: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
Review prompts (5 in total, most discussed first):
- 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 (4 in total, most discussed first):
Source repositories
rails/rails, mastodon/mastodon, discourse/discourse, Homebrew/brew, chef/chef