skillprobe은(는) 무엇을 하나요?
AI 코딩 도구 스킬을 위한 자동화된 종단간 테스트. Claude Code와 Cursor를 서브프로세스로 실행하고, 실제 워크스페이스에서 시나리오를 수행하며 모델의 실제 동작을 검증합니다.
개요
skillprobe는 AI 코딩 어시스턴트(예: Claude Code, Cursor)의 스킬 정의를 자동으로 테스트하는 CLI 도구입니다. 스킬 매니페스트를 로드하고, AI 도구를 서브프로세스로 실행하며, 실제 워크스페이스에서 시나리오를 수행한 후 모델의 출력과 동작을 검증합니다.
주요 기능
- 멀티 도구 지원: Claude Code (
claude) 및 Cursor (cursor) 에이전트 실행을 지원합니다. - 시나리오 기반 테스트: 테스트는 YAML/JSON으로 정의된 시나리오를 사용합니다.
- 실제 워크스페이스 테스트: 격리된 임시 디렉토리에서 실제 파일 작업을 수행합니다.
- 어서션 엔진: 파일 존재 여부, 콘텐츠 일치, 명령어 실행 성공 등을 검증합니다.
- 리포트: 사람이 읽을 수 있는 형식과 CI 친화적인 형식(JUnit XML)으로 테스트 결과를 출력합니다.
설치
npm install -g skillprobe
# 또는
npx skillprobe
사용법
skillprobe run --tool claude --skill ./my-skill.yml --scenario ./test-scenario.yml
옵션
| 옵션 | 설명 |
|---|---|
--tool | 테스트할 AI 도구 (claude, cursor) |
--skill | 스킬 정의 파일 경로 |
--scenario | 시나리오 파일 경로 |
--workspace | (선택 사항) 사용할 워크스페이스 디렉토리. 기본값은 임시 디렉토리 |
--verbose | 상세 로그 출력 |
--junit | JUnit XML 리포트 생성 |
시나리오 파일 형식
name: "파일 생성 테스트"
description: "AI가 파일을 생성하는지 확인"
steps:
- prompt: "안녕하세요, hello.py 파일을 생성해 주세요."
asserts:
- type: fileExists
path: "hello.py"
- type: fileContentMatch
path: "hello.py"
pattern: "print"
어서션 유형
fileExists: 지정된 경로에 파일이 있는지 확인fileContentMatch: 파일 내용이 정규식 패턴과 일치하는지 확인commandSuccess: 특정 명령어가 성공 코드(0)로 종료되는지 확인aiOutputMatch: AI 도구의 출력이 정규식 패턴과 일치하는지 확인
예제
다음은 Claude Code에서 TypeScript 함수 생성을 테스트하는 예제입니다:
skillprobe run --tool claude --skill ./skills/typescript-helper.yml --scenario ./scenarios/create-function.yml
CI/CD 통합
GitHub Actions 워크플로우 예제(.github/workflows/test-skills.yml):
name: 스킬 테스트
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm install -g skillprobe
- run: skillprobe run --tool claude --skill ./skills/*.yml --scenario ./scenarios/*.yml --junit
라이선스
MIT