Verifying Kotlin changes
Files: .kt, .kts. Derived from 2 scanned source repositories and 28 review prompts on https://awesomereviewers.com. Page: https://awesomereviewers.com/verify/kotlin/
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 — The compiler type-checks on every build and test run; a failing build is this check failing.
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
Review prompts (5 in total, most discussed first):
Add when the change touches
- Security scanning — no tool detected in the sample. Catches: Injection, unsafe APIs and tainted data reaching a sink.
- 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 (1 in total, most discussed first):
Public APIs, signatures, error paths, nullability
- Type checking — The compiler type-checks on every build and test run; a failing build is this check failing.
- 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 (7 in total, most discussed first):
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 — no tool detected in the sample. Catches: Breakage on a runtime version, OS or feature combination you did not run locally.
- 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 (1 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.
Review prompts (2 in total, most discussed first):
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.
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.
Review prompts (1 in total, most discussed first):
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 — no tool detected in the sample. Catches: Breakage on a runtime version, OS or feature combination you did not run locally.
Review prompts (1 in total, most discussed first):
- No tool-based check applies; rely on the prompts.
Review prompts (2 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.
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 (3 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 — no tool detected in the sample. Catches: Breakage on a runtime version, OS or feature combination you did not run locally.
The tests themselves
- Mutation testing — no tool detected in the sample. Catches: Tests that keep passing whatever the code does.
- Version and platform matrix — no tool detected in the sample. Catches: Breakage on a runtime version, OS or feature combination you did not run locally.
Review prompts (2 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 (3 in total, most discussed first):
Source repositories
facebook/react-native, JetBrains/kotlin