@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
@@ -6,5 +6,11 @@
6
6
  "browser",
7
7
  "action:booking"
8
8
  ],
9
- "frontmatter": "name: ktx-booking\ndescription: Search, reserve, inspect, and cancel KTX or Korail tickets in Korea with the korail2 + pycryptodome Python packages. Use when the user asks for KTX seats, Korail bookings, train changes, reservation status, remaining seat numbers, car-by-car seats, or power-outlet/good-seat tips. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.\nlicense: MIT\nmetadata:\n category: travel\n locale: ko-KR\n phase: v1"
9
+ "frontmatter": "name: ktx-booking\ndescription: Search, reserve, inspect, and cancel KTX or Korail tickets in Korea with the korail2 + pycryptodome Python packages. Use when the user asks for KTX seats, Korail bookings, train changes, reservation status, remaining seat numbers, car-by-car seats, or power-outlet/good-seat tips. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.\nlicense: MIT\nmetadata:\n category: travel\n locale: ko-KR\n phase: v1",
10
+ "bundle": [
11
+ {
12
+ "from": "scripts/ktx_booking.py",
13
+ "to": "scripts/ktx_booking.py"
14
+ }
15
+ ]
10
16
  }
@@ -115,21 +115,21 @@ JS
115
115
  직접 API를 호출해도 되지만, local skill pipeline에서는 아래 스크립트 사용을 우선 권장한다.
116
116
 
117
117
  ```bash
118
- node ./lck-analytics/scripts/sync-oracle.js \
118
+ npx -y @nomadamas/k-skill@0 exec lck-analytics scripts/sync-oracle.js -- \
119
119
  --csv ./lck-analytics/samples/oracle-lck-sample.csv
120
120
  ```
121
121
 
122
122
  ### 3. Match analysis via local pipeline script
123
123
 
124
124
  ```bash
125
- node ./lck-analytics/scripts/build-match-report.js \
125
+ npx -y @nomadamas/k-skill@0 exec lck-analytics scripts/build-match-report.js -- \
126
126
  --date 2026-04-01
127
127
  ```
128
128
 
129
129
  필요하면 팀 필터도 같이 준다.
130
130
 
131
131
  ```bash
132
- node ./lck-analytics/scripts/build-match-report.js \
132
+ npx -y @nomadamas/k-skill@0 exec lck-analytics scripts/build-match-report.js -- \
133
133
  --date 2026-04-01 \
134
134
  --team 한화
135
135
  ```
@@ -137,7 +137,7 @@ node ./lck-analytics/scripts/build-match-report.js \
137
137
  ### 4. Game analysis with turning points via local pipeline script
138
138
 
139
139
  ```bash
140
- node ./lck-analytics/scripts/analyze-live-game.js \
140
+ npx -y @nomadamas/k-skill@0 exec lck-analytics scripts/analyze-live-game.js -- \
141
141
  --game game-id
142
142
  ```
143
143
 
File without changes
File without changes
File without changes
@@ -45,11 +45,11 @@
45
45
  ## CLI examples
46
46
 
47
47
  ```bash
48
- python3 localdata-business-status/scripts/localdata_business_status.py \
48
+ npx -y @nomadamas/k-skill@0 exec localdata-business-status scripts/localdata_business_status.py -- \
49
49
  --name "호텔샬롬" --region 제주제주시 --industry 숙박업
50
50
 
51
51
  # 업종 여러 개
52
- python3 localdata-business-status/scripts/localdata_business_status.py \
52
+ npx -y @nomadamas/k-skill@0 exec localdata-business-status scripts/localdata_business_status.py -- \
53
53
  --name "○○약국" --region 서울종로구 --industry 약국
54
54
  ```
55
55
 
@@ -25,7 +25,7 @@ red flag 가 있으면 API 조회보다 **즉시 119·응급실·의료진 연
25
25
 
26
26
  - 인터넷 연결
27
27
  - `python3`
28
- - 설치된 skill payload 안에 `scripts/mfds_drug_safety.py` helper 포함
28
+ - `@nomadamas/k-skill` CLI에 번들된 `scripts/mfds_drug_safety.py` helper
29
29
  - `k-skill-proxy`의 `/v1/mfds/drug-safety/lookup` route가 있는 hosted/self-host 프록시에 접근 가능할 것
30
30
 
31
31
  ## Credential requirements
@@ -62,13 +62,13 @@ red flag 가 있으면 API 조회보다 **즉시 119·응급실·의료진 연
62
62
  ## CLI examples
63
63
 
64
64
  ```bash
65
- python3 scripts/mfds_drug_safety.py interview \
65
+ npx -y @nomadamas/k-skill@0 exec mfds-drug-safety scripts/mfds_drug_safety.py -- interview \
66
66
  --question "타이레놀이랑 판콜 같이 먹어도 되나요?" \
67
67
  --symptoms "두드러기와 어지러움"
68
68
  ```
69
69
 
70
70
  ```bash
71
- python3 scripts/mfds_drug_safety.py lookup --item-name "타이레놀" --item-name "판콜"
71
+ npx -y @nomadamas/k-skill@0 exec mfds-drug-safety scripts/mfds_drug_safety.py -- lookup --item-name "타이레놀" --item-name "판콜"
72
72
  ```
73
73
 
74
74
  ## Response policy
@@ -3,7 +3,6 @@
3
3
  "description": "식약처 공공 OpenAPI를 k-skill-proxy 경유로 조회하기 전에 증상·복용상황을 반드시 되묻는 인터뷰형 의약품 안전 체크 스킬.",
4
4
  "profiles": [
5
5
  "proxy",
6
- "vault",
7
6
  "lookup"
8
7
  ],
9
8
  "frontmatter": "name: mfds-drug-safety\ndescription: 식약처 공공 OpenAPI를 k-skill-proxy 경유로 조회하기 전에 증상·복용상황을 반드시 되묻는 인터뷰형 의약품 안전 체크 스킬.\nlicense: MIT\nmetadata:\n category: public-health\n locale: ko-KR\n phase: v1"
@@ -35,7 +35,7 @@ red flag 가 있으면 식품 조회보다 **즉시 응급실·119·의료진
35
35
 
36
36
  - 인터넷 연결
37
37
  - `python3`
38
- - 설치된 skill payload 안에 `scripts/mfds_food_safety.py` helper 포함
38
+ - `@nomadamas/k-skill` CLI에 번들된 `scripts/mfds_food_safety.py` helper
39
39
  - `k-skill-proxy`의 food-safety route들이 있는 hosted/self-host 프록시에 접근 가능할 것
40
40
 
41
41
  ## Credential requirements
@@ -89,25 +89,25 @@ red flag 가 있으면 식품 조회보다 **즉시 응급실·119·의료진
89
89
  ## CLI examples
90
90
 
91
91
  ```bash
92
- python3 scripts/mfds_food_safety.py interview \
92
+ npx -y @nomadamas/k-skill@0 exec mfds-food-safety scripts/mfds_food_safety.py -- interview \
93
93
  --question "이 김밥 먹어도 되나요?" \
94
94
  --symptoms "복통과 설사"
95
95
  ```
96
96
 
97
97
  ```bash
98
- python3 scripts/mfds_food_safety.py search --query "김밥" --limit 5
98
+ npx -y @nomadamas/k-skill@0 exec mfds-food-safety scripts/mfds_food_safety.py -- search --query "김밥" --limit 5
99
99
  ```
100
100
 
101
101
  ```bash
102
- python3 scripts/mfds_food_safety.py product-report --query "차전자피" --limit 5
102
+ npx -y @nomadamas/k-skill@0 exec mfds-food-safety scripts/mfds_food_safety.py -- product-report --query "차전자피" --limit 5
103
103
  ```
104
104
 
105
105
  ```bash
106
- python3 scripts/mfds_food_safety.py health-food-ingredient --query "스타놀" --limit 5
106
+ npx -y @nomadamas/k-skill@0 exec mfds-food-safety scripts/mfds_food_safety.py -- health-food-ingredient --query "스타놀" --limit 5
107
107
  ```
108
108
 
109
109
  ```bash
110
- python3 scripts/mfds_food_safety.py inspection-fail --query "쪽갓" --limit 5
110
+ npx -y @nomadamas/k-skill@0 exec mfds-food-safety scripts/mfds_food_safety.py -- inspection-fail --query "쪽갓" --limit 5
111
111
  ```
112
112
 
113
113
  ## Response policy
@@ -3,7 +3,6 @@
3
3
  "description": "식약처/식품안전나라 공개 표면을 k-skill-proxy 경유로 조회하기 전에 증상·섭취상황을 반드시 되묻는 인터뷰형 식품 안전 체크 스킬.",
4
4
  "profiles": [
5
5
  "proxy",
6
- "vault",
7
6
  "lookup"
8
7
  ],
9
8
  "frontmatter": "name: mfds-food-safety\ndescription: 식약처/식품안전나라 공개 표면을 k-skill-proxy 경유로 조회하기 전에 증상·섭취상황을 반드시 되묻는 인터뷰형 식품 안전 체크 스킬.\nlicense: MIT\nmetadata:\n category: public-health\n locale: ko-KR\n phase: v1"
@@ -96,7 +96,7 @@ gemini mcp add -t http -s user myrealtrip https://mcp-servers.myrealtrip.com/mcp
96
96
  ### 2. 도구 목록과 입력 스키마를 확인한다
97
97
 
98
98
  ```bash
99
- python3 myrealtrip-search/scripts/myrealtrip_mcp.py tools
99
+ npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- tools
100
100
  ```
101
101
 
102
102
  ### 3. 항공권 검색
@@ -104,7 +104,7 @@ python3 myrealtrip-search/scripts/myrealtrip_mcp.py tools
104
104
  국내선은 두 공항이 모두 한국일 때만 사용한다.
105
105
 
106
106
  ```bash
107
- python3 myrealtrip-search/scripts/myrealtrip_mcp.py call searchDomesticFlights \
107
+ npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call searchDomesticFlights \
108
108
  --arg origin=GMP \
109
109
  --arg destination=CJU \
110
110
  --arg departDate=2026-05-20 \
@@ -114,14 +114,14 @@ python3 myrealtrip-search/scripts/myrealtrip_mcp.py call searchDomesticFlights \
114
114
  국제선은 해외 목적지일 때 사용한다. 사용자가 출발 공항을 말하지 않으면 인천(`ICN`)을 기본값으로 둔다.
115
115
 
116
116
  ```bash
117
- python3 myrealtrip-search/scripts/myrealtrip_mcp.py call searchInternationalFlights \
117
+ npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call searchInternationalFlights \
118
118
  --json '{"tripType":"ROUND_TRIP","origin":"ICN","destination":"KIX","departDate":"2026-06-10","returnDate":"2026-06-14","passengers":{"adults":1,"children":0,"infants":0},"maxResults":5}'
119
119
  ```
120
120
 
121
121
  날짜가 유동적인 최저가 요청은 캘린더를 먼저 본다. 캘린더 가격은 캐시/추정값이므로, 최종 답변 전에 실제 검색 도구로 후보 날짜를 다시 확인한다.
122
122
 
123
123
  ```bash
124
- python3 myrealtrip-search/scripts/myrealtrip_mcp.py call flightsFareCalendar \
124
+ npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call flightsFareCalendar \
125
125
  --arg from=ICN \
126
126
  --arg to=NRT \
127
127
  --arg departureDate=2026-06-01 \
@@ -132,20 +132,20 @@ python3 myrealtrip-search/scripts/myrealtrip_mcp.py call flightsFareCalendar \
132
132
  특가/할인 항공사 요청은 프로모션 항공사를 먼저 확인한다.
133
133
 
134
134
  ```bash
135
- python3 myrealtrip-search/scripts/myrealtrip_mcp.py call getPromotionAirlines
135
+ npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call getPromotionAirlines
136
136
  ```
137
137
 
138
138
  ### 4. 숙소 검색과 상세 조회
139
139
 
140
140
  ```bash
141
- python3 myrealtrip-search/scripts/myrealtrip_mcp.py call searchStays \
141
+ npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call searchStays \
142
142
  --json '{"keyword":"부산 해운대","checkIn":"2026-06-10","checkOut":"2026-06-12","adultCount":2,"childCount":0,"isDomestic":true,"order":"recommended","minReviewRating":4.0}'
143
143
  ```
144
144
 
145
145
  사용자가 특정 숙소의 객실, 가격, 편의시설, 리뷰, 취소정책을 묻거나 "자세히"를 요청하면 `searchStays` 결과의 `gid`로 상세를 이어서 호출한다.
146
146
 
147
147
  ```bash
148
- python3 myrealtrip-search/scripts/myrealtrip_mcp.py call getStayDetail \
148
+ npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call getStayDetail \
149
149
  --json '{"gid":123456,"checkIn":"2026-06-10","checkOut":"2026-06-12","adultCount":2,"childCount":0}'
150
150
  ```
151
151
 
@@ -154,13 +154,13 @@ python3 myrealtrip-search/scripts/myrealtrip_mcp.py call getStayDetail \
154
154
  도시별 카테고리 필터를 쓰려면 카테고리 값을 추측하지 말고 먼저 조회한다.
155
155
 
156
156
  ```bash
157
- python3 myrealtrip-search/scripts/myrealtrip_mcp.py call getCategoryList --arg city=Osaka
157
+ npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call getCategoryList --arg city=Osaka
158
158
  ```
159
159
 
160
160
  검색어는 한국어가 가장 잘 맞는다.
161
161
 
162
162
  ```bash
163
- python3 myrealtrip-search/scripts/myrealtrip_mcp.py call searchTnas \
163
+ npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call searchTnas \
164
164
  --arg query="오사카 유니버설 스튜디오" \
165
165
  --arg perPage=5
166
166
  ```
@@ -168,14 +168,14 @@ python3 myrealtrip-search/scripts/myrealtrip_mcp.py call searchTnas \
168
168
  상세는 검색 결과의 `gid`와 `url`을 같이 넘긴다.
169
169
 
170
170
  ```bash
171
- python3 myrealtrip-search/scripts/myrealtrip_mcp.py call getTnaDetail \
171
+ npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call getTnaDetail \
172
172
  --json '{"gid":"123456","url":"https://www.myrealtrip.com/offers/123456"}'
173
173
  ```
174
174
 
175
175
  날짜별 예약 가능 여부와 실제 가격은 `getTnaOptions`로 확인한다.
176
176
 
177
177
  ```bash
178
- python3 myrealtrip-search/scripts/myrealtrip_mcp.py call getTnaOptions \
178
+ npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call getTnaOptions \
179
179
  --json '{"gid":"123456","url":"https://www.myrealtrip.com/offers/123456","selectedDate":"2026-06-10"}'
180
180
  ```
181
181
 
@@ -46,7 +46,7 @@
46
46
  ## CLI examples
47
47
 
48
48
  ```bash
49
- python3 national-pension-workplace/scripts/national_pension_workplace.py \
49
+ npx -y @nomadamas/k-skill@0 exec national-pension-workplace scripts/national_pension_workplace.py -- \
50
50
  --name "삼성전자(주)" --b-no 124-81-00998
51
51
  ```
52
52
 
@@ -3,7 +3,6 @@
3
3
  "description": "국민연금공단 국민연금 가입 사업장 내역을 공공데이터포털 API(k-skill-proxy 경유)로 조회한다. 사업장명으로 가입자수·당월 고지금액·월별 취득/상실 추이를 확인해 그 회사의 직원 규모와 변화를 본다.",
4
4
  "profiles": [
5
5
  "proxy",
6
- "vault",
7
6
  "lookup"
8
7
  ],
9
8
  "frontmatter": "name: national-pension-workplace\ndescription: 국민연금공단 국민연금 가입 사업장 내역을 공공데이터포털 API(k-skill-proxy 경유)로 조회한다. 사업장명으로 가입자수·당월 고지금액·월별 취득/상실 추이를 확인해 그 회사의 직원 규모와 변화를 본다.\nlicense: MIT\nmetadata:\n category: business\n locale: ko-KR\n phase: v1"
@@ -36,7 +36,7 @@
36
36
  ### 1. 진단
37
37
 
38
38
  ```bash
39
- python3 naver-ad-performance/scripts/naver_ad_performance.py doctor
39
+ npx -y @nomadamas/k-skill@0 exec naver-ad-performance scripts/naver_ad_performance.py -- doctor
40
40
  ```
41
41
 
42
42
  키 3개 존재 여부와 `api.searchad.naver.com` 도달 가능 여부를 보여준다. `reachable: false`면 로컬(클로드 코드/코덱스 CLI) 환경에서 다시 실행하도록 안내한다.
@@ -44,16 +44,16 @@ python3 naver-ad-performance/scripts/naver_ad_performance.py doctor
44
44
  ### 2. 구조 조회 (id가 필요할 때)
45
45
 
46
46
  ```bash
47
- python3 naver-ad-performance/scripts/naver_ad_performance.py campaigns
48
- python3 naver-ad-performance/scripts/naver_ad_performance.py adgroups --campaign <nccCampaignId>
49
- python3 naver-ad-performance/scripts/naver_ad_performance.py keywords --adgroup <nccAdgroupId>
47
+ npx -y @nomadamas/k-skill@0 exec naver-ad-performance scripts/naver_ad_performance.py -- campaigns
48
+ npx -y @nomadamas/k-skill@0 exec naver-ad-performance scripts/naver_ad_performance.py -- adgroups --campaign <nccCampaignId>
49
+ npx -y @nomadamas/k-skill@0 exec naver-ad-performance scripts/naver_ad_performance.py -- keywords --adgroup <nccAdgroupId>
50
50
  ```
51
51
 
52
52
  ### 3. 성과 조회 (핵심)
53
53
 
54
54
  ```bash
55
- python3 naver-ad-performance/scripts/naver_ad_performance.py stats --ids <id1,id2> --since 2026-06-01 --until 2026-06-30
56
- python3 naver-ad-performance/scripts/naver_ad_performance.py stats --ids <id> --since 2026-06-01 --until 2026-06-30 --by day
55
+ npx -y @nomadamas/k-skill@0 exec naver-ad-performance scripts/naver_ad_performance.py -- stats --ids <id1,id2> --since 2026-06-01 --until 2026-06-30
56
+ npx -y @nomadamas/k-skill@0 exec naver-ad-performance scripts/naver_ad_performance.py -- stats --ids <id> --since 2026-06-01 --until 2026-06-30 --by day
57
57
  ```
58
58
 
59
59
  `ids`는 캠페인/광고그룹/키워드 id를 콤마로 구분해 섞어 넣을 수 있다. `--since`/`--until`을 생략하면 네이버 기본 기간(최근)으로 조회된다.
@@ -61,7 +61,7 @@ python3 naver-ad-performance/scripts/naver_ad_performance.py stats --ids <id> --
61
61
  ### 4. 키워드 도구
62
62
 
63
63
  ```bash
64
- python3 naver-ad-performance/scripts/naver_ad_performance.py keywordtool --keywords "제주여행,게스트하우스"
64
+ npx -y @nomadamas/k-skill@0 exec naver-ad-performance scripts/naver_ad_performance.py -- keywordtool --keywords "제주여행,게스트하우스"
65
65
  ```
66
66
 
67
67
  ## Signing (참고)
@@ -35,7 +35,7 @@
35
35
  ### 1. 네이버 블로그 검색
36
36
 
37
37
  ```bash
38
- python3 scripts/naver_search.py "검색어" --count 10 --sort sim
38
+ npx -y @nomadamas/k-skill@0 exec naver-blog-research scripts/naver_search.py -- "검색어" --count 10 --sort sim
39
39
  ```
40
40
 
41
41
  | 인자 | 필수 | 설명 | 기본값 |
@@ -68,7 +68,7 @@ python3 scripts/naver_search.py "검색어" --count 10 --sort sim
68
68
  검색 결과에서 관심 있는 포스트의 URL을 선택하여 원문을 읽는다.
69
69
 
70
70
  ```bash
71
- python3 scripts/naver_read.py "https://blog.naver.com/user123/224212849946"
71
+ npx -y @nomadamas/k-skill@0 exec naver-blog-research scripts/naver_read.py -- "https://blog.naver.com/user123/224212849946"
72
72
  ```
73
73
 
74
74
  | 인자 | 필수 | 설명 | 기본값 |
@@ -83,13 +83,13 @@ PC URL을 넣어도 자동으로 모바일 URL로 변환하여 요청한다.
83
83
  ### 3. 이미지 다운로드 (필요 시)
84
84
 
85
85
  ```bash
86
- python3 scripts/naver_download_images.py --urls "url1,url2,url3" --output ./images/
86
+ npx -y @nomadamas/k-skill@0 exec naver-blog-research scripts/naver_download_images.py -- --urls "url1,url2,url3" --output ./images/
87
87
  ```
88
88
 
89
89
  또는 `naver_read.py` 결과를 파이프로 전달:
90
90
 
91
91
  ```bash
92
- python3 scripts/naver_read.py "https://..." | python3 scripts/naver_download_images.py --output ./images/
92
+ npx -y @nomadamas/k-skill@0 exec naver-blog-research scripts/naver_read.py -- "https://..." | npx -y @nomadamas/k-skill@0 exec naver-blog-research scripts/naver_download_images.py -- --output ./images/
93
93
  ```
94
94
 
95
95
  | 인자 | 필수 | 설명 | 기본값 |
@@ -3,7 +3,6 @@
3
3
  "description": "네이버 검색 Open API 뉴스 검색(news.json)을 k-skill-proxy 경유로 조회해 최신 뉴스 기사 제목·발행시각·링크·요약을 보수적으로 정리한다. 사용자는 별도 API 키 발급 없이 호출한다.",
4
4
  "profiles": [
5
5
  "proxy",
6
- "vault",
7
6
  "lookup"
8
7
  ],
9
8
  "frontmatter": "name: naver-news-search\ndescription: 네이버 검색 Open API 뉴스 검색(news.json)을 k-skill-proxy 경유로 조회해 최신 뉴스 기사 제목·발행시각·링크·요약을 보수적으로 정리한다. 사용자는 별도 API 키 발급 없이 호출한다.\nlicense: MIT\nmetadata:\n category: information\n locale: ko-KR\n phase: v1"
@@ -3,8 +3,7 @@
3
3
  "description": "국민건강보험공단 장기요양기관·건강검진기관을 조회하고, 돌쇠에서는 공식 연락·예약 가능 표면까지 이어간다.",
4
4
  "profiles": [
5
5
  "proxy",
6
- "vault",
7
- "action:booking"
6
+ "lookup"
8
7
  ],
9
8
  "frontmatter": "name: nhis-care-checkup-search\ndescription: 국민건강보험공단 장기요양기관·건강검진기관을 조회하고, 돌쇠에서는 공식 연락·예약 가능 표면까지 이어간다.\nlicense: MIT\nmetadata:\n category: healthcare\n locale: ko-KR\n phase: v1"
10
9
  }
@@ -18,7 +18,7 @@
18
18
 
19
19
  - 인터넷 연결
20
20
  - `python3`
21
- - 설치된 skill payload 안에 `scripts/nts_business_registration.py` helper 포함
21
+ - `@nomadamas/k-skill` CLI에 번들된 `scripts/nts_business_registration.py` helper
22
22
  - hosted/self-host `k-skill-proxy`의 `/v1/nts-business/status`, `/v1/nts-business/validate` route 접근 가능
23
23
 
24
24
  ## Credential requirements
@@ -78,12 +78,12 @@
78
78
  ## CLI examples
79
79
 
80
80
  ```bash
81
- python3 scripts/nts_business_registration.py status \
81
+ npx -y @nomadamas/k-skill@0 exec nts-business-registration scripts/nts_business_registration.py -- status \
82
82
  --b-no 123-45-67890
83
83
  ```
84
84
 
85
85
  ```bash
86
- python3 scripts/nts_business_registration.py validate \
86
+ npx -y @nomadamas/k-skill@0 exec nts-business-registration scripts/nts_business_registration.py -- validate \
87
87
  --business-json '{"b_no":"123-45-67890","start_dt":"2020-01-31","p_nm":"홍길동","b_nm":"테스트상사"}'
88
88
  ```
89
89
 
@@ -41,7 +41,7 @@
41
41
  ## CLI examples
42
42
 
43
43
  ```bash
44
- python3 nts-tax-delinquency/scripts/nts_tax_delinquency.py --name "○○건설"
44
+ npx -y @nomadamas/k-skill@0 exec nts-tax-delinquency scripts/nts_tax_delinquency.py -- --name "○○건설"
45
45
  ```
46
46
 
47
47
  ## Failure modes
@@ -53,7 +53,7 @@
53
53
  오늘의집 오늘의딜 공개 페이지에서 상품 목록을 가져온다. 기본 정렬은 할인율 높은 순이다.
54
54
 
55
55
  ```bash
56
- python3 ohou-today-deal/scripts/ohou_today_deal.py list --limit 10
56
+ npx -y @nomadamas/k-skill@0 exec ohou-today-deal scripts/ohou_today_deal.py -- list --limit 10
57
57
  ```
58
58
 
59
59
  응답 예시:
@@ -95,7 +95,7 @@ python3 ohou-today-deal/scripts/ohou_today_deal.py list --limit 10
95
95
  `bestDiscountPrice.discountRate`(쿠폰/결제혜택 반영 할인율)가 있으면 우선 사용하고, 없으면 상품 기본 `discountRate`를 사용한다.
96
96
 
97
97
  ```bash
98
- python3 ohou-today-deal/scripts/ohou_today_deal.py list \
98
+ npx -y @nomadamas/k-skill@0 exec ohou-today-deal scripts/ohou_today_deal.py -- list \
99
99
  --sort discount \
100
100
  --limit 5
101
101
  ```
@@ -107,7 +107,7 @@ python3 ohou-today-deal/scripts/ohou_today_deal.py list \
107
107
  상품명 또는 브랜드에 키워드가 포함된 상품만 걸러내고, 최소 할인율과 무료배송 조건을 조합할 수 있다.
108
108
 
109
109
  ```bash
110
- python3 ohou-today-deal/scripts/ohou_today_deal.py list \
110
+ npx -y @nomadamas/k-skill@0 exec ohou-today-deal scripts/ohou_today_deal.py -- list \
111
111
  --query 러그 \
112
112
  --min-discount 30 \
113
113
  --free-delivery \
@@ -119,7 +119,7 @@ python3 ohou-today-deal/scripts/ohou_today_deal.py list \
119
119
  실제 네트워크 없이 저장된 HTML/JSON 파일로 동일한 파싱을 테스트한다.
120
120
 
121
121
  ```bash
122
- python3 ohou-today-deal/scripts/ohou_today_deal.py list \
122
+ npx -y @nomadamas/k-skill@0 exec ohou-today-deal scripts/ohou_today_deal.py -- list \
123
123
  --html-file ./today-deals.html \
124
124
  --limit 3
125
125
  ```
File without changes
@@ -57,21 +57,21 @@ KSKILL_POPBILL_USER_ID=
57
57
 
58
58
  ```bash
59
59
  # 시크릿 파일 권한과 필수 env 존재 확인. 실제 secret 값은 출력하지 않는다.
60
- uv run popbill/scripts/popbill_cli.py config-check
60
+ npx -y @nomadamas/k-skill@0 exec popbill scripts/popbill_cli.py -- config-check
61
61
 
62
62
  # 특정 SDK service method 목록과 approval 필요 여부 확인
63
- uv run popbill/scripts/popbill_cli.py methods taxinvoice
64
- uv run popbill/scripts/popbill_cli.py methods kakao
63
+ npx -y @nomadamas/k-skill@0 exec popbill scripts/popbill_cli.py -- methods taxinvoice
64
+ npx -y @nomadamas/k-skill@0 exec popbill scripts/popbill_cli.py -- methods kakao
65
65
 
66
66
  # 안전한 SDK 객체 템플릿 출력
67
- uv run popbill/scripts/popbill_cli.py object-template taxinvoice
68
- uv run popbill/scripts/popbill_cli.py object-template cashbill
67
+ npx -y @nomadamas/k-skill@0 exec popbill scripts/popbill_cli.py -- object-template taxinvoice
68
+ npx -y @nomadamas/k-skill@0 exec popbill scripts/popbill_cli.py -- object-template cashbill
69
69
 
70
70
  # 테스트 환경에서 안전한 회원/파트너 잔액 smoke test
71
- uv run popbill/scripts/popbill_cli.py health taxinvoice
71
+ npx -y @nomadamas/k-skill@0 exec popbill scripts/popbill_cli.py -- health taxinvoice
72
72
 
73
73
  # 휴폐업 단건 조회
74
- uv run popbill/scripts/popbill_cli.py closedown-check --target-corp-num 123-45-67890
74
+ npx -y @nomadamas/k-skill@0 exec popbill scripts/popbill_cli.py -- closedown-check --target-corp-num 123-45-67890
75
75
  ```
76
76
 
77
77
  ## Generic SDK call
@@ -79,7 +79,7 @@ uv run popbill/scripts/popbill_cli.py closedown-check --target-corp-num 123-45-6
79
79
  전체 Popbill SDK 기능은 아래 형태로 호출한다.
80
80
 
81
81
  ```bash
82
- uv run popbill/scripts/popbill_cli.py call <service> <method> \
82
+ npx -y @nomadamas/k-skill@0 exec popbill scripts/popbill_cli.py -- call <service> <method> \
83
83
  --args-json '["@corp", "arg2"]' \
84
84
  --kwargs-json '{"UserID":"optional-user"}'
85
85
  ```
@@ -116,7 +116,7 @@ uv run popbill/scripts/popbill_cli.py call <service> <method> \
116
116
  발행·전송·삭제·취소처럼 되돌리기 어려운 동작은 사용자의 현재 턴 승인을 받은 뒤에만 실행한다.
117
117
 
118
118
  ```bash
119
- uv run popbill/scripts/popbill_cli.py call taxinvoice registIssue \
119
+ npx -y @nomadamas/k-skill@0 exec popbill scripts/popbill_cli.py -- call taxinvoice registIssue \
120
120
  --args-json '["@corp", {"__kind__":"taxinvoice", "...":"..."}]' \
121
121
  --yes-i-understand
122
122
  ```
@@ -3,7 +3,6 @@
3
3
  "description": "Korean apartment/officetel/villa/single-house real transaction price and rent lookups via k-skill-proxy. Based on tae0y's real-estate-mcp and MOLIT public data APIs.",
4
4
  "profiles": [
5
5
  "proxy",
6
- "vault",
7
6
  "lookup"
8
7
  ],
9
8
  "frontmatter": "name: real-estate-search\ndescription: Korean apartment/officetel/villa/single-house real transaction price and rent lookups via k-skill-proxy. Based on tae0y's real-estate-mcp and MOLIT public data APIs.\nlicense: MIT\nmetadata:\n category: real-estate\n locale: ko-KR\n phase: v1"
@@ -2,8 +2,9 @@
2
2
  "name": "s2b-notice-search",
3
3
  "description": "S2B 학교장터 공개 고객 공고/견적요청 목록을 브라우저 우선으로 조회하고 fixture HTML을 파싱해 공고 메타데이터를 정리한다. 돌쇠에서는 가능한 가장 가까운 합법적 공식 단계까지 준비한다.",
4
4
  "profiles": [
5
+ "vault",
5
6
  "browser",
6
- "hard-boundary"
7
+ "legal"
7
8
  ],
8
9
  "frontmatter": "name: s2b-notice-search\ndescription: S2B 학교장터 공개 고객 공고/견적요청 목록을 브라우저 우선으로 조회하고 fixture HTML을 파싱해 공고 메타데이터를 정리한다. 돌쇠에서는 가능한 가장 가까운 합법적 공식 단계까지 준비한다.\nlicense: MIT\nmetadata:\n category: procurement\n locale: ko-KR\n phase: v1"
9
10
  }
@@ -2,8 +2,9 @@
2
2
  "name": "saramin-talent-search",
3
3
  "description": "사람인 기업회원 인재풀 로그인 세션에서 마스킹된 후보 정보를 검색·비교해 유료 열람 전 shortlist를 만듭니다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.",
4
4
  "profiles": [
5
+ "vault",
5
6
  "browser",
6
- "action:communication"
7
+ "action:recruiting"
7
8
  ],
8
9
  "frontmatter": "name: saramin-talent-search\ndescription: 사람인 기업회원 인재풀 로그인 세션에서 마스킹된 후보 정보를 검색·비교해 유료 열람 전 shortlist를 만듭니다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.\nlicense: MIT\nmetadata:\n category: recruiting\n locale: ko-KR\n phase: v1"
9
10
  }
@@ -22,7 +22,7 @@
22
22
  ## Single entrypoint
23
23
 
24
24
  ```bash
25
- python3 "$SKILL_DIR/scripts/seoul_bike.py" <subcommand> [args]
25
+ npx -y @nomadamas/k-skill@0 exec seoul-bike scripts/seoul_bike.py -- <subcommand> [args]
26
26
  ```
27
27
 
28
28
  첫 사용 시 `Bash(python3 *seoul_bike.py:*)` 패턴 한 번만 승인하면 이후 호출은 모두 자동 허용된다.
@@ -40,7 +40,7 @@ python3 "$SKILL_DIR/scripts/seoul_bike.py" <subcommand> [args]
40
40
  ### 1. 현재 위치 주변 대여소 조회
41
41
 
42
42
  ```bash
43
- python3 "$SKILL_DIR/scripts/seoul_bike.py" nearby --lat 37.5717 --lon 126.9763 --radius-m 500
43
+ npx -y @nomadamas/k-skill@0 exec seoul-bike scripts/seoul_bike.py -- nearby --lat 37.5717 --lon 126.9763 --radius-m 500
44
44
  ```
45
45
 
46
46
  요약 항목:
@@ -54,7 +54,7 @@ python3 "$SKILL_DIR/scripts/seoul_bike.py" nearby --lat 37.5717 --lon 126.9763 -
54
54
  ### 2. 대여소 이름 검색
55
55
 
56
56
  ```bash
57
- python3 "$SKILL_DIR/scripts/seoul_bike.py" search "광화문" --limit 5
57
+ npx -y @nomadamas/k-skill@0 exec seoul-bike scripts/seoul_bike.py -- search "광화문" --limit 5
58
58
  ```
59
59
 
60
60
  ### 3. Proxy endpoints
File without changes
@@ -3,7 +3,6 @@
3
3
  "description": "서울 따릉이 실시간 대여소의 대여 가능 자전거와 빈 거치대를 좌표 주변 또는 대여소 이름으로 조회한다.",
4
4
  "profiles": [
5
5
  "proxy",
6
- "vault",
7
6
  "lookup"
8
7
  ],
9
8
  "frontmatter": "name: seoul-bike\ndescription: 서울 따릉이 실시간 대여소의 대여 가능 자전거와 빈 거치대를 좌표 주변 또는 대여소 이름으로 조회한다.\nlicense: MIT\nmetadata:\n category: transit\n locale: ko-KR\n phase: v1"
@@ -26,7 +26,7 @@
26
26
 
27
27
  ```bash
28
28
  # macOS / Linux / Git-bash
29
- python3 "$SKILL_DIR/scripts/seoul_density.py" <subcommand> [args]
29
+ npx -y @nomadamas/k-skill@0 exec seoul-density scripts/seoul_density.py -- <subcommand> [args]
30
30
 
31
31
  # Windows (PowerShell): py 런처 또는 python
32
32
  py -3 "$env:SKILL_DIR\scripts\seoul_density.py" <subcommand> [args]
@@ -51,7 +51,7 @@ py -3 "$env:SKILL_DIR\scripts\seoul_density.py" <subcommand> [args]
51
51
  사용자가 "홍대 인파"처럼 모호하게 말하면 먼저 후보를 확인한다.
52
52
 
53
53
  ```bash
54
- python3 "$SKILL_DIR/scripts/seoul_density.py" match "홍대" --json
54
+ npx -y @nomadamas/k-skill@0 exec seoul-density scripts/seoul_density.py -- match "홍대" --json
55
55
  # → ["홍대 관광특구", "홍대입구역(2호선)"]
56
56
  ```
57
57
 
@@ -63,7 +63,7 @@ python3 "$SKILL_DIR/scripts/seoul_density.py" match "홍대" --json
63
63
 
64
64
  ```bash
65
65
  # macOS / Linux / Git-bash
66
- python3 "$SKILL_DIR/scripts/seoul_density.py" query "강남역"
66
+ npx -y @nomadamas/k-skill@0 exec seoul-density scripts/seoul_density.py -- query "강남역"
67
67
 
68
68
  # Windows PowerShell
69
69
  py -3 "$env:SKILL_DIR\scripts\seoul_density.py" query "강남역"
@@ -82,7 +82,7 @@ py -3 "$env:SKILL_DIR\scripts\seoul_density.py" query "강남역"
82
82
  기계적 후처리가 필요하면 `--json` 플래그를 쓴다:
83
83
 
84
84
  ```bash
85
- python3 "$SKILL_DIR/scripts/seoul_density.py" query "강남역" --json
85
+ npx -y @nomadamas/k-skill@0 exec seoul-density scripts/seoul_density.py -- query "강남역" --json
86
86
  ```
87
87
 
88
88
  자동 매칭을 끄고 싶으면 `--no-auto`를 쓴다.
@@ -3,7 +3,6 @@
3
3
  "description": "서울 주요 121개 핫스팟 장소의 실시간 혼잡도와 인구 현황을 조회한다. 지금 강남역이 얼마나 붐비는지, 홍대 인파가 얼마나 되는지 물어볼 때 사용한다.",
4
4
  "profiles": [
5
5
  "proxy",
6
- "vault",
7
6
  "lookup"
8
7
  ],
9
8
  "frontmatter": "name: seoul-density\ndescription: 서울 주요 121개 핫스팟 장소의 실시간 혼잡도와 인구 현황을 조회한다. 지금 강남역이 얼마나 붐비는지, 홍대 인파가 얼마나 되는지 물어볼 때 사용한다.\nlicense: MIT\nmetadata:\n category: utility\n locale: ko-KR\n phase: v1"