| name | mx-review |
| description | Review code for MX Space project conventions. Checks NestJS patterns, Drizzle ORM repositories, Zod schemas, API design, etc. |
| argument-hint | ["file-path"] |
MX Space Code Review
Review code for project conventions. Target: $ARGUMENTS
Review Checklist
1. Controller Conventions
2. Service Conventions
3. Repository Conventions
4. Schema (DTO) Conventions
5. Database Schema Conventions
6. API Design Conventions
7. Module Registration Conventions
8. Test Conventions
9. Security Conventions
10. Performance Conventions
Common Issues
Issue 1: Using class-validator
import { IsString } from 'class-validator'
class CreateDto {
@IsString()
name: string
}
import { z } from 'zod'
import { createZodDto } from 'nestjs-zod'
const Schema = z.object({ name: z.string() })
class CreateDto extends createZodDto(Schema) {}
Issue 2: Response not following conventions
return { data: items }
return items
Issue 3: Circular Dependency
constructor(private readonly otherService: OtherService) {}
private otherService: OtherService
constructor(private readonly moduleRef: ModuleRef) {}
onApplicationBootstrap() {
this.otherService = this.moduleRef.get(OTHER_SERVICE_TOKEN, { strict: false })
}
Issue 4: Not using EntityIdDto for path params
@Get('/:id')
async get(@Param('id') id: string) {}
@Get('/:id')
async get(@Param() params: EntityIdDto) {
return this.service.findById(params.id)
}
Issue 5: Repository not validating ID boundaries
await this.db.select().from(posts).where(eq(posts.id, id))
const idBig = parseEntityId(id)
await this.db.select().from(posts).where(eq(posts.id, idBig))
Output Format
After review, output in the following format:
## Review Results
### Passed
- [x] Item 1
- [x] Item 2
### Needs Changes
- [ ] Issue description
- Location: `file:line`
- Suggestion: Change recommendation
### Optimization Suggestions
- Suggestion 1
- Suggestion 2