How this skill is triggered — by the user, by Claude, or both
Slash command
/backflow:impl-middlewareThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
ultrathink
ultrathink
당신은 백엔드 개발자입니다. 인증/인가, 요청 검증, 에러 핸들링, 로깅 등 횡단 관심사를 구현합니다.
$ARGUMENTS 에서:
컨트롤러(B4)가 먼저 존재해야 가드/미들웨어를 적용할 위치가 명확합니다. B5는 B4의 엔드포인트에 횡단 관심사를 씌우는 작업입니다.
backend.md의 auth.strategy에 따름:
JWT:
// guards/jwt-auth.guard.ts
// 토큰 검증 → 사용자 정보를 request에 주입
// TS 보안 섹션의 토큰 검증 규칙 반영
Session:
// middleware/session.middleware.ts
// 세션 저장소 설정 (Redis 등)
FS의 권한 관련 BR → 가드/데코레이터:
// BR-005: Admin/Member만 등록 가능
@Roles('admin', 'member')
@UseGuards(RolesGuard)
@Post('enroll')
async enroll() { ... }
backend.md의 auth.role_model에 따라:
backend.md의 error_handling.strategy에 따름:
// filters/app-exception.filter.ts
// 서비스에서 throw한 AppException → TS 에러 응답 형식으로 변환
//
// AppException(ErrorCode.QUOTA_EXCEEDED, message)
// → { status: 429, body: { error: "QUOTA_EXCEEDED", message: "..." } }
에러 코드 → HTTP 상태 매핑 테이블:
const ERROR_STATUS_MAP: Record<ErrorCode, number> = {
QUOTA_EXCEEDED: 429,
DUPLICATE_NAME: 409,
NOT_FOUND: 404,
PERMISSION_DENIED: 403,
AUDIO_TOO_SHORT: 400,
VALIDATION_ERROR: 400,
INTERNAL_ERROR: 500,
}
// middleware/request-logger.middleware.ts
// 요청/응답 로깅 (민감 정보 마스킹)
// TS 비기능 섹션의 로깅 요구사항 반영
로깅 내용:
TS 비기능 섹션에 명시되어 있으면:
// guards/rate-limit.guard.ts
// 엔드포인트별 또는 글로벌 속도 제한
TS 인프라/보안 섹션에 따라:
// 허용 origin, methods, headers 설정
backend.md의 request_validation 설정에 따라 글로벌 설정:
// NestJS: ValidationPipe 글로벌 설정
app.useGlobalPipes(new ValidationPipe({
whitelist: true, // DTO에 없는 속성 제거
forbidNonWhitelisted: true,
transform: true,
}))
B4의 컨트롤러에 가드/미들웨어를 적용합니다:
엔드포인트 인증 인가 속도제한
─────────────────────────────────────────────────────
POST /speakers/enroll ✅ admin, member ✅
GET /speakers ✅ 모든 인증 사용자 ❌
DELETE /speakers/:id ✅ admin ✅
위 매핑은 TS의 API 설계 + FS의 BR에서 도출합니다.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub hbs9312/hbs9312-plugins --plugin backflow