Imported from hugoalmeidahh/ai-forge (
backend-nestjs/project-standards/SKILL.md). Install upstream withnpx skills add hugoalmeidahh/ai-forge --skill project-standards. Copyright stays with the author.
Project Standards
Intent
Apply company and project patterns when editing or adding code.
When To Use
Use for any coding task in this repository, especially when:
- creating new modules, controllers, services, or DTOs
- touching database schemas or migrations
- adding endpoints or request/response payloads
References
core/module-architecture.mdstandards/index.md- node_modules/@hugoalmeidahh/ai-forge/backend-nestjs/standards/company-standards.md
- node_modules/@hugoalmeidahh/ai-forge/backend-nestjs/standards/project-patterns.md
- node_modules/@hugoalmeidahh/ai-forge/backend-nestjs/standards/prisma-postgres-standards.md
- node_modules/@hugoalmeidahh/ai-forge/backend-nestjs/standards/error-handling.md
- node_modules/@hugoalmeidahh/ai-forge/backend-nestjs/standards/auth-security.md
- node_modules/@hugoalmeidahh/ai-forge/backend-nestjs/standards/general-development.md
- node_modules/@hugoalmeidahh/ai-forge/backend-nestjs/standards/controllers-services.md
- node_modules/@hugoalmeidahh/ai-forge/backend-nestjs/standards/dto-standards.md
- node_modules/@hugoalmeidahh/ai-forge/backend-nestjs/standards/folder-structure.md
- node_modules/@hugoalmeidahh/ai-forge/backend-nestjs/standards/helpers.md
Workflow
- Read
node_modules/@hugoalmeidahh/ai-forge/backend-nestjs/standards/index.mdfirst. - Load only the reference files needed for the task.
- Apply naming, structure, and formatting rules.
- Ensure request payloads use
snake_caseand internal code usescamelCase. - Follow NestJS module layout with controllers, services, and DTOs.
- Use Prisma and project helpers consistently.
Key Rules
- Files and folders:
kebab-case. DTOs:*.input.ts/*.output.ts. Classes:PascalCase. - Controllers are thin — validate input, call service, map output. Business logic lives in services.
- Custom errors extend
BaseError; all errors flow throughGlobalErrorFilter. - Prisma is accessed via injected
PrismaService, never instantiated directly. ActionLogServicerecords transactional domain changes.
Checks
- Keep code self-explanatory and avoid unnecessary comments.
- Prefer descriptive names and consistent file naming.
- Ensure error handling matches GlobalErrorFilter conventions.