# Use

> API 키가 필요한 작업을 시작할 때 사용자에게 묻기 전에 볼트를 먼저 확인하고, 있으면 즉시 프로젝트에 연결·테스트까지 진행한다. 트리거 — "/tikeytaka:use", "○○ API로 만들어줘", "○○ 연동해줘", 코드 작업 중 API 키/토큰이 필요해진 모든 순간. 사용자에게 "키 있으세요?"라고 묻기 전에 반드시 이 절차를 먼저 탄다.

- Skill: `fivetaku/use` (Agent Skill)
- Install (CLI): `npx skillmds@latest add fivetaku/use`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fivetaku/use/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: fivetaku (https://skillmd.com/u/fivetaku)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fivetaku/use

---


# tikeytaka:use — 볼트 우선 키 연결 (묻기 전에 확인)

코어 CLI: `bash "${CLAUDE_PLUGIN_ROOT}/bin/tkt"` (이하 `tkt`)

## 원칙

**이미 볼트에 있는 키를 사용자에게 다시 묻는 것은 실패다.** 키가 필요해지는 순간의 순서는 항상: 볼트 조회 → 있으면 연결 → 없을 때만 사용자에게.

## 절차

1. **볼트 조회**: `tkt list` (이름만 나옴, 값 아님). exit code로 상태를 구분한다 —
   0=목록, 2=볼트 없음(init 미실행), 그 외=복호화 실패(사용자에게 "키 0개"가 아니라 "볼트를 열 수 없음"으로 보고).

2. **매칭**: 필요한 서비스와 목록을 대조한다. 이름은 `<provider>-api-key` 컨벤션(예: `openai-api-key`).
   비슷한 이름(`gemini-api-key` vs `google-api-key`)이 애매하면 그때만 사용자에게 선택지로 확인.

3. **정확한 세팅 정보 확인**: 프로젝트에 꽂기 전에 환경변수 이름·SDK 초기화·최신 모델명은 기억으로 쓰지 말고
   **docs-guide 스킬**(`/docs-guide:docs-guide`)로 해당 라이브러리 공식 문서를 확인한다.
   docs-guide가 없거나 실패하면 WebSearch → WebFetch로 공식 문서를 직접 확인하는 폴백.
   (예: `ANTHROPIC_API_KEY`인지 `CLAUDE_API_KEY`인지, 최신 모델 id가 뭔지 — 구식 하드코딩 금지)

4. **연결·전파**:
   ```bash
   tkt map-add '<프로젝트/.env>' <변수명> <서비스명>
   tkt sync --check   # 드라이런 확인
   tkt sync
   ```
   .env가 없으면 만들고 `chmod 600`. `.gitignore`에 `.env`가 있는지 확인하고 없으면 추가한다.

5. **실측 테스트**: 연결 직후 해당 API의 최소 호출(무료 검증 엔드포인트 우선)로 키가 살아있는지 확인하고 결과만 보고한다.
   값은 채팅에 출력하지 않는다. 죽은 키면 재발급을 권하고 add 절차로.

6. **볼트에 없을 때만**: add 스킬 절차로 전환 — 발급 페이지 안내 후 **별도 터미널에서 `tkt setp <서비스명>`**
   (채팅에 키를 받지 않는다). 등록 확인 후 4번부터 재개.

## 예시 흐름

사용자: "Gemini로 이미지 분석 스크립트 만들어줘"
→ (키 얘기 없이) `tkt list` → `gemini-api-key` 발견 → docs-guide로 최신 SDK·모델명 확인
→ `.env` 배선 + sync → 검증 호출 200 확인 → 코드 작성 진행. 사용자는 키 존재를 의식할 필요가 없다.

