Claude Code Plugins

Community-maintained marketplace

Feedback

**TDD GUARDIAN**: '테스트 작성', '테스트 만들어', 'TDD', '단위 테스트', '통합 테스트', '커버리지', 'mock', '모킹' 요청 시 자동 발동. *.test.ts/*.spec.ts/test_*.py 파일 작업 시 자동 적용. Fake Test 탐지, 80% 커버리지 게이트. Jest/Vitest/PyTest/JUnit 템플릿.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name tdd-guardian
description **TDD GUARDIAN**: '테스트 작성', '테스트 만들어', 'TDD', '단위 테스트', '통합 테스트', '커버리지', 'mock', '모킹' 요청 시 자동 발동. *.test.ts/*.spec.ts/test_*.py 파일 작업 시 자동 적용. Fake Test 탐지, 80% 커버리지 게이트. Jest/Vitest/PyTest/JUnit 템플릿.
allowed-tools Read, Glob, Grep

TDD Guardian v2.0 - Test-Driven Development Enforcer

Proactive TDD Enforcer - 테스트 작업 시 자동으로 TDD 원칙 적용

자동 발동 조건

이 스킬은 다음 상황에서 자동으로 활성화됩니다:

Auto_Trigger_Conditions:
  File_Patterns:
    - "*.test.ts, *.test.tsx, *.test.js"
    - "*.spec.ts, *.spec.tsx, *.spec.js"
    - "__tests__/**, test/**, tests/**"
    - "*_test.py, test_*.py"           # Python
    - "*_test.go"                       # Go
    - "*Test.java, *Spec.java"          # Java

  Keywords_KO:
    - "테스트 작성, 테스트 만들어, 테스트 추가"
    - "단위 테스트, 통합 테스트, E2E 테스트"
    - "TDD, 테스트 주도, 테스트 먼저"
    - "커버리지, 테스트 커버리지"
    - "테스트 코드, 테스트 케이스"
    - "mock, 모킹, 스텁"

  Keywords_EN:
    - "write test, create test, add test"
    - "unit test, integration test, e2e test"
    - "TDD, test driven, test first"
    - "coverage, test coverage"

  Code_Patterns:
    - "describe(, it(, test(, expect("
    - "jest., vitest., pytest"
    - "beforeEach, afterEach, beforeAll"

선택적 문서 로드 전략

전체 문서를 로드하지 않습니다! 상황에 따라 필요한 문서만 로드:

Document_Loading_Strategy:
  Step_1_Detect_Framework:
    - 파일 확장자, import 문, 설정 파일로 테스트 프레임워크 감지
    - 불명확하면 package.json의 devDependencies 확인

  Step_2_Load_Required_Docs:
    Universal_Always_Load:
      - "core/tdd-workflow.md"       # TDD 3단계 사이클 (항상)
      - "core/real-assertions.md"    # Real Assertion 규칙 (항상)

    Framework_Specific_Load:
      Jest: "frameworks/jest.md"           # Jest 설정, 매처, 모킹
      Vitest: "frameworks/vitest.md"       # Vitest 설정, 매처
      Mocha: "frameworks/mocha.md"         # Mocha + Chai
      PyTest: "frameworks/pytest.md"       # Python PyTest
      GoTest: "frameworks/gotest.md"       # Go testing package
      RSpec: "frameworks/rspec.md"         # Ruby RSpec
      JUnit: "frameworks/junit.md"         # Java JUnit5
      XCTest: "frameworks/xctest.md"       # Swift XCTest

    Context_Specific_Load:
      Unit_Test: "templates/unit-test.md"
      Integration_Test: "templates/integration-test.md"
      React_Test: "templates/react-test.md"
      Fake_Detection: "patterns/fake-test-detector.md"
      Coverage_Check: "core/coverage-thresholds.md"

  Quick_Reference:
    Checklist: "quick-reference/checklist.md"
    Anti_Patterns: "quick-reference/anti-patterns.md"

2025 테스트 프레임워크 선택 가이드

Framework_Comparison:
  Vitest:
    권장_상황: "새 프로젝트, Vite 기반"
    장점:
      - "Jest보다 30-70% 빠름"
      - "ESM 네이티브 지원"
      - "설정 없이 바로 사용 (zero-config)"
      - "Jest 호환 API (jest.* → vi.*)"
      - "브라우저 UI 디버깅"
    메모리: "Jest 1.2GB vs Vitest 800MB (50K 라인 기준)"
    마이그레이션: "85-90% Jest 테스트 수정 없이 작동"

  Jest:
    권장_상황: "기존 프로젝트, React Native"
    장점:
      - "안정적, 10년+ 커뮤니티"
      - "레퍼런스/튜토리얼 풍부"
      - "스냅샷 테스팅 원조"
    주의: "ESM 설정 복잡, 싱글 스레드 기본"

  선택_기준:
    새_프로젝트: "Vitest 권장"
    기존_Jest_프로젝트: "유지 (마이그레이션 비용 고려)"
    React_Native: "Jest 필수"
    Vite_프로젝트: "Vitest 필수"

Quick Reference

5 Core Principles

1. Test First: "코드 작성 전 반드시 실패하는 테스트부터"
2. Real Assertions: "toBeDefined/toBeTruthy 단독 사용 금지"
3. Edge Coverage: "Happy + Error + Boundary + Async 필수"
4. No Fake Tests: "15+ 패턴의 Fake Test 탐지 및 거부"
5. Coverage Gate: "80% line, 70% branch 미달 시 진행 금지"

Instant Checklist

## 테스트 작성 전 체크
- [ ] 요구사항에서 테스트 케이스 도출했는가?
- [ ] Happy/Error/Boundary/Async 케이스 포함했는가?

## 테스트 작성 후 체크
- [ ] 모든 assertion이 구체적 값을 검증하는가?
- [ ] toBeDefined/toBeTruthy 단독 사용 없는가?
- [ ] 테스트 제목과 내용이 일치하는가?
- [ ] Mock이 과도하지 않은가?
- [ ] Edge case가 포함되었는가?

## 최종 검증
- [ ] 모든 테스트 통과?
- [ ] Line coverage >= 80%?
- [ ] Branch coverage >= 70%?

문서 구조

tdd-guardian/
├── SKILL.md                          # 이 파일 (라우터)
├── core/
│   ├── tdd-workflow.md               # Red-Green-Refactor 사이클
│   ├── real-assertions.md            # Real Assertion 규칙
│   ├── edge-coverage.md              # Edge Case 커버리지
│   └── coverage-thresholds.md        # 커버리지 임계값
├── frameworks/
│   ├── jest.md                       # Jest 설정, 매처, 모킹
│   ├── vitest.md                     # Vitest 설정, 매처
│   ├── pytest.md                     # Python PyTest
│   ├── gotest.md                     # Go testing package
│   └── junit.md                      # Java JUnit5
├── templates/
│   ├── unit-test.md                  # NestJS Service/Controller 템플릿
│   ├── integration-test.md           # E2E 테스트 템플릿
│   └── react-test.md                 # React Component/Hook 템플릿
├── patterns/
│   ├── fake-test-detector.md         # 15+ Fake Test 패턴
│   └── mock-guidelines.md            # Mock 사용 가이드
└── quick-reference/
    ├── checklist.md                  # 빠른 체크리스트
    └── anti-patterns.md              # 20+ Anti-Pattern

사용 방법

1. 자동 발동 (Proactive)

테스트 파일 작업 시 자동으로 원칙 적용됨

2. 명시적 호출

"이 테스트 TDD 원칙으로 리뷰해줘"
"Fake test 패턴 검사해줘"
"커버리지 80% 확인해줘"

3. 템플릿 요청

"NestJS Service 단위 테스트 템플릿"
"React Hook 테스트 템플릿"
"E2E 테스트 템플릿"

Version: 2.0.0 Quality Target: 95% Related Skills: clean-code-mastery, code-reviewer