mcpField
G
generic-fullstack-code-reviewer

generic-fullstack-code-reviewer

github.com/travisjneuman测试与质量106152 次安装1 天前更新
代码仓库

关于 generic-fullstack-code-reviewer

面向 Next.js/NestJS 全栈项目的代码审查技能,提供针对后端、前端及跨栈一致性的检查项。它强调阅读代码差异进行提交前验证,并延伸通用代码审查方法。

主要功能

  1. 01检查 NestJS 身份验证与授权
  2. 02核对 DTO 输入验证
  3. 03审查 Prisma 数据库使用
  4. 04检查 Next.js 组件与 API 路由
  5. 05核对前后端类型和 API 契约
  6. 06检查环境变量与迁移

适用场景

  1. 01提交前审查 Next.js 与 NestJS 代码
  2. 02检查受保护路由的鉴权和输入验证
  3. 03核对前后端请求响应类型
  4. 04审阅 Prisma 架构变更

安装

复制下面的命令,在终端中运行。

$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 与前端负载相匹配
  • 响应类型符合前端预期
  • 错误格式一致(状态、消息、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 端点编写端到端测试
  • 在测试中模拟数据库

前端:

  • 为交互功能编写组件测试
  • 在集成测试中模拟 API

全栈快速检查清单

  • 受保护的路由上有身份验证守卫
  • DTO 会验证所有输入
  • 不使用原始 SQL 查询
  • 共享类型相匹配
  • 未提交 .env
  • Prisma 类型为最新版本

另请参阅

评论

支持 Markdown