@nomadamas/k-skill 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/bin/k-skill.js +35 -5
  2. package/package.json +2 -2
  3. package/skills/assembly-bill-vote-search/skill.json +0 -1
  4. package/skills/biz-health-check/instruction.md +2 -2
  5. package/skills/biz-health-check/skill.json +0 -1
  6. package/skills/bok-ecos-stats/instruction.md +8 -8
  7. package/skills/bok-ecos-stats/skill.json +0 -1
  8. package/skills/building-register-search/instruction.md +6 -6
  9. package/skills/building-register-search/scripts/building_register.py +0 -0
  10. package/skills/cheap-gas-nearby/skill.json +0 -1
  11. package/skills/corporate-registration-consulting/scripts/fill_official_hwp.py +0 -0
  12. package/skills/corporate-registration-consulting/skill.json +3 -1
  13. package/skills/coupang-product-search/instruction.md +10 -10
  14. package/skills/coupang-product-search/scripts/coupang_partners_mcp.py +0 -0
  15. package/skills/court-auction-notice-search/skill.json +2 -1
  16. package/skills/court-payment-order-assistant/skill.json +1 -1
  17. package/skills/d2b-notice-search/skill.json +2 -1
  18. package/skills/daangn-cars-search/instruction.md +3 -3
  19. package/skills/daangn-cars-search/scripts/daangn_cars.py +0 -0
  20. package/skills/daangn-jobs-search/instruction.md +2 -2
  21. package/skills/daangn-jobs-search/scripts/daangn_jobs.py +0 -0
  22. package/skills/daangn-jobs-search/skill.json +3 -1
  23. package/skills/daangn-realty-search/instruction.md +1 -1
  24. package/skills/daangn-realty-search/scripts/daangn_realty.py +0 -0
  25. package/skills/daangn-used-goods-search/instruction.md +2 -2
  26. package/skills/daangn-used-goods-search/scripts/daangn_used_goods.py +0 -0
  27. package/skills/daishin-report-search/skill.json +0 -1
  28. package/skills/danawa-price-search/instruction.md +4 -4
  29. package/skills/danawa-price-search/scripts/danawa_search.py +0 -0
  30. package/skills/ev-charger-nearby/instruction.md +5 -5
  31. package/skills/ev-charger-nearby/skill.json +1 -2
  32. package/skills/express-bus-booking/instruction.md +2 -2
  33. package/skills/express-bus-booking/scripts/kobus_express_booking.py +0 -0
  34. package/skills/express-bus-booking/skill.json +2 -0
  35. package/skills/fine-dust-location/instruction.md +1 -1
  36. package/skills/fine-dust-location/scripts/fine_dust.py +549 -0
  37. package/skills/fine-dust-location/skill.json +7 -1
  38. package/skills/flight-ticket-search/instruction.md +7 -7
  39. package/skills/foresttrip-vacancy/instruction.md +7 -7
  40. package/skills/foresttrip-vacancy/scripts/run_foresttrip_vacancy.py +0 -0
  41. package/skills/fsc-corporate-info/instruction.md +1 -1
  42. package/skills/fsc-corporate-info/skill.json +0 -1
  43. package/skills/g2b-order-plan-search/instruction.md +2 -2
  44. package/skills/g2b-order-plan-search/skill.json +2 -1
  45. package/skills/g2b-sanctioned-supplier/instruction.md +1 -1
  46. package/skills/g2b-sanctioned-supplier/skill.json +0 -1
  47. package/skills/geeknews-search/instruction.md +3 -3
  48. package/skills/geeknews-search/scripts/geeknews_search.py +0 -0
  49. package/skills/gov-overseas-trip-report/instruction.md +12 -12
  50. package/skills/gov-overseas-trip-report/scripts/gov_overseas_trip_report.py +0 -0
  51. package/skills/han-river-water-level/skill.json +0 -1
  52. package/skills/highway-traffic-status/instruction.md +2 -2
  53. package/skills/highway-traffic-status/skill.json +0 -1
  54. package/skills/household-waste-info/skill.json +0 -1
  55. package/skills/intercity-bus-booking/instruction.md +3 -3
  56. package/skills/intercity-bus-booking/scripts/intercity_bus_search.py +0 -0
  57. package/skills/intercity-bus-booking/skill.json +2 -0
  58. package/skills/iros-registry-automation/instruction.md +2 -2
  59. package/skills/iros-registry-automation/skill.json +2 -1
  60. package/skills/job-posting-match/instruction.md +2 -2
  61. package/skills/job-posting-match/skill.json +1 -1
  62. package/skills/jobkorea-talent-search/instruction.md +1 -1
  63. package/skills/jobkorea-talent-search/scripts/jobkorea_talent_search.py +0 -0
  64. package/skills/jobkorea-talent-search/skill.json +2 -1
  65. package/skills/joseon-sillok-search/instruction.md +6 -6
  66. package/skills/k-skill-cleaner/instruction.md +2 -2
  67. package/skills/k-skill-cleaner/scripts/k_skill_cleaner.py +0 -0
  68. package/skills/k-skill-setup/instruction.md +1 -1
  69. package/skills/k-skill-setup/scripts/check-setup.sh +29 -0
  70. package/skills/k-skill-setup/skill.json +8 -2
  71. package/skills/kakaotalk-mac/skill.json +1 -1
  72. package/skills/keris-academic-search/instruction.md +4 -4
  73. package/skills/korea-weather/skill.json +0 -1
  74. package/skills/korean-character-count/instruction.md +8 -8
  75. package/skills/korean-heritage-search/instruction.md +5 -5
  76. package/skills/korean-humanizer/instruction.md +1 -1
  77. package/skills/korean-jangbu-for/instruction.md +3 -3
  78. package/skills/korean-jangbu-for/scripts/install.sh +0 -0
  79. package/skills/korean-middle-korean/instruction.md +6 -6
  80. package/skills/korean-middle-korean/scripts/korean_middle_korean.js +0 -0
  81. package/skills/korean-patent-search/instruction.md +4 -4
  82. package/skills/korean-privacy-terms/instruction.md +4 -4
  83. package/skills/korean-privacy-terms/scripts/install.sh +0 -0
  84. package/skills/korean-scholarship-search/instruction.md +10 -10
  85. package/skills/korean-slang-writing/instruction.md +8 -8
  86. package/skills/korean-spell-check/instruction.md +3 -3
  87. package/skills/korean-spell-check/skill.json +0 -1
  88. package/skills/korean-stock-search/skill.json +0 -1
  89. package/skills/korean-transit-route/skill.json +0 -1
  90. package/skills/kosis-stats/instruction.md +13 -26
  91. package/skills/kr-whois-lookup/skill.json +1 -2
  92. package/skills/kstartup-search/instruction.md +8 -8
  93. package/skills/ktx-booking/instruction.md +15 -15
  94. package/skills/ktx-booking/scripts/ktx_booking.py +1316 -0
  95. package/skills/ktx-booking/skill.json +7 -1
  96. package/skills/lck-analytics/instruction.md +4 -4
  97. package/skills/lck-analytics/scripts/_lib.js +0 -0
  98. package/skills/lck-analytics/scripts/analyze-live-game.js +0 -0
  99. package/skills/lck-analytics/scripts/build-match-report.js +0 -0
  100. package/skills/lck-analytics/scripts/sync-oracle.js +0 -0
  101. package/skills/localdata-business-status/instruction.md +2 -2
  102. package/skills/mfds-drug-safety/instruction.md +3 -3
  103. package/skills/mfds-drug-safety/skill.json +0 -1
  104. package/skills/mfds-food-safety/instruction.md +6 -6
  105. package/skills/mfds-food-safety/skill.json +0 -1
  106. package/skills/myrealtrip-search/instruction.md +11 -11
  107. package/skills/myrealtrip-search/scripts/myrealtrip_mcp.py +0 -0
  108. package/skills/national-pension-workplace/instruction.md +1 -1
  109. package/skills/national-pension-workplace/skill.json +0 -1
  110. package/skills/naver-ad-performance/instruction.md +7 -7
  111. package/skills/naver-blog-research/instruction.md +4 -4
  112. package/skills/naver-news-search/skill.json +0 -1
  113. package/skills/nhis-care-checkup-search/skill.json +1 -2
  114. package/skills/nts-business-registration/instruction.md +3 -3
  115. package/skills/nts-tax-delinquency/instruction.md +1 -1
  116. package/skills/ohou-today-deal/instruction.md +4 -4
  117. package/skills/ohou-today-deal/scripts/ohou_today_deal.py +0 -0
  118. package/skills/popbill/instruction.md +9 -9
  119. package/skills/real-estate-search/skill.json +0 -1
  120. package/skills/s2b-notice-search/skill.json +2 -1
  121. package/skills/saramin-talent-search/skill.json +2 -1
  122. package/skills/seoul-bike/instruction.md +3 -3
  123. package/skills/seoul-bike/scripts/seoul_bike.py +0 -0
  124. package/skills/seoul-bike/skill.json +0 -1
  125. package/skills/seoul-density/instruction.md +4 -4
  126. package/skills/seoul-density/skill.json +0 -1
  127. package/skills/srt-booking/instruction.md +4 -4
  128. package/skills/subway-lost-property/instruction.md +2 -2
  129. package/skills/subway-lost-property/scripts/subway_lost_property.py +0 -0
  130. package/skills/subway-lost-property/skill.json +1 -1
  131. package/skills/ticket-availability/instruction.md +3 -3
  132. package/skills/ticket-availability/skill.json +2 -1
  133. package/skills/yebigun-training/skill.json +2 -1
  134. package/skills/zipcode-search/instruction.md +2 -2
  135. package/skills/zipcode-search/scripts/zipcode_search.py +0 -0
  136. package/src/assemble.js +148 -4
  137. package/src/execute.js +81 -0
  138. package/templates/action-recruiting.md +5 -0
  139. package/templates/legal.md +6 -0
  140. package/templates/operations.md +3 -0
  141. package/templates/action-communication.md +0 -5
  142. package/templates/hard-boundary.md +0 -3
@@ -25,7 +25,7 @@ v1 범위:
25
25
  - KIPRIS Plus에서 발급받은 API 키
26
26
  - helper 환경변수: `KIPRIS_PLUS_API_KEY`
27
27
  - 실제 요청 쿼리 파라미터명: `ServiceKey`
28
- - 설치된 skill payload 안에 `scripts/patent_search.py` helper 포함
28
+ - `@nomadamas/k-skill` CLI에 번들된 `scripts/patent_search.py` helper
29
29
 
30
30
  ## Inputs
31
31
 
@@ -51,9 +51,9 @@ v1 범위:
51
51
 
52
52
  ```bash
53
53
  export KIPRIS_PLUS_API_KEY=your-service-key
54
- python3 scripts/patent_search.py --query "배터리"
55
- python3 scripts/patent_search.py --query "배터리" --year 2024 --num-rows 5
56
- python3 scripts/patent_search.py --application-number 1020240001234
54
+ npx -y @nomadamas/k-skill@0 exec korean-patent-search scripts/patent_search.py -- --query "배터리"
55
+ npx -y @nomadamas/k-skill@0 exec korean-patent-search scripts/patent_search.py -- --query "배터리" --year 2024 --num-rows 5
56
+ npx -y @nomadamas/k-skill@0 exec korean-patent-search scripts/patent_search.py -- --application-number 1020240001234
57
57
  ```
58
58
 
59
59
  ## Response policy
@@ -40,7 +40,7 @@
40
40
  업스트림을 `~/.claude/skills/korean-privacy-terms/upstream/` 와 `~/.agents/skills/korean-privacy-terms/upstream/` 양쪽에 pinned SHA 로 체크아웃한다. 레포 내부에 업스트림 payload 를 커밋하지 않으므로 실사용 전 반드시 이 단계를 거친다.
41
41
 
42
42
  ```bash
43
- bash korean-privacy-terms/scripts/install.sh
43
+ npx -y @nomadamas/k-skill@0 exec korean-privacy-terms scripts/install.sh --
44
44
  ```
45
45
 
46
46
  레포를 로컬에 clone 하지 않고 이미 홈 디렉토리 스킬 번들만 가진 상태에서도 설치할 수 있다 (installer 는 `${BASH_SOURCE[0]}` 로 절대경로를 해석하므로 cwd 에 구애받지 않는다):
@@ -77,7 +77,7 @@ bash ~/.agents/skills/korean-privacy-terms/scripts/install.sh
77
77
  ## Workflow
78
78
 
79
79
  1. 사용자가 트리거 문구를 말하면 먼저 위 인터뷰 게이트를 실행한다.
80
- 2. `bash korean-privacy-terms/scripts/install.sh` 로 업스트림을 dual-install 한다 (이미 설치돼 있으면 pin 확인만 한다).
80
+ 2. `npx -y @nomadamas/k-skill@0 exec korean-privacy-terms scripts/install.sh --` 로 업스트림을 dual-install 한다 (이미 설치돼 있으면 pin 확인만 한다).
81
81
  3. 업스트림이 제공하는 순서를 따른다: `scripts/interview.md` → `scripts/render.md` → `scripts/install.md`.
82
82
  4. 업스트림은 Next.js 감지 → MDX/shadcn 의존성 설치 → 템플릿 치환 → `src/app/privacy/page.tsx` · `src/app/terms/page.tsx` · `src/components/legal/*` 등 파일 생성 → 법정 필수 11개 항목 검증 → 면책 주석 삽입 을 순차 실행한다.
83
83
  5. 생성이 끝나면 사용자에게 보고하되, 아래 **Response policy** 의 고정 블록을 반드시 포함한다.
@@ -85,9 +85,9 @@ bash ~/.agents/skills/korean-privacy-terms/scripts/install.sh
85
85
  ## CLI examples
86
86
 
87
87
  ```bash
88
- cat korean-privacy-terms/scripts/upstream.pin
88
+ npx -y @nomadamas/k-skill@0 read korean-privacy-terms scripts/upstream.pin
89
89
 
90
- bash korean-privacy-terms/scripts/install.sh
90
+ npx -y @nomadamas/k-skill@0 exec korean-privacy-terms scripts/install.sh --
91
91
 
92
92
  git -C ~/.claude/skills/korean-privacy-terms/upstream rev-parse HEAD
93
93
  git -C ~/.agents/skills/korean-privacy-terms/upstream rev-parse HEAD
File without changes
@@ -51,7 +51,7 @@
51
51
  4. 기업 공식 CSR/재단/채용·공지 페이지
52
52
  5. 비공식 모음글/블로그/커뮤니티는 **lead source** 로만 사용하고, 공식 공고로 교차검증되지 않으면 제외
53
53
 
54
- 소스별 검색 패턴은 `references/source-patterns.md` 를 보고, 검색 누락을 줄이려면 `references/search-clues.md` 의 키워드와 제목 단서를 같이 쓴다.
54
+ 소스별 검색 패턴은 `npx -y @nomadamas/k-skill@0 read korean-scholarship-search references/source-patterns.md` 를 보고, 검색 누락을 줄이려면 `npx -y @nomadamas/k-skill@0 read korean-scholarship-search references/search-clues.md` 의 키워드와 제목 단서를 같이 쓴다.
55
55
 
56
56
  ## Inputs
57
57
 
@@ -114,12 +114,12 @@
114
114
  5. 첨부 PDF/HWP가 있으면 같이 열어 조건을 확인
115
115
  6. 교내 장학과 외부 추천 장학을 분리해서 정리
116
116
 
117
- 학교 완전 탐색 체크리스트는 `references/school-discovery.md` 를 본다.
117
+ 학교 완전 탐색 체크리스트는 `npx -y @nomadamas/k-skill@0 read korean-scholarship-search references/school-discovery.md` 를 본다.
118
118
 
119
119
  학교별 search plan을 만들 때는:
120
120
 
121
121
  ```bash
122
- python3 scripts/university_search_plan.py \
122
+ npx -y @nomadamas/k-skill@0 exec korean-scholarship-search scripts/university_search_plan.py -- \
123
123
  --school-name "부산대학교" \
124
124
  --department "컴퓨터공학과" \
125
125
  --year 2026
@@ -128,7 +128,7 @@ python3 scripts/university_search_plan.py \
128
128
  전국 대학 sweep query를 만들 때는:
129
129
 
130
130
  ```bash
131
- python3 scripts/university_search_plan.py --nationwide --year 2026
131
+ npx -y @nomadamas/k-skill@0 exec korean-scholarship-search scripts/university_search_plan.py -- --nationwide --year 2026
132
132
  ```
133
133
 
134
134
  ### 3. 각 후보를 정규화한다
@@ -175,7 +175,7 @@ python3 scripts/university_search_plan.py --nationwide --year 2026
175
175
  여러 장학금 후보를 JSON으로 정리한 뒤:
176
176
 
177
177
  ```bash
178
- python3 scripts/scholarship_filter.py filter \
178
+ npx -y @nomadamas/k-skill@0 exec korean-scholarship-search scripts/scholarship_filter.py -- filter \
179
179
  --input scholarships.json \
180
180
  --org-type foundation \
181
181
  --student-level undergraduate \
@@ -186,7 +186,7 @@ python3 scripts/scholarship_filter.py filter \
186
186
  지원 가능 여부 판정:
187
187
 
188
188
  ```bash
189
- python3 scripts/scholarship_filter.py eligibility \
189
+ npx -y @nomadamas/k-skill@0 exec korean-scholarship-search scripts/scholarship_filter.py -- eligibility \
190
190
  --input scholarships.json \
191
191
  --school-name "서울대학교" \
192
192
  --student-level undergraduate \
@@ -198,7 +198,7 @@ python3 scripts/scholarship_filter.py eligibility \
198
198
  KST 기준 현재 날짜로 열린 공고만 readable 하게 보기:
199
199
 
200
200
  ```bash
201
- python3 scripts/scholarship_filter.py report \
201
+ npx -y @nomadamas/k-skill@0 exec korean-scholarship-search scripts/scholarship_filter.py -- report \
202
202
  --input scholarships.json \
203
203
  --today 2026-04-14 \
204
204
  --only-open-now \
@@ -208,7 +208,7 @@ python3 scripts/scholarship_filter.py report \
208
208
  마감 임박 공고만 보기:
209
209
 
210
210
  ```bash
211
- python3 scripts/scholarship_filter.py report \
211
+ npx -y @nomadamas/k-skill@0 exec korean-scholarship-search scripts/scholarship_filter.py -- report \
212
212
  --input scholarships.json \
213
213
  --today 2026-04-14 \
214
214
  --deadline-within-days 7
@@ -238,7 +238,7 @@ python3 scripts/scholarship_filter.py report \
238
238
  - 공식 공고 링크
239
239
  - 신청 링크
240
240
 
241
- 더 자세한 form 규칙은 `references/report-format.md` 를 본다.
241
+ 더 자세한 form 규칙은 `npx -y @nomadamas/k-skill@0 read korean-scholarship-search references/report-format.md` 를 본다.
242
242
 
243
243
  ## Response policy
244
244
 
@@ -311,7 +311,7 @@ python3 scripts/scholarship_filter.py report \
311
311
 
312
312
  ## Notes
313
313
 
314
- - 한국장학재단 공식 장학·지원구간 표면은 `references/source-patterns.md` 참고
314
+ - 한국장학재단 공식 장학·지원구간 표면은 `npx -y @nomadamas/k-skill@0 read korean-scholarship-search references/source-patterns.md` 참고
315
315
  - 학교별 장학 공지는 HTML 구조가 제각각이므로, 공고 제목/본문/첨부를 같이 읽어야 한다.
316
316
  - 장학금 "조건" 과 "우대사항" 을 섞지 않는다.
317
317
  - "등록금 전액" 같은 비정액 장학금은 `amount.text` 를 유지하고 수치가 없으면 `*_krw` 는 비워둔다.
@@ -36,7 +36,7 @@
36
36
  ## Prerequisites
37
37
 
38
38
  - `python3` 3.10+ (`argparse`, `urllib`, `unittest` 만 사용 — 추가 의존성 없음)
39
- - 스킬 디렉터리의 `scripts/*.py` helper (설치 시 자동 포함)
39
+ - `@nomadamas/k-skill` CLI에 번들된 `scripts/*.py` helper
40
40
  - 나무위키 lookup 에는 인터넷 연결이 필요하지만, 실패해도 시드 인덱스만으로 안전하게 응답할 수 있다.
41
41
 
42
42
  ## Response contract
@@ -108,7 +108,7 @@
108
108
  ### 2. 시드 인덱스에서 후보 탐색
109
109
 
110
110
  ```bash
111
- python3 scripts/slang_search.py --mood "긍정,유머" --context "SNS,마케팅" --safety safe --limit 5 --format json
111
+ npx -y @nomadamas/k-skill@0 exec korean-slang-writing scripts/slang_search.py -- --mood "긍정,유머" --context "SNS,마케팅" --safety safe --limit 5 --format json
112
112
  ```
113
113
 
114
114
  주요 옵션:
@@ -128,8 +128,8 @@ python3 scripts/slang_search.py --mood "긍정,유머" --context "SNS,마케팅"
128
128
  ### 3. (선택) 나무위키 원문 요약 확인
129
129
 
130
130
  ```bash
131
- python3 scripts/slang_lookup.py "중꺾마" --format json
132
- python3 scripts/slang_lookup.py "https://namu.wiki/w/%EC%A4%91%EA%BA%BE%EB%A7%88" --max-length 800
131
+ npx -y @nomadamas/k-skill@0 exec korean-slang-writing scripts/slang_lookup.py -- "중꺾마" --format json
132
+ npx -y @nomadamas/k-skill@0 exec korean-slang-writing scripts/slang_lookup.py -- "https://namu.wiki/w/%EC%A4%91%EA%BA%BE%EB%A7%88" --max-length 800
133
133
  ```
134
134
 
135
135
  - 성공 시 `title`, `summary` 를 돌려준다.
@@ -147,16 +147,16 @@ python3 scripts/slang_lookup.py "https://namu.wiki/w/%EC%A4%91%EA%BA%BE%EB%A7%88
147
147
 
148
148
  ```bash
149
149
  # 1) 특정 유행어 뜻/메타 바로 확인
150
- python3 scripts/slang_search.py --query "갓생" --format text
150
+ npx -y @nomadamas/k-skill@0 exec korean-slang-writing scripts/slang_search.py -- --query "갓생" --format text
151
151
 
152
152
  # 2) 긍정 무드의 SNS 마케팅 후보 5개
153
- python3 scripts/slang_search.py --mood "긍정,유머" --context "SNS,마케팅" --safety safe --limit 5
153
+ npx -y @nomadamas/k-skill@0 exec korean-slang-writing scripts/slang_search.py -- --mood "긍정,유머" --context "SNS,마케팅" --safety safe --limit 5
154
154
 
155
155
  # 3) 이용자가 지정한 커스텀 인덱스로 전환
156
- python3 scripts/slang_search.py --query "중꺾마" --index-path ~/Downloads/my-slang.json
156
+ npx -y @nomadamas/k-skill@0 exec korean-slang-writing scripts/slang_search.py -- --query "중꺾마" --index-path ~/Downloads/my-slang.json
157
157
 
158
158
  # 4) 나무위키 원문 요약 시도
159
- python3 scripts/slang_lookup.py "럭키비키" --timeout 10 --format text
159
+ npx -y @nomadamas/k-skill@0 exec korean-slang-writing scripts/slang_lookup.py -- "럭키비키" --timeout 10 --format text
160
160
  ```
161
161
 
162
162
  ## Response policy
@@ -33,7 +33,7 @@
33
33
 
34
34
  - 인터넷 연결
35
35
  - `python3` 3.10+
36
- - 스킬 디렉토리의 `scripts/korean_spell_check.py` (설치 시 자동 포함)
36
+ - `@nomadamas/k-skill` CLI에 번들된 `scripts/korean_spell_check.py`
37
37
 
38
38
  ## Verified surface notes
39
39
 
@@ -58,7 +58,7 @@
58
58
  ### 3. Run the helper
59
59
 
60
60
  ```bash
61
- python3 scripts/korean_spell_check.py \
61
+ npx -y @nomadamas/k-skill@0 exec korean-spell-check scripts/korean_spell_check.py -- \
62
62
  --file README.md \
63
63
  --format json
64
64
  ```
@@ -66,7 +66,7 @@ python3 scripts/korean_spell_check.py \
66
66
  짧은 문장은 `--text` 로 바로 넣을 수 있다.
67
67
 
68
68
  ```bash
69
- python3 scripts/korean_spell_check.py \
69
+ npx -y @nomadamas/k-skill@0 exec korean-spell-check scripts/korean_spell_check.py -- \
70
70
  --text "아버지가방에들어가신다." \
71
71
  --format text
72
72
  ```
@@ -2,7 +2,6 @@
2
2
  "name": "korean-spell-check",
3
3
  "description": "Use Nara/PNU Korean spell-check surfaces conservatively to proofread Korean text, chunk long input, and return change-focused correction suggestions.",
4
4
  "profiles": [
5
- "browser",
6
5
  "local"
7
6
  ],
8
7
  "frontmatter": "name: korean-spell-check\ndescription: Use Nara/PNU Korean spell-check surfaces conservatively to proofread Korean text, chunk long input, and return change-focused correction suggestions.\nlicense: MIT\nmetadata:\n category: writing\n locale: ko-KR\n phase: v1"
@@ -3,7 +3,6 @@
3
3
  "description": "Use k-skill-proxy to search Korean listed stocks, inspect KRX base information, and fetch daily trade snapshots without asking the user to issue a KRX API key.",
4
4
  "profiles": [
5
5
  "proxy",
6
- "vault",
7
6
  "lookup"
8
7
  ],
9
8
  "frontmatter": "name: korean-stock-search\ndescription: Use k-skill-proxy to search Korean listed stocks, inspect KRX base information, and fetch daily trade snapshots without asking the user to issue a KRX API key.\nlicense: MIT\nmetadata:\n category: finance\n locale: ko-KR\n phase: v1"
@@ -3,7 +3,6 @@
3
3
  "description": "Korean door-to-door public transit routing (subway + bus + walking) via ODsay LIVE API with Kakao geocoding for address-to-address queries. Use when the user asks for 지하철/버스/대중교통 길찾기, 환승 경로, 소요시간, or transit directions between two places in Korea.",
4
4
  "profiles": [
5
5
  "proxy",
6
- "vault",
7
6
  "lookup"
8
7
  ],
9
8
  "frontmatter": "name: korean-transit-route\ndescription: Korean door-to-door public transit routing (subway + bus + walking) via ODsay LIVE API with Kakao geocoding for address-to-address queries. Use when the user asks for 지하철/버스/대중교통 길찾기, 환승 경로, 소요시간, or transit directions between two places in Korea.\nlicense: MIT\nmetadata:\n category: transit\n locale: ko-KR\n phase: v1"
@@ -40,28 +40,15 @@
40
40
  - `bigdata` 또는 `--direct`: KOSIS Open API 인증키 (무료, https://kosis.kr/openapi/ 에서 회원가입 후 활용신청)
41
41
 
42
42
  ```bash
43
- python3 kosis-stats/scripts/run_kosis_stats.py --help
43
+ npx -y @nomadamas/k-skill@0 exec kosis-stats scripts/run_kosis_stats.py -- --help
44
44
  ```
45
45
 
46
- ### Supporting files (단일 SKILL.md 설치 복구)
46
+ ### Bundled helper and reference
47
47
 
48
- 스킬은 `SKILL.md` 외에 helper(`scripts/run_kosis_stats.py`)레퍼런스 문서(`references/kosis-openapi-guide.md`)에 의존하는 **디렉터리 패키지형 스킬**이다. raw `SKILL.md` URL만 받는 설치 도구(Hermes 등)로 설치하면 `scripts/`·`references/`가 누락되어 helper 실행이 실패한다.
49
-
50
- helper 실행 전에 파일 존재를 확인하고, 없으면 아래로 복구한다. `<skill-dir>`은 `SKILL.md`가 설치된 디렉터리다.
51
-
52
- ```bash
53
- skill_dir="<skill-dir>" # 예: ~/.hermes/skills/kosis-stats, ~/.claude/skills/kosis-stats
54
- if [ ! -f "$skill_dir/scripts/run_kosis_stats.py" ]; then
55
- mkdir -p "$skill_dir/scripts" "$skill_dir/references"
56
- curl -fsSL https://raw.githubusercontent.com/NomaDamas/k-skill/main/kosis-stats/scripts/run_kosis_stats.py \
57
- -o "$skill_dir/scripts/run_kosis_stats.py"
58
- curl -fsSL https://raw.githubusercontent.com/NomaDamas/k-skill/main/kosis-stats/references/kosis-openapi-guide.md \
59
- -o "$skill_dir/references/kosis-openapi-guide.md"
60
- fi
61
- python3 "$skill_dir/scripts/run_kosis_stats.py" --help
62
- ```
63
-
64
- 근본적으로는 디렉터리 단위로 설치하는 방식(`npx --yes skills add NomaDamas/k-skill --skill kosis-stats -g` 또는 repo clone)을 권장한다.
48
+ KOSIS helper와 OpenAPI guide reference는 `@nomadamas/k-skill` CLI 패키지에
49
+ 함께 번들된다. raw `SKILL.md`만 설치된 환경에서도 별도로 다운로드하거나
50
+ 복구하지 않는다. 조립된 instruction의 `k-skill exec`와 `k-skill read` 명령을
51
+ 사용한다.
65
52
 
66
53
  ## Required environment variables
67
54
 
@@ -69,7 +56,7 @@ python3 "$skill_dir/scripts/run_kosis_stats.py" --help
69
56
  - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted proxy를 사용한다.
70
57
  - `KSKILL_KOSIS_API_KEY` — `bigdata` 또는 `--direct`로 KOSIS를 직접 호출할 때만 필요하다.
71
58
 
72
- 발급 절차와 호출 한도, 에러 코드 등 자세한 내용은 [`references/kosis-openapi-guide.md`](references/kosis-openapi-guide.md) 참고.
59
+ 발급 절차와 호출 한도, 에러 코드 등 자세한 내용은 `npx -y @nomadamas/k-skill@0 read kosis-stats references/kosis-openapi-guide.md` 참고.
73
60
 
74
61
  ### Credential resolution order (`bigdata` 또는 `--direct` 전용)
75
62
 
@@ -138,7 +125,7 @@ python3 "$skill_dir/scripts/run_kosis_stats.py" --help
138
125
  질문을 먼저 한국어 키워드로 좁히고 `search` 로 후보 통계표를 본다.
139
126
 
140
127
  ```bash
141
- python3 kosis-stats/scripts/run_kosis_stats.py search --query "1인 가구" --text
128
+ npx -y @nomadamas/k-skill@0 exec kosis-stats scripts/run_kosis_stats.py -- search --query "1인 가구" --text
142
129
  ```
143
130
 
144
131
  출력에서 `[ORG_ID/TBL_ID]`를 골라 다음 단계에 사용한다.
@@ -148,7 +135,7 @@ python3 kosis-stats/scripts/run_kosis_stats.py search --query "1인 가구" --te
148
135
  데이터를 받기 전에 분류/단위/주기를 확인한다.
149
136
 
150
137
  ```bash
151
- python3 kosis-stats/scripts/run_kosis_stats.py meta --table-id DT_1JC1501 --text
138
+ npx -y @nomadamas/k-skill@0 exec kosis-stats scripts/run_kosis_stats.py -- meta --table-id DT_1JC1501 --text
152
139
  ```
153
140
 
154
141
  ### 4. Fetch a small bounded slice first
@@ -156,7 +143,7 @@ python3 kosis-stats/scripts/run_kosis_stats.py meta --table-id DT_1JC1501 --text
156
143
  `--prd-se`, `--start`, `--end`, `--obj-l` 으로 범위를 좁혀 작은 슬라이스를 먼저 조회한다.
157
144
 
158
145
  ```bash
159
- python3 kosis-stats/scripts/run_kosis_stats.py data \
146
+ npx -y @nomadamas/k-skill@0 exec kosis-stats scripts/run_kosis_stats.py -- data \
160
147
  --table-id DT_1JC1501 --prd-se Y --start 2020 --end 2022 \
161
148
  --obj-l 1=ALL --json
162
149
  ```
@@ -172,7 +159,7 @@ python3 kosis-stats/scripts/run_kosis_stats.py data \
172
159
  `bigdata` 는 KOSIS 웹에서 미리 등록한 `userStatsId` 가 필요하다. 미등록 상태면 사용자에게 등록 안내만 하고 멈춘다.
173
160
 
174
161
  ```bash
175
- python3 kosis-stats/scripts/run_kosis_stats.py bigdata \
162
+ npx -y @nomadamas/k-skill@0 exec kosis-stats scripts/run_kosis_stats.py -- bigdata \
176
163
  --user-stats-id "openapisample/101/DT_1IN1502/2/1/20191106094026_1" \
177
164
  --format json --new-est-prd-cnt 5
178
165
  ```
@@ -217,8 +204,8 @@ python3 kosis-stats/scripts/run_kosis_stats.py bigdata \
217
204
 
218
205
  - `./scripts/validate-skills.sh`
219
206
  - `python3 -m py_compile kosis-stats/scripts/run_kosis_stats.py kosis-stats/tests/test_run_kosis_stats.py`
220
- - `python3 kosis-stats/scripts/run_kosis_stats.py --help`
221
- - `python3 kosis-stats/scripts/run_kosis_stats.py search --query 인구 --dry-run` (URL/파라미터 출력만)
207
+ - `npx -y @nomadamas/k-skill@0 exec kosis-stats scripts/run_kosis_stats.py -- --help`
208
+ - `npx -y @nomadamas/k-skill@0 exec kosis-stats scripts/run_kosis_stats.py -- search --query 인구 --dry-run` (URL/파라미터 출력만)
222
209
  - `PYTHONPATH=kosis-stats/scripts python3 -m unittest discover -s kosis-stats/tests -p 'test_*.py' -v`
223
210
  - `npm run ci`
224
211
 
@@ -3,8 +3,7 @@
3
3
  "description": "공공데이터포털 WHOIS 도메인/IP 정보 API를 k-skill-proxy 경유로 호출해 .kr/.한국 도메인, IP 주소, AS 번호의 공개 등록정보를 조회한다. 조회 전용. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.",
4
4
  "profiles": [
5
5
  "proxy",
6
- "vault",
7
- "action:communication"
6
+ "lookup"
8
7
  ],
9
8
  "frontmatter": "name: kr-whois-lookup\ndescription: 공공데이터포털 WHOIS 도메인/IP 정보 API를 k-skill-proxy 경유로 호출해 .kr/.한국 도메인, IP 주소, AS 번호의 공개 등록정보를 조회한다. 조회 전용. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.\nlicense: MIT\nmetadata:\n category: security\n locale: ko-KR\n phase: v1"
10
9
  }
@@ -101,7 +101,7 @@ API helper는 조회 전용이다. 돌쇠에서 사용자가 사업 신청을
101
101
  `--per-page 10` 정도로 먼저 한 페이지를 받아 응답 스키마를 확인한 뒤, 필터를 좁히거나 페이지를 넘긴다.
102
102
 
103
103
  ```bash
104
- python3 scripts/run_kstartup.py announcements \
104
+ npx -y @nomadamas/k-skill@0 exec kstartup-search scripts/run_kstartup.py -- announcements \
105
105
  --supt-regin 서울특별시 --rcrt-prgs-yn Y --per-page 5 --text
106
106
  ```
107
107
 
@@ -122,23 +122,23 @@ API는 단순 필드 매칭만 지원하고, **그중 `supt_regin` 같은 일부
122
122
 
123
123
  ```bash
124
124
  # 서울 모집 중 공고 5건
125
- python3 scripts/run_kstartup.py announcements \
125
+ npx -y @nomadamas/k-skill@0 exec kstartup-search scripts/run_kstartup.py -- announcements \
126
126
  --supt-regin 서울특별시 --rcrt-prgs-yn Y --per-page 5 --text
127
127
 
128
128
  # 2024년 사업화 분야 통합공고
129
- python3 scripts/run_kstartup.py business-info \
129
+ npx -y @nomadamas/k-skill@0 exec kstartup-search scripts/run_kstartup.py -- business-info \
130
130
  --biz-yr 2024 --biz-category-cd cmrczn_Tab3 --json
131
131
 
132
132
  # 정책·공지 최신 콘텐츠
133
- python3 scripts/run_kstartup.py contents \
133
+ npx -y @nomadamas/k-skill@0 exec kstartup-search scripts/run_kstartup.py -- contents \
134
134
  --clss-cd notice_matr --per-page 10 --text
135
135
 
136
136
  # 창업기업 실태조사 통계보고서
137
- python3 scripts/run_kstartup.py statistics \
137
+ npx -y @nomadamas/k-skill@0 exec kstartup-search scripts/run_kstartup.py -- statistics \
138
138
  --titl-nm "창업기업 실태조사" --per-page 5 --json
139
139
 
140
140
  # 인증키 없이 dry-run 으로 요청 점검
141
- python3 scripts/run_kstartup.py announcements \
141
+ npx -y @nomadamas/k-skill@0 exec kstartup-search scripts/run_kstartup.py -- announcements \
142
142
  --supt-regin 부산광역시 --dry-run
143
143
  ```
144
144
 
@@ -171,8 +171,8 @@ K-Startup 인증키 없이도 다음 검증이 가능하다.
171
171
 
172
172
  - `./scripts/validate-skills.sh`
173
173
  - `python3 -m py_compile kstartup-search/scripts/run_kstartup.py kstartup-search/tests/test_run_kstartup.py`
174
- - `python3 kstartup-search/scripts/run_kstartup.py --help`
175
- - `python3 kstartup-search/scripts/run_kstartup.py announcements --supt-regin 서울특별시 --dry-run`
174
+ - `npx -y @nomadamas/k-skill@0 exec kstartup-search scripts/run_kstartup.py -- --help`
175
+ - `npx -y @nomadamas/k-skill@0 exec kstartup-search scripts/run_kstartup.py -- announcements --supt-regin 서울특별시 --dry-run`
176
176
  - `PYTHONPATH=kstartup-search/scripts python3 -m unittest discover -s kstartup-search/tests -p 'test_*.py' -v`
177
177
  - `node --test packages/k-skill-proxy/test/server.test.js` (K-Startup 라우트 5개 신규 케이스 포함)
178
178
  - `npm run ci`
@@ -73,13 +73,13 @@ python3 -m pip install korail2-ncard pycryptodome
73
73
  항상 helper 를 통해 조회한다.
74
74
 
75
75
  ```bash
76
- python3 scripts/ktx_booking.py search 서울 부산 20260328 090000 --limit 5
76
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- search 서울 부산 20260328 090000 --limit 5
77
77
  ```
78
78
 
79
79
  기본 `--train-type` 은 `ktx` 다. ITX-청춘(예: 남춘천↔용산)·ITX-새마을·무궁화호처럼 KTX 외 노선을 잡으려면 `--train-type` 으로 지정한다.
80
80
 
81
81
  ```bash
82
- python3 scripts/ktx_booking.py search 남춘천 용산 20260503 150000 --train-type itx-cheongchun
82
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- search 남춘천 용산 20260503 150000 --train-type itx-cheongchun
83
83
  ```
84
84
 
85
85
  선택지: `ktx`, `itx-saemaeul`, `mugunghwa`, `nuriro`, `tonggeun`, `itx-cheongchun`, `airport`, `all`.
@@ -106,19 +106,19 @@ python3 scripts/ktx_booking.py search 남춘천 용산 20260503 150000 --train-t
106
106
  기본 상세 좌석 조회:
107
107
 
108
108
  ```bash
109
- python3 scripts/ktx_booking.py seats 서울 부산 20260328 090000 --train-id <train_id>
109
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- seats 서울 부산 20260328 090000 --train-id <train_id>
110
110
  ```
111
111
 
112
112
  일반실/특실은 `--room` 으로 나눈다.
113
113
 
114
114
  ```bash
115
- python3 scripts/ktx_booking.py seats 서울 부산 20260328 090000 --train-id <train_id> --room special
115
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- seats 서울 부산 20260328 090000 --train-id <train_id> --room special
116
116
  ```
117
117
 
118
118
  남은 좌석번호만 보고 싶으면 `--available-only` 를 쓴다.
119
119
 
120
120
  ```bash
121
- python3 scripts/ktx_booking.py seats 서울 부산 20260328 090000 --train-id <train_id> --available-only
121
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- seats 서울 부산 20260328 090000 --train-id <train_id> --available-only
122
122
  ```
123
123
 
124
124
  특정 호차를 지정하지 않으면 `seats` 는 **5호차를 최우선**으로 탐색한다. 5호차가 없으면 5호차와의 거리가 가까운 호차 순으로, 같은 거리에서는 낮은 호차 번호 순으로 탐색한다(예: 1~8호차 편성은 `5, 4, 6, 3, 7, 2, 8, 1`, 1~4호차 편성은 `4, 3, 2, 1`). 일반 KTX, KTX-산천(분류 코드 07·10), KTX-청룡 모두 같은 규칙을 적용한다. 각 호차 안의 좌석은 콘센트 힌트가 있는 좌석(`direct`, `adjacent`)을 먼저, 같은 조건에서는 순방향 좌석을 먼저 보여준다.
@@ -126,19 +126,19 @@ python3 scripts/ktx_booking.py seats 서울 부산 20260328 090000 --train-id <t
126
126
  특정 호차만 확인하려면 `--car-no` 를 쓴다.
127
127
 
128
128
  ```bash
129
- python3 scripts/ktx_booking.py seats 서울 부산 20260328 090000 --train-id <train_id> --car-no 5 --available-only
129
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- seats 서울 부산 20260328 090000 --train-id <train_id> --car-no 5 --available-only
130
130
  ```
131
131
 
132
132
  콘센트 꿀팁 자리부터 확인하려면 `--power-only` 를 붙인다. 응답의 `power_outlet` 은 `direct`, `adjacent`, `none` 중 하나다.
133
133
 
134
134
  ```bash
135
- python3 scripts/ktx_booking.py seats 서울 부산 20260328 090000 --train-id <train_id> --available-only --power-only
135
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- seats 서울 부산 20260328 090000 --train-id <train_id> --available-only --power-only
136
136
  ```
137
137
 
138
138
  `seats` 도 `search` 와 같은 `--train-type` 을 넘겨야 한다. ITX-청춘 등 KTX 외 열차를 조회했다면 상세 좌석 조회에도 같은 값을 사용한다.
139
139
 
140
140
  ```bash
141
- python3 scripts/ktx_booking.py seats 남춘천 용산 20260503 150000 \
141
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- seats 남춘천 용산 20260503 150000 \
142
142
  --train-id <train_id> \
143
143
  --train-type itx-cheongchun \
144
144
  --available-only
@@ -159,13 +159,13 @@ python3 scripts/ktx_booking.py seats 남춘천 용산 20260503 150000 \
159
159
  조회 결과의 `train_id` 를 고른 뒤에만 예약한다. 이 값은 helper 가 열차 번호/운행일/시각/역 코드를 묶어 만든 stable selector 이므로, 재조회 시 같은 열차가 아직 있으면 그대로 잡고 없으면 실패한다.
160
160
 
161
161
  ```bash
162
- python3 scripts/ktx_booking.py reserve 서울 부산 20260328 090000 --train-id <train_id> --seat-option general-first
162
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- reserve 서울 부산 20260328 090000 --train-id <train_id> --seat-option general-first
163
163
  ```
164
164
 
165
165
  ITX 등 KTX 외 노선을 search 단계에서 골랐다면 reserve 에도 똑같이 `--train-type` 을 넘긴다.
166
166
 
167
167
  ```bash
168
- python3 scripts/ktx_booking.py reserve 남춘천 용산 20260503 150000 --train-id <train_id> --train-type itx-cheongchun --seat-option general-first
168
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- reserve 남춘천 용산 20260503 150000 --train-id <train_id> --train-type itx-cheongchun --seat-option general-first
169
169
  ```
170
170
 
171
171
  응답에는 예약번호, 운임, 구입기한이 포함된다. 이 시점에 **좌석 확보는 완료되었다**고 안내한다. generic fallback에서는 결제를 handoff하고, 돌쇠에서는 아래 결제 단계로 계속 진행한다.
@@ -176,19 +176,19 @@ python3 scripts/ktx_booking.py reserve 남춘천 용산 20260503 150000 --train-
176
176
  N카드 할인을 적용하려면 먼저 보유 N카드 목록을 조회해 카드 번호를 확인한다.
177
177
 
178
178
  ```bash
179
- python3 scripts/ktx_booking.py ncard-list
179
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- ncard-list
180
180
  ```
181
181
 
182
182
  N카드로 할인 열차를 조회한다 (`--ncard-index` 는 `ncard-list` 결과의 순번). `ncard-list` 는 로그/셸 노출을 줄이기 위해 카드 번호를 마스킹해 출력한다.
183
183
 
184
184
  ```bash
185
- python3 scripts/ktx_booking.py ncard-search 대전 서울 20260512 100000 --ncard-index 1 --train-type ktx
185
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- ncard-search 대전 서울 20260512 100000 --ncard-index 1 --train-type ktx
186
186
  ```
187
187
 
188
188
  응답의 `train_id` 를 복사해 `reserve` 에 같은 `--ncard-index` 를 붙여 예약한다.
189
189
 
190
190
  ```bash
191
- python3 scripts/ktx_booking.py reserve 대전 서울 20260512 100000 \
191
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- reserve 대전 서울 20260512 100000 \
192
192
  --train-id <train_id> \
193
193
  --ncard-index 1
194
194
  ```
@@ -213,13 +213,13 @@ N카드 기능은 `korail2-ncard` 패키지가 필요하다. 없으면 해당
213
213
  취소는 대상 예약을 다시 조회해 식별한 뒤에만 진행한다.
214
214
 
215
215
  ```bash
216
- python3 scripts/ktx_booking.py reservations
216
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- reservations
217
217
  ```
218
218
 
219
219
  취소 실행 직전에 `clarify`로 예약번호, 열차, 날짜·시각, 승객, 환불/위약금 정보를 확인하고 승인받는다.
220
220
 
221
221
  ```bash
222
- python3 scripts/ktx_booking.py cancel <reservation_id>
222
+ npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- cancel <reservation_id>
223
223
  ```
224
224
 
225
225
  ## Done when