api-design-principles
REST 및 GraphQL API 설계 원칙 가이드. 새로운 API 설계, API 스펙 리뷰, API 설계 표준 수립 시 활용. 트리거: "API 설계", "REST", "GraphQL", "엔드포인트 설계", "API…
작업 완료 후 코드 검증 (타입체크, 린트, 테스트, 빌드). Triggers on: 검증, verify, 테스트 돌려, 빌드 확인, 타입체크. NOT for: E2E 테스트, 코드 작성, 구현.
$ npx -y skills add jh941213/my-cc-harness --skill verify --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/verifyContext preview
The summary Claude sees to decide when to auto-load this skill.
작업 완료 후 코드 검증 (타입체크, 린트, 테스트, 빌드). Triggers on: 검증, verify, 테스트 돌려, 빌드 확인, 타입체크. NOT for: E2E 테스트, 코드 작성, 구현.
name: verify description: "작업 완료 후 코드 검증 (타입체크, 린트, 테스트, 빌드). Triggers on: 검증, verify, 테스트 돌려, 빌드 확인, 타입체크. NOT for: E2E 테스트, 코드 작성, 구현." user-invocable: true disable-model-invocation: false allowed-tools: Read, Bash, Grep, Edit
> TaskCompleted 훅(`verify-task-quality.sh`)이 자동 실행하는 검증과 동일합니다. > 훅 미발동 상황(수동 검증 요청, 훅 미설치 환경)에서 이 스킬을 사용하세요.
작업 완료 후 코드를 검증합니다. 순서대로 실행하며, 각 단계 통과 후 다음으로 진행.
| 파일 | 스택 | 타입체크 | 린트 | 테스트 | 빌드 | |------|------|---------|------|--------|------| | `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"npx tsc --noEmit
실패 시: 타입 에러 수정 → 재실행. 3회 실패 시 사용자에게 에스컬레이션.
# ESLint npx eslint . --max-warnings=0 # 또는 Biome npx biome check . # Python ruff check .
실패 시: `--fix` 자동 수정 시도 → 수동 수정 → 재실행.
# Vitest npx vitest run # Jest npx jest --passWithNoTests # pytest pytest -q
실패 시: 실패 테스트 분석 → 코드 수정 (테스트 수정은 최후 수단) → 재실행.
npm run build
실패 시: 빌드 에러 분석 → 수정 → 재실행.
npx madge --circular --extensions ts,tsx src/ 2>/dev/null
순환참조 발견 시: WARNING으로 보고. 새로 추가된 순환만 수정 대상.
npx knip --no-exit-code 2>/dev/null | head -50
미사용 export/파일/의존성 발견 시: INFO로 보고. 자동 수정하지 않음.
gitleaks detect --source . --no-git -v 2>&1 | head -20
시크릿 발견 시: CRITICAL. 즉시 보고 후 수정 유도.
# 불필요한 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으로 보고.
| 단계 | 상태 | 상세 | |------|------|------| | 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회 실패 시 멈추고 사용자에게 보고.
REST 및 GraphQL API 설계 원칙 가이드. 새로운 API 설계, API 스펙 리뷰, API 설계 표준 수립 시 활용. 트리거: "API 설계", "REST", "GraphQL", "엔드포인트 설계", "API…
Python asyncio 및 async/await 패턴 가이드. 비동기 API, 동시성 시스템, I/O 바운드 애플리케이션 구축 시 활용. 트리거: "asyncio", "async/await", "비동기 Python",…
레포에서 실질적인 작업(구현·수정·배포·디버깅)을 시작할 때, 새 레포를 처음 파악할 때, 작업을 마치고 기억할 지식이 생겼을 때 사용. 작업 유형에 맞는 docs·메모리만 선택적으로 로드하는 라우팅 테이블을 운영한다
Ralph Loop 병렬 버전. 여러 에이전트가 worktree에서 동시에 PRD 항목을 처리한다. 트리거: "PRD 항목 병렬 구현", "병렬 구현", "autodev parallel", "워크트리 병렬 개발", "병렬 랄프"…
Ralph Loop 기반 자율 개발 루프. Stop Hook이 세션 종료를 가로채어 PRD 항목을 하나씩 완료하며 자동 커밋한다. 트리거: "autodev", "자율 개발", "밤새 돌려", "랄프 루프", "ralph loop",…
기능 추가·컴포넌트 생성·동작 변경 등 모든 창작 작업 전에 사용. 구현 전에 의도·요구사항·설계를 대화로 확정 (심층 인터뷰가 필요한 대규모 기능은 /spec 사용)