코드 검증
SkillProductivityCode verification after task completion (type check, lint, test, build). Triggers on: 검증, verify, 테스트 돌려, 빌드 확인, 타입체크. NOT for: E2E tests, writing code, implementation.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the 코드 검증 skill
What this skill tells your AI
The instructions your AI receives, as published by jh941213/my-cc-harness in skills/verify/SKILL.md and read by ahel’s review.
TaskCompleted 훅(
verify-task-quality.sh)이 자동 실행하는 검증과 동일합니다. 훅 미발동 상황(수동 검증 요청, 훅 미설치 환경)에서 이 스킬을 사용하세요.
작업 완료 후 코드를 검증합니다. 순서대로 실행하며, 각 단계 통과 후 다음으로 진행.
Step 1: 프로젝트 감지
| 파일 | 스택 | 타입체크 | 린트 | 테스트 | 빌드 |
|---|---|---|---|---|---|
package.json | Node/TS | npx tsc --noEmit | npx eslint . / npx biome check . | npx vitest run / npx jest | npm run build |
pyproject.toml | Python | mypy . / pyright . | ruff check . | pytest -q | — |
go.mod | Go | go vet ./... | golangci-lint run | go test ./... | go build ./... |
Cargo.toml | Rust | — | cargo clippy | cargo test | cargo build |
# 자동 감지
[ -f package.json ] && cat package.json | python3 -c "import sys,json; s=json.load(sys.stdin).get('scripts',{}); print('\n'.join(f'{k}: {v}' for k,v in s.items()))"
[ -f pyproject.toml ] && echo "Python project detected"
[ -f go.mod ] && echo "Go project detected"
[ -f Cargo.toml ] && echo "Rust project detected"
Step 2: 검증 순서 (실패 시 즉시 수정)
2-1. TypeScript 타입체크
npx tsc --noEmit
실패 시: 타입 에러 수정 → 재실행. 3회 실패 시 사용자에게 에스컬레이션.
2-2. 린트
# ESLint
npx eslint . --max-warnings=0
# 또는 Biome
npx biome check .
# Python
ruff check .
실패 시: --fix 자동 수정 시도 → 수동 수정 → 재실행.
2-3. 테스트
# Vitest
npx vitest run
# Jest
npx jest --passWithNoTests
# pytest
pytest -q
실패 시: 실패 테스트 분석 → 코드 수정 (테스트 수정은 최후 수단) → 재실행.
2-4. 빌드
npm run build
실패 시: 빌드 에러 분석 → 수정 → 재실행.
2-5. 순환참조 탐지 (JS/TS 프로젝트)
npx madge --circular --extensions ts,tsx src/ 2>/dev/null
순환참조 발견 시: WARNING으로 보고. 새로 추가된 순환만 수정 대상.
2-6. 데드코드 탐지 (JS/TS 프로젝트)
npx knip --no-exit-code 2>/dev/null | head -50
미사용 export/파일/의존성 발견 시: INFO로 보고. 자동 수정하지 않음.
2-7. 시크릿 스캔
gitleaks detect --source . --no-git -v 2>&1 | head -20
시크릿 발견 시: CRITICAL. 즉시 보고 후 수정 유도.
2-8. AI 슬롭 패턴 탐지 (ast-grep)
# 불필요한 console.log
sg --pattern 'console.log($$$)' --lang ts src/ 2>/dev/null | head -10
# any 타입 사용
sg --pattern '$A as any' --lang ts src/ 2>/dev/null | head -10
발견 시: WARNING으로 보고.
Step 3: 결과 보고
| 단계 | 상태 | 상세 |
|---|---|---|
| typecheck | PASS/FAIL/SKIP | 에러 수 또는 "도구 미감지" |
| lint | PASS/FAIL/SKIP | 경고/에러 수 |
| test | PASS/FAIL/SKIP | N passed, M failed |
| build | PASS/FAIL/SKIP | 성공 또는 에러 요약 |
| circular | PASS/WARN/SKIP | 순환참조 수 (madge) |
| deadcode | INFO/SKIP | 미사용 export/파일 수 (knip) |
| secrets | PASS/CRITICAL/SKIP | 시크릿 탐지 수 (gitleaks) |
| ai-slop | PASS/WARN/SKIP | console.log/any 수 (ast-grep) |
판정: PASS = exit code 0, FAIL = 3회 재시도 소진, SKIP = 해당 도구 미감지 전체 판정: CRITICAL 있으면 FAIL. 모든 PASS/WARN/INFO/SKIP → PASS. typecheck/lint/test/build 중 FAIL → FAIL.
에러 카테고리별 수정 전략
| 카테고리 | 우선순위 | 수정 방법 |
|---|---|---|
| TYPE | 높음 | 출력에서 file:line 추출 → 해당 파일 Read → 타입 수정 |
| LINT | 중간 | --fix 자동 수정 먼저 → 수동 수정 |
| TEST | 높음 | 실패 테스트 분석 → 코드 수정 (테스트 수정은 최후 수단) |
| BUILD | 높음 | 빌드 로그 분석 → import/export 문제 우선 확인 |
최대 재시도
각 단계 최대 3회 시도. 3회 실패 시 멈추고 사용자에게 보고.
Signals
- GitHub stars
- 125
- Forks
- 35
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
verify-jh941213- Source
- github.com/jh941213/my-cc-harness