project-code-reviewlisted
Install: claude install-skill Aquaticat/Monochromatic
# Code review
Structured code review that checks changes for correctness,
type safety,
security,
style,
and maintainability.
Produces actionable findings categorized by severity.
All underlying rules referenced below are defined in `AGENTS.md`.
## Process
Read the diff or files under review,
then evaluate each category below.
Skip categories that do not apply to the language or change.
### Correctness
- Logic errors,
off-by-one,
unhandled edge cases
- Missing null/undefined checks
- Race conditions in async code
- Incorrect use of APIs or library methods
- Broken error propagation (swallowed exceptions,
silent catch blocks)
#### Off-by-one and boundary errors
```ts
// Bad -- flag as WARNING
const lastItem = items[items.length];
// Good
const lastItem = items.at(-1,);
```
```ts
// Bad -- flag as WARNING: skips the last element
for (let index = 0; index < items.length - 1; index++) { ... }
// Good
// Looping is unavoidable here because each item has side effects
for (const item of items) { ... }
```
#### Missing null/undefined checks
```ts
// Bad -- flag as BLOCKER
function getUser(id: string,): User {
const user = users.find(candidate => candidate.id === id);
return user; // may be undefined
}
// Good
function getUser(id: string,): User {
return notNullishOrThrow(users.find(function matchesId(candidate,) {
return candidate.id === id;
},),);
}
```
#### Race conditions
```ts
// Bad -- flag as WARNING: shared mutable state with concurrent