DOCS/skills/260325_integration_test_result.md
happybell80 886bd42ae3 docs: 신규 스킬 7개 SKILL.md + 원칙 문서 중복 제거 + 구현 결과 문서
- 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>
2026-03-26 01:23:15 +09:00

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 = 컨테이너 자신
  • 해결: .envLLM_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를 덮어쓰게 만들지 않는다.