一键导入
debug-test-failure
테스트 실패를 체계적으로 진단하고 수정합니다. 에러 메시지 분석, 관련 소스 추적, mock 설정 검증, 수정 적용까지의 워크플로우를 제공합니다. "테스트 실패", "test 깨졌어", "왜 테스트가 안 돼", "vitest 에러" 등의 상황에 사용하세요.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
테스트 실패를 체계적으로 진단하고 수정합니다. 에러 메시지 분석, 관련 소스 추적, mock 설정 검증, 수정 적용까지의 워크플로우를 제공합니다. "테스트 실패", "test 깨졌어", "왜 테스트가 안 돼", "vitest 에러" 등의 상황에 사용하세요.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | debug-test-failure |
| description | 테스트 실패를 체계적으로 진단하고 수정합니다. 에러 메시지 분석, 관련 소스 추적, mock 설정 검증, 수정 적용까지의 워크플로우를 제공합니다. "테스트 실패", "test 깨졌어", "왜 테스트가 안 돼", "vitest 에러" 등의 상황에 사용하세요. |
| argument-hint | [test file path or pattern] |
dhelix는 208개 이상의 테스트 파일에서 6,000+ 테스트 케이스를 실행하며, 98%+ 커버리지를 유지합니다. 테스트 실패 시 원인이 다양합니다 — 소스 코드 변경으로 인한 기대값 불일치, mock 설정 오류, 비동기 타이밍 이슈, import 경로 변경 등. 이 스킬은 실패 원인을 체계적으로 분류하고 빠르게 수정합니다.
| File | Purpose |
|---|---|
vitest.config.ts | 테스트 설정 (globals, environment, coverage) |
test/unit/ | 단위 테스트 (208+ 파일) |
test/integration/ | 통합 테스트 (agent loop, tools, MCP) |
test/e2e/ | E2E 테스트 (CLI boot, projects) |
test/mocks/openai.ts | Mock LLM provider factory |
test/fixtures/ | 테스트 픽스처 데이터 |
인자가 주어진 경우 (특정 테스트):
npx vitest run <test-path> --reporter=verbose 2>&1 | tail -50
인자가 없는 경우 (전체 테스트):
npx vitest run 2>&1 | tail -80
실패한 테스트를 목록으로 정리합니다:
| # | 테스트 파일 | 실패 케이스 | 에러 타입 |
| --- | ---------------- | ------------- | -------------- |
| 1 | path/to/test.ts | "should do X" | AssertionError |
| 2 | path/to/test2.ts | "handles Y" | TypeError |
각 실패를 아래 카테고리로 분류합니다:
| 카테고리 | 증상 | 일반적 원인 |
|---|---|---|
| 기대값 불일치 | expected X, received Y | 소스 코드 변경으로 반환값이 바뀜 |
| 타입 에러 | TypeError: X is not a function | 인터페이스 변경, import 누락 |
| Import 에러 | Cannot find module | 파일 이동/이름 변경, .js 확장자 누락 |
| Mock 불일치 | not a function, 빈 결과 | Mock이 실제 인터페이스와 다름 |
| 비동기 이슈 | timeout, 무한 대기 | await 누락, Promise 미해결 |
| 환경 의존 | 특정 OS에서만 실패 | 경로 구분자, 파일 시스템 차이 |
분류된 카테고리에 따라 다른 전략을 사용합니다:
기대값 불일치의 경우:
expect() 라인을 읽습니다git diff HEAD~5 -- <source-file>
타입/Import 에러의 경우:
ls <imported-path> 2>/dev/null || echo "MISSING"
grep -n "export.*<symbolName>" <source-file>
Mock 불일치의 경우:
test/mocks/ 또는 테스트 내부)# Mock 정의 확인
grep -A10 "mock\|Mock\|vi.fn" <test-file> | head -20
# 실제 인터페이스 확인
grep -A10 "interface\|type.*=" <source-file> | head -20
비동기 이슈의 경우:
await 누락 확인:grep -n "expect.*\.to" <test-file> | grep -v await
grep -n "async\|Promise\|await" <test-file> | head -10
각 실패에 대해 수정을 적용합니다.
수정 원칙:
.skip하거나 삭제하지 않음 (사용자가 명시적으로 요청하지 않는 한)# 수정된 테스트만 재실행
npx vitest run <fixed-test-paths> --reporter=verbose
# 전체 테스트 (관련 테스트가 많은 경우)
npx vitest run
## 테스트 디버깅 결과
### 수정 요약
| # | 테스트 | 원인 | 수정 내용 |
| --- | ----------- | ------------- | ------------------ |
| 1 | `path:line` | 기대값 불일치 | 반환값 업데이트 |
| 2 | `path:line` | Mock 누락 | metadata 필드 추가 |
### 검증
- 수정 전: X개 실패
- 수정 후: 전체 통과 (또는 N개 잔여)
소스에 새 필드를 추가하면, 해당 타입을 mock하는 모든 테스트에서 필드 누락 에러가 발생합니다.
해결: test/mocks/ 디렉토리의 공통 mock factory를 먼저 업데이트한 후, 개별 테스트의 인라인 mock도 확인합니다.
src/utils/events.ts의 이벤트 페이로드가 변경되면 useAgentLoop.ts 테스트에서 타입 에러가 발생합니다.
해결: 이벤트 페이로드 타입을 확인하고 테스트의 mock 이벤트 데이터를 맞춥니다.
새 명령어를 추가했지만 src/index.ts의 import/등록 순서가 맞지 않으면 slash-commands.test.ts에서 실패합니다.
해결: src/index.ts에서 import와 배열 등록이 모두 되어 있는지 확인합니다.
경로 구분자(\ vs /)로 인해 Unix에서는 통과하지만 Windows에서 실패하는 테스트입니다.
해결: src/utils/path.ts의 normalizePath()를 사용하거나, 테스트에서 path.sep을 고려합니다.
it.skip() 또는 describe.skip()이 이미 있는 테스트는 알려진 이슈이므로 무시OPENAI_API_KEY가 없으면 자동 skip되는 통합 테스트는 정상vi.useFakeTimers()로 해결하거나, 재실행으로 확인test/e2e/의 테스트는 실제 CLI 부팅이 필요하여 CI에서만 실행되는 경우가 있음E2E validation skill for the dhelix CLI AI coding assistant. Two test modes: (1) Project E2E — multi-turn tests creating real projects across 5+ tech stacks, validating builds, 80% coverage, and DHELIX.md compliance. (2) Conversation Quality — multi-turn tests verifying context retention, tool call coherence, error recovery, instruction adherence, progressive complexity, and contradiction handling. Use this skill when: running E2E tests for dhelix, validating coding ability across tech stacks, testing multi-turn conversation quality, verifying /init and DHELIX.md system, benchmarking dhelix against real-world project creation, or evaluating conversation quality after model/prompt changes.
Create, improve, and test dhelix skills through a structured interview and scaffold. Use when the user says things like 'make a skill', '스킬 만들어줘', 'turn this workflow into a reusable /command', 'add a slash command that does X', or when the user wants to refine an existing skill's triggering behavior. Benchmarked against Claude Code skill-creator v2.0.
개선 계획(improvement plan)으로부터 스프린트를 실행합니다. Claude Agent Teams를 사용하여 병렬 개발팀을 구성하고 파일 충돌 분석, 태스크 분배, worktree 격리 실행, 결과 검증, 머지/커밋까지 자동 오케스트레이션합니다. 사용자가 "스프린트 실행", "개선 계획 구현", "팀으로 개발", "병렬로 구현해줘", "revolution 실행", "Phase 1 시작", "v0.3 구현" 등을 요청할 때 사용하세요. docs/revolution/ 의 개선 문서, 마일스톤 문서, 또는 사용자가 지정하는 임의의 계획 문서를 입력으로 받습니다.
새로운 슬래시 명령어를 추가하는 전체 워크플로우를 안내합니다. 명령어 파일 생성, 레지스트리 등록, 테스트 작성, CLAUDE.md 업데이트까지 포함합니다. "새 명령어 만들어줘", "슬래시 커맨드 추가", "/xxx 명령어 구현" 등의 요청에 사용하세요.
새로운 빌트인 도구를 추가하는 전체 워크플로우를 안내합니다. Zod 스키마 정의, 도구 구현, 레지스트리 등록, display 설정, 테스트 작성까지 포함합니다. "새 도구 추가", "tool 만들어줘", "빌트인 도구 구현" 등의 요청에 사용하세요.
DB Inc. 브랜드 디자인 시스템(DB제목 B/M/L 폰트, 네이비 블루 테마)을 적용하여 전문적인 PPTX 프레젠테이션을 생성합니다. PPT, 프레젠테이션, 발표자료, 제안서, PoC 문서, 보고서 등을 만들어달라는 요청에 사용하세요. "PPT 만들어줘", "발표자료 작성", "프레젠테이션 생성", "pptx 제안서" 등의 요청에도 반드시 사용하세요.