mcpField
G
generic-fullstack-code-reviewer

generic-fullstack-code-reviewer

github.com/travisjneumanテスト・品質106152 回インストール1 日前に更新
リポジトリ

generic-fullstack-code-reviewer について

Next.js/NestJSのフルスタックプロジェクト向けコードレビュー技能です。バックエンド、フロントエンド、スタック間の整合性を差分から確認し、汎用レビュー手法を補います。

主な機能

  1. 01NestJSの認証と認可の確認
  2. 02DTOの入力検証の確認
  3. 03Prismaのデータベース利用の確認
  4. 04Next.jsのコンポーネントとAPIルートの確認
  5. 05共有型とAPI契約の整合性確認
  6. 06環境設定とマイグレーションの確認

活用シーン

  1. 01コミット前のNext.js・NestJSコードレビュー
  2. 02保護ルートの認可と入力検証の確認
  3. 03フロントエンドとバックエンドの型の照合
  4. 04Prismaスキーマ変更のレビュー

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/travisjneuman/.claude --skill generic-fullstack-code-reviewer

インストール後、Claude Code で/generic-fullstack-code-reviewerを入力して読み込まれたか確認します。

詳細

フルスタックコードレビュアー

Next.js/NestJS のコードを本番環境向けの品質基準に照らしてレビューします。

拡張元: 汎用コードレビュアー - コードレビューの基本的な方法論、P0/P1/P2 の優先度システム、判断が必要なケースについては、基本スキルをお読みください。

コミット前の検証

テスト/lint/ビルドを順に実行するのではなく、差分を読んで検証します。以下の項目を確認してください。

フルスタック固有のチェック項目

バックエンド(NestJS)

認証と認可:

// Protected routes MUST have auth guard
@UseGuards(JwtAuthGuard)
@Get('profile')
getProfile(@CurrentUser() user: User) {
  return this.userService.findById(user.id);
}

入力の検証(DTO):

// All inputs validated via class-validator
export class CreateUserDto {
  @IsEmail()
  email: string;

  @IsString()
  @MinLength(8)
  password: string;
}

データベースの安全性:

// Use Prisma, never raw SQL
// ✓ Good
await this.prisma.user.findUnique({ where: { id } });

// ✗ Bad
await this.prisma.$queryRaw`SELECT * FROM users WHERE id = ${id}`;
フロントエンド(Next.js)

サーバーコンポーネントとクライアントコンポーネント:

// Default: Server Component (can fetch data, no hooks)
export default async function Page() {
  const data = await getData();
  return <div>{data}</div>;
}

// Client: Interactive (hooks, event handlers)
'use client';
export default function Interactive() {
  const [state, setState] = useState();
  return <button onClick={() => setState(...)}>Click</button>;
}

API ルートのパターン:

// app/api/[route]/route.ts
export async function POST(request: Request) {
  const body = await request.json();
  // Validate body before processing
  return NextResponse.json({ success: true });
}
スタック間の一貫性

共有型:

// types/api.ts - Shared between frontend/backend
interface UserResponse {
  id: string;
  email: string;
  createdAt: string;
}

API コントラクト:

  • リクエスト DTO がフロントエンドのペイロードと一致している
  • レスポンス型がフロントエンドの想定と一致している
  • エラー形式(status、message、errors[])に一貫性がある
環境変数とシークレット
# .env (never committed)
DATABASE_URL=postgres://...
JWT_SECRET=...

# Check .env.example exists with placeholder values
# Verify .gitignore includes .env

Prisma のチェック項目

# After schema changes
npx prisma migrate dev --name description
npx prisma generate
  • マイグレーションを元に戻せる
  • スキーマ変更後に型が再生成されている
  • リレーションが適切に定義されている

テストのパターン(ユーザーがテストを求めた場合)

バックエンド:

  • サービスの単体テスト
  • API エンドポイントの E2E テスト
  • テスト用のデータベースのモック

フロントエンド:

  • インタラクティブ機能のコンポーネントテスト
  • 統合テスト用の API モック

フルスタックのクイックチェックリスト

  • 保護されたルートに認証ガードが設定されている
  • DTO ですべての入力を検証している
  • 生の SQL クエリを使用していない
  • 共有型が一致している
  • .env がコミットされていない
  • Prisma の型が最新である

関連項目

コメント