用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/diegosouzapw/awesome-omni-skill --skill nestjs-setup-guide命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Token-efficient tracking for AI orchestration. CLI-first for status updates (~50 tokens), agent fallback for complex ops (~1KB). Use when: updating task status, querying blockers, creating progress files, validating phases.
AshAi extension guidelines for integrating AI capabilities with Ash Framework. Use when implementing vectorization/embeddings, exposing Ash actions as LLM tools, creating prompt-backed actions, or setting up MCP servers. Covers semantic search, LangChain integration, and structured outputs.
This skill should be used when solving hard questions, complex architectural problems, or debugging issues that benefit from GPT-5 Pro or GPT-5.1 thinking models with large file context. Use when standard Claude analysis needs deeper reasoning or extended context windows.
正在显示 SKILL.md
基于 SOC 职业分类
| name | nestjs-setup-guide |
| description | NestJS 프로젝트 아키텍처, 기술 스택 선택, 모듈 구조에 대한 질문이나 계획 수립 시 자동으로 가이드 제공 |
| 옵션 | 도구 | 적합한 상황 |
|---|---|---|
| A | Biome (통합 도구) | 신규 프로젝트, 빠른 설정, 대규모 코드베이스 |
| B | ESLint + Prettier | 기존 팀 표준 유지, NestJS 플러그인 필요, 세밀한 규칙 커스터마이징 |
확장 가능하고 유지보수하기 쉬운 Modular 아키텍처를 기본으로 사용합니다.
src/
├── main.ts # 애플리케이션 진입점
├── app.module.ts # 루트 모듈
├── modules/ # 기능별 모듈
│ ├── auth/ # 인증 모듈
│ │ ├── auth.module.ts
│ │ ├── auth.controller.ts
│ │ ├── auth.service.ts
│ │ ├── dto/ # 데이터 전송 객체
│ │ ├── entities/ # 데이터베이스 엔티티
│ │ ├── guards/ # 가드 (인증/인가)
│ │ └── strategies/ # Passport 전략
│ └── ...
├── shared/ # 공유 리소스
│ ├── decorators/ # 커스텀 데코레이터
│ ├── filters/ # 예외 필터
│ ├── interceptors/ # 인터셉터
│ ├── pipes/ # 파이프
│ ├── guards/ # 공용 가드
│ ├── utils/ # 유틸리티 함수
│ └── types/ # 공용 타입
├── config/ # 설정 파일
│ ├── database.config.ts
│ └── app.config.ts
└── __tests__/ # E2E 테스트
모듈 중심 설계
계층 분리
의존성 주입
공유 규칙
shared/를 통해서만모든 외부 입력은 class-validator를 통해 검증합니다.
// ✅ 올바른 DTO
import { IsString, IsEmail, MinLength } from 'class-validator';
export class CreateUserDto {
@IsEmail()
email: string;
@IsString()
@MinLength(8)
password: string;
@IsString()
name: string;
}
// main.ts
app.useGlobalPipes(
new ValidationPipe({
whitelist: true, // DTO에 없는 속성 제거
forbidNonWhitelisted: true, // 허용되지 않은 속성 있으면 에러
transform: true, // 타입 자동 변환
})
);
// ✅ NestJS 표준 예외 사용
import { NotFoundException, BadRequestException } from '@nestjs/common';
@Injectable()
export class UsersService {
async findOne(id: string): Promise<User> {
const user = await this.usersRepository.findOne(id);
if (!user) {
throw new NotFoundException(`User with ID ${id} not found`);
}
return user;
}
}
// shared/filters/http-exception.filter.ts
@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter {
catch(exception: HttpException, host: ArgumentsHost) {
const ctx = host.switchToHttp();
const response = ctx.getResponse();
const status = exception.getStatus();
response.status(status).json({
statusCode: status,
timestamp: new Date().toISOString(),
message: exception.message,
});
}
}
// app.module.ts
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
envFilePath: `.env.${process.env.NODE_ENV}`,
}),
],
})
export class AppModule {}
// config/database.config.ts
export default () => ({
database: {
host: process.env.DB_HOST || 'localhost',
port: parseInt(process.env.DB_PORT, 10) || 5432,
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
},
});
프로젝트 루트에 CLAUDE.md 파일을 생성하여 AI 어시스턴트에게 프로젝트 규칙을 전달합니다:
# 프로젝트 개발 가이드
## 아키텍처
- Modular 구조 사용
- 각 기능은 독립적인 모듈로 구성
- 모듈 간 의존성은 imports를 통해 명시
## 계층 분리
- Controller: HTTP 요청 처리만
- Service: 비즈니스 로직 구현
- Repository/Entity: 데이터 접근
## 코드 품질
### 필수 준수
- 모든 DTO에 class-validator 적용
- 모든 엔티티에 명시적 타입 지정
- 에러 처리는 NestJS 표준 예외 사용
- 환경 변수는 @nestjs/config를 통해서만 접근
### 절대 금지
- Service에서 직접 Request 객체 사용
- DTO 없이 컨트롤러 파라미터 받기
- 하드코딩된 환경 변수 (process.env 직접 접근)
## 테스팅
- 모든 Service는 단위 테스트 작성
- E2E 테스트는 주요 API 엔드포인트에 대해 작성
- 테스트 파일은 `*.spec.ts` (단위), `*.e2e-spec.ts` (E2E)
.nvmrc 또는 .node-version 파일 생성package.json에 engines 필드 명시{
"scripts": {
"start:dev": "nest start --watch",
"start:prod": "node dist/main",
"build": "nest build",
"lint": "코드 린팅",
"format": "코드 포맷팅",
"test": "jest",
"test:watch": "jest --watch",
"test:e2e": "jest --config ./test/jest-e2e.json"
}
}
이 skill은 계획 및 설계 단계에서 활성화됩니다. 실제 프로젝트 초기화 실행이 필요하면 자연스럽게 대화를 이어가세요.