| name | use |
| description | API 키가 필요한 작업을 시작할 때 사용자에게 묻기 전에 볼트를 먼저 확인하고, 있으면 즉시 프로젝트에 연결·테스트까지 진행한다. 트리거 — "/tikeytaka:use", "○○ API로 만들어줘", "○○ 연동해줘", 코드 작업 중 API 키/토큰이 필요해진 모든 순간. 사용자에게 "키 있으세요?"라고 묻기 전에 반드시 이 절차를 먼저 탄다. |
tikeytaka:use — 볼트 우선 키 연결 (묻기 전에 확인)
코어 CLI: bash "${CLAUDE_PLUGIN_ROOT}/bin/tkt" (이하 tkt)
원칙
이미 볼트에 있는 키를 사용자에게 다시 묻는 것은 실패다. 키가 필요해지는 순간의 순서는 항상: 볼트 조회 → 있으면 연결 → 없을 때만 사용자에게.
절차
-
볼트 조회: tkt list (이름만 나옴, 값 아님). exit code로 상태를 구분한다 —
0=목록, 2=볼트 없음(init 미실행), 그 외=복호화 실패(사용자에게 "키 0개"가 아니라 "볼트를 열 수 없음"으로 보고).
-
매칭: 필요한 서비스와 목록을 대조한다. 이름은 <provider>-api-key 컨벤션(예: openai-api-key).
비슷한 이름(gemini-api-key vs google-api-key)이 애매하면 그때만 사용자에게 선택지로 확인.
-
정확한 세팅 정보 확인: 프로젝트에 꽂기 전에 환경변수 이름·SDK 초기화·최신 모델명은 기억으로 쓰지 말고
docs-guide 스킬(/docs-guide:docs-guide)로 해당 라이브러리 공식 문서를 확인한다.
docs-guide가 없거나 실패하면 WebSearch → WebFetch로 공식 문서를 직접 확인하는 폴백.
(예: ANTHROPIC_API_KEY인지 CLAUDE_API_KEY인지, 최신 모델 id가 뭔지 — 구식 하드코딩 금지)
-
연결·전파:
tkt map-add '<프로젝트/.env>' <변수명> <서비스명>
tkt sync --check
tkt sync
.env가 없으면 만들고 chmod 600. .gitignore에 .env가 있는지 확인하고 없으면 추가한다.
-
실측 테스트: 연결 직후 해당 API의 최소 호출(무료 검증 엔드포인트 우선)로 키가 살아있는지 확인하고 결과만 보고한다.
값은 채팅에 출력하지 않는다. 죽은 키면 재발급을 권하고 add 절차로.
-
볼트에 없을 때만: add 스킬 절차로 전환 — 발급 페이지 안내 후 별도 터미널에서 tkt setp <서비스명>
(채팅에 키를 받지 않는다). 등록 확인 후 4번부터 재개.
예시 흐름
사용자: "Gemini로 이미지 분석 스크립트 만들어줘"
→ (키 얘기 없이) tkt list → gemini-api-key 발견 → docs-guide로 최신 SDK·모델명 확인
→ .env 배선 + sync → 검증 호출 200 확인 → 코드 작성 진행. 사용자는 키 존재를 의식할 필요가 없다.