Repository navigation
feat(emuseum-collection-search): 국립중앙박물관 e뮤지엄 소장품 조회 스킬 - #692
Closed
sungjunlee wants to merge 5 commits into
Closed
sungjunlee wants to merge 5 commits into
sungjunlee wants to merge 5 commits into
Conversation
- e뮤지엄 OpenAPI(selectRelicList.do) 기반 소장품/유물 검색 스킬 추가 - base URL·search path 를 --base-url/--search-path(env) 로 덮을 수 있게 해 포털 개편에 코드 수정 없이 대응 - 네트워크 없이 fixture 로 파싱·정규화·실패 모드(키 미설정, upstream 오류, 빈 결과)를 고정하는 테스트 23개
- skill stub / CLI asset / plugin manifest 생성·sync 결과 반영 - docs/features/emuseum-collection-search.md 추가 + README 표 링크 - docs/runtime-action-audit.md 카탈로그 행과 mode/total 수치 갱신 - scripts/skill-docs.test.js 의 top-level 스킬 수 갱신
- --dry-run: 키가 없어도 요청 URL을 출력하도록 missing-key 조기 종료보다 먼저 처리 - 응답 봉투(items/body/header) 미식별 JSON 오류 객체/XML 오류 문서를 빈 성공 대신 malformed response 실패로 변경 - 응답에 관리번호가 없을 때 항목 id로 대체하지 않고 빈 문자열 유지 - 각 동작을 고정하는 offline 테스트 추가, instruction.md 계약 문구 동기화
- packages/k-skill-cli/skills/emuseum-collection-search/** 를 scripts/sync-cli-skills.js 결과로 갱신 - 회귀 테스트 29 passed, 생성물 4종 --check OK
- body 가 item container·pagination·item 어느 것도 아닌 dict(예: {"error": ...})면 EmuseumError 로 실패시킨다
- 빈 body({})는 no-data 로 계속 허용한다
- 회귀 테스트: body/header+body/response.body 세 형태의 오류 객체, 빈 body 허용
- python3 -m pytest emuseum-collection-search/tests -q -> 31 passed, 3 subtests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
새 public API 스킬
emuseum-collection-search를 추가한다(이슈 #374).추가
emuseum-collection-search/SKILL.md,instruction.md,skill.json— 이슈가 지정한 국립중앙박물관e뮤지엄 소장품 검색 API, 기대 범위(유물명·시대·박물관 필터, 페이지네이션), 인증키 발급 경로와
명시적 실패 모드를 적었다.
emuseum-collection-search/scripts/emuseum_collection_search.py— read-only 조회 헬퍼.접근 경로는 hosted
k-skill-proxy→ BYOK 직접 호출 순. 키는 소스·URL·로그에 남기지 않고,로그/JSON 출력의
serviceKey는REDACTED로 가린다.emuseum-collection-search/tests/— 네트워크 없이 fixture(XML·JSON·빈 결과·오류 봉투)로요청 파라미터 인코딩, 응답 정규화, 키 해석 우선순위, 실패 모드를 고정한다.
엔드포인트 변동 대응
e뮤지엄 OpenAPI 는
https://www.emuseum.go.kr/openApi아래 오퍼레이션 경로로 열린다. 포털 개편 시코드 수정 없이 대응할 수 있도록 base URL·오퍼레이션 path 를
--base-url/--search-path(env
KSKILL_EMUSEUM_BASE_URL/KSKILL_EMUSEUM_SEARCH_PATH)로 덮을 수 있게 했고, 테스트는"지금 살아 있다"를 주장하지 않고 요청 필드·정규화 동작만 fixture 로 고정한다.
검증
실제 API 호출·키 발급·프록시 배포는 하지 않았다.
하지 않은 것
README.md,.claude-plugin/plugin.json,docs/features/**,docs/runtime-action-audit.md,packages/k-skill-cli/skills/**)은 이 PR에서 수정하지 않았다.새 스킬 카탈로그 반영은 별도 변경이 필요하다.
Refs #374