npx claudepluginhub ggombee/code-forgeThis skill uses the workspace's default tool permissions.
테스트 관련 모든 작업의 **단일 진입점**. 변경 파일 패턴을 분석하여 적절한 하위 스킬로 자동 라우팅합니다.
Creates and manages unit tests and integration tests. Analyzes the existing codebase, auto-detects the test framework, and generates tests that follow project conventions. Use this skill when the user mentions "write tests", "unit tests", "integration tests", "test coverage", "testing", "tests missing", "TDD" or similar. Also after implementation when tests need to be created or updated.
Generates unit, integration, component, and e2e test suites with mocking strategies, edge case coverage, descriptive naming, and CI integration patterns. Activates on 'write tests', 'unit tests', 'mocking' requests.
Generates runnable Vitest unit tests and Playwright E2E specs from BDD/Gherkin test cases, scaffolds, and OpenAPI contracts. Use after generating test cases or app scaffolds.
Share bugs, ideas, or general feedback.
테스트 관련 모든 작업의 단일 진입점. 변경 파일 패턴을 분석하여 적절한 하위 스킬로 자동 라우팅합니다.
핵심 원칙: 기존 스킬을 수정하지 않는 Facade 패턴. 실행은 /generate-test, /e2e, /setup-test, /setup-e2e에 위임.
/test → git diff 기반 자동 감지
/test {path} → 파일 패턴 자동 판단
/test {path} --unit → 유닛/통합 강제 (/generate-test 직행)
/test {path} --e2e → E2E 강제 (/e2e 직행)
/test --setup → /setup-test + /setup-e2e 순차
/test --setup-unit → /setup-test만
/test --setup-e2e → /setup-e2e만
/test --init → .policy/ 기반 전체 TC 일괄 생성
/test --all → 전체 테스트 실행 (yarn test && yarn playwright test)
--setup, --setup-unit, --setup-e2e
→ 해당 setup 스킬로 위임 후 종료
--init
→ Section "─── --init 모드" 로 진입
--all
→ yarn test && yarn playwright test 실행 후 종료
--unit
→ /generate-test 워크플로우 직행
--e2e
→ /e2e 워크플로우 직행
그 외 → Step 2
경로 인자 있음 → 해당 파일/디렉토리
경로 인자 없음 → git diff --name-only + git diff --cached --name-only
각 파일을 아래 규칙으로 분류:
| 패턴 매칭 | 카테고리 | 라우팅 |
|---|---|---|
utils/, helpers/, lib/, adapters/ | 유틸 | Jest 유닛 직접 작성 (modules/testing/jest 참조) |
hooks/ | 훅/로직 | → /generate-test |
components/ (단일 컴포넌트) | 컴포넌트 | → /generate-test |
pages/, views/ (라우트 레벨) | 플로우 | → /e2e |
styled.ts, *.styles.ts | 디자인 | 스냅샷 (Phase C에서 별도) |
types.ts, constants.ts, *.d.ts | 타입/상수 | 스킵 |
대상 파일이 .policy/*.json의 affectedFiles에 매칭되면
해당 매트릭스의 testFiles를 함께 실행 대상에 추가
## /test 분석 결과
| 카테고리 | 대상 | 예정 작업 |
|---------|------|----------|
| 유틸 | formatDate.ts, period.ts | Jest 유닛 TC 생성 |
| 훅 | useCTA.tsx | testgen 에이전트 호출 |
| 플로우 | orders/list | /e2e Forge Loop |
총 예상 TC: N개
진행할까요? [Y/N]
독립적인 카테고리는 병렬 실행:
// 유틸: modules/testing/jest SKILL.md 패턴으로 직접 작성
// 훅/컴포넌트:
Task(subagent_type="testgen", prompt="targetPath: {파일}\nmode: create")
// 페이지: /e2e 워크플로우 진입
## /test 결과
| 카테고리 | 대상 | TC 수 | 결과 |
|---------|------|-------|------|
| 유틸 | formatDate.ts | 8 | PASS |
| 훅 | useCTA.tsx | 12 | PASS |
| 플로우 | /orders | 4 | 2 PASS, 2 FAIL |
실패 항목:
- order-list.spec.ts:42 필터 클릭 후 테이블 갱신 안 됨
- order-list.spec.ts:67 미결제 탭 DatePicker 미숨김
.policy/*.json 있음:
각 매트릭스의 affectedFiles + flows 추출
카테고리별 분류
.policy/ 없음:
src/ 전체 스캔
파일명 패턴으로 카테고리 분류
프로젝트 전체 스캔 결과:
- 유틸 함수 12개 → 유닛 TC 생성 예정
- 훅 5개 → 통합 TC 생성 예정
- 페이지 3개 → E2E spec 생성 예정
총 예상 TC: ~60개
진행할까요?
// testgen 에이전트를 파일별로 spawn (Agent Teams 활용)
// E2E는 페이지별로 순차 (Phase 1~2만, Forge Loop은 개별 호출 시)
/test → git diff → 자동 판단
/test src/order/utils/period.ts → 유틸 → Jest 유닛
/test src/order/hooks/useCTA.tsx → 훅 → testgen
/test src/order/views/list/ → 페이지 → /e2e
/test --e2e /orders → E2E 명시
/test --unit src/utils/date.ts → 유닛 명시
/test --setup → /setup-test + /setup-e2e
/test --init → 전체 일괄 생성
/test --all → yarn test && playwright test
| 기존 스킬 | 변경 | /test 호출 시 |
|---|---|---|
/generate-test | 변경 없음 | 라우팅으로 호출 |
/e2e | 변경 없음 | 라우팅으로 호출 |
/setup-test | 변경 없음 | --setup-unit 시 호출 |
/setup-e2e | 변경 없음 | --setup-e2e 시 호출 |
/test는 Facade일 뿐, 실제 로직은 위 스킬들에 위임. 사용자는 /test 하나만 기억하면 되고, 필요 시 하위 스킬 직접 호출도 가능.
thinking-model.md VERIFY 체크리스트의 "(정책 변경 시) 테스트 작성?" 항목에서 /test {파일} 실행을 권장. 자동 호출은 하지 않음 (비용 통제).
/test가 직접 Jest/Playwright 실행하지 않는다 — 기존 스킬에 위임/test --init 호출 시 사용자 승인 없이 진행 금지 (비용이 크므로 반드시 확인).policy/ 없는 프로젝트에서 --init 호출 시 명확한 안내 출력