Code Review
Read-only review skill for checking code quality against project conventions.
Checklist
Effect-TS Patterns
- • Uses
Effect.genwithyield*, not async/await - • No type casts (
as Type) - usesatisfiesinstead - • Errors are
Data.TaggedErrorwith descriptive payloads - • Services use
Context.TagorEffect.Servicepattern - • Layers properly compose dependencies
Branded IDs (wowlab-core)
- • Schema + Brand dual pattern for IDs
- •
eslint-disable no-redeclarecomment present - • Validation logic matches between Schema and Brand
Portal Components
- • Pages are minimal (just render component)
- •
loading.tsxuses*Skeletoncomponent - •
"use client"only where needed - • Barrel exports in
index.ts - • Jotai atoms in domain folders under
atoms/ - • Uses
@/lib/formatutilities (not raw.toLocaleString()or manual formatting) - • Loading states use Flask components (not Loader2 from lucide)
- • Providers export hook + Provider + types from
providers/index.ts
General
- • No unused imports or variables
- • No
console.login production code - • Error handling is comprehensive
- • Types are explicit at module boundaries
- • Control flow has braces (no single-line if/for)
- • No backwards-compat shims or deprecated code
How to Use
- •I'll read the files you want reviewed
- •Check against the patterns above
- •Report issues with file:line references
- •Suggest fixes where applicable
Common Issues
Wrong
ts
const data = await fetchData(); // async/await const x = foo as Bar; // type cast
Right
ts
const data = yield * fetchData(); // Effect.gen const x = foo satisfies Bar; // satisfies