Skip to content
Back to skills

Code Review 8

ASecurity

Review code for Effect-TS patterns, common issues, and project conventions. Use when reviewing PRs, checking code quality, or before committing changes.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
code-qualityflaskcode-review

Works with

  • cli

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill code-review-8 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Code Review 8?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Code Review 8
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-code-review-8/badge)](https://www.skillsdirectory.com/skills/david-li0406-code-review-8)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: code-review
description: Review code for Effect-TS patterns, common issues, and project conventions. Use when reviewing PRs, checking code quality, or before committing changes.
allowed-tools: Read, Grep, Glob
---

# Code Review

Read-only review skill for checking code quality against project conventions.

## Checklist

### Effect-TS Patterns

- [ ] Uses `Effect.gen` with `yield*`, not async/await
- [ ] No type casts (`as Type`) - use `satisfies` instead
- [ ] Errors are `Data.TaggedError` with descriptive payloads
- [ ] Services use `Context.Tag` or `Effect.Service` pattern
- [ ] Layers properly compose dependencies

### Branded IDs (wowlab-core)

- [ ] Schema + Brand dual pattern for IDs
- [ ] `eslint-disable no-redeclare` comment present
- [ ] Validation logic matches between Schema and Brand

### Portal Components

- [ ] Pages are minimal (just render component)
- [ ] `loading.tsx` uses `*Skeleton` component
- [ ] `"use client"` only where needed
- [ ] Barrel exports in `index.ts`
- [ ] Jotai atoms in domain folders under `atoms/`
- [ ] Uses `@/lib/format` utilities (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.log` in 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

1. I'll read the files you want reviewed
2. Check against the patterns above
3. Report issues with file:line references
4. 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
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…