Feature/k-schoollunch-menu : 급식정보 조회기능 추가 #102
Conversation
생활쓰레기 조회 스킬 문서와 기능 가이드를 추가하고, 프록시 라우트를 구현해 조회 흐름을 완성했다. 설치/설정 문서도 스킬 사용 흐름에 맞게 정리했다. Made-with: Cursor
…x SKILL.md newline - Drop user-supplied returnType and force "json" upstream so the cache key (which omits returnType) cannot be poisoned by alternate response shapes. - Add server tests covering: missing SGG_NM (400), missing API key (503), serviceKey injection + cache hit on second call, returnType=xml override ignored, upstream non-200 surfaced as 502. - Add trailing newline to household-waste-info/SKILL.md. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
vkehfdl1's review on PR NomaDamas#82: skill/docs claimed support for cond[DAT_CRTR_YMD::*] / cond[DAT_UPDT_PNT::*] filters and an optional returnType, but the proxy only forwards pageNo, numOfRows, and cond[SGG_NM::LIKE], and forces returnType=json. Typical user queries ("강남구 쓰레기 배출 요일") only need 시군구 검색, so shrink the documented contract to match the proxy instead of widening pass-through. - household-waste-info/SKILL.md: list only proxy-supported params, note returnType is server-forced, fix failure modes. - docs/features/household-waste-info.md: switch base example to the proxy route, drop the bare upstream curl, call out unsupported filters explicitly. - docs/install.md, docs/security-and-secrets.md, k-skill-setup/SKILL.md: describe the skill as calling the proxy /v1/household-waste/info route rather than the raw upstream endpoint.
The 인증/시크릿 column mixed user-side credentials, proxy URL hints, and "use this fallback" notes — confusing for end users who only need to know "do I have to log in or not?". Operator-managed secrets that ship in k-skill-proxy are not the user's problem. - Rename column to "사용자 로그인" with a one-line preface explaining the new contract. - Reclassify proxy-fronted skills (서울 지하철, 한강 수위, 부동산, 생활쓰레기, 가장 싼 주유소, 한국 법령 remote endpoint) to 불필요. - Only SRT, KTX, 토스증권 keep 필요 (real per-user account login). - Tighten the household-waste-info row to use the proxy-route phrasing consistent with the rest of the docs in this PR. - Update skill-docs tests to assert the new binary classification for 서울 지하철 and 한국 법령 rows.
The 설명 column was leaking implementation details — k-skill-proxy routing notes, upstream package names, anti-bot helper mentions — that don't help a user decide whether the skill does what they want. Rewrite each row to state only "what this skill does for the user", dropping references to k-skill-proxy, upstream library names (real-estate-mcp, kakaocli, daiso-mcp, coupang-mcp, tossctl, korean-law-mcp, Dynapath helper, Kakao Map anchor, Opinet, etc.) and proxy route paths. The 사용자 로그인 column already captures the "do I need credentials?" question, so the description is free to focus on the capability itself.
- KEDU_INFO_KEY로 /v1/neis/school-search, /v1/neis/school-meal 중계 - 시도교육청 자연어 해석(neis-office-codes.js) - k-schoollunch-menu 스킬, README·설치/설정/보안·프록시 문서 반영 - docs/adding-a-skill.md 스킬 추가 가이드 Made-with: Cursor
- upstream 생활쓰레기 프록시/스킬·skill-docs 변경 반영 - README 표에 학교 급식 행 복원, security에 KEDU_INFO_KEY·household 라우트 문구 정리 - NEIS 프록시 단위 테스트 블록 복원 Made-with: Cursor
|
리뷰 결과 Request changes 입니다. 주요 코멘트
Real Result실제로 아래까지 확인했습니다.
위 1번, 2번은 머지 전에 정리하는 게 좋겠습니다. |
|
후속 수정 반영했습니다.
검증:
참고로 로컬 환경에는 유효한 |
|
리뷰 결과 Request changes 입니다. 주요 코멘트
Real Result실제로 아래까지 확인했습니다.
현재 PR #102 head 에는 지난 라운드에서 말씀하신 후속 수정이 아직 올라와 있지 않거나, merge 과정에서 다시 깨진 상태로 보입니다. 우선 parse blocker와 누락된 후속 수정을 정리한 뒤 다시 확인하는 게 좋겠습니다. |
The setup guide already described proxy-hosted household-waste and NEIS flows elsewhere, but the opening summary still omitted school lunch from the no-user-key hosted-proxy list. This adds a regression test first, then aligns the intro sentence and test label so the doc stays consistent with the shipped proxy-backed feature set. Constraint: Keep the follow-up scoped to existing Issue #0/PR #103 documentation surfaces Rejected: Broader setup guide rewrite | unnecessary for the approved follow-up Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep hosted-proxy/no-user-key summaries aligned with the per-feature setup matrix when adding new proxy-backed skills Tested: Targeted red/green skill-docs regression; npm run lint; npm run typecheck; node --test packages/k-skill-proxy/test/server.test.js; bash scripts/validate-skills.sh; node --test scripts/skill-docs.test.js; buildServer runtime smoke for /health, household-waste validation, and NEIS missing-key behavior Not-tested: Live NEIS upstream call with a real KEDU_INFO_KEY Related: PR #102 Related: PR #103
|
Follow-up is now on
|
|
리뷰 결과 Request changes 입니다. 주요 코멘트
Real Result실제로 아래까지 확인했습니다.
현재 PR #102 head 에는 지난 라운드에서 말씀하신 후속 수정이 아직 반영되지 않은 상태로 확인됩니다. 우선 parse blocker 와 누락된 후속 수정을 PR #102 head 기준으로 다시 맞춘 뒤 재검증이 필요해 보입니다. |
|
리뷰 결과 Request changes 입니다. 주요 코멘트
Real Result실제로 아래까지 확인했습니다.
참고로, 말씀하신 후속 수정이 |
|
마지막 리뷰결과 반영해서 재작업후 올리겠습니다. |
The feature/#0 follow-up already had the proxy/runtime fixes in place, but the branch still needed the final regression locks and doc wording that keep the review fixes durable. This commit adds lower-bound household-waste pagination tests and aligns install/security docs with the proxy-only KEDU_INFO_KEY policy so the school lunch feature stays on the hosted-proxy / no-user-key path. Constraint: Follow-up had to stay on feature/#0 so PR #103 updates in place Constraint: User-facing secrets guidance must not imply KEDU_INFO_KEY belongs in the default client env file Rejected: Broaden the pass into more proxy/doc rewrites | unnecessary beyond the approved Issue #0 follow-up Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep school lunch docs and regression text aligned with the hosted proxy policy whenever setup/security wording changes Tested: npm run lint; npm run typecheck; node --test packages/k-skill-proxy/test/server.test.js; bash scripts/validate-skills.sh; node --test scripts/skill-docs.test.js; local proxy smoke for /health, invalid household-waste 400, valid household-waste 200, NEIS without KEDU_INFO_KEY 503 Not-tested: Live NEIS curl against a valid KEDU_INFO_KEY-enabled proxy Related: PR #102 Related: PR #103
|
feature/#0 follow-up is pushed and PR #103 updated with commit
Live NEIS curl against a valid |
|
리뷰 결과 REJECT 입니다. 짧은 사유: PR #102 현재 head ( Real Result
현재 제가 오늘(2026-04-10) 실제로 검증한 PR #102 head 자체 는 merge-ready 상태가 아닙니다. follow-up 이 |
|
아래 세 내역 및 dev 브랜치에서 구동 되게까지 수정 후 다시 PR 드리겠습니다. 한가지 궁금한점이 새로 API키를 추가할 때 이 내역을 보고 추가해 주시는것인지 확인 부탁드립니다. (키를 제가 발급해야 하나 해서요) |
Summary
NEIS 급식·학교 검색을 k-skill-proxy에서 중계하도록 엔드포인트를 추가했습니다. k-schoollunch-menu 스킬과 관련 문서를 넣었고, 스킬 추가 방법은 docs/adding-a-skill.md에 정리했습니다. README·설치·설정·보안 안내도 함께 맞춰 두었습니다.
Why
인증키는 프록시에만 두고, 사용자는 교육청·학교 이름으로 조회할 수 있게 하려는 목적입니다. 기존 공개 프록시 정책과도 맞추었습니다.
Test plan
node --test packages/k-skill-proxy/test/server.test.js와 bash scripts/validate-skills.sh, node --test scripts/skill-docs.test.js를 실행해 주시면 감사하겠습니다. 가능하시면 유효한 KEDU_INFO_KEY로 로컬 프록시에 실제 curl 한 번씩만 더 확인해 주시면 됩니다.
Other
이전에 생활쓰레기 관련해서 main 브랜치에 머지시에 proxy 키 관련해서 사용방식등을 지정할 때, 문구를 수정하신것 확인했습니다. 제가 권한이 없어 라고 feature 브랜치를 생성할 수 없어 dev에 요청드립니다. 적절한지 확인 후에 main까지 반영 부탁드리겠습니다.