- session-logs, blogwatcher, summarize, whisper, gitea, himalaya, skill-creator SKILL.md - SKILL.md 인덱스 업데이트 (16개 스킬) - 311/314/315 상위 SSOT 중복 제거 + 링크 수정 - Phase 1-3 결과 + 테스트 결과 + evaluation 트러블슈팅 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.3 KiB
2.3 KiB
date, subject, writer, testers
| date | subject | writer | testers |
|---|---|---|---|
| 2026-03-25 | 신규 스킬 통합 테스트 결과 | 24-claude (총괄) | 24-Cursor(session-logs), 24-Codex(summarize), 24-Gemini(RSS), 23-Cursor(gitea) |
신규 스킬 통합 테스트 결과
테스트 요약
| 스킬 | 상태 | 응답 시간 | 비고 |
|---|---|---|---|
| session-logs | 정상 | ~20ms | 한글 q 파라미터 URL 인코딩 필요 |
| blogwatcher (RSS) | 정상 | 테스트 중 | feedparser 동작 확인 |
| summarize (text) | 정상 | ~1.5s | LLM 호출 포함 |
| summarize (url) | 수정 후 정상 | - | 컨테이너→호스트 IP 문제 해결 |
| whisper | 설정 완료 | - | OPENAI_API_KEY compose override 문제 해결 |
| gitea | 인증 대기 | ~6.6ms | GITEA_TOKEN 미설정 → 400 정상 에러 반환 |
발견된 이슈 및 해결
이슈 1: 컨테이너→호스트 통신 (summarize, whisper, gitea)
- 원인: Docker 브리지 네트워크에서
localhost:8001= 컨테이너 자신 - 해결:
.env에LLM_GATEWAY_URL=http://192.168.0.106:8001/api/llm/generate설정 - 근본 원인: compose
environment의${VAR:-default}패턴이 env_file보다 우선
이슈 2: OPENAI_API_KEY 빈 값 덮어쓰기 (whisper)
- 원인: compose
environment: OPENAI_API_KEY=${OPENAI_API_KEY}→ 호스트에 env 없으면 빈 값 - 해결: compose environment에서 해당 줄 제거, secrets.env에서 직접 주입
이슈 3: GITEA_TOKEN 미설정
- 상태: 의도된 동작 (400 에러 정상 반환)
- 해결: secrets.env에 GITEA_TOKEN 추가 필요
성능
| 스킬 | 응답 시간 | 병목 |
|---|---|---|
| session-logs | 20ms | DB 쿼리 (빠름) |
| summarize (text) | 1.5s | LLM 호출 |
| gitea | 6.6ms | HTTP 프록시 (빠름) |
SSOT 교훈
compose environment의 ${VAR:-default} 패턴은 env_file보다 우선 적용되어 SSOT 원칙을 위반할 수 있음.
→ 원칙 추가 권장: compose environment에 env_file과 겹치는 변수를 ${VAR:-default} 형태로 두지 않는다.
이 원칙은 이미 infrastructure-ssot-principle.md §7에 있음:
공용 env_file을 읽는 compose는 같은 키를 environment: KEY=${KEY}로 다시 선언해 로컬 .env placeholder가 runtime.env·secrets.env를 덮어쓰게 만들지 않는다.