Repository navigation
Merged
Conversation
Use the public k-skill analytics Project API Key as the CLI default so usage events are captured without extra env setup. POSTHOG_API_KEY and KSKILL_ANALYTICS_DISABLED still override or disable collection.
feat(k-skill-cli): add PostHog usage analytics
기업분석 스킬: 공개 공시 기반 6개 섹션 채팅 분석
a.mjson was never set by args(), so '--market both --json' printed the chat text instead of dualSummary JSON and the mutual-exclusion guards were dead. Read a.json instead and add two CLI regression checks (kr+json rejection, dual replay json parse), now 143 harness checks.
…nd-analysis feat: 한·미 국채시장 분석 스킬 추가
시장 이벤트 리서치 스킬 추가
한국 채권 종목 조회·비교 스킬 추가
KOBUS 응답은 실제 fnSatsChc('...') 호출과 HTML 주석 프로토타입
fnSatsChc(deprTime,...)을 함께 담는다. 파서가 원본 전체를 대상으로
정규식을 돌려 주석 템플릿까지 운행편으로 만들었고, 그 결과 편수가
2배가 되고 raw_args=[]·departure_time=null 항목이 생겨 선점 단계에서
IndexError가 났다.
주석/템플릿을 먼저 제거하고, 여는 따옴표가 있는 실제 호출만 매칭하며,
필수 인자 수(14) 미만은 버린다. --select-index 범위 검증도 추가한다.
로그인 POST가 403을 반환해도 helper는 예약 페이지로 이동한 뒤 #srchSido가 있다고 가정했다. 로그인 실패 시 그 페이지에는 로그인 폼이 남아 있어 page.evaluate의 null.options가 처리되지 않은 Playwright TypeError로 터졌다. 제출 후 로그인 폼 잔존 여부로 실패를 판별해 자격증명 확인, CAPTCHA 수동 처리, --refresh-session 재시도를 안내하는 SystemExit으로 종료한다. 예약 페이지의 #srchSido·#srchInstt 존재도 조회 전에 검증하고, CSRF 토큰 부재 메시지에도 재시도 안내를 붙인다.
apis.data.go.kr·kosis.kr 같은 상위가 TCP timeout이면 라우트가 불투명한 500 proxy_error + "fetch failed"만 돌려줘 원인을 구분할 수 없었다. upstream-errors.js의 classifyUpstreamFailure로 DNS/connect 실패를 503 upstream_unreachable, connect/response timeout을 504 upstream_timeout 으로 매핑하고, setErrorHandler가 upstream.cause와 upstream.route를 함께 응답한다. gpu01 이관 문서에 상위 연결 트리아지 절차를 추가한다.
…-schedules fix(express-bus-booking): KOBUS 주석 템플릿을 운행편에서 제외 (#698)
fix(foresttrip-vacancy): 로그인 실패를 안내 오류로 처리 (#699)
…c DOMException codes (#700)
…lassification fix(k-skill-proxy): 상위 연결 실패를 503/504로 구분 (#700)
수주나비 조언 검토(DUNAqFB9Q, E66x89rHr) 중 타당한 항목을 반영한다: - /v1/g2b/sanctioned-supplier 응답에 lookup_status(active_sanctions_found / no_active_sanctions / lookup_failed)를 추가하고, 실패 경로(프록시 키 없음, fetcher 예외 포함)에서도 lookup_failed를 남겨 조회 실패와 제재 없음을 구분한다. - 성공 응답에 upstream JSON 원문(upstream_response), 실제 upstream 확인시각 (coverage.checked_at / source.checked_at), 고정 source.query를 보존한다. - CLI helper가 구조화된 실패 payload를 그대로 stderr에 전달하도록 한다. - g2b-order-plan-search에 검색 후보와 참가자격 검토를 구분하는 Workflow 4를 추가한다. 지역/면허·업종/실적/등록·인증 4항목을 공고 원문·URL·차수·기준일과 대조하고, 근거가 없으면 확인 필요로 남긴다. 정정공고 시 최종 원문 기준 재확인을 요구한다. - biz-health-check에 상태 정상·제재 0건이 공고별 참가자격 판정이 아님을 명시하고, lookup_failed/no_active_sanctions/unavailable을 구분해 전달한다. - 검색 노출·사업자 상태 정상·제재 0건만으로 참가 가능을 답하지 않도록 관련 스킬 문서와 프록시 응답 계약을 정리한다. TDD: server.test.js에 성공/0건/실패 3경로 lookup_status·upstream_response 회귀 테스트를 먼저 추가해 red를 확인한 뒤 구현했고, CLI helper에도 실패 payload 전달 회귀 테스트를 추가했다. CLI 스냅샷과 번들 에셋을 갱신했다. 검증: npm run ci 통과(회사분석 python 테스트 1회 네트워크 플레이크 후 재실행 통과), 로컬 프록시 기반 CLI 수동 QA로 성공/0건/실패 3경로 확인.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
k-skills-list.md is the source of truth for the browsable skill list. scripts/generate-skill-list.js rebuilds k-skills-list.html from it and exits non-zero when a skill directory with a skill.json is absent from the markdown, so the list cannot silently drift as skills are added. The generated html and pdf stay out of the repo; the script prints the Chrome print-to-pdf command instead of shelling out to a mac-only path. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
k-skills-list.html이 저장소에 커밋되어 있지 않아 기존 스크립트는 작성자 로컬 파일이 있는 환경에서만 동작했다(ENOENT). HTML 템플릿을 스크립트에 내장해 md만으로 누구나 페이지를 재생성하도록 수정하고, 생성물 k-skills-list.html/.pdf를 .gitignore에 추가했다. - 누락 가드(md ↔ skill.json 디렉토리 대조, exit 1)는 그대로 유지 - 검색 필터/카테고리 아이콘/개수 표시 기능 유지, 브라우저 QA 완료
feat(g2b): 제재 조회를 감사 가능하게 만들고 참가자격 판단 경계를 명시
chore: 스킬 목록 생성기 추가
Member
Author
Manual QA 결과 (dev @ 82a0f36)
|
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.
목적
dev에 머지된 신규 스킬과 수정 사항을 main으로 릴리스합니다.
신규 스킬 (minor)
korean-bond-search— SEIBro 채권 검색/비교 (한국 채권 종목 조회·비교 스킬 추가 #685)market-event-impact— 정례·비정형 사건 시장 영향 조사 (시장 이벤트 리서치 스킬 추가 #684)government-bond-analysis— 한국·미국 국채 수익률 비교 (feat: 한·미 국채시장 분석 스킬 추가 #683)company-analysis— 출처 검증 기업 분석 (기업분석 스킬: 공개 공시 기반 6개 섹션 채팅 분석 #682)CLI (
@nomadamas/k-skill)version/--version추가update명령 추가 (CLI + 모든 코딩 에이전트 스킬 설치 갱신)수정
express-bus-booking: KOBUS 주석 템플릿을 운행편에서 제외 ([express-bus-booking] KOBUS timetable parser duplicates schedules from commented fnSatsChc templates #698)foresttrip-vacancy: 로그인 실패 시 안내 메시지로 종료 ([foresttrip-vacancy] Invalid login reaches reservation-page DOM and crashes with TypeError #699)g2b-sanctioned-supplier/g2b-order-plan-search: 제재 조회 감사 가능성·참가자격 판단 경계 명시 (feat(g2b): 제재 조회를 감사 가능하게 만들고 참가자격 판단 경계를 명시 #705)k-skill-proxy: 상위 연결 실패를 503/504로 구분 ([k-skill-proxy][ops] Hosted upstream routes return 500/502/504 for weather, holiday, KOSIS and FSC lookups #700)scripts/generate-skill-list.js(chore: 스킬 목록 생성기 추가 #706)Changesets
.changeset/*.md포함 — 머지 후 Version Packages PR 생성.검증
릴리스 전 신규/변경 스킬 manual QA 수행 (결과는 코멘트 참조).