스킬

Shikhu: 코드베이스를 자가 테스트 문제로 바꾸고 지식 커버리지를 추적하세요

Shikhu는 AI 코딩 에이전트가 내 코드에 대해 자가 테스트식 학습을 하게 하고 지식 커버리지를 장기간 추적하고 싶은 개발자에게 적합합니다. 전제 조건은 OpenRouter API 키를 직접 준비하는 것이며, 이것이 없으면 모델 생성과 관련된 모든 단계를 실행할 수 없습니다.

Official source · arjunpatel7/shikhu

Install

uv tool install shikhu

누구에게 적합한가

다 읽을 수 없는 코드베이스를 인수인계받았거나, 팀 안에서 계속 "이거 도대체 누가 쓰는 거야"라는 질문이 나오는 경우에 적합합니다. AI 코딩 에이전트가 직접 작성한 코드를 대상으로 반복해서 연습하게 하고, "나는 도대체 얼마나 이해하고 있지"를 추적할 수 있는 숫자로 만들고 싶다면, Shikhu의 방식이 일회성 질답보다 잘 맞습니다. 학습을 출제와 답안으로 바꾸고, 도구가 저장소에서 문제를 뽑아 정답과 오답을 기록하며, 함께 딸린 스킬이 지정한 파일의 핵심 개념을 하나씩 짚어 줍니다. 실제 코드에서 몇 차례 연습을 시키고 "모델이 내 코드를 읽는다"는 사실을 받아들일 수 있는 사람에게 맞습니다.

3분 만에 첫 시도 완료

공식 경로는 하나뿐이며, 먼저 명령줄 도구를 설치합니다.

uv tool install shikhu

설치가 끝나면 shikhu가 PATH에 등록되고 격리된 환경에서 실행되므로 프로젝트의 의존성과 충돌하지 않습니다.

전제 조건은 두 가지입니다. 하나는 환경에 uv가 있어야 한다는 것이고, 다른 하나는 OpenRouter API 키입니다. 저장소 루트의 .env에 두면(자동으로 로드됩니다) 되고, 셸에서 OPENROUTER_API_KEY를 export 해도 됩니다. 모든 모델 호출이 OpenRouter를 거치기 때문입니다.

그런 다음 배우고 싶은 코드의 루트에서 실행하세요.

shikhu init

이 단계는 실제로 파일을 씁니다. 실행하기 전에 확인하세요. 로컬 데이터베이스 coverage.db를 기록하고(자동으로 .gitignore에 추가됩니다), .quizignore를 생성하며(사용법은 .gitignore와 비슷해 설정이나 문서 계열 파일을 출제 범위에서 제외합니다), 두 스킬을 에이전트의 스킬 디렉터리에 설치합니다.

설치 위치: 스킬은 저장소에 이미 존재하는 .claude/skills/ 및/또는 .agents/skills/에 놓입니다(사용하는 에이전트가 어느 쪽 계열인지에 따라). 둘 다 없으면 양쪽 모두에 생성됩니다. 나중에 다시 설치하거나 전역에 설치하려면 shikhu install-skill을 쓰고, --global을 붙이면 전역 범위가 됩니다.

첫 트리거는 읽기 전용이며 되돌릴 수 있는 작업을 고르세요. 스킬을 지원하는 코딩 에이전트에서 /shikhu-study로 작은 파일 하나를 지정하거나, /shikhu-inquiry로 단일 함수만 다루는 질문을 하세요. 질문하기 전에 그 질문이 외부 모델 호출(OpenRouter 경유, 할당량 소모)을 일으키는지 먼저 확인하고, 확인한 뒤에 보내세요.

관찰 가능한 성공 신호는 세 가지입니다. 에이전트의 답변에 일반적인 튜토리얼이 아니라 사용자의 저장소에 실제로 존재하는 파일명, 함수명, 호출 관계가 나타납니다. 질문했던 항목이 퀴즈 시드로 남아 나중에 문제를 만들 때 다시 만날 수 있습니다. 프로젝트 루트에 coverage.db와 .quizignore가 생깁니다.

사용 사례

사례 1: 특정 모듈을 집중해서 자기 학습하기.

먼저 인덱스를 만듭니다.

shikhu summarize

추적되는 파일마다 모델이 생성한 캐시된 요약을 저장합니다. 파일당 모델 호출은 한 번이며, 내용이 변하지 않은 파일은 다시 처리되지 않습니다. 스킬과 shikhu map은 이 요약을 바탕으로 "어떤 질문에는 어떤 파일을 봐야 하는지" 판단합니다. 인덱스를 만든 뒤 에이전트에서 /shikhu-study로 배울 파일이나 디렉터리를 지정하면, 에이전트가 요약이 가리키는 위치를 따라 하나씩 짚어 줍니다.

사례 2: 일상적인 질문을 퀴즈 시드로 만들기.

에이전트에서 /shikhu-inquiry로 내 코드에 대한 질문을 하세요. 예를 들어 어떤 엔드포인트의 인자가 어디서 오는지, 어떤 로직이 왜 그렇게 작성됐는지 같은 것 말이죠. 답변과 함께 그 질문을 퀴즈 시드로 기록하고, 이후 도구가 코드에서 퀴즈를 만들 때 그 시드들이 참여하며, 정답 여부가 지식 커버리지로 추적됩니다. 문제를 실제 코드에 집중시키고 싶다면 .quizignore로 설정과 문서 계열 파일을 제외하세요.

사용 경계

  • OpenRouter API 키를 직접 준비해야 합니다. 없으면 모델 생성과 관련된 어떤 단어도 실행할 수 없습니다.
  • shikhu summarize는 파일 단위로 과금되므로 저장소가 클수록 최초 인덱싱이 느리고 비싸집니다. 파일 내용이 바뀐 경우에만 다시 처리됩니다.
  • 스킬이 설치되는 위치는 저장소에 이미 어떤 스킬 디렉터리가 있는지에 따라 달라지며, 둘 다 없으면 양쪽이 동시에 만들어집니다.
  • coverage.db는 프로젝트 안쪽에 만들어지지만 자동으로 .gitignore에 들어가므로 버전 관리에 동기화되지 않고, 커버리지와 답안 기록은 팀 간에 공유되지 않습니다.
  • 출처는 명령줄 도구와 두 스킬의 사용법, 명령, 설치 위치를 설명하지만, 지원 언어 범위, 커버리지의 구체적 계산 방식, 난이도 구간의 판정 기준은 나와 있지 않습니다. 일반적인 테스트 도구의 동작을 기준으로 추론하지 마세요.