#176 by GitHub stars
NomaDamas/k-skill
한국인을 위한 스킬 모음집 - 에이전트를 한국인으로
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
animal-pharmacy-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
assembly-bill-vote-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
bccard-eatpl-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
biz-health-check/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
boim-business-search/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → a63290d56c00
No earlier version was observed for comparison.
bok-ecos-stats/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
building-register-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
bunjang-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
cheap-gas-nearby/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
company-analysis/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
consumer-price-safety-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
corporate-registration-consulting/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
coupang-product-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
court-auction-notice-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
court-payment-order-assistant/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
d2b-notice-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
daangn-cars-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
daangn-jobs-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
daangn-realty-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
daangn-used-goods-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
daishin-report-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
daiso-product-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
danawa-price-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
delivery-tracking/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
donation-place-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
emergency-room-beds/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
ev-charger-nearby/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
ev-subsidy-status/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
express-bus-booking/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
fine-dust-location/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
flight-ticket-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
foresttrip-vacancy/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
fsc-corporate-info/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
g2b-order-plan-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
g2b-sanctioned-supplier/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
geeknews-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
gongsijiga-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
gov-overseas-trip-report/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
government-bond-analysis/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
government-support-survey/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
han-river-water-level/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
hankookilbo-news/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
heyyumi/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
highway-traffic-status/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
hola-poke-yeoksam/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
household-waste-info/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
housing-official-price/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
housing-subscription-reference/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → a63290d56c00
No earlier version was observed for comparison.
hwp/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
intercity-bus-booking/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
iros-registry-automation/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
job-posting-match/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
jobkorea-talent-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
joseon-sillok-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
k-dart/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
k-schoollunch-menu/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
k-skill-cleaner/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
k-skill-setup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
kakao-bar-nearby/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
kakao-map/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
kakaotalk-mac/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
kamis-food-price/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
kbl-results/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
kbo-results/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
keris-academic-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
kleague-results/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
komsa-ferry-info/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
kopis-performance-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korea-weather/SKILL.md
Week of Nov 2, 2026 · +1 / −1 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
- 3 description: 한국 날씨를 기상청 단기예보 조회서비스와 프록시 경유로 조회해 요약한다.
+ 3 description: 한국 날씨를 기상청 단기예보 조회서비스(초단기예보·초단기실황 포함)와 프록시 경유로 조회해 요약한다.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-bond-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-character-count/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-cinema-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-heritage-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-holiday-calendar/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-humanizer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-jangbu-for/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-law-search/SKILL.md
Week of Nov 2, 2026 · +1 / −1 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
- 3 description: Search Korean statutes, articles, precedents, interpretations, and local ordinances via k-skill-proxy. Use when the user asks for Korean law/article/precedent lookups.
+ 3 description: Search Korean statutes, articles, precedents, interpretations, and local ordinances via k-skill-proxy, and draft 신・구조문대비표 (old/new article comparison tables, optional HWPX). Use when the user asks for Korean law/article/precedent lookups or an amendment comparison table.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-marathon-schedule/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-middle-korean/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-patent-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-privacy-terms/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-scholarship-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-slang-writing/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-spell-check/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-stock-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
korean-transit-route/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
kosis-stats/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
kpic-drug-search/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → a63290d56c00
No earlier version was observed for comparison.
kr-whois-lookup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
kstartup-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
lck-analytics/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
lh-notice-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
library-book-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
localdata-business-status/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
lotto-results/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
market-event-impact/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
market-kurly-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
mfds-drug-safety/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
mfds-food-safety/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
mofa-travel-safety/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
multi-asset-morning-briefing/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
myrealtrip-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
naming-house/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
national-pension-workplace/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
naver-ad-performance/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
naver-blog-research/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
naver-news-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
naver-shopping-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
nhis-care-checkup-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
nts-business-registration/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
nts-tax-delinquency/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
ohou-today-deal/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
olive-young-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
parking-lot-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
popbill/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
public-restroom-nearby/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
railway-timetable/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
real-estate-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
religious-facility-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
rhwp-advanced/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
rhwp-edit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
s2b-notice-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
saju-fortune/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
saramin-talent-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
seoul-bike/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
seoul-density/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
seoul-subway-arrival/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
seoul-weather-risk/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
sh-notice-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
sharenuri-facility-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
store-longevity-radar/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
subway-lost-property/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
ticket-availability/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
toss-investment/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
zipcode-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
02081f83ebee → a63290d56c00
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 02081f83ebee
No earlier version was observed for comparison.
Verified commit a63290d56c00e91dccadf29ddd6fe5d484ce2377
git clone --filter=blob:none --no-checkout https://github.com/NomaDamas/k-skill.git .hotskills/nomadamas-k-skill && git -C .hotskills/nomadamas-k-skill checkout --detach a63290d56c00e91dccadf29ddd6fe5d484ce2377
# Copy each selected skill directory from .hotskills/nomadamas-k-skill into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/NomaDamas/k-skill.git .hotskills/nomadamas-k-skill && git -C .hotskills/nomadamas-k-skill checkout --detach a63290d56c00e91dccadf29ddd6fe5d484ce2377
# Copy each selected skill directory from .hotskills/nomadamas-k-skill into .agents/skills/<skill-name>/Heat
6.9- Star growth, last 7 daysAhead of 81% of tracked repositories
- Star growth, last 24 hoursAhead of 84% of tracked repositories
- Rank movement, last 7 daysAhead of 58% of tracked repositories
- Commits, last 30 daysAhead of 92% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- animal-pharmacy-search
animal-pharmacy-search - assembly-bill-vote-search
assembly-bill-vote-search - bccard-eatpl-search
bccard-eatpl-search - biz-health-check
biz-health-check - boim-business-search
boim-business-search - bok-ecos-stats
bok-ecos-stats - building-register-search
building-register-search - bunjang-search
bunjang-search - cheap-gas-nearby
cheap-gas-nearby - company-analysis
company-analysis - consumer-price-safety-search
consumer-price-safety-search - corporate-registration-consulting
corporate-registration-consulting - coupang-product-search
coupang-product-search - court-auction-notice-search
court-auction-notice-search - court-payment-order-assistant
court-payment-order-assistant - d2b-notice-search
d2b-notice-search - daangn-cars-search
daangn-cars-search - daangn-jobs-search
daangn-jobs-search - daangn-realty-search
daangn-realty-search - daangn-used-goods-search
daangn-used-goods-search - daishin-report-search
daishin-report-search - daiso-product-search
daiso-product-search - danawa-price-search
danawa-price-search - delivery-tracking
delivery-tracking - donation-place-search
donation-place-search - emergency-room-beds
emergency-room-beds - ev-charger-nearby
ev-charger-nearby - ev-subsidy-status
ev-subsidy-status - express-bus-booking
express-bus-booking - fine-dust-location
fine-dust-location - flight-ticket-search
flight-ticket-search - foresttrip-vacancy
foresttrip-vacancy - fsc-corporate-info
fsc-corporate-info - g2b-order-plan-search
g2b-order-plan-search - g2b-sanctioned-supplier
g2b-sanctioned-supplier - geeknews-search
geeknews-search - gongsijiga-search
gongsijiga-search - gov-overseas-trip-report
gov-overseas-trip-report - government-bond-analysis
government-bond-analysis - government-support-survey
government-support-survey - han-river-water-level
han-river-water-level - hankookilbo-news
hankookilbo-news - heyyumi
heyyumi - highway-traffic-status
highway-traffic-status - hola-poke-yeoksam
hola-poke-yeoksam - household-waste-info
household-waste-info - housing-official-price
housing-official-price - housing-subscription-reference
housing-subscription-reference - hwp
hwp - intercity-bus-booking
intercity-bus-booking - iros-registry-automation
iros-registry-automation - job-posting-match
job-posting-match - jobkorea-talent-search
jobkorea-talent-search - joseon-sillok-search
joseon-sillok-search - k-dart
k-dart - k-schoollunch-menu
k-schoollunch-menu - k-skill-cleaner
k-skill-cleaner - k-skill-setup
k-skill-setup - kakao-bar-nearby
kakao-bar-nearby - kakao-map
kakao-map - kakaotalk-mac
kakaotalk-mac - kamis-food-price
kamis-food-price - kbl-results
kbl-results - kbo-results
kbo-results - keris-academic-search
keris-academic-search - kleague-results
kleague-results - komsa-ferry-info
komsa-ferry-info - kopis-performance-search
kopis-performance-search - korea-weather
korea-weather - korean-bond-search
korean-bond-search - korean-character-count
korean-character-count - korean-cinema-search
korean-cinema-search - korean-heritage-search
korean-heritage-search - korean-holiday-calendar
korean-holiday-calendar - korean-humanizer
korean-humanizer - korean-jangbu-for
korean-jangbu-for - korean-law-search
korean-law-search - korean-marathon-schedule
korean-marathon-schedule - korean-middle-korean
korean-middle-korean - korean-patent-search
korean-patent-search - korean-privacy-terms
korean-privacy-terms - korean-scholarship-search
korean-scholarship-search - korean-slang-writing
korean-slang-writing - korean-spell-check
korean-spell-check - korean-stock-search
korean-stock-search - korean-transit-route
korean-transit-route - kosis-stats
kosis-stats - kpic-drug-search
kpic-drug-search - kr-whois-lookup
kr-whois-lookup - kstartup-search
kstartup-search - lck-analytics
lck-analytics - lh-notice-search
lh-notice-search - library-book-search
library-book-search - localdata-business-status
localdata-business-status - lotto-results
lotto-results - market-event-impact
market-event-impact - market-kurly-search
market-kurly-search - mfds-drug-safety
mfds-drug-safety - mfds-food-safety
mfds-food-safety - mofa-travel-safety
mofa-travel-safety - multi-asset-morning-briefing
multi-asset-morning-briefing - myrealtrip-search
myrealtrip-search - naming-house
naming-house - national-pension-workplace
national-pension-workplace - naver-ad-performance
naver-ad-performance - naver-blog-research
naver-blog-research - naver-news-search
naver-news-search - naver-shopping-search
naver-shopping-search - nhis-care-checkup-search
nhis-care-checkup-search - nts-business-registration
nts-business-registration - nts-tax-delinquency
nts-tax-delinquency - ohou-today-deal
ohou-today-deal - olive-young-search
olive-young-search - parking-lot-search
parking-lot-search - popbill
popbill - public-restroom-nearby
public-restroom-nearby - railway-timetable
railway-timetable - real-estate-search
real-estate-search - religious-facility-search
religious-facility-search - rhwp-advanced
rhwp-advanced - rhwp-edit
rhwp-edit - s2b-notice-search
s2b-notice-search - saju-fortune
saju-fortune - saramin-talent-search
saramin-talent-search - seoul-bike
seoul-bike - seoul-density
seoul-density - seoul-subway-arrival
seoul-subway-arrival - seoul-weather-risk
seoul-weather-risk - sh-notice-search
sh-notice-search - sharenuri-facility-search
sharenuri-facility-search - store-longevity-radar
store-longevity-radar - subway-lost-property
subway-lost-property - ticket-availability
ticket-availability - toss-investment
toss-investment - zipcode-search
zipcode-search
How it works
animal-pharmacy-search
When your agent uses it
홍익메디케어 공개 MCP 서버로 지역별 동물약국 목록, 동물용의약품 검색, 최근 6개월 구매 이력 기반 취급 약국을 조회한다. 조회 전용.
What it loads into context
Frontmatter
78 tokensAlways available to the agent
SKILL.md
400 tokensWhen the skill is activated
Reference documents
415,600 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/animal_pharmacy_mcp.py../bccard-eatpl-search/scripts/kakao-place-rating.mjs../bccard-eatpl-search/tests/kakao-place-rating.test.js../biz-health-check/scripts/biz_health_check.py../bok-ecos-stats/scripts/bok_ecos.py../bok-ecos-stats/tests/test_bok_ecos.py../building-register-search/scripts/building_register.py../building-register-search/scripts/building_register_xml.py../building-register-search/tests/test_building_register.py../company-analysis/scripts/dart-rows.js../company-analysis/scripts/dart-rows.ts../company-analysis/scripts/evidence.js../company-analysis/scripts/evidence.ts../company-analysis/scripts/fetch-public.js../company-analysis/scripts/fetch-public.ts../company-analysis/tests/evidence.test.js../company-analysis/tests/evidence.test.ts../company-analysis/tests/live-multi.test.ts../company-analysis/tests/run_tests.py../corporate-registration-consulting/scripts/fill_official_hwp.py../daangn-cars-search/scripts/daangn_cars.py../daangn-jobs-search/scripts/daangn_jobs.py../daangn-realty-search/scripts/daangn_detail_ld.py../daangn-realty-search/scripts/daangn_realty.py../daangn-realty-search/scripts/daangn_relay_store.py../daangn-used-goods-search/scripts/daangn_used_goods.py../danawa-price-search/scripts/danawa_search.py../ev-charger-nearby/scripts/ev_charger.py../ev-charger-nearby/tests/test_ev_charger.py../express-bus-booking/scripts/kobus_express_booking.py../express-bus-booking/tests/__init__.py../express-bus-booking/tests/test_kobus_express_booking.py../fine-dust-location/scripts/fine_dust.py../flight-ticket-search/scripts/flight_ticket_search.py../foresttrip-vacancy/scripts/run_foresttrip_vacancy.py../foresttrip-vacancy/tests/__init__.py../foresttrip-vacancy/tests/test_foresttrip_session.py../foresttrip-vacancy/tests/test_run_foresttrip_vacancy.py../fsc-corporate-info/scripts/fsc_corporate_info.py../fsc-corporate-info/scripts/test_fsc_corporate_info.py../g2b-order-plan-search/scripts/g2b_order_plan.py../g2b-sanctioned-supplier/scripts/g2b_sanctioned_supplier.py../g2b-sanctioned-supplier/scripts/test_g2b_sanctioned_supplier.py../geeknews-search/scripts/geeknews_search.py../gov-overseas-trip-report/scripts/gov_overseas_trip_report.py../gov-overseas-trip-report/tests/test_gov_overseas_trip_report.py../government-bond-analysis/scripts/cli.mjs../government-bond-analysis/scripts/collect.mjs../government-bond-analysis/scripts/core.mjs../government-bond-analysis/scripts/dual.mjs../government-bond-analysis/scripts/harness.mjs../government-bond-analysis/scripts/modes.mjs../government-bond-analysis/scripts/news.mjs../government-bond-analysis/scripts/render.mjs../government-bond-analysis/scripts/schedule.mjs../government-bond-analysis/scripts/ust.mjs../government-bond-analysis/src/cli.mts../government-bond-analysis/src/collect.mts../government-bond-analysis/src/core.mts../government-bond-analysis/src/dual.mts../government-bond-analysis/src/harness.mts../government-bond-analysis/src/modes.mts../government-bond-analysis/src/news.mts../government-bond-analysis/src/render.mts../government-bond-analysis/src/schedule.mts../government-bond-analysis/src/ust.mts../government-support-survey/scripts/run_survey.py../government-support-survey/tests/test_run_survey.py../highway-traffic-status/scripts/highway_traffic.py../highway-traffic-status/tests/test_highway_traffic.py../intercity-bus-booking/scripts/intercity_bus_search.py../iros-registry-automation/scripts/iros_pdf_summary.py../iros-registry-automation/tests/test_iros_pdf_summary.py../job-posting-match/scripts/job_posting_match.py../job-posting-match/scripts/test_job_posting_match.py../jobkorea-talent-search/scripts/jobkorea_talent_models.py../jobkorea-talent-search/scripts/jobkorea_talent_parse.py../jobkorea-talent-search/scripts/jobkorea_talent_search.py../jobkorea-talent-search/scripts/jobkorea_talent_search_condition.py../jobkorea-talent-search/scripts/test_jobkorea_talent_search.py../joseon-sillok-search/scripts/sillok_search.py../k-skill-cleaner/scripts/k_skill_cleaner.py../k-skill-setup/scripts/check-setup.sh../kamis-food-price/scripts/run_kamis.py../keris-academic-search/scripts/keris_academic.py../keris-academic-search/tests/test_keris_academic.py../komsa-ferry-info/scripts/komsa_ferry_info.py../korean-bond-search/scripts/bond_search.py../korean-bond-search/tests/test_bond_search.py../korean-character-count/scripts/korean_character_count.js../korean-heritage-search/scripts/korean_heritage_search.py../korean-jangbu-for/scripts/install.sh../korean-law-search/scripts/amendment/LICENSE-korean-law-mcp../korean-law-search/scripts/amendment/align.js../korean-law-search/scripts/amendment/current.js../korean-law-search/scripts/amendment/diff.js../korean-law-search/scripts/amendment/errors.js../korean-law-search/scripts/amendment/format.js../korean-law-search/scripts/amendment/hwpx-header.js../korean-law-search/scripts/amendment/hwpx.js../korean-law-search/scripts/amendment/law-json.js../korean-law-search/scripts/amendment/marks.js../korean-law-search/scripts/amendment/render.js../korean-law-search/scripts/amendment/table.js../korean-law-search/scripts/amendment/units.js../korean-law-search/scripts/amendment/zip.js../korean-law-search/scripts/amendment_table.js../korean-middle-korean/scripts/korean_middle_korean.js../korean-patent-search/scripts/patent_search.py../korean-privacy-terms/scripts/install.sh../korean-scholarship-search/scripts/scholarship_filter.py../korean-scholarship-search/scripts/test_scholarship_filter.py../korean-scholarship-search/scripts/university_search_plan.py../korean-slang-writing/scripts/_slang_http.py../korean-slang-writing/scripts/slang_lookup.py../korean-slang-writing/scripts/slang_search.py../korean-spell-check/scripts/korean_spell_check.py../kosis-stats/scripts/run_kosis_stats.py../kosis-stats/tests/__init__.py../kosis-stats/tests/test_run_kosis_stats.py../kpic-drug-search/scripts/kpic_drug_search.mjs../kstartup-search/scripts/run_kstartup.py../kstartup-search/tests/__init__.py../kstartup-search/tests/test_run_kstartup.py../lck-analytics/scripts/_lib.js../lck-analytics/scripts/analyze-live-game.js../lck-analytics/scripts/build-match-report.js../lck-analytics/scripts/sync-oracle.js../localdata-business-status/scripts/localdata_business_status.py../market-event-impact/scripts/adapters.py../market-event-impact/scripts/asset_selector.py../market-event-impact/scripts/calendars.py../market-event-impact/scripts/event_resolver.py../market-event-impact/scripts/event_study.py../market-event-impact/scripts/market_data.py../market-event-impact/scripts/market_event.py../market-event-impact/scripts/research.py../market-event-impact/tests/test_event_study.py../market-event-impact/tests/test_generic_engine.py../market-event-impact/tests/test_market_event.py../mfds-drug-safety/scripts/mfds_drug_safety.py../mfds-food-safety/scripts/mfds_food_safety.py../mofa-travel-safety/scripts/run_mofa_travel_safety.py../multi-asset-morning-briefing/scripts/market_data.py../multi-asset-morning-briefing/tests/test_market_data.py../myrealtrip-search/scripts/myrealtrip_mcp.py../myrealtrip-search/scripts/test_myrealtrip_mcp.py../national-pension-workplace/scripts/national_pension_workplace.py../naver-ad-performance/scripts/naver_ad_performance.py../naver-blog-research/scripts/_naver_http.py../naver-blog-research/scripts/naver_download_images.py../naver-blog-research/scripts/naver_read.py../naver-blog-research/scripts/naver_search.py../nts-business-registration/scripts/nts_business_registration.py../nts-tax-delinquency/scripts/nts_tax_delinquency.py../nts-tax-delinquency/scripts/test_nts_tax_delinquency.py../ohou-today-deal/scripts/ohou_today_deal.py../popbill/scripts/popbill_cli.py../popbill/scripts/popbill_registry.py../popbill/scripts/popbill_safety.py../popbill/scripts/popbill_templates.py../popbill/tests/fake_popbill.py../popbill/tests/run_tests.py../popbill/tests/test_popbill_cli.py../railway-timetable/scripts/ktx_backend.py../railway-timetable/scripts/ktx_timetable.py../railway-timetable/scripts/railway_timetable.py../real-estate-search/scripts/nationwide_daily_report.py../real-estate-search/tests/test_nationwide_daily_report.py../religious-facility-search/scripts/religious_facility_search.py../religious-facility-search/tests/test_religious_facility_search.py../scripts/build-manus-bundle.js../scripts/build-region-codes.js../scripts/check-setup.sh../scripts/ci-paths.js../scripts/ci-run.js../scripts/fine_dust.py../scripts/geeknews_search.py../scripts/generate-plugin-manifest.js../scripts/generate-skill-list.js../scripts/generate-skill-stubs.js../scripts/k_skill_cleaner.py../scripts/korean_character_count.js../scripts/korean_heritage_search.py../scripts/korean_middle_korean.js../scripts/korean_spell_check.py../scripts/mfds_drug_safety.py../scripts/mfds_food_safety.py../scripts/migrate-cli-asset-instructions.js../scripts/nts_business_registration.py../scripts/pack-dry-run.js../scripts/patent_search.py../scripts/prepare-python-test-env.js../scripts/registry-e2e-k-skill-cli.js../scripts/run-lint.js../scripts/run-store-longevity-mirror-test.js../scripts/run-tests.js../scripts/seoul_density.py../scripts/sillok_search.py../scripts/skill-docs.test.js../scripts/store_longevity_mirror.py../scripts/store_longevity_source.py../scripts/subway_lost_property.py../scripts/sync-cli-skills.js../scripts/test-kpic-drug-search.test.js../scripts/test_animal_pharmacy_mcp.py../scripts/test_build_manus_bundle.js../scripts/test_daangn_realty.py../scripts/test_danawa_price_search.py../scripts/test_fine_dust.py../scripts/test_g2b_order_plan.py../scripts/test_geeknews_search.py../scripts/test_generate_plugin_manifest.js../scripts/test_k_skill_cleaner.py../scripts/test_komsa_ferry_info.py../scripts/test_korean_character_count.js../scripts/test_korean_heritage_search.py../scripts/test_korean_law_amendment_table.js../scripts/test_korean_middle_korean.js../scripts/test_korean_slang_writing.py../scripts/test_korean_spell_check.py../scripts/test_mfds_drug_safety.py../scripts/test_mfds_food_safety.py../scripts/test_myrealtrip_mcp.py../scripts/test_naver_ad_performance.py../scripts/test_naver_blog_search.py../scripts/test_nts_business_registration.py../scripts/test_ohou_today_deal.py../scripts/test_patent_search.py../scripts/test_railway_timetable.py../scripts/test_run_kamis.py../scripts/test_saju_fortune_skill.js../scripts/test_seoul_bike.py../scripts/test_seoul_density.py../scripts/test_sillok_search.py../scripts/test_store_longevity_mirror.py../scripts/test_subway_lost_property.py../scripts/test_ticket_availability.py../scripts/test_zipcode_search.py../scripts/ticket_availability.py../scripts/validate-skills.sh../scripts/workflow-actions.test.js../scripts/zipcode_search.py../seoul-bike/scripts/seoul_bike.py../seoul-density/scripts/seoul_density.py../seoul-weather-risk/scripts/seoul_weather_risk.py../seoul-weather-risk/tests/test_seoul_weather_risk.py../sharenuri-facility-search/scripts/sharenuri_search.py../sharenuri-facility-search/tests/__init__.py../sharenuri-facility-search/tests/test_sharenuri_search.py../store-longevity-radar/scripts/store_longevity_download.py../store-longevity-radar/scripts/store_longevity_radar.py../store-longevity-radar/tests/test_store_longevity_radar.py../subway-lost-property/scripts/subway_lost_property.py../ticket-availability/scripts/ticket_availability.py../zipcode-search/scripts/zipcode_search.py
Files
../.claude-plugin/marketplace.jsonasset295 bytes../.claude-plugin/plugin.jsonasset4,221 bytesSKILL.mdcore1,665 bytesSKILL.mdcore1,665 bytesSKILL.mdcore1,665 bytesSKILL.mdcore1,665 bytesSKILL.mdcore1,665 bytesinstruction.mddoc6,538 bytesscripts/animal_pharmacy_mcp.pyruns8,981 bytesskill.jsonasset591 bytes../assembly-bill-vote-search/SKILL.mddoc1,657 bytes../assembly-bill-vote-search/instruction.mddoc3,625 bytes../assembly-bill-vote-search/skill.jsonasset565 bytes../bccard-eatpl-search/SKILL.mddoc2,751 bytes../bccard-eatpl-search/instruction.mddoc11,258 bytes../bccard-eatpl-search/references/DISCLAIMER.mddoc2,264 bytes../bccard-eatpl-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,346 bytes../bccard-eatpl-search/scripts/kakao-place-rating.mjsruns8,257 bytes../bccard-eatpl-search/skill.jsonasset1,068 bytes../bccard-eatpl-search/tests/kakao-place-rating.test.jsruns8,896 bytes../biz-health-check/SKILL.mddoc1,847 bytes../biz-health-check/instruction.mddoc5,194 bytes../biz-health-check/scripts/biz_health_check.pyruns8,096 bytes../biz-health-check/skill.jsonasset1,018 bytes../boim-business-search/SKILL.mddoc2,185 bytes../boim-business-search/instruction.mddoc12,101 bytes../boim-business-search/skill.jsonasset1,645 bytes../bok-ecos-stats/SKILL.mddoc1,797 bytes../bok-ecos-stats/instruction.mddoc4,350 bytes../bok-ecos-stats/scripts/bok_ecos.pyruns11,947 bytes../bok-ecos-stats/skill.jsonasset934 bytes../bok-ecos-stats/tests/test_bok_ecos.pyruns9,947 bytes../building-register-search/SKILL.mddoc1,626 bytes../building-register-search/instruction.mddoc5,560 bytes../building-register-search/scripts/building_register.pyruns15,044 bytes../building-register-search/scripts/building_register_xml.pyruns1,652 bytes../building-register-search/skill.jsonasset505 bytes../building-register-search/tests/test_building_register.pyruns12,119 bytes../bunjang-search/SKILL.mddoc2,490 bytes../bunjang-search/instruction.mddoc5,709 bytes../bunjang-search/references/DISCLAIMER.mddoc3,926 bytes../bunjang-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,746 bytes../bunjang-search/skill.jsonasset625 bytes../cheap-gas-nearby/SKILL.mddoc1,667 bytes../cheap-gas-nearby/instruction.mddoc4,311 bytes../cheap-gas-nearby/skill.jsonasset653 bytes../company-analysis/SKILL.mddoc1,806 bytes../company-analysis/instruction.mddoc15,470 bytes../company-analysis/references/source-contract.mddoc11,243 bytes../company-analysis/scripts/dart-rows.jsruns2,834 bytes../company-analysis/scripts/dart-rows.tsruns2,593 bytes../company-analysis/scripts/evidence.jsruns31,668 bytes../company-analysis/scripts/evidence.tsruns30,761 bytes../company-analysis/scripts/fetch-public.jsruns3,789 bytes../company-analysis/scripts/fetch-public.tsruns3,372 bytes../company-analysis/skill.jsonasset912 bytes../company-analysis/tests/evidence.test.jsruns25,506 bytes../company-analysis/tests/evidence.test.tsruns22,212 bytes../company-analysis/tests/live-multi.test.tsruns7,486 bytes../company-analysis/tests/run_tests.pyruns657 bytes../consumer-price-safety-search/SKILL.mddoc1,699 bytes../consumer-price-safety-search/instruction.mddoc1,157 bytes../consumer-price-safety-search/skill.jsonasset607 bytes../corporate-registration-consulting/SKILL.mddoc1,928 bytes../corporate-registration-consulting/instruction.mddoc23,073 bytes../corporate-registration-consulting/scripts/fill_official_hwp.pyruns3,762 bytes../corporate-registration-consulting/skill.jsonasset1,058 bytes../corporate-registration-consulting/templates/attachment-hwp/articles-of-incorporation.hwpasset21,504 bytes../corporate-registration-consulting/templates/attachment-hwp/board-minutes.hwpasset10,752 bytes../corporate-registration-consulting/templates/attachment-hwp/corporate-seal-report.hwpasset52,736 bytes../corporate-registration-consulting/templates/attachment-hwp/founder-meeting-minutes.hwpasset58,368 bytes../corporate-registration-consulting/templates/attachment-hwp/founder-meeting-period-shortening-consent.hwpasset9,216 bytes../corporate-registration-consulting/templates/attachment-hwp/inspection-report.hwpasset10,752 bytes../corporate-registration-consulting/templates/attachment-hwp/officer-acceptance-auditor.hwpasset8,704 bytes../corporate-registration-consulting/templates/attachment-hwp/officer-acceptance-director-ceo.hwpasset8,704 bytes../corporate-registration-consulting/templates/attachment-hwp/power-of-attorney.hwpasset33,280 bytes../corporate-registration-consulting/templates/attachment-hwp/share-issuance-consent.hwpasset9,216 bytes../corporate-registration-consulting/templates/attachment-hwp/share-subscription.hwpasset9,216 bytes../corporate-registration-consulting/templates/attachment-hwp/shareholder-register.hwpasset36,352 bytes../corporate-registration-consulting/templates/attachment-hwp/source-manifest.jsonasset10,805 bytes../corporate-registration-consulting/templates/attachment-hwp/source-manifest.jsonasset10,805 bytes../corporate-registration-consulting/templates/attachment-hwp/standard-articles-startup-moj.hwpasset19,456 bytes../corporate-registration-consulting/templates/incorporation-document-pack.mddoc6,676 bytes../corporate-registration-consulting/templates/official-form-sources.mddoc10,963 bytes../corporate-registration-consulting/templates/official/form-65-1-fill-map.jsonasset2,805 bytes../corporate-registration-consulting/templates/official/form-65-1-stock-company-incorporation-promoter.hwpasset17,408 bytes../corporate-registration-consulting/templates/official/form-65-2-stock-company-incorporation-subscription.hwpasset17,408 bytes../corporate-registration-consulting/templates/official/source-manifest.jsonasset1,144 bytes../coupang-product-search/SKILL.mddoc2,750 bytes../coupang-product-search/instruction.mddoc3,536 bytes../coupang-product-search/references/DISCLAIMER.mddoc3,934 bytes../coupang-product-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,749 bytes../coupang-product-search/skill.jsonasset926 bytes../court-auction-notice-search/SKILL.mddoc2,006 bytes../court-auction-notice-search/instruction.mddoc14,577 bytes../court-auction-notice-search/skill.jsonasset1,255 bytes../court-payment-order-assistant/SKILL.mddoc1,825 bytes../court-payment-order-assistant/instruction.mddoc6,087 bytes../court-payment-order-assistant/skill.jsonasset883 bytes../d2b-notice-search/SKILL.mddoc1,738 bytes../d2b-notice-search/instruction.mddoc4,868 bytes../d2b-notice-search/skill.jsonasset812 bytes../daangn-cars-search/SKILL.mddoc2,483 bytes../daangn-cars-search/instruction.mddoc4,069 bytes../daangn-cars-search/references/DISCLAIMER.mddoc3,930 bytes../daangn-cars-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,713 bytes../daangn-cars-search/scripts/daangn_cars.pyruns3,545 bytes../daangn-cars-search/skill.jsonasset557 bytes../daangn-jobs-search/SKILL.mddoc2,494 bytes../daangn-jobs-search/instruction.mddoc4,201 bytes../daangn-jobs-search/references/DISCLAIMER.mddoc3,930 bytes../daangn-jobs-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,713 bytes../daangn-jobs-search/scripts/daangn_jobs.pyruns4,354 bytes../daangn-jobs-search/skill.jsonasset615 bytes../daangn-realty-search/SKILL.mddoc2,507 bytes../daangn-realty-search/instruction.mddoc5,736 bytes../daangn-realty-search/references/DISCLAIMER.mddoc3,932 bytes../daangn-realty-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,724 bytes../daangn-realty-search/scripts/daangn_detail_ld.pyruns2,219 bytes../daangn-realty-search/scripts/daangn_realty.pyruns8,557 bytes../daangn-realty-search/scripts/daangn_relay_store.pyruns4,914 bytes../daangn-realty-search/skill.jsonasset569 bytes../daangn-used-goods-search/SKILL.mddoc2,524 bytes../daangn-used-goods-search/instruction.mddoc4,004 bytes../daangn-used-goods-search/references/DISCLAIMER.mddoc3,936 bytes../daangn-used-goods-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,723 bytes../daangn-used-goods-search/scripts/daangn_used_goods.pyruns3,391 bytes../daangn-used-goods-search/skill.jsonasset578 bytes../daishin-report-search/SKILL.mddoc2,466 bytes../daishin-report-search/instruction.mddoc6,337 bytes../daishin-report-search/references/DISCLAIMER.mddoc3,933 bytes../daishin-report-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,805 bytes../daishin-report-search/skill.jsonasset487 bytes../daiso-product-search/SKILL.mddoc2,613 bytes../daiso-product-search/instruction.mddoc7,462 bytes../daiso-product-search/references/DISCLAIMER.mddoc3,932 bytes../daiso-product-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,710 bytes../daiso-product-search/skill.jsonasset788 bytes../danawa-price-search/SKILL.mddoc2,610 bytes../danawa-price-search/instruction.mddoc10,499 bytes../danawa-price-search/references/DISCLAIMER.mddoc3,931 bytes../danawa-price-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,715 bytes../danawa-price-search/scripts/danawa_search.pyruns14,974 bytes../danawa-price-search/skill.jsonasset792 bytes../delivery-tracking/SKILL.mddoc2,506 bytes../delivery-tracking/instruction.mddoc11,966 bytes../delivery-tracking/references/DISCLAIMER.mddoc3,929 bytes../delivery-tracking/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,735 bytes../delivery-tracking/skill.jsonasset592 bytes../donation-place-search/SKILL.mddoc1,778 bytes../donation-place-search/instruction.mddoc5,637 bytes../donation-place-search/skill.jsonasset848 bytes../emergency-room-beds/SKILL.mddoc1,673 bytes../emergency-room-beds/instruction.mddoc3,093 bytes../emergency-room-beds/skill.jsonasset631 bytes../ev-charger-nearby/SKILL.mddoc1,679 bytes../ev-charger-nearby/instruction.mddoc4,652 bytes../ev-charger-nearby/scripts/ev_charger.pyruns9,826 bytes../ev-charger-nearby/skill.jsonasset671 bytes../ev-charger-nearby/tests/test_ev_charger.pyruns7,675 bytes../ev-subsidy-status/SKILL.mddoc1,931 bytes../ev-subsidy-status/agents/openai.yamlasset275 bytes../ev-subsidy-status/instruction.mddoc7,837 bytes../ev-subsidy-status/skill.jsonasset1,198 bytes../express-bus-booking/SKILL.mddoc2,602 bytes../express-bus-booking/instruction.mddoc8,160 bytes../express-bus-booking/references/DISCLAIMER.mddoc3,931 bytes../express-bus-booking/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,724 bytes../express-bus-booking/references/kobus-http-flow.mddoc3,287 bytes../express-bus-booking/scripts/kobus_express_booking.pyruns11,273 bytes../express-bus-booking/skill.jsonasset803 bytes../express-bus-booking/tests/__init__.pyruns0 bytes../express-bus-booking/tests/test_kobus_express_booking.pyruns6,185 bytes../fine-dust-location/SKILL.mddoc1,623 bytes../fine-dust-location/instruction.mddoc2,932 bytes../fine-dust-location/scripts/fine_dust.pyruns18,985 bytes../fine-dust-location/skill.jsonasset551 bytes../flight-ticket-search/SKILL.mddoc2,592 bytes../flight-ticket-search/instruction.mddoc8,582 bytes../flight-ticket-search/references/DISCLAIMER.mddoc3,932 bytes../flight-ticket-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,715 bytes../flight-ticket-search/scripts/flight_ticket_search.pyruns19,804 bytes../flight-ticket-search/skill.jsonasset760 bytes../foresttrip-vacancy/SKILL.mddoc2,510 bytes../foresttrip-vacancy/instruction.mddoc7,655 bytes../foresttrip-vacancy/references/DISCLAIMER.mddoc3,930 bytes../foresttrip-vacancy/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,762 bytes../foresttrip-vacancy/scripts/run_foresttrip_vacancy.pyruns21,168 bytes../foresttrip-vacancy/skill.jsonasset627 bytes../foresttrip-vacancy/tests/__init__.pyruns0 bytes../foresttrip-vacancy/tests/fixtures/geoje_window.jsonasset3,934 bytes../foresttrip-vacancy/tests/fixtures/gujaebong_window.jsonasset1,522 bytes../foresttrip-vacancy/tests/test_foresttrip_session.pyruns7,055 bytes../foresttrip-vacancy/tests/test_run_foresttrip_vacancy.pyruns13,009 bytes../fsc-corporate-info/SKILL.mddoc1,741 bytes../fsc-corporate-info/instruction.mddoc2,818 bytes../fsc-corporate-info/scripts/fsc_corporate_info.pyruns4,885 bytes../fsc-corporate-info/scripts/test_fsc_corporate_info.pyruns1,285 bytes../fsc-corporate-info/skill.jsonasset786 bytes../g2b-order-plan-search/SKILL.mddoc1,691 bytes../g2b-order-plan-search/instruction.mddoc8,418 bytes../g2b-order-plan-search/scripts/g2b_order_plan.pyruns6,884 bytes../g2b-order-plan-search/skill.jsonasset689 bytes../g2b-sanctioned-supplier/SKILL.mddoc1,778 bytes../g2b-sanctioned-supplier/instruction.mddoc4,014 bytes../g2b-sanctioned-supplier/scripts/g2b_sanctioned_supplier.pyruns4,983 bytes../g2b-sanctioned-supplier/scripts/test_g2b_sanctioned_supplier.pyruns1,865 bytes../g2b-sanctioned-supplier/skill.jsonasset820 bytes../geeknews-search/SKILL.mddoc1,573 bytes../geeknews-search/instruction.mddoc2,151 bytes../geeknews-search/scripts/geeknews_search.pyruns9,588 bytes../geeknews-search/skill.jsonasset454 bytes../gongsijiga-search/SKILL.mddoc1,996 bytes../gongsijiga-search/instruction.mddoc4,496 bytes../gongsijiga-search/skill.jsonasset783 bytes../gov-overseas-trip-report/SKILL.mddoc1,791 bytes../gov-overseas-trip-report/instruction.mddoc28,341 bytes../gov-overseas-trip-report/scripts/gov_overseas_trip_report.pyruns46,679 bytes../gov-overseas-trip-report/skill.jsonasset843 bytes../gov-overseas-trip-report/tests/fixtures/acrc-list-p1.htmlasset13,376 bytes../gov-overseas-trip-report/tests/fixtures/daegu-list.htmlasset3,581 bytes../gov-overseas-trip-report/tests/fixtures/daejeon-list.htmlasset13,324 bytes../gov-overseas-trip-report/tests/fixtures/fixture-meta.jsonasset382 bytes../gov-overseas-trip-report/tests/fixtures/gb-notice.htmlasset808 bytes../gov-overseas-trip-report/tests/fixtures/ggc-list.htmlasset25,082 bytes../gov-overseas-trip-report/tests/fixtures/nec-list-p1.htmlasset26,644 bytes../gov-overseas-trip-report/tests/fixtures/nec-list-p2.htmlasset26,245 bytes../gov-overseas-trip-report/tests/fixtures/open-portal.htmlasset45,550 bytes../gov-overseas-trip-report/tests/test_gov_overseas_trip_report.pyruns7,116 bytes../government-bond-analysis/LICENSEasset1,056 bytes../government-bond-analysis/SKILL.mddoc1,899 bytes../government-bond-analysis/instruction.mddoc16,422 bytes../government-bond-analysis/references/methodology.mddoc6,173 bytes../government-bond-analysis/scripts/cli.mjsruns21,169 bytes../government-bond-analysis/scripts/collect.mjsruns9,223 bytes../government-bond-analysis/scripts/core.mjsruns13,694 bytes../government-bond-analysis/scripts/dual.mjsruns18,100 bytes../government-bond-analysis/scripts/harness.mjsruns44,594 bytes../government-bond-analysis/scripts/modes.mjsruns10,970 bytes../government-bond-analysis/scripts/news.mjsruns8,178 bytes../government-bond-analysis/scripts/render.mjsruns19,356 bytes../government-bond-analysis/scripts/schedule.mjsruns6,909 bytes../government-bond-analysis/scripts/ust.mjsruns11,569 bytes../government-bond-analysis/skill.jsonasset1,042 bytes../government-bond-analysis/src/cli.mtsruns18,928 bytes../government-bond-analysis/src/collect.mtsruns8,314 bytes../government-bond-analysis/src/core.mtsruns13,636 bytes../government-bond-analysis/src/dual.mtsruns19,260 bytes../government-bond-analysis/src/harness.mtsruns41,513 bytes../government-bond-analysis/src/modes.mtsruns11,664 bytes../government-bond-analysis/src/news.mtsruns8,488 bytes../government-bond-analysis/src/render.mtsruns18,737 bytes../government-bond-analysis/src/schedule.mtsruns7,520 bytes../government-bond-analysis/src/ust.mtsruns11,813 bytes../government-bond-analysis/tsconfig.jsonasset234 bytes../government-support-survey/SKILL.mddoc1,746 bytes../government-support-survey/instruction.mddoc3,248 bytes../government-support-survey/references/NOTICE.mddoc2,324 bytes../government-support-survey/scripts/run_survey.pyruns2,619 bytes../government-support-survey/skill.jsonasset833 bytes../government-support-survey/tests/test_run_survey.pyruns830 bytes../han-river-water-level/SKILL.mddoc1,656 bytes../han-river-water-level/instruction.mddoc2,637 bytes../han-river-water-level/skill.jsonasset593 bytes../hankookilbo-news/SKILL.mddoc1,763 bytes../hankookilbo-news/instruction.mddoc8,654 bytes../hankookilbo-news/skill.jsonasset830 bytes../heyyumi/SKILL.mddoc2,306 bytes../heyyumi/instruction.mddoc6,676 bytes../heyyumi/skill.jsonasset2,016 bytes../highway-traffic-status/SKILL.mddoc1,827 bytes../highway-traffic-status/instruction.mddoc4,638 bytes../highway-traffic-status/scripts/highway_traffic.pyruns12,970 bytes../highway-traffic-status/skill.jsonasset942 bytes../highway-traffic-status/tests/test_highway_traffic.pyruns9,991 bytes../hola-poke-yeoksam/SKILL.mddoc1,653 bytes../hola-poke-yeoksam/instruction.mddoc6,818 bytes../hola-poke-yeoksam/skill.jsonasset618 bytes../household-waste-info/SKILL.mddoc1,634 bytes../household-waste-info/instruction.mddoc5,071 bytes../household-waste-info/skill.jsonasset557 bytes../housing-official-price/SKILL.mddoc1,850 bytes../housing-official-price/instruction.mddoc8,073 bytes../housing-official-price/skill.jsonasset631 bytes../housing-subscription-reference/SKILL.mddoc1,876 bytes../housing-subscription-reference/instruction.mddoc9,195 bytes../housing-subscription-reference/references/housing_subscription_score.csvasset6,484 bytes../housing-subscription-reference/references/private_housing_deposit.csvasset734 bytes../housing-subscription-reference/references/region-and-area-rules.mddoc3,786 bytes../housing-subscription-reference/skill.jsonasset944 bytes../hwp/SKILL.mddoc1,594 bytes../hwp/instruction.mddoc7,584 bytes../hwp/skill.jsonasset597 bytes../intercity-bus-booking/SKILL.mddoc2,607 bytes../intercity-bus-booking/instruction.mddoc7,899 bytes../intercity-bus-booking/references/DISCLAIMER.mddoc3,933 bytes../intercity-bus-booking/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,741 bytes../intercity-bus-booking/references/tmoney-intercity-http-flow.mddoc4,005 bytes../intercity-bus-booking/scripts/intercity_bus_search.pyruns15,252 bytes../intercity-bus-booking/skill.jsonasset793 bytes../iros-registry-automation/SKILL.mddoc1,832 bytes../iros-registry-automation/instruction.mddoc14,633 bytes../iros-registry-automation/scripts/iros_pdf_summary.pyruns11,989 bytes../iros-registry-automation/scripts/upstream.pinasset41 bytes../iros-registry-automation/skill.jsonasset927 bytes../iros-registry-automation/tests/test_iros_pdf_summary.pyruns5,196 bytes../job-posting-match/SKILL.mddoc2,580 bytes../job-posting-match/instruction.mddoc6,327 bytes../job-posting-match/references/DISCLAIMER.mddoc3,929 bytes../job-posting-match/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,736 bytes../job-posting-match/scripts/job_posting_match.pyruns18,238 bytes../job-posting-match/scripts/test_job_posting_match.pyruns3,501 bytes../job-posting-match/skill.jsonasset739 bytes../jobkorea-talent-search/SKILL.mddoc2,589 bytes../jobkorea-talent-search/instruction.mddoc4,780 bytes../jobkorea-talent-search/references/DISCLAIMER.mddoc3,934 bytes../jobkorea-talent-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,740 bytes../jobkorea-talent-search/scripts/jobkorea_talent_models.pyruns661 bytes../jobkorea-talent-search/scripts/jobkorea_talent_parse.pyruns7,164 bytes../jobkorea-talent-search/scripts/jobkorea_talent_search.pyruns4,651 bytes../jobkorea-talent-search/scripts/jobkorea_talent_search_condition.pyruns4,724 bytes../jobkorea-talent-search/scripts/test_jobkorea_talent_search.pyruns3,287 bytes../jobkorea-talent-search/skill.jsonasset746 bytes../joseon-sillok-search/SKILL.mddoc1,612 bytes../joseon-sillok-search/instruction.mddoc3,252 bytes../joseon-sillok-search/scripts/sillok_search.pyruns18,181 bytes../joseon-sillok-search/skill.jsonasset500 bytes../k-dart/SKILL.mddoc1,603 bytes../k-dart/instruction.mddoc15,994 bytes../k-dart/skill.jsonasset594 bytes../k-schoollunch-menu/SKILL.mddoc1,649 bytes../k-schoollunch-menu/instruction.mddoc4,750 bytes../k-schoollunch-menu/skill.jsonasset603 bytes../k-skill-cleaner/SKILL.mddoc1,487 bytes../k-skill-cleaner/instruction.mddoc4,704 bytes../k-skill-cleaner/scripts/k_skill_cleaner.pyruns15,439 bytes../k-skill-cleaner/skill.jsonasset355 bytes../k-skill-setup/SKILL.mddoc1,589 bytes../k-skill-setup/instruction.mddoc8,838 bytes../k-skill-setup/scripts/check-setup.shruns674 bytes../k-skill-setup/skill.jsonasset557 bytes../kakao-bar-nearby/SKILL.mddoc2,596 bytes../kakao-bar-nearby/instruction.mddoc5,844 bytes../kakao-bar-nearby/references/DISCLAIMER.mddoc2,642 bytes../kakao-bar-nearby/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,726 bytes../kakao-bar-nearby/skill.jsonasset823 bytes../kakao-map/SKILL.mddoc2,502 bytes../kakao-map/instruction.mddoc7,467 bytes../kakao-map/references/DISCLAIMER.mddoc2,635 bytes../kakao-map/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,741 bytes../kakao-map/skill.jsonasset700 bytes../kakaotalk-mac/SKILL.mddoc2,450 bytes../kakaotalk-mac/instruction.mddoc6,512 bytes../kakaotalk-mac/references/DISCLAIMER.mddoc2,430 bytes../kakaotalk-mac/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,755 bytes../kakaotalk-mac/skill.jsonasset520 bytes../kamis-food-price/SKILL.mddoc1,631 bytes../kamis-food-price/instruction.mddoc3,461 bytes../kamis-food-price/scripts/run_kamis.pyruns7,176 bytes../kamis-food-price/skill.jsonasset586 bytes../kbl-results/SKILL.mddoc2,456 bytes../kbl-results/instruction.mddoc2,684 bytes../kbl-results/references/DISCLAIMER.mddoc2,018 bytes../kbl-results/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,686 bytes../kbl-results/skill.jsonasset570 bytes../kbo-results/SKILL.mddoc2,468 bytes../kbo-results/instruction.mddoc2,364 bytes../kbo-results/references/DISCLAIMER.mddoc2,018 bytes../kbo-results/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,680 bytes../kbo-results/skill.jsonasset579 bytes../keris-academic-search/SKILL.mddoc2,573 bytes../keris-academic-search/instruction.mddoc5,167 bytes../keris-academic-search/references/DISCLAIMER.mddoc2,102 bytes../keris-academic-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,030 bytes../keris-academic-search/scripts/keris_academic.pyruns10,488 bytes../keris-academic-search/skill.jsonasset721 bytes../keris-academic-search/tests/test_keris_academic.pyruns8,223 bytes../kleague-results/SKILL.mddoc2,470 bytes../kleague-results/instruction.mddoc3,053 bytes../kleague-results/references/DISCLAIMER.mddoc2,022 bytes../kleague-results/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,724 bytes../kleague-results/skill.jsonasset543 bytes../komsa-ferry-info/SKILL.mddoc1,586 bytes../komsa-ferry-info/instruction.mddoc2,840 bytes../komsa-ferry-info/scripts/komsa_ferry_info.pyruns2,680 bytes../komsa-ferry-info/skill.jsonasset479 bytes../kopis-performance-search/SKILL.mddoc2,430 bytes../kopis-performance-search/instruction.mddoc3,938 bytes../kopis-performance-search/references/DISCLAIMER.mddoc1,969 bytes../kopis-performance-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,038 bytes../kopis-performance-search/skill.jsonasset385 bytes../korea-weather/SKILL.mddoc1,585 bytes../korea-weather/instruction.mddoc6,106 bytes../korea-weather/skill.jsonasset515 bytes../korean-bond-search/SKILL.mddoc1,821 bytes../korean-bond-search/instruction.mddoc11,067 bytes../korean-bond-search/references/fields.mddoc3,156 bytes../korean-bond-search/references/source-notes.mddoc2,487 bytes../korean-bond-search/scripts/bond_search.pyruns42,547 bytes../korean-bond-search/skill.jsonasset949 bytes../korean-bond-search/tests/fixtures/bonds.jsonasset1,371 bytes../korean-bond-search/tests/test_bond_search.pyruns20,124 bytes../korean-character-count/SKILL.mddoc1,601 bytes../korean-character-count/instruction.mddoc3,589 bytes../korean-character-count/scripts/korean_character_count.jsruns6,769 bytes../korean-character-count/skill.jsonasset461 bytes../korean-cinema-search/SKILL.mddoc2,541 bytes../korean-cinema-search/instruction.mddoc7,761 bytes../korean-cinema-search/references/DISCLAIMER.mddoc1,948 bytes../korean-cinema-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,756 bytes../korean-cinema-search/skill.jsonasset636 bytes../korean-heritage-search/SKILL.mddoc1,626 bytes../korean-heritage-search/instruction.mddoc4,795 bytes../korean-heritage-search/scripts/korean_heritage_search.pyruns11,709 bytes../korean-heritage-search/skill.jsonasset512 bytes../korean-holiday-calendar/SKILL.mddoc1,650 bytes../korean-holiday-calendar/instruction.mddoc3,816 bytes../korean-holiday-calendar/skill.jsonasset565 bytes../korean-humanizer/SKILL.mddoc2,105 bytes../korean-humanizer/instruction.mddoc31,632 bytes../korean-humanizer/references/ai-tell-taxonomy.mddoc9,089 bytes../korean-humanizer/skill.jsonasset1,545 bytes../korean-jangbu-for/DISCLAIMER.mddoc1,629 bytes../korean-jangbu-for/LICENSE.upstreamasset10,707 bytes../korean-jangbu-for/NOTICEasset1,141 bytes../korean-jangbu-for/SKILL.mddoc1,864 bytes../korean-jangbu-for/instruction.mddoc10,571 bytes../korean-jangbu-for/scripts/install.shruns8,545 bytes../korean-jangbu-for/scripts/upstream.pinasset41 bytes../korean-jangbu-for/skill.jsonasset1,032 bytes../korean-law-search/SKILL.mddoc1,747 bytes../korean-law-search/instruction.mddoc9,905 bytes../korean-law-search/scripts/amendment/LICENSE-korean-law-mcpruns1,062 bytes../korean-law-search/scripts/amendment/align.jsruns4,862 bytes../korean-law-search/scripts/amendment/current.jsruns5,543 bytes../korean-law-search/scripts/amendment/diff.jsruns7,149 bytes../korean-law-search/scripts/amendment/errors.jsruns509 bytes../korean-law-search/scripts/amendment/format.jsruns2,477 bytes../korean-law-search/scripts/amendment/hwpx-header.jsruns7,264 bytes../korean-law-search/scripts/amendment/hwpx.jsruns7,753 bytes../korean-law-search/scripts/amendment/law-json.jsruns6,520 bytes../korean-law-search/scripts/amendment/marks.jsruns1,604 bytes../korean-law-search/scripts/amendment/render.jsruns7,926 bytes../korean-law-search/scripts/amendment/table.jsruns7,563 bytes../korean-law-search/scripts/amendment/units.jsruns6,842 bytes../korean-law-search/scripts/amendment/zip.jsruns2,943 bytes../korean-law-search/scripts/amendment_table.jsruns2,254 bytes../korean-law-search/skill.jsonasset824 bytes../korean-marathon-schedule/SKILL.mddoc1,719 bytes../korean-marathon-schedule/instruction.mddoc5,204 bytes../korean-marathon-schedule/skill.jsonasset704 bytes../korean-middle-korean/SKILL.mddoc1,629 bytes../korean-middle-korean/instruction.mddoc3,934 bytes../korean-middle-korean/scripts/korean_middle_korean.jsruns7,370 bytes../korean-middle-korean/skill.jsonasset533 bytes../korean-patent-search/SKILL.mddoc1,624 bytes../korean-patent-search/instruction.mddoc3,314 bytes../korean-patent-search/scripts/patent_search.pyruns14,252 bytes../korean-patent-search/skill.jsonasset542 bytes../korean-privacy-terms/DISCLAIMER.mddoc1,503 bytes../korean-privacy-terms/LICENSE.upstreamasset11,351 bytes../korean-privacy-terms/NOTICEasset1,616 bytes../korean-privacy-terms/SKILL.mddoc1,763 bytes../korean-privacy-terms/instruction.mddoc9,791 bytes../korean-privacy-terms/scripts/install.shruns5,084 bytes../korean-privacy-terms/scripts/upstream.pinasset41 bytes../korean-privacy-terms/skill.jsonasset796 bytes../korean-scholarship-search/SKILL.mddoc1,878 bytes../korean-scholarship-search/instruction.mddoc12,563 bytes../korean-scholarship-search/references/report-format.mddoc958 bytes../korean-scholarship-search/references/school-discovery.mddoc1,415 bytes../korean-scholarship-search/references/search-clues.mddoc1,410 bytes../korean-scholarship-search/references/source-patterns.mddoc2,327 bytes../korean-scholarship-search/scripts/scholarship_filter.pyruns31,166 bytes../korean-scholarship-search/scripts/test_scholarship_filter.pyruns7,660 bytes../korean-scholarship-search/scripts/university_search_plan.pyruns4,921 bytes../korean-scholarship-search/skill.jsonasset1,001 bytes../korean-slang-writing/SKILL.mddoc1,657 bytes../korean-slang-writing/data/seed-slang.jsonasset16,969 bytes../korean-slang-writing/instruction.mddoc8,688 bytes../korean-slang-writing/scripts/_slang_http.pyruns2,599 bytes../korean-slang-writing/scripts/slang_lookup.pyruns8,760 bytes../korean-slang-writing/scripts/slang_search.pyruns8,720 bytes../korean-slang-writing/skill.jsonasset589 bytes../korean-spell-check/SKILL.mddoc1,616 bytes../korean-spell-check/instruction.mddoc4,273 bytes../korean-spell-check/scripts/korean_spell_check.pyruns16,646 bytes../korean-spell-check/skill.jsonasset523 bytes../korean-stock-search/SKILL.mddoc2,492 bytes../korean-stock-search/instruction.mddoc6,441 bytes../korean-stock-search/references/DISCLAIMER.mddoc1,978 bytes../korean-stock-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,026 bytes../korean-stock-search/skill.jsonasset559 bytes../korean-transit-route/SKILL.mddoc2,626 bytes../korean-transit-route/instruction.mddoc5,333 bytes../korean-transit-route/references/DISCLAIMER.mddoc1,963 bytes../korean-transit-route/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,740 bytes../korean-transit-route/skill.jsonasset817 bytes../kosis-stats/SKILL.mddoc1,748 bytes../kosis-stats/instruction.mddoc15,829 bytes../kosis-stats/references/kosis-openapi-guide.mddoc8,589 bytes../kosis-stats/scripts/run_kosis_stats.pyruns32,991 bytes../kosis-stats/skill.jsonasset860 bytes../kosis-stats/tests/__init__.pyruns0 bytes../kosis-stats/tests/fixtures/data_response.jsonasset541 bytes../kosis-stats/tests/fixtures/meta_response.jsonasset98 bytes../kosis-stats/tests/fixtures/search_response.jsonasset517 bytes../kosis-stats/tests/test_run_kosis_stats.pyruns24,783 bytes../kpic-drug-search/SKILL.mddoc1,683 bytes../kpic-drug-search/instruction.mddoc8,471 bytes../kpic-drug-search/references/LICENSE.mddoc1,069 bytes../kpic-drug-search/scripts/kpic_drug_search.mjsruns4,962 bytes../kpic-drug-search/skill.jsonasset633 bytes../kr-whois-lookup/SKILL.mddoc1,714 bytes../kr-whois-lookup/instruction.mddoc5,193 bytes../kr-whois-lookup/skill.jsonasset756 bytes../kstartup-search/SKILL.mddoc1,736 bytes../kstartup-search/instruction.mddoc11,562 bytes../kstartup-search/scripts/run_kstartup.pyruns17,438 bytes../kstartup-search/skill.jsonasset839 bytes../kstartup-search/tests/__init__.pyruns0 bytes../kstartup-search/tests/test_run_kstartup.pyruns15,066 bytes../lck-analytics/README.mddoc656 bytes../lck-analytics/SKILL.mddoc2,510 bytes../lck-analytics/instruction.mddoc5,966 bytes../lck-analytics/references/DISCLAIMER.mddoc1,908 bytes../lck-analytics/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,780 bytes../lck-analytics/samples/oracle-lck-sample.csvasset623 bytes../lck-analytics/scripts/_lib.jsruns2,671 bytes../lck-analytics/scripts/analyze-live-game.jsruns1,554 bytes../lck-analytics/scripts/build-match-report.jsruns1,234 bytes../lck-analytics/scripts/sync-oracle.jsruns1,368 bytes../lck-analytics/skill.jsonasset656 bytes../lh-notice-search/SKILL.mddoc1,794 bytes../lh-notice-search/instruction.mddoc8,811 bytes../lh-notice-search/skill.jsonasset929 bytes../library-book-search/SKILL.mddoc1,718 bytes../library-book-search/instruction.mddoc5,905 bytes../library-book-search/skill.jsonasset741 bytes../localdata-business-status/SKILL.mddoc1,801 bytes../localdata-business-status/data/localdata_industries.jsonasset11,701 bytes../localdata-business-status/data/localdata_orgcodes.jsonasset7,423 bytes../localdata-business-status/instruction.mddoc3,126 bytes../localdata-business-status/scripts/localdata_business_status.pyruns9,437 bytes../localdata-business-status/skill.jsonasset837 bytes../lotto-results/SKILL.mddoc2,487 bytes../lotto-results/instruction.mddoc2,207 bytes../lotto-results/references/DISCLAIMER.mddoc1,856 bytes../lotto-results/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,752 bytes../lotto-results/skill.jsonasset596 bytes../market-event-impact/SKILL.mddoc1,946 bytes../market-event-impact/instruction.mddoc11,503 bytes../market-event-impact/references/event-taxonomy.mddoc4,508 bytes../market-event-impact/references/methodology.mddoc7,338 bytes../market-event-impact/references/research-contract.mddoc7,351 bytes../market-event-impact/references/source-priority.mddoc2,439 bytes../market-event-impact/scripts/adapters.pyruns1,656 bytes../market-event-impact/scripts/asset_selector.pyruns8,085 bytes../market-event-impact/scripts/calendars.pyruns8,498 bytes../market-event-impact/scripts/event_resolver.pyruns12,875 bytes../market-event-impact/scripts/event_study.pyruns8,204 bytes../market-event-impact/scripts/market_data.pyruns10,684 bytes../market-event-impact/scripts/market_event.pyruns56,361 bytes../market-event-impact/scripts/research.pyruns20,380 bytes../market-event-impact/skill.jsonasset1,191 bytes../market-event-impact/tests/fixtures/events.jsonasset2,821 bytes../market-event-impact/tests/fixtures/fitch-event.jsonasset1,657 bytes../market-event-impact/tests/fixtures/fitch-market-series.jsonasset4,440 bytes../market-event-impact/tests/fixtures/fitch-research.jsonasset11,244 bytes../market-event-impact/tests/fixtures/market-series.jsonasset6,756 bytes../market-event-impact/tests/fixtures/research.jsonasset12,664 bytes../market-event-impact/tests/fixtures/tariff-event.jsonasset3,446 bytes../market-event-impact/tests/fixtures/tariff-market-series.jsonasset6,085 bytes../market-event-impact/tests/fixtures/tariff-research.jsonasset14,916 bytes../market-event-impact/tests/test_event_study.pyruns11,853 bytes../market-event-impact/tests/test_generic_engine.pyruns9,403 bytes../market-event-impact/tests/test_market_event.pyruns32,096 bytes../market-kurly-search/SKILL.mddoc2,562 bytes../market-kurly-search/instruction.mddoc4,466 bytes../market-kurly-search/references/DISCLAIMER.mddoc1,781 bytes../market-kurly-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,727 bytes../market-kurly-search/skill.jsonasset696 bytes../mfds-drug-safety/SKILL.mddoc1,623 bytes../mfds-drug-safety/instruction.mddoc4,301 bytes../mfds-drug-safety/scripts/mfds_drug_safety.pyruns7,299 bytes../mfds-drug-safety/skill.jsonasset561 bytes../mfds-food-safety/SKILL.mddoc1,638 bytes../mfds-food-safety/instruction.mddoc7,854 bytes../mfds-food-safety/scripts/mfds_food_safety.pyruns11,906 bytes../mfds-food-safety/skill.jsonasset591 bytes../mofa-travel-safety/SKILL.mddoc1,637 bytes../mofa-travel-safety/instruction.mddoc2,541 bytes../mofa-travel-safety/scripts/run_mofa_travel_safety.pyruns2,484 bytes../mofa-travel-safety/skill.jsonasset580 bytes../multi-asset-morning-briefing/README.mddoc20,355 bytes../multi-asset-morning-briefing/SKILL.mddoc1,951 bytes../multi-asset-morning-briefing/instruction.mddoc6,462 bytes../multi-asset-morning-briefing/references/format-rules.mddoc12,817 bytes../multi-asset-morning-briefing/scripts/market_data.pyruns36,639 bytes../multi-asset-morning-briefing/skill.jsonasset1,129 bytes../multi-asset-morning-briefing/tests/fixtures/sample_briefing.mddoc1,133 bytes../multi-asset-morning-briefing/tests/test_market_data.pyruns18,948 bytes../myrealtrip-search/SKILL.mddoc2,558 bytes../myrealtrip-search/instruction.mddoc10,805 bytes../myrealtrip-search/references/DISCLAIMER.mddoc1,894 bytes../myrealtrip-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,760 bytes../myrealtrip-search/scripts/myrealtrip_mcp.pyruns8,040 bytes../myrealtrip-search/scripts/test_myrealtrip_mcp.pyruns6,371 bytes../myrealtrip-search/skill.jsonasset722 bytes../naming-house/SKILL.mddoc1,584 bytes../naming-house/instruction.mddoc6,553 bytes../naming-house/skill.jsonasset507 bytes../national-pension-workplace/SKILL.mddoc1,775 bytes../national-pension-workplace/instruction.mddoc3,797 bytes../national-pension-workplace/scripts/national_pension_workplace.pyruns4,923 bytes../national-pension-workplace/skill.jsonasset790 bytes../naver-ad-performance/SKILL.mddoc2,672 bytes../naver-ad-performance/instruction.mddoc5,875 bytes../naver-ad-performance/references/DISCLAIMER.mddoc2,077 bytes../naver-ad-performance/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,719 bytes../naver-ad-performance/scripts/naver_ad_performance.pyruns8,626 bytes../naver-ad-performance/skill.jsonasset915 bytes../naver-blog-research/.gitignoreasset33 bytes../naver-blog-research/SKILL.mddoc2,448 bytes../naver-blog-research/instruction.mddoc4,711 bytes../naver-blog-research/references/DISCLAIMER.mddoc1,889 bytes../naver-blog-research/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,730 bytes../naver-blog-research/scripts/_naver_http.pyruns1,994 bytes../naver-blog-research/scripts/naver_download_images.pyruns7,418 bytes../naver-blog-research/scripts/naver_read.pyruns7,914 bytes../naver-blog-research/scripts/naver_search.pyruns6,460 bytes../naver-blog-research/skill.jsonasset457 bytes../naver-blog-research/skill.jsonasset457 bytes../naver-blog-research/skill.jsonasset457 bytes../naver-news-search/SKILL.mddoc2,559 bytes../naver-news-search/instruction.mddoc6,291 bytes../naver-news-search/references/DISCLAIMER.mddoc1,863 bytes../naver-news-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,711 bytes../naver-news-search/skill.jsonasset709 bytes../naver-shopping-search/SKILL.mddoc2,562 bytes../naver-shopping-search/instruction.mddoc5,088 bytes../naver-shopping-search/references/DISCLAIMER.mddoc1,818 bytes../naver-shopping-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,731 bytes../naver-shopping-search/skill.jsonasset717 bytes../nhis-care-checkup-search/SKILL.mddoc1,652 bytes../nhis-care-checkup-search/instruction.mddoc5,486 bytes../nhis-care-checkup-search/skill.jsonasset558 bytes../nts-business-registration/SKILL.mddoc1,722 bytes../nts-business-registration/instruction.mddoc5,466 bytes../nts-business-registration/scripts/nts_business_registration.pyruns8,958 bytes../nts-business-registration/skill.jsonasset716 bytes../nts-tax-delinquency/SKILL.mddoc1,811 bytes../nts-tax-delinquency/instruction.mddoc2,516 bytes../nts-tax-delinquency/scripts/nts_tax_delinquency.pyruns7,030 bytes../nts-tax-delinquency/scripts/test_nts_tax_delinquency.pyruns1,560 bytes../nts-tax-delinquency/skill.jsonasset916 bytes../ohou-today-deal/SKILL.mddoc2,549 bytes../ohou-today-deal/instruction.mddoc7,971 bytes../ohou-today-deal/references/DISCLAIMER.mddoc1,797 bytes../ohou-today-deal/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,708 bytes../ohou-today-deal/scripts/ohou_today_deal.pyruns12,852 bytes../ohou-today-deal/skill.jsonasset725 bytes../olive-young-search/SKILL.mddoc2,505 bytes../olive-young-search/instruction.mddoc5,823 bytes../olive-young-search/references/DISCLAIMER.mddoc1,812 bytes../olive-young-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,736 bytes../olive-young-search/skill.jsonasset592 bytes../parking-lot-search/SKILL.mddoc1,706 bytes../parking-lot-search/instruction.mddoc3,606 bytes../parking-lot-search/skill.jsonasset713 bytes../popbill/SKILL.mddoc2,544 bytes../popbill/instruction.mddoc7,198 bytes../popbill/references/DISCLAIMER.mddoc2,058 bytes../popbill/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,718 bytes../popbill/scripts/popbill_cli.pyruns11,537 bytes../popbill/scripts/popbill_registry.pyruns1,337 bytes../popbill/scripts/popbill_safety.pyruns746 bytes../popbill/scripts/popbill_templates.pyruns2,606 bytes../popbill/skill.jsonasset793 bytes../popbill/tests/fake_popbill.pyruns1,172 bytes../popbill/tests/run_tests.pyruns3,064 bytes../popbill/tests/test_popbill_cli.pyruns2,521 bytes../public-restroom-nearby/SKILL.mddoc1,709 bytes../public-restroom-nearby/instruction.mddoc4,075 bytes../public-restroom-nearby/skill.jsonasset687 bytes../railway-timetable/SKILL.mddoc2,456 bytes../railway-timetable/instruction.mddoc1,531 bytes../railway-timetable/references/AUTOMATION-LEGAL-STATEMENT.mddoc309 bytes../railway-timetable/references/DISCLAIMER.mddoc789 bytes../railway-timetable/references/TRADEMARK-LEGAL-STATEMENT.mddoc269 bytes../railway-timetable/scripts/ktx_backend.pyruns8,145 bytes../railway-timetable/scripts/ktx_backend.py.lockasset1,404 bytes../railway-timetable/scripts/ktx_timetable.pyruns4,880 bytes../railway-timetable/scripts/railway_timetable.pyruns2,884 bytes../railway-timetable/scripts/railway_timetable.py.lockasset1,404 bytes../railway-timetable/skill.jsonasset495 bytes../real-estate-search/SKILL.mddoc1,636 bytes../real-estate-search/instruction.mddoc7,488 bytes../real-estate-search/scripts/nationwide_daily_report.pyruns22,125 bytes../real-estate-search/skill.jsonasset573 bytes../real-estate-search/tests/test_nationwide_daily_report.pyruns4,663 bytes../religious-facility-search/SKILL.mddoc1,904 bytes../religious-facility-search/instruction.mddoc8,900 bytes../religious-facility-search/scripts/religious_facility_search.pyruns11,608 bytes../religious-facility-search/skill.jsonasset1,056 bytes../religious-facility-search/tests/test_religious_facility_search.pyruns14,422 bytes../rhwp-advanced/SKILL.mddoc1,633 bytes../rhwp-advanced/instruction.mddoc7,514 bytes../rhwp-advanced/skill.jsonasset593 bytes../rhwp-edit/SKILL.mddoc1,600 bytes../rhwp-edit/instruction.mddoc11,499 bytes../rhwp-edit/skill.jsonasset559 bytes../s2b-notice-search/SKILL.mddoc1,718 bytes../s2b-notice-search/instruction.mddoc3,793 bytes../s2b-notice-search/skill.jsonasset759 bytes../saju-fortune/SKILL.mddoc1,623 bytes../saju-fortune/instruction.mddoc6,709 bytes../saju-fortune/skill.jsonasset585 bytes../saramin-talent-search/SKILL.mddoc2,570 bytes../saramin-talent-search/instruction.mddoc5,129 bytes../saramin-talent-search/references/DISCLAIMER.mddoc2,059 bytes../saramin-talent-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,732 bytes../saramin-talent-search/skill.jsonasset718 bytes../scripts/build-manus-bundle.jsruns7,373 bytes../scripts/build-region-codes.jsruns1,353 bytes../scripts/check-setup.shruns134 bytes../scripts/ci-paths.jsruns5,147 bytes../scripts/ci-run.jsruns2,676 bytes../scripts/fine_dust.pyruns304 bytes../scripts/fixtures/delivery-tracking-public-provenance.jsonasset161 bytes../scripts/fixtures/delivery-tracking-public-samples.jsonasset1,244 bytes../scripts/fixtures/fine-dust-measurements.jsonasset791 bytes../scripts/fixtures/fine-dust-stations.jsonasset570 bytes../scripts/fixtures/geeknews-feed.xmlasset2,575 bytes../scripts/fixtures/hola-poke-yeoksam-contract-smoke.jsonasset3,223 bytes../scripts/geeknews_search.pyruns9,588 bytes../scripts/generate-plugin-manifest.jsruns6,099 bytes../scripts/generate-skill-list.jsruns5,792 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes../scripts/k_skill_cleaner.pyruns1,531 bytes../scripts/korean_character_count.jsruns297 bytes../scripts/korean_heritage_search.pyruns474 bytes../scripts/korean_middle_korean.jsruns293 bytes../scripts/korean_spell_check.pyruns457 bytes../scripts/mfds_drug_safety.pyruns451 bytes../scripts/mfds_food_safety.pyruns451 bytes../scripts/migrate-cli-asset-instructions.jsruns1,876 bytes../scripts/nts_business_registration.pyruns8,446 bytes../scripts/pack-dry-run.jsruns431 bytes../scripts/patent_search.pyruns449 bytes../scripts/prepare-python-test-env.jsruns2,075 bytes../scripts/registry-e2e-k-skill-cli.jsruns7,069 bytes../scripts/run-lint.jsruns911 bytes../scripts/run-store-longevity-mirror-test.jsruns754 bytes../scripts/run-tests.jsruns879 bytes../scripts/seoul_density.pyruns10,175 bytes../scripts/sillok_search.pyruns449 bytes../scripts/skill-docs.test.jsruns231,814 bytes../scripts/store_longevity_mirror.pyruns7,911 bytes../scripts/store_longevity_source.pyruns4,325 bytes../scripts/subway_lost_property.pyruns506 bytes../scripts/sync-cli-skills.jsruns4,543 bytes../scripts/test-kpic-drug-search.test.jsruns7,206 bytes../scripts/test_animal_pharmacy_mcp.pyruns2,736 bytes../scripts/test_build_manus_bundle.jsruns4,232 bytes../scripts/test_daangn_realty.pyruns10,000 bytes../scripts/test_danawa_price_search.pyruns6,726 bytes../scripts/test_fine_dust.pyruns12,173 bytes../scripts/test_g2b_order_plan.pyruns2,967 bytes../scripts/test_geeknews_search.pyruns5,510 bytes../scripts/test_generate_plugin_manifest.jsruns3,963 bytes../scripts/test_k_skill_cleaner.pyruns8,329 bytes../scripts/test_komsa_ferry_info.pyruns1,579 bytes../scripts/test_korean_character_count.jsruns4,147 bytes../scripts/test_korean_heritage_search.pyruns6,359 bytes../scripts/test_korean_law_amendment_table.jsruns37,746 bytes../scripts/test_korean_middle_korean.jsruns6,912 bytes../scripts/test_korean_slang_writing.pyruns34,223 bytes../scripts/test_korean_spell_check.pyruns11,580 bytes../scripts/test_mfds_drug_safety.pyruns4,445 bytes../scripts/test_mfds_food_safety.pyruns4,458 bytes../scripts/test_myrealtrip_mcp.pyruns1,683 bytes../scripts/test_naver_ad_performance.pyruns5,437 bytes../scripts/test_naver_blog_search.pyruns5,731 bytes../scripts/test_nts_business_registration.pyruns5,698 bytes../scripts/test_ohou_today_deal.pyruns13,444 bytes../scripts/test_patent_search.pyruns14,120 bytes../scripts/test_railway_timetable.pyruns1,850 bytes../scripts/test_run_kamis.pyruns6,453 bytes../scripts/test_saju_fortune_skill.jsruns776 bytes../scripts/test_seoul_bike.pyruns5,391 bytes../scripts/test_seoul_density.pyruns5,591 bytes../scripts/test_sillok_search.pyruns14,722 bytes../scripts/test_store_longevity_mirror.pyruns6,109 bytes../scripts/test_subway_lost_property.pyruns5,197 bytes../scripts/test_ticket_availability.pyruns6,788 bytes../scripts/test_zipcode_search.pyruns3,998 bytes../scripts/ticket_availability.pyruns15,359 bytes../scripts/validate-skills.shruns1,591 bytes../scripts/workflow-actions.test.jsruns5,629 bytes../scripts/zipcode_search.pyruns461 bytes../seoul-bike/SKILL.mddoc1,568 bytes../seoul-bike/instruction.mddoc3,135 bytes../seoul-bike/scripts/seoul_bike.pyruns9,733 bytes../seoul-bike/skill.jsonasset505 bytes../seoul-density/SKILL.mddoc1,645 bytes../seoul-density/instruction.mddoc4,492 bytes../seoul-density/scripts/seoul_density.pyruns10,962 bytes../seoul-density/skill.jsonasset635 bytes../seoul-subway-arrival/SKILL.mddoc1,703 bytes../seoul-subway-arrival/instruction.mddoc3,223 bytes../seoul-subway-arrival/skill.jsonasset695 bytes../seoul-weather-risk/SKILL.mddoc1,811 bytes../seoul-weather-risk/instruction.mddoc8,786 bytes../seoul-weather-risk/references/admin-dong-place-map.jsonasset34,959 bytes../seoul-weather-risk/scripts/seoul_weather_risk.pyruns24,830 bytes../seoul-weather-risk/skill.jsonasset914 bytes../seoul-weather-risk/tests/test_seoul_weather_risk.pyruns31,287 bytes../sh-notice-search/SKILL.mddoc1,707 bytes../sh-notice-search/instruction.mddoc5,950 bytes../sh-notice-search/skill.jsonasset746 bytes../sharenuri-facility-search/SKILL.mddoc2,653 bytes../sharenuri-facility-search/instruction.mddoc8,225 bytes../sharenuri-facility-search/references/DISCLAIMER.mddoc3,937 bytes../sharenuri-facility-search/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,794 bytes../sharenuri-facility-search/scripts/sharenuri_search.pyruns13,795 bytes../sharenuri-facility-search/skill.jsonasset810 bytes../sharenuri-facility-search/tests/__init__.pyruns53 bytes../sharenuri-facility-search/tests/test_sharenuri_search.pyruns14,030 bytes../store-longevity-radar/SKILL.mddoc1,881 bytes../store-longevity-radar/instruction.mddoc6,745 bytes../store-longevity-radar/scripts/store_longevity_download.pyruns4,665 bytes../store-longevity-radar/scripts/store_longevity_radar.pyruns6,901 bytes../store-longevity-radar/skill.jsonasset1,029 bytes../store-longevity-radar/tests/test_store_longevity_radar.pyruns2,848 bytes../subway-lost-property/SKILL.mddoc1,762 bytes../subway-lost-property/instruction.mddoc3,392 bytes../subway-lost-property/scripts/subway_lost_property.pyruns8,329 bytes../subway-lost-property/skill.jsonasset800 bytes../ticket-availability/SKILL.mddoc2,582 bytes../ticket-availability/instruction.mddoc6,480 bytes../ticket-availability/references/DISCLAIMER.mddoc1,878 bytes../ticket-availability/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,738 bytes../ticket-availability/scripts/ticket_availability.pyruns15,359 bytes../ticket-availability/skill.jsonasset739 bytes../toss-investment/SKILL.mddoc2,581 bytes../toss-investment/instruction.mddoc3,559 bytes../toss-investment/references/DISCLAIMER.mddoc2,089 bytes../toss-investment/references/TRADEMARK-LEGAL-STATEMENT.mddoc1,722 bytes../toss-investment/skill.jsonasset785 bytes../zipcode-search/SKILL.mddoc1,570 bytes../zipcode-search/instruction.mddoc5,290 bytes../zipcode-search/scripts/zipcode_search.pyruns4,025 bytes../zipcode-search/skill.jsonasset464 bytes
Read SKILL.md
# animal-pharmacy-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct animal-pharmacy-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubassembly-bill-vote-search
When your agent uses it
열린국회정보 Open API를 k-skill-proxy 경유로 호출해 의안 검색·상세와 국회의원 본회의 표결정보를 조회한다. 조회 전용.
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
404 tokensWhen the skill is activated
Reference documents
1,160 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,657 bytesSKILL.mdcore1,657 bytesSKILL.mdcore1,657 bytesSKILL.mdcore1,657 bytesSKILL.mdcore1,657 bytesinstruction.mddoc3,625 bytesskill.jsonasset565 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# assembly-bill-vote-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct assembly-bill-vote-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubbccard-eatpl-search
When your agent uses it
대한민국 맛집, 음식점, 식당, 밥집, 카페, 커피, 디저트, 고깃집, 회식 장소를 지역·역·동네 기준으로 찾아 준다. Use when the user asks for 맛집, 음식점, 좋은 식당, 근처 카페, 밥 먹을 곳, 회식하기 좋은 곳, 분위기 좋은 맛집, or Korean restaurant and cafe recommendations. 별점이 아니라 최근 결제 데이터 기반 매출 상위로 정리한다.
What it loads into context
Frontmatter
144 tokensAlways available to the agent
SKILL.md
649 tokensWhen the skill is activated
Reference documents
4,129 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/kakao-place-rating.mjstests/kakao-place-rating.test.js../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,751 bytesSKILL.mdcore2,751 bytesSKILL.mdcore2,751 bytesSKILL.mdcore2,751 bytesSKILL.mdcore2,751 bytesSKILL.mdcore2,751 bytesinstruction.mddoc11,258 bytesreferences/DISCLAIMER.mddoc2,264 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,346 bytesscripts/kakao-place-rating.mjsruns8,257 bytesskill.jsonasset1,068 bytestests/kakao-place-rating.test.jsruns8,896 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# bccard-eatpl-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct bccard-eatpl-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubbiz-health-check
When your agent uses it
사업자등록번호 하나로 "이 사업자, 실제 문제 없나"를 확인한다 — 국세청 사업자등록 상태·국민연금 가입 사업장·국세 체납 명단·금융위 법인개요·조달청 부정당제재·지방행정 인허가 영업상태를 무료 공공 데이터로 교차 조회해 사실만 병렬하는 실사 리포트(점수·등급·위험 판정 없음).
What it loads into context
Frontmatter
135 tokensAlways available to the agent
SKILL.md
453 tokensWhen the skill is activated
Reference documents
1,432 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/biz_health_check.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,847 bytesSKILL.mdcore1,847 bytesSKILL.mdcore1,847 bytesSKILL.mdcore1,847 bytesSKILL.mdcore1,847 bytesinstruction.mddoc5,194 bytesscripts/biz_health_check.pyruns8,096 bytesskill.jsonasset1,018 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# biz-health-check
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct biz-health-check
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubboim-business-search
When your agent uses it
보임(BOIM, boim.io)의 무인증 공개 검색 주소로 한국 전국 전 업종 업체(지역×업종·상호), 공공 조달 실적이 있는 업체(품명·업종), 공공기관 진행 중 입찰 공고(나라장터·국방전자조달·LH·한국수자원공사·누리장터)를 한 번에 찾는다. '세종 보람동 미용실', '교통안전표지 납품 실적 업체', '학교 안전 입찰 공고'처럼 물을 때 사용한다. 결과는 관련도 순(평가·순위 아님)이고 출처 한 줄과 전체 목록 주소를 함께 준다. Use when the user wants to find businesses in Korea by region and industry, vendors with Korean public-procurement records, or open Korean public tenders.
What it loads into context
Frontmatter
218 tokensAlways available to the agent
SKILL.md
540 tokensWhen the skill is activated
Reference documents
3,552 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,185 bytesSKILL.mdcore2,185 bytesSKILL.mdcore2,185 bytesSKILL.mdcore2,185 bytesSKILL.mdcore2,185 bytesinstruction.mddoc12,101 bytesskill.jsonasset1,645 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# boim-business-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct boim-business-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubbok-ecos-stats
When your agent uses it
한국은행 ECOS Open API로 기준금리, 환율, 소비자물가지수, 통화량 등 중앙은행 경제통계 시계열과 100대 핵심지표를 조회한다. Use when the user asks 기준금리, 환율 추이, 물가지수, M2, 국고채 금리, 거시경제 통계. Not for 주식 시세(korean-stock-search) or KOSIS 일반 통계(kosis-stats).
What it loads into context
Frontmatter
133 tokensAlways available to the agent
SKILL.md
459 tokensWhen the skill is activated
Reference documents
1,333 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/bok_ecos.pytests/test_bok_ecos.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,797 bytesSKILL.mdcore1,797 bytesSKILL.mdcore1,797 bytesSKILL.mdcore1,797 bytesSKILL.mdcore1,797 bytesinstruction.mddoc4,350 bytesscripts/bok_ecos.pyruns11,947 bytesskill.jsonasset934 bytestests/test_bok_ecos.pyruns9,947 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# bok-ecos-stats
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct bok-ecos-stats
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubbuilding-register-search
When your agent uses it
Use when the user asks to look up a Korean building-register title record by address, PNU, legal-dong code, or parcel number.
What it loads into context
Frontmatter
62 tokensAlways available to the agent
SKILL.md
380 tokensWhen the skill is activated
Reference documents
1,565 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/building_register.pyscripts/building_register_xml.pytests/test_building_register.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,626 bytesSKILL.mdcore1,626 bytesSKILL.mdcore1,626 bytesSKILL.mdcore1,626 bytesSKILL.mdcore1,626 bytesinstruction.mddoc5,560 bytesscripts/building_register.pyruns15,044 bytesscripts/building_register_xml.pyruns1,652 bytesskill.jsonasset505 bytestests/test_building_register.pyruns12,119 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# building-register-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct building-register-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubbunjang-search
When your agent uses it
번개장터 검색, 상세조회, 찜, 채팅, 대량 수집, AI TOON export를 bunjang-cli로 안내한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
80 tokensAlways available to the agent
SKILL.md
566 tokensWhen the skill is activated
Reference documents
3,091 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,490 bytesSKILL.mdcore2,490 bytesSKILL.mdcore2,490 bytesSKILL.mdcore2,490 bytesSKILL.mdcore2,490 bytesSKILL.mdcore2,490 bytesinstruction.mddoc5,709 bytesreferences/DISCLAIMER.mddoc3,926 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,746 bytesskill.jsonasset625 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# bunjang-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct bunjang-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubcheap-gas-nearby
When your agent uses it
Use when the user asks for nearby cheapest gas stations or 근처 가장 싼 주유소. Always ask the user's current location first, then use Kakao Map anchor resolution plus official Opinet fuel-price APIs.
What it loads into context
Frontmatter
77 tokensAlways available to the agent
SKILL.md
407 tokensWhen the skill is activated
Reference documents
1,195 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,667 bytesSKILL.mdcore1,667 bytesSKILL.mdcore1,667 bytesSKILL.mdcore1,667 bytesSKILL.mdcore1,667 bytesinstruction.mddoc4,311 bytesskill.jsonasset653 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# cheap-gas-nearby
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct cheap-gas-nearby
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubcompany-analysis
When your agent uses it
국내·해외 상장기업의 공개 공시와 실적발표를 대조해 3대 재무제표의 변화, 사업·경쟁구도, 주요 일정과 조회 시점 주가를 여섯 섹션의 한국어 채팅 분석으로 정리한다. 기업분석·실적발표 정리·수치 검증에 사용하며 매매 추천이나 PDF 보고서는 만들지 않는다.
What it loads into context
Frontmatter
122 tokensAlways available to the agent
SKILL.md
435 tokensWhen the skill is activated
Reference documents
7,128 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/dart-rows.jsscripts/dart-rows.tsscripts/evidence.jsscripts/evidence.tsscripts/fetch-public.jsscripts/fetch-public.tstests/evidence.test.jstests/evidence.test.tstests/live-multi.test.tstests/run_tests.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,806 bytesSKILL.mdcore1,806 bytesSKILL.mdcore1,806 bytesSKILL.mdcore1,806 bytesSKILL.mdcore1,806 bytesinstruction.mddoc15,470 bytesreferences/source-contract.mddoc11,243 bytesscripts/dart-rows.jsruns2,834 bytesscripts/dart-rows.tsruns2,593 bytesscripts/evidence.jsruns31,668 bytesscripts/evidence.tsruns30,761 bytesscripts/fetch-public.jsruns3,789 bytesscripts/fetch-public.tsruns3,372 bytesskill.jsonasset912 bytestests/evidence.test.jsruns25,506 bytestests/evidence.test.tsruns22,212 bytestests/live-multi.test.tsruns7,486 bytestests/run_tests.pyruns657 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# company-analysis
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct company-analysis
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubconsumer-price-safety-search
When your agent uses it
한국소비자원 참가격과 소비자24 물품·리콜정보를 공식 API로 조회한다. 현재는 서비스별 인증키·메뉴 매핑을 검증하는 draft scaffold다.
What it loads into context
Frontmatter
75 tokensAlways available to the agent
SKILL.md
401 tokensWhen the skill is activated
Reference documents
296 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,699 bytesSKILL.mdcore1,699 bytesSKILL.mdcore1,699 bytesSKILL.mdcore1,699 bytesSKILL.mdcore1,699 bytesinstruction.mddoc1,157 bytesskill.jsonasset607 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# consumer-price-safety-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct consumer-price-safety-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubcorporate-registration-consulting
When your agent uses it
법인등기소/인터넷등기소 상업등기 신청을 처음 하는 사용자를 위해 일반 영리 주식회사 발기설립 절차, 정관·첨부서류 실제 HWP 양식 작성, 등록면허세·과밀억제권역 중과 체크, rhwp 기반 순차 검토 흐름을 참고용으로 안내한다. 돌쇠에서는 가능한 가장 가까운 합법적 공식 단계까지 준비한다.
What it loads into context
Frontmatter
126 tokensAlways available to the agent
SKILL.md
453 tokensWhen the skill is activated
Reference documents
11,347 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/fill_official_hwp.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,928 bytesSKILL.mdcore1,928 bytesSKILL.mdcore1,928 bytesSKILL.mdcore1,928 bytesSKILL.mdcore1,928 bytesinstruction.mddoc23,073 bytesscripts/fill_official_hwp.pyruns3,762 bytesskill.jsonasset1,058 bytestemplates/attachment-hwp/articles-of-incorporation.hwpasset21,504 bytestemplates/attachment-hwp/board-minutes.hwpasset10,752 bytestemplates/attachment-hwp/corporate-seal-report.hwpasset52,736 bytestemplates/attachment-hwp/founder-meeting-minutes.hwpasset58,368 bytestemplates/attachment-hwp/founder-meeting-period-shortening-consent.hwpasset9,216 bytestemplates/attachment-hwp/inspection-report.hwpasset10,752 bytestemplates/attachment-hwp/officer-acceptance-auditor.hwpasset8,704 bytestemplates/attachment-hwp/officer-acceptance-director-ceo.hwpasset8,704 bytestemplates/attachment-hwp/power-of-attorney.hwpasset33,280 bytestemplates/attachment-hwp/share-issuance-consent.hwpasset9,216 bytestemplates/attachment-hwp/share-subscription.hwpasset9,216 bytestemplates/attachment-hwp/shareholder-register.hwpasset36,352 bytestemplates/attachment-hwp/source-manifest.jsonasset10,805 bytestemplates/attachment-hwp/standard-articles-startup-moj.hwpasset19,456 bytestemplates/incorporation-document-pack.mddoc6,676 bytestemplates/official-form-sources.mddoc10,963 bytestemplates/official/form-65-1-fill-map.jsonasset2,805 bytestemplates/official/form-65-1-stock-company-incorporation-promoter.hwpasset17,408 bytestemplates/official/form-65-2-stock-company-incorporation-subscription.hwpasset17,408 bytestemplates/official/source-manifest.jsonasset1,144 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# corporate-registration-consulting
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct corporate-registration-consulting
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubcoupang-product-search
When your agent uses it
k-skill-proxy의 공식 Coupang Partners API 경로로 쿠팡 상품을 검색하고 로켓배송·가격 후보를 비교한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
80 tokensAlways available to the agent
SKILL.md
614 tokensWhen the skill is activated
Reference documents
2,447 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Affiliate disclosure (required)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,750 bytesSKILL.mdcore2,750 bytesSKILL.mdcore2,750 bytesSKILL.mdcore2,750 bytesSKILL.mdcore2,750 bytesSKILL.mdcore2,750 bytesinstruction.mddoc3,536 bytesreferences/DISCLAIMER.mddoc3,934 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,749 bytesskill.jsonasset926 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# coupang-product-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct coupang-product-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubcourt-auction-notice-search
When your agent uses it
Browse 대법원경매정보(courtauction.go.kr) 부동산 매각공고 by 매각기일·법원·기일/기간 입찰, expand each notice into 사건번호·용도·주소·감정평가액·최저매각가, search property items by free conditions(지역·용도·가격·면적·유찰횟수), and look up a case directly by 법원+사건번호. Read-only, slow-by-design (~2s/call) to avoid IP blocks. 돌쇠에서는 가능한 가장 가까운 합법적 공식 단계까지 준비한다.
What it loads into context
Frontmatter
167 tokensAlways available to the agent
SKILL.md
497 tokensWhen the skill is activated
Reference documents
4,143 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,006 bytesSKILL.mdcore2,006 bytesSKILL.mdcore2,006 bytesSKILL.mdcore2,006 bytesSKILL.mdcore2,006 bytesinstruction.mddoc14,577 bytesskill.jsonasset1,255 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# court-auction-notice-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct court-auction-notice-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubcourt-payment-order-assistant
When your agent uses it
법원 전자소송 지급명령 신청을 위해 채권자·채무자·청구금액·청구원인·증빙 정보를 인터뷰하고, 신청서 초안과 공식 전자소송 브라우저 입력 handoff를 준비한다. 돌쇠에서는 가능한 가장 가까운 합법적 공식 단계까지 준비한다.
What it loads into context
Frontmatter
107 tokensAlways available to the agent
SKILL.md
433 tokensWhen the skill is activated
Reference documents
1,471 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,825 bytesSKILL.mdcore1,825 bytesSKILL.mdcore1,825 bytesSKILL.mdcore1,825 bytesSKILL.mdcore1,825 bytesinstruction.mddoc6,087 bytesskill.jsonasset883 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# court-payment-order-assistant
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct court-payment-order-assistant
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubd2b-notice-search
When your agent uses it
국방전자조달시스템(D2B) 공개 입찰공고 검색 화면에서 공고건명·공고구분·공고/개찰일·G2B공고번호·발주기관 조건으로 공고를 조회한다. 돌쇠에서는 가능한 가장 가까운 합법적 공식 단계까지 준비한다.
What it loads into context
Frontmatter
105 tokensAlways available to the agent
SKILL.md
434 tokensWhen the skill is activated
Reference documents
1,342 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,738 bytesSKILL.mdcore1,738 bytesSKILL.mdcore1,738 bytesSKILL.mdcore1,738 bytesSKILL.mdcore1,738 bytesinstruction.mddoc4,868 bytesskill.jsonasset812 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# d2b-notice-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct d2b-notice-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubdaangn-cars-search
When your agent uses it
당근중고차 공개 웹 데이터로 차량을 검색하고, 돌쇠에서는 공식 계정 표면에서 문의·찜·거래 준비까지 진행한다.
What it loads into context
Frontmatter
70 tokensAlways available to the agent
SKILL.md
571 tokensWhen the skill is activated
Reference documents
2,591 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/daangn_cars.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,483 bytesSKILL.mdcore2,483 bytesSKILL.mdcore2,483 bytesSKILL.mdcore2,483 bytesSKILL.mdcore2,483 bytesSKILL.mdcore2,483 bytesinstruction.mddoc4,069 bytesreferences/DISCLAIMER.mddoc3,930 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,713 bytesscripts/daangn_cars.pyruns3,545 bytesskill.jsonasset557 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# daangn-cars-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct daangn-cars-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubdaangn-jobs-search
When your agent uses it
당근알바 공개 웹 데이터로 공고를 검색하고, 돌쇠에서는 공식 계정 표면에서 지원서 작성·채팅·승인 기반 전송까지 진행한다.
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
575 tokensWhen the skill is activated
Reference documents
2,598 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/daangn_jobs.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,494 bytesSKILL.mdcore2,494 bytesSKILL.mdcore2,494 bytesSKILL.mdcore2,494 bytesSKILL.mdcore2,494 bytesSKILL.mdcore2,494 bytesinstruction.mddoc4,201 bytesreferences/DISCLAIMER.mddoc3,930 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,713 bytesscripts/daangn_jobs.pyruns4,354 bytesskill.jsonasset615 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# daangn-jobs-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct daangn-jobs-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubdaangn-realty-search
When your agent uses it
당근부동산 공개 웹 데이터로 매물을 검색하고, 돌쇠에서는 공식 계정 표면에서 문의·방문예약·계약 준비까지 진행한다.
What it loads into context
Frontmatter
75 tokensAlways available to the agent
SKILL.md
576 tokensWhen the skill is activated
Reference documents
3,199 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/daangn_detail_ld.pyscripts/daangn_realty.pyscripts/daangn_relay_store.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,507 bytesSKILL.mdcore2,507 bytesSKILL.mdcore2,507 bytesSKILL.mdcore2,507 bytesSKILL.mdcore2,507 bytesSKILL.mdcore2,507 bytesinstruction.mddoc5,736 bytesreferences/DISCLAIMER.mddoc3,932 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,724 bytesscripts/daangn_detail_ld.pyruns2,219 bytesscripts/daangn_realty.pyruns8,557 bytesscripts/daangn_relay_store.pyruns4,914 bytesskill.jsonasset569 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# daangn-realty-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct daangn-realty-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubdaangn-used-goods-search
When your agent uses it
당근 중고거래 공개 웹 데이터로 매물을 검색하고, 돌쇠에서는 공식 계정 표면에서 찜·채팅·거래 준비까지 진행한다.
What it loads into context
Frontmatter
73 tokensAlways available to the agent
SKILL.md
579 tokensWhen the skill is activated
Reference documents
2,559 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/daangn_used_goods.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,524 bytesSKILL.mdcore2,524 bytesSKILL.mdcore2,524 bytesSKILL.mdcore2,524 bytesSKILL.mdcore2,524 bytesSKILL.mdcore2,524 bytesinstruction.mddoc4,004 bytesreferences/DISCLAIMER.mddoc3,936 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,723 bytesscripts/daangn_used_goods.pyruns3,391 bytesskill.jsonasset578 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# daangn-used-goods-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct daangn-used-goods-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubdaishin-report-search
When your agent uses it
대신증권 리포트 GitHub Pages 미러에서 최신 HTML 리포트 목록과 원문/설명 페이지를 조회한다.
What it loads into context
Frontmatter
62 tokensAlways available to the agent
SKILL.md
558 tokensWhen the skill is activated
Reference documents
3,038 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,466 bytesSKILL.mdcore2,466 bytesSKILL.mdcore2,466 bytesSKILL.mdcore2,466 bytesSKILL.mdcore2,466 bytesSKILL.mdcore2,466 bytesinstruction.mddoc6,337 bytesreferences/DISCLAIMER.mddoc3,933 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,805 bytesskill.jsonasset487 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# daishin-report-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct daishin-report-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubdaiso-product-search
When your agent uses it
Look up Daiso products by store name and product keyword using official Daiso Mall store/search/stock surfaces. Use when the user wants to know whether a product is available at a specific Daiso store. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
90 tokensAlways available to the agent
SKILL.md
580 tokensWhen the skill is activated
Reference documents
3,521 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,613 bytesSKILL.mdcore2,613 bytesSKILL.mdcore2,613 bytesSKILL.mdcore2,613 bytesSKILL.mdcore2,613 bytesSKILL.mdcore2,613 bytesinstruction.mddoc7,462 bytesreferences/DISCLAIMER.mddoc3,932 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,710 bytesskill.jsonasset788 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# daiso-product-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct daiso-product-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubdanawa-price-search
When your agent uses it
다나와 공개 검색/가격비교 표면으로 상품 후보를 찾고, 쇼핑몰별 최저가·배송비 포함 실구매가·카드 할인가·무이자 할부 정보를 보수적으로 비교한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
591 tokensWhen the skill is activated
Reference documents
4,476 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/danawa_search.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,610 bytesSKILL.mdcore2,610 bytesSKILL.mdcore2,610 bytesSKILL.mdcore2,610 bytesSKILL.mdcore2,610 bytesSKILL.mdcore2,610 bytesinstruction.mddoc10,499 bytesreferences/DISCLAIMER.mddoc3,931 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,715 bytesscripts/danawa_search.pyruns14,974 bytesskill.jsonasset792 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# danawa-price-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct danawa-price-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubdelivery-tracking
When your agent uses it
Track CJ대한통운 and 우체국 parcels by invoice number with official carrier endpoints, and structure the workflow around a carrier adapter that can grow to more couriers later.
What it loads into context
Frontmatter
66 tokensAlways available to the agent
SKILL.md
552 tokensWhen the skill is activated
Reference documents
4,968 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,506 bytesSKILL.mdcore2,506 bytesSKILL.mdcore2,506 bytesSKILL.mdcore2,506 bytesSKILL.mdcore2,506 bytesSKILL.mdcore2,506 bytesinstruction.mddoc11,966 bytesreferences/DISCLAIMER.mddoc3,929 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,735 bytesskill.jsonasset592 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# delivery-tracking
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct delivery-tracking
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubdonation-place-search
When your agent uses it
Use when the user asks where to donate, 기부처 조회, or donation place recommendations by Korean location and category. Recommend recipients with best-effort 1365 verification-assist links and never execute donations. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
90 tokensAlways available to the agent
SKILL.md
408 tokensWhen the skill is activated
Reference documents
1,417 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,778 bytesSKILL.mdcore1,778 bytesSKILL.mdcore1,778 bytesSKILL.mdcore1,778 bytesSKILL.mdcore1,778 bytesinstruction.mddoc5,637 bytesskill.jsonasset848 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# donation-place-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct donation-place-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubemergency-room-beds
When your agent uses it
Use when the user asks for nearby Korean emergency rooms, 응급실, ER, or emergency bed/병상 status near a location. Ask for the user's current location first unless a location was already provided.
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
396 tokensWhen the skill is activated
Reference documents
818 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,673 bytesSKILL.mdcore1,673 bytesSKILL.mdcore1,673 bytesSKILL.mdcore1,673 bytesSKILL.mdcore1,673 bytesinstruction.mddoc3,093 bytesskill.jsonasset631 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# emergency-room-beds
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct emergency-room-beds
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubev-charger-nearby
When your agent uses it
Use when the user asks for Korean EV charging-station locations, charger types, or current charger status by region, station, or location text. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
80 tokensAlways available to the agent
SKILL.md
410 tokensWhen the skill is activated
Reference documents
1,283 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/ev_charger.pytests/test_ev_charger.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,679 bytesSKILL.mdcore1,679 bytesSKILL.mdcore1,679 bytesSKILL.mdcore1,679 bytesSKILL.mdcore1,679 bytesinstruction.mddoc4,652 bytesscripts/ev_charger.pyruns9,826 bytesskill.jsonasset671 bytestests/test_ev_charger.pyruns7,675 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# ev-charger-nearby
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct ev-charger-nearby
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubev-subsidy-status
When your agent uses it
한국 지자체별 전기차 구매보조금 민간공고·접수·출고·출고잔여 대수와 공고 상태를 환경부 무공해차 통합누리집에서 조회한다. 사용자가 사는 지역의 전기승용·전기화물·전기승합 보조금 잔여 현황, 접수 가능 여부, 마감·소진·추경 예정, 특정 모델 기준 보조금 환산치를 물을 때 사용한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
159 tokensAlways available to the agent
SKILL.md
485 tokensWhen the skill is activated
Reference documents
2,090 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,931 bytesSKILL.mdcore1,931 bytesSKILL.mdcore1,931 bytesSKILL.mdcore1,931 bytesSKILL.mdcore1,931 bytesagents/openai.yamlasset275 bytesinstruction.mddoc7,837 bytesskill.jsonasset1,198 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# ev-subsidy-status
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct ev-subsidy-status
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubexpress-bus-booking
When your agent uses it
Search and assist Korean 고속버스/KOBUS bookings using official HTTP/API-first flows; use for 고속버스 예매, 시간표, 좌석 조회, 임시 선점, and official checkout-entry handoff. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
593 tokensWhen the skill is activated
Reference documents
4,601 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/kobus_express_booking.pytests/__init__.pytests/test_kobus_express_booking.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,602 bytesSKILL.mdcore2,602 bytesSKILL.mdcore2,602 bytesSKILL.mdcore2,602 bytesSKILL.mdcore2,602 bytesSKILL.mdcore2,602 bytesinstruction.mddoc8,160 bytesreferences/DISCLAIMER.mddoc3,931 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,724 bytesreferences/kobus-http-flow.mddoc3,287 bytesscripts/kobus_express_booking.pyruns11,273 bytesskill.jsonasset803 bytestests/__init__.pyruns0 bytestests/test_kobus_express_booking.pyruns6,185 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# express-bus-booking
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct express-bus-booking
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubfine-dust-location
When your agent uses it
에어코리아 기반 미세먼지/초미세먼지를 지역명 또는 위치 힌트로 조회한다. 기본 경로는 k-skill-proxy의 report endpoint다.
What it loads into context
Frontmatter
72 tokensAlways available to the agent
SKILL.md
394 tokensWhen the skill is activated
Reference documents
818 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/fine_dust.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesinstruction.mddoc2,932 bytesscripts/fine_dust.pyruns18,985 bytesskill.jsonasset551 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# fine-dust-location
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct fine-dust-location
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubflight-ticket-search
When your agent uses it
Google Flights 공개 검색 표면을 무료로 조회해 항공권 후보, 예약 검색 링크, 날짜/월/연도별 최저가·평균가 비교를 보수적으로 제공한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
90 tokensAlways available to the agent
SKILL.md
576 tokensWhen the skill is activated
Reference documents
4,037 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/flight_ticket_search.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,592 bytesSKILL.mdcore2,592 bytesSKILL.mdcore2,592 bytesSKILL.mdcore2,592 bytesSKILL.mdcore2,592 bytesSKILL.mdcore2,592 bytesinstruction.mddoc8,582 bytesreferences/DISCLAIMER.mddoc3,932 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,715 bytesscripts/flight_ticket_search.pyruns19,804 bytesskill.jsonasset760 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# flight-ticket-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct flight-ticket-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubforesttrip-vacancy
When your agent uses it
Look up available Korean national forest recreation lodging or camping slots on foresttrip.go.kr and, in Dolshoi, continue into the official booking flow with approval-gated payment.
What it loads into context
Frontmatter
70 tokensAlways available to the agent
SKILL.md
566 tokensWhen the skill is activated
Reference documents
3,542 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/run_foresttrip_vacancy.pytests/__init__.pytests/test_foresttrip_session.pytests/test_run_foresttrip_vacancy.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,510 bytesSKILL.mdcore2,510 bytesSKILL.mdcore2,510 bytesSKILL.mdcore2,510 bytesSKILL.mdcore2,510 bytesSKILL.mdcore2,510 bytesinstruction.mddoc7,655 bytesreferences/DISCLAIMER.mddoc3,930 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,762 bytesscripts/run_foresttrip_vacancy.pyruns21,168 bytesskill.jsonasset627 bytestests/__init__.pyruns0 bytestests/fixtures/geoje_window.jsonasset3,934 bytestests/fixtures/gujaebong_window.jsonasset1,522 bytestests/test_foresttrip_session.pyruns7,055 bytestests/test_run_foresttrip_vacancy.pyruns13,009 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# foresttrip-vacancy
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct foresttrip-vacancy
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubfsc-corporate-info
When your agent uses it
금융위원회 기업기본정보(법인 개요)를 공공데이터포털 API(k-skill-proxy 경유)로 조회한다. 법인명으로 대표자·설립일·업종 등 법인 개요를 확인하고, 응답에 사업자번호가 있으면 입력 번호와 교차검증한다.
What it loads into context
Frontmatter
106 tokensAlways available to the agent
SKILL.md
435 tokensWhen the skill is activated
Reference documents
792 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/fsc_corporate_info.pyscripts/test_fsc_corporate_info.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,741 bytesSKILL.mdcore1,741 bytesSKILL.mdcore1,741 bytesSKILL.mdcore1,741 bytesSKILL.mdcore1,741 bytesinstruction.mddoc2,818 bytesscripts/fsc_corporate_info.pyruns4,885 bytesscripts/test_fsc_corporate_info.pyruns1,285 bytesskill.jsonasset786 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# fsc-corporate-info
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct fsc-corporate-info
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubg2b-order-plan-search
When your agent uses it
조달청 나라장터 발주계획현황서비스로 물품·공사·용역·외자 발주계획 목록을 검색한다. 돌쇠에서는 가능한 가장 가까운 합법적 공식 단계까지 준비한다.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
414 tokensWhen the skill is activated
Reference documents
2,401 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/g2b_order_plan.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,691 bytesSKILL.mdcore1,691 bytesSKILL.mdcore1,691 bytesSKILL.mdcore1,691 bytesSKILL.mdcore1,691 bytesinstruction.mddoc8,418 bytesscripts/g2b_order_plan.pyruns6,884 bytesskill.jsonasset689 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# g2b-order-plan-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct g2b-order-plan-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubg2b-sanctioned-supplier
When your agent uses it
조달청 나라장터 부정당제재업체정보를 공공데이터포털 API(k-skill-proxy 경유)로 조회한다. 사업자등록번호 정확 일치로 조회시점 현재 유효한 입찰참가자격 제한(부정당제재)의 기간·제재기관·근거법률을 확인한다.
What it loads into context
Frontmatter
113 tokensAlways available to the agent
SKILL.md
450 tokensWhen the skill is activated
Reference documents
1,102 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/g2b_sanctioned_supplier.pyscripts/test_g2b_sanctioned_supplier.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,778 bytesSKILL.mdcore1,778 bytesSKILL.mdcore1,778 bytesSKILL.mdcore1,778 bytesSKILL.mdcore1,778 bytesinstruction.mddoc4,014 bytesscripts/g2b_sanctioned_supplier.pyruns4,983 bytesscripts/test_g2b_sanctioned_supplier.pyruns1,865 bytesskill.jsonasset820 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# g2b-sanctioned-supplier
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct g2b-sanctioned-supplier
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubgeeknews-search
When your agent uses it
GeekNews public RSS/Atom feed로 긱뉴스 게시물을 조회, 검색, 상세 확인하는 읽기 전용 스킬.
What it loads into context
Frontmatter
60 tokensAlways available to the agent
SKILL.md
378 tokensWhen the skill is activated
Reference documents
570 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/geeknews_search.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,573 bytesSKILL.mdcore1,573 bytesSKILL.mdcore1,573 bytesSKILL.mdcore1,573 bytesSKILL.mdcore1,573 bytesinstruction.mddoc2,151 bytesscripts/geeknews_search.pyruns9,588 bytesskill.jsonasset454 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# geeknews-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct geeknews-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubgongsijiga-search
When your agent uses it
대한민국 국토교통부가 매년 공시하는 "개별공시지가"(원/㎡) 조회. 지번 단위 토지의 정부 공시 단가로, 재산세·종부세·양도세 등 세금 산정의 법적 기준이다. **시세/실거래가가 아니다.** Use when the user asks for 공시지가, 개별공시지가, 토지 공시단가, 세무 계산용 토지 단가, or "이 땅 공시지가 얼마야". Do NOT use for 시세, 실거래가, 매매가, 호가, 공동주택가격 (those need a different data source).
What it loads into context
Frontmatter
192 tokensAlways available to the agent
SKILL.md
517 tokensWhen the skill is activated
Reference documents
1,367 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,996 bytesSKILL.mdcore1,996 bytesSKILL.mdcore1,996 bytesSKILL.mdcore1,996 bytesSKILL.mdcore1,996 bytesinstruction.mddoc4,496 bytesskill.jsonasset783 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# gongsijiga-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct gongsijiga-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubgov-overseas-trip-report
When your agent uses it
선관위·권익위·정보공개포털·주요 지방의회 등 검증된 공개 표면에서 공무국외출장/국외훈련 보고서·현황을 조회하고, 첨부 원문이 있으면 kordoc으로 사실·공개성·검토 신호만 구조화한다. 부정부패 판정 도구가 아니다.
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
446 tokensWhen the skill is activated
Reference documents
7,761 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/gov_overseas_trip_report.pytests/test_gov_overseas_trip_report.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,791 bytesSKILL.mdcore1,791 bytesSKILL.mdcore1,791 bytesSKILL.mdcore1,791 bytesSKILL.mdcore1,791 bytesinstruction.mddoc28,341 bytesscripts/gov_overseas_trip_report.pyruns46,679 bytesskill.jsonasset843 bytestests/fixtures/acrc-list-p1.htmlasset13,376 bytestests/fixtures/daegu-list.htmlasset3,581 bytestests/fixtures/daejeon-list.htmlasset13,324 bytestests/fixtures/fixture-meta.jsonasset382 bytestests/fixtures/gb-notice.htmlasset808 bytestests/fixtures/ggc-list.htmlasset25,082 bytestests/fixtures/nec-list-p1.htmlasset26,644 bytestests/fixtures/nec-list-p2.htmlasset26,245 bytestests/fixtures/open-portal.htmlasset45,550 bytestests/test_gov_overseas_trip_report.pyruns7,116 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# gov-overseas-trip-report
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct gov-overseas-trip-report
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubgovernment-bond-analysis
When your agent uses it
한국·미국 국채시장을 공식 금리 데이터로 분석하고 커브 변화, 한·미 금리차, 확인된 국채 입찰·통화정책 일정을 같은 형식으로 정리한다. 국고채·미국 국채 금리 비교, 최근 변화, 주요 일정 또는 출처 있는 보고서를 요청할 때 사용한다. 실시간 호가, 개별 채권 가격평가, 매매 추천은 다루지 않는다.
What it loads into context
Frontmatter
130 tokensAlways available to the agent
SKILL.md
452 tokensWhen the skill is activated
Reference documents
6,231 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/cli.mjsscripts/collect.mjsscripts/core.mjsscripts/dual.mjsscripts/harness.mjsscripts/modes.mjsscripts/news.mjsscripts/render.mjsscripts/schedule.mjsscripts/ust.mjssrc/cli.mtssrc/collect.mtssrc/core.mtssrc/dual.mtssrc/harness.mtssrc/modes.mtssrc/news.mtssrc/render.mtssrc/schedule.mtssrc/ust.mts../scripts/generate-skill-stubs.js
Files
LICENSEasset1,056 bytesSKILL.mdcore1,899 bytesSKILL.mdcore1,899 bytesSKILL.mdcore1,899 bytesSKILL.mdcore1,899 bytesSKILL.mdcore1,899 bytesinstruction.mddoc16,422 bytesreferences/methodology.mddoc6,173 bytesscripts/cli.mjsruns21,169 bytesscripts/collect.mjsruns9,223 bytesscripts/core.mjsruns13,694 bytesscripts/dual.mjsruns18,100 bytesscripts/harness.mjsruns44,594 bytesscripts/modes.mjsruns10,970 bytesscripts/news.mjsruns8,178 bytesscripts/render.mjsruns19,356 bytesscripts/schedule.mjsruns6,909 bytesscripts/ust.mjsruns11,569 bytesskill.jsonasset1,042 bytessrc/cli.mtsruns18,928 bytessrc/collect.mtsruns8,314 bytessrc/core.mtsruns13,636 bytessrc/dual.mtsruns19,260 bytessrc/harness.mtsruns41,513 bytessrc/modes.mtsruns11,664 bytessrc/news.mtsruns8,488 bytessrc/render.mtsruns18,737 bytessrc/schedule.mtsruns7,520 bytessrc/ust.mtsruns11,813 bytestsconfig.jsonasset234 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# government-bond-analysis
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct government-bond-analysis
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubgovernment-support-survey
When your agent uses it
K-Startup·기업마당·NIPA·KOCCA·SMTECH의 공개 정부지원 공고를 k-skill-proxy로 전수조사하고 프로젝트 적합성을 보수적으로 분류한다. 사용자가 정부지원사업, 창업지원, 사업화·R&D·바우처·입주공간 공고를 한 번에 찾아달라고 할 때 사용한다.
What it loads into context
Frontmatter
92 tokensAlways available to the agent
SKILL.md
413 tokensWhen the skill is activated
Reference documents
1,450 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/run_survey.pytests/test_run_survey.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,746 bytesSKILL.mdcore1,746 bytesSKILL.mdcore1,746 bytesSKILL.mdcore1,746 bytesSKILL.mdcore1,746 bytesinstruction.mddoc3,248 bytesreferences/NOTICE.mddoc2,324 bytesscripts/run_survey.pyruns2,619 bytesskill.jsonasset833 bytestests/test_run_survey.pyruns830 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# government-support-survey
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct government-support-survey
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubhan-river-water-level
When your agent uses it
한강홍수통제소 기반 현재 수위/유량을 관측소명 또는 관측소코드로 조회한다. 기본 경로는 k-skill-proxy의 han-river water-level endpoint다.
What it loads into context
Frontmatter
80 tokensAlways available to the agent
SKILL.md
406 tokensWhen the skill is activated
Reference documents
734 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,656 bytesSKILL.mdcore1,656 bytesSKILL.mdcore1,656 bytesSKILL.mdcore1,656 bytesSKILL.mdcore1,656 bytesinstruction.mddoc2,637 bytesskill.jsonasset593 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# han-river-water-level
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct han-river-water-level
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubhankookilbo-news
When your agent uses it
한국일보 공식 원격 MCP 서버(mcp.hankookilbo.com)를 인증 없이 직접 호출해 편집 헤드라인·많이 본·꼼꼼히 본·최신 기사·섹션별 편집 추천·주제 검색·오늘의 운세를 기사 메타데이터(제목·발행시각·원문 링크) 중심으로 조회한다.
What it loads into context
Frontmatter
115 tokensAlways available to the agent
SKILL.md
441 tokensWhen the skill is activated
Reference documents
2,452 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,763 bytesSKILL.mdcore1,763 bytesSKILL.mdcore1,763 bytesSKILL.mdcore1,763 bytesSKILL.mdcore1,763 bytesinstruction.mddoc8,654 bytesskill.jsonasset830 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# hankookilbo-news
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct hankookilbo-news
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubheyyumi
When your agent uses it
헤이유미(HeyYumi)로 한국 식당·카페·바를 찾고, 그 자리에서 예약 요청을 보내 매장의 수락/거절까지 확인하는 스킬. 지역·역·랜드마크, 메뉴 이름(몸국, 소금빵 등), 분위기, 영업 시각, 주차, 채식·비건, 아이·반려동물 동반, 외국어 응대 같은 조건으로 맛집 찾기, 식당 예약, 테이블 예약, 카페 예약, 예약 가능 여부 확인, 지금 자리 있나·웨이팅 몇 분인지 매장에 물어보기가 필요할 때 사용한다. 한국어를 몰라도 되고, 외국어로 쓴 요리 이름과 지명도 알아듣는다. Use when the user wants to find a Korean restaurant, cafe, or bar by area, dish, or condition (parking, vegan, kids, pets, foreigner-friendly), book a table or send a reservation request via HeyYumi, or ask a venue about current wait time or seat availability, in any language.
What it loads into context
Frontmatter
262 tokensAlways available to the agent
SKILL.md
579 tokensWhen the skill is activated
Reference documents
1,821 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,306 bytesSKILL.mdcore2,306 bytesSKILL.mdcore2,306 bytesSKILL.mdcore2,306 bytesSKILL.mdcore2,306 bytesinstruction.mddoc6,676 bytesskill.jsonasset2,016 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# heyyumi
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct heyyumi
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubhighway-traffic-status
When your agent uses it
한국도로공사·국가교통정보센터 공개 API로 고속도로 실시간 소통(구간별 속도/교통량/정체 등급)과 CCTV 스트림 메타데이터를 조회한다. Use when the user asks 고속도로 정체, 교통 상황, 노선/구간 소통, 고속도로 CCTV. Not for 대중교통 길찾기 or 자동차 경로 안내.
What it loads into context
Frontmatter
124 tokensAlways available to the agent
SKILL.md
446 tokensWhen the skill is activated
Reference documents
1,369 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/highway_traffic.pytests/test_highway_traffic.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,827 bytesSKILL.mdcore1,827 bytesSKILL.mdcore1,827 bytesSKILL.mdcore1,827 bytesSKILL.mdcore1,827 bytesinstruction.mddoc4,638 bytesscripts/highway_traffic.pyruns12,970 bytesskill.jsonasset942 bytestests/test_highway_traffic.pyruns9,991 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# highway-traffic-status
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct highway-traffic-status
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubhola-poke-yeoksam
When your agent uses it
올라포케 역삼점의 메뉴·매장 정보·이벤트 참여 흐름을 remote MCP 서버 기준으로 안내한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
79 tokensAlways available to the agent
SKILL.md
413 tokensWhen the skill is activated
Reference documents
1,930 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,653 bytesSKILL.mdcore1,653 bytesSKILL.mdcore1,653 bytesSKILL.mdcore1,653 bytesSKILL.mdcore1,653 bytesinstruction.mddoc6,818 bytesskill.jsonasset618 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# hola-poke-yeoksam
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct hola-poke-yeoksam
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubhousehold-waste-info
When your agent uses it
Use when the user asks for 생활쓰레기 배출 요일/시간/장소 정보 by 지역명(시군구) and wants official data.go.kr household waste guidance.
What it loads into context
Frontmatter
70 tokensAlways available to the agent
SKILL.md
393 tokensWhen the skill is activated
Reference documents
1,446 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,634 bytesSKILL.mdcore1,634 bytesSKILL.mdcore1,634 bytesSKILL.mdcore1,634 bytesSKILL.mdcore1,634 bytesinstruction.mddoc5,071 bytesskill.jsonasset557 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# household-waste-info
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct household-waste-info
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubhousing-official-price
When your agent uses it
Korean apartment and individual-house official price lookup through the public realtyprice.kr web data surface. Use when the user asks for 공동주택가격, 개별주택가격, 아파트 공시가격, 단독주택 공시가격, or housing official price history. This is not land official price, transaction price, or building register metadata.
What it loads into context
Frontmatter
114 tokensAlways available to the agent
SKILL.md
436 tokensWhen the skill is activated
Reference documents
2,082 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,850 bytesSKILL.mdcore1,850 bytesSKILL.mdcore1,850 bytesSKILL.mdcore1,850 bytesSKILL.mdcore1,850 bytesinstruction.mddoc8,073 bytesskill.jsonasset631 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# housing-official-price
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct housing-official-price
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubhousing-subscription-reference
When your agent uses it
민영주택 일반공급 청약가점(무주택기간·부양가족수·청약통장 가입기간 합계 84점)과 지역·전용면적별 청약 예치금 기준을 「주택공급에 관한 규칙」 별표 1·별표 2 값으로 조회한다. 청약가점, 청약 예치금, 민영주택, 무주택기간, 부양가족 질문에 사용한다.
What it loads into context
Frontmatter
138 tokensAlways available to the agent
SKILL.md
460 tokensWhen the skill is activated
Reference documents
4,192 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,876 bytesSKILL.mdcore1,876 bytesSKILL.mdcore1,876 bytesSKILL.mdcore1,876 bytesSKILL.mdcore1,876 bytesinstruction.mddoc9,195 bytesreferences/housing_subscription_score.csvasset6,484 bytesreferences/private_housing_deposit.csvasset734 bytesreferences/region-and-area-rules.mddoc3,786 bytesskill.jsonasset944 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# housing-subscription-reference
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct housing-subscription-reference
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubhwp
When your agent uses it
Use kordoc for agent-native HWP/HWPX document parsing, JSON extraction, diffing, form-field extraction, and Markdown→HWPX reverse conversion (read/convert only — for binary editing use rhwp-edit).
What it loads into context
Frontmatter
76 tokensAlways available to the agent
SKILL.md
389 tokensWhen the skill is activated
Reference documents
2,139 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,594 bytesSKILL.mdcore1,594 bytesSKILL.mdcore1,594 bytesSKILL.mdcore1,594 bytesSKILL.mdcore1,594 bytesinstruction.mddoc7,584 bytesskill.jsonasset597 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# hwp
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct hwp
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubintercity-bus-booking
When your agent uses it
Search and assist Korean 시외버스/Tmoney bookings using official HTTP/API-first flows; use for 시외버스 예매, 시간표, 좌석/요금 조회, and official checkout-entry handoff. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
95 tokensAlways available to the agent
SKILL.md
595 tokensWhen the skill is activated
Reference documents
4,676 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/intercity_bus_search.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,607 bytesSKILL.mdcore2,607 bytesSKILL.mdcore2,607 bytesSKILL.mdcore2,607 bytesSKILL.mdcore2,607 bytesSKILL.mdcore2,607 bytesinstruction.mddoc7,899 bytesreferences/DISCLAIMER.mddoc3,933 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,741 bytesreferences/tmoney-intercity-http-flow.mddoc4,005 bytesscripts/intercity_bus_search.pyruns15,252 bytesskill.jsonasset793 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# intercity-bus-booking
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct intercity-bus-booking
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubiros-registry-automation
When your agent uses it
인터넷등기소(IROS)에서 법인/부동산 등기부등본(등기사항증명서) 발급을 준비하고, 사용자가 직접 로그인·결제한 브라우저 흐름 안에서 장바구니·열람·저장을 안전하게 보조한다. 돌쇠에서는 가능한 가장 가까운 합법적 공식 단계까지 준비한다.
What it loads into context
Frontmatter
117 tokensAlways available to the agent
SKILL.md
446 tokensWhen the skill is activated
Reference documents
3,871 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/iros_pdf_summary.pytests/test_iros_pdf_summary.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,832 bytesSKILL.mdcore1,832 bytesSKILL.mdcore1,832 bytesSKILL.mdcore1,832 bytesSKILL.mdcore1,832 bytesinstruction.mddoc14,633 bytesscripts/iros_pdf_summary.pyruns11,989 bytesscripts/upstream.pinasset41 bytesskill.jsonasset927 bytestests/test_iros_pdf_summary.pyruns5,196 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# iros-registry-automation
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct iros-registry-automation
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubjob-posting-match
When your agent uses it
한국 구직자의 이력서·경력요약과 희망조건을 바탕으로 잡코리아·사람인 공개 채용공고를 검색하고 적합도와 지원 전략을 정리합니다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
95 tokensAlways available to the agent
SKILL.md
585 tokensWhen the skill is activated
Reference documents
3,084 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/job_posting_match.pyscripts/test_job_posting_match.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,580 bytesSKILL.mdcore2,580 bytesSKILL.mdcore2,580 bytesSKILL.mdcore2,580 bytesSKILL.mdcore2,580 bytesSKILL.mdcore2,580 bytesinstruction.mddoc6,327 bytesreferences/DISCLAIMER.mddoc3,929 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,736 bytesscripts/job_posting_match.pyruns18,238 bytesscripts/test_job_posting_match.pyruns3,501 bytesskill.jsonasset739 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# job-posting-match
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct job-posting-match
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubjobkorea-talent-search
When your agent uses it
잡코리아 기업회원 로그인 세션으로 유료 열람 전 마스킹된 인재 이력서를 검색·비교해 채용 검토용 shortlist를 만듭니다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
91 tokensAlways available to the agent
SKILL.md
591 tokensWhen the skill is activated
Reference documents
2,638 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/jobkorea_talent_models.pyscripts/jobkorea_talent_parse.pyscripts/jobkorea_talent_search.pyscripts/jobkorea_talent_search_condition.pyscripts/test_jobkorea_talent_search.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,589 bytesSKILL.mdcore2,589 bytesSKILL.mdcore2,589 bytesSKILL.mdcore2,589 bytesSKILL.mdcore2,589 bytesSKILL.mdcore2,589 bytesinstruction.mddoc4,780 bytesreferences/DISCLAIMER.mddoc3,934 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,740 bytesscripts/jobkorea_talent_models.pyruns661 bytesscripts/jobkorea_talent_parse.pyruns7,164 bytesscripts/jobkorea_talent_search.pyruns4,651 bytesscripts/jobkorea_talent_search_condition.pyruns4,724 bytesscripts/test_jobkorea_talent_search.pyruns3,287 bytesskill.jsonasset746 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# jobkorea-talent-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct jobkorea-talent-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubjoseon-sillok-search
When your agent uses it
Search Joseon Dynasty Annals records from the official sillok.history.go.kr site with keyword search plus optional king/year narrowing.
What it loads into context
Frontmatter
59 tokensAlways available to the agent
SKILL.md
389 tokensWhen the skill is activated
Reference documents
913 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/sillok_search.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,612 bytesSKILL.mdcore1,612 bytesSKILL.mdcore1,612 bytesSKILL.mdcore1,612 bytesSKILL.mdcore1,612 bytesinstruction.mddoc3,252 bytesscripts/sillok_search.pyruns18,181 bytesskill.jsonasset500 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# joseon-sillok-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct joseon-sillok-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubk-dart
When your agent uses it
금융감독원 전자공시시스템(DART) OpenAPI로 공시검색, 기업개황, 재무제표, 주요사항보고서를 조회한다. 사용자의 API_K_DART 환경변수를 직접 사용한다.
What it loads into context
Frontmatter
80 tokensAlways available to the agent
SKILL.md
397 tokensWhen the skill is activated
Reference documents
5,125 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,603 bytesSKILL.mdcore1,603 bytesSKILL.mdcore1,603 bytesSKILL.mdcore1,603 bytesSKILL.mdcore1,603 bytesinstruction.mddoc15,994 bytesskill.jsonasset594 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# k-dart
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct k-dart
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubk-schoollunch-menu
When your agent uses it
Use when the user asks for Korean school meal menus (급식 식단) by natural-language education office and school name, via k-skill-proxy NEIS school-search and school-meal routes.
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
399 tokensWhen the skill is activated
Reference documents
1,354 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,649 bytesSKILL.mdcore1,649 bytesSKILL.mdcore1,649 bytesSKILL.mdcore1,649 bytesSKILL.mdcore1,649 bytesinstruction.mddoc4,750 bytesskill.jsonasset603 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# k-schoollunch-menu
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct k-schoollunch-menu
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubk-skill-cleaner
When your agent uses it
Interview the user and inspect coding-agent skill trigger counts to recommend unused K-skills for removal.
What it loads into context
Frontmatter
29 tokensAlways available to the agent
SKILL.md
353 tokensWhen the skill is activated
Reference documents
1,135 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/k_skill_cleaner.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,487 bytesSKILL.mdcore1,487 bytesSKILL.mdcore1,487 bytesSKILL.mdcore1,487 bytesSKILL.mdcore1,487 bytesinstruction.mddoc4,704 bytesscripts/k_skill_cleaner.pyruns15,439 bytesskill.jsonasset355 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# k-skill-cleaner
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct k-skill-cleaner
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubk-skill-setup
When your agent uses it
Install the k-skill bundle, use the unified CLI, resolve credentials, verify the runtime, and optionally configure update checks and GitHub starring.
What it loads into context
Frontmatter
62 tokensAlways available to the agent
SKILL.md
387 tokensWhen the skill is activated
Reference documents
2,409 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/check-setup.sh../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,589 bytesSKILL.mdcore1,589 bytesSKILL.mdcore1,589 bytesSKILL.mdcore1,589 bytesSKILL.mdcore1,589 bytesinstruction.mddoc8,838 bytesscripts/check-setup.shruns674 bytesskill.jsonasset557 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# k-skill-setup
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct k-skill-setup
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkakao-bar-nearby
When your agent uses it
Use when the user asks for nearby bars or 근처 술집. Ask for the user's location, search with the official Kakao Local API, then follow returned Kakao Map detail links for open-now, menu, and seating hints. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
99 tokensAlways available to the agent
SKILL.md
599 tokensWhen the skill is activated
Reference documents
2,721 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,596 bytesSKILL.mdcore2,596 bytesSKILL.mdcore2,596 bytesSKILL.mdcore2,596 bytesSKILL.mdcore2,596 bytesSKILL.mdcore2,596 bytesinstruction.mddoc5,844 bytesreferences/DISCLAIMER.mddoc2,642 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,726 bytesskill.jsonasset823 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kakao-bar-nearby
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kakao-bar-nearby
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkakao-map
When your agent uses it
Kakao Local (장소 검색·주소-좌표 변환) + Kakao Mobility (자동차 길찾기) 를 k-skill-proxy 경유로 조회한다. 사용자 키 불필요. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
92 tokensAlways available to the agent
SKILL.md
577 tokensWhen the skill is activated
Reference documents
3,606 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,502 bytesSKILL.mdcore2,502 bytesSKILL.mdcore2,502 bytesSKILL.mdcore2,502 bytesSKILL.mdcore2,502 bytesSKILL.mdcore2,502 bytesinstruction.mddoc7,467 bytesreferences/DISCLAIMER.mddoc2,635 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,741 bytesskill.jsonasset700 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kakao-map
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kakao-map
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkakaotalk-mac
When your agent uses it
Search local KakaoTalk archives on Apple Silicon macOS through the katok CLI. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
563 tokensWhen the skill is activated
Reference documents
2,817 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,450 bytesSKILL.mdcore2,450 bytesSKILL.mdcore2,450 bytesSKILL.mdcore2,450 bytesSKILL.mdcore2,450 bytesSKILL.mdcore2,450 bytesinstruction.mddoc6,512 bytesreferences/DISCLAIMER.mddoc2,430 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,755 bytesskill.jsonasset520 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kakaotalk-mac
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kakaotalk-mac
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkamis-food-price
When your agent uses it
KAMIS 농수축산물 유통 Open API를 k-skill-proxy 경유로 호출해 부류별 도소매 가격과 전일·주간·월간·연간 비교값을 조회한다. 조회 전용.
What it loads into context
Frontmatter
84 tokensAlways available to the agent
SKILL.md
405 tokensWhen the skill is activated
Reference documents
1,010 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/run_kamis.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,631 bytesSKILL.mdcore1,631 bytesSKILL.mdcore1,631 bytesSKILL.mdcore1,631 bytesSKILL.mdcore1,631 bytesinstruction.mddoc3,461 bytesscripts/run_kamis.pyruns7,176 bytesskill.jsonasset586 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kamis-food-price
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kamis-food-price
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkbl-results
When your agent uses it
KBL 한국프로농구 경기 결과와 현재 팀 순위를 날짜/팀 기준으로 조회한다. 공식 JSON 엔드포인트와 kbl-results npm 패키지를 사용한다.
What it loads into context
Frontmatter
69 tokensAlways available to the agent
SKILL.md
554 tokensWhen the skill is activated
Reference documents
1,792 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,456 bytesSKILL.mdcore2,456 bytesSKILL.mdcore2,456 bytesSKILL.mdcore2,456 bytesSKILL.mdcore2,456 bytesSKILL.mdcore2,456 bytesinstruction.mddoc2,684 bytesreferences/DISCLAIMER.mddoc2,018 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,686 bytesskill.jsonasset570 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kbl-results
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kbl-results
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkbo-results
When your agent uses it
Fetch KBO game schedules and results for a specific date with the kbo-game npm package. Use when the user asks for today's KBO games, yesterday's scores, or a date-specific scoreboard.
What it loads into context
Frontmatter
71 tokensAlways available to the agent
SKILL.md
556 tokensWhen the skill is activated
Reference documents
1,687 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,468 bytesSKILL.mdcore2,468 bytesSKILL.mdcore2,468 bytesSKILL.mdcore2,468 bytesSKILL.mdcore2,468 bytesSKILL.mdcore2,468 bytesinstruction.mddoc2,364 bytesreferences/DISCLAIMER.mddoc2,018 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,680 bytesskill.jsonasset579 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kbo-results
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kbo-results
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkeris-academic-search
When your agent uses it
Use when the user asks to search Korean theses, academic articles, research reports, journals, or university-library catalog metadata through KERIS RISS. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
80 tokensAlways available to the agent
SKILL.md
576 tokensWhen the skill is activated
Reference documents
2,312 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/keris_academic.pytests/test_keris_academic.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,573 bytesSKILL.mdcore2,573 bytesSKILL.mdcore2,573 bytesSKILL.mdcore2,573 bytesSKILL.mdcore2,573 bytesSKILL.mdcore2,573 bytesinstruction.mddoc5,167 bytesreferences/DISCLAIMER.mddoc2,102 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,030 bytesscripts/keris_academic.pyruns10,488 bytesskill.jsonasset721 bytestests/test_keris_academic.pyruns8,223 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# keris-academic-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct keris-academic-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkleague-results
When your agent uses it
케이리그 경기 결과와 현재 순위를 날짜/팀 기준으로 조회한다. 공식 JSON 엔드포인트와 kleague-results npm 패키지를 사용한다.
What it loads into context
Frontmatter
66 tokensAlways available to the agent
SKILL.md
552 tokensWhen the skill is activated
Reference documents
1,896 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,470 bytesSKILL.mdcore2,470 bytesSKILL.mdcore2,470 bytesSKILL.mdcore2,470 bytesSKILL.mdcore2,470 bytesSKILL.mdcore2,470 bytesinstruction.mddoc3,053 bytesreferences/DISCLAIMER.mddoc2,022 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,724 bytesskill.jsonasset543 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kleague-results
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kleague-results
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkomsa-ferry-info
When your agent uses it
한국해양교통안전공단 KOMSA MTIS 공식 API로 연안여객선 운항 일정과 선박·항로 정보를 조회한다.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
393 tokensWhen the skill is activated
Reference documents
818 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/komsa_ferry_info.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,586 bytesSKILL.mdcore1,586 bytesSKILL.mdcore1,586 bytesSKILL.mdcore1,586 bytesSKILL.mdcore1,586 bytesinstruction.mddoc2,840 bytesscripts/komsa_ferry_info.pyruns2,680 bytesskill.jsonasset479 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# komsa-ferry-info
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct komsa-ferry-info
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkopis-performance-search
When your agent uses it
KOPIS 공연 목록·상세·시설을 조회한다. 조회 전용.
What it loads into context
Frontmatter
50 tokensAlways available to the agent
SKILL.md
540 tokensWhen the skill is activated
Reference documents
2,032 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,430 bytesSKILL.mdcore2,430 bytesSKILL.mdcore2,430 bytesSKILL.mdcore2,430 bytesSKILL.mdcore2,430 bytesSKILL.mdcore2,430 bytesinstruction.mddoc3,938 bytesreferences/DISCLAIMER.mddoc1,969 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,038 bytesskill.jsonasset385 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kopis-performance-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kopis-performance-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorea-weather
When your agent uses it
한국 날씨를 기상청 단기예보 조회서비스(초단기예보·초단기실황 포함)와 프록시 경유로 조회해 요약한다.
What it loads into context
Frontmatter
70 tokensAlways available to the agent
SKILL.md
384 tokensWhen the skill is activated
Reference documents
1,918 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,585 bytesSKILL.mdcore1,585 bytesSKILL.mdcore1,585 bytesSKILL.mdcore1,585 bytesSKILL.mdcore1,585 bytesinstruction.mddoc6,106 bytesskill.jsonasset515 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korea-weather
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korea-weather
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-bond-search
When your agent uses it
GS Quant의 Instrument/Data 구조화 방식에서 영감을 받아 한국 채권을 표준 Bond Instrument 필드로 정리하고, 종목명·발행사·ISIN으로 발행조건·잔액·CALL/PUT·CB/EB/BW를 출처와 함께 검색·비교한다. Use for Korean bond lookup or comparison. Not for live quotes, YTM, credit opinions, or investment advice.
What it loads into context
Frontmatter
120 tokensAlways available to the agent
SKILL.md
442 tokensWhen the skill is activated
Reference documents
4,464 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/bond_search.pytests/test_bond_search.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,821 bytesSKILL.mdcore1,821 bytesSKILL.mdcore1,821 bytesSKILL.mdcore1,821 bytesSKILL.mdcore1,821 bytesinstruction.mddoc11,067 bytesreferences/fields.mddoc3,156 bytesreferences/source-notes.mddoc2,487 bytesscripts/bond_search.pyruns42,547 bytesskill.jsonasset949 bytestests/fixtures/bonds.jsonasset1,371 bytestests/test_bond_search.pyruns20,124 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-bond-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-bond-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-character-count
When your agent uses it
Count Korean text deterministically with exact grapheme, line, and byte contracts for self-intros and form limits.
What it loads into context
Frontmatter
54 tokensAlways available to the agent
SKILL.md
372 tokensWhen the skill is activated
Reference documents
1,025 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/korean_character_count.js../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,601 bytesSKILL.mdcore1,601 bytesSKILL.mdcore1,601 bytesSKILL.mdcore1,601 bytesSKILL.mdcore1,601 bytesinstruction.mddoc3,589 bytesscripts/korean_character_count.jsruns6,769 bytesskill.jsonasset461 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-character-count
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-character-count
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-cinema-search
When your agent uses it
CGV, 메가박스, 롯데시네마 영화관 검색, 상영작, 시간표, 잔여석 조회가 필요할 때 사용한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
86 tokensAlways available to the agent
SKILL.md
577 tokensWhen the skill is activated
Reference documents
3,296 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,541 bytesSKILL.mdcore2,541 bytesSKILL.mdcore2,541 bytesSKILL.mdcore2,541 bytesSKILL.mdcore2,541 bytesSKILL.mdcore2,541 bytesinstruction.mddoc7,761 bytesreferences/DISCLAIMER.mddoc1,948 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,756 bytesskill.jsonasset636 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-cinema-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-cinema-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-heritage-search
When your agent uses it
Search official Korean national heritage records, details, locations, and monthly heritage events from the Korea Heritage Service Open API.
What it loads into context
Frontmatter
56 tokensAlways available to the agent
SKILL.md
382 tokensWhen the skill is activated
Reference documents
1,300 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/korean_heritage_search.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,626 bytesSKILL.mdcore1,626 bytesSKILL.mdcore1,626 bytesSKILL.mdcore1,626 bytesSKILL.mdcore1,626 bytesinstruction.mddoc4,795 bytesscripts/korean_heritage_search.pyruns11,709 bytesskill.jsonasset512 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-heritage-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-heritage-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-holiday-calendar
When your agent uses it
한국천문연구원 특일 정보 API를 k-skill-proxy 경유로 호출해 공휴일·국경일·기념일·24절기·잡절을 조회한다. 조회 전용.
What it loads into context
Frontmatter
79 tokensAlways available to the agent
SKILL.md
401 tokensWhen the skill is activated
Reference documents
1,110 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,650 bytesSKILL.mdcore1,650 bytesSKILL.mdcore1,650 bytesSKILL.mdcore1,650 bytesSKILL.mdcore1,650 bytesinstruction.mddoc3,816 bytesskill.jsonasset565 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-holiday-calendar
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-holiday-calendar
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-humanizer
When your agent uses it
AI가 쓴 티가 나는 한국어 글을 자연스러운 사람 글로 고친다. 번역체, AI 상투어, 과도한 명사화·피동, 3의 법칙, 과장된 의의 부여, 마무리 상투구, 챗봇 잔재, 줄표·곡선따옴표 같은 한국어 특유의 AI 흔적을 심각도(S1/S2/S3)로 분류해 잡아내고 의미는 보존하면서 다시 쓴다. 목표 글자수를 함께 주면(예: "1000자로", length=1000) 그 분량에 맞춰 늘리거나 줄인다. "AI 티 안 나게", "사람이 쓴 것처럼", "자연스럽게 다듬어줘", "번역체 고쳐줘", "어색한 거 고쳐줘", "N자로 맞춰서" 같은 요청에 사용.
What it loads into context
Frontmatter
236 tokensAlways available to the agent
SKILL.md
554 tokensWhen the skill is activated
Reference documents
12,521 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,105 bytesSKILL.mdcore2,105 bytesSKILL.mdcore2,105 bytesSKILL.mdcore2,105 bytesSKILL.mdcore2,105 bytesinstruction.mddoc31,632 bytesreferences/ai-tell-taxonomy.mddoc9,089 bytesskill.jsonasset1,545 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-humanizer
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-humanizer
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-jangbu-for
When your agent uses it
kimlawtech/korean-jangbu-for (Apache-2.0) 업스트림을 중심으로 한국 스타트업·1인 법인·프리랜서·개인사업자 장부 자동화와 사업자 세무 자료 정리, 원본 데이터 가져오기, 계정과목 태깅, 세무사 전달 CSV, 경영 리포트 생성을 안내하는 thin wrapper 스킬. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
142 tokensAlways available to the agent
SKILL.md
468 tokensWhen the skill is activated
Reference documents
3,295 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/install.sh../scripts/generate-skill-stubs.js
Files
DISCLAIMER.mddoc1,629 bytesLICENSE.upstreamasset10,707 bytesNOTICEasset1,141 bytesSKILL.mdcore1,864 bytesSKILL.mdcore1,864 bytesSKILL.mdcore1,864 bytesSKILL.mdcore1,864 bytesSKILL.mdcore1,864 bytesinstruction.mddoc10,571 bytesscripts/install.shruns8,545 bytesscripts/upstream.pinasset41 bytesskill.jsonasset1,032 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-jangbu-for
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-jangbu-for
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-law-search
When your agent uses it
Search Korean statutes, articles, precedents, interpretations, and local ordinances via k-skill-proxy, and draft 신・구조문대비표 (old/new article comparison tables, optional HWPX). Use when the user asks for Korean law/article/precedent lookups or an amendment comparison table.
What it loads into context
Frontmatter
95 tokensAlways available to the agent
SKILL.md
413 tokensWhen the skill is activated
Reference documents
2,877 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/amendment/LICENSE-korean-law-mcpscripts/amendment/align.jsscripts/amendment/current.jsscripts/amendment/diff.jsscripts/amendment/errors.jsscripts/amendment/format.jsscripts/amendment/hwpx-header.jsscripts/amendment/hwpx.jsscripts/amendment/law-json.jsscripts/amendment/marks.jsscripts/amendment/render.jsscripts/amendment/table.jsscripts/amendment/units.jsscripts/amendment/zip.jsscripts/amendment_table.js../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,747 bytesSKILL.mdcore1,747 bytesSKILL.mdcore1,747 bytesSKILL.mdcore1,747 bytesSKILL.mdcore1,747 bytesinstruction.mddoc9,905 bytesscripts/amendment/LICENSE-korean-law-mcpruns1,062 bytesscripts/amendment/align.jsruns4,862 bytesscripts/amendment/current.jsruns5,543 bytesscripts/amendment/diff.jsruns7,149 bytesscripts/amendment/errors.jsruns509 bytesscripts/amendment/format.jsruns2,477 bytesscripts/amendment/hwpx-header.jsruns7,264 bytesscripts/amendment/hwpx.jsruns7,753 bytesscripts/amendment/law-json.jsruns6,520 bytesscripts/amendment/marks.jsruns1,604 bytesscripts/amendment/render.jsruns7,926 bytesscripts/amendment/table.jsruns7,563 bytesscripts/amendment/units.jsruns6,842 bytesscripts/amendment/zip.jsruns2,943 bytesscripts/amendment_table.jsruns2,254 bytesskill.jsonasset824 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-law-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-law-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-marathon-schedule
When your agent uses it
고러닝과 대한철인3종협회 공개 표면으로 한국 마라톤·철인3종 경기 일정, 장소, 신청 마감일, 종목을 조회한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
90 tokensAlways available to the agent
SKILL.md
416 tokensWhen the skill is activated
Reference documents
1,212 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,719 bytesSKILL.mdcore1,719 bytesSKILL.mdcore1,719 bytesSKILL.mdcore1,719 bytesSKILL.mdcore1,719 bytesinstruction.mddoc5,204 bytesskill.jsonasset704 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-marathon-schedule
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-marathon-schedule
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-middle-korean
When your agent uses it
Convert incoming Korean text into a deterministic Korean Middle Korean-style rewrite with archaic particles, endings, Hanja hints, and tone-mark flavor.
What it loads into context
Frontmatter
60 tokensAlways available to the agent
SKILL.md
382 tokensWhen the skill is activated
Reference documents
1,189 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/korean_middle_korean.js../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,629 bytesSKILL.mdcore1,629 bytesSKILL.mdcore1,629 bytesSKILL.mdcore1,629 bytesSKILL.mdcore1,629 bytesinstruction.mddoc3,934 bytesscripts/korean_middle_korean.jsruns7,370 bytesskill.jsonasset533 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-middle-korean
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-middle-korean
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-patent-search
When your agent uses it
Search Korean patent and utility-model publications through the official KIPRIS Plus Open API with keyword search plus application-number detail lookup.
What it loads into context
Frontmatter
58 tokensAlways available to the agent
SKILL.md
384 tokensWhen the skill is activated
Reference documents
932 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/patent_search.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,624 bytesSKILL.mdcore1,624 bytesSKILL.mdcore1,624 bytesSKILL.mdcore1,624 bytesSKILL.mdcore1,624 bytesinstruction.mddoc3,314 bytesscripts/patent_search.pyruns14,252 bytesskill.jsonasset542 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-patent-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-patent-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-privacy-terms
When your agent uses it
kimlawtech/korean-privacy-terms (Apache-2.0) 업스트림을 경유해 Next.js 프로젝트에 한국 법령(개인정보보호법·약관규제법·전자상거래법) 기반 개인정보처리방침·이용약관·쿠키 배너·동의 모달을 생성하는 thin wrapper 스킬.
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
442 tokensWhen the skill is activated
Reference documents
2,979 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/install.sh../scripts/generate-skill-stubs.js
Files
DISCLAIMER.mddoc1,503 bytesLICENSE.upstreamasset11,351 bytesNOTICEasset1,616 bytesSKILL.mdcore1,763 bytesSKILL.mdcore1,763 bytesSKILL.mdcore1,763 bytesSKILL.mdcore1,763 bytesSKILL.mdcore1,763 bytesinstruction.mddoc9,791 bytesscripts/install.shruns5,084 bytesscripts/upstream.pinasset41 bytesskill.jsonasset796 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-privacy-terms
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-privacy-terms
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-scholarship-search
When your agent uses it
Search Korean scholarship announcements across official KOSAF, university, foundation, company, and public-sector sources, extract amount and eligibility, and filter results by school, income band, student level, and organization type. Users may invoke it with the phrase 장학금 검색 및 조회. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
106 tokensAlways available to the agent
SKILL.md
432 tokensWhen the skill is activated
Reference documents
5,302 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/scholarship_filter.pyscripts/test_scholarship_filter.pyscripts/university_search_plan.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,878 bytesSKILL.mdcore1,878 bytesSKILL.mdcore1,878 bytesSKILL.mdcore1,878 bytesSKILL.mdcore1,878 bytesinstruction.mddoc12,563 bytesreferences/report-format.mddoc958 bytesreferences/school-discovery.mddoc1,415 bytesreferences/search-clues.mddoc1,410 bytesreferences/source-patterns.mddoc2,327 bytesscripts/scholarship_filter.pyruns31,166 bytesscripts/test_scholarship_filter.pyruns7,660 bytesscripts/university_search_plan.pyruns4,921 bytesskill.jsonasset1,001 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-scholarship-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-scholarship-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-slang-writing
When your agent uses it
Use curated Korean trending-slang candidates plus best-effort Namu Wiki lookups to write witty Korean text with up-to-date slang, with conservative safety and freshness guardrails.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
389 tokensWhen the skill is activated
Reference documents
2,636 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/_slang_http.pyscripts/slang_lookup.pyscripts/slang_search.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,657 bytesSKILL.mdcore1,657 bytesSKILL.mdcore1,657 bytesSKILL.mdcore1,657 bytesSKILL.mdcore1,657 bytesdata/seed-slang.jsonasset16,969 bytesinstruction.mddoc8,688 bytesscripts/_slang_http.pyruns2,599 bytesscripts/slang_lookup.pyruns8,760 bytesscripts/slang_search.pyruns8,720 bytesskill.jsonasset589 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-slang-writing
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-slang-writing
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-spell-check
When your agent uses it
Use Nara/PNU Korean spell-check surfaces conservatively to proofread Korean text, chunk long input, and return change-focused correction suggestions.
What it loads into context
Frontmatter
60 tokensAlways available to the agent
SKILL.md
382 tokensWhen the skill is activated
Reference documents
1,175 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/korean_spell_check.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,616 bytesSKILL.mdcore1,616 bytesSKILL.mdcore1,616 bytesSKILL.mdcore1,616 bytesSKILL.mdcore1,616 bytesinstruction.mddoc4,273 bytesscripts/korean_spell_check.pyruns16,646 bytesskill.jsonasset523 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-spell-check
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-spell-check
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-stock-search
When your agent uses it
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.
What it loads into context
Frontmatter
66 tokensAlways available to the agent
SKILL.md
552 tokensWhen the skill is activated
Reference documents
2,805 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,492 bytesSKILL.mdcore2,492 bytesSKILL.mdcore2,492 bytesSKILL.mdcore2,492 bytesSKILL.mdcore2,492 bytesSKILL.mdcore2,492 bytesinstruction.mddoc6,441 bytesreferences/DISCLAIMER.mddoc1,978 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,026 bytesskill.jsonasset559 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-stock-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-stock-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkorean-transit-route
When your agent uses it
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.
What it loads into context
Frontmatter
104 tokensAlways available to the agent
SKILL.md
595 tokensWhen the skill is activated
Reference documents
2,660 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,626 bytesSKILL.mdcore2,626 bytesSKILL.mdcore2,626 bytesSKILL.mdcore2,626 bytesSKILL.mdcore2,626 bytesSKILL.mdcore2,626 bytesinstruction.mddoc5,333 bytesreferences/DISCLAIMER.mddoc1,963 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,740 bytesskill.jsonasset817 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# korean-transit-route
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct korean-transit-route
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkosis-stats
When your agent uses it
국가데이터처가 운영하는 KOSIS(국가통계포털, kosis.kr) Open API로 한국 공식 통계표를 검색하고 메타데이터·데이터·대용량 자료를 조회한다. Use when the user asks for 한국 공식 통계 (인구, 가구, 물가, 고용 등) 수치 조회, not for analysis or visualization.
What it loads into context
Frontmatter
115 tokensAlways available to the agent
SKILL.md
436 tokensWhen the skill is activated
Reference documents
7,652 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/run_kosis_stats.pytests/__init__.pytests/test_run_kosis_stats.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,748 bytesSKILL.mdcore1,748 bytesSKILL.mdcore1,748 bytesSKILL.mdcore1,748 bytesSKILL.mdcore1,748 bytesinstruction.mddoc15,829 bytesreferences/kosis-openapi-guide.mddoc8,589 bytesscripts/run_kosis_stats.pyruns32,991 bytesskill.jsonasset860 bytestests/__init__.pyruns0 bytestests/fixtures/data_response.jsonasset541 bytestests/fixtures/meta_response.jsonasset98 bytestests/fixtures/search_response.jsonasset517 bytestests/test_run_kosis_stats.pyruns24,783 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kosis-stats
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kosis-stats
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkpic-drug-search
When your agent uses it
약학정보원(KPIC) 공개 정보에서 의약품 이름을 검색하고 약품 코드로 효능, 용법, 주의사항 등 상세 원문을 조회하는 읽기 전용 스킬입니다.
What it loads into context
Frontmatter
89 tokensAlways available to the agent
SKILL.md
414 tokensWhen the skill is activated
Reference documents
2,348 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/kpic_drug_search.mjs../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,683 bytesSKILL.mdcore1,683 bytesSKILL.mdcore1,683 bytesSKILL.mdcore1,683 bytesSKILL.mdcore1,683 bytesinstruction.mddoc8,471 bytesreferences/LICENSE.mddoc1,069 bytesscripts/kpic_drug_search.mjsruns4,962 bytesskill.jsonasset633 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kpic-drug-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kpic-drug-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkr-whois-lookup
When your agent uses it
공공데이터포털 WHOIS 도메인/IP 정보 API를 k-skill-proxy 경유로 호출해 .kr/.한국 도메인, IP 주소, AS 번호의 공개 등록정보를 조회한다. 조회 전용. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
431 tokensWhen the skill is activated
Reference documents
1,525 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,714 bytesSKILL.mdcore1,714 bytesSKILL.mdcore1,714 bytesSKILL.mdcore1,714 bytesSKILL.mdcore1,714 bytesinstruction.mddoc5,193 bytesskill.jsonasset756 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kr-whois-lookup
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kr-whois-lookup
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubkstartup-search
When your agent uses it
공공데이터포털 창업진흥원 K-Startup Open API(15125364)로 통합 공고 사업 정보·지원사업 공고·창업 콘텐츠·통계보고서를 k-skill-proxy 경유로 조회한다. 검색 전용. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
105 tokensAlways available to the agent
SKILL.md
422 tokensWhen the skill is activated
Reference documents
3,298 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/run_kstartup.pytests/__init__.pytests/test_run_kstartup.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,736 bytesSKILL.mdcore1,736 bytesSKILL.mdcore1,736 bytesSKILL.mdcore1,736 bytesSKILL.mdcore1,736 bytesinstruction.mddoc11,562 bytesscripts/run_kstartup.pyruns17,438 bytesskill.jsonasset839 bytestests/__init__.pyruns0 bytestests/test_run_kstartup.pyruns15,066 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# kstartup-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct kstartup-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHublck-analytics
When your agent uses it
Riot 공식 LoL Esports 데이터와 Oracle's Elixir 스타일 historical 데이터로 LCK 경기 결과, 현재 순위, live turning point, 밴픽 matchup/synergy, patch meta, 팀 파워 레이팅을 조회한다.
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
572 tokensWhen the skill is activated
Reference documents
2,857 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/_lib.jsscripts/analyze-live-game.jsscripts/build-match-report.jsscripts/sync-oracle.js../scripts/generate-skill-stubs.js
Files
README.mddoc656 bytesSKILL.mdcore2,510 bytesSKILL.mdcore2,510 bytesSKILL.mdcore2,510 bytesSKILL.mdcore2,510 bytesSKILL.mdcore2,510 bytesSKILL.mdcore2,510 bytesinstruction.mddoc5,966 bytesreferences/DISCLAIMER.mddoc1,908 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,780 bytessamples/oracle-lck-sample.csvasset623 bytesscripts/_lib.jsruns2,671 bytesscripts/analyze-live-game.jsruns1,554 bytesscripts/build-match-report.jsruns1,234 bytesscripts/sync-oracle.jsruns1,368 bytesskill.jsonasset656 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# lck-analytics
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct lck-analytics
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHublh-notice-search
When your agent uses it
Search official LH 청약 (Korea Land & Housing Corporation lease/subscription) 공고 lists through k-skill-proxy. Use when a user asks about 청년/행복/영구/국민/매입/전세임대, 분양주택, 신혼희망타운 공고 marketed on apply.lh.or.kr. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
124 tokensAlways available to the agent
SKILL.md
446 tokensWhen the skill is activated
Reference documents
2,791 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,794 bytesSKILL.mdcore1,794 bytesSKILL.mdcore1,794 bytesSKILL.mdcore1,794 bytesSKILL.mdcore1,794 bytesinstruction.mddoc8,811 bytesskill.jsonasset929 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# lh-notice-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct lh-notice-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHublibrary-book-search
When your agent uses it
Use when the user asks to search Korean library books, book details, library holdings, or whether a Korean public library owns a book via k-skill-proxy Data4Library routes. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
402 tokensWhen the skill is activated
Reference documents
1,629 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,718 bytesSKILL.mdcore1,718 bytesSKILL.mdcore1,718 bytesSKILL.mdcore1,718 bytesSKILL.mdcore1,718 bytesinstruction.mddoc5,905 bytesskill.jsonasset741 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# library-book-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct library-book-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHublocaldata-business-status
When your agent uses it
지방행정 인허가데이터(LOCALDATA)로 동네 사업장(식당·카페·숙박·약국·미용실·학원 등 인허가 업종 208종)의 영업/휴업/폐업 상태, 인허가일자(업력), 폐업일자, 업태, 주소를 조회한다. 상호+시군구로 검색하며 인증키 불필요.
What it loads into context
Frontmatter
125 tokensAlways available to the agent
SKILL.md
446 tokensWhen the skill is activated
Reference documents
850 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/localdata_business_status.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,801 bytesSKILL.mdcore1,801 bytesSKILL.mdcore1,801 bytesSKILL.mdcore1,801 bytesSKILL.mdcore1,801 bytesdata/localdata_industries.jsonasset11,701 bytesdata/localdata_orgcodes.jsonasset7,423 bytesinstruction.mddoc3,126 bytesscripts/localdata_business_status.pyruns9,437 bytesskill.jsonasset837 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# localdata-business-status
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct localdata-business-status
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHublotto-results
When your agent uses it
Check Korean Lotto draw results, latest rounds, and ticket matches with the k-lotto npm package. Use when the user asks for winning numbers, payout details, or whether their numbers matched.
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
550 tokensWhen the skill is activated
Reference documents
1,638 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,487 bytesSKILL.mdcore2,487 bytesSKILL.mdcore2,487 bytesSKILL.mdcore2,487 bytesSKILL.mdcore2,487 bytesSKILL.mdcore2,487 bytesinstruction.mddoc2,207 bytesreferences/DISCLAIMER.mddoc1,856 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,752 bytesskill.jsonasset596 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# lotto-results
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct lotto-results
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubmarket-event-impact
When your agent uses it
GS Quant의 event_study·event_impact_analysis·CalendarAlignment 구조에서 영감을 받아, 정례 발표와 비정형 사건의 핵심 변화 및 시장 해석을 공식자료·당시 보도·검증 가격으로 정리한다. 교차자산 전달경로를 살피고 이벤트 스터디는 보조 증거로 제시하며, 유사사례와 다음 촉매를 한국어로 설명한다. Use for named market-moving events. Not for live quotes, forecasts, or investment advice.
What it loads into context
Frontmatter
143 tokensAlways available to the agent
SKILL.md
461 tokensWhen the skill is activated
Reference documents
8,879 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/adapters.pyscripts/asset_selector.pyscripts/calendars.pyscripts/event_resolver.pyscripts/event_study.pyscripts/market_data.pyscripts/market_event.pyscripts/research.pytests/test_event_study.pytests/test_generic_engine.pytests/test_market_event.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,946 bytesSKILL.mdcore1,946 bytesSKILL.mdcore1,946 bytesSKILL.mdcore1,946 bytesSKILL.mdcore1,946 bytesinstruction.mddoc11,503 bytesreferences/event-taxonomy.mddoc4,508 bytesreferences/methodology.mddoc7,338 bytesreferences/research-contract.mddoc7,351 bytesreferences/source-priority.mddoc2,439 bytesscripts/adapters.pyruns1,656 bytesscripts/asset_selector.pyruns8,085 bytesscripts/calendars.pyruns8,498 bytesscripts/event_resolver.pyruns12,875 bytesscripts/event_study.pyruns8,204 bytesscripts/market_data.pyruns10,684 bytesscripts/market_event.pyruns56,361 bytesscripts/research.pyruns20,380 bytesskill.jsonasset1,191 bytestests/fixtures/events.jsonasset2,821 bytestests/fixtures/fitch-event.jsonasset1,657 bytestests/fixtures/fitch-market-series.jsonasset4,440 bytestests/fixtures/fitch-research.jsonasset11,244 bytestests/fixtures/market-series.jsonasset6,756 bytestests/fixtures/research.jsonasset12,664 bytestests/fixtures/tariff-event.jsonasset3,446 bytestests/fixtures/tariff-market-series.jsonasset6,085 bytestests/fixtures/tariff-research.jsonasset14,916 bytestests/test_event_study.pyruns11,853 bytestests/test_generic_engine.pyruns9,403 bytestests/test_market_event.pyruns32,096 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# market-event-impact
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct market-event-impact
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubmarket-kurly-search
When your agent uses it
로그인 없이 접근 가능한 마켓컬리 검색/상품 상세 표면으로 상품 후보, 현재 가격, 할인 여부, 품절 여부를 조회한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
81 tokensAlways available to the agent
SKILL.md
577 tokensWhen the skill is activated
Reference documents
2,155 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,562 bytesSKILL.mdcore2,562 bytesSKILL.mdcore2,562 bytesSKILL.mdcore2,562 bytesSKILL.mdcore2,562 bytesSKILL.mdcore2,562 bytesinstruction.mddoc4,466 bytesreferences/DISCLAIMER.mddoc1,781 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,727 bytesskill.jsonasset696 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# market-kurly-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct market-kurly-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubmfds-drug-safety
When your agent uses it
식약처 공공 OpenAPI를 k-skill-proxy 경유로 조회하기 전에 증상·복용상황을 반드시 되묻는 인터뷰형 의약품 안전 체크 스킬.
What it loads into context
Frontmatter
78 tokensAlways available to the agent
SKILL.md
407 tokensWhen the skill is activated
Reference documents
1,226 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/mfds_drug_safety.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesinstruction.mddoc4,301 bytesscripts/mfds_drug_safety.pyruns7,299 bytesskill.jsonasset561 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# mfds-drug-safety
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct mfds-drug-safety
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubmfds-food-safety
When your agent uses it
식약처/식품안전나라 공개 표면을 k-skill-proxy 경유로 조회하기 전에 증상·섭취상황을 반드시 되묻는 인터뷰형 식품 안전 체크 스킬.
What it loads into context
Frontmatter
81 tokensAlways available to the agent
SKILL.md
406 tokensWhen the skill is activated
Reference documents
2,375 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/mfds_food_safety.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,638 bytesSKILL.mdcore1,638 bytesSKILL.mdcore1,638 bytesSKILL.mdcore1,638 bytesSKILL.mdcore1,638 bytesinstruction.mddoc7,854 bytesscripts/mfds_food_safety.pyruns11,906 bytesskill.jsonasset591 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# mfds-food-safety
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct mfds-food-safety
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubmofa-travel-safety
When your agent uses it
외교부 0404 국가·지역별 여행경보 Open API를 k-skill-proxy 경유로 조회해 국가별 공식 경보 단계와 원문 정보를 제공한다. 조회 전용.
What it loads into context
Frontmatter
77 tokensAlways available to the agent
SKILL.md
406 tokensWhen the skill is activated
Reference documents
691 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/run_mofa_travel_safety.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,637 bytesSKILL.mdcore1,637 bytesSKILL.mdcore1,637 bytesSKILL.mdcore1,637 bytesSKILL.mdcore1,637 bytesinstruction.mddoc2,541 bytesscripts/run_mofa_travel_safety.pyruns2,484 bytesskill.jsonasset580 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# mofa-travel-safety
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct mofa-travel-safety
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubmulti-asset-morning-briefing
When your agent uses it
글로벌 주식·금리·외환·원자재·변동성과 한국시장 전달 경로를 연결해 근거 링크가 있는 7개 섹션의 멀티에셋 모닝 브리핑을 작성한다. Use when the user asks 모닝 브리핑, Morning Call, 오버나이트 시황, 데일리 마켓 브리핑 또는 기존 브리핑 검수. Not for 실시간 호가, 국내 개별 종목 단독 조회(korean-stock-search), 투자 권유·매매 판단.
What it loads into context
Frontmatter
153 tokensAlways available to the agent
SKILL.md
491 tokensWhen the skill is activated
Reference documents
12,202 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/market_data.pytests/test_market_data.py../scripts/generate-skill-stubs.js
Files
README.mddoc20,355 bytesSKILL.mdcore1,951 bytesSKILL.mdcore1,951 bytesSKILL.mdcore1,951 bytesSKILL.mdcore1,951 bytesSKILL.mdcore1,951 bytesinstruction.mddoc6,462 bytesreferences/format-rules.mddoc12,817 bytesscripts/market_data.pyruns36,639 bytesskill.jsonasset1,129 bytestests/fixtures/sample_briefing.mddoc1,133 bytestests/test_market_data.pyruns18,948 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# multi-asset-morning-briefing
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct multi-asset-morning-briefing
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubmyrealtrip-search
When your agent uses it
마이리얼트립 공식 Streamable HTTP MCP 서버로 항공권, 숙소, 투어/티켓/액티비티를 검색하고 상세·가격·예약 링크를 확인한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
92 tokensAlways available to the agent
SKILL.md
582 tokensWhen the skill is activated
Reference documents
4,156 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/myrealtrip_mcp.pyscripts/test_myrealtrip_mcp.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,558 bytesSKILL.mdcore2,558 bytesSKILL.mdcore2,558 bytesSKILL.mdcore2,558 bytesSKILL.mdcore2,558 bytesSKILL.mdcore2,558 bytesinstruction.mddoc10,805 bytesreferences/DISCLAIMER.mddoc1,894 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,760 bytesscripts/myrealtrip_mcp.pyruns8,040 bytesscripts/test_myrealtrip_mcp.pyruns6,371 bytesskill.jsonasset722 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# myrealtrip-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct myrealtrip-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubnaming-house
When your agent uses it
생년월일시와 성씨·후보 이름을 바탕으로 사주 오행과 성명학 점수를 참고해 어울리는 한국 이름을 추천한다.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
381 tokensWhen the skill is activated
Reference documents
1,765 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,584 bytesSKILL.mdcore1,584 bytesSKILL.mdcore1,584 bytesSKILL.mdcore1,584 bytesSKILL.mdcore1,584 bytesinstruction.mddoc6,553 bytesskill.jsonasset507 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# naming-house
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct naming-house
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubnational-pension-workplace
When your agent uses it
국민연금공단 국민연금 가입 사업장 내역을 공공데이터포털 API(k-skill-proxy 경유)로 조회한다. 사업장명으로 가입자수·당월 고지금액·월별 취득/상실 추이를 확인해 그 회사의 직원 규모와 변화를 본다.
What it loads into context
Frontmatter
103 tokensAlways available to the agent
SKILL.md
429 tokensWhen the skill is activated
Reference documents
1,026 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/national_pension_workplace.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,775 bytesSKILL.mdcore1,775 bytesSKILL.mdcore1,775 bytesSKILL.mdcore1,775 bytesSKILL.mdcore1,775 bytesinstruction.mddoc3,797 bytesscripts/national_pension_workplace.pyruns4,923 bytesskill.jsonasset790 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# national-pension-workplace
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct national-pension-workplace
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubnaver-ad-performance
When your agent uses it
네이버 검색광고(키워드광고)의 노출수·클릭수·광고비·CTR·CPC·전환수를 조회한다. 캠페인/광고그룹/키워드 목록, 기간별 성과, 연관키워드·월간 조회수 도구 포함. 읽기 전용, 로컬 실행 전용. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
128 tokensAlways available to the agent
SKILL.md
618 tokensWhen the skill is activated
Reference documents
2,816 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/naver_ad_performance.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,672 bytesSKILL.mdcore2,672 bytesSKILL.mdcore2,672 bytesSKILL.mdcore2,672 bytesSKILL.mdcore2,672 bytesSKILL.mdcore2,672 bytesinstruction.mddoc5,875 bytesreferences/DISCLAIMER.mddoc2,077 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,719 bytesscripts/naver_ad_performance.pyruns8,626 bytesskill.jsonasset915 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# naver-ad-performance
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct naver-ad-performance
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubnaver-blog-research
When your agent uses it
Search Naver blogs, read full post content, and download images using only python3 stdlib — no API key required.
What it loads into context
Frontmatter
58 tokensAlways available to the agent
SKILL.md
553 tokensWhen the skill is activated
Reference documents
2,345 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/_naver_http.pyscripts/naver_download_images.pyscripts/naver_read.pyscripts/naver_search.py../scripts/generate-skill-stubs.js
Files
.gitignoreasset33 bytesSKILL.mdcore2,448 bytesSKILL.mdcore2,448 bytesSKILL.mdcore2,448 bytesSKILL.mdcore2,448 bytesSKILL.mdcore2,448 bytesSKILL.mdcore2,448 bytesSKILL.mdcore2,448 bytesinstruction.mddoc4,711 bytesreferences/DISCLAIMER.mddoc1,889 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,730 bytesscripts/_naver_http.pyruns1,994 bytesscripts/naver_download_images.pyruns7,418 bytesscripts/naver_read.pyruns7,914 bytesscripts/naver_search.pyruns6,460 bytesskill.jsonasset457 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# naver-blog-research
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct naver-blog-research
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubnaver-news-search
When your agent uses it
네이버 검색 Open API 뉴스 검색(news.json)을 k-skill-proxy 경유로 조회해 최신 뉴스 기사 제목·발행시각·링크·요약을 보수적으로 정리한다. 사용자는 별도 API 키 발급 없이 호출한다.
What it loads into context
Frontmatter
87 tokensAlways available to the agent
SKILL.md
577 tokensWhen the skill is activated
Reference documents
2,751 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,559 bytesSKILL.mdcore2,559 bytesSKILL.mdcore2,559 bytesSKILL.mdcore2,559 bytesSKILL.mdcore2,559 bytesSKILL.mdcore2,559 bytesinstruction.mddoc6,291 bytesreferences/DISCLAIMER.mddoc1,863 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,711 bytesskill.jsonasset709 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# naver-news-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct naver-news-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubnaver-shopping-search
When your agent uses it
네이버 쇼핑 공개 BFF JSON을 k-skill-proxy로 조회해 상품 후보, 최저가, 판매처 링크를 보수적으로 가격비교한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
575 tokensWhen the skill is activated
Reference documents
2,400 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,562 bytesSKILL.mdcore2,562 bytesSKILL.mdcore2,562 bytesSKILL.mdcore2,562 bytesSKILL.mdcore2,562 bytesSKILL.mdcore2,562 bytesinstruction.mddoc5,088 bytesreferences/DISCLAIMER.mddoc1,818 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,731 bytesskill.jsonasset717 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# naver-shopping-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct naver-shopping-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubnhis-care-checkup-search
When your agent uses it
국민건강보험공단 장기요양기관·건강검진기관을 조회하고, 돌쇠에서는 공식 연락·예약 가능 표면까지 이어간다.
What it loads into context
Frontmatter
71 tokensAlways available to the agent
SKILL.md
401 tokensWhen the skill is activated
Reference documents
1,525 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,652 bytesSKILL.mdcore1,652 bytesSKILL.mdcore1,652 bytesSKILL.mdcore1,652 bytesSKILL.mdcore1,652 bytesinstruction.mddoc5,486 bytesskill.jsonasset558 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# nhis-care-checkup-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct nhis-care-checkup-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubnts-business-registration
When your agent uses it
국세청 사업자등록정보 진위확인 및 사업자등록 상태조회를 공공데이터포털 API(k-skill-proxy 경유)로 수행한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
403 tokensWhen the skill is activated
Reference documents
1,530 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/nts_business_registration.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,722 bytesSKILL.mdcore1,722 bytesSKILL.mdcore1,722 bytesSKILL.mdcore1,722 bytesSKILL.mdcore1,722 bytesinstruction.mddoc5,466 bytesscripts/nts_business_registration.pyruns8,958 bytesskill.jsonasset716 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# nts-business-registration
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct nts-business-registration
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubnts-tax-delinquency
When your agent uses it
국세청 고액·상습체납자 명단공개를 nts.go.kr 공개 검색으로 조회한다. 상호·법인명으로 법인 명단과 개인 명단을 대조해 공개된 체납 사실(총 체납액·세목·체납요지 등)을 나열한다. 인증키 불필요. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
124 tokensAlways available to the agent
SKILL.md
450 tokensWhen the skill is activated
Reference documents
675 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/nts_tax_delinquency.pyscripts/test_nts_tax_delinquency.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,811 bytesSKILL.mdcore1,811 bytesSKILL.mdcore1,811 bytesSKILL.mdcore1,811 bytesSKILL.mdcore1,811 bytesinstruction.mddoc2,516 bytesscripts/nts_tax_delinquency.pyruns7,030 bytesscripts/test_nts_tax_delinquency.pyruns1,560 bytesskill.jsonasset916 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# nts-tax-delinquency
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct nts-tax-delinquency
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubohou-today-deal
When your agent uses it
오늘의집 공개 오늘의딜 페이지에서 로그인 없이 특가 상품을 조회하고 할인율, 가격, 리뷰, 링크를 정리하는 읽기 전용 스킬. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
88 tokensAlways available to the agent
SKILL.md
589 tokensWhen the skill is activated
Reference documents
3,274 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/ohou_today_deal.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,549 bytesSKILL.mdcore2,549 bytesSKILL.mdcore2,549 bytesSKILL.mdcore2,549 bytesSKILL.mdcore2,549 bytesSKILL.mdcore2,549 bytesinstruction.mddoc7,971 bytesreferences/DISCLAIMER.mddoc1,797 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,708 bytesscripts/ohou_today_deal.pyruns12,852 bytesskill.jsonasset725 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# ohou-today-deal
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct ohou-today-deal
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubolive-young-search
When your agent uses it
upstream daiso CLI를 사용해 올리브영 매장 검색, 상품 검색, 재고 확인을 조회한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
565 tokensWhen the skill is activated
Reference documents
2,626 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,505 bytesSKILL.mdcore2,505 bytesSKILL.mdcore2,505 bytesSKILL.mdcore2,505 bytesSKILL.mdcore2,505 bytesSKILL.mdcore2,505 bytesinstruction.mddoc5,823 bytesreferences/DISCLAIMER.mddoc1,812 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,736 bytesskill.jsonasset592 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# olive-young-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct olive-young-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubparking-lot-search
When your agent uses it
Use when the user asks for nearby parking lots or 근처 주차장/공영주차장. Always ask the user's current location first, then use official Data.go.kr public parking data through k-skill-proxy or the parking-lot-search package.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
407 tokensWhen the skill is activated
Reference documents
937 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,706 bytesSKILL.mdcore1,706 bytesSKILL.mdcore1,706 bytesSKILL.mdcore1,706 bytesSKILL.mdcore1,706 bytesinstruction.mddoc3,606 bytesskill.jsonasset713 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# parking-lot-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct parking-lot-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubpopbill
When your agent uses it
팝빌 전자세금계산서·전자명세서·현금영수증·문자·카카오톡·팩스·휴폐업/기업정보·계좌조회·홈택스 수집을 테스트/운영 환경에서 안전하게 호출한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
107 tokensAlways available to the agent
SKILL.md
587 tokensWhen the skill is activated
Reference documents
3,149 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/popbill_cli.pyscripts/popbill_registry.pyscripts/popbill_safety.pyscripts/popbill_templates.pytests/fake_popbill.pytests/run_tests.pytests/test_popbill_cli.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,544 bytesSKILL.mdcore2,544 bytesSKILL.mdcore2,544 bytesSKILL.mdcore2,544 bytesSKILL.mdcore2,544 bytesSKILL.mdcore2,544 bytesinstruction.mddoc7,198 bytesreferences/DISCLAIMER.mddoc2,058 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,718 bytesscripts/popbill_cli.pyruns11,537 bytesscripts/popbill_registry.pyruns1,337 bytesscripts/popbill_safety.pyruns746 bytesscripts/popbill_templates.pyruns2,606 bytesskill.jsonasset793 bytestests/fake_popbill.pyruns1,172 bytestests/run_tests.pyruns3,064 bytestests/test_popbill_cli.pyruns2,521 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# popbill
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct popbill
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubpublic-restroom-nearby
When your agent uses it
Use when the user asks for nearby public/open restrooms or 근처 화장실. Always ask the user's current location first, then use the official nationwide public-restroom standard dataset plus Kakao anchor resolution.
What it loads into context
Frontmatter
76 tokensAlways available to the agent
SKILL.md
405 tokensWhen the skill is activated
Reference documents
1,062 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,709 bytesSKILL.mdcore1,709 bytesSKILL.mdcore1,709 bytesSKILL.mdcore1,709 bytesSKILL.mdcore1,709 bytesinstruction.mddoc4,075 bytesskill.jsonasset687 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# public-restroom-nearby
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct public-restroom-nearby
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubrailway-timetable
When your agent uses it
Read-only Korail integrated railway timetable lookup covering KTX-family trains. No reservation, payment, cancellation, or seat holding.
What it loads into context
Frontmatter
56 tokensAlways available to the agent
SKILL.md
543 tokensWhen the skill is activated
Reference documents
753 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
scripts/ktx_backend.pyscripts/ktx_timetable.pyscripts/railway_timetable.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,456 bytesSKILL.mdcore2,456 bytesSKILL.mdcore2,456 bytesSKILL.mdcore2,456 bytesSKILL.mdcore2,456 bytesSKILL.mdcore2,456 bytesinstruction.mddoc1,531 bytesreferences/AUTOMATION-LEGAL-STATEMENT.mddoc309 bytesreferences/DISCLAIMER.mddoc789 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc269 bytesscripts/ktx_backend.pyruns8,145 bytesscripts/ktx_backend.py.lockasset1,404 bytesscripts/ktx_timetable.pyruns4,880 bytesscripts/railway_timetable.pyruns2,884 bytesscripts/railway_timetable.py.lockasset1,404 bytesskill.jsonasset495 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# railway-timetable
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct railway-timetable
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubreal-estate-search
When your agent uses it
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.
What it loads into context
Frontmatter
75 tokensAlways available to the agent
SKILL.md
397 tokensWhen the skill is activated
Reference documents
2,241 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/nationwide_daily_report.pytests/test_nationwide_daily_report.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,636 bytesSKILL.mdcore1,636 bytesSKILL.mdcore1,636 bytesSKILL.mdcore1,636 bytesSKILL.mdcore1,636 bytesinstruction.mddoc7,488 bytesscripts/nationwide_daily_report.pyruns22,125 bytesskill.jsonasset573 bytestests/test_nationwide_daily_report.pyruns4,663 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# real-estate-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct real-estate-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubreligious-facility-search
When your agent uses it
Use when the user asks 근처 교회 찾기, 성당 위치, 절·사찰 찾기, 종교시설 조회, or church/cathedral/temple lookup by Korean neighborhood, station, or landmark. 공식 Kakao Local API를 k-skill-proxy 경유로 호출해 종교시설을 거리순으로 조회하고 주소·전화·카카오맵 링크를 정리한다. 사용자 API 키가 필요 없는 조회 전용 스킬이다.
What it loads into context
Frontmatter
131 tokensAlways available to the agent
SKILL.md
458 tokensWhen the skill is activated
Reference documents
2,563 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
scripts/religious_facility_search.pytests/test_religious_facility_search.py../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,904 bytesSKILL.mdcore1,904 bytesSKILL.mdcore1,904 bytesSKILL.mdcore1,904 bytesSKILL.mdcore1,904 bytesinstruction.mddoc8,900 bytesscripts/religious_facility_search.pyruns11,608 bytesskill.jsonasset1,056 bytestests/test_religious_facility_search.pyruns14,422 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# religious-facility-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct religious-facility-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubrhwp-advanced
When your agent uses it
Debug HWP layout, dump document IR, compare versions, extract thumbnails, and unlock read-only HWPs with the upstream rhwp Rust CLI (export-svg/dump/dump-pages/ir-diff/thumbnail/convert).
What it loads into context
Frontmatter
79 tokensAlways available to the agent
SKILL.md
401 tokensWhen the skill is activated
Reference documents
2,295 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,633 bytesSKILL.mdcore1,633 bytesSKILL.mdcore1,633 bytesSKILL.mdcore1,633 bytesSKILL.mdcore1,633 bytesinstruction.mddoc7,514 bytesskill.jsonasset593 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# rhwp-advanced
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct rhwp-advanced
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubrhwp-edit
When your agent uses it
Edit HWP documents — insert/delete text, replace-all, create tables, set cell text — with the k-skill-rhwp CLI that wraps the @rhwp/core WASM engine (rhwp by Edward Kim).
What it loads into context
Frontmatter
78 tokensAlways available to the agent
SKILL.md
396 tokensWhen the skill is activated
Reference documents
3,425 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,600 bytesSKILL.mdcore1,600 bytesSKILL.mdcore1,600 bytesSKILL.mdcore1,600 bytesSKILL.mdcore1,600 bytesinstruction.mddoc11,499 bytesskill.jsonasset559 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# rhwp-edit
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct rhwp-edit
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubs2b-notice-search
When your agent uses it
S2B 학교장터 공개 고객 공고/견적요청 목록을 브라우저 우선으로 조회하고 fixture HTML을 파싱해 공고 메타데이터를 정리한다. 돌쇠에서는 가능한 가장 가까운 합법적 공식 단계까지 준비한다.
What it loads into context
Frontmatter
93 tokensAlways available to the agent
SKILL.md
422 tokensWhen the skill is activated
Reference documents
1,012 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,718 bytesSKILL.mdcore1,718 bytesSKILL.mdcore1,718 bytesSKILL.mdcore1,718 bytesSKILL.mdcore1,718 bytesinstruction.mddoc3,793 bytesskill.jsonasset759 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# s2b-notice-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct s2b-notice-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubsaju-fortune
When your agent uses it
사주팔자 정보를 인터뷰로 확인한 뒤 saju-fortune npm package를 사용해 연애운, 재물운, 직업운, 건강운, 한해 운세, 궁합을 대화형으로 풀이한다.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
410 tokensWhen the skill is activated
Reference documents
1,865 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesSKILL.mdcore1,623 bytesinstruction.mddoc6,709 bytesskill.jsonasset585 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# saju-fortune
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct saju-fortune
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubsaramin-talent-search
When your agent uses it
사람인 기업회원 인재풀 로그인 세션에서 마스킹된 후보 정보를 검색·비교해 유료 열람 전 shortlist를 만듭니다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
84 tokensAlways available to the agent
SKILL.md
580 tokensWhen the skill is activated
Reference documents
2,252 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
SKILL.mdcore2,570 bytesSKILL.mdcore2,570 bytesSKILL.mdcore2,570 bytesSKILL.mdcore2,570 bytesSKILL.mdcore2,570 bytesSKILL.mdcore2,570 bytesinstruction.mddoc5,129 bytesreferences/DISCLAIMER.mddoc2,059 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,732 bytesskill.jsonasset718 bytes../scripts/generate-skill-stubs.jsruns4,585 bytes
Read SKILL.md
# saramin-talent-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct saramin-talent-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubseoul-bike
When your agent uses it
서울 따릉이 실시간 대여소의 대여 가능 자전거와 빈 거치대를 좌표 주변 또는 대여소 이름으로 조회한다.
What it loads into context
Frontmatter
65 tokensAlways available to the agent
SKILL.md
382 tokensWhen the skill is activated
Reference documents
914 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.jsscripts/seoul_bike.py
Files
../scripts/generate-skill-stubs.jsruns4,585 bytesSKILL.mdcore1,568 bytesSKILL.mdcore1,568 bytesSKILL.mdcore1,568 bytesSKILL.mdcore1,568 bytesSKILL.mdcore1,568 bytesinstruction.mddoc3,135 bytesscripts/seoul_bike.pyruns9,733 bytesskill.jsonasset505 bytes
Read SKILL.md
# seoul-bike
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct seoul-bike
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubseoul-density
When your agent uses it
서울 주요 121개 핫스팟 장소의 실시간 혼잡도와 인구 현황을 조회한다. 지금 강남역이 얼마나 붐비는지, 홍대 인파가 얼마나 되는지 물어볼 때 사용한다.
What it loads into context
Frontmatter
84 tokensAlways available to the agent
SKILL.md
401 tokensWhen the skill is activated
Reference documents
1,310 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.jsscripts/seoul_density.py
Files
../scripts/generate-skill-stubs.jsruns4,585 bytesSKILL.mdcore1,645 bytesSKILL.mdcore1,645 bytesSKILL.mdcore1,645 bytesSKILL.mdcore1,645 bytesSKILL.mdcore1,645 bytesinstruction.mddoc4,492 bytesscripts/seoul_density.pyruns10,962 bytesskill.jsonasset635 bytes
Read SKILL.md
# seoul-density
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct seoul-density
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubseoul-subway-arrival
When your agent uses it
Look up Seoul real-time subway arrival information with the official Seoul Open Data API. Use when the user asks when a train arrives, which trains are approaching a station, or how crowded Seoul subway timing looks right now.
What it loads into context
Frontmatter
77 tokensAlways available to the agent
SKILL.md
406 tokensWhen the skill is activated
Reference documents
825 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
../scripts/generate-skill-stubs.jsruns4,585 bytesSKILL.mdcore1,703 bytesSKILL.mdcore1,703 bytesSKILL.mdcore1,703 bytesSKILL.mdcore1,703 bytesSKILL.mdcore1,703 bytesinstruction.mddoc3,223 bytesskill.jsonasset695 bytes
Read SKILL.md
# seoul-subway-arrival
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct seoul-subway-arrival
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubseoul-weather-risk
When your agent uses it
서울 행정동 이름을 정식명 우선·허용된 결정적 표기 별칭만으로 정규 place_id로 해석해 ASK 서울의 장소별 기상 위험 예상 시간대(weather_place_risk_window) 단일 제품을 hosted k-skill proxy에서 읽기 전용 조회한다. 사용자 API Key와 place_id 입력은 필요하지 않다.
What it loads into context
Frontmatter
111 tokensAlways available to the agent
SKILL.md
432 tokensWhen the skill is activated
Reference documents
2,295 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.jsscripts/seoul_weather_risk.pytests/test_seoul_weather_risk.py
Files
../scripts/generate-skill-stubs.jsruns4,585 bytesSKILL.mdcore1,811 bytesSKILL.mdcore1,811 bytesSKILL.mdcore1,811 bytesSKILL.mdcore1,811 bytesSKILL.mdcore1,811 bytesinstruction.mddoc8,786 bytesreferences/admin-dong-place-map.jsonasset34,959 bytesscripts/seoul_weather_risk.pyruns24,830 bytesskill.jsonasset914 bytestests/test_seoul_weather_risk.pyruns31,287 bytes
Read SKILL.md
# seoul-weather-risk
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct seoul-weather-risk
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubsh-notice-search
When your agent uses it
서울주택도시개발공사(SH) 공개 공고/공지 게시판에서 청약·주택 공고 목록, 상세 본문, 첨부 미리보기 메타데이터를 직접 조회한다. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
418 tokensWhen the skill is activated
Reference documents
1,622 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
../scripts/generate-skill-stubs.jsruns4,585 bytesSKILL.mdcore1,707 bytesSKILL.mdcore1,707 bytesSKILL.mdcore1,707 bytesSKILL.mdcore1,707 bytesSKILL.mdcore1,707 bytesinstruction.mddoc5,950 bytesskill.jsonasset746 bytes
Read SKILL.md
# sh-notice-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct sh-notice-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubsharenuri-facility-search
When your agent uses it
공유누리(eshare.go.kr) 공개 통합검색으로 전국 공공개방자원(회의실·체육시설·숙소·교육·물품 등)을 인증키·로그인 없이 검색하고, 상세정보(요금·정원·예약방법·문의처)와 공식 예약 경로를 안내한다. 조회 전용.
What it loads into context
Frontmatter
110 tokensAlways available to the agent
SKILL.md
615 tokensWhen the skill is activated
Reference documents
3,929 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.jsscripts/sharenuri_search.pytests/__init__.pytests/test_sharenuri_search.py
Files
../scripts/generate-skill-stubs.jsruns4,585 bytesSKILL.mdcore2,653 bytesSKILL.mdcore2,653 bytesSKILL.mdcore2,653 bytesSKILL.mdcore2,653 bytesSKILL.mdcore2,653 bytesSKILL.mdcore2,653 bytesinstruction.mddoc8,225 bytesreferences/DISCLAIMER.mddoc3,937 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,794 bytesscripts/sharenuri_search.pyruns13,795 bytesskill.jsonasset810 bytestests/__init__.pyruns53 bytestests/test_sharenuri_search.pyruns14,030 bytes
Read SKILL.md
# sharenuri-facility-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct sharenuri-facility-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubstore-longevity-radar
When your agent uses it
소상공인시장진흥공단 상가(상권)정보 공개파일(무인증)로 업종·상호 키워드에 맞는 전국 점포 전수를 뽑고, 과거 스냅샷과 상호+좌표 매칭해 'N년 전에도 존재했고 지금도 영업 중'인 장수 점포 리스트를 추출한다. 사업자등록번호 없이 상호 기준이며 개업일이 아닌 최초 관측 시점 하한을 제공한다.
What it loads into context
Frontmatter
144 tokensAlways available to the agent
SKILL.md
473 tokensWhen the skill is activated
Reference documents
1,896 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.jsscripts/store_longevity_download.pyscripts/store_longevity_radar.pytests/test_store_longevity_radar.py
Files
../scripts/generate-skill-stubs.jsruns4,585 bytesSKILL.mdcore1,881 bytesSKILL.mdcore1,881 bytesSKILL.mdcore1,881 bytesSKILL.mdcore1,881 bytesSKILL.mdcore1,881 bytesinstruction.mddoc6,745 bytesscripts/store_longevity_download.pyruns4,665 bytesscripts/store_longevity_radar.pyruns6,901 bytesskill.jsonasset1,029 bytestests/test_store_longevity_radar.pyruns2,848 bytes
Read SKILL.md
# store-longevity-radar
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct store-longevity-radar
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubsubway-lost-property
When your agent uses it
Use when the user asks how to look up 지하철 분실물 or 유실물 by 역명/물품명. v1 is an 안내형/하이브리드 skill that structures the official LOST112 + 서울교통공사 flow conservatively. 돌쇠에서는 공식 표면을 통한 후속 액션까지 진행한다.
What it loads into context
Frontmatter
105 tokensAlways available to the agent
SKILL.md
427 tokensWhen the skill is activated
Reference documents
910 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.jsscripts/subway_lost_property.py
Files
../scripts/generate-skill-stubs.jsruns4,585 bytesSKILL.mdcore1,762 bytesSKILL.mdcore1,762 bytesSKILL.mdcore1,762 bytesSKILL.mdcore1,762 bytesSKILL.mdcore1,762 bytesinstruction.mddoc3,392 bytesscripts/subway_lost_property.pyruns8,329 bytesskill.jsonasset800 bytes
Read SKILL.md
# subway-lost-property
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct subway-lost-property
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubticket-availability
When your agent uses it
YES24 / 인터파크 공연의 공개 일정 + 등급별 잔여석을 단일 HTTP 호출로 조회 (조회 전용, 예매·결제 없음). 돌쇠에서는 가능한 가장 가까운 합법적 공식 단계까지 준비한다.
What it loads into context
Frontmatter
91 tokensAlways available to the agent
SKILL.md
577 tokensWhen the skill is activated
Reference documents
3,024 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.jsscripts/ticket_availability.py
Files
../scripts/generate-skill-stubs.jsruns4,585 bytesSKILL.mdcore2,582 bytesSKILL.mdcore2,582 bytesSKILL.mdcore2,582 bytesSKILL.mdcore2,582 bytesSKILL.mdcore2,582 bytesSKILL.mdcore2,582 bytesinstruction.mddoc6,480 bytesreferences/DISCLAIMER.mddoc1,878 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,738 bytesscripts/ticket_availability.pyruns15,359 bytesskill.jsonasset739 bytes
Read SKILL.md
# ticket-availability
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct ticket-availability
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubtoss-investment
When your agent uses it
토스증권 공식 Open API(OAuth2)로 계좌, 보유주식, 시세/종목/시장정보, 주문조회를 안전한 read-only 흐름으로 조회한다. 공식 credentials가 없거나 공식 API가 지원하지 않는 기능은 비공식 경로로 우회하지 않는다.
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
583 tokensWhen the skill is activated
Reference documents
2,042 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Legal disclaimer (required)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.js
Files
../scripts/generate-skill-stubs.jsruns4,585 bytesSKILL.mdcore2,581 bytesSKILL.mdcore2,581 bytesSKILL.mdcore2,581 bytesSKILL.mdcore2,581 bytesSKILL.mdcore2,581 bytesSKILL.mdcore2,581 bytesinstruction.mddoc3,559 bytesreferences/DISCLAIMER.mddoc2,089 bytesreferences/TRADEMARK-LEGAL-STATEMENT.mddoc1,722 bytesskill.jsonasset785 bytes
Read SKILL.md
# toss-investment
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct toss-investment
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubzipcode-search
When your agent uses it
Look up a Korean postcode and official English address from a known address with the official ePost integrated search page.
What it loads into context
Frontmatter
52 tokensAlways available to the agent
SKILL.md
366 tokensWhen the skill is activated
Reference documents
1,448 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Get the full instructions (required first step)
- Hard rules even without the CLI
Scripts executed separately
../scripts/generate-skill-stubs.jsscripts/zipcode_search.py
Files
../scripts/generate-skill-stubs.jsruns4,585 bytesSKILL.mdcore1,570 bytesSKILL.mdcore1,570 bytesSKILL.mdcore1,570 bytesSKILL.mdcore1,570 bytesSKILL.mdcore1,570 bytesinstruction.mddoc5,290 bytesscripts/zipcode_search.pyruns4,025 bytesskill.jsonasset464 bytes
Read SKILL.md
# zipcode-search
<!-- k-skill:cli-stub — generated by scripts/generate-skill-stubs.js; edit skill.json / instruction.md instead -->
## Get the full instructions (required first step)
Run this and follow its output as the primary instructions for this skill:
```bash
npx -y @nomadamas/k-skill@0 instruct zipcode-search
```
The CLI detects the current runtime (Dolshoi vault/CloakBrowser vs generic) and prints only the applicable instructions, always up to date. Helper files bundled with the CLI are listed by:
View the complete source on GitHubSkills included
- animal-pharmacy-search
- assembly-bill-vote-search
- bccard-eatpl-search
- biz-health-check
- boim-business-search
- bok-ecos-stats
- building-register-search
- bunjang-search
- cheap-gas-nearby
- company-analysis
- consumer-price-safety-search
- corporate-registration-consulting
- coupang-product-search
- court-auction-notice-search
- court-payment-order-assistant
- d2b-notice-search
- daangn-cars-search
- daangn-jobs-search
- daangn-realty-search
- daangn-used-goods-search
- daishin-report-search
- daiso-product-search
- danawa-price-search
- delivery-tracking
- donation-place-search
- emergency-room-beds
- ev-charger-nearby
- ev-subsidy-status
- express-bus-booking
- fine-dust-location
- flight-ticket-search
- foresttrip-vacancy
- fsc-corporate-info
- g2b-order-plan-search
- g2b-sanctioned-supplier
- geeknews-search
- gongsijiga-search
- gov-overseas-trip-report
- government-bond-analysis
- government-support-survey
- han-river-water-level
- hankookilbo-news
- heyyumi
- highway-traffic-status
- hola-poke-yeoksam
- household-waste-info
- housing-official-price
- housing-subscription-reference
- hwp
- intercity-bus-booking
- iros-registry-automation
- job-posting-match
- jobkorea-talent-search
- joseon-sillok-search
- k-dart
- k-schoollunch-menu
- k-skill-cleaner
- k-skill-setup
- kakao-bar-nearby
- kakao-map
- kakaotalk-mac
- kamis-food-price
- kbl-results
- kbo-results
- keris-academic-search
- kleague-results
- komsa-ferry-info
- kopis-performance-search
- korea-weather
- korean-bond-search
- korean-character-count
- korean-cinema-search
- korean-heritage-search
- korean-holiday-calendar
- korean-humanizer
- korean-jangbu-for
- korean-law-search
- korean-marathon-schedule
- korean-middle-korean
- korean-patent-search
- korean-privacy-terms
- korean-scholarship-search
- korean-slang-writing
- korean-spell-check
- korean-stock-search
- korean-transit-route
- kosis-stats
- kpic-drug-search
- kr-whois-lookup
- kstartup-search
- lck-analytics
- lh-notice-search
- library-book-search
- localdata-business-status
- lotto-results
- market-event-impact
- market-kurly-search
- mfds-drug-safety
- mfds-food-safety
- mofa-travel-safety
- multi-asset-morning-briefing
- myrealtrip-search
- naming-house
- national-pension-workplace
- naver-ad-performance
- naver-blog-research
- naver-news-search
- naver-shopping-search
- nhis-care-checkup-search
- nts-business-registration
- nts-tax-delinquency
- ohou-today-deal
- olive-young-search
- parking-lot-search
- popbill
- public-restroom-nearby
- railway-timetable
- real-estate-search
- religious-facility-search
- rhwp-advanced
- rhwp-edit
- s2b-notice-search
- saju-fortune
- saramin-talent-search
- seoul-bike
- seoul-density
- seoul-subway-arrival
- seoul-weather-risk
- sh-notice-search
- sharenuri-facility-search
- store-longevity-radar
- subway-lost-property
- ticket-availability
- toss-investment
- zipcode-search
Repository facts
- License
- MIT
- Created
- Mar 24, 2026
- Last pushed
- Nov 4, 2026
- Forks
- 998
- Open issues
- 64
- Project activity
- Active
Rank over the last 12 weeks
Now #176 · best #153 · down 12 in 30 days
- #172 from Oct 28 to Oct 30
- #173 from Oct 31 to Nov 1
- #174 on Nov 2
- #175 on Nov 3
- #174 on Nov 4
- #176 since Nov 5
61 earlier periods
- #150 on Aug 2
- #151 on Aug 7
- #152 on Aug 8
- #150 on Aug 9
- #154 on Aug 10
- #155 on Aug 11
- #154 on Aug 12
- #156 from Aug 13 to Aug 14
- #155 from Aug 15 to Aug 17
- #156 from Aug 18 to Aug 19
- #155 from Aug 20 to Aug 21
- #153 on Aug 22
- #156 from Aug 23 to Aug 26
- #157 on Aug 27
- #156 on Aug 28
- #157 on Aug 29
- #155 from Aug 30 to Aug 31
- #157 on Sep 1
- #153 on Sep 2
- #158 on Sep 3
- #157 on Sep 4
- #160 on Sep 5
- #157 on Sep 6
- #160 from Sep 7 to Sep 10
- #157 on Sep 11
- #160 on Sep 12
- #162 on Sep 13
- #161 on Sep 14
- #162 from Sep 15 to Sep 16
- #161 on Sep 17
- #162 on Sep 18
- #160 on Sep 19
- #163 from Sep 20 to Sep 21
- #162 on Sep 22
- #163 on Sep 23
- #161 on Sep 24
- #163 on Sep 25
- #164 from Sep 26 to Sep 27
- #166 from Sep 28 to Sep 29
- #163 on Sep 30
- #165 on Oct 1
- #166 on Oct 2
- #163 on Oct 3
- #162 on Oct 4
- #163 on Oct 5
- #162 on Oct 6
- #164 on Oct 7
- #163 on Oct 8
- #164 on Oct 9
- #163 on Oct 10
- #164 on Oct 11
- #165 on Oct 12
- #166 on Oct 13
- #167 from Oct 14 to Oct 15
- #166 on Oct 16
- #168 on Oct 17
- #169 on Oct 18
- #168 on Oct 19
- #169 on Oct 20
- #170 from Oct 21 to Oct 24
- #172 on Oct 25
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 2, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 608 notes
animal-pharmacy-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedanimal-pharmacy-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedanimal-pharmacy-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedanimal-pharmacy-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedcorporate-registration-consulting/templates/attachment-hwp/source-manifest.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedgov-overseas-trip-report/tests/fixtures/ggc-list.html:22Analysis incomplete: physical or joined line exceeds character limitgov-overseas-trip-report/tests/fixtures/open-portal.html:42Analysis incomplete: physical or joined line exceeds character limitgov-overseas-trip-report/tests/fixtures/open-portal.html:309Analysis incomplete: physical or joined line exceeds character limitgovernment-bond-analysis/scripts/render.mjs:55Analysis incomplete: physical or joined line exceeds character limitgovernment-bond-analysis/scripts/render.mjs:56Analysis incomplete: physical or joined line exceeds character limitgovernment-bond-analysis/scripts/render.mjs:57Analysis incomplete: physical or joined line exceeds character limitgovernment-bond-analysis/src/render.mts:60Analysis incomplete: physical or joined line exceeds character limitgovernment-bond-analysis/src/render.mts:61Analysis incomplete: physical or joined line exceeds character limitgovernment-bond-analysis/src/render.mts:62Analysis incomplete: physical or joined line exceeds character limitnaver-blog-research/skill.json:1Analysis incomplete: Referenced executable target unavailable; not analyzednaver-blog-research/skill.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedseoul-weather-risk/references/admin-dong-place-map.json:1Analysis incomplete: physical or joined line exceeds character limitassembly-bill-vote-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedassembly-bill-vote-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedassembly-bill-vote-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 24 dangerous shell commandsin 15 files: delivery-tracking/instruction.md:144 korean-jangbu-for/scripts/install.sh:53 hankookilbo-news/instruction.md:52 and 12 more
- 6,327 network referencesin 532 files: gov-overseas-trip-report/scripts/gov_overseas_trip_report.py:52 korean-slang-writing/data/seed-slang.json:1 market-event-impact/tests/fixtures/research.json:13 and 529 more
- 14 obfuscation signalsin 5 files: government-bond-analysis/scripts/render.mjs:57 government-bond-analysis/src/render.mts:62 government-bond-analysis/scripts/cli.mjs:49 and 2 more
- 4 instruction override signalsin 1 file: court-payment-order-assistant/instruction.md:107
- 573 executable scriptsin 256 files: scripts/generate-skill-stubs.js:1 bccard-eatpl-search/scripts/kakao-place-rating.mjs:1 bccard-eatpl-search/tests/kakao-place-rating.test.js:1 and 253 more
- 757 references to secretsin 103 files: kosis-stats/scripts/run_kosis_stats.py:57 keris-academic-search/tests/test_keris_academic.py:31 scripts/skill-docs.test.js:897 and 100 more
- No requests to vote in Hot
Show all 7,699 signals by file
.claude-plugin/plugin.json
- Network accessline 6
"name": "NomaDamas" }, "homepage": "https://github.com/NomaDamas/k-skill", - Network accessline 7
}, "homepage": "https://github.com/NomaDamas/k-skill", "repository": "https://github.com/NomaDamas/k-skill", - Network accessline 8
"homepage": "https://github.com/NomaDamas/k-skill", - Network accessline 9
"repository": "https://github.com/NomaDamas/k-skill",
animal-pharmacy-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/animal-pharmacy-search/instruction.md.
animal-pharmacy-search/instruction.md
animal-pharmacy-search/scripts/animal_pharmacy_mcp.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 14
DEFAULT_ENDPOINT = "https://hkmedi.co.kr/pharmacy-mcp" - Network accessline 164
request = urllib.request.Request( - Network accessline 169
) try: with urllib.request.urlopen(request, timeout=timeout_seconds) as response: - Network accessline 170
try: with urllib.request.urlopen(request, timeout=timeout_seconds) as response: parsed = parse_mcp_response( - Network accessline 171
with urllib.request.urlopen(request, timeout=timeout_seconds) as response:
assembly-bill-vote-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/assembly-bill-vote-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/assembly-bill-vote-search/instruction.md.
assembly-bill-vote-search/instruction.md
- Network accessline 5
열린국회정보 Open API `https://open.assembly.go.kr/portal/openapi` 를 `k-skill-proxy` 경유로 호출한다. - Network accessline 5
열린국회정보 Open API `https://open.assembly.go.kr/portal/openapi` 를 `k-skill-proxy` 경유로 호출한다. - Network accessline 26
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 26
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 27
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 27
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Network accessline 30
키 발급: <https://open.assembly.go.kr/portal/openapi/openApiActKeyIssPage.do> - Network accessline 30
키 발급: <https://open.assembly.go.kr/portal/openapi/openApiActKeyIssPage.do> - Network accessline 57
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/assembly/bills" \ - Network accessline 57
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/assembly/bills" \ - Network accessline 58
curl -fsS --get "$BASE/v1/assembly/bills" \ - Network accessline 58
curl -fsS --get "$BASE/v1/assembly/bills" \ - Network accessline 67
curl -fsS --get "$BASE/v1/assembly/bill-detail" \ - Network accessline 67
curl -fsS --get "$BASE/v1/assembly/bill-detail" \ - Network accessline 74
curl -fsS --get "$BASE/v1/assembly/votes" \ - Network accessline 74
curl -fsS --get "$BASE/v1/assembly/votes" \ - Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Network accessline 101
- `./scripts/validate-skills.sh` - `node --test packages/k-skill-proxy/test/server.test.js` - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/assembly/bills" --data-urlencode "query=간호법"` (키 미설정이면 503 확인) - Network accessline 101
- `./scripts/validate-skills.sh` - `node --test packages/k-skill-proxy/test/server.test.js` - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/assembly/bills" --data-urlencode "query=간호법"` (키 미설정이면 503 확인) - Network accessline 103
- `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/assembly/bills" --data-urlencode "query=간호법"` (키 미설정이면 503 확인) - Network accessline 103
- `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/assembly/bills" --data-urlencode "query=간호법"` (키 미설정이면 503 확인) - Access to secretsline 105
[Credential-related source omitted] - Access to secretsline 105
[Credential-related source omitted]
bccard-eatpl-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/bccard-eatpl-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/bccard-eatpl-search/instruction.md.
bccard-eatpl-search/instruction.md
- Network accessline 42
curl -fsS --get "${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}/v1/bccard-eatpl/search" \ - Network accessline 42
curl -fsS --get "${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}/v1/bccard-eatpl/search" \ - Network accessline 87
- **모든 행**에 응답 `merUrl`을 `가맹점명` 바로 오른쪽 컬럼의 마크다운 링크로 첨부한다: `[eat.pl 상세]({merUrl})`. - 링크는 항상 가맹점명 오른쪽에 둔다. 표 맨 뒤 컬럼으로 미루지 않는다. - `merUrl`이 없거나 `https://web.paybooc.ai/`로 시작하지 않으면 그 행을 출력하지 않는다. - Network accessline 87
- **모든 행**에 응답 `merUrl`을 `가맹점명` 바로 오른쪽 컬럼의 마크다운 링크로 첨부한다: `[eat.pl 상세]({merUrl})`. - 링크는 항상 가맹점명 오른쪽에 둔다. 표 맨 뒤 컬럼으로 미루지 않는다. - `merUrl`이 없거나 `https://web.paybooc.ai/`로 시작하지 않으면 그 행을 출력하지 않는다. - Network accessline 88
- 링크는 항상 가맹점명 오른쪽에 둔다. 표 맨 뒤 컬럼으로 미루지 않는다. - `merUrl`이 없거나 `https://web.paybooc.ai/`로 시작하지 않으면 그 행을 출력하지 않는다. - 링크가 빠진 목록·표는 완성 결과가 아니다. URL 경로를 조합하거나 추측하지 않는다. - Network accessline 88
- 링크는 항상 가맹점명 오른쪽에 둔다. 표 맨 뒤 컬럼으로 미루지 않는다. - `merUrl`이 없거나 `https://web.paybooc.ai/`로 시작하지 않으면 그 행을 출력하지 않는다. - 링크가 빠진 목록·표는 완성 결과가 아니다. URL 경로를 조합하거나 추측하지 않는다. - Network accessline 89
- `merUrl`이 없거나 `https://web.paybooc.ai/`로 시작하지 않으면 그 행을 출력하지 않는다. - Network accessline 89
- `merUrl`이 없거나 `https://web.paybooc.ai/`로 시작하지 않으면 그 행을 출력하지 않는다. - Network accessline 103
- `BCCARD_EATPL_INST_NM`: 제휴 시 발급된 기관코드 - `BCCARD_EATPL_API_BASE_URL`: 필수값, 기본값 없음 (미설정 시 503 `upstream_not_configured`). 운영 URL은 `https://api.paybooc.ai/api/mer` - Network accessline 103
- `BCCARD_EATPL_INST_NM`: 제휴 시 발급된 기관코드 - `BCCARD_EATPL_API_BASE_URL`: 필수값, 기본값 없음 (미설정 시 503 `upstream_not_configured`). 운영 URL은 `https://api.paybooc.ai/api/mer` - Network accessline 104
- `BCCARD_EATPL_API_BASE_URL`: 필수값, 기본값 없음 (미설정 시 503 `upstream_not_configured`). 운영 URL은 `https://api.paybooc.ai/api/mer` - Network accessline 104
- `BCCARD_EATPL_API_BASE_URL`: 필수값, 기본값 없음 (미설정 시 503 `upstream_not_configured`). 운영 URL은 `https://api.paybooc.ai/api/mer`
bccard-eatpl-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)과 대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)의 취지를 포함해, [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)과 대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)의 취지를 포함해, [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조
bccard-eatpl-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g
bccard-eatpl-search/scripts/kakao-place-rating.mjs
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Network accessline 14
export const DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org"; - Network accessline 14
export const DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org"; - Network accessline 15
export const KAKAO_MOBILE_SEARCH_URL = "https://m.map.kakao.com/actions/searchView"; - Network accessline 15
export const KAKAO_MOBILE_SEARCH_URL = "https://m.map.kakao.com/actions/searchView"; - Network accessline 181
result.kakaoPlaceId = place.id; result.kakaoPlaceName = place.place_name; result.kakaoPlaceUrl = place.place_url || `http://place.map.kakao.com/${place.id}`; - Network accessline 181
result.kakaoPlaceId = place.id; result.kakaoPlaceName = place.place_name; result.kakaoPlaceUrl = place.place_url || `http://place.map.kakao.com/${place.id}`; - Network accessline 183
result.kakaoPlaceUrl = place.place_url || `http://place.map.kakao.com/${place.id}`; - Network accessline 183
result.kakaoPlaceUrl = place.place_url || `http://place.map.kakao.com/${place.id}`;
bccard-eatpl-search/tests/kakao-place-rating.test.js
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 18
x: "126.986083137398", y: "37.5611814714638", place_url: "http://place.map.kakao.com/1479300828" - Network accessline 18
x: "126.986083137398", y: "37.5611814714638", place_url: "http://place.map.kakao.com/1479300828" - Network accessline 19
y: "37.5611814714638", place_url: "http://place.map.kakao.com/1479300828" }, - Network accessline 19
y: "37.5611814714638", place_url: "http://place.map.kakao.com/1479300828" }, - Network accessline 20
place_url: "http://place.map.kakao.com/1479300828" - Network accessline 20
place_url: "http://place.map.kakao.com/1479300828" - Network accessline 29
x: "126.985", y: "37.563", place_url: "http://place.map.kakao.com/26567082" - Network accessline 29
x: "126.985", y: "37.563", place_url: "http://place.map.kakao.com/26567082" - Network accessline 30
y: "37.563", place_url: "http://place.map.kakao.com/26567082" }, - Network accessline 30
y: "37.563", place_url: "http://place.map.kakao.com/26567082" }, - Network accessline 31
place_url: "http://place.map.kakao.com/26567082" - Network accessline 31
place_url: "http://place.map.kakao.com/26567082" - Network accessline 40
x: "126.994", y: "37.534", place_url: "http://place.map.kakao.com/1952478679" - Network accessline 40
x: "126.994", y: "37.534", place_url: "http://place.map.kakao.com/1952478679" - Network accessline 41
y: "37.534", place_url: "http://place.map.kakao.com/1952478679" }, - Network accessline 41
y: "37.534", place_url: "http://place.map.kakao.com/1952478679" }, - Network accessline 42
place_url: "http://place.map.kakao.com/1952478679" - Network accessline 42
place_url: "http://place.map.kakao.com/1952478679" - Network accessline 51
x: "126.984", y: "37.562", place_url: "http://place.map.kakao.com/1352361549" - Network accessline 51
x: "126.984", y: "37.562", place_url: "http://place.map.kakao.com/1352361549" - Network accessline 52
y: "37.562", place_url: "http://place.map.kakao.com/1352361549" } - Network accessline 52
y: "37.562", place_url: "http://place.map.kakao.com/1352361549" } - Network accessline 53
place_url: "http://place.map.kakao.com/1352361549" - Network accessline 53
place_url: "http://place.map.kakao.com/1352361549" - Network accessline 169
assert.equal(result.reviewCount, 334); assert.equal(result.kakaoPlaceId, "1479300828"); assert.equal(result.kakaoPlaceUrl, "http://place.map.kakao.com/1479300828"); - Network accessline 169
assert.equal(result.reviewCount, 334); assert.equal(result.kakaoPlaceId, "1479300828"); assert.equal(result.kakaoPlaceUrl, "http://place.map.kakao.com/1479300828"); - Network accessline 170
assert.equal(result.kakaoPlaceId, "1479300828"); assert.equal(result.kakaoPlaceUrl, "http://place.map.kakao.com/1479300828"); }); - Network accessline 170
assert.equal(result.kakaoPlaceId, "1479300828"); assert.equal(result.kakaoPlaceUrl, "http://place.map.kakao.com/1479300828"); }); - Network accessline 171
assert.equal(result.kakaoPlaceUrl, "http://place.map.kakao.com/1479300828"); - Network accessline 171
assert.equal(result.kakaoPlaceUrl, "http://place.map.kakao.com/1479300828");
biz-health-check/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/biz-health-check/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/biz-health-check/instruction.md.
biz-health-check/instruction.md
biz-health-check/scripts/biz_health_check.py
boim-business-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/boim-business-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/boim-business-search/instruction.md.
boim-business-search/instruction.md
- Network accessline 41
curl -fsS --max-time 15 --get "https://boim.io/search/" \ - Network accessline 41
curl -fsS --max-time 15 --get "https://boim.io/search/" \ - Network accessline 47
- 질문당 1~3회만 부른다. 결과를 넘겨 가며 전부 긁어 오지 않는다. 보임 이용약관(https://boim.io/terms/)은 자동화 도구로 데이터를 대량·반복 수집하거나 재배포하는 일을 허락 없이 할 수 없게 한다. 더 많은 결과가 필요하면 `more` 주소를 사용자에게 준다. - Network accessline 47
- 질문당 1~3회만 부른다. 결과를 넘겨 가며 전부 긁어 오지 않는다. 보임 이용약관(https://boim.io/terms/)은 자동화 도구로 데이터를 대량·반복 수집하거나 재배포하는 일을 허락 없이 할 수 없게 한다. 더 많은 결과가 필요하면 `more` 주소를 사용자에게 준다. - Network accessline 59
curl -fsS --max-time 15 -A "k-skill-boim" \ - Network accessline 59
curl -fsS --max-time 15 -A "k-skill-boim" \ - Network accessline 60
"https://boim.io/search/?q=%EC%84%B8%EC%A2%85%20%EB%B3%B4%EB%9E%8C%EB%8F%99%20%EB%AF%B8%EC%9A%A9%EC%8B%A4&format=json" - Network accessline 60
"https://boim.io/search/?q=%EC%84%B8%EC%A2%85%20%EB%B3%B4%EB%9E%8C%EB%8F%99%20%EB%AF%B8%EC%9A%A9%EC%8B%A4&format=json" - Network accessline 65
curl -fsS --max-time 15 -A "k-skill-boim" "https://boim.io/vendors/c/<카드 id>/ai.md" - Network accessline 65
curl -fsS --max-time 15 -A "k-skill-boim" "https://boim.io/vendors/c/<카드 id>/ai.md" - Network accessline 84
"name": "○○산업", "sub": "경기도 김포시 · 교통표지·도로안전표지판 지주·안전표지판 · 1년 공공 납품 445건", "url": "https://boim.io/vendors/c/<카드 id>/", - Network accessline 84
"name": "○○산업", "sub": "경기도 김포시 · 교통표지·도로안전표지판 지주·안전표지판 · 1년 공공 납품 445건", "url": "https://boim.io/vendors/c/<카드 id>/", - Network accessline 85
"sub": "경기도 김포시 · 교통표지·도로안전표지판 지주·안전표지판 · 1년 공공 납품 445건", "url": "https://boim.io/vendors/c/<카드 id>/", "ai_md": "https://boim.io/vendors/c/<카드 id>/ai.md", - Network accessline 85
"sub": "경기도 김포시 · 교통표지·도로안전표지판 지주·안전표지판 · 1년 공공 납품 445건", "url": "https://boim.io/vendors/c/<카드 id>/", "ai_md": "https://boim.io/vendors/c/<카드 id>/ai.md", - Network accessline 86
"url": "https://boim.io/vendors/c/<카드 id>/", - Network accessline 86
"url": "https://boim.io/vendors/c/<카드 id>/", - Network accessline 87
"ai_md": "https://boim.io/vendors/c/<카드 id>/ai.md", - Network accessline 87
"ai_md": "https://boim.io/vendors/c/<카드 id>/ai.md", - Network accessline 89
} ], "more": "https://boim.io/vendors/traffic-sign/", - Network accessline 89
} ], "more": "https://boim.io/vendors/traffic-sign/", - Network accessline 90
], "more": "https://boim.io/vendors/traffic-sign/", "note": "관련도 → AI 준비 구간 → 날마다 섞기(실적 순위 아님)" - Network accessline 90
], "more": "https://boim.io/vendors/traffic-sign/", "note": "관련도 → AI 준비 구간 → 날마다 섞기(실적 순위 아님)" - Network accessline 91
"more": "https://boim.io/vendors/traffic-sign/", - Network accessline 91
"more": "https://boim.io/vendors/traffic-sign/", - Network accessline 101
"name": "2026년 하반기 교통안전표지판 등 유지보수 단가계약(1지역)", "sub": "충청남도 아산시 · 공사 · 마감 2026-10-28", "url": "https://www.g2b.go.kr/link/PNPE027_01/single/?bidPbancNo=R26BK01785493&bidPbancOrd=000" - Network accessline 101
"name": "2026년 하반기 교통안전표지판 등 유지보수 단가계약(1지역)", "sub": "충청남도 아산시 · 공사 · 마감 2026-10-28", "url": "https://www.g2b.go.kr/link/PNPE027_01/single/?bidPbancNo=R26BK01785493&bidPbancOrd=000" - Network accessline 102
"sub": "충청남도 아산시 · 공사 · 마감 2026-10-28", "url": "https://www.g2b.go.kr/link/PNPE027_01/single/?bidPbancNo=R26BK01785493&bidPbancOrd=000" } - Network accessline 102
"sub": "충청남도 아산시 · 공사 · 마감 2026-10-28", "url": "https://www.g2b.go.kr/link/PNPE027_01/single/?bidPbancNo=R26BK01785493&bidPbancOrd=000" } - Network accessline 103
"url": "https://www.g2b.go.kr/link/PNPE027_01/single/?bidPbancNo=R26BK01785493&bidPbancOrd=000" - Network accessline 103
"url": "https://www.g2b.go.kr/link/PNPE027_01/single/?bidPbancNo=R26BK01785493&bidPbancOrd=000" - Network accessline 104
} ], "more": "https://boim.io/public-bids/?q=%EA%B5%90%ED%86%B5%EC%95%88%EC%A0%84%ED%91%9C%EC%A7%80", - Network accessline 104
} ], "more": "https://boim.io/public-bids/?q=%EA%B5%90%ED%86%B5%EC%95%88%EC%A0%84%ED%91%9C%EC%A7%80", - Network accessline 105
], "more": "https://boim.io/public-bids/?q=%EA%B5%90%ED%86%B5%EC%95%88%EC%A0%84%ED%91%9C%EC%A7%80", "note": "마감이 가까운 순서" - Network accessline 105
], "more": "https://boim.io/public-bids/?q=%EA%B5%90%ED%86%B5%EC%95%88%EC%A0%84%ED%91%9C%EC%A7%80", "note": "마감이 가까운 순서" - Network accessline 106
"more": "https://boim.io/public-bids/?q=%EA%B5%90%ED%86%B5%EC%95%88%EC%A0%84%ED%91%9C%EC%A7%80", - Network accessline 106
"more": "https://boim.io/public-bids/?q=%EA%B5%90%ED%86%B5%EC%95%88%EC%A0%84%ED%91%9C%EC%A7%80", - Network accessline 108
} ], "cite": "출처: 보임(boim.io) 검색 '교통안전표지 조달 업체' https://boim.io/search/?q=...", - Network accessline 108
} ], "cite": "출처: 보임(boim.io) 검색 '교통안전표지 조달 업체' https://boim.io/search/?q=...", - Network accessline 109
], "cite": "출처: 보임(boim.io) 검색 '교통안전표지 조달 업체' https://boim.io/search/?q=...", "number_of_results": 436 - Network accessline 109
], "cite": "출처: 보임(boim.io) 검색 '교통안전표지 조달 업체' https://boim.io/search/?q=...", "number_of_results": 436 - Network accessline 110
"cite": "출처: 보임(boim.io) 검색 '교통안전표지 조달 업체' https://boim.io/search/?q=...", - Network accessline 110
"cite": "출처: 보임(boim.io) 검색 '교통안전표지 조달 업체' https://boim.io/search/?q=...", - Network accessline 138
- `sections`가 비고 `number_of_results`가 0: 맞는 결과가 없다. `suggest_for`가 `region`·`categories`면 후보를 사용자에게 보여 주고 고른 것만 쓰며, 지역을 임의로 고르지 않는다. `name`·`example` 후보나 예시 질의로는 다시 부르지 않는다. 파생 재검색은 사용자 질의 기반으로 한 번만 하고 `suggest[].url` 대신 `/search/?q=…&forma - Network accessline 138
- `sections`가 비고 `number_of_results`가 0: 맞는 결과가 없다. `suggest_for`가 `region`·`categories`면 후보를 사용자에게 보여 주고 고른 것만 쓰며, 지역을 임의로 고르지 않는다. `name`·`example` 후보나 예시 질의로는 다시 부르지 않는다. 파생 재검색은 사용자 질의 기반으로 한 번만 하고 `suggest[].url` 대신 `/search/?q=…&forma - Network accessline 140
- 5xx이거나 응답이 JSON이 아니면 보임 쪽 일시 장애다. 운영 상태 https://boim.io/status/ 를 안내한다. - Network accessline 140
- 5xx이거나 응답이 JSON이 아니면 보임 쪽 일시 장애다. 운영 상태 https://boim.io/status/ 를 안내한다. - Network accessline 144
- 질의어는 보임 서버(boim.io)로 간다. 보임은 개인정보처리방침(https://boim.io/privacy/)에 따라 검색어 기록을 남길 수 있다. 사람 이름·전화번호 같은 개인정보는 질의에 넣지 않는다. - Network accessline 144
- 질의어는 보임 서버(boim.io)로 간다. 보임은 개인정보처리방침(https://boim.io/privacy/)에 따라 검색어 기록을 남길 수 있다. 사람 이름·전화번호 같은 개인정보는 질의에 넣지 않는다. - Network accessline 148
- 검색 주소: `https://boim.io/search/?q=<질의>&format=json` (설명서 https://boim.io/openapi.json) - Network accessline 148
- 검색 주소: `https://boim.io/search/?q=<질의>&format=json` (설명서 https://boim.io/openapi.json) - Network accessline 149
- 조달 업체 카드 요약: `https://boim.io/vendors/c/<카드 id>/ai.md` - Network accessline 149
- 조달 업체 카드 요약: `https://boim.io/vendors/c/<카드 id>/ai.md` - Network accessline 150
- 같은 데이터의 MCP 서버: `https://boim.io/api/mcp` (Streamable HTTP, 읽기 전용, 도구 6개) - Network accessline 150
- 같은 데이터의 MCP 서버: `https://boim.io/api/mcp` (Streamable HTTP, 읽기 전용, 도구 6개)
bok-ecos-stats/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/bok-ecos-stats/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/bok-ecos-stats/instruction.md.
bok-ecos-stats/instruction.md
- Network accessline 5
한국은행 경제통계시스템(ECOS) Open API `https://ecos.bok.or.kr/api/` 로 중앙은행 경제통계를 조회한다. - Network accessline 5
한국은행 경제통계시스템(ECOS) Open API `https://ecos.bok.or.kr/api/` 로 중앙은행 경제통계를 조회한다. - Network accessline 36
[Credential-related source omitted] - Network accessline 36
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Network accessline 77
- `https://ecos.bok.or.kr/api/<Service>/<key>/json/kr/<start>/<end>/<segments...>` — 쿼리스트링 없는 positional URL. 한글 검색어는 helper가 percent-encoding 처리한다. - Network accessline 77
- `https://ecos.bok.or.kr/api/<Service>/<key>/json/kr/<start>/<end>/<segments...>` — 쿼리스트링 없는 positional URL. 한글 검색어는 helper가 percent-encoding 처리한다.
bok-ecos-stats/scripts/bok_ecos.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 6
GET https://ecos.bok.or.kr/api/<Service>/<key>/json/kr/<start>/<end>/<segments...> - Network accessline 6
GET https://ecos.bok.or.kr/api/<Service>/<key>/json/kr/<start>/<end>/<segments...> - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Network accessline 39
ECOS_BASE_URL = "https://ecos.bok.or.kr/api" - Network accessline 39
ECOS_BASE_URL = "https://ecos.bok.or.kr/api" - Network accessline 41
SAMPLE_MAX_ROWS = 10 DEFAULT_SECRETS_PATH = pathlib.Path("~/.config/k-skill/secrets.env").expanduser() USER_AGENT = "k-skill-bok-ecos/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 41
SAMPLE_MAX_ROWS = 10 DEFAULT_SECRETS_PATH = pathlib.Path("~/.config/k-skill/secrets.env").expanduser() USER_AGENT = "k-skill-bok-ecos/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 43
USER_AGENT = "k-skill-bok-ecos/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 43
USER_AGENT = "k-skill-bok-ecos/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 59
ERROR_HINTS = { "INFO-100": "인증키가 유효하지 않습니다. KSKILL_BOK_ECOS_API_KEY를 확인하거나 https://ecos.bok.or.kr/api 에서 키를 발급받으세요.", - Network accessline 59
ERROR_HINTS = { "INFO-100": "인증키가 유효하지 않습니다. KSKILL_BOK_ECOS_API_KEY를 확인하거나 https://ecos.bok.or.kr/api 에서 키를 발급받으세요.", - Network accessline 60
"INFO-100": "인증키가 유효하지 않습니다. KSKILL_BOK_ECOS_API_KEY를 확인하거나 https://ecos.bok.or.kr/api 에서 키를 발급받으세요.", - Network accessline 60
"INFO-100": "인증키가 유효하지 않습니다. KSKILL_BOK_ECOS_API_KEY를 확인하거나 https://ecos.bok.or.kr/api 에서 키를 발급받으세요.", - Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 91
[Credential-related source omitted] - Access to secretsline 91
[Credential-related source omitted] - Access to secretsline 120
[Credential-related source omitted] - Access to secretsline 120
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Network accessline 149
def http_get_json(url: str, timeout: int) -> Dict[str, Any]: request = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 149
def http_get_json(url: str, timeout: int) -> Dict[str, Any]: request = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 150
request = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 150
request = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 151
try: with urllib.request.urlopen(request, timeout=timeout) as response: body = response.read().decode("utf-8", "replace") - Network accessline 151
try: with urllib.request.urlopen(request, timeout=timeout) as response: body = response.read().decode("utf-8", "replace") - Network accessline 152
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 152
with urllib.request.urlopen(request, timeout=timeout) as response: - Access to secretsline 282
[Credential-related source omitted] - Access to secretsline 282
[Credential-related source omitted] - Access to secretsline 283
[Credential-related source omitted] - Access to secretsline 283
[Credential-related source omitted]
bok-ecos-stats/tests/test_bok_ecos.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 116
[Credential-related source omitted] - Access to secretsline 116
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 132
[Credential-related source omitted] - Access to secretsline 132
[Credential-related source omitted] - Access to secretsline 137
[Credential-related source omitted] - Access to secretsline 137
[Credential-related source omitted] - Access to secretsline 143
[Credential-related source omitted] - Access to secretsline 143
[Credential-related source omitted] - Access to secretsline 148
[Credential-related source omitted] - Access to secretsline 148
[Credential-related source omitted] - Access to secretsline 152
[Credential-related source omitted] - Access to secretsline 152
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted]
building-register-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/building-register-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/building-register-search/instruction.md.
building-register-search/instruction.md
- Network accessline 11
1. 공공데이터포털 데이터셋 `15134735` 2. 공식 endpoint `https://apis.data.go.kr/1613000/BldRgstHubService/getBrTitleInfo` - Network accessline 11
1. 공공데이터포털 데이터셋 `15134735` 2. 공식 endpoint `https://apis.data.go.kr/1613000/BldRgstHubService/getBrTitleInfo` - Network accessline 12
2. 공식 endpoint `https://apis.data.go.kr/1613000/BldRgstHubService/getBrTitleInfo` - Network accessline 12
2. 공식 endpoint `https://apis.data.go.kr/1613000/BldRgstHubService/getBrTitleInfo` - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted]
building-register-search/scripts/building_register.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 23
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 23
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 24
DEFAULT_SECRETS_PATH = pathlib.Path("~/.config/k-skill/secrets.env").expanduser() UPSTREAM_URL = "https://apis.data.go.kr/1613000/BldRgstHubService/getBrTitleInfo" PROXY_DOWN_MSG = "설정된 k-skill-proxy 프록시 서버가 응답하지 않습니다. 잠시 후 재시도하거나 운영자에게 문의하 - Network accessline 24
DEFAULT_SECRETS_PATH = pathlib.Path("~/.config/k-skill/secrets.env").expanduser() UPSTREAM_URL = "https://apis.data.go.kr/1613000/BldRgstHubService/getBrTitleInfo" PROXY_DOWN_MSG = "설정된 k-skill-proxy 프록시 서버가 응답하지 않습니다. 잠시 후 재시도하거나 운영자에게 문의하 - Network accessline 25
UPSTREAM_URL = "https://apis.data.go.kr/1613000/BldRgstHubService/getBrTitleInfo" - Network accessline 25
UPSTREAM_URL = "https://apis.data.go.kr/1613000/BldRgstHubService/getBrTitleInfo" - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 164
[Credential-related source omitted] - Access to secretsline 164
[Credential-related source omitted] - Access to secretsline 166
[Credential-related source omitted] - Access to secretsline 166
[Credential-related source omitted] - Access to secretsline 170
[Credential-related source omitted] - Access to secretsline 170
[Credential-related source omitted] - Network accessline 179
def http_get_json(url: str, timeout: int, via_proxy: bool) -> Dict[str, Any]: request = urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/building-register-search"}) - Network accessline 179
def http_get_json(url: str, timeout: int, via_proxy: bool) -> Dict[str, Any]: request = urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/building-register-search"}) - Network accessline 180
request = urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/building-register-search"}) - Network accessline 180
request = urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/building-register-search"}) - Network accessline 181
try: with urllib.request.urlopen(request, timeout=timeout) as response: raw = response.read().decode("utf-8", errors="replace") - Network accessline 181
try: with urllib.request.urlopen(request, timeout=timeout) as response: raw = response.read().decode("utf-8", errors="replace") - Network accessline 182
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 182
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 212
def http_get_direct_xml(url: str, timeout: int) -> Dict[str, Any]: request = urllib.request.Request(url, headers={"accept": "application/xml", "user-agent": "k-skill/building-register-search"}) - Network accessline 212
def http_get_direct_xml(url: str, timeout: int) -> Dict[str, Any]: request = urllib.request.Request(url, headers={"accept": "application/xml", "user-agent": "k-skill/building-register-search"}) - Network accessline 213
request = urllib.request.Request(url, headers={"accept": "application/xml", "user-agent": "k-skill/building-register-search"}) - Network accessline 213
request = urllib.request.Request(url, headers={"accept": "application/xml", "user-agent": "k-skill/building-register-search"}) - Network accessline 214
try: with urllib.request.urlopen(request, timeout=timeout) as response: raw = response.read() - Network accessline 214
try: with urllib.request.urlopen(request, timeout=timeout) as response: raw = response.read() - Network accessline 215
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 215
with urllib.request.urlopen(request, timeout=timeout) as response: - Access to secretsline 257
[Credential-related source omitted] - Access to secretsline 257
[Credential-related source omitted] - Access to secretsline 295
[Credential-related source omitted] - Access to secretsline 295
[Credential-related source omitted] - Access to secretsline 296
[Credential-related source omitted] - Access to secretsline 296
[Credential-related source omitted]
building-register-search/scripts/building_register_xml.py
building-register-search/tests/test_building_register.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 36
"title", "--sigungu-cd", "11680", "--bjdong-cd", "10100", "--plat-gb-cd", plat_gb_cd, "--bun", "7", "--ji", "2", "--proxy-base-url", "https://example.test" - Network accessline 36
"title", "--sigungu-cd", "11680", "--bjdong-cd", "10100", "--plat-gb-cd", plat_gb_cd, "--bun", "7", "--ji", "2", "--proxy-base-url", "https://example.test" - Network accessline 37
"--plat-gb-cd", plat_gb_cd, "--bun", "7", "--ji", "2", "--proxy-base-url", "https://example.test" ]) - Network accessline 37
"--plat-gb-cd", plat_gb_cd, "--bun", "7", "--ji", "2", "--proxy-base-url", "https://example.test" ]) - Network accessline 38
"--proxy-base-url", "https://example.test" - Network accessline 38
"--proxy-base-url", "https://example.test" - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Network accessline 65
def test_proxy_url_has_no_key(self): args = building_register.parse_args([ "title", "--pnu", "1168010100101230004", "--proxy-base-url", "https://example.test" - Network accessline 65
def test_proxy_url_has_no_key(self): args = building_register.parse_args([ "title", "--pnu", "1168010100101230004", "--proxy-base-url", "https://example.test" - Network accessline 66
args = building_register.parse_args([ "title", "--pnu", "1168010100101230004", "--proxy-base-url", "https://example.test" ]) - Network accessline 66
args = building_register.parse_args([ "title", "--pnu", "1168010100101230004", "--proxy-base-url", "https://example.test" ]) - Network accessline 67
"title", "--pnu", "1168010100101230004", "--proxy-base-url", "https://example.test" - Network accessline 67
"title", "--pnu", "1168010100101230004", "--proxy-base-url", "https://example.test" - Network accessline 68
[Credential-related source omitted] - Network accessline 68
[Credential-related source omitted] - Network accessline 69
[Credential-related source omitted] - Network accessline 69
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Network accessline 70
self.assertTrue(url.startswith("https://example.test/v1/building-register/title?")) - Network accessline 70
self.assertTrue(url.startswith("https://example.test/v1/building-register/title?")) - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Network accessline 112
}).encode("utf-8")) error = urllib.error.HTTPError( "https://example.test/v1/kakao-local/geocode?q=test", - Network accessline 112
}).encode("utf-8")) error = urllib.error.HTTPError( "https://example.test/v1/kakao-local/geocode?q=test", - Network accessline 113
error = urllib.error.HTTPError( "https://example.test/v1/kakao-local/geocode?q=test", 503, - Network accessline 113
error = urllib.error.HTTPError( "https://example.test/v1/kakao-local/geocode?q=test", 503, - Network accessline 114
"https://example.test/v1/kakao-local/geocode?q=test", - Network accessline 114
"https://example.test/v1/kakao-local/geocode?q=test", - Network accessline 126
"서울 강남구 삼성동 159", "--proxy-base-url", "https://example.test", - Network accessline 126
"서울 강남구 삼성동 159", "--proxy-base-url", "https://example.test", - Network accessline 127
"--proxy-base-url", "https://example.test", ]) - Network accessline 127
"--proxy-base-url", "https://example.test", ]) - Network accessline 128
"https://example.test", - Network accessline 128
"https://example.test", - Network accessline 138
with mock.patch.object(building_register.urllib.request, "urlopen", return_value=response): with self.assertRaisesRegex(building_register.HelperError, "pageNo"): building_register.http_get_direct_xml("https://exa - Network accessline 138
with mock.patch.object(building_register.urllib.request, "urlopen", return_value=response): with self.assertRaisesRegex(building_register.HelperError, "pageNo"): building_register.http_get_direct_xml("https://exa - Network accessline 140
building_register.http_get_direct_xml("https://example.test", 1) - Network accessline 140
building_register.http_get_direct_xml("https://example.test", 1) - Network accessline 163
with mock.patch.object(building_register, "http_get_json", side_effect=fake_get), contextlib.redirect_stdout(stdout): code = building_register.run([ "title", "--address", "서울 강남구 역삼동 123-4", "--proxy-base-url", " - Network accessline 163
with mock.patch.object(building_register, "http_get_json", side_effect=fake_get), contextlib.redirect_stdout(stdout): code = building_register.run([ "title", "--address", "서울 강남구 역삼동 123-4", "--proxy-base-url", " - Network accessline 164
code = building_register.run([ "title", "--address", "서울 강남구 역삼동 123-4", "--proxy-base-url", "https://example.test", "--json" ]) - Network accessline 164
code = building_register.run([ "title", "--address", "서울 강남구 역삼동 123-4", "--proxy-base-url", "https://example.test", "--json" ]) - Network accessline 165
"title", "--address", "서울 강남구 역삼동 123-4", "--proxy-base-url", "https://example.test", "--json" - Network accessline 165
"title", "--address", "서울 강남구 역삼동 123-4", "--proxy-base-url", "https://example.test", "--json" - Network accessline 199
code = building_register.run([ "title", "--address", "서울 강남구 역삼동 123-4", "--proxy-base-url", "https://example.test", "--dry-run", - Network accessline 199
code = building_register.run([ "title", "--address", "서울 강남구 역삼동 123-4", "--proxy-base-url", "https://example.test", "--dry-run", - Network accessline 200
"title", "--address", "서울 강남구 역삼동 123-4", "--proxy-base-url", "https://example.test", "--dry-run", ]) - Network accessline 200
"title", "--address", "서울 강남구 역삼동 123-4", "--proxy-base-url", "https://example.test", "--dry-run", ]) - Network accessline 201
"--proxy-base-url", "https://example.test", "--dry-run", - Network accessline 201
"--proxy-base-url", "https://example.test", "--dry-run",
bunjang-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/bunjang-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/bunjang-search/instruction.md.
bunjang-search/instruction.md
- Network accessline 5
upstream [`bunjang-cli`](https://www.npmjs.com/package/bunjang-cli) / [`pinion05/bunjangcli`](https://github.com/pinion05/bunjangcli) 를 사용해 번개장터에서 아래 흐름을 처리한다. - Network accessline 5
upstream [`bunjang-cli`](https://www.npmjs.com/package/bunjang-cli) / [`pinion05/bunjangcli`](https://github.com/pinion05/bunjangcli) 를 사용해 번개장터에서 아래 흐름을 처리한다.
bunjang-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
bunjang-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
cheap-gas-nearby/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/cheap-gas-nearby/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/cheap-gas-nearby/instruction.md.
cheap-gas-nearby/instruction.md
- Network accessline 30
[Credential-related source omitted] - Network accessline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Network accessline 34
- 오픈 API 안내: `https://www.opinet.co.kr/user/custapi/openApiInfo.do` - Network accessline 34
- 오픈 API 안내: `https://www.opinet.co.kr/user/custapi/openApiInfo.do` - Network accessline 35
- 반경 내 주유소: `https://www.opinet.co.kr/api/aroundAll.do` - Network accessline 35
- 반경 내 주유소: `https://www.opinet.co.kr/api/aroundAll.do` - Network accessline 36
- 주유소 상세정보(ID): `https://www.opinet.co.kr/api/detailById.do` - Network accessline 36
- 주유소 상세정보(ID): `https://www.opinet.co.kr/api/detailById.do` - Network accessline 37
- 지역코드: `https://www.opinet.co.kr/api/areaCode.do` - Network accessline 37
- 지역코드: `https://www.opinet.co.kr/api/areaCode.do` - Network accessline 48
- Kakao Map 모바일 검색: `https://m.map.kakao.com/actions/searchView?q=<query>` - Network accessline 48
- Kakao Map 모바일 검색: `https://m.map.kakao.com/actions/searchView?q=<query>` - Network accessline 49
- Kakao Map 장소 패널 JSON: `https://place-api.map.kakao.com/places/panel3/<confirmId>` - Network accessline 49
- Kakao Map 장소 패널 JSON: `https://place-api.map.kakao.com/places/panel3/<confirmId>` - Access to secretsline 105
[Credential-related source omitted] - Access to secretsline 105
[Credential-related source omitted]
company-analysis/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/company-analysis/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/company-analysis/instruction.md.
company-analysis/instruction.md
- Network accessline 21
- 국내: DART 공개 공시 원문과 접수번호, KIND 거래소 공시·IR자료, 기업 IR·실적발표 자료를 우선한다. OpenDART API는 인증키가 필요하므로 사용하지 않는다. - 미국: 공개 [SEC EDGAR 데이터 API](https://www.sec.gov/search-filings/edgar-application-programming-interfaces)의 제출 이력·XBRL 자료와 특정 10-K/10-Q/8-K - Network accessline 21
- 국내: DART 공개 공시 원문과 접수번호, KIND 거래소 공시·IR자료, 기업 IR·실적발표 자료를 우선한다. OpenDART API는 인증키가 필요하므로 사용하지 않는다. - 미국: 공개 [SEC EDGAR 데이터 API](https://www.sec.gov/search-filings/edgar-application-programming-interfaces)의 제출 이력·XBRL 자료와 특정 10-K/10-Q/8-K - Network accessline 22
- 미국: 공개 [SEC EDGAR 데이터 API](https://www.sec.gov/search-filings/edgar-application-programming-interfaces)의 제출 이력·XBRL 자료와 특정 10-K/10-Q/8-K 원문, 기업 IR을 우선한다. SEC 자동 접근 규칙을 지킨다. 미국 외 해외: 해당 시장 감독기관·거래소의 공개 공시와 기업 IR을 사용한다. 공개 원문이 없으면 그 항목은 확인 - Network accessline 22
- 미국: 공개 [SEC EDGAR 데이터 API](https://www.sec.gov/search-filings/edgar-application-programming-interfaces)의 제출 이력·XBRL 자료와 특정 10-K/10-Q/8-K 원문, 기업 IR을 우선한다. SEC 자동 접근 규칙을 지킨다. 미국 외 해외: 해당 시장 감독기관·거래소의 공개 공시와 기업 IR을 사용한다. 공개 원문이 없으면 그 항목은 확인
company-analysis/references/source-contract.md
- Network accessline 5
| 시장 | 1차 원천 | 식별자 | | --- | --- | --- | | 한국 | [DART 공개 공시](https://dart.fss.or.kr/), [KIND 공개 공시·IR](https://kind.krx.co.kr/), 발행사 IR | 회사·종목코드, 접수번호, 정정 여부, 회계기간 | - Network accessline 5
| 시장 | 1차 원천 | 식별자 | | --- | --- | --- | | 한국 | [DART 공개 공시](https://dart.fss.or.kr/), [KIND 공개 공시·IR](https://kind.krx.co.kr/), 발행사 IR | 회사·종목코드, 접수번호, 정정 여부, 회계기간 | - Network accessline 6
| --- | --- | --- | | 한국 | [DART 공개 공시](https://dart.fss.or.kr/), [KIND 공개 공시·IR](https://kind.krx.co.kr/), 발행사 IR | 회사·종목코드, 접수번호, 정정 여부, 회계기간 | | 미국 | [SEC 공개 제출·XBRL API](https://www.sec.gov/search-filings/edgar-application-programming-i - Network accessline 6
| --- | --- | --- | | 한국 | [DART 공개 공시](https://dart.fss.or.kr/), [KIND 공개 공시·IR](https://kind.krx.co.kr/), 발행사 IR | 회사·종목코드, 접수번호, 정정 여부, 회계기간 | | 미국 | [SEC 공개 제출·XBRL API](https://www.sec.gov/search-filings/edgar-application-programming-i - Network accessline 7
| 한국 | [DART 공개 공시](https://dart.fss.or.kr/), [KIND 공개 공시·IR](https://kind.krx.co.kr/), 발행사 IR | 회사·종목코드, 접수번호, 정정 여부, 회계기간 | - Network accessline 7
| 한국 | [DART 공개 공시](https://dart.fss.or.kr/), [KIND 공개 공시·IR](https://kind.krx.co.kr/), 발행사 IR | 회사·종목코드, 접수번호, 정정 여부, 회계기간 | - Network accessline 8
| 미국 | [SEC 공개 제출·XBRL API](https://www.sec.gov/search-filings/edgar-application-programming-interfaces), 개별 EDGAR 공시, 발행사 IR | CIK, accession, form, filed, start/end, unit | - Network accessline 8
| 미국 | [SEC 공개 제출·XBRL API](https://www.sec.gov/search-filings/edgar-application-programming-interfaces), 개별 EDGAR 공시, 발행사 IR | CIK, accession, form, filed, start/end, unit | - Network accessline 29
"sources": [{ "id": "filing_1", "url": "https://official.example/filing/123", - Network accessline 29
"sources": [{ "id": "filing_1", "url": "https://official.example/filing/123", - Network accessline 30
"id": "filing_1", "url": "https://official.example/filing/123", "published_at": "2026-09-20", - Network accessline 30
"id": "filing_1", "url": "https://official.example/filing/123", "published_at": "2026-09-20", - Network accessline 31
"url": "https://official.example/filing/123", - Network accessline 31
"url": "https://official.example/filing/123", - Network accessline 71
- Nasdaq: `https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks`에서 티커를 교체하고 `provider`를 `nasdaq`으로 지정한다. 응답의 `symbol`, `companyName`, `primaryData.lastSalePrice`, `lastTradeTimestamp`, `marketStatus`를 검증한다. - Network accessline 71
- Nasdaq: `https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks`에서 티커를 교체하고 `provider`를 `nasdaq`으로 지정한다. 응답의 `symbol`, `companyName`, `primaryData.lastSalePrice`, `lastTradeTimestamp`, `marketStatus`를 검증한다. - Network accessline 72
- 국내: `https://m.stock.naver.com/api/stock/005930/basic`에서 6자리 종목코드를 교체하고 `provider`를 `naver-kr`로 지정한다. `itemCode`, `stockName`, `closePrice`, `localTradedAt`, `marketStatus`, `marketSessionType`을 검증한다. 이 경로는 네이버의 비공식 공개 JSON으로 변경 가능성이 있다. - Network accessline 72
- 국내: `https://m.stock.naver.com/api/stock/005930/basic`에서 6자리 종목코드를 교체하고 `provider`를 `naver-kr`로 지정한다. `itemCode`, `stockName`, `closePrice`, `localTradedAt`, `marketStatus`, `marketSessionType`을 검증한다. 이 경로는 네이버의 비공식 공개 JSON으로 변경 가능성이 있다.
company-analysis/scripts/dart-rows.js
company-analysis/scripts/dart-rows.ts
company-analysis/scripts/evidence.js
company-analysis/scripts/evidence.ts
company-analysis/scripts/fetch-public.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Network accessline 32
if ((0, node_fs_1.existsSync)(output)) throw new Error("output directory already exists; snapshots are immutable"); const response = await fetch(address, { - Network accessline 32
if ((0, node_fs_1.existsSync)(output)) throw new Error("output directory already exists; snapshots are immutable"); const response = await fetch(address, { - Network accessline 33
throw new Error("output directory already exists; snapshots are immutable"); const response = await fetch(address, { redirect: "manual", - Network accessline 33
throw new Error("output directory already exists; snapshots are immutable"); const response = await fetch(address, { redirect: "manual", - Network accessline 34
const response = await fetch(address, { - Network accessline 34
const response = await fetch(address, {
company-analysis/scripts/fetch-public.ts
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Network accessline 26
const output = resolve(process.argv[3]); if (existsSync(output)) throw new Error("output directory already exists; snapshots are immutable"); const response = await fetch(address, { - Network accessline 26
const output = resolve(process.argv[3]); if (existsSync(output)) throw new Error("output directory already exists; snapshots are immutable"); const response = await fetch(address, { - Network accessline 27
if (existsSync(output)) throw new Error("output directory already exists; snapshots are immutable"); const response = await fetch(address, { redirect: "manual", - Network accessline 27
if (existsSync(output)) throw new Error("output directory already exists; snapshots are immutable"); const response = await fetch(address, { redirect: "manual", - Network accessline 28
const response = await fetch(address, { - Network accessline 28
const response = await fetch(address, {
company-analysis/tests/evidence.test.js
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 19
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(root, "sources")); (0, node_fs_1.writeFileSync)((0, node_path_1.join)(root, "sources", "raw"), source); const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(s - Network accessline 19
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(root, "sources")); (0, node_fs_1.writeFileSync)((0, node_path_1.join)(root, "sources", "raw"), source); const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(s - Network accessline 20
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(root, "sources", "raw"), source); const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(source), bytes: Buffer.byteLength(source) }); (0, node_fs_1.writeFi - Network accessline 20
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(root, "sources", "raw"), source); const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(source), bytes: Buffer.byteLength(source) }); (0, node_fs_1.writeFi - Network accessline 21
const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(source), bytes: Buffer.byteLength(source) }); - Network accessline 21
const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(source), bytes: Buffer.byteLength(source) }); - Network accessline 24
company: { name: "Apple Inc.", ticker: "AAPL", market: "NASDAQ", evidence_source_id: "filing" }, as_of: "2026-09-22", sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_qu - Network accessline 24
company: { name: "Apple Inc.", ticker: "AAPL", market: "NASDAQ", evidence_source_id: "filing" }, as_of: "2026-09-22", sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_qu - Network accessline 25
as_of: "2026-09-22", sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_quote: "2026-09-20", file: "sources/raw", sha256: sha(source), capture_file: "sources/captu - Network accessline 25
as_of: "2026-09-22", sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_quote: "2026-09-20", file: "sources/raw", sha256: sha(source), capture_file: "sources/captu - Network accessline 26
sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_quote: "2026-09-20", - Network accessline 26
sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_quote: "2026-09-20", - Network accessline 102
const mutations = [ ["tampered raw hash", (d) => { d.sources[0].sha256 = "0".repeat(64); }], ["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], - Network accessline 102
const mutations = [ ["tampered raw hash", (d) => { d.sources[0].sha256 = "0".repeat(64); }], ["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], - Network accessline 103
["tampered raw hash", (d) => { d.sources[0].sha256 = "0".repeat(64); }], ["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], ["future publication", (d) => { d.sources[0].published_at = "2026-09-23"; - Network accessline 103
["tampered raw hash", (d) => { d.sources[0].sha256 = "0".repeat(64); }], ["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], ["future publication", (d) => { d.sources[0].published_at = "2026-09-23"; - Network accessline 104
["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], - Network accessline 104
["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], - Network accessline 117
[Credential-related source omitted] - Network accessline 117
[Credential-related source omitted] - Network accessline 118
[Credential-related source omitted] - Network accessline 118
[Credential-related source omitted] - Network accessline 119
[Credential-related source omitted] - Network accessline 119
[Credential-related source omitted] - Access to secretsline 119
[Credential-related source omitted] - Access to secretsline 119
[Credential-related source omitted] - Network accessline 185
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(f.root, "sources", "other")); (0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "other", "raw"), other); const capture = JSON.stringify({ url: "https://examp - Network accessline 185
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(f.root, "sources", "other")); (0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "other", "raw"), other); const capture = JSON.stringify({ url: "https://examp - Network accessline 186
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "other", "raw"), other); const capture = JSON.stringify({ url: "https://example.org/other", sha256: sha(other), bytes: Buffer.byteLength(other) }); (0, no - Network accessline 186
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "other", "raw"), other); const capture = JSON.stringify({ url: "https://example.org/other", sha256: sha(other), bytes: Buffer.byteLength(other) }); (0, no - Network accessline 187
const capture = JSON.stringify({ url: "https://example.org/other", sha256: sha(other), bytes: Buffer.byteLength(other) }); - Network accessline 187
const capture = JSON.stringify({ url: "https://example.org/other", sha256: sha(other), bytes: Buffer.byteLength(other) }); - Network accessline 188
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "other", "capture.json"), capture); f.data.sources.push({ id: "other", url: "https://example.org/other", published_at: "2026-09-20", published_date_quote: "2026-0 - Network accessline 188
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "other", "capture.json"), capture); f.data.sources.push({ id: "other", url: "https://example.org/other", published_at: "2026-09-20", published_date_quote: "2026-0 - Network accessline 189
f.data.sources.push({ id: "other", url: "https://example.org/other", published_at: "2026-09-20", published_date_quote: "2026-09-20", - Network accessline 189
f.data.sources.push({ id: "other", url: "https://example.org/other", published_at: "2026-09-20", published_date_quote: "2026-09-20", - Network accessline 217
const parent = (0, node_fs_1.readFileSync)((0, node_path_1.join)(f.root, "sources", "raw"), "utf8"); f.data.sources[0].sha256 = sha(parent); const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do - Network accessline 217
const parent = (0, node_fs_1.readFileSync)((0, node_path_1.join)(f.root, "sources", "raw"), "utf8"); f.data.sources[0].sha256 = sha(parent); const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do - Network accessline 218
f.data.sources[0].sha256 = sha(parent); const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997", sha256: sha(parent), bytes: Buffer.byteLength(parent) }); (0, node_fs_1.write - Network accessline 218
f.data.sources[0].sha256 = sha(parent); const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997", sha256: sha(parent), bytes: Buffer.byteLength(parent) }); (0, node_fs_1.write - Network accessline 219
const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997", sha256: sha(parent), bytes: Buffer.byteLength(parent) }); - Network accessline 219
const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997", sha256: sha(parent), bytes: Buffer.byteLength(parent) }); - Network accessline 220
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "capture.json"), parentCapture); f.data.sources[0].url = "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997"; f.data.sources[0].capture_sha256 = - Network accessline 220
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "capture.json"), parentCapture); f.data.sources[0].url = "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997"; f.data.sources[0].capture_sha256 = - Network accessline 221
f.data.sources[0].url = "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997"; - Network accessline 221
f.data.sources[0].url = "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997"; - Network accessline 222
f.data.sources[0].capture_sha256 = sha(parentCapture); const row = (label, value) => `<table><tr><td>${label}</td><td>${value}</td><td>백만원</td></tr></table>`; add("balance", "https://dart.fss.or.kr/report/viewer.do?rcpNo=202 - Network accessline 222
f.data.sources[0].capture_sha256 = sha(parentCapture); const row = (label, value) => `<table><tr><td>${label}</td><td>${value}</td><td>백만원</td></tr></table>`; add("balance", "https://dart.fss.or.kr/report/viewer.do?rcpNo=202 - Network accessline 223
const row = (label, value) => `<table><tr><td>${label}</td><td>${value}</td><td>백만원</td></tr></table>`; add("balance", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=20&offset=379792&length=42569& - Network accessline 223
const row = (label, value) => `<table><tr><td>${label}</td><td>${value}</td><td>백만원</td></tr></table>`; add("balance", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=20&offset=379792&length=42569& - Network accessline 224
add("balance", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=20&offset=379792&length=42569&dtd=dart4.xsd", row("자산", "73,696,206"), { filing_index_source_id: "filing" }); - Network accessline 224
add("balance", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=20&offset=379792&length=42569&dtd=dart4.xsd", row("자산", "73,696,206"), { filing_index_source_id: "filing" }); - Network accessline 225
add("income", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=422361&length=43599&dtd=dart4.xsd", row("매출", "23,826,468"), { filing_index_source_id: "filing" }); - Network accessline 225
add("income", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=422361&length=43599&dtd=dart4.xsd", row("매출", "23,826,468"), { filing_index_source_id: "filing" }); - Network accessline 226
add("cash", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=24&offset=589662&length=27388&dtd=dart4.xsd", row("영업현금흐름", "3,552,902"), { filing_index_source_id: "filing" }); - Network accessline 226
add("cash", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=24&offset=589662&length=27388&dtd=dart4.xsd", row("영업현금흐름", "3,552,902"), { filing_index_source_id: "filing" }); - Network accessline 233
source.text_sha256 = sha((0, node_fs_1.readFileSync)((0, node_path_1.join)(folder, "rows.txt"))); } add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre - Network accessline 233
source.text_sha256 = sha((0, node_fs_1.readFileSync)((0, node_path_1.join)(folder, "rows.txt"))); } add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre - Network accessline 234
} add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre World Asia 2026 (DCWA 2026), held September 29–30 at Marina Bay Sands.", { published_at: "2026-09-21", pub - Network accessline 234
} add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre World Asia 2026 (DCWA 2026), held September 29–30 at Marina Bay Sands.", { published_at: "2026-09-21", pub - Network accessline 235
add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre World Asia 2026 (DCWA 2026), held September 29–30 at Marina Bay Sands.", { published_at: "2026-09-21", published_dat - Network accessline 235
add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre World Asia 2026 (DCWA 2026), held September 29–30 at Marina Bay Sands.", { published_at: "2026-09-21", published_dat - Network accessline 260
f.data.sources.find((source) => source.id === "balance").text_sha256 = sha(balanceRows); const balance = f.data.sources.find((source) => source.id === "balance"); balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpNo= - Network accessline 260
f.data.sources.find((source) => source.id === "balance").text_sha256 = sha(balanceRows); const balance = f.data.sources.find((source) => source.id === "balance"); balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpNo= - Network accessline 261
const balance = f.data.sources.find((source) => source.id === "balance"); balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=379792&length=42569&dtd=dart4.xsd"; const w - Network accessline 261
const balance = f.data.sources.find((source) => source.id === "balance"); balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=379792&length=42569&dtd=dart4.xsd"; const w - Network accessline 262
balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=379792&length=42569&dtd=dart4.xsd"; - Network accessline 262
balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=379792&length=42569&dtd=dart4.xsd"; - Network accessline 282
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(f.root, "sources", "quote")); (0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "quote", "raw"), quote); const url = "https://api.nasdaq.com/api/quote/AAPL/i - Network accessline 282
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(f.root, "sources", "quote")); (0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "quote", "raw"), quote); const url = "https://api.nasdaq.com/api/quote/AAPL/i - Network accessline 283
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "quote", "raw"), quote); const url = "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks"; const capture = JSON.stringify({ url, sha256: sha(quo - Network accessline 283
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(f.root, "sources", "quote", "raw"), quote); const url = "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks"; const capture = JSON.stringify({ url, sha256: sha(quo - Network accessline 284
const url = "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks"; - Network accessline 284
const url = "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks";
company-analysis/tests/evidence.test.ts
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 16
mkdirSync(join(root, "sources")); writeFileSync(join(root, "sources", "raw"), source); const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(source), bytes: Buffer.byteLength(source) }); - Network accessline 16
mkdirSync(join(root, "sources")); writeFileSync(join(root, "sources", "raw"), source); const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(source), bytes: Buffer.byteLength(source) }); - Network accessline 17
writeFileSync(join(root, "sources", "raw"), source); const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(source), bytes: Buffer.byteLength(source) }); writeFileSync(join(root, "sources", "capture.json"), capt - Network accessline 17
writeFileSync(join(root, "sources", "raw"), source); const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(source), bytes: Buffer.byteLength(source) }); writeFileSync(join(root, "sources", "capture.json"), capt - Network accessline 18
const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(source), bytes: Buffer.byteLength(source) }); - Network accessline 18
const capture = JSON.stringify({ url: "https://example.org/filing", sha256: sha(source), bytes: Buffer.byteLength(source) }); - Network accessline 21
company: { name: "Apple Inc.", ticker: "AAPL", market: "NASDAQ", evidence_source_id: "filing" }, as_of: "2026-09-22", sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_quote: "20 - Network accessline 21
company: { name: "Apple Inc.", ticker: "AAPL", market: "NASDAQ", evidence_source_id: "filing" }, as_of: "2026-09-22", sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_quote: "20 - Network accessline 22
as_of: "2026-09-22", sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_quote: "2026-09-20", file: "sources/raw", sha256: sha(source), capture_file: "sources/capture.json", capt - Network accessline 22
as_of: "2026-09-22", sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_quote: "2026-09-20", file: "sources/raw", sha256: sha(source), capture_file: "sources/capture.json", capt - Network accessline 23
sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_quote: "2026-09-20", - Network accessline 23
sources: [{ id: "filing", url: "https://example.org/filing", published_at: "2026-09-20", published_date_quote: "2026-09-20", - Network accessline 94
const mutations: [string, (data: any) => void][] = [ ["tampered raw hash", (d) => { d.sources[0].sha256 = "0".repeat(64); }], ["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], - Network accessline 94
const mutations: [string, (data: any) => void][] = [ ["tampered raw hash", (d) => { d.sources[0].sha256 = "0".repeat(64); }], ["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], - Network accessline 95
["tampered raw hash", (d) => { d.sources[0].sha256 = "0".repeat(64); }], ["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], ["future publication", (d) => { d.sources[0].published_at = "2026-09-23"; }], - Network accessline 95
["tampered raw hash", (d) => { d.sources[0].sha256 = "0".repeat(64); }], ["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], ["future publication", (d) => { d.sources[0].published_at = "2026-09-23"; }], - Network accessline 96
["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], - Network accessline 96
["swapped capture URL", (d) => { d.sources[0].url = "https://example.org/other"; }], - Network accessline 109
[Credential-related source omitted] - Network accessline 109
[Credential-related source omitted] - Network accessline 110
[Credential-related source omitted] - Network accessline 110
[Credential-related source omitted] - Network accessline 111
[Credential-related source omitted] - Network accessline 111
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Network accessline 173
mkdirSync(join(f.root, "sources", "other")); writeFileSync(join(f.root, "sources", "other", "raw"), other); const capture = JSON.stringify({ url: "https://example.org/other", sha256: sha(other), bytes: Buffer.byteLength(other) }); - Network accessline 173
mkdirSync(join(f.root, "sources", "other")); writeFileSync(join(f.root, "sources", "other", "raw"), other); const capture = JSON.stringify({ url: "https://example.org/other", sha256: sha(other), bytes: Buffer.byteLength(other) }); - Network accessline 174
writeFileSync(join(f.root, "sources", "other", "raw"), other); const capture = JSON.stringify({ url: "https://example.org/other", sha256: sha(other), bytes: Buffer.byteLength(other) }); writeFileSync(join(f.root, "sources", "other", - Network accessline 174
writeFileSync(join(f.root, "sources", "other", "raw"), other); const capture = JSON.stringify({ url: "https://example.org/other", sha256: sha(other), bytes: Buffer.byteLength(other) }); writeFileSync(join(f.root, "sources", "other", - Network accessline 175
const capture = JSON.stringify({ url: "https://example.org/other", sha256: sha(other), bytes: Buffer.byteLength(other) }); - Network accessline 175
const capture = JSON.stringify({ url: "https://example.org/other", sha256: sha(other), bytes: Buffer.byteLength(other) }); - Network accessline 176
writeFileSync(join(f.root, "sources", "other", "capture.json"), capture); f.data.sources.push({ id: "other", url: "https://example.org/other", published_at: "2026-09-20", published_date_quote: "2026-09-20", file: "sources/other/ra - Network accessline 176
writeFileSync(join(f.root, "sources", "other", "capture.json"), capture); f.data.sources.push({ id: "other", url: "https://example.org/other", published_at: "2026-09-20", published_date_quote: "2026-09-20", file: "sources/other/ra - Network accessline 177
f.data.sources.push({ id: "other", url: "https://example.org/other", published_at: "2026-09-20", published_date_quote: "2026-09-20", - Network accessline 177
f.data.sources.push({ id: "other", url: "https://example.org/other", published_at: "2026-09-20", published_date_quote: "2026-09-20", - Network accessline 203
const parent = readFileSync(join(f.root, "sources", "raw"), "utf8"); f.data.sources[0].sha256 = sha(parent); const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997", sha256: sha(pare - Network accessline 203
const parent = readFileSync(join(f.root, "sources", "raw"), "utf8"); f.data.sources[0].sha256 = sha(parent); const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997", sha256: sha(pare - Network accessline 204
f.data.sources[0].sha256 = sha(parent); const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997", sha256: sha(parent), bytes: Buffer.byteLength(parent) }); writeFileSync(join(f.root, - Network accessline 204
f.data.sources[0].sha256 = sha(parent); const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997", sha256: sha(parent), bytes: Buffer.byteLength(parent) }); writeFileSync(join(f.root, - Network accessline 205
const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997", sha256: sha(parent), bytes: Buffer.byteLength(parent) }); - Network accessline 205
const parentCapture = JSON.stringify({ url: "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997", sha256: sha(parent), bytes: Buffer.byteLength(parent) }); - Network accessline 206
writeFileSync(join(f.root, "sources", "capture.json"), parentCapture); f.data.sources[0].url = "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997"; f.data.sources[0].capture_sha256 = sha(parentCapture); - Network accessline 206
writeFileSync(join(f.root, "sources", "capture.json"), parentCapture); f.data.sources[0].url = "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997"; f.data.sources[0].capture_sha256 = sha(parentCapture); - Network accessline 207
f.data.sources[0].url = "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997"; - Network accessline 207
f.data.sources[0].url = "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260814001997"; - Network accessline 208
f.data.sources[0].capture_sha256 = sha(parentCapture); const row = (label: string, value: string) => `<table><tr><td>${label}</td><td>${value}</td><td>백만원</td></tr></table>`; add("balance", "https://dart.fss.or.kr/report/viewer.do?r - Network accessline 208
f.data.sources[0].capture_sha256 = sha(parentCapture); const row = (label: string, value: string) => `<table><tr><td>${label}</td><td>${value}</td><td>백만원</td></tr></table>`; add("balance", "https://dart.fss.or.kr/report/viewer.do?r - Network accessline 209
const row = (label: string, value: string) => `<table><tr><td>${label}</td><td>${value}</td><td>백만원</td></tr></table>`; add("balance", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=20&offset=379792&l - Network accessline 209
const row = (label: string, value: string) => `<table><tr><td>${label}</td><td>${value}</td><td>백만원</td></tr></table>`; add("balance", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=20&offset=379792&l - Network accessline 210
add("balance", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=20&offset=379792&length=42569&dtd=dart4.xsd", row("자산", "73,696,206"), { filing_index_source_id: "filing" }); - Network accessline 210
add("balance", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=20&offset=379792&length=42569&dtd=dart4.xsd", row("자산", "73,696,206"), { filing_index_source_id: "filing" }); - Network accessline 211
add("income", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=422361&length=43599&dtd=dart4.xsd", row("매출", "23,826,468"), { filing_index_source_id: "filing" }); - Network accessline 211
add("income", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=422361&length=43599&dtd=dart4.xsd", row("매출", "23,826,468"), { filing_index_source_id: "filing" }); - Network accessline 212
add("cash", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=24&offset=589662&length=27388&dtd=dart4.xsd", row("영업현금흐름", "3,552,902"), { filing_index_source_id: "filing" }); - Network accessline 212
add("cash", "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=24&offset=589662&length=27388&dtd=dart4.xsd", row("영업현금흐름", "3,552,902"), { filing_index_source_id: "filing" }); - Network accessline 219
source.text_sha256 = sha(readFileSync(join(folder, "rows.txt"))); } add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre World Asia 2026 (DCWA 2026), held Septem - Network accessline 219
source.text_sha256 = sha(readFileSync(join(folder, "rows.txt"))); } add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre World Asia 2026 (DCWA 2026), held Septem - Network accessline 220
} add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre World Asia 2026 (DCWA 2026), held September 29–30 at Marina Bay Sands.", { published_at: "2026-09-21", publish - Network accessline 220
} add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre World Asia 2026 (DCWA 2026), held September 29–30 at Marina Bay Sands.", { published_at: "2026-09-21", publish - Network accessline 221
add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre World Asia 2026 (DCWA 2026), held September 29–30 at Marina Bay Sands.", { published_at: "2026-09-21", published_dat - Network accessline 221
add("event", "https://www.lg.com/global/newsroom/news/corporate/lg-data-centre/", "LG Electronics Sep. 21, 2026 Data Centre World Asia 2026 (DCWA 2026), held September 29–30 at Marina Bay Sands.", { published_at: "2026-09-21", published_dat - Network accessline 246
f.data.sources.find((source: any) => source.id === "balance").text_sha256 = sha(balanceRows); const balance = f.data.sources.find((source: any) => source.id === "balance"); balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpN - Network accessline 246
f.data.sources.find((source: any) => source.id === "balance").text_sha256 = sha(balanceRows); const balance = f.data.sources.find((source: any) => source.id === "balance"); balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpN - Network accessline 247
const balance = f.data.sources.find((source: any) => source.id === "balance"); balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=379792&length=42569&dtd=dart4.xsd"; const wron - Network accessline 247
const balance = f.data.sources.find((source: any) => source.id === "balance"); balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=379792&length=42569&dtd=dart4.xsd"; const wron - Network accessline 248
balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=379792&length=42569&dtd=dart4.xsd"; - Network accessline 248
balance.url = "https://dart.fss.or.kr/report/viewer.do?rcpNo=20260814001997&dcmNo=11531711&eleId=21&offset=379792&length=42569&dtd=dart4.xsd"; - Network accessline 265
mkdirSync(join(f.root, "sources", "quote")); writeFileSync(join(f.root, "sources", "quote", "raw"), quote); const url = "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks"; - Network accessline 265
mkdirSync(join(f.root, "sources", "quote")); writeFileSync(join(f.root, "sources", "quote", "raw"), quote); const url = "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks"; - Network accessline 266
writeFileSync(join(f.root, "sources", "quote", "raw"), quote); const url = "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks"; const capture = JSON.stringify({ url, sha256: sha(quote), bytes: Buffer.byteLength(quote), re - Network accessline 266
writeFileSync(join(f.root, "sources", "quote", "raw"), quote); const url = "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks"; const capture = JSON.stringify({ url, sha256: sha(quote), bytes: Buffer.byteLength(quote), re - Network accessline 267
const url = "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks"; - Network accessline 267
const url = "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks";
company-analysis/tests/live-multi.test.ts
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 16
const cases = [ { name: "Apple Inc.", ticker: "AAPL", market: "NASDAQ", identity: "https://data.sec.gov/submissions/CIK0000320193.json", - Network accessline 16
const cases = [ { name: "Apple Inc.", ticker: "AAPL", market: "NASDAQ", identity: "https://data.sec.gov/submissions/CIK0000320193.json", - Network accessline 17
{ name: "Apple Inc.", ticker: "AAPL", market: "NASDAQ", identity: "https://data.sec.gov/submissions/CIK0000320193.json", release: "https://www.apple.com/newsroom/2026/07/apple-reports-third-quarter-results/", - Network accessline 17
{ name: "Apple Inc.", ticker: "AAPL", market: "NASDAQ", identity: "https://data.sec.gov/submissions/CIK0000320193.json", release: "https://www.apple.com/newsroom/2026/07/apple-reports-third-quarter-results/", - Network accessline 18
identity: "https://data.sec.gov/submissions/CIK0000320193.json", - Network accessline 18
identity: "https://data.sec.gov/submissions/CIK0000320193.json", - Network accessline 19
release: "https://www.apple.com/newsroom/2026/07/apple-reports-third-quarter-results/", - Network accessline 19
release: "https://www.apple.com/newsroom/2026/07/apple-reports-third-quarter-results/", - Network accessline 20
quoteUrl: "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks", provider: "nasdaq", - Network accessline 20
quoteUrl: "https://api.nasdaq.com/api/quote/AAPL/info?assetclass=stocks", provider: "nasdaq", - Network accessline 21
date: "2026-07-30", claim: "quarterly revenue of $109.4 billion", period: "FY2026 Q3", unit: "USD billion", scope: "company" }, { name: "Microsoft", ticker: "MSFT", market: "NASDAQ", identity: "https://www.microsoft.com/en-us/investor - Network accessline 21
date: "2026-07-30", claim: "quarterly revenue of $109.4 billion", period: "FY2026 Q3", unit: "USD billion", scope: "company" }, { name: "Microsoft", ticker: "MSFT", market: "NASDAQ", identity: "https://www.microsoft.com/en-us/investor - Network accessline 22
{ name: "Microsoft", ticker: "MSFT", market: "NASDAQ", identity: "https://www.microsoft.com/en-us/investor/earnings/fy-2026-q4/press-release-webcast", release: "https://www.microsoft.com/en-us/investor/earnings/fy-2026-q4/press-rele - Network accessline 22
{ name: "Microsoft", ticker: "MSFT", market: "NASDAQ", identity: "https://www.microsoft.com/en-us/investor/earnings/fy-2026-q4/press-release-webcast", release: "https://www.microsoft.com/en-us/investor/earnings/fy-2026-q4/press-rele - Network accessline 23
identity: "https://www.microsoft.com/en-us/investor/earnings/fy-2026-q4/press-release-webcast", - Network accessline 23
identity: "https://www.microsoft.com/en-us/investor/earnings/fy-2026-q4/press-release-webcast", - Network accessline 24
release: "https://www.microsoft.com/en-us/investor/earnings/fy-2026-q4/press-release-webcast", - Network accessline 24
release: "https://www.microsoft.com/en-us/investor/earnings/fy-2026-q4/press-release-webcast", - Network accessline 25
quoteUrl: "https://api.nasdaq.com/api/quote/MSFT/info?assetclass=stocks", provider: "nasdaq", - Network accessline 25
quoteUrl: "https://api.nasdaq.com/api/quote/MSFT/info?assetclass=stocks", provider: "nasdaq", - Network accessline 26
date: "2026-07-29", claim: "Revenue was $90.0 billion", period: "FY2026 Q4", unit: "USD billion", scope: "company" }, { name: "Samsung Electronics", ticker: "005930", market: "KRX", identity: "https://www.samsung.com/global/ir/stock-i - Network accessline 26
date: "2026-07-29", claim: "Revenue was $90.0 billion", period: "FY2026 Q4", unit: "USD billion", scope: "company" }, { name: "Samsung Electronics", ticker: "005930", market: "KRX", identity: "https://www.samsung.com/global/ir/stock-i - Network accessline 27
{ name: "Samsung Electronics", ticker: "005930", market: "KRX", identity: "https://www.samsung.com/global/ir/stock-information/listing-Info/", release: "https://news.samsung.com/global/samsung-electronics-announces-second-quarter-20 - Network accessline 27
{ name: "Samsung Electronics", ticker: "005930", market: "KRX", identity: "https://www.samsung.com/global/ir/stock-information/listing-Info/", release: "https://news.samsung.com/global/samsung-electronics-announces-second-quarter-20 - Network accessline 28
identity: "https://www.samsung.com/global/ir/stock-information/listing-Info/", - Network accessline 28
identity: "https://www.samsung.com/global/ir/stock-information/listing-Info/", - Network accessline 29
release: "https://news.samsung.com/global/samsung-electronics-announces-second-quarter-2026-results", - Network accessline 29
release: "https://news.samsung.com/global/samsung-electronics-announces-second-quarter-2026-results", - Network accessline 30
quoteUrl: "https://m.stock.naver.com/api/stock/005930/basic", provider: "naver-kr", - Network accessline 30
quoteUrl: "https://m.stock.naver.com/api/stock/005930/basic", provider: "naver-kr",
company-analysis/tests/run_tests.py
consumer-price-safety-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/consumer-price-safety-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/consumer-price-safety-search/instruction.md.
consumer-price-safety-search/instruction.md
- Network accessline 24
- 참가격: https://www.data.go.kr/dataset/3043385/openapi.do - Network accessline 24
- 참가격: https://www.data.go.kr/dataset/3043385/openapi.do - Network accessline 25
- 소비자24 목록: https://www.consumer.go.kr/user/ftc/consumer/openApiSvcUser/120/selectOpenApiSvcList.do - Network accessline 25
- 소비자24 목록: https://www.consumer.go.kr/user/ftc/consumer/openApiSvcUser/120/selectOpenApiSvcList.do
corporate-registration-consulting/SKILL.md
- Network accessline 34
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/corporate-registration-consulting/instruction.md. - Network accessline 34
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/corporate-registration-consulting/instruction.md.
corporate-registration-consulting/instruction.md
- Network accessline 121
- `templates/official-form-sources.md`: 저장된 공식/공개 HWP 양식 목록, 문서별 양식 경로, 공식 출처 대조 메모 - 대법원 인터넷등기소: https://www.iros.go.kr (등기신청양식, 첨부서면예시) - Network accessline 121
- `templates/official-form-sources.md`: 저장된 공식/공개 HWP 양식 목록, 문서별 양식 경로, 공식 출처 대조 메모 - 대법원 인터넷등기소: https://www.iros.go.kr (등기신청양식, 첨부서면예시) - Network accessline 122
- 대법원 인터넷등기소: https://www.iros.go.kr (등기신청양식, 첨부서면예시) - Network accessline 122
- 대법원 인터넷등기소: https://www.iros.go.kr (등기신청양식, 첨부서면예시) - Network accessline 123
- 온라인법인설립시스템: https://www.startbiz.go.kr - Network accessline 123
- 온라인법인설립시스템: https://www.startbiz.go.kr - Network accessline 124
- 위택스: https://www.wetax.go.kr - Network accessline 124
- 위택스: https://www.wetax.go.kr - Network accessline 125
- 국가법령정보센터 지방세법/지방세법 시행령/상법/상업등기법/상업등기규칙/상업등기신청서의 양식에 관한 예규: https://www.law.go.kr - Network accessline 125
- 국가법령정보센터 지방세법/지방세법 시행령/상법/상업등기법/상업등기규칙/상업등기신청서의 양식에 관한 예규: https://www.law.go.kr - Network accessline 126
- 국세청 창업중소기업 세액감면 안내 및 조세특례제한법 제6조: https://www.nts.go.kr / https://www.law.go.kr - Network accessline 126
- 국세청 창업중소기업 세액감면 안내 및 조세특례제한법 제6조: https://www.nts.go.kr / https://www.law.go.kr
corporate-registration-consulting/scripts/fill_official_hwp.py
corporate-registration-consulting/templates/attachment-hwp/source-manifest.json
- Network accessline 5
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 5
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 6
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "정관.hwp", - Network accessline 6
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "정관.hwp", - Network accessline 7
"page_url": "https://wishright81.tistory.com/23", - Network accessline 7
"page_url": "https://wishright81.tistory.com/23", - Network accessline 8
"original_name": "정관.hwp", "url": "https://blog.kakaocdn.net/dna/kPhhH/btqvUyGvYvl/AAAAAAAAAAAAAAAAAAAAAMldtkYuC46ZKQT-PZBrQ5xlYghtGK_BcJDzi8M3oORj/%EC%A0%95%EA%B4%80.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599& - Network accessline 8
"original_name": "정관.hwp", "url": "https://blog.kakaocdn.net/dna/kPhhH/btqvUyGvYvl/AAAAAAAAAAAAAAAAAAAAAMldtkYuC46ZKQT-PZBrQ5xlYghtGK_BcJDzi8M3oORj/%EC%A0%95%EA%B4%80.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599& - Network accessline 9
"url": "https://blog.kakaocdn.net/dna/kPhhH/btqvUyGvYvl/AAAAAAAAAAAAAAAAAAAAAMldtkYuC46ZKQT-PZBrQ5xlYghtGK_BcJDzi8M3oORj/%EC%A0%95%EA%B4%80.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&allow_ip=&allow_referer=&signatur - Network accessline 9
"url": "https://blog.kakaocdn.net/dna/kPhhH/btqvUyGvYvl/AAAAAAAAAAAAAAAAAAAAAMldtkYuC46ZKQT-PZBrQ5xlYghtGK_BcJDzi8M3oORj/%EC%A0%95%EA%B4%80.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&allow_ip=&allow_referer=&signatur - Network accessline 14
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 14
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 15
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "주식발행사항동의서.hwp", - Network accessline 15
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "주식발행사항동의서.hwp", - Network accessline 16
"page_url": "https://wishright81.tistory.com/23", - Network accessline 16
"page_url": "https://wishright81.tistory.com/23", - Network accessline 17
"original_name": "주식발행사항동의서.hwp", "url": "https://blog.kakaocdn.net/dna/uWZvQ/btqvTVWemNI/AAAAAAAAAAAAAAAAAAAAAAv4YzUGetrPiGJ6nrBjJ0mHUZrBAHcP2SNRqEK06V3E/%EC%A3%BC%EC%8B%9D%EB%B0%9C%ED%96%89%EC%82%AC%ED%95%AD%EB%8F%99%EC%9D%98%EC%84% - Network accessline 17
"original_name": "주식발행사항동의서.hwp", "url": "https://blog.kakaocdn.net/dna/uWZvQ/btqvTVWemNI/AAAAAAAAAAAAAAAAAAAAAAv4YzUGetrPiGJ6nrBjJ0mHUZrBAHcP2SNRqEK06V3E/%EC%A3%BC%EC%8B%9D%EB%B0%9C%ED%96%89%EC%82%AC%ED%95%AD%EB%8F%99%EC%9D%98%EC%84% - Network accessline 18
"url": "https://blog.kakaocdn.net/dna/uWZvQ/btqvTVWemNI/AAAAAAAAAAAAAAAAAAAAAAv4YzUGetrPiGJ6nrBjJ0mHUZrBAHcP2SNRqEK06V3E/%EC%A3%BC%EC%8B%9D%EB%B0%9C%ED%96%89%EC%82%AC%ED%95%AD%EB%8F%99%EC%9D%98%EC%84%9C.hwp?credential=yqXZFxpELC7KVnFOS48ylb - Network accessline 18
"url": "https://blog.kakaocdn.net/dna/uWZvQ/btqvTVWemNI/AAAAAAAAAAAAAAAAAAAAAAv4YzUGetrPiGJ6nrBjJ0mHUZrBAHcP2SNRqEK06V3E/%EC%A3%BC%EC%8B%9D%EB%B0%9C%ED%96%89%EC%82%AC%ED%95%AD%EB%8F%99%EC%9D%98%EC%84%9C.hwp?credential=yqXZFxpELC7KVnFOS48ylb - Network accessline 23
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 23
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 24
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "주식인수증.hwp", - Network accessline 24
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "주식인수증.hwp", - Network accessline 25
"page_url": "https://wishright81.tistory.com/23", - Network accessline 25
"page_url": "https://wishright81.tistory.com/23", - Network accessline 26
"original_name": "주식인수증.hwp", "url": "https://blog.kakaocdn.net/dna/cFhyio/btqvUPOKPBe/AAAAAAAAAAAAAAAAAAAAAFzsXsWe7nQ6V43IEUWYpDMn7zjIQs_36miFqzw0x2s7/%EC%A3%BC%EC%8B%9D%EC%9D%B8%EC%88%98%EC%A6%9D.hwp?credential=yqXZFxpELC7KVnFOS48yl - Network accessline 26
"original_name": "주식인수증.hwp", "url": "https://blog.kakaocdn.net/dna/cFhyio/btqvUPOKPBe/AAAAAAAAAAAAAAAAAAAAAFzsXsWe7nQ6V43IEUWYpDMn7zjIQs_36miFqzw0x2s7/%EC%A3%BC%EC%8B%9D%EC%9D%B8%EC%88%98%EC%A6%9D.hwp?credential=yqXZFxpELC7KVnFOS48yl - Network accessline 27
"url": "https://blog.kakaocdn.net/dna/cFhyio/btqvUPOKPBe/AAAAAAAAAAAAAAAAAAAAAFzsXsWe7nQ6V43IEUWYpDMn7zjIQs_36miFqzw0x2s7/%EC%A3%BC%EC%8B%9D%EC%9D%B8%EC%88%98%EC%A6%9D.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&allow - Network accessline 27
"url": "https://blog.kakaocdn.net/dna/cFhyio/btqvUPOKPBe/AAAAAAAAAAAAAAAAAAAAAFzsXsWe7nQ6V43IEUWYpDMn7zjIQs_36miFqzw0x2s7/%EC%A3%BC%EC%8B%9D%EC%9D%B8%EC%88%98%EC%A6%9D.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&allow - Network accessline 32
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 32
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 33
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "발기인총회 기간단축 동의서.hwp", - Network accessline 33
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "발기인총회 기간단축 동의서.hwp", - Network accessline 34
"page_url": "https://wishright81.tistory.com/23", - Network accessline 34
"page_url": "https://wishright81.tistory.com/23", - Network accessline 35
"original_name": "발기인총회 기간단축 동의서.hwp", "url": "https://blog.kakaocdn.net/dna/blsbID/btqvTVhH67A/AAAAAAAAAAAAAAAAAAAAAH87uTWGvHw4EvRi6tHMRf6XpLm2pCDhng0o98F5RteI/%EB%B0%9C%EA%B8%B0%EC%9D%B8%EC%B4%9D%ED%9A%8C%20%EA%B8%B0%EA%B0%84%EB%8B% - Network accessline 35
"original_name": "발기인총회 기간단축 동의서.hwp", "url": "https://blog.kakaocdn.net/dna/blsbID/btqvTVhH67A/AAAAAAAAAAAAAAAAAAAAAH87uTWGvHw4EvRi6tHMRf6XpLm2pCDhng0o98F5RteI/%EB%B0%9C%EA%B8%B0%EC%9D%B8%EC%B4%9D%ED%9A%8C%20%EA%B8%B0%EA%B0%84%EB%8B% - Network accessline 36
"url": "https://blog.kakaocdn.net/dna/blsbID/btqvTVhH67A/AAAAAAAAAAAAAAAAAAAAAH87uTWGvHw4EvRi6tHMRf6XpLm2pCDhng0o98F5RteI/%EB%B0%9C%EA%B8%B0%EC%9D%B8%EC%B4%9D%ED%9A%8C%20%EA%B8%B0%EA%B0%84%EB%8B%A8%EC%B6%95%20%EB%8F%99%EC%9D%98%EC%84%9C.hwp - Network accessline 36
"url": "https://blog.kakaocdn.net/dna/blsbID/btqvTVhH67A/AAAAAAAAAAAAAAAAAAAAAH87uTWGvHw4EvRi6tHMRf6XpLm2pCDhng0o98F5RteI/%EB%B0%9C%EA%B8%B0%EC%9D%B8%EC%B4%9D%ED%9A%8C%20%EA%B8%B0%EA%B0%84%EB%8B%A8%EC%B6%95%20%EB%8F%99%EC%9D%98%EC%84%9C.hwp - Network accessline 41
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 41
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 42
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "조사보고서.hwp", - Network accessline 42
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "조사보고서.hwp", - Network accessline 43
"page_url": "https://wishright81.tistory.com/23", - Network accessline 43
"page_url": "https://wishright81.tistory.com/23", - Network accessline 44
"original_name": "조사보고서.hwp", "url": "https://blog.kakaocdn.net/dna/bzY2if/btqvUQ1dSyn/AAAAAAAAAAAAAAAAAAAAAKsezsmgGy42M8uVt_hjH5SKf4ix8QS2uqM70wZF8RsY/%EC%A1%B0%EC%82%AC%EB%B3%B4%EA%B3%A0%EC%84%9C.hwp?credential=yqXZFxpELC7KVnFOS48yl - Network accessline 44
"original_name": "조사보고서.hwp", "url": "https://blog.kakaocdn.net/dna/bzY2if/btqvUQ1dSyn/AAAAAAAAAAAAAAAAAAAAAKsezsmgGy42M8uVt_hjH5SKf4ix8QS2uqM70wZF8RsY/%EC%A1%B0%EC%82%AC%EB%B3%B4%EA%B3%A0%EC%84%9C.hwp?credential=yqXZFxpELC7KVnFOS48yl - Network accessline 45
"url": "https://blog.kakaocdn.net/dna/bzY2if/btqvUQ1dSyn/AAAAAAAAAAAAAAAAAAAAAKsezsmgGy42M8uVt_hjH5SKf4ix8QS2uqM70wZF8RsY/%EC%A1%B0%EC%82%AC%EB%B3%B4%EA%B3%A0%EC%84%9C.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&allow - Network accessline 45
"url": "https://blog.kakaocdn.net/dna/bzY2if/btqvUQ1dSyn/AAAAAAAAAAAAAAAAAAAAAKsezsmgGy42M8uVt_hjH5SKf4ix8QS2uqM70wZF8RsY/%EC%A1%B0%EC%82%AC%EB%B3%B4%EA%B3%A0%EC%84%9C.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&allow - Network accessline 50
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 50
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 51
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "취임승낙서(감사).hwp", - Network accessline 51
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "취임승낙서(감사).hwp", - Network accessline 52
"page_url": "https://wishright81.tistory.com/23", - Network accessline 52
"page_url": "https://wishright81.tistory.com/23", - Network accessline 53
"original_name": "취임승낙서(감사).hwp", "url": "https://blog.kakaocdn.net/dna/lmctu/btqvWp2GinG/AAAAAAAAAAAAAAAAAAAAAPjANE6MFT3qQ8FxVKmZtyWc3tp76wLpjBvx59m-Znka/%EC%B7%A8%EC%9E%84%EC%8A%B9%EB%82%99%EC%84%9C(%EA%B0%90%EC%82%AC).hwp?credentia - Network accessline 53
"original_name": "취임승낙서(감사).hwp", "url": "https://blog.kakaocdn.net/dna/lmctu/btqvWp2GinG/AAAAAAAAAAAAAAAAAAAAAPjANE6MFT3qQ8FxVKmZtyWc3tp76wLpjBvx59m-Znka/%EC%B7%A8%EC%9E%84%EC%8A%B9%EB%82%99%EC%84%9C(%EA%B0%90%EC%82%AC).hwp?credentia - Network accessline 54
"url": "https://blog.kakaocdn.net/dna/lmctu/btqvWp2GinG/AAAAAAAAAAAAAAAAAAAAAPjANE6MFT3qQ8FxVKmZtyWc3tp76wLpjBvx59m-Znka/%EC%B7%A8%EC%9E%84%EC%8A%B9%EB%82%99%EC%84%9C(%EA%B0%90%EC%82%AC).hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expir - Network accessline 54
"url": "https://blog.kakaocdn.net/dna/lmctu/btqvWp2GinG/AAAAAAAAAAAAAAAAAAAAAPjANE6MFT3qQ8FxVKmZtyWc3tp76wLpjBvx59m-Znka/%EC%B7%A8%EC%9E%84%EC%8A%B9%EB%82%99%EC%84%9C(%EA%B0%90%EC%82%AC).hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expir - Network accessline 59
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 59
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 60
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "취임승낙서(이사.대표이사).hwp", - Network accessline 60
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "취임승낙서(이사.대표이사).hwp", - Network accessline 61
"page_url": "https://wishright81.tistory.com/23", - Network accessline 61
"page_url": "https://wishright81.tistory.com/23", - Network accessline 62
"original_name": "취임승낙서(이사.대표이사).hwp", "url": "https://blog.kakaocdn.net/dna/bv9fD4/btqvTGrs7v5/AAAAAAAAAAAAAAAAAAAAAJxrlq6pQhlDomIn1bvd3jd_AVSEMyMmkUOriHaLw20E/%EC%B7%A8%EC%9E%84%EC%8A%B9%EB%82%99%EC%84%9C(%EC%9D%B4%EC%82%AC.%EB%8C%8 - Network accessline 62
"original_name": "취임승낙서(이사.대표이사).hwp", "url": "https://blog.kakaocdn.net/dna/bv9fD4/btqvTGrs7v5/AAAAAAAAAAAAAAAAAAAAAJxrlq6pQhlDomIn1bvd3jd_AVSEMyMmkUOriHaLw20E/%EC%B7%A8%EC%9E%84%EC%8A%B9%EB%82%99%EC%84%9C(%EC%9D%B4%EC%82%AC.%EB%8C%8 - Network accessline 63
"url": "https://blog.kakaocdn.net/dna/bv9fD4/btqvTGrs7v5/AAAAAAAAAAAAAAAAAAAAAJxrlq6pQhlDomIn1bvd3jd_AVSEMyMmkUOriHaLw20E/%EC%B7%A8%EC%9E%84%EC%8A%B9%EB%82%99%EC%84%9C(%EC%9D%B4%EC%82%AC.%EB%8C%80%ED%91%9C%EC%9D%B4%EC%82%AC).hwp?credential= - Network accessline 63
"url": "https://blog.kakaocdn.net/dna/bv9fD4/btqvTGrs7v5/AAAAAAAAAAAAAAAAAAAAAJxrlq6pQhlDomIn1bvd3jd_AVSEMyMmkUOriHaLw20E/%EC%B7%A8%EC%9E%84%EC%8A%B9%EB%82%99%EC%84%9C(%EC%9D%B4%EC%82%AC.%EB%8C%80%ED%91%9C%EC%9D%B4%EC%82%AC).hwp?credential= - Network accessline 68
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 68
{ "source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", - Network accessline 69
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "이사회의사록.hwp", - Network accessline 69
"source_name": "위시라이트 블로그 공개 주식회사 설립 첨부서류 HWP", "page_url": "https://wishright81.tistory.com/23", "original_name": "이사회의사록.hwp", - Network accessline 70
"page_url": "https://wishright81.tistory.com/23", - Network accessline 70
"page_url": "https://wishright81.tistory.com/23", - Network accessline 71
"original_name": "이사회의사록.hwp", "url": "https://blog.kakaocdn.net/dna/bR9OJQ/btqvUQNG0yZ/AAAAAAAAAAAAAAAAAAAAADd7sShQDM0Pv6_Df3LIL5H7wovm-TBSqcfMlaMpK_N2/%EC%9D%B4%EC%82%AC%ED%9A%8C%EC%9D%98%EC%82%AC%EB%A1%9D.hwp?credential=yqXZFxpELC7 - Network accessline 71
"original_name": "이사회의사록.hwp", "url": "https://blog.kakaocdn.net/dna/bR9OJQ/btqvUQNG0yZ/AAAAAAAAAAAAAAAAAAAAADd7sShQDM0Pv6_Df3LIL5H7wovm-TBSqcfMlaMpK_N2/%EC%9D%B4%EC%82%AC%ED%9A%8C%EC%9D%98%EC%82%AC%EB%A1%9D.hwp?credential=yqXZFxpELC7 - Network accessline 72
"url": "https://blog.kakaocdn.net/dna/bR9OJQ/btqvUQNG0yZ/AAAAAAAAAAAAAAAAAAAAADd7sShQDM0Pv6_Df3LIL5H7wovm-TBSqcfMlaMpK_N2/%EC%9D%B4%EC%82%AC%ED%9A%8C%EC%9D%98%EC%82%AC%EB%A1%9D.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239 - Network accessline 72
"url": "https://blog.kakaocdn.net/dna/bR9OJQ/btqvUQNG0yZ/AAAAAAAAAAAAAAAAAAAAADd7sShQDM0Pv6_Df3LIL5H7wovm-TBSqcfMlaMpK_N2/%EC%9D%B4%EC%82%AC%ED%9A%8C%EC%9D%98%EC%82%AC%EB%A1%9D.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239 - Network accessline 77
{ "source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB% - Network accessline 77
{ "source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB% - Network accessline 78
"source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%E - Network accessline 78
"source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%E - Network accessline 79
"page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0", - Network accessline 79
"page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0", - Network accessline 80
"original_name": "5. 발기인회의사록.hwp", "url": "https://blog.kakaocdn.net/dna/bwE3eR/btso6ks6Rz1/AAAAAAAAAAAAAAAAAAAAAGXjN0fmZvlgAGf9McFFnfvkxxo5s51mVwOvolJ6MSFN/5.%20%EB%B0%9C%EA%B8%B0%EC%9D%B8%ED%9A%8C%EC%9D%98%EC%82%AC%EB%A1%9D.hwp?cred - Network accessline 80
"original_name": "5. 발기인회의사록.hwp", "url": "https://blog.kakaocdn.net/dna/bwE3eR/btso6ks6Rz1/AAAAAAAAAAAAAAAAAAAAAGXjN0fmZvlgAGf9McFFnfvkxxo5s51mVwOvolJ6MSFN/5.%20%EB%B0%9C%EA%B8%B0%EC%9D%B8%ED%9A%8C%EC%9D%98%EC%82%AC%EB%A1%9D.hwp?cred - Network accessline 81
"url": "https://blog.kakaocdn.net/dna/bwE3eR/btso6ks6Rz1/AAAAAAAAAAAAAAAAAAAAAGXjN0fmZvlgAGf9McFFnfvkxxo5s51mVwOvolJ6MSFN/5.%20%EB%B0%9C%EA%B8%B0%EC%9D%B8%ED%9A%8C%EC%9D%98%EC%82%AC%EB%A1%9D.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&e - Network accessline 81
"url": "https://blog.kakaocdn.net/dna/bwE3eR/btso6ks6Rz1/AAAAAAAAAAAAAAAAAAAAAGXjN0fmZvlgAGf9McFFnfvkxxo5s51mVwOvolJ6MSFN/5.%20%EB%B0%9C%EA%B8%B0%EC%9D%B8%ED%9A%8C%EC%9D%98%EC%82%AC%EB%A1%9D.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&e - Network accessline 86
{ "source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB% - Network accessline 86
{ "source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB% - Network accessline 87
"source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%E - Network accessline 87
"source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%E - Network accessline 88
"page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0", - Network accessline 88
"page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0", - Network accessline 89
"original_name": "6. 주주명부.hwp", "url": "https://blog.kakaocdn.net/dna/Yu8V2/btso10oEbPP/AAAAAAAAAAAAAAAAAAAAAAVv7HSE5W8icMvgAPu5O1oDuYfJU9papuMZ17SolMpe/6.%20%EC%A3%BC%EC%A3%BC%EB%AA%85%EB%B6%80.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2 - Network accessline 89
"original_name": "6. 주주명부.hwp", "url": "https://blog.kakaocdn.net/dna/Yu8V2/btso10oEbPP/AAAAAAAAAAAAAAAAAAAAAAVv7HSE5W8icMvgAPu5O1oDuYfJU9papuMZ17SolMpe/6.%20%EC%A3%BC%EC%A3%BC%EB%AA%85%EB%B6%80.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2 - Network accessline 90
"url": "https://blog.kakaocdn.net/dna/Yu8V2/btso10oEbPP/AAAAAAAAAAAAAAAAAAAAAAVv7HSE5W8icMvgAPu5O1oDuYfJU9papuMZ17SolMpe/6.%20%EC%A3%BC%EC%A3%BC%EB%AA%85%EB%B6%80.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&allow_ip=& - Network accessline 90
"url": "https://blog.kakaocdn.net/dna/Yu8V2/btso10oEbPP/AAAAAAAAAAAAAAAAAAAAAAVv7HSE5W8icMvgAPu5O1oDuYfJU9papuMZ17SolMpe/6.%20%EC%A3%BC%EC%A3%BC%EB%AA%85%EB%B6%80.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&allow_ip=& - Network accessline 95
{ "source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB% - Network accessline 95
{ "source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB% - Network accessline 96
"source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%E - Network accessline 96
"source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%E - Network accessline 97
"page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0", - Network accessline 97
"page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0", - Network accessline 98
"original_name": "9. 인감신고서.hwp", "url": "https://blog.kakaocdn.net/dna/K8StW/btso08AvjvK/AAAAAAAAAAAAAAAAAAAAAAg8rnGRLiZrbNJpvZ3uaK1vS0_QZ_wd9oAYMPZPWjJe/9.%20%EC%9D%B8%EA%B0%90%EC%8B%A0%EA%B3%A0%EC%84%9C.hwp?credential=yqXZFxpELC7KVn - Network accessline 98
"original_name": "9. 인감신고서.hwp", "url": "https://blog.kakaocdn.net/dna/K8StW/btso08AvjvK/AAAAAAAAAAAAAAAAAAAAAAg8rnGRLiZrbNJpvZ3uaK1vS0_QZ_wd9oAYMPZPWjJe/9.%20%EC%9D%B8%EA%B0%90%EC%8B%A0%EA%B3%A0%EC%84%9C.hwp?credential=yqXZFxpELC7KVn - Network accessline 99
"url": "https://blog.kakaocdn.net/dna/K8StW/btso08AvjvK/AAAAAAAAAAAAAAAAAAAAAAg8rnGRLiZrbNJpvZ3uaK1vS0_QZ_wd9oAYMPZPWjJe/9.%20%EC%9D%B8%EA%B0%90%EC%8B%A0%EA%B3%A0%EC%84%9C.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&a - Network accessline 99
"url": "https://blog.kakaocdn.net/dna/K8StW/btso08AvjvK/AAAAAAAAAAAAAAAAAAAAAAg8rnGRLiZrbNJpvZ3uaK1vS0_QZ_wd9oAYMPZPWjJe/9.%20%EC%9D%B8%EA%B0%90%EC%8B%A0%EA%B3%A0%EC%84%9C.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&a - Network accessline 104
{ "source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB% - Network accessline 104
{ "source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB% - Network accessline 105
"source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%E - Network accessline 105
"source_name": "우택스 블로그 공개 주식회사 설립등기 첨부서류 HWP", "page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%E - Network accessline 106
"page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0", - Network accessline 106
"page_url": "https://wootax.tistory.com/entry/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC-%EC%84%A4%EB%A6%BD%ED%95%98%EA%B8%B0-%EB%B2%95%EC%9D%B8%EB%93%B1%EA%B8%B0%EB%B6%80%EB%93%B1%EB%B3%B8-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0", - Network accessline 107
"original_name": "10. 위임장.hwp", "url": "https://blog.kakaocdn.net/dna/beg039/btso1ui7lKh/AAAAAAAAAAAAAAAAAAAAAAwYRb3rbFNGA338GYRNAaxNjLxi81b6M-HeAya9eRDY/10.%20%EC%9C%84%EC%9E%84%EC%9E%A5.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj - Network accessline 107
"original_name": "10. 위임장.hwp", "url": "https://blog.kakaocdn.net/dna/beg039/btso1ui7lKh/AAAAAAAAAAAAAAAAAAAAAAwYRb3rbFNGA338GYRNAaxNjLxi81b6M-HeAya9eRDY/10.%20%EC%9C%84%EC%9E%84%EC%9E%A5.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj - Network accessline 108
"url": "https://blog.kakaocdn.net/dna/beg039/btso1ui7lKh/AAAAAAAAAAAAAAAAAAAAAAwYRb3rbFNGA338GYRNAaxNjLxi81b6M-HeAya9eRDY/10.%20%EC%9C%84%EC%9E%84%EC%9E%A5.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&allow_ip=&allow_r - Network accessline 108
"url": "https://blog.kakaocdn.net/dna/beg039/btso1ui7lKh/AAAAAAAAAAAAAAAAAAAAAAwYRb3rbFNGA338GYRNAaxNjLxi81b6M-HeAya9eRDY/10.%20%EC%9C%84%EC%9E%84%EC%9E%A5.hwp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1780239599&allow_ip=&allow_r - Network accessline 113
{ "source_name": "법무부 주식회사 표준정관 공개 재배포 HWP", "page_url": "https://mbolt.tistory.com/60", - Network accessline 113
{ "source_name": "법무부 주식회사 표준정관 공개 재배포 HWP", "page_url": "https://mbolt.tistory.com/60", - Network accessline 114
"source_name": "법무부 주식회사 표준정관 공개 재배포 HWP", "page_url": "https://mbolt.tistory.com/60", "original_name": "주식회사표준정관_법무부.hwp", - Network accessline 114
"source_name": "법무부 주식회사 표준정관 공개 재배포 HWP", "page_url": "https://mbolt.tistory.com/60", "original_name": "주식회사표준정관_법무부.hwp", - Network accessline 115
"page_url": "https://mbolt.tistory.com/60", - Network accessline 115
"page_url": "https://mbolt.tistory.com/60", - Network accessline 116
"original_name": "주식회사표준정관_법무부.hwp", "url": "https://blog.kakaocdn.net/dna/bnYmGS/btqQmP25auG/AAAAAAAAAAAAAAAAAAAAAOftXuAiup09pc65AD9memsLydWwWBZ3dWCh-W5jgLvF/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC%ED%91%9C%EC%A4%80%EC%A0%95%EA%B4%80_%E - Network accessline 116
"original_name": "주식회사표준정관_법무부.hwp", "url": "https://blog.kakaocdn.net/dna/bnYmGS/btqQmP25auG/AAAAAAAAAAAAAAAAAAAAAOftXuAiup09pc65AD9memsLydWwWBZ3dWCh-W5jgLvF/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC%ED%91%9C%EC%A4%80%EC%A0%95%EA%B4%80_%E - Network accessline 117
"url": "https://blog.kakaocdn.net/dna/bnYmGS/btqQmP25auG/AAAAAAAAAAAAAAAAAAAAAOftXuAiup09pc65AD9memsLydWwWBZ3dWCh-W5jgLvF/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC%ED%91%9C%EC%A4%80%EC%A0%95%EA%B4%80_%EB%B2%95%EB%AC%B4%EB%B6%80.hwp?credential=yq - Network accessline 117
"url": "https://blog.kakaocdn.net/dna/bnYmGS/btqQmP25auG/AAAAAAAAAAAAAAAAAAAAAOftXuAiup09pc65AD9memsLydWwWBZ3dWCh-W5jgLvF/%EC%A3%BC%EC%8B%9D%ED%9A%8C%EC%82%AC%ED%91%9C%EC%A4%80%EC%A0%95%EA%B4%80_%EB%B2%95%EB%AC%B4%EB%B6%80.hwp?credential=yq
corporate-registration-consulting/templates/official-form-sources.md
- Network accessline 16
- 용도: 신청 방식, 신청정보, 첨부정보 목록의 쉬운 말 확인. - 확인 포인트: 생활법령 페이지는 인터넷등기소에 등기신청서·첨부서류 양식 및 작성방식이 있다고 안내하고, 첨부서면은 등기예규 제65-1호/제65-2호를 보라고 안내한다. 4. **온라인법인설립시스템** `https://www.startbiz.go.kr` - Network accessline 16
- 용도: 신청 방식, 신청정보, 첨부정보 목록의 쉬운 말 확인. - 확인 포인트: 생활법령 페이지는 인터넷등기소에 등기신청서·첨부서류 양식 및 작성방식이 있다고 안내하고, 첨부서면은 등기예규 제65-1호/제65-2호를 보라고 안내한다. 4. **온라인법인설립시스템** `https://www.startbiz.go.kr` - Network accessline 17
- 확인 포인트: 생활법령 페이지는 인터넷등기소에 등기신청서·첨부서류 양식 및 작성방식이 있다고 안내하고, 첨부서면은 등기예규 제65-1호/제65-2호를 보라고 안내한다. 4. **온라인법인설립시스템** `https://www.startbiz.go.kr` - 용도: 온라인 법인설립 진행 시 실제 입력 흐름, 기관 연계 제출 흐름 확인. - Network accessline 17
- 확인 포인트: 생활법령 페이지는 인터넷등기소에 등기신청서·첨부서류 양식 및 작성방식이 있다고 안내하고, 첨부서면은 등기예규 제65-1호/제65-2호를 보라고 안내한다. 4. **온라인법인설립시스템** `https://www.startbiz.go.kr` - 용도: 온라인 법인설립 진행 시 실제 입력 흐름, 기관 연계 제출 흐름 확인. - Network accessline 18
4. **온라인법인설립시스템** `https://www.startbiz.go.kr` - Network accessline 18
4. **온라인법인설립시스템** `https://www.startbiz.go.kr`
corporate-registration-consulting/templates/official/source-manifest.json
- Network accessline 3
"source": { "name": "국가법령정보센터 상업등기신청서의 양식에 관한 예규", "page_url": "https://www.law.go.kr/행정규칙/상업등기신청서의양식에관한예규", - Network accessline 3
"source": { "name": "국가법령정보센터 상업등기신청서의 양식에 관한 예규", "page_url": "https://www.law.go.kr/행정규칙/상업등기신청서의양식에관한예규", - Network accessline 4
"name": "국가법령정보센터 상업등기신청서의 양식에 관한 예규", "page_url": "https://www.law.go.kr/행정규칙/상업등기신청서의양식에관한예규", "adm_rul_seq": "2200000106061", - Network accessline 4
"name": "국가법령정보센터 상업등기신청서의 양식에 관한 예규", "page_url": "https://www.law.go.kr/행정규칙/상업등기신청서의양식에관한예규", "adm_rul_seq": "2200000106061", - Network accessline 5
"page_url": "https://www.law.go.kr/행정규칙/상업등기신청서의양식에관한예규", - Network accessline 5
"page_url": "https://www.law.go.kr/행정규칙/상업등기신청서의양식에관한예규",
coupang-product-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/coupang-product-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/coupang-product-search/instruction.md.
coupang-product-search/instruction.md
- Network accessline 12
GET ${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}/v1/coupang/products/search - Network accessline 12
GET ${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}/v1/coupang/products/search - Network accessline 35
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/coupang/products/search" \ - Network accessline 35
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/coupang/products/search" \ - Network accessline 36
curl -fsS --get "${BASE}/v1/coupang/products/search" \ - Network accessline 36
curl -fsS --get "${BASE}/v1/coupang/products/search" \
coupang-product-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
coupang-product-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
court-auction-notice-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/court-auction-notice-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/court-auction-notice-search/instruction.md.
court-auction-notice-search/instruction.md
- Network accessline 49
- 법원경매정보 메인: `https://www.courtauction.go.kr` - Network accessline 49
- 법원경매정보 메인: `https://www.courtauction.go.kr` - Network accessline 50
- 부동산매각공고 진입: `https://www.courtauction.go.kr/pgj/index.on?w2xPath=/pgj/ui/pgj100/PGJ143M01.xml&pgjId=143M01` - Network accessline 50
- 부동산매각공고 진입: `https://www.courtauction.go.kr/pgj/index.on?w2xPath=/pgj/ui/pgj100/PGJ143M01.xml&pgjId=143M01` - Network accessline 51
- 경매사건검색 진입: `https://www.courtauction.go.kr/pgj/index.on?w2xPath=/pgj/ui/pgj100/PGJ159M00.xml&pgjId=159M00` - Network accessline 51
- 경매사건검색 진입: `https://www.courtauction.go.kr/pgj/index.on?w2xPath=/pgj/ui/pgj100/PGJ159M00.xml&pgjId=159M00`
court-payment-order-assistant/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/court-payment-order-assistant/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/court-payment-order-assistant/instruction.md.
court-payment-order-assistant/instruction.md
- Network accessline 29
- **실제 브라우저는 필수가 아니다.** 이 스킬의 핵심 산출물(지급명령/독촉 초안, 필요서류 체크리스트, 입력값 handoff)은 실제 브라우저를 띄우지 않고 생성된다. 브라우저는 사용자가 공식 포털에서 직접 로그인·확인·제출하는 수동 단계에서만 쓰이며, 그때 권장 순서는 BrowserOS/runtime CDP → 수동 브라우저다. - BrowserOS/runtime CDP 우선 사용: 사용자가 직접 띄운 BrowserOS - Network accessline 29
- **실제 브라우저는 필수가 아니다.** 이 스킬의 핵심 산출물(지급명령/독촉 초안, 필요서류 체크리스트, 입력값 handoff)은 실제 브라우저를 띄우지 않고 생성된다. 브라우저는 사용자가 공식 포털에서 직접 로그인·확인·제출하는 수동 단계에서만 쓰이며, 그때 권장 순서는 BrowserOS/runtime CDP → 수동 브라우저다. - BrowserOS/runtime CDP 우선 사용: 사용자가 직접 띄운 BrowserOS - Network accessline 30
- BrowserOS/runtime CDP 우선 사용: 사용자가 직접 띄운 BrowserOS GUI 세션(`KSKILL_BROWSEROS_CDP_URL`, 기본 `http://127.0.0.1:9100`)에 attach한다. 스킬은 BrowserOS를 launch하거나 headless로 띄우지 않는다. - Network accessline 30
- BrowserOS/runtime CDP 우선 사용: 사용자가 직접 띄운 BrowserOS GUI 세션(`KSKILL_BROWSEROS_CDP_URL`, 기본 `http://127.0.0.1:9100`)에 attach한다. 스킬은 BrowserOS를 launch하거나 headless로 띄우지 않는다. - Network accessline 38
https://ecfs.scourt.go.kr/psp/index.on - Network accessline 38
https://ecfs.scourt.go.kr/psp/index.on - Network accessline 44
- 문서 작성은 로그인 이후 가능하다는 경계가 표시된다. - 나홀로소송/도움말 영역에서 지급명령(독촉) 설명 진입점을 확인할 수 있다. - `https://ecfs.scourt.go.kr/ecf/index.jsp`는 점검/오류 페이지로 redirect될 수 있어, 현재 안정 진입점은 `/psp/index.on`이다. - Network accessline 44
- 문서 작성은 로그인 이후 가능하다는 경계가 표시된다. - 나홀로소송/도움말 영역에서 지급명령(독촉) 설명 진입점을 확인할 수 있다. - `https://ecfs.scourt.go.kr/ecf/index.jsp`는 점검/오류 페이지로 redirect될 수 있어, 현재 안정 진입점은 `/psp/index.on`이다. - Network accessline 46
- `https://ecfs.scourt.go.kr/ecf/index.jsp`는 점검/오류 페이지로 redirect될 수 있어, 현재 안정 진입점은 `/psp/index.on`이다. - Network accessline 46
- `https://ecfs.scourt.go.kr/ecf/index.jsp`는 점검/오류 페이지로 redirect될 수 있어, 현재 안정 진입점은 `/psp/index.on`이다. - Instruction override signalline 107
- Do not pay 인지대 or 송달료. - Do not bypass login, certificate, security module, CAPTCHA, or maintenance pages. - Do not tell the user that filing is legally sufficient or guaranteed. - Instruction override signalline 107
- Do not pay 인지대 or 송달료. - Do not bypass login, certificate, security module, CAPTCHA, or maintenance pages. - Do not tell the user that filing is legally sufficient or guaranteed. - Instruction override signalline 109
- Do not tell the user that filing is legally sufficient or guaranteed. - Instruction override signalline 109
- Do not tell the user that filing is legally sufficient or guaranteed.
d2b-notice-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/d2b-notice-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/d2b-notice-search/instruction.md.
d2b-notice-search/instruction.md
- Network accessline 36
https://www.d2b.go.kr/index.do - Network accessline 36
https://www.d2b.go.kr/index.do - Network accessline 50
Discovery result: the home page renders a public search form and recent bid links without login. Direct probes to `https://www.d2b.go.kr/openapi/sealedBidAnnounceList.json` can return `400 Bad Request` / deceptive request routing HTML, so b - Network accessline 50
Discovery result: the home page renders a public search form and recent bid links without login. Direct probes to `https://www.d2b.go.kr/openapi/sealedBidAnnounceList.json` can return `400 Bad Request` / deceptive request routing HTML, so b - Network accessline 74
1. Open `https://www.d2b.go.kr/index.do`. - Network accessline 74
1. Open `https://www.d2b.go.kr/index.do`.
daangn-cars-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daangn-cars-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daangn-cars-search/instruction.md.
daangn-cars-search/instruction.md
- Network accessline 29
- Region resolver: `https://www.daangn.com/kr/api/v1/regions/keyword?keyword=<지역명>` - Network accessline 29
- Region resolver: `https://www.daangn.com/kr/api/v1/regions/keyword?keyword=<지역명>` - Network accessline 44
npx -y @nomadamas/k-skill@0 exec daangn-cars-search scripts/daangn_cars.py -- search "레이" --region "합정동" --limit 5 npx -y @nomadamas/k-skill@0 exec daangn-cars-search scripts/daangn_cars.py -- search --region "합정동" --price-max 10000000 --li - Network accessline 44
npx -y @nomadamas/k-skill@0 exec daangn-cars-search scripts/daangn_cars.py -- search "레이" --region "합정동" --limit 5 npx -y @nomadamas/k-skill@0 exec daangn-cars-search scripts/daangn_cars.py -- search --region "합정동" --price-max 10000000 --li - Network accessline 46
npx -y @nomadamas/k-skill@0 exec daangn-cars-search scripts/daangn_cars.py -- detail "https://www.daangn.com/kr/cars/.../" - Network accessline 46
npx -y @nomadamas/k-skill@0 exec daangn-cars-search scripts/daangn_cars.py -- detail "https://www.daangn.com/kr/cars/.../" - Network accessline 59
https://www.daangn.com/kr/api/v1/regions/keyword?keyword=합정동 - Network accessline 59
https://www.daangn.com/kr/api/v1/regions/keyword?keyword=합정동
daangn-cars-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
daangn-cars-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
daangn-cars-search/scripts/daangn_cars.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 7
def fetch_json(url): req = urllib.request.Request(url, headers=HEADERS) - Network accessline 7
def fetch_json(url): req = urllib.request.Request(url, headers=HEADERS) - Network accessline 8
req = urllib.request.Request(url, headers=HEADERS) - Network accessline 8
req = urllib.request.Request(url, headers=HEADERS) - Network accessline 9
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 9
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 12
def fetch_text(url): req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 12
def fetch_text(url): req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 13
req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 13
req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 14
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 14
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 22
def resolve_region(region): if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 22
def resolve_region(region): if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 23
if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) data = fetch_json(url) - Network accessline 23
if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) data = fetch_json(url) - Network accessline 24
url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 24
url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 38
if not href: return '' if href.startswith('http'): return href return 'https://www.daangn.com' + href - Network accessline 38
if not href: return '' if href.startswith('http'): return href return 'https://www.daangn.com' + href - Network accessline 40
return 'https://www.daangn.com' + href - Network accessline 40
return 'https://www.daangn.com' + href - Network accessline 52
if args.price_min: params.append(('priceMin', str(args.price_min))) params.append(('_data','routes/kr.cars._index')) url='https://www.daangn.com/kr/cars/?'+urllib.parse.urlencode(params) - Network accessline 52
if args.price_min: params.append(('priceMin', str(args.price_min))) params.append(('_data','routes/kr.cars._index')) url='https://www.daangn.com/kr/cars/?'+urllib.parse.urlencode(params) - Network accessline 53
params.append(('_data','routes/kr.cars._index')) url='https://www.daangn.com/kr/cars/?'+urllib.parse.urlencode(params) data=fetch_json(url); arr=((data.get('carAllPage') or {}).get('carPosts') or []) - Network accessline 53
params.append(('_data','routes/kr.cars._index')) url='https://www.daangn.com/kr/cars/?'+urllib.parse.urlencode(params) data=fetch_json(url); arr=((data.get('carAllPage') or {}).get('carPosts') or []) - Network accessline 54
url='https://www.daangn.com/kr/cars/?'+urllib.parse.urlencode(params) - Network accessline 54
url='https://www.daangn.com/kr/cars/?'+urllib.parse.urlencode(params)
daangn-jobs-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daangn-jobs-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daangn-jobs-search/instruction.md.
daangn-jobs-search/instruction.md
- Network accessline 29
- Region resolver: `https://www.daangn.com/kr/api/v1/regions/keyword?keyword=<지역명>` - Network accessline 29
- Region resolver: `https://www.daangn.com/kr/api/v1/regions/keyword?keyword=<지역명>` - Network accessline 44
npx -y @nomadamas/k-skill@0 exec daangn-jobs-search scripts/daangn_jobs.py -- search "카페" --region "합정동" --limit 5 npx -y @nomadamas/k-skill@0 exec daangn-jobs-search scripts/daangn_jobs.py -- detail "https://www.daangn.com/kr/jobs/.../" - Network accessline 44
npx -y @nomadamas/k-skill@0 exec daangn-jobs-search scripts/daangn_jobs.py -- search "카페" --region "합정동" --limit 5 npx -y @nomadamas/k-skill@0 exec daangn-jobs-search scripts/daangn_jobs.py -- detail "https://www.daangn.com/kr/jobs/.../" - Network accessline 45
npx -y @nomadamas/k-skill@0 exec daangn-jobs-search scripts/daangn_jobs.py -- detail "https://www.daangn.com/kr/jobs/.../" - Network accessline 45
npx -y @nomadamas/k-skill@0 exec daangn-jobs-search scripts/daangn_jobs.py -- detail "https://www.daangn.com/kr/jobs/.../" - Network accessline 58
https://www.daangn.com/kr/api/v1/regions/keyword?keyword=합정동 - Network accessline 58
https://www.daangn.com/kr/api/v1/regions/keyword?keyword=합정동
daangn-jobs-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
daangn-jobs-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
daangn-jobs-search/scripts/daangn_jobs.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 7
def fetch_json(url): req = urllib.request.Request(url, headers=HEADERS) - Network accessline 7
def fetch_json(url): req = urllib.request.Request(url, headers=HEADERS) - Network accessline 8
req = urllib.request.Request(url, headers=HEADERS) - Network accessline 8
req = urllib.request.Request(url, headers=HEADERS) - Network accessline 9
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 9
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 15
def fetch_text(url): req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 15
def fetch_text(url): req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 16
req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 16
req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 17
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 17
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 25
def resolve_region(region): if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 25
def resolve_region(region): if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 26
if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) data = fetch_json(url) - Network accessline 26
if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) data = fetch_json(url) - Network accessline 27
url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 27
url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 41
if not href: return '' if href.startswith('http'): return href return 'https://www.daangn.com' + href - Network accessline 41
if not href: return '' if href.startswith('http'): return href return 'https://www.daangn.com' + href - Network accessline 43
return 'https://www.daangn.com' + href - Network accessline 43
return 'https://www.daangn.com' + href - Network accessline 74
if args.keyword: params.append(('search', args.keyword)) params.append(('_data','routes/kr.jobs._index')) url='https://www.daangn.com/kr/jobs/?'+urllib.parse.urlencode(params) - Network accessline 74
if args.keyword: params.append(('search', args.keyword)) params.append(('_data','routes/kr.jobs._index')) url='https://www.daangn.com/kr/jobs/?'+urllib.parse.urlencode(params) - Network accessline 75
params.append(('_data','routes/kr.jobs._index')) url='https://www.daangn.com/kr/jobs/?'+urllib.parse.urlencode(params) data=fetch_json(url); arr=((data.get('jobsAllPage') or {}).get('jobPosts') or [])[:args.limit] - Network accessline 75
params.append(('_data','routes/kr.jobs._index')) url='https://www.daangn.com/kr/jobs/?'+urllib.parse.urlencode(params) data=fetch_json(url); arr=((data.get('jobsAllPage') or {}).get('jobPosts') or [])[:args.limit] - Network accessline 76
url='https://www.daangn.com/kr/jobs/?'+urllib.parse.urlencode(params) - Network accessline 76
url='https://www.daangn.com/kr/jobs/?'+urllib.parse.urlencode(params)
daangn-realty-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daangn-realty-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daangn-realty-search/instruction.md.
daangn-realty-search/instruction.md
- Network accessline 25
- Region resolver: `https://www.daangn.com/kr/api/v1/regions/keyword?keyword=<지역명>` → `{"locations":[{id,name1,name2,name3,name*Id,depth}]}` - Network accessline 25
- Region resolver: `https://www.daangn.com/kr/api/v1/regions/keyword?keyword=<지역명>` → `{"locations":[{id,name1,name2,name3,name*Id,depth}]}` - Network accessline 26
- 매물 목록: `https://realty.daangn.com/map/{name1}/{name2}/{name3}` 의 `window.RELAY_STORE` - Network accessline 26
- 매물 목록: `https://realty.daangn.com/map/{name1}/{name2}/{name3}` 의 `window.RELAY_STORE` - Network accessline 27
- 상세: `https://realty.daangn.com/articles/<id>` 의 `application/ld+json` - Network accessline 27
- 상세: `https://realty.daangn.com/articles/<id>` 의 `application/ld+json` - Network accessline 75
# 상세 python3 ... search --region "매교동" --titles 0 # 제목 보강 끄기(빠름) python3 ... detail "https://realty.daangn.com/articles/2947028" - Network accessline 75
# 상세 python3 ... search --region "매교동" --titles 0 # 제목 보강 끄기(빠름) python3 ... detail "https://realty.daangn.com/articles/2947028" - Network accessline 77
python3 ... detail "https://realty.daangn.com/articles/2947028" - Network accessline 77
python3 ... detail "https://realty.daangn.com/articles/2947028"
daangn-realty-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
daangn-realty-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
daangn-realty-search/scripts/daangn_detail_ld.py
daangn-realty-search/scripts/daangn_realty.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 38
HEADERS = {"User-Agent": "Mozilla/5.0", "Accept": "text/html,application/json;q=0.9,*/*;q=0.8"} REGION_API = "https://www.daangn.com/kr/api/v1/regions/keyword?keyword=" - Network accessline 38
HEADERS = {"User-Agent": "Mozilla/5.0", "Accept": "text/html,application/json;q=0.9,*/*;q=0.8"} REGION_API = "https://www.daangn.com/kr/api/v1/regions/keyword?keyword=" - Network accessline 39
REGION_API = "https://www.daangn.com/kr/api/v1/regions/keyword?keyword=" - Network accessline 39
REGION_API = "https://www.daangn.com/kr/api/v1/regions/keyword?keyword=" - Network accessline 40
MAP_BASE = "https://realty.daangn.com/map/" - Network accessline 40
MAP_BASE = "https://realty.daangn.com/map/" - Network accessline 43
def fetch_json(url): req = urllib.request.Request(url, headers=HEADERS) - Network accessline 43
def fetch_json(url): req = urllib.request.Request(url, headers=HEADERS) - Network accessline 44
req = urllib.request.Request(url, headers=HEADERS) - Network accessline 44
req = urllib.request.Request(url, headers=HEADERS) - Network accessline 45
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 45
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 49
def fetch_text(url): req = urllib.request.Request(url, headers=HEADERS) - Network accessline 49
def fetch_text(url): req = urllib.request.Request(url, headers=HEADERS) - Network accessline 50
req = urllib.request.Request(url, headers=HEADERS) - Network accessline 50
req = urllib.request.Request(url, headers=HEADERS) - Network accessline 51
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 51
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 208
d = sub.add_parser("detail", help="매물 상세 (제목·주소·층수)") d.add_argument("url", help="https://realty.daangn.com/articles/<id>") - Network accessline 208
d = sub.add_parser("detail", help="매물 상세 (제목·주소·층수)") d.add_argument("url", help="https://realty.daangn.com/articles/<id>") - Network accessline 209
d.add_argument("url", help="https://realty.daangn.com/articles/<id>") - Network accessline 209
d.add_argument("url", help="https://realty.daangn.com/articles/<id>")
daangn-realty-search/scripts/daangn_relay_store.py
daangn-used-goods-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daangn-used-goods-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daangn-used-goods-search/instruction.md.
daangn-used-goods-search/instruction.md
- Network accessline 29
- Region resolver: `https://www.daangn.com/kr/api/v1/regions/keyword?keyword=<지역명>` - Network accessline 29
- Region resolver: `https://www.daangn.com/kr/api/v1/regions/keyword?keyword=<지역명>` - Network accessline 44
npx -y @nomadamas/k-skill@0 exec daangn-used-goods-search scripts/daangn_used_goods.py -- search "맥북" --region "합정동" --limit 5 npx -y @nomadamas/k-skill@0 exec daangn-used-goods-search scripts/daangn_used_goods.py -- detail "https://www.daa - Network accessline 44
npx -y @nomadamas/k-skill@0 exec daangn-used-goods-search scripts/daangn_used_goods.py -- search "맥북" --region "합정동" --limit 5 npx -y @nomadamas/k-skill@0 exec daangn-used-goods-search scripts/daangn_used_goods.py -- detail "https://www.daa - Network accessline 45
npx -y @nomadamas/k-skill@0 exec daangn-used-goods-search scripts/daangn_used_goods.py -- detail "https://www.daangn.com/kr/buy-sell/.../" - Network accessline 45
npx -y @nomadamas/k-skill@0 exec daangn-used-goods-search scripts/daangn_used_goods.py -- detail "https://www.daangn.com/kr/buy-sell/.../" - Network accessline 58
https://www.daangn.com/kr/api/v1/regions/keyword?keyword=합정동 - Network accessline 58
https://www.daangn.com/kr/api/v1/regions/keyword?keyword=합정동
daangn-used-goods-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
daangn-used-goods-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
daangn-used-goods-search/scripts/daangn_used_goods.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 7
def fetch_json(url): req = urllib.request.Request(url, headers=HEADERS) - Network accessline 7
def fetch_json(url): req = urllib.request.Request(url, headers=HEADERS) - Network accessline 8
req = urllib.request.Request(url, headers=HEADERS) - Network accessline 8
req = urllib.request.Request(url, headers=HEADERS) - Network accessline 9
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 9
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 12
def fetch_text(url): req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 12
def fetch_text(url): req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 13
req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 13
req = urllib.request.Request(url, headers={"User-Agent":"Mozilla/5.0", "Accept":"text/html"}) - Network accessline 14
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 14
with urllib.request.urlopen(req, timeout=25) as r: - Network accessline 22
def resolve_region(region): if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 22
def resolve_region(region): if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 23
if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) data = fetch_json(url) - Network accessline 23
if not region: return None url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) data = fetch_json(url) - Network accessline 24
url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 24
url = 'https://www.daangn.com/kr/api/v1/regions/keyword?keyword=' + urllib.parse.quote(region) - Network accessline 38
if not href: return '' if href.startswith('http'): return href return 'https://www.daangn.com' + href - Network accessline 38
if not href: return '' if href.startswith('http'): return href return 'https://www.daangn.com' + href - Network accessline 40
return 'https://www.daangn.com' + href - Network accessline 40
return 'https://www.daangn.com' + href - Network accessline 55
if args.only_on_sale: params.append(('only_on_sale','true')) params.append(('_data','routes/kr.buy-sell._index')) url = 'https://www.daangn.com' + path + '?' + urllib.parse.urlencode(params) - Network accessline 55
if args.only_on_sale: params.append(('only_on_sale','true')) params.append(('_data','routes/kr.buy-sell._index')) url = 'https://www.daangn.com' + path + '?' + urllib.parse.urlencode(params) - Network accessline 56
params.append(('_data','routes/kr.buy-sell._index')) url = 'https://www.daangn.com' + path + '?' + urllib.parse.urlencode(params) data = fetch_json(url) - Network accessline 56
params.append(('_data','routes/kr.buy-sell._index')) url = 'https://www.daangn.com' + path + '?' + urllib.parse.urlencode(params) data = fetch_json(url) - Network accessline 57
url = 'https://www.daangn.com' + path + '?' + urllib.parse.urlencode(params) - Network accessline 57
url = 'https://www.daangn.com' + path + '?' + urllib.parse.urlencode(params)
daishin-report-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daishin-report-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daishin-report-search/instruction.md.
daishin-report-search/instruction.md
- Network accessline 26
- list endpoint: `https://api.github.com/repos/jay-jo-0/github_pages_repo/git/trees/main?recursive=1` - Network accessline 26
- list endpoint: `https://api.github.com/repos/jay-jo-0/github_pages_repo/git/trees/main?recursive=1` - Network accessline 27
- selected paths: repository-root files matching `YYYYMMDDHHMMSS.html` - optional companion paths: `YYYYMMDDHHMMSS_explain.html` - detail raw HTML: `https://raw.githubusercontent.com/Jay-jo-0/github_pages_repo/main/<path>` - Network accessline 27
- selected paths: repository-root files matching `YYYYMMDDHHMMSS.html` - optional companion paths: `YYYYMMDDHHMMSS_explain.html` - detail raw HTML: `https://raw.githubusercontent.com/Jay-jo-0/github_pages_repo/main/<path>` - Network accessline 28
- optional companion paths: `YYYYMMDDHHMMSS_explain.html` - detail raw HTML: `https://raw.githubusercontent.com/Jay-jo-0/github_pages_repo/main/<path>` - browser detail URL: `https://jay-jo-0.github.io/github_pages_repo/<path>` - Network accessline 28
- optional companion paths: `YYYYMMDDHHMMSS_explain.html` - detail raw HTML: `https://raw.githubusercontent.com/Jay-jo-0/github_pages_repo/main/<path>` - browser detail URL: `https://jay-jo-0.github.io/github_pages_repo/<path>` - Network accessline 29
- detail raw HTML: `https://raw.githubusercontent.com/Jay-jo-0/github_pages_repo/main/<path>` - Network accessline 29
- detail raw HTML: `https://raw.githubusercontent.com/Jay-jo-0/github_pages_repo/main/<path>` - Network accessline 30
- browser detail URL: `https://jay-jo-0.github.io/github_pages_repo/<path>` - Network accessline 30
- browser detail URL: `https://jay-jo-0.github.io/github_pages_repo/<path>` - Network accessline 35
- exact-file endpoint: `https://api.github.com/repos/jay-jo-0/github_pages_repo/contents/<path>?ref=main` - Network accessline 35
- exact-file endpoint: `https://api.github.com/repos/jay-jo-0/github_pages_repo/contents/<path>?ref=main` - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 102
주요 헤딩: ... Rating/Target: ... (있는 경우) 원문: https://jay-jo-0.github.io/github_pages_repo/... - Network accessline 102
주요 헤딩: ... Rating/Target: ... (있는 경우) 원문: https://jay-jo-0.github.io/github_pages_repo/... - Network accessline 103
Rating/Target: ... (있는 경우) 원문: https://jay-jo-0.github.io/github_pages_repo/... 설명 페이지: ... (있는 경우) - Network accessline 103
Rating/Target: ... (있는 경우) 원문: https://jay-jo-0.github.io/github_pages_repo/... 설명 페이지: ... (있는 경우) - Network accessline 104
원문: https://jay-jo-0.github.io/github_pages_repo/... - Network accessline 104
원문: https://jay-jo-0.github.io/github_pages_repo/...
daishin-report-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
daishin-report-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
daiso-product-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daiso-product-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/daiso-product-search/instruction.md.
daiso-product-search/instruction.md
- Network accessline 58
- store keyword catalog: `https://www.daisomall.co.kr/api/ms/msg/selStrSrchKeyword` - Network accessline 58
- store keyword catalog: `https://www.daisomall.co.kr/api/ms/msg/selStrSrchKeyword` - Network accessline 59
- store search: `https://www.daisomall.co.kr/api/ms/msg/selStr` - Network accessline 59
- store search: `https://www.daisomall.co.kr/api/ms/msg/selStr` - Network accessline 60
- store detail: `https://www.daisomall.co.kr/api/dl/dla-api/selStrInfo` - Network accessline 60
- store detail: `https://www.daisomall.co.kr/api/dl/dla-api/selStrInfo` - Network accessline 61
- product search summary: `https://www.daisomall.co.kr/ssn/search/Search` - Network accessline 61
- product search summary: `https://www.daisomall.co.kr/ssn/search/Search` - Network accessline 62
- product search list: `https://www.daisomall.co.kr/ssn/search/SearchGoods` - Network accessline 62
- product search list: `https://www.daisomall.co.kr/ssn/search/SearchGoods` - Network accessline 63
- product summary list: `https://www.daisomall.co.kr/ssn/search/GoodsMummResult` - Network accessline 63
- product summary list: `https://www.daisomall.co.kr/ssn/search/GoodsMummResult` - Network accessline 64
- auth (비로그인 JWT 발급): `https://www.daisomall.co.kr/api/auth/request` - Network accessline 64
- auth (비로그인 JWT 발급): `https://www.daisomall.co.kr/api/auth/request` - Network accessline 65
- store pickup stock: `https://www.daisomall.co.kr/api/pd/pdh/selStrPkupStck` ← **인증 필요** - Network accessline 65
- store pickup stock: `https://www.daisomall.co.kr/api/pd/pdh/selStrPkupStck` ← **인증 필요** - Network accessline 66
- pickup eligibility fallback: `https://www.daisomall.co.kr/api/ms/msg/selPkupStr` - Network accessline 66
- pickup eligibility fallback: `https://www.daisomall.co.kr/api/ms/msg/selPkupStr` - Network accessline 67
- optional online stock cross-check: `https://www.daisomall.co.kr/api/pdo/selOnlStck` - Network accessline 67
- optional online stock cross-check: `https://www.daisomall.co.kr/api/pdo/selOnlStck`
daiso-product-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
daiso-product-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
danawa-price-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/danawa-price-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/danawa-price-search/instruction.md.
danawa-price-search/instruction.md
- Network accessline 38
- 검색 페이지: `https://search.danawa.com/dsearch.php?query=...` - Network accessline 38
- 검색 페이지: `https://search.danawa.com/dsearch.php?query=...` - Network accessline 39
- 상품 상세 페이지: `https://prod.danawa.com/info/?pcode=...` - Network accessline 39
- 상품 상세 페이지: `https://prod.danawa.com/info/?pcode=...` - Network accessline 40
- 가격비교 AJAX: `https://prod.danawa.com/info/ajax/getAllPriceCompareMallList.ajax.php` - Network accessline 40
- 가격비교 AJAX: `https://prod.danawa.com/info/ajax/getAllPriceCompareMallList.ajax.php`
danawa-price-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
danawa-price-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
danawa-price-search/scripts/danawa_search.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 29
def fetch(url: str, *, method: str = "GET", data: Optional[dict] = None, referer: Optional[str] = None) -> str: - Network accessline 29
def fetch(url: str, *, method: str = "GET", data: Optional[dict] = None, referer: Optional[str] = None) -> str: - Network accessline 39
if referer: headers["Referer"] = referer req = urllib.request.Request(url, data=body, headers=headers, method=method) - Network accessline 39
if referer: headers["Referer"] = referer req = urllib.request.Request(url, data=body, headers=headers, method=method) - Network accessline 40
headers["Referer"] = referer req = urllib.request.Request(url, data=body, headers=headers, method=method) with urllib.request.urlopen(req, timeout=25) as resp: - Network accessline 40
headers["Referer"] = referer req = urllib.request.Request(url, data=body, headers=headers, method=method) with urllib.request.urlopen(req, timeout=25) as resp: - Network accessline 41
req = urllib.request.Request(url, data=body, headers=headers, method=method) - Network accessline 41
req = urllib.request.Request(url, data=body, headers=headers, method=method) - Network accessline 42
with urllib.request.urlopen(req, timeout=25) as resp: - Network accessline 42
with urllib.request.urlopen(req, timeout=25) as resp: - Network accessline 67
return "https:" + url if url.startswith("/"): return "https://prod.danawa.com" + url - Network accessline 67
return "https:" + url if url.startswith("/"): return "https://prod.danawa.com" + url - Network accessline 68
if url.startswith("/"): return "https://prod.danawa.com" + url return url - Network accessline 68
if url.startswith("/"): return "https://prod.danawa.com" + url return url - Network accessline 69
return "https://prod.danawa.com" + url - Network accessline 69
return "https://prod.danawa.com" + url - Network accessline 73
def search(query: str, limit: int = 10) -> Dict[str, Any]: url = "https://search.danawa.com/dsearch.php?query=" + urllib.parse.quote(query) - Network accessline 73
def search(query: str, limit: int = 10) -> Dict[str, Any]: url = "https://search.danawa.com/dsearch.php?query=" + urllib.parse.quote(query) - Network accessline 74
url = "https://search.danawa.com/dsearch.php?query=" + urllib.parse.quote(query) - Network accessline 74
url = "https://search.danawa.com/dsearch.php?query=" + urllib.parse.quote(query) - Network accessline 75
html = fetch(url) - Network accessline 75
html = fetch(url) - Network accessline 130
def product_meta(pcode: str) -> Dict[str, str]: url = f"https://prod.danawa.com/info/?pcode={urllib.parse.quote(str(pcode))}" - Network accessline 130
def product_meta(pcode: str) -> Dict[str, str]: url = f"https://prod.danawa.com/info/?pcode={urllib.parse.quote(str(pcode))}" - Network accessline 131
url = f"https://prod.danawa.com/info/?pcode={urllib.parse.quote(str(pcode))}" - Network accessline 131
url = f"https://prod.danawa.com/info/?pcode={urllib.parse.quote(str(pcode))}" - Network accessline 132
html = fetch(url) - Network accessline 132
html = fetch(url) - Network accessline 184
"makerName": meta.get("makerName", ""), } html = fetch("https://prod.danawa.com/info/ajax/getAllPriceCompareMallList.ajax.php", method="POST", data=data, referer=meta["source_url"]) - Network accessline 184
"makerName": meta.get("makerName", ""), } html = fetch("https://prod.danawa.com/info/ajax/getAllPriceCompareMallList.ajax.php", method="POST", data=data, referer=meta["source_url"]) - Network accessline 185
} html = fetch("https://prod.danawa.com/info/ajax/getAllPriceCompareMallList.ajax.php", method="POST", data=data, referer=meta["source_url"]) soup = soup_for(html) - Network accessline 185
} html = fetch("https://prod.danawa.com/info/ajax/getAllPriceCompareMallList.ajax.php", method="POST", data=data, referer=meta["source_url"]) soup = soup_for(html) - Network accessline 186
html = fetch("https://prod.danawa.com/info/ajax/getAllPriceCompareMallList.ajax.php", method="POST", data=data, referer=meta["source_url"]) - Network accessline 186
html = fetch("https://prod.danawa.com/info/ajax/getAllPriceCompareMallList.ajax.php", method="POST", data=data, referer=meta["source_url"])
delivery-tracking/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/delivery-tracking/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/delivery-tracking/instruction.md.
delivery-tracking/instruction.md
- Network accessline 54
| carrier adapter | official entry | transport | validator | parser focus | | --- | --- | --- | --- | --- | | `cj` | `https://www.cjlogistics.com/ko/tool/parcel/tracking` | page GET + `tracking-detail` POST JSON | 10자리 또는 12자리 숫자 | `parcelD - Network accessline 54
| carrier adapter | official entry | transport | validator | parser focus | | --- | --- | --- | --- | --- | | `cj` | `https://www.cjlogistics.com/ko/tool/parcel/tracking` | page GET + `tracking-detail` POST JSON | 10자리 또는 12자리 숫자 | `parcelD - Network accessline 55
| --- | --- | --- | --- | --- | | `cj` | `https://www.cjlogistics.com/ko/tool/parcel/tracking` | page GET + `tracking-detail` POST JSON | 10자리 또는 12자리 숫자 | `parcelDetailResultMap.resultList` | | `epost` | `https://service.epost.go.kr/trace. - Network accessline 55
| --- | --- | --- | --- | --- | | `cj` | `https://www.cjlogistics.com/ko/tool/parcel/tracking` | page GET + `tracking-detail` POST JSON | 10자리 또는 12자리 숫자 | `parcelDetailResultMap.resultList` | | `epost` | `https://service.epost.go.kr/trace. - Network accessline 56
| `cj` | `https://www.cjlogistics.com/ko/tool/parcel/tracking` | page GET + `tracking-detail` POST JSON | 10자리 또는 12자리 숫자 | `parcelDetailResultMap.resultList` | - Network accessline 56
| `cj` | `https://www.cjlogistics.com/ko/tool/parcel/tracking` | page GET + `tracking-detail` POST JSON | 10자리 또는 12자리 숫자 | `parcelDetailResultMap.resultList` | - Network accessline 57
| `epost` | `https://service.epost.go.kr/trace.RetrieveRegiPrclDeliv.postal?sid1=` | form POST HTML | 13자리 숫자 | 기본정보 `table_col` + 상세 `processTable` | - Network accessline 57
| `epost` | `https://service.epost.go.kr/trace.RetrieveRegiPrclDeliv.postal?sid1=` | form POST HTML | 13자리 숫자 | 기본정보 `table_col` + 상세 `processTable` | - Network accessline 71
- 진입 페이지: `https://www.cjlogistics.com/ko/tool/parcel/tracking` - Network accessline 71
- 진입 페이지: `https://www.cjlogistics.com/ko/tool/parcel/tracking` - Network accessline 72
- 상세 endpoint: `https://www.cjlogistics.com/ko/tool/parcel/tracking-detail` - Network accessline 72
- 상세 endpoint: `https://www.cjlogistics.com/ko/tool/parcel/tracking-detail` - Network accessline 83
curl -sS -L -c "$tmp_cookie" \ - Network accessline 83
curl -sS -L -c "$tmp_cookie" \ - Network accessline 84
"https://www.cjlogistics.com/ko/tool/parcel/tracking" \ - Network accessline 84
"https://www.cjlogistics.com/ko/tool/parcel/tracking" \ - Network accessline 96
curl -sS -L -b "$tmp_cookie" \ - Network accessline 96
curl -sS -L -b "$tmp_cookie" \ - Network accessline 98
--data-urlencode "_csrf=$csrf" \ --data-urlencode "paramInvcNo=$invoice" \ "https://www.cjlogistics.com/ko/tool/parcel/tracking-detail" \ - Network accessline 98
--data-urlencode "_csrf=$csrf" \ --data-urlencode "paramInvcNo=$invoice" \ "https://www.cjlogistics.com/ko/tool/parcel/tracking-detail" \ - Network accessline 99
--data-urlencode "paramInvcNo=$invoice" \ "https://www.cjlogistics.com/ko/tool/parcel/tracking-detail" \ -o "$tmp_json" - Network accessline 99
--data-urlencode "paramInvcNo=$invoice" \ "https://www.cjlogistics.com/ko/tool/parcel/tracking-detail" \ -o "$tmp_json" - Network accessline 100
"https://www.cjlogistics.com/ko/tool/parcel/tracking-detail" \ - Network accessline 100
"https://www.cjlogistics.com/ko/tool/parcel/tracking-detail" \ - Dangerous shell operationline 144
rm -f "$tmp_body" "$tmp_cookie" "$tmp_json" - Dangerous shell operationline 144
rm -f "$tmp_body" "$tmp_cookie" "$tmp_json" - Network accessline 191
- 진입 페이지: `https://service.epost.go.kr/trace.RetrieveRegiPrclDeliv.postal?sid1=` - Network accessline 191
- 진입 페이지: `https://service.epost.go.kr/trace.RetrieveRegiPrclDeliv.postal?sid1=` - Network accessline 192
- 실제 조회 endpoint: `https://service.epost.go.kr/trace.RetrieveDomRigiTraceList.comm` - Network accessline 192
- 실제 조회 endpoint: `https://service.epost.go.kr/trace.RetrieveDomRigiTraceList.comm` - Network accessline 195
우체국은 로컬 Python HTTP client보다 `curl --http1.1 --tls-max 1.2` 경로가 더 안정적이므로 그 조합을 기본 예시로 쓴다. - Network accessline 195
우체국은 로컬 Python HTTP client보다 `curl --http1.1 --tls-max 1.2` 경로가 더 안정적이므로 그 조합을 기본 예시로 쓴다. - Network accessline 226
"-d", f"sid1={invoice}", "https://service.epost.go.kr/trace.RetrieveDomRigiTraceList.comm", - Network accessline 226
"-d", f"sid1={invoice}", "https://service.epost.go.kr/trace.RetrieveDomRigiTraceList.comm", - Network accessline 227
f"sid1={invoice}", "https://service.epost.go.kr/trace.RetrieveDomRigiTraceList.comm", ] - Network accessline 227
f"sid1={invoice}", "https://service.epost.go.kr/trace.RetrieveDomRigiTraceList.comm", ] - Network accessline 228
"https://service.epost.go.kr/trace.RetrieveDomRigiTraceList.comm", - Network accessline 228
"https://service.epost.go.kr/trace.RetrieveDomRigiTraceList.comm", - Dangerous shell operationline 285
rm -f "$tmp_html" - Dangerous shell operationline 285
rm -f "$tmp_html" - Network accessline 334
- 자리수 오류면 바로 멈추고 올바른 형식을 다시 받는다. - CJ는 `_csrf` 재취득 후 한 번 더 시도한다. - 우체국은 `curl --retry 3 --retry-all-errors --retry-delay 1` 을 유지한다. - Network accessline 334
- 자리수 오류면 바로 멈추고 올바른 형식을 다시 받는다. - CJ는 `_csrf` 재취득 후 한 번 더 시도한다. - 우체국은 `curl --retry 3 --retry-all-errors --retry-delay 1` 을 유지한다. - Network accessline 335
- CJ는 `_csrf` 재취득 후 한 번 더 시도한다. - 우체국은 `curl --retry 3 --retry-all-errors --retry-delay 1` 을 유지한다. - 다른 택배사로 우회하지 않는다. - Network accessline 335
- CJ는 `_csrf` 재취득 후 한 번 더 시도한다. - 우체국은 `curl --retry 3 --retry-all-errors --retry-delay 1` 을 유지한다. - 다른 택배사로 우회하지 않는다. - Network accessline 336
- 우체국은 `curl --retry 3 --retry-all-errors --retry-delay 1` 을 유지한다. - Network accessline 336
- 우체국은 `curl --retry 3 --retry-all-errors --retry-delay 1` 을 유지한다.
delivery-tracking/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
delivery-tracking/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
donation-place-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/donation-place-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/donation-place-search/instruction.md.
donation-place-search/instruction.md
- Network accessline 32
- Legacy `https://www.nanumkorea.go.kr/` currently returns a notice that 1365 기부포털 has moved/integrated into 1365 자원봉사. - Network accessline 32
- Legacy `https://www.nanumkorea.go.kr/` currently returns a notice that 1365 기부포털 has moved/integrated into 1365 자원봉사. - Network accessline 33
- The notice links to `https://www.1365.go.kr/dntn/main.do`. - Network accessline 33
- The notice links to `https://www.1365.go.kr/dntn/main.do`. - Network accessline 34
- The skill therefore uses `https://www.1365.go.kr/dntn/main.do` as the official public verification entry point. - Network accessline 34
- The skill therefore uses `https://www.1365.go.kr/dntn/main.do` as the official public verification entry point. - Network accessline 98
"categories": ["animals"], "coverage": "local", "homepageUrl": "https://www.ekara.org/", - Network accessline 98
"categories": ["animals"], "coverage": "local", "homepageUrl": "https://www.ekara.org/", - Network accessline 99
"coverage": "local", "homepageUrl": "https://www.ekara.org/", "officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...", - Network accessline 99
"coverage": "local", "homepageUrl": "https://www.ekara.org/", "officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...", - Network accessline 100
"homepageUrl": "https://www.ekara.org/", - Network accessline 100
"homepageUrl": "https://www.ekara.org/", - Network accessline 101
"officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...", - Network accessline 101
"officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...", - Network accessline 103
} ], "officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...", - Network accessline 103
} ], "officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...", - Network accessline 104
], "officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...", "meta": { "source": "curated-fallback-plus-1365-search-assist" } - Network accessline 104
], "officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...", "meta": { "source": "curated-fallback-plus-1365-search-assist" } - Network accessline 105
"officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...", - Network accessline 105
"officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...",
emergency-room-beds/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/emergency-room-beds/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/emergency-room-beds/instruction.md.
emergency-room-beds/instruction.md
- Network accessline 29
- NEMC 모니터링: `https://dw.nemc.or.kr/nemcMonitoring/mainmgr/Main.do` - Network accessline 29
- NEMC 모니터링: `https://dw.nemc.or.kr/nemcMonitoring/mainmgr/Main.do` - Network accessline 30
- E-Gen 응급실 찾기: `https://www.e-gen.or.kr/egen/search_emergency_room.do` - Network accessline 30
- E-Gen 응급실 찾기: `https://www.e-gen.or.kr/egen/search_emergency_room.do` - Network accessline 31
- E-Gen nearby list endpoint: `https://www.e-gen.or.kr/egen/retrieve_emergency_room_list.do` - Network accessline 31
- E-Gen nearby list endpoint: `https://www.e-gen.or.kr/egen/retrieve_emergency_room_list.do` - Network accessline 32
- Kakao Map 모바일 검색: `https://m.map.kakao.com/actions/searchView?q=<query>` - Network accessline 32
- Kakao Map 모바일 검색: `https://m.map.kakao.com/actions/searchView?q=<query>` - Network accessline 33
- Kakao Map 장소 패널 JSON: `https://place-api.map.kakao.com/places/panel3/<confirmId>` - Network accessline 33
- Kakao Map 장소 패널 JSON: `https://place-api.map.kakao.com/places/panel3/<confirmId>`
ev-charger-nearby/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/ev-charger-nearby/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/ev-charger-nearby/instruction.md.
ev-charger-nearby/instruction.md
- Access to secretsline 7
[Credential-related source omitted] - Access to secretsline 7
[Credential-related source omitted] - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted]
ev-charger-nearby/scripts/ev_charger.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 17
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 17
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 18
DEFAULT_SECRETS_PATH = pathlib.Path("~/.config/k-skill/secrets.env").expanduser() UPSTREAM_BASE_URL = "https://apis.data.go.kr/B552584/EvCharger" OPERATIONS = {"info": "getChargerInfo", "status": "getChargerStatus"} - Network accessline 18
DEFAULT_SECRETS_PATH = pathlib.Path("~/.config/k-skill/secrets.env").expanduser() UPSTREAM_BASE_URL = "https://apis.data.go.kr/B552584/EvCharger" OPERATIONS = {"info": "getChargerInfo", "status": "getChargerStatus"} - Network accessline 19
UPSTREAM_BASE_URL = "https://apis.data.go.kr/B552584/EvCharger" - Network accessline 19
UPSTREAM_BASE_URL = "https://apis.data.go.kr/B552584/EvCharger" - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 102
[Credential-related source omitted] - Access to secretsline 102
[Credential-related source omitted] - Access to secretsline 104
[Credential-related source omitted] - Access to secretsline 104
[Credential-related source omitted] - Access to secretsline 108
[Credential-related source omitted] - Access to secretsline 108
[Credential-related source omitted] - Network accessline 114
def http_get_json(url: str, timeout: int, via_proxy: bool) -> Dict[str, Any]: request = urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/ev-charger-nearby"}) - Network accessline 114
def http_get_json(url: str, timeout: int, via_proxy: bool) -> Dict[str, Any]: request = urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/ev-charger-nearby"}) - Network accessline 115
request = urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/ev-charger-nearby"}) - Network accessline 115
request = urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/ev-charger-nearby"}) - Network accessline 116
try: with urllib.request.urlopen(request, timeout=timeout) as response: raw = response.read().decode("utf-8", errors="replace") - Network accessline 116
try: with urllib.request.urlopen(request, timeout=timeout) as response: raw = response.read().decode("utf-8", errors="replace") - Network accessline 117
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 117
with urllib.request.urlopen(request, timeout=timeout) as response: - Access to secretsline 173
[Credential-related source omitted] - Access to secretsline 173
[Credential-related source omitted] - Access to secretsline 202
[Credential-related source omitted] - Access to secretsline 202
[Credential-related source omitted] - Access to secretsline 206
[Credential-related source omitted] - Access to secretsline 206
[Credential-related source omitted]
ev-charger-nearby/tests/test_ev_charger.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 20
class EvChargerHelperTests(unittest.TestCase): def test_proxy_url_has_no_key_and_forces_only_server_side_json(self): args = ev_charger.parse_args(["info", "--location", "서울", "--proxy-base-url", "https://example.test"]) - Network accessline 20
class EvChargerHelperTests(unittest.TestCase): def test_proxy_url_has_no_key_and_forces_only_server_side_json(self): args = ev_charger.parse_args(["info", "--location", "서울", "--proxy-base-url", "https://example.test"]) - Network accessline 21
def test_proxy_url_has_no_key_and_forces_only_server_side_json(self): args = ev_charger.parse_args(["info", "--location", "서울", "--proxy-base-url", "https://example.test"]) query = ev_charger.build_query(args) - Network accessline 21
def test_proxy_url_has_no_key_and_forces_only_server_side_json(self): args = ev_charger.parse_args(["info", "--location", "서울", "--proxy-base-url", "https://example.test"]) query = ev_charger.build_query(args) - Network accessline 22
args = ev_charger.parse_args(["info", "--location", "서울", "--proxy-base-url", "https://example.test"]) - Network accessline 22
args = ev_charger.parse_args(["info", "--location", "서울", "--proxy-base-url", "https://example.test"]) - Network accessline 23
[Credential-related source omitted] - Network accessline 23
[Credential-related source omitted] - Network accessline 24
[Credential-related source omitted] - Network accessline 24
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Network accessline 25
self.assertTrue(url.startswith("https://example.test/v1/ev-charger/info?")) - Network accessline 25
self.assertTrue(url.startswith("https://example.test/v1/ev-charger/info?")) - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Network accessline 106
body = io.BytesIO(json.dumps({"error": "upstream_not_configured"}).encode("utf-8")) error = urllib.error.HTTPError("https://example.test", 503, "Service Unavailable", {}, body) - Network accessline 106
body = io.BytesIO(json.dumps({"error": "upstream_not_configured"}).encode("utf-8")) error = urllib.error.HTTPError("https://example.test", 503, "Service Unavailable", {}, body) - Network accessline 107
error = urllib.error.HTTPError("https://example.test", 503, "Service Unavailable", {}, body) - Network accessline 107
error = urllib.error.HTTPError("https://example.test", 503, "Service Unavailable", {}, body)
ev-subsidy-status/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/ev-subsidy-status/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/ev-subsidy-status/instruction.md.
ev-subsidy-status/instruction.md
express-bus-booking/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/express-bus-booking/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/express-bus-booking/instruction.md.
express-bus-booking/instruction.md
- Network accessline 23
- Use official KOBUS surfaces: `https://www.kobus.co.kr`. - Network accessline 23
- Use official KOBUS surfaces: `https://www.kobus.co.kr`. - Network accessline 38
GET https://www.kobus.co.kr/main.do - Network accessline 38
GET https://www.kobus.co.kr/main.do - Network accessline 39
GET https://www.kobus.co.kr/mrs/rotinf.do - Network accessline 39
GET https://www.kobus.co.kr/mrs/rotinf.do - Network accessline 152
https://www.kobus.co.kr/mrs/stplcfmpym.do - Network accessline 152
https://www.kobus.co.kr/mrs/stplcfmpym.do - Network accessline 158
https://www.kobus.co.kr/mrs/stplcfmpym.do?keep=/mrs/pay - Network accessline 158
https://www.kobus.co.kr/mrs/stplcfmpym.do?keep=/mrs/pay
express-bus-booking/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
express-bus-booking/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
express-bus-booking/references/kobus-http-flow.md
express-bus-booking/scripts/kobus_express_booking.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 25
BASE_URL = "https://www.kobus.co.kr" - Network accessline 25
BASE_URL = "https://www.kobus.co.kr" - Network accessline 82
def request(url: str, data: dict[str, str] | list[tuple[str, str]] | None = None, referer: str | None = None) -> urllib.request.Request: - Network accessline 82
def request(url: str, data: dict[str, str] | list[tuple[str, str]] | None = None, referer: str | None = None) -> urllib.request.Request: - Network accessline 85
headers["Referer"] = referer if data is None: return urllib.request.Request(url, headers=headers, method="GET") - Network accessline 85
headers["Referer"] = referer if data is None: return urllib.request.Request(url, headers=headers, method="GET") - Network accessline 86
if data is None: return urllib.request.Request(url, headers=headers, method="GET") headers["Content-Type"] = "application/x-www-form-urlencoded" - Network accessline 86
if data is None: return urllib.request.Request(url, headers=headers, method="GET") headers["Content-Type"] = "application/x-www-form-urlencoded" - Network accessline 87
return urllib.request.Request(url, headers=headers, method="GET") - Network accessline 87
return urllib.request.Request(url, headers=headers, method="GET") - Network accessline 89
return urllib.request.Request(url, data=urllib.parse.urlencode(data).encode(), headers=headers, method="POST") - Network accessline 89
return urllib.request.Request(url, data=urllib.parse.urlencode(data).encode(), headers=headers, method="POST") - Network accessline 92
def open_text(op: urllib.request.OpenerDirector, req: urllib.request.Request, timeout: int) -> str: - Network accessline 92
def open_text(op: urllib.request.OpenerDirector, req: urllib.request.Request, timeout: int) -> str:
express-bus-booking/tests/__init__.py
express-bus-booking/tests/test_kobus_express_booking.py
fine-dust-location/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/fine-dust-location/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/fine-dust-location/instruction.md.
fine-dust-location/instruction.md
- Network accessline 5
기본적으로 `https://k-skill-proxy.nomadamas.org/v1/fine-dust/report` 로 요청해서 PM10 / PM2.5 / 통합대기등급을 요약한다. - Network accessline 5
기본적으로 `https://k-skill-proxy.nomadamas.org/v1/fine-dust/report` 로 요청해서 PM10 / PM2.5 / 통합대기등급을 요약한다. - Network accessline 32
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/fine-dust/report' \ - Network accessline 32
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/fine-dust/report' \ - Network accessline 49
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/fine-dust/report' \ - Network accessline 49
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/fine-dust/report' \ - Network accessline 56
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/fine-dust/report' \ - Network accessline 56
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/fine-dust/report' \
fine-dust-location/scripts/fine_dust.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 14
STATION_SERVICE_URL = "http://apis.data.go.kr/B552584/MsrstnInfoInqireSvc" - Network accessline 14
STATION_SERVICE_URL = "http://apis.data.go.kr/B552584/MsrstnInfoInqireSvc" - Network accessline 15
MEASUREMENT_SERVICE_URL = "http://apis.data.go.kr/B552584/ArpltnInforInqireSvc" - Network accessline 15
MEASUREMENT_SERVICE_URL = "http://apis.data.go.kr/B552584/ArpltnInforInqireSvc" - Network accessline 16
[Credential-related source omitted] - Network accessline 16
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Network accessline 17
PROXY_BASE_URL_NAME = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" PROXY_DOWN_MSG = "설정된 k-skill-proxy 서버가 응답하지 않습니다. 잠시 후 재시도하거나 운영자에게 문의하세요." - Network accessline 17
PROXY_BASE_URL_NAME = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" PROXY_DOWN_MSG = "설정된 k-skill-proxy 서버가 응답하지 않습니다. 잠시 후 재시도하거나 운영자에게 문의하세요." - Network accessline 18
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 18
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 354
[Credential-related source omitted] - Access to secretsline 354
[Credential-related source omitted] - Access to secretsline 361
[Credential-related source omitted] - Access to secretsline 361
[Credential-related source omitted] - Network accessline 369
def read_json_response(request: urllib.request.Request | str) -> dict: - Network accessline 369
def read_json_response(request: urllib.request.Request | str) -> dict: - Network accessline 370
try: with urllib.request.urlopen(request, timeout=REQUEST_TIMEOUT_SECONDS) as response: return json.load(response) - Network accessline 370
try: with urllib.request.urlopen(request, timeout=REQUEST_TIMEOUT_SECONDS) as response: return json.load(response) - Network accessline 371
with urllib.request.urlopen(request, timeout=REQUEST_TIMEOUT_SECONDS) as response: - Network accessline 371
with urllib.request.urlopen(request, timeout=REQUEST_TIMEOUT_SECONDS) as response: - Network accessline 421
query = urllib.parse.urlencode(params) request = urllib.request.Request( - Network accessline 421
query = urllib.parse.urlencode(params) request = urllib.request.Request( - Network accessline 422
request = urllib.request.Request( - Network accessline 422
request = urllib.request.Request(
flight-ticket-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/flight-ticket-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/flight-ticket-search/instruction.md.
flight-ticket-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
flight-ticket-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
flight-ticket-search/scripts/flight_ticket_search.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Network accessline 173
).as_b64().decode("utf-8") params = {"tfs": tfs, "hl": "en", "tfu": "EgQIABABIgA", "curr": "KRW"} return "https://www.google.com/travel/flights?" + urlencode(params) - Network accessline 173
).as_b64().decode("utf-8") params = {"tfs": tfs, "hl": "en", "tfu": "EgQIABABIgA", "curr": "KRW"} return "https://www.google.com/travel/flights?" + urlencode(params) - Network accessline 175
return "https://www.google.com/travel/flights?" + urlencode(params) - Network accessline 175
return "https://www.google.com/travel/flights?" + urlencode(params)
foresttrip-vacancy/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/foresttrip-vacancy/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/foresttrip-vacancy/instruction.md.
foresttrip-vacancy/instruction.md
foresttrip-vacancy/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
foresttrip-vacancy/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
foresttrip-vacancy/scripts/run_foresttrip_vacancy.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 26
LOGIN_URL = "https://www.foresttrip.go.kr/com/login.do" - Network accessline 26
LOGIN_URL = "https://www.foresttrip.go.kr/com/login.do" - Network accessline 27
RSRVT_PAGE = "https://www.foresttrip.go.kr/rep/or/sssn/monthRsrvtSmplStatus.do" - Network accessline 27
RSRVT_PAGE = "https://www.foresttrip.go.kr/rep/or/sssn/monthRsrvtSmplStatus.do" - Network accessline 28
POST_URL = "https://www.foresttrip.go.kr/rep/or/selectRsrvtAvailInfoListForMonthRsrvtSmpl.do" - Network accessline 28
POST_URL = "https://www.foresttrip.go.kr/rep/or/selectRsrvtAvailInfoListForMonthRsrvtSmpl.do" - Network accessline 386
"Content-Type": "application/json; charset=UTF-8", "Cookie": cookie_header, "Origin": "https://www.foresttrip.go.kr", - Network accessline 386
"Content-Type": "application/json; charset=UTF-8", "Cookie": cookie_header, "Origin": "https://www.foresttrip.go.kr", - Network accessline 387
"Cookie": cookie_header, "Origin": "https://www.foresttrip.go.kr", "Referer": RSRVT_PAGE, - Network accessline 387
"Cookie": cookie_header, "Origin": "https://www.foresttrip.go.kr", "Referer": RSRVT_PAGE, - Network accessline 388
"Origin": "https://www.foresttrip.go.kr", - Network accessline 388
"Origin": "https://www.foresttrip.go.kr", - Network accessline 410
} body = json.dumps(payload).encode("utf-8") request = urllib.request.Request( - Network accessline 410
} body = json.dumps(payload).encode("utf-8") request = urllib.request.Request( - Network accessline 411
body = json.dumps(payload).encode("utf-8") request = urllib.request.Request( POST_URL, - Network accessline 411
body = json.dumps(payload).encode("utf-8") request = urllib.request.Request( POST_URL, - Network accessline 412
request = urllib.request.Request( - Network accessline 412
request = urllib.request.Request( - Network accessline 417
) try: with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 417
) try: with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 418
try: with urllib.request.urlopen(request, timeout=30) as response: if response.status != 200: - Network accessline 418
try: with urllib.request.urlopen(request, timeout=30) as response: if response.status != 200: - Network accessline 419
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 419
with urllib.request.urlopen(request, timeout=30) as response:
foresttrip-vacancy/tests/__init__.py
foresttrip-vacancy/tests/test_foresttrip_session.py
foresttrip-vacancy/tests/test_run_foresttrip_vacancy.py
fsc-corporate-info/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/fsc-corporate-info/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/fsc-corporate-info/instruction.md.
fsc-corporate-info/instruction.md
- Network accessline 30
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Network accessline 30
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Network accessline 31
- `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Network accessline 31
- `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Network accessline 56
- 공공데이터포털: <https://www.data.go.kr/data/15043184/openapi.do> - Network accessline 56
- 공공데이터포털: <https://www.data.go.kr/data/15043184/openapi.do> - Network accessline 57
- upstream: `https://apis.data.go.kr/1160100/service/GetCorpBasicInfoService_V2/getCorpOutline_V2` - Network accessline 57
- upstream: `https://apis.data.go.kr/1160100/service/GetCorpBasicInfoService_V2/getCorpOutline_V2`
fsc-corporate-info/scripts/fsc_corporate_info.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Network accessline 19
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 19
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 20
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 20
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 40
[Credential-related source omitted] - Access to secretsline 40
[Credential-related source omitted] - Network accessline 49
def read_json_response(request: urllib.request.Request) -> dict[str, Any]: - Network accessline 49
def read_json_response(request: urllib.request.Request) -> dict[str, Any]: - Network accessline 50
try: with urllib.request.urlopen(request, timeout=30) as response: try: - Network accessline 50
try: with urllib.request.urlopen(request, timeout=30) as response: try: - Network accessline 51
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 51
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 84
params["b_no"] = digits url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(url, headers={ - Network accessline 84
params["b_no"] = digits url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(url, headers={ - Network accessline 85
url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(url, headers={ "Accept": "application/json", - Network accessline 85
url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(url, headers={ "Accept": "application/json", - Network accessline 86
request = urllib.request.Request(url, headers={ - Network accessline 86
request = urllib.request.Request(url, headers={
fsc-corporate-info/scripts/test_fsc_corporate_info.py
g2b-order-plan-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/g2b-order-plan-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/g2b-order-plan-search/instruction.md.
g2b-order-plan-search/instruction.md
- Network accessline 17
- data.go.kr dataset: <https://www.data.go.kr/data/15129462/openapi.do> - Network accessline 17
- data.go.kr dataset: <https://www.data.go.kr/data/15129462/openapi.do> - Network accessline 18
- upstream base: `https://apis.data.go.kr/1230000/ao/OrderPlanSttusService` - Network accessline 18
- upstream base: `https://apis.data.go.kr/1230000/ao/OrderPlanSttusService` - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Network accessline 145
- 공공데이터포털: <https://www.data.go.kr/data/15129462/openapi.do> - Network accessline 145
- 공공데이터포털: <https://www.data.go.kr/data/15129462/openapi.do> - Network accessline 146
- upstream: `https://apis.data.go.kr/1230000/ao/OrderPlanSttusService` - Network accessline 146
- upstream: `https://apis.data.go.kr/1230000/ao/OrderPlanSttusService` - Network accessline 147
- 수동 대조: 나라장터 <https://www.g2b.go.kr> - Network accessline 147
- 수동 대조: 나라장터 <https://www.g2b.go.kr>
g2b-order-plan-search/scripts/g2b_order_plan.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Network accessline 19
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 19
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 20
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 20
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 22
PROXY_KEY_NOT_CONFIGURED_MSG = "k-skill-proxy에 필요한 API 키가 설정되어 있지 않습니다. 운영자에게 문의하세요." ROUTE = "/v1/g2b/order-plans" USER_AGENT = "k-skill-g2b-order-plan-search/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 22
PROXY_KEY_NOT_CONFIGURED_MSG = "k-skill-proxy에 필요한 API 키가 설정되어 있지 않습니다. 운영자에게 문의하세요." ROUTE = "/v1/g2b/order-plans" USER_AGENT = "k-skill-g2b-order-plan-search/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 24
USER_AGENT = "k-skill-g2b-order-plan-search/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 24
USER_AGENT = "k-skill-g2b-order-plan-search/0.1 (+https://github.com/NomaDamas/k-skill)" - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 41
[Credential-related source omitted] - Network accessline 98
def read_json_response(request: urllib.request.Request) -> dict[str, Any]: - Network accessline 98
def read_json_response(request: urllib.request.Request) -> dict[str, Any]: - Network accessline 99
try: with urllib.request.urlopen(request, timeout=30) as response: charset = response.headers.get_content_charset() or "utf-8" - Network accessline 99
try: with urllib.request.urlopen(request, timeout=30) as response: charset = response.headers.get_content_charset() or "utf-8" - Network accessline 100
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 100
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 119
resolved_base = resolve_proxy_base_url(base_url) url = f"{resolved_base}{ROUTE}?{urllib.parse.urlencode(query)}" request = urllib.request.Request(url, headers={"Accept": "application/json", "User-Agent": USER_AGENT}) - Network accessline 119
resolved_base = resolve_proxy_base_url(base_url) url = f"{resolved_base}{ROUTE}?{urllib.parse.urlencode(query)}" request = urllib.request.Request(url, headers={"Accept": "application/json", "User-Agent": USER_AGENT}) - Network accessline 120
url = f"{resolved_base}{ROUTE}?{urllib.parse.urlencode(query)}" request = urllib.request.Request(url, headers={"Accept": "application/json", "User-Agent": USER_AGENT}) return read_json(request) - Network accessline 120
url = f"{resolved_base}{ROUTE}?{urllib.parse.urlencode(query)}" request = urllib.request.Request(url, headers={"Accept": "application/json", "User-Agent": USER_AGENT}) return read_json(request) - Network accessline 121
request = urllib.request.Request(url, headers={"Accept": "application/json", "User-Agent": USER_AGENT}) - Network accessline 121
request = urllib.request.Request(url, headers={"Accept": "application/json", "User-Agent": USER_AGENT})
g2b-sanctioned-supplier/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/g2b-sanctioned-supplier/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/g2b-sanctioned-supplier/instruction.md.
g2b-sanctioned-supplier/instruction.md
- Network accessline 18
만료 이력까지 보려면 나라장터(<https://www.g2b.go.kr>)에서 수동 확인이 필요하다. - Network accessline 18
만료 이력까지 보려면 나라장터(<https://www.g2b.go.kr>)에서 수동 확인이 필요하다. - Network accessline 41
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Network accessline 41
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Network accessline 42
- `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Network accessline 42
- `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Network accessline 68
- 공공데이터포털: <https://www.data.go.kr/data/15129466/openapi.do> - Network accessline 68
- 공공데이터포털: <https://www.data.go.kr/data/15129466/openapi.do> - Network accessline 69
- upstream: `https://apis.data.go.kr/1230000/ao/UsrInfoService02/getUnptRsttCorpInfo02` - Network accessline 69
- upstream: `https://apis.data.go.kr/1230000/ao/UsrInfoService02/getUnptRsttCorpInfo02` - Network accessline 70
- 수동 대조: 나라장터 <https://www.g2b.go.kr> - Network accessline 70
- 수동 대조: 나라장터 <https://www.g2b.go.kr>
g2b-sanctioned-supplier/scripts/g2b_sanctioned_supplier.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Network accessline 19
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 19
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 20
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 20
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 41
[Credential-related source omitted] - Network accessline 60
def read_json_response(request: urllib.request.Request) -> dict[str, Any]: - Network accessline 60
def read_json_response(request: urllib.request.Request) -> dict[str, Any]: - Network accessline 61
try: with urllib.request.urlopen(request, timeout=30) as response: try: - Network accessline 61
try: with urllib.request.urlopen(request, timeout=30) as response: try: - Network accessline 62
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 62
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 87
normalized = normalize_bizno(bizno) url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode({'bizno': normalized})}" request = urllib.request.Request(url, headers={ - Network accessline 87
normalized = normalize_bizno(bizno) url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode({'bizno': normalized})}" request = urllib.request.Request(url, headers={ - Network accessline 88
url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode({'bizno': normalized})}" request = urllib.request.Request(url, headers={ "Accept": "application/json", - Network accessline 88
url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode({'bizno': normalized})}" request = urllib.request.Request(url, headers={ "Accept": "application/json", - Network accessline 89
request = urllib.request.Request(url, headers={ - Network accessline 89
request = urllib.request.Request(url, headers={
g2b-sanctioned-supplier/scripts/test_g2b_sanctioned_supplier.py
geeknews-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/geeknews-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/geeknews-search/instruction.md.
geeknews-search/instruction.md
- Network accessline 5
GeekNews 공개 RSS/Atom 피드(`https://feeds.feedburner.com/geeknews-feed`)를 사용해 최신 글을 읽기 전용으로 조회한다. - Network accessline 5
GeekNews 공개 RSS/Atom 피드(`https://feeds.feedburner.com/geeknews-feed`)를 사용해 최신 글을 읽기 전용으로 조회한다. - Network accessline 26
- GeekNews RSS/Atom feed: `https://feeds.feedburner.com/geeknews-feed` - Network accessline 26
- GeekNews RSS/Atom feed: `https://feeds.feedburner.com/geeknews-feed` - Network accessline 27
- GeekNews home: `https://news.hada.io` - Network accessline 27
- GeekNews home: `https://news.hada.io`
geeknews-search/scripts/geeknews_search.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 14
GEEKNEWS_FEED_URL = "https://feeds.feedburner.com/geeknews-feed" - Network accessline 14
GEEKNEWS_FEED_URL = "https://feeds.feedburner.com/geeknews-feed" - Network accessline 242
def fetch_feed(url: str = GEEKNEWS_FEED_URL, timeout: int = 20) -> str: request = urllib.request.Request(url, headers={"User-Agent": "k-skill-geeknews/1.0"}) - Network accessline 242
def fetch_feed(url: str = GEEKNEWS_FEED_URL, timeout: int = 20) -> str: request = urllib.request.Request(url, headers={"User-Agent": "k-skill-geeknews/1.0"}) - Network accessline 243
request = urllib.request.Request(url, headers={"User-Agent": "k-skill-geeknews/1.0"}) - Network accessline 243
request = urllib.request.Request(url, headers={"User-Agent": "k-skill-geeknews/1.0"}) - Network accessline 244
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 244
with urllib.request.urlopen(request, timeout=timeout) as response:
gongsijiga-search/SKILL.md
- Network accessline 42
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/gongsijiga-search/instruction.md. - Network accessline 42
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/gongsijiga-search/instruction.md.
gongsijiga-search/instruction.md
- Network accessline 88
"history": [...], "yoy_change_pct": 5.45, "source_url": "https://www.realtyprice.kr/notice/gsindividual/search.htm" - Network accessline 88
"history": [...], "yoy_change_pct": 5.45, "source_url": "https://www.realtyprice.kr/notice/gsindividual/search.htm" - Network accessline 89
"yoy_change_pct": 5.45, "source_url": "https://www.realtyprice.kr/notice/gsindividual/search.htm" } - Network accessline 89
"yoy_change_pct": 5.45, "source_url": "https://www.realtyprice.kr/notice/gsindividual/search.htm" } - Network accessline 90
"source_url": "https://www.realtyprice.kr/notice/gsindividual/search.htm" - Network accessline 90
"source_url": "https://www.realtyprice.kr/notice/gsindividual/search.htm"
gov-overseas-trip-report/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/gov-overseas-trip-report/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/gov-overseas-trip-report/instruction.md.
gov-overseas-trip-report/instruction.md
- Network accessline 48
npx -y @nomadamas/k-skill@0 exec gov-overseas-trip-report scripts/gov_overseas_trip_report.py -- search --keyword 몰디브 --providers nec,acrc,open_portal,daejeon_council npx -y @nomadamas/k-skill@0 exec gov-overseas-trip-report scripts/gov_ove - Network accessline 48
npx -y @nomadamas/k-skill@0 exec gov-overseas-trip-report scripts/gov_overseas_trip_report.py -- search --keyword 몰디브 --providers nec,acrc,open_portal,daejeon_council npx -y @nomadamas/k-skill@0 exec gov-overseas-trip-report scripts/gov_ove - Network accessline 50
npx -y @nomadamas/k-skill@0 exec gov-overseas-trip-report scripts/gov_overseas_trip_report.py -- discover --keyword 공무국외출장 --urls https://www.ptcouncil.go.kr/,https://council.chungnam.go.kr/ - Network accessline 50
npx -y @nomadamas/k-skill@0 exec gov-overseas-trip-report scripts/gov_overseas_trip_report.py -- discover --keyword 공무국외출장 --urls https://www.ptcouncil.go.kr/,https://council.chungnam.go.kr/ - Network accessline 57
- 목록 GET만 사용: `https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex=<n>` - **POST `pageIndex` 는 실패한다.** `curl -X POST ... --data 'pageIndex=2&bcIdx=&mode='` 는 `오류가 발생했습니다.` 페이지를 반환한다. 성공 경로로 쓰지 말 것. - Network accessline 57
- 목록 GET만 사용: `https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex=<n>` - **POST `pageIndex` 는 실패한다.** `curl -X POST ... --data 'pageIndex=2&bcIdx=&mode='` 는 `오류가 발생했습니다.` 페이지를 반환한다. 성공 경로로 쓰지 말 것. - Network accessline 58
- **POST `pageIndex` 는 실패한다.** `curl -X POST ... --data 'pageIndex=2&bcIdx=&mode='` 는 `오류가 발생했습니다.` 페이지를 반환한다. 성공 경로로 쓰지 말 것. - Network accessline 58
- **POST `pageIndex` 는 실패한다.** `curl -X POST ... --data 'pageIndex=2&bcIdx=&mode='` 는 `오류가 발생했습니다.` 페이지를 반환한다. 성공 경로로 쓰지 말 것. - Network accessline 59
- 상세: `https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx=<id>` - 첨부: `https://www.nec.go.kr/common/board/Download.do?bcIdx=<id>&cbIdx=1107&streFileNm=<file>` - HTML entity(`&` → `&`)를 풀어 절대 URL로 정규화한 뒤 다운로드한다. - Network accessline 59
- 상세: `https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx=<id>` - 첨부: `https://www.nec.go.kr/common/board/Download.do?bcIdx=<id>&cbIdx=1107&streFileNm=<file>` - HTML entity(`&` → `&`)를 풀어 절대 URL로 정규화한 뒤 다운로드한다. - Network accessline 60
- 첨부: `https://www.nec.go.kr/common/board/Download.do?bcIdx=<id>&cbIdx=1107&streFileNm=<file>` - Network accessline 60
- 첨부: `https://www.nec.go.kr/common/board/Download.do?bcIdx=<id>&cbIdx=1107&streFileNm=<file>` - Network accessline 66
- 목록: `https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000&nPage=<n>` - Network accessline 66
- 목록: `https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000&nPage=<n>` - Network accessline 68
- 첨부: `https://www.acrc.go.kr/boardDownload.es?bid=1000&list_no=<id>&seq=1` - Network accessline 68
- 첨부: `https://www.acrc.go.kr/boardDownload.es?bid=1000&list_no=<id>&seq=1` - Network accessline 72
- `https://www.open.go.kr/othicInfo/infoList/infoList.do?mustKeyword=<keyword>` - Network accessline 72
- `https://www.open.go.kr/othicInfo/infoList/infoList.do?mustKeyword=<keyword>` - Network accessline 77
- 대구: `https://council.daegu.go.kr/kr/bbs?bbs_id=overseas&page=<n>` (단따옴표 href) - Network accessline 77
- 대구: `https://council.daegu.go.kr/kr/bbs?bbs_id=overseas&page=<n>` (단따옴표 href) - Network accessline 78
- 대전: `https://council.daejeon.go.kr/svc/inf/TrainingReportList.do?pageNo=<n>` - Network accessline 78
- 대전: `https://council.daejeon.go.kr/svc/inf/TrainingReportList.do?pageNo=<n>` - Network accessline 79
- 경기: `https://www.ggc.go.kr/site/main/board/training_resrep/list` - Network accessline 79
- 경기: `https://www.ggc.go.kr/site/main/board/training_resrep/list` - Network accessline 80
- 경북: `https://council.gb.go.kr/kr/bbs?bbs_id=notice` 제목에 `출장` 포함 글만 - Network accessline 80
- 경북: `https://council.gb.go.kr/kr/bbs?bbs_id=notice` 제목에 `출장` 포함 글만 - Network accessline 156
1. 목록 URL `https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107`을 연다. 2. 상세 링크는 `a[href*="View.do"][href*="cbIdx=1107"]`에서 `bcIdx`를 추출하고 절대 URL로 정규화한다. 3. 첨부 링크는 `a[href*="Download.do"][href*="cbIdx=1107"]`에서 `bcIdx`, `streFileNm`, 파일명을 - Network accessline 156
1. 목록 URL `https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107`을 연다. 2. 상세 링크는 `a[href*="View.do"][href*="cbIdx=1107"]`에서 `bcIdx`를 추출하고 절대 URL로 정규화한다. 3. 첨부 링크는 `a[href*="Download.do"][href*="cbIdx=1107"]`에서 `bcIdx`, `streFileNm`, 파일명을 - Network accessline 256
{ "source": "중앙선거관리위원회 공무국외출장보고서 게시판", "sourceUrl": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 256
{ "source": "중앙선거관리위원회 공무국외출장보고서 게시판", "sourceUrl": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 257
"source": "중앙선거관리위원회 공무국외출장보고서 게시판", "sourceUrl": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", "facts": { - Network accessline 257
"source": "중앙선거관리위원회 공무국외출장보고서 게시판", "sourceUrl": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", "facts": { - Network accessline 258
"sourceUrl": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 258
"sourceUrl": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 260
"title": "선거기관의 역할 및 대응사례 연구 등 국외출장보고서(오스트리아, 크로아티아)", "publishedAt": "2026-03-13", "detailUrl": "https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx=303199", - Network accessline 260
"title": "선거기관의 역할 및 대응사례 연구 등 국외출장보고서(오스트리아, 크로아티아)", "publishedAt": "2026-03-13", "detailUrl": "https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx=303199", - Network accessline 261
"publishedAt": "2026-03-13", "detailUrl": "https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx=303199", "institution": "중앙선거관리위원회", - Network accessline 261
"publishedAt": "2026-03-13", "detailUrl": "https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx=303199", "institution": "중앙선거관리위원회", - Network accessline 262
"detailUrl": "https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx=303199", - Network accessline 262
"detailUrl": "https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx=303199", - Network accessline 269
{ "title": "선거기관의역할및대응사례_연구_등_국외출장보고서(오스트리아_크로아티아).pdf", "url": "https://www.nec.go.kr/common/board/Download.do?bcIdx=303199&cbIdx=1107&streFileNm=a148c7c6-e1e8-4e8b-85ab-f3d27ec74b1d.pdf", - Network accessline 269
{ "title": "선거기관의역할및대응사례_연구_등_국외출장보고서(오스트리아_크로아티아).pdf", "url": "https://www.nec.go.kr/common/board/Download.do?bcIdx=303199&cbIdx=1107&streFileNm=a148c7c6-e1e8-4e8b-85ab-f3d27ec74b1d.pdf", - Network accessline 270
"title": "선거기관의역할및대응사례_연구_등_국외출장보고서(오스트리아_크로아티아).pdf", "url": "https://www.nec.go.kr/common/board/Download.do?bcIdx=303199&cbIdx=1107&streFileNm=a148c7c6-e1e8-4e8b-85ab-f3d27ec74b1d.pdf", "type": "pdf" - Network accessline 270
"title": "선거기관의역할및대응사례_연구_등_국외출장보고서(오스트리아_크로아티아).pdf", "url": "https://www.nec.go.kr/common/board/Download.do?bcIdx=303199&cbIdx=1107&streFileNm=a148c7c6-e1e8-4e8b-85ab-f3d27ec74b1d.pdf", "type": "pdf" - Network accessline 271
"url": "https://www.nec.go.kr/common/board/Download.do?bcIdx=303199&cbIdx=1107&streFileNm=a148c7c6-e1e8-4e8b-85ab-f3d27ec74b1d.pdf", - Network accessline 271
"url": "https://www.nec.go.kr/common/board/Download.do?bcIdx=303199&cbIdx=1107&streFileNm=a148c7c6-e1e8-4e8b-85ab-f3d27ec74b1d.pdf",
gov-overseas-trip-report/scripts/gov_overseas_trip_report.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 52
kind="agency_board", description="공무국외출장보고서 게시판 (첨부 PDF 전량 공개)", list_url="https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 52
kind="agency_board", description="공무국외출장보고서 게시판 (첨부 PDF 전량 공개)", list_url="https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 53
description="공무국외출장보고서 게시판 (첨부 PDF 전량 공개)", list_url="https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", supports_list=True, - Network accessline 53
description="공무국외출장보고서 게시판 (첨부 PDF 전량 공개)", list_url="https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", supports_list=True, - Network accessline 54
list_url="https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 54
list_url="https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 62
kind="agency_board", description="사전정보공개 국외출장 현황 게시판", list_url="https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", - Network accessline 62
kind="agency_board", description="사전정보공개 국외출장 현황 게시판", list_url="https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", - Network accessline 63
description="사전정보공개 국외출장 현황 게시판", list_url="https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", supports_list=True, - Network accessline 63
description="사전정보공개 국외출장 현황 게시판", list_url="https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", supports_list=True, - Network accessline 64
list_url="https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", - Network accessline 64
list_url="https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", - Network accessline 72
kind="policy_guide", description="공무국외출장 제도·BTIS 등록 안내 페이지", list_url="https://www.mpm.go.kr/mpm/info/infoService/BizService08/", - Network accessline 72
kind="policy_guide", description="공무국외출장 제도·BTIS 등록 안내 페이지", list_url="https://www.mpm.go.kr/mpm/info/infoService/BizService08/", - Network accessline 73
description="공무국외출장 제도·BTIS 등록 안내 페이지", list_url="https://www.mpm.go.kr/mpm/info/infoService/BizService08/", supports_list=False, - Network accessline 73
description="공무국외출장 제도·BTIS 등록 안내 페이지", list_url="https://www.mpm.go.kr/mpm/info/infoService/BizService08/", supports_list=False, - Network accessline 74
list_url="https://www.mpm.go.kr/mpm/info/infoService/BizService08/", - Network accessline 74
list_url="https://www.mpm.go.kr/mpm/info/infoService/BizService08/", - Network accessline 83
description="위법 공무국외출장 지방자치단체 처리기준 등 정책 자료", list_url=( "https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do" - Network accessline 83
description="위법 공무국외출장 지방자치단체 처리기준 등 정책 자료", list_url=( "https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do" - Network accessline 84
list_url=( "https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do" "?bbsId=BBSMSTR_000000000016&nttId=127619" - Network accessline 84
list_url=( "https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do" "?bbsId=BBSMSTR_000000000016&nttId=127619" - Network accessline 85
"https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do" - Network accessline 85
"https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do" - Network accessline 95
kind="federated_search", description="open.go.kr 사전정보 키워드 검색 (다수 기관 문서 메타)", list_url="https://www.open.go.kr/othicInfo/infoList/infoList.do", - Network accessline 95
kind="federated_search", description="open.go.kr 사전정보 키워드 검색 (다수 기관 문서 메타)", list_url="https://www.open.go.kr/othicInfo/infoList/infoList.do", - Network accessline 96
description="open.go.kr 사전정보 키워드 검색 (다수 기관 문서 메타)", list_url="https://www.open.go.kr/othicInfo/infoList/infoList.do", supports_list=True, - Network accessline 96
description="open.go.kr 사전정보 키워드 검색 (다수 기관 문서 메타)", list_url="https://www.open.go.kr/othicInfo/infoList/infoList.do", supports_list=True, - Network accessline 97
list_url="https://www.open.go.kr/othicInfo/infoList/infoList.do", - Network accessline 97
list_url="https://www.open.go.kr/othicInfo/infoList/infoList.do", - Network accessline 105
kind="council_board", description="공무국외출장 결과 게시판", list_url="https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", - Network accessline 105
kind="council_board", description="공무국외출장 결과 게시판", list_url="https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", - Network accessline 106
description="공무국외출장 결과 게시판", list_url="https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", supports_list=True, - Network accessline 106
description="공무국외출장 결과 게시판", list_url="https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", supports_list=True, - Network accessline 107
list_url="https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", - Network accessline 107
list_url="https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", - Network accessline 115
kind="council_board", description="공무국외출장 계획·결과 보고서 게시판", list_url="https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", - Network accessline 115
kind="council_board", description="공무국외출장 계획·결과 보고서 게시판", list_url="https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", - Network accessline 116
description="공무국외출장 계획·결과 보고서 게시판", list_url="https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", supports_list=True, - Network accessline 116
description="공무국외출장 계획·결과 보고서 게시판", list_url="https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", supports_list=True, - Network accessline 117
list_url="https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", - Network accessline 117
list_url="https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", - Network accessline 125
kind="council_board", description="공무원 국외훈련결과보고서 게시판", list_url="https://www.ggc.go.kr/site/main/board/training_resrep/list", - Network accessline 125
kind="council_board", description="공무원 국외훈련결과보고서 게시판", list_url="https://www.ggc.go.kr/site/main/board/training_resrep/list", - Network accessline 126
description="공무원 국외훈련결과보고서 게시판", list_url="https://www.ggc.go.kr/site/main/board/training_resrep/list", supports_list=True, - Network accessline 126
description="공무원 국외훈련결과보고서 게시판", list_url="https://www.ggc.go.kr/site/main/board/training_resrep/list", supports_list=True, - Network accessline 127
list_url="https://www.ggc.go.kr/site/main/board/training_resrep/list", - Network accessline 127
list_url="https://www.ggc.go.kr/site/main/board/training_resrep/list", - Network accessline 135
kind="council_board", description="공지사항 중 공무국외출장 계획서 공개 글", list_url="https://council.gb.go.kr/kr/bbs?bbs_id=notice", - Network accessline 135
kind="council_board", description="공지사항 중 공무국외출장 계획서 공개 글", list_url="https://council.gb.go.kr/kr/bbs?bbs_id=notice", - Network accessline 136
description="공지사항 중 공무국외출장 계획서 공개 글", list_url="https://council.gb.go.kr/kr/bbs?bbs_id=notice", supports_list=True, - Network accessline 136
description="공지사항 중 공무국외출장 계획서 공개 글", list_url="https://council.gb.go.kr/kr/bbs?bbs_id=notice", supports_list=True, - Network accessline 137
list_url="https://council.gb.go.kr/kr/bbs?bbs_id=notice", - Network accessline 137
list_url="https://council.gb.go.kr/kr/bbs?bbs_id=notice", - Network accessline 148
*, timeout: int = DEFAULT_TIMEOUT, opener: Callable[[urllib.request.Request, int], Any] | None = None, - Network accessline 148
*, timeout: int = DEFAULT_TIMEOUT, opener: Callable[[urllib.request.Request, int], Any] | None = None, - Network accessline 149
timeout: int = DEFAULT_TIMEOUT, opener: Callable[[urllib.request.Request, int], Any] | None = None, ) -> None: - Network accessline 149
timeout: int = DEFAULT_TIMEOUT, opener: Callable[[urllib.request.Request, int], Any] | None = None, ) -> None: - Network accessline 150
opener: Callable[[urllib.request.Request, int], Any] | None = None, - Network accessline 150
opener: Callable[[urllib.request.Request, int], Any] | None = None, - Network accessline 155
@staticmethod def _default_open(req: urllib.request.Request, timeout: int) -> Any: - Network accessline 155
@staticmethod def _default_open(req: urllib.request.Request, timeout: int) -> Any: - Network accessline 156
def _default_open(req: urllib.request.Request, timeout: int) -> Any: - Network accessline 156
def _default_open(req: urllib.request.Request, timeout: int) -> Any: - Network accessline 157
return urllib.request.urlopen(req, timeout=timeout) - Network accessline 157
return urllib.request.urlopen(req, timeout=timeout) - Network accessline 165
if data is not None: headers["Content-Type"] = "application/x-www-form-urlencoded" req = urllib.request.Request(url, data=data, headers=headers) - Network accessline 165
if data is not None: headers["Content-Type"] = "application/x-www-form-urlencoded" req = urllib.request.Request(url, data=data, headers=headers) - Network accessline 166
headers["Content-Type"] = "application/x-www-form-urlencoded" req = urllib.request.Request(url, data=data, headers=headers) try: - Network accessline 166
headers["Content-Type"] = "application/x-www-form-urlencoded" req = urllib.request.Request(url, data=data, headers=headers) try: - Network accessline 167
req = urllib.request.Request(url, data=data, headers=headers) - Network accessline 167
req = urllib.request.Request(url, data=data, headers=headers) - Network accessline 226
def parse_nec_list(html: str, *, base: str = "https://www.nec.go.kr") -> dict[str, Any]: - Network accessline 226
def parse_nec_list(html: str, *, base: str = "https://www.nec.go.kr") -> dict[str, Any]: - Network accessline 271
for page in range(1, max_pages + 1): url = f"https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex={page}" - Network accessline 271
for page in range(1, max_pages + 1): url = f"https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex={page}" - Network accessline 272
url = f"https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex={page}" - Network accessline 272
url = f"https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex={page}" - Network accessline 319
continue seen.add(list_no) detail = absolute("https://www.acrc.go.kr/", m.group(1)) - Network accessline 319
continue seen.add(list_no) detail = absolute("https://www.acrc.go.kr/", m.group(1)) - Network accessline 320
seen.add(list_no) detail = absolute("https://www.acrc.go.kr/", m.group(1)) if "bid=" not in detail: - Network accessline 320
seen.add(list_no) detail = absolute("https://www.acrc.go.kr/", m.group(1)) if "bid=" not in detail: - Network accessline 321
detail = absolute("https://www.acrc.go.kr/", m.group(1)) - Network accessline 321
detail = absolute("https://www.acrc.go.kr/", m.group(1)) - Network accessline 322
if "bid=" not in detail: detail = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" - Network accessline 322
if "bid=" not in detail: detail = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" - Network accessline 323
detail = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" f"&act=view&list_no={list_no}" - Network accessline 323
detail = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" f"&act=view&list_no={list_no}" - Network accessline 324
"https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" - Network accessline 324
"https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" - Network accessline 342
for page in range(1, max_pages + 1): url = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" - Network accessline 342
for page in range(1, max_pages + 1): url = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" - Network accessline 343
url = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" f"&nPage={page}" - Network accessline 343
url = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" f"&nPage={page}" - Network accessline 344
"https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" - Network accessline 344
"https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" - Network accessline 366
raise FetchError("invalid_input", "acrc detail requires --id list_no") url = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" - Network accessline 366
raise FetchError("invalid_input", "acrc detail requires --id list_no") url = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" - Network accessline 367
url = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" f"&act=view&list_no={urllib.parse.quote(list_no)}" - Network accessline 367
url = ( "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" f"&act=view&list_no={urllib.parse.quote(list_no)}" - Network accessline 368
"https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" f"&act=view&list_no={urllib.parse.quote(list_no)}" ) - Network accessline 368
"https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000" f"&act=view&list_no={urllib.parse.quote(list_no)}" ) - Network accessline 376
{ "title": "attachment", "url": absolute("https://www.acrc.go.kr/", m.group(1)), - Network accessline 376
{ "title": "attachment", "url": absolute("https://www.acrc.go.kr/", m.group(1)), - Network accessline 377
"title": "attachment", "url": absolute("https://www.acrc.go.kr/", m.group(1)), "type": "hwpx", - Network accessline 377
"title": "attachment", "url": absolute("https://www.acrc.go.kr/", m.group(1)), "type": "hwpx", - Network accessline 378
"url": absolute("https://www.acrc.go.kr/", m.group(1)), - Network accessline 378
"url": absolute("https://www.acrc.go.kr/", m.group(1)), - Network accessline 407
page = int(args.get("page") or 1) url = ( "https://www.open.go.kr/othicInfo/infoList/infoList.do?" - Network accessline 407
page = int(args.get("page") or 1) url = ( "https://www.open.go.kr/othicInfo/infoList/infoList.do?" - Network accessline 408
url = ( "https://www.open.go.kr/othicInfo/infoList/infoList.do?" + urllib.parse.urlencode({"mustKeyword": keyword, "pageIndex": str(page)}) - Network accessline 408
url = ( "https://www.open.go.kr/othicInfo/infoList/infoList.do?" + urllib.parse.urlencode({"mustKeyword": keyword, "pageIndex": str(page)}) - Network accessline 409
"https://www.open.go.kr/othicInfo/infoList/infoList.do?" + urllib.parse.urlencode({"mustKeyword": keyword, "pageIndex": str(page)}) ) - Network accessline 409
"https://www.open.go.kr/othicInfo/infoList/infoList.do?" + urllib.parse.urlencode({"mustKeyword": keyword, "pageIndex": str(page)}) ) - Network accessline 451
page = int(args.get("page") or 1) keyword = (args.get("keyword") or "").strip() url = f"https://council.daegu.go.kr/kr/bbs?bbs_id=overseas&page={page}" - Network accessline 451
page = int(args.get("page") or 1) keyword = (args.get("keyword") or "").strip() url = f"https://council.daegu.go.kr/kr/bbs?bbs_id=overseas&page={page}" - Network accessline 452
keyword = (args.get("keyword") or "").strip() url = f"https://council.daegu.go.kr/kr/bbs?bbs_id=overseas&page={page}" html, final = client.fetch_text(url) - Network accessline 452
keyword = (args.get("keyword") or "").strip() url = f"https://council.daegu.go.kr/kr/bbs?bbs_id=overseas&page={page}" html, final = client.fetch_text(url) - Network accessline 453
url = f"https://council.daegu.go.kr/kr/bbs?bbs_id=overseas&page={page}" - Network accessline 453
url = f"https://council.daegu.go.kr/kr/bbs?bbs_id=overseas&page={page}" - Network accessline 467
if not title or len(title) < 4: continue abs_url = absolute("https://council.daegu.go.kr/", href) - Network accessline 467
if not title or len(title) < 4: continue abs_url = absolute("https://council.daegu.go.kr/", href) - Network accessline 468
continue abs_url = absolute("https://council.daegu.go.kr/", href) uid_m = re.search(r"uid=([0-9A-Fa-f]+)", abs_url) - Network accessline 468
continue abs_url = absolute("https://council.daegu.go.kr/", href) uid_m = re.search(r"uid=([0-9A-Fa-f]+)", abs_url) - Network accessline 469
abs_url = absolute("https://council.daegu.go.kr/", href) - Network accessline 469
abs_url = absolute("https://council.daegu.go.kr/", href) - Network accessline 498
if not detail_url and uid: detail_url = ( "https://council.daegu.go.kr/kr/bbs?reform=view" - Network accessline 498
if not detail_url and uid: detail_url = ( "https://council.daegu.go.kr/kr/bbs?reform=view" - Network accessline 499
detail_url = ( "https://council.daegu.go.kr/kr/bbs?reform=view" f"&uid={urllib.parse.quote(uid)}&bbs_id=overseas" - Network accessline 499
detail_url = ( "https://council.daegu.go.kr/kr/bbs?reform=view" f"&uid={urllib.parse.quote(uid)}&bbs_id=overseas" - Network accessline 500
"https://council.daegu.go.kr/kr/bbs?reform=view" f"&uid={urllib.parse.quote(uid)}&bbs_id=overseas" ) - Network accessline 500
"https://council.daegu.go.kr/kr/bbs?reform=view" f"&uid={urllib.parse.quote(uid)}&bbs_id=overseas" ) - Network accessline 501
f"&uid={urllib.parse.quote(uid)}&bbs_id=overseas" ) if not detail_url.startswith("https://council.daegu.go.kr/"): - Network accessline 501
f"&uid={urllib.parse.quote(uid)}&bbs_id=overseas" ) if not detail_url.startswith("https://council.daegu.go.kr/"): - Network accessline 502
) if not detail_url.startswith("https://council.daegu.go.kr/"): raise FetchError("invalid_input", "daegu detail requires official council.daegu.go.kr URL or --id uid") - Network accessline 502
) if not detail_url.startswith("https://council.daegu.go.kr/"): raise FetchError("invalid_input", "daegu detail requires official council.daegu.go.kr URL or --id uid") - Network accessline 503
if not detail_url.startswith("https://council.daegu.go.kr/"): - Network accessline 503
if not detail_url.startswith("https://council.daegu.go.kr/"): - Network accessline 508
href = unescape(m.group(2)) if re.search(r"/attach/bbs/overseas/|/kr/bbs/download", href): url = absolute("https://council.daegu.go.kr/", href) - Network accessline 508
href = unescape(m.group(2)) if re.search(r"/attach/bbs/overseas/|/kr/bbs/download", href): url = absolute("https://council.daegu.go.kr/", href) - Network accessline 510
url = absolute("https://council.daegu.go.kr/", href) - Network accessline 510
url = absolute("https://council.daegu.go.kr/", href) - Network accessline 559
page = int(args.get("page") or 1) keyword = (args.get("keyword") or "").strip() url = f"https://council.daejeon.go.kr/svc/inf/TrainingReportList.do?pageNo={page}" - Network accessline 559
page = int(args.get("page") or 1) keyword = (args.get("keyword") or "").strip() url = f"https://council.daejeon.go.kr/svc/inf/TrainingReportList.do?pageNo={page}" - Network accessline 560
keyword = (args.get("keyword") or "").strip() url = f"https://council.daejeon.go.kr/svc/inf/TrainingReportList.do?pageNo={page}" html, final = client.fetch_text(url) - Network accessline 560
keyword = (args.get("keyword") or "").strip() url = f"https://council.daejeon.go.kr/svc/inf/TrainingReportList.do?pageNo={page}" html, final = client.fetch_text(url) - Network accessline 561
url = f"https://council.daejeon.go.kr/svc/inf/TrainingReportList.do?pageNo={page}" - Network accessline 561
url = f"https://council.daejeon.go.kr/svc/inf/TrainingReportList.do?pageNo={page}" - Network accessline 569
if not title: continue href = absolute("https://council.daejeon.go.kr", m.group(1)) - Network accessline 569
if not title: continue href = absolute("https://council.daejeon.go.kr", m.group(1)) - Network accessline 570
continue href = absolute("https://council.daejeon.go.kr", m.group(1)) sn = re.search(r"bbsSn=(\d+)", href) - Network accessline 570
continue href = absolute("https://council.daejeon.go.kr", m.group(1)) sn = re.search(r"bbsSn=(\d+)", href) - Network accessline 571
href = absolute("https://council.daejeon.go.kr", m.group(1)) - Network accessline 571
href = absolute("https://council.daejeon.go.kr", m.group(1)) - Network accessline 595
if not detail_url and bbs_sn: detail_url = ( "https://council.daejeon.go.kr/svc/inf/TrainingReportView.do?" - Network accessline 595
if not detail_url and bbs_sn: detail_url = ( "https://council.daejeon.go.kr/svc/inf/TrainingReportView.do?" - Network accessline 596
detail_url = ( "https://council.daejeon.go.kr/svc/inf/TrainingReportView.do?" + urllib.parse.urlencode({"bbsSn": bbs_sn, "pageNo": "1"}) - Network accessline 596
detail_url = ( "https://council.daejeon.go.kr/svc/inf/TrainingReportView.do?" + urllib.parse.urlencode({"bbsSn": bbs_sn, "pageNo": "1"}) - Network accessline 597
"https://council.daejeon.go.kr/svc/inf/TrainingReportView.do?" + urllib.parse.urlencode({"bbsSn": bbs_sn, "pageNo": "1"}) ) - Network accessline 597
"https://council.daejeon.go.kr/svc/inf/TrainingReportView.do?" + urllib.parse.urlencode({"bbsSn": bbs_sn, "pageNo": "1"}) ) - Network accessline 598
+ urllib.parse.urlencode({"bbsSn": bbs_sn, "pageNo": "1"}) ) if not detail_url.startswith("https://council.daejeon.go.kr/"): - Network accessline 598
+ urllib.parse.urlencode({"bbsSn": bbs_sn, "pageNo": "1"}) ) if not detail_url.startswith("https://council.daejeon.go.kr/"): - Network accessline 599
) if not detail_url.startswith("https://council.daejeon.go.kr/"): raise FetchError("invalid_input", "daejeon detail requires official URL or --id bbsSn") - Network accessline 599
) if not detail_url.startswith("https://council.daejeon.go.kr/"): raise FetchError("invalid_input", "daejeon detail requires official URL or --id bbsSn") - Network accessline 600
if not detail_url.startswith("https://council.daejeon.go.kr/"): - Network accessline 600
if not detail_url.startswith("https://council.daejeon.go.kr/"): - Network accessline 604
attachments: list[dict[str, str]] = [] for m in re.finditer(r'href="(/bbs/FileDownLoadProc\.do\?flSn=\d+)"', html): url = absolute("https://council.daejeon.go.kr", m.group(1)) - Network accessline 604
attachments: list[dict[str, str]] = [] for m in re.finditer(r'href="(/bbs/FileDownLoadProc\.do\?flSn=\d+)"', html): url = absolute("https://council.daejeon.go.kr", m.group(1)) - Network accessline 605
for m in re.finditer(r'href="(/bbs/FileDownLoadProc\.do\?flSn=\d+)"', html): url = absolute("https://council.daejeon.go.kr", m.group(1)) attachments.append({"title": f"flSn={urllib.parse.parse_qs(urllib.parse.urlparse(url).q - Network accessline 605
for m in re.finditer(r'href="(/bbs/FileDownLoadProc\.do\?flSn=\d+)"', html): url = absolute("https://council.daejeon.go.kr", m.group(1)) attachments.append({"title": f"flSn={urllib.parse.parse_qs(urllib.parse.urlparse(url).q - Network accessline 606
url = absolute("https://council.daejeon.go.kr", m.group(1)) attachments.append({"title": f"flSn={urllib.parse.parse_qs(urllib.parse.urlparse(url).query).get('flSn', [''])[0]}", "url": url, "type": "unknown"}) return { - Network accessline 606
url = absolute("https://council.daejeon.go.kr", m.group(1)) attachments.append({"title": f"flSn={urllib.parse.parse_qs(urllib.parse.urlparse(url).query).get('flSn', [''])[0]}", "url": url, "type": "unknown"}) return { - Network accessline 633
provider="gyeonggi_council", title=title, detail_url=absolute("https://www.ggc.go.kr", m.group(1)), - Network accessline 633
provider="gyeonggi_council", title=title, detail_url=absolute("https://www.ggc.go.kr", m.group(1)), - Network accessline 634
title=title, detail_url=absolute("https://www.ggc.go.kr", m.group(1)), ) - Network accessline 634
title=title, detail_url=absolute("https://www.ggc.go.kr", m.group(1)), ) - Network accessline 635
detail_url=absolute("https://www.ggc.go.kr", m.group(1)), - Network accessline 635
detail_url=absolute("https://www.ggc.go.kr", m.group(1)), - Network accessline 649
def detail_gyeonggi(client: Client, args: dict[str, Any]) -> dict[str, Any]: detail_url = (args.get("url") or "").strip() if not detail_url.startswith("https://www.ggc.go.kr/site/main/board/training_resrep/"): - Network accessline 649
def detail_gyeonggi(client: Client, args: dict[str, Any]) -> dict[str, Any]: detail_url = (args.get("url") or "").strip() if not detail_url.startswith("https://www.ggc.go.kr/site/main/board/training_resrep/"): - Network accessline 650
detail_url = (args.get("url") or "").strip() if not detail_url.startswith("https://www.ggc.go.kr/site/main/board/training_resrep/"): raise FetchError("invalid_input", "gyeonggi detail requires official training_resrep URL") - Network accessline 650
detail_url = (args.get("url") or "").strip() if not detail_url.startswith("https://www.ggc.go.kr/site/main/board/training_resrep/"): raise FetchError("invalid_input", "gyeonggi detail requires official training_resrep URL") - Network accessline 651
if not detail_url.startswith("https://www.ggc.go.kr/site/main/board/training_resrep/"): - Network accessline 651
if not detail_url.startswith("https://www.ggc.go.kr/site/main/board/training_resrep/"): - Network accessline 658
{ "title": "download", "url": absolute("https://www.ggc.go.kr", m.group(1)), - Network accessline 658
{ "title": "download", "url": absolute("https://www.ggc.go.kr", m.group(1)), - Network accessline 659
"title": "download", "url": absolute("https://www.ggc.go.kr", m.group(1)), "type": "unknown", - Network accessline 659
"title": "download", "url": absolute("https://www.ggc.go.kr", m.group(1)), "type": "unknown", - Network accessline 660
"url": absolute("https://www.ggc.go.kr", m.group(1)), - Network accessline 660
"url": absolute("https://www.ggc.go.kr", m.group(1)), - Network accessline 693
provider="gyeongbuk_council", title=title, detail_url=absolute("https://council.gb.go.kr/", href), - Network accessline 693
provider="gyeongbuk_council", title=title, detail_url=absolute("https://council.gb.go.kr/", href), - Network accessline 694
title=title, detail_url=absolute("https://council.gb.go.kr/", href), ) - Network accessline 694
title=title, detail_url=absolute("https://council.gb.go.kr/", href), ) - Network accessline 695
detail_url=absolute("https://council.gb.go.kr/", href), - Network accessline 695
detail_url=absolute("https://council.gb.go.kr/", href), - Network accessline 713
def detail_gyeongbuk(client: Client, args: dict[str, Any]) -> dict[str, Any]: detail_url = (args.get("url") or "").strip() if not detail_url.startswith("https://council.gb.go.kr/"): - Network accessline 713
def detail_gyeongbuk(client: Client, args: dict[str, Any]) -> dict[str, Any]: detail_url = (args.get("url") or "").strip() if not detail_url.startswith("https://council.gb.go.kr/"): - Network accessline 714
detail_url = (args.get("url") or "").strip() if not detail_url.startswith("https://council.gb.go.kr/"): raise FetchError("invalid_input", "gyeongbuk detail requires official council.gb.go.kr URL") - Network accessline 714
detail_url = (args.get("url") or "").strip() if not detail_url.startswith("https://council.gb.go.kr/"): raise FetchError("invalid_input", "gyeongbuk detail requires official council.gb.go.kr URL") - Network accessline 715
if not detail_url.startswith("https://council.gb.go.kr/"): - Network accessline 715
if not detail_url.startswith("https://council.gb.go.kr/"): - Network accessline 724
{ "title": href.rsplit("/", 1)[-1][:80], "url": absolute("https://council.gb.go.kr/", href), - Network accessline 724
{ "title": href.rsplit("/", 1)[-1][:80], "url": absolute("https://council.gb.go.kr/", href), - Network accessline 725
"title": href.rsplit("/", 1)[-1][:80], "url": absolute("https://council.gb.go.kr/", href), "type": "unknown", - Network accessline 725
"title": href.rsplit("/", 1)[-1][:80], "url": absolute("https://council.gb.go.kr/", href), "type": "unknown", - Network accessline 726
"url": absolute("https://council.gb.go.kr/", href), - Network accessline 726
"url": absolute("https://council.gb.go.kr/", href), - Network accessline 748
href = unescape(m.group(1)) if re.search(r"BTIS|국외출장|open\.go\.kr|여비", label + href, re.I): links.append({"label": label or href, "url": absolute("https://www.mpm.go.kr", href)}) - Network accessline 748
href = unescape(m.group(1)) if re.search(r"BTIS|국외출장|open\.go\.kr|여비", label + href, re.I): links.append({"label": label or href, "url": absolute("https://www.mpm.go.kr", href)}) - Network accessline 749
if re.search(r"BTIS|국외출장|open\.go\.kr|여비", label + href, re.I): links.append({"label": label or href, "url": absolute("https://www.mpm.go.kr", href)}) return { - Network accessline 749
if re.search(r"BTIS|국외출장|open\.go\.kr|여비", label + href, re.I): links.append({"label": label or href, "url": absolute("https://www.mpm.go.kr", href)}) return { - Network accessline 750
links.append({"label": label or href, "url": absolute("https://www.mpm.go.kr", href)}) - Network accessline 750
links.append({"label": label or href, "url": absolute("https://www.mpm.go.kr", href)}) - Network accessline 772
{ "title": "FileDown", "url": absolute("https://www.mois.go.kr", m.group(1)), - Network accessline 772
{ "title": "FileDown", "url": absolute("https://www.mois.go.kr", m.group(1)), - Network accessline 773
"title": "FileDown", "url": absolute("https://www.mois.go.kr", m.group(1)), "type": "unknown", - Network accessline 773
"title": "FileDown", "url": absolute("https://www.mois.go.kr", m.group(1)), "type": "unknown", - Network accessline 774
"url": absolute("https://www.mois.go.kr", m.group(1)), - Network accessline 774
"url": absolute("https://www.mois.go.kr", m.group(1)), - Network accessline 838
"name": "정보공개포털", "kind": "federated_search", "list_url": "https://www.open.go.kr/othicInfo/infoList/infoList.do", - Network accessline 838
"name": "정보공개포털", "kind": "federated_search", "list_url": "https://www.open.go.kr/othicInfo/infoList/infoList.do", - Network accessline 839
"kind": "federated_search", "list_url": "https://www.open.go.kr/othicInfo/infoList/infoList.do", "notes": "mustKeyword JSON 메타. 원문 파일 URL은 제한적일 수 있음.", - Network accessline 839
"kind": "federated_search", "list_url": "https://www.open.go.kr/othicInfo/infoList/infoList.do", "notes": "mustKeyword JSON 메타. 원문 파일 URL은 제한적일 수 있음.", - Network accessline 840
"list_url": "https://www.open.go.kr/othicInfo/infoList/infoList.do", - Network accessline 840
"list_url": "https://www.open.go.kr/othicInfo/infoList/infoList.do", - Network accessline 846
"name": "중앙선거관리위원회", "kind": "agency_board", "list_url": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 846
"name": "중앙선거관리위원회", "kind": "agency_board", "list_url": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 847
"kind": "agency_board", "list_url": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", }, - Network accessline 847
"kind": "agency_board", "list_url": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", }, - Network accessline 848
"list_url": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 848
"list_url": "https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107", - Network accessline 852
"name": "국민권익위원회 국외출장 현황", "kind": "agency_board", "list_url": "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", - Network accessline 852
"name": "국민권익위원회 국외출장 현황", "kind": "agency_board", "list_url": "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", - Network accessline 853
"kind": "agency_board", "list_url": "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", }, - Network accessline 853
"kind": "agency_board", "list_url": "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", }, - Network accessline 854
"list_url": "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", - Network accessline 854
"list_url": "https://www.acrc.go.kr/board.es?mid=a10502060000&bid=1000", - Network accessline 858
"name": "대구광역시의회", "kind": "council_board", "list_url": "https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", - Network accessline 858
"name": "대구광역시의회", "kind": "council_board", "list_url": "https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", - Network accessline 859
"kind": "council_board", "list_url": "https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", }, - Network accessline 859
"kind": "council_board", "list_url": "https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", }, - Network accessline 860
"list_url": "https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", - Network accessline 860
"list_url": "https://council.daegu.go.kr/kr/bbs?bbs_id=overseas", - Network accessline 864
"name": "대전광역시의회", "kind": "council_board", "list_url": "https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", - Network accessline 864
"name": "대전광역시의회", "kind": "council_board", "list_url": "https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", - Network accessline 865
"kind": "council_board", "list_url": "https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", }, - Network accessline 865
"kind": "council_board", "list_url": "https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", }, - Network accessline 866
"list_url": "https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", - Network accessline 866
"list_url": "https://council.daejeon.go.kr/svc/inf/TrainingReportList.do", - Network accessline 870
"name": "경기도의회", "kind": "council_board", "list_url": "https://www.ggc.go.kr/site/main/board/training_resrep/list", - Network accessline 870
"name": "경기도의회", "kind": "council_board", "list_url": "https://www.ggc.go.kr/site/main/board/training_resrep/list", - Network accessline 871
"kind": "council_board", "list_url": "https://www.ggc.go.kr/site/main/board/training_resrep/list", }, - Network accessline 871
"kind": "council_board", "list_url": "https://www.ggc.go.kr/site/main/board/training_resrep/list", }, - Network accessline 872
"list_url": "https://www.ggc.go.kr/site/main/board/training_resrep/list", - Network accessline 872
"list_url": "https://www.ggc.go.kr/site/main/board/training_resrep/list", - Network accessline 876
"name": "경상북도의회 공지", "kind": "council_board", "list_url": "https://council.gb.go.kr/kr/bbs?bbs_id=notice", - Network accessline 876
"name": "경상북도의회 공지", "kind": "council_board", "list_url": "https://council.gb.go.kr/kr/bbs?bbs_id=notice", - Network accessline 877
"kind": "council_board", "list_url": "https://council.gb.go.kr/kr/bbs?bbs_id=notice", }, - Network accessline 877
"kind": "council_board", "list_url": "https://council.gb.go.kr/kr/bbs?bbs_id=notice", }, - Network accessline 878
"list_url": "https://council.gb.go.kr/kr/bbs?bbs_id=notice", - Network accessline 878
"list_url": "https://council.gb.go.kr/kr/bbs?bbs_id=notice", - Network accessline 1102
if not bc: raise FetchError("invalid_input", "nec detail requires --id bcIdx") detail = f"https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx={bc}" - Network accessline 1102
if not bc: raise FetchError("invalid_input", "nec detail requires --id bcIdx") detail = f"https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx={bc}" - Network accessline 1103
raise FetchError("invalid_input", "nec detail requires --id bcIdx") detail = f"https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx={bc}" html, final = client.fetch_text(detail) - Network accessline 1103
raise FetchError("invalid_input", "nec detail requires --id bcIdx") detail = f"https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx={bc}" html, final = client.fetch_text(detail) - Network accessline 1104
detail = f"https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx={bc}" html, final = client.fetch_text(detail) dl = re.findall(r'href="(/common/board/Download\.do\?[^"]+)"', html) - Network accessline 1104
detail = f"https://www.nec.go.kr/site/nec/ex/bbs/View.do?cbIdx=1107&bcIdx={bc}" html, final = client.fetch_text(detail) dl = re.findall(r'href="(/common/board/Download\.do\?[^"]+)"', html) - Network accessline 1109
for i, href in enumerate(dl): name = clean_text(file_names[i]) if i < len(file_names) else "attachment" url = absolute("https://www.nec.go.kr", href) - Network accessline 1109
for i, href in enumerate(dl): name = clean_text(file_names[i]) if i < len(file_names) else "attachment" url = absolute("https://www.nec.go.kr", href) - Network accessline 1110
name = clean_text(file_names[i]) if i < len(file_names) else "attachment" url = absolute("https://www.nec.go.kr", href) attachments.append( - Network accessline 1110
name = clean_text(file_names[i]) if i < len(file_names) else "attachment" url = absolute("https://www.nec.go.kr", href) attachments.append( - Network accessline 1111
url = absolute("https://www.nec.go.kr", href) - Network accessline 1111
url = absolute("https://www.nec.go.kr", href)
gov-overseas-trip-report/tests/fixtures/daejeon-list.html
- Network accessline 191
<li><a href="https://mpccak.or.kr/" target="_blank" title="대한민국시도의회의장협의회 누리집, 새창으로 이동">대한민국시도의회의장협의회</a></li> - Network accessline 191
<li><a href="https://mpccak.or.kr/" target="_blank" title="대한민국시도의회의장협의회 누리집, 새창으로 이동">대한민국시도의회의장협의회</a></li> - Network accessline 193
<li><a href="https://www.smc.seoul.kr/main/index.do" target="_blank" title="서울특별시의회 누리집, 새창으로 이동">서울특별시의회</a></li> - Network accessline 193
<li><a href="https://www.smc.seoul.kr/main/index.do" target="_blank" title="서울특별시의회 누리집, 새창으로 이동">서울특별시의회</a></li> - Network accessline 195
<li><a href="https://www.icouncil.go.kr/main/" target="_blank" title="인천광역시의회 누리집, 새창으로 이동">인천광역시의회</a>< - Network accessline 195
<li><a href="https://www.icouncil.go.kr/main/" target="_blank" title="인천광역시의회 누리집, 새창으로 이동">인천광역시의회</a><
gov-overseas-trip-report/tests/fixtures/ggc-list.html
- Network accessline 1
<!-- slim fixture --> /content/ggcMaru">경기마루</a><ul class="depth3"><li class=""><a href="/site/main/content/ggcMaru">경기마루 안내</a></li><li class="link"><a href="/maru/360vr.html" title="새창" target="_blank">경기마루 VR</a></li><li class=""><a href - Network accessline 1
<!-- slim fixture --> /content/ggcMaru">경기마루</a><ul class="depth3"><li class=""><a href="/site/main/content/ggcMaru">경기마루 안내</a></li><li class="link"><a href="/maru/360vr.html" title="새창" target="_blank">경기마루 VR</a></li><li class=""><a href - Network accessline 2
/content/ggcMaru">경기마루</a><ul class="depth3"><li class=""><a href="/site/main/content/ggcMaru">경기마루 안내</a></li><li class="link"><a href="/maru/360vr.html" title="새창" target="_blank">경기마루 VR</a></li><li class=""><a href="/site/main/content/g - Network accessline 2
/content/ggcMaru">경기마루</a><ul class="depth3"><li class=""><a href="/site/main/content/ggcMaru">경기마루 안내</a></li><li class="link"><a href="/maru/360vr.html" title="새창" target="_blank">경기마루 VR</a></li><li class=""><a href="/site/main/content/g - Network accessline 22
<div class="all_menu"> <div class="all_menu_top clear"> <div class="tct"> <h3>전체메뉴</h3> <p>All Menu</p> </div> <div class="fr"><a href="#" class="am_close">닫기</a></div> </div> <div class="am_cont"><div class="am_dept - Network accessline 22
<div class="all_menu"> <div class="all_menu_top clear"> <div class="tct"> <h3>전체메뉴</h3> <p>All Menu</p> </div> <div class="fr"><a href="#" class="am_close">닫기</a></div> </div> <div class="am_cont"><div class="am_dept - Network accessline 23
/site/main/council/organization">의회사무처 </a><ul class="am_dep2"> <li><a href="/site/main/council/organization">조직현황 </a></li> <li><a href="/site/main/board/wrkpl/list">업무계획 </a></li> <li><a href="/site/main/content/policysupoperstatemenu">정책 - Network accessline 23
/site/main/council/organization">의회사무처 </a><ul class="am_dep2"> <li><a href="/site/main/council/organization">조직현황 </a></li> <li><a href="/site/main/board/wrkpl/list">업무계획 </a></li> <li><a href="/site/main/content/policysupoperstatemenu">정책 - Network accessline 123
<ul class="snb_drop"><li class='dep1'><a class="snba" href="/site/main/board/lgslt">법규정보</a><ul class="dep2"><li><a class="snba" href="/site/main/board/lgslt">입법예고</a></li><li><a class="snba link" href="https://www.elis.go.kr/alrpop/locgovA - Network accessline 123
<ul class="snb_drop"><li class='dep1'><a class="snba" href="/site/main/board/lgslt">법규정보</a><ul class="dep2"><li><a class="snba" href="/site/main/board/lgslt">입법예고</a></li><li><a class="snba link" href="https://www.elis.go.kr/alrpop/locgovA - Network accessline 145
imageUrl : $('meta[property="og:image"]').attr('content'), link : { mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', - Network accessline 145
imageUrl : $('meta[property="og:image"]').attr('content'), link : { mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', - Network accessline 146
link : { mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', webUrl : 'https://www.ggc.go.kr/site/main/board/training_resrep/list' - Network accessline 146
link : { mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', webUrl : 'https://www.ggc.go.kr/site/main/board/training_resrep/list' - Network accessline 147
mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', - Network accessline 147
mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', - Network accessline 148
webUrl : 'https://www.ggc.go.kr/site/main/board/training_resrep/list' - Network accessline 148
webUrl : 'https://www.ggc.go.kr/site/main/board/training_resrep/list' - Network accessline 153
title : '웹으로 보기', link : { mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', - Network accessline 153
title : '웹으로 보기', link : { mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', - Network accessline 154
link : { mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', webUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list' - Network accessline 154
link : { mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', webUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list' - Network accessline 155
mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', - Network accessline 155
mobileWebUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list', - Network accessline 156
webUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list' - Network accessline 156
webUrl: 'https://www.ggc.go.kr/site/main/board/training_resrep/list' - Network accessline 173
function snsShare(sns_type, currentUrl){ switch (sns_type) { /*https://twitter.com/intent/tweet?text=[TEXT]&url=[PAGE_URL]*/ - Network accessline 173
function snsShare(sns_type, currentUrl){ switch (sns_type) { /*https://twitter.com/intent/tweet?text=[TEXT]&url=[PAGE_URL]*/ - Network accessline 174
switch (sns_type) { /*https://twitter.com/intent/tweet?text=[TEXT]&url=[PAGE_URL]*/ case 'twitter' : - Network accessline 174
switch (sns_type) { /*https://twitter.com/intent/tweet?text=[TEXT]&url=[PAGE_URL]*/ case 'twitter' : - Network accessline 175
/*https://twitter.com/intent/tweet?text=[TEXT]&url=[PAGE_URL]*/ - Network accessline 175
/*https://twitter.com/intent/tweet?text=[TEXT]&url=[PAGE_URL]*/ - Network accessline 176
case 'twitter' : window.open("https://twitter.com/intent/tweet?url=" + currentUrl); break; - Network accessline 176
case 'twitter' : window.open("https://twitter.com/intent/tweet?url=" + currentUrl); break; - Network accessline 177
window.open("https://twitter.com/intent/tweet?url=" + currentUrl); - Network accessline 177
window.open("https://twitter.com/intent/tweet?url=" + currentUrl); - Network accessline 180
case 'facebook' : window.open("http://www.facebook.com/sharer/sharer.php?u=" + currentUrl); - Network accessline 180
case 'facebook' : window.open("http://www.facebook.com/sharer/sharer.php?u=" + currentUrl); - Network accessline 181
window.open("http://www.facebook.com/sharer/sharer.php?u=" + currentUrl); - Network accessline 181
window.open("http://www.facebook.com/sharer/sharer.php?u=" + currentUrl);
gov-overseas-trip-report/tests/test_gov_overseas_trip_report.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 64
first = parsed["items"][0] self.assertIn("사실" if False else "detailUrl", first) self.assertTrue(first["detailUrl"].startswith("https://www.nec.go.kr/site/nec/ex/bbs/View.do")) - Network accessline 64
first = parsed["items"][0] self.assertIn("사실" if False else "detailUrl", first) self.assertTrue(first["detailUrl"].startswith("https://www.nec.go.kr/site/nec/ex/bbs/View.do")) - Network accessline 65
self.assertIn("사실" if False else "detailUrl", first) self.assertTrue(first["detailUrl"].startswith("https://www.nec.go.kr/site/nec/ex/bbs/View.do")) self.assertTrue(first["attachments"]) - Network accessline 65
self.assertIn("사실" if False else "detailUrl", first) self.assertTrue(first["detailUrl"].startswith("https://www.nec.go.kr/site/nec/ex/bbs/View.do")) self.assertTrue(first["attachments"]) - Network accessline 66
self.assertTrue(first["detailUrl"].startswith("https://www.nec.go.kr/site/nec/ex/bbs/View.do")) - Network accessline 66
self.assertTrue(first["detailUrl"].startswith("https://www.nec.go.kr/site/nec/ex/bbs/View.do")) - Network accessline 105
client = mod.Client(opener=opener) with self.assertRaises(mod.FetchError) as ctx: client.fetch_text("https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex=2") - Network accessline 105
client = mod.Client(opener=opener) with self.assertRaises(mod.FetchError) as ctx: client.fetch_text("https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex=2") - Network accessline 106
with self.assertRaises(mod.FetchError) as ctx: client.fetch_text("https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex=2") self.assertEqual(ctx.exception.mode, "unexpected HTML") - Network accessline 106
with self.assertRaises(mod.FetchError) as ctx: client.fetch_text("https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex=2") self.assertEqual(ctx.exception.mode, "unexpected HTML") - Network accessline 107
client.fetch_text("https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex=2") - Network accessline 107
client.fetch_text("https://www.nec.go.kr/site/nec/ex/bbs/List.do?cbIdx=1107&pageIndex=2")
government-bond-analysis/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/government-bond-analysis/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/government-bond-analysis/instruction.md.
government-bond-analysis/instruction.md
- Network accessline 20
공식 확인처: [한국 국채시장 월별 발행 캘린더](https://ktb.moef.go.kr/mnbyIsuCldr.do), [한국은행 통화정책방향 결정회의](https://www.bok.or.kr/portal/singl/crncyPolicyDrcMtg/listYear.do?menuNo=200755&mtgSe=A), [미 재무부 입찰 일정](https://www.treasurydirect.gov/auctions/announceme - Network accessline 20
공식 확인처: [한국 국채시장 월별 발행 캘린더](https://ktb.moef.go.kr/mnbyIsuCldr.do), [한국은행 통화정책방향 결정회의](https://www.bok.or.kr/portal/singl/crncyPolicyDrcMtg/listYear.do?menuNo=200755&mtgSe=A), [미 재무부 입찰 일정](https://www.treasurydirect.gov/auctions/announceme - Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 60
[Credential-related source omitted] - Network accessline 182
- 커브: https://ecos.bok.or.kr/ · `817Y002` · `연%` · `D` - Network accessline 182
- 커브: https://ecos.bok.or.kr/ · `817Y002` · `연%` · `D`
government-bond-analysis/scripts/cli.mjs
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Possible obfuscationline 49
return { result: a.status, requested: { base: p.base, asOf: p.asOf }, observed: { base: a.previous.actual, asOf: a.current.actual }, unit: 'annual percent; changes/spreads in bp', rates: TENORS.map((tenor, i) => ({ tenor: `${tenor}Y`, base: - Possible obfuscationline 49
return { result: a.status, requested: { base: p.base, asOf: p.asOf }, observed: { base: a.previous.actual, asOf: a.current.actual }, unit: 'annual percent; changes/spreads in bp', rates: TENORS.map((tenor, i) => ({ tenor: `${tenor}Y`, base: - Network accessline 83
if (d.notes.length) lines.push(...d.notes.map(n => `주의: ${n}`)); lines.push('출처: https://ecos.bok.or.kr/'); - Network accessline 83
if (d.notes.length) lines.push(...d.notes.map(n => `주의: ${n}`)); lines.push('출처: https://ecos.bok.or.kr/'); - Network accessline 84
lines.push(...d.notes.map(n => `주의: ${n}`)); lines.push('출처: https://ecos.bok.or.kr/'); return lines.join('\n'); - Network accessline 84
lines.push(...d.notes.map(n => `주의: ${n}`)); lines.push('출처: https://ecos.bok.or.kr/'); return lines.join('\n'); - Network accessline 85
lines.push('출처: https://ecos.bok.or.kr/'); - Network accessline 85
lines.push('출처: https://ecos.bok.or.kr/'); - Network accessline 88
function trendText(t) { const lines = [`상태: ${t.result}`, `기간: ${t.from ?? '없음'} → ${t.to ?? '없음'} (${t.actualSessions}/${t.requestedSessions}거래일)`]; for (const s of t.stats) lines.push(`${s.tenor}: ${s.start.toFixed(3)}% → ${s.end.toFi - Network accessline 88
function trendText(t) { const lines = [`상태: ${t.result}`, `기간: ${t.from ?? '없음'} → ${t.to ?? '없음'} (${t.actualSessions}/${t.requestedSessions}거래일)`]; for (const s of t.stats) lines.push(`${s.tenor}: ${s.start.toFixed(3)}% → ${s.end.toFi - Network accessline 89
lines.push(`${s.tenor}: ${s.start.toFixed(3)}% → ${s.end.toFixed(3)}% (${s.netChangeBp >= 0 ? '+' : ''}${s.netChangeBp.toFixed(2)}bp), 고점 ${s.high.toFixed(3)}%, 저점 ${s.low.toFixed(3)}%, 최대 일변동 ${s.largestDailyMoveBp >= 0 ? '+' : ''}${s.larg - Network accessline 89
lines.push(`${s.tenor}: ${s.start.toFixed(3)}% → ${s.end.toFixed(3)}% (${s.netChangeBp >= 0 ? '+' : ''}${s.netChangeBp.toFixed(2)}bp), 고점 ${s.high.toFixed(3)}%, 저점 ${s.low.toFixed(3)}%, 최대 일변동 ${s.largestDailyMoveBp >= 0 ? '+' : ''}${s.larg - Network accessline 90
lines.push(...t.notes.map(n => `주의: ${n}`)); lines.push('출처: https://ecos.bok.or.kr/'); return lines.join('\n'); } - Network accessline 90
lines.push(...t.notes.map(n => `주의: ${n}`)); lines.push('출처: https://ecos.bok.or.kr/'); return lines.join('\n'); } - Network accessline 91
function comparison(current, reference, mode) { const changes = TENORS.map(t => ({ tenor: `${t}Y`, base: reference.values?.[`${t}Y`] ?? null, current: current.values?.[`${t}Y`] ?? null, changeBp: current.values && reference.values ? Math.ro - Network accessline 91
function comparison(current, reference, mode) { const changes = TENORS.map(t => ({ tenor: `${t}Y`, base: reference.values?.[`${t}Y`] ?? null, current: current.values?.[`${t}Y`] ?? null, changeBp: current.values && reference.values ? Math.ro - Network accessline 196
else if (preset === 'today') { const data = await collectWindows(pointWindows([asOf], maxLag), cacheDir, useCache), current = onOrBefore(data.observations, asOf, maxLag); output = { result: current.values ? 'READY' : - Network accessline 196
else if (preset === 'today') { const data = await collectWindows(pointWindows([asOf], maxLag), cacheDir, useCache), current = onOrBefore(data.observations, asOf, maxLag); output = { result: current.values ? 'READY' : - Network accessline 197
const data = await collectWindows(pointWindows([asOf], maxLag), cacheDir, useCache), current = onOrBefore(data.observations, asOf, maxLag); output = { result: current.values ? 'READY' : 'BLOCKED', mode: 'today', current, spreads - Network accessline 197
const data = await collectWindows(pointWindows([asOf], maxLag), cacheDir, useCache), current = onOrBefore(data.observations, asOf, maxLag); output = { result: current.values ? 'READY' : 'BLOCKED', mode: 'today', current, spreads - Network accessline 198
output = { result: current.values ? 'READY' : 'BLOCKED', mode: 'today', current, spreads: snapshotSpreads(current), source: 'https://ecos.bok.or.kr/' }; - Network accessline 198
output = { result: current.values ? 'READY' : 'BLOCKED', mode: 'today', current, spreads: snapshotSpreads(current), source: 'https://ecos.bok.or.kr/' }; - Network accessline 201
else if (preset === 'policy-gap') { const data = await collectWindows(pointWindows([asOf], maxLag), cacheDir, useCache), current = onOrBefore(data.observations, asOf, maxLag), policyRate = await collectPolicyRate(asOf, cacheDir, - Network accessline 201
else if (preset === 'policy-gap') { const data = await collectWindows(pointWindows([asOf], maxLag), cacheDir, useCache), current = onOrBefore(data.observations, asOf, maxLag), policyRate = await collectPolicyRate(asOf, cacheDir, - Network accessline 202
const data = await collectWindows(pointWindows([asOf], maxLag), cacheDir, useCache), current = onOrBefore(data.observations, asOf, maxLag), policyRate = await collectPolicyRate(asOf, cacheDir, useCache), current3 = current.values?.['3Y'] ?? - Network accessline 202
const data = await collectWindows(pointWindows([asOf], maxLag), cacheDir, useCache), current = onOrBefore(data.observations, asOf, maxLag), policyRate = await collectPolicyRate(asOf, cacheDir, useCache), current3 = current.values?.['3Y'] ?? - Network accessline 203
output = { result: current.values && policyRate ? 'READY' : current.values ? 'INCOMPLETE' : 'BLOCKED', mode: 'policy-gap', current, policyRate, policyGap3YBp, notes, source: 'https://ecos.bok.or.kr/' }; - Network accessline 203
output = { result: current.values && policyRate ? 'READY' : current.values ? 'INCOMPLETE' : 'BLOCKED', mode: 'policy-gap', current, policyRate, policyGap3YBp, notes, source: 'https://ecos.bok.or.kr/' };
government-bond-analysis/scripts/collect.mjs
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 118
try { const key = process.env.KSKILL_BOK_ECOS_API_KEY || 'sample', meta = TENOR_META[tenor]; const url = `https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/817Y002/D/${segment - Network accessline 118
try { const key = process.env.KSKILL_BOK_ECOS_API_KEY || 'sample', meta = TENOR_META[tenor]; const url = `https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/817Y002/D/${segment - Network accessline 119
[Credential-related source omitted] - Network accessline 119
[Credential-related source omitted] - Access to secretsline 119
[Credential-related source omitted] - Access to secretsline 119
[Credential-related source omitted] - Network accessline 120
const url = `https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/817Y002/D/${segment.from.replaceAll('-', '')}/${segment.to.replaceAll('-', '')}/${meta.itemCode}`; - Network accessline 120
const url = `https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/817Y002/D/${segment.from.replaceAll('-', '')}/${segment.to.replaceAll('-', '')}/${meta.itemCode}`;
government-bond-analysis/scripts/core.mjs
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 12
export const PACKET_VERSION = 5; export const SOURCE_ID = '한국은행 ECOS 817Y002'; export const SOURCE_URL = 'https://ecos.bok.or.kr/'; - Network accessline 12
export const PACKET_VERSION = 5; export const SOURCE_ID = '한국은행 ECOS 817Y002'; export const SOURCE_URL = 'https://ecos.bok.or.kr/'; - Network accessline 13
export const SOURCE_ID = '한국은행 ECOS 817Y002'; export const SOURCE_URL = 'https://ecos.bok.or.kr/'; export const sha256 = (s) => createHash('sha256').update(s).digest('hex'); - Network accessline 13
export const SOURCE_ID = '한국은행 ECOS 817Y002'; export const SOURCE_URL = 'https://ecos.bok.or.kr/'; export const sha256 = (s) => createHash('sha256').update(s).digest('hex'); - Network accessline 14
export const SOURCE_URL = 'https://ecos.bok.or.kr/'; - Network accessline 14
export const SOURCE_URL = 'https://ecos.bok.or.kr/';
government-bond-analysis/scripts/dual.mjs
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 46
export function dualSummary(packet, analysis = analyzeDual(packet)) { const market = (name, a) => ({ market: name, status: a.status, observed: { base: a.previous.actual, asOf: a.current.actual }, rates: TENORS.map((tenor, i) => ({ tenor - Network accessline 46
export function dualSummary(packet, analysis = analyzeDual(packet)) { const market = (name, a) => ({ market: name, status: a.status, observed: { base: a.previous.actual, asOf: a.current.actual }, rates: TENORS.map((tenor, i) => ({ tenor - Network accessline 47
const market = (name, a) => ({ market: name, status: a.status, observed: { base: a.previous.actual, asOf: a.current.actual }, rates: TENORS.map((tenor, i) => ({ tenor: `${tenor}Y`, base: name === 'KTB' ? a.previous.values?.[i] ?? null : a.p - Network accessline 47
const market = (name, a) => ({ market: name, status: a.status, observed: { base: a.previous.actual, asOf: a.current.actual }, rates: TENORS.map((tenor, i) => ({ tenor: `${tenor}Y`, base: name === 'KTB' ? a.previous.values?.[i] ?? null : a.p - Network accessline 48
return { result: analysis.status, requested: { base: packet.ktb.base, asOf: packet.ktb.asOf }, markets: [market('KTB', analysis.ktb), market('UST', analysis.ust)], cross: analysis.cross, schedule: analysis.schedule, notes: analysis.notes, s - Network accessline 48
return { result: analysis.status, requested: { base: packet.ktb.base, asOf: packet.ktb.asOf }, markets: [market('KTB', analysis.ktb), market('UST', analysis.ust)], cross: analysis.cross, schedule: analysis.schedule, notes: analysis.notes, s - Network accessline 93
'- UST는 미국 재무부의 명목 par/constant-maturity 수익률, KTB는 ECOS 국고채 시장금리입니다. 같은 날짜라도 종가 시점이 달라 단순 금리차는 동시 가격이나 환헤지 수익을 뜻하지 않습니다.', '', `**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` - Network accessline 93
'- UST는 미국 재무부의 명목 par/constant-maturity 수익률, KTB는 ECOS 국고채 시장금리입니다. 같은 날짜라도 종가 시점이 달라 단순 금리차는 동시 가격이나 환헤지 수익을 뜻하지 않습니다.', '', `**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` - Network accessline 94
'', `**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` ].join('\n'); - Network accessline 94
'', `**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` ].join('\n'); - Network accessline 95
`**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` - Network accessline 95
`**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` - Possible obfuscationline 118
return `<!doctype html><html lang="ko"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>한·미 국채 금리 분석</title><style>body{font:15px/1.55 system-ui,sans-serif;background:#f4f6fa;color:#17203 - Possible obfuscationline 118
return `<!doctype html><html lang="ko"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>한·미 국채 금리 분석</title><style>body{font:15px/1.55 system-ui,sans-serif;background:#f4f6fa;color:#17203 - Network accessline 137
const summary = dualSummary(packet, a); const files = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} - Network accessline 137
const summary = dualSummary(packet, a); const files = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} - Network accessline 138
const files = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous. - Network accessline 138
const files = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous. - Network accessline 139
'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous.actual ?? '없음'} → ${a.ust.cu - Network accessline 139
'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous.actual ?? '없음'} → ${a.ust.cu - Network accessline 166
throw Error('Dual status mismatch'); const expected = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.k - Network accessline 166
throw Error('Dual status mismatch'); const expected = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.k - Network accessline 167
const expected = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous.a - Network accessline 167
const expected = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous.a - Network accessline 168
'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous.actual ?? '없음'} → ${a.ust.cu - Network accessline 168
'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous.actual ?? '없음'} → ${a.ust.cu
government-bond-analysis/scripts/harness.mjs
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 25
const packetFor = (rows = obs) => ({ version: PACKET_VERSION, engine: ENGINE, asOf: '2026-09-18', base: '2026-09-11', maxLag: 7, observations: rows, receipts: receiptsFor(rows), label: '테스트' }); const packet = packetFor(), analysis = analyz - Network accessline 25
const packetFor = (rows = obs) => ({ version: PACKET_VERSION, engine: ENGINE, asOf: '2026-09-18', base: '2026-09-11', maxLag: 7, observations: rows, receipts: receiptsFor(rows), label: '테스트' }); const packet = packetFor(), analysis = analyz - Network accessline 26
const packet = packetFor(), analysis = analyze(packet); const newsInput = { version: 1, observationDate: '2026-09-18', retrievedAt: '2026-09-18T12:00:00.000Z', articles: [{ publisher: '연합인포맥스', title: '[채권-마감] 금리 하락…외국인 선물 매수', url: 'https: - Network accessline 26
const packet = packetFor(), analysis = analyze(packet); const newsInput = { version: 1, observationDate: '2026-09-18', retrievedAt: '2026-09-18T12:00:00.000Z', articles: [{ publisher: '연합인포맥스', title: '[채권-마감] 금리 하락…외국인 선물 매수', url: 'https: - Network accessline 27
const newsInput = { version: 1, observationDate: '2026-09-18', retrievedAt: '2026-09-18T12:00:00.000Z', articles: [{ publisher: '연합인포맥스', title: '[채권-마감] 금리 하락…외국인 선물 매수', url: 'https://news.einfomax.co.kr/news/articleView.html?idxno=435954 - Network accessline 27
const newsInput = { version: 1, observationDate: '2026-09-18', retrievedAt: '2026-09-18T12:00:00.000Z', articles: [{ publisher: '연합인포맥스', title: '[채권-마감] 금리 하락…외국인 선물 매수', url: 'https://news.einfomax.co.kr/news/articleView.html?idxno=435954 - Network accessline 29
check(() => { assert.equal(newsAnalysis.status, 'SOURCED'); assert.equal(newsAnalysis.confidence, 'HIGH'); assert.equal(newsAnalysis.curveDirection, 'lower'); assert.equal(newsAnalysis.eligible.length, 1); assert.match(newsAnalysis.commenta - Network accessline 29
check(() => { assert.equal(newsAnalysis.status, 'SOURCED'); assert.equal(newsAnalysis.confidence, 'HIGH'); assert.equal(newsAnalysis.curveDirection, 'lower'); assert.equal(newsAnalysis.eligible.length, 1); assert.match(newsAnalysis.commenta - Network accessline 30
check(() => { const mismatch = structuredClone(newsInput); mismatch.articles[0].marketDirection = 'higher'; const result = analyzeNews(newsRead(JSON.stringify(mismatch)), analysis); assert.equal(result.status, 'UNATTRIBUTED'); assert.equal( - Network accessline 30
check(() => { const mismatch = structuredClone(newsInput); mismatch.articles[0].marketDirection = 'higher'; const result = analyzeNews(newsRead(JSON.stringify(mismatch)), analysis); assert.equal(result.status, 'UNATTRIBUTED'); assert.equal( - Network accessline 31
check(() => { const bad = structuredClone(newsInput); bad.articles[0].url = 'https://example.com/article'; assert.throws(() => newsRead(JSON.stringify(bad)), /Unapproved/); }); - Network accessline 31
check(() => { const bad = structuredClone(newsInput); bad.articles[0].url = 'https://example.com/article'; assert.throws(() => newsRead(JSON.stringify(bad)), /Unapproved/); }); - Network accessline 36
check(() => { const bad = structuredClone(newsInput); bad.articles.push(structuredClone(bad.articles[0])); assert.throws(() => newsRead(JSON.stringify(bad)), /Duplicate/); }); check(() => { const bad = structuredClone(newsEvidence); bad.art - Network accessline 36
check(() => { const bad = structuredClone(newsInput); bad.articles.push(structuredClone(bad.articles[0])); assert.throws(() => newsRead(JSON.stringify(bad)), /Duplicate/); }); check(() => { const bad = structuredClone(newsEvidence); bad.art - Network accessline 37
check(() => { const bad = structuredClone(newsEvidence); bad.articles[0].sourceFingerprint = '0'.repeat(64); assert.throws(() => newsRead(JSON.stringify(bad)), /fingerprint/); }); check(() => { const contextual = structuredClone(newsInput); - Network accessline 37
check(() => { const bad = structuredClone(newsEvidence); bad.articles[0].sourceFingerprint = '0'.repeat(64); assert.throws(() => newsRead(JSON.stringify(bad)), /fingerprint/); }); check(() => { const contextual = structuredClone(newsInput); - Network accessline 38
check(() => { const contextual = structuredClone(newsInput); contextual.articles[0].publisher = '한국은행'; contextual.articles[0].url = 'https://www.bok.or.kr/portal/bbs/B0000217/view.do?nttId=10000000'; contextual.articles[0].sourceType = 'of - Network accessline 38
check(() => { const contextual = structuredClone(newsInput); contextual.articles[0].publisher = '한국은행'; contextual.articles[0].url = 'https://www.bok.or.kr/portal/bbs/B0000217/view.do?nttId=10000000'; contextual.articles[0].sourceType = 'of - Network accessline 248
await rm(root, { recursive: true, force: true }); } const ustFixture = (dates) => `<?xml version="1.0"?><feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/met - Network accessline 248
await rm(root, { recursive: true, force: true }); } const ustFixture = (dates) => `<?xml version="1.0"?><feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/met - Network accessline 249
} const ustFixture = (dates) => `<?xml version="1.0"?><feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><title type="text">DailyTreasuryYieldCurveR - Network accessline 249
} const ustFixture = (dates) => `<?xml version="1.0"?><feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><title type="text">DailyTreasuryYieldCurveR - Network accessline 250
const ustFixture = (dates) => `<?xml version="1.0"?><feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><title type="text">DailyTreasuryYieldCurveRat - Network accessline 250
const ustFixture = (dates) => `<?xml version="1.0"?><feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><title type="text">DailyTreasuryYieldCurveRat - Network accessline 320
} check(() => { const tampered = structuredClone(us); tampered.sources[0].sha256 = '0'.repeat(64); assert.throws(() => analyzeUst(tampered), /checksum/); }); check(() => { const bad = structuredClone(us); bad.sources[0].url = 'https - Network accessline 320
} check(() => { const tampered = structuredClone(us); tampered.sources[0].sha256 = '0'.repeat(64); assert.throws(() => analyzeUst(tampered), /checksum/); }); check(() => { const bad = structuredClone(us); bad.sources[0].url = 'https - Network accessline 321
check(() => { const tampered = structuredClone(us); tampered.sources[0].sha256 = '0'.repeat(64); assert.throws(() => analyzeUst(tampered), /checksum/); }); check(() => { const bad = structuredClone(us); bad.sources[0].url = 'https://exa - Network accessline 321
check(() => { const tampered = structuredClone(us); tampered.sources[0].sha256 = '0'.repeat(64); assert.throws(() => analyzeUst(tampered), /checksum/); }); check(() => { const bad = structuredClone(us); bad.sources[0].url = 'https://exa - Network accessline 322
check(() => { const bad = structuredClone(us); bad.sources[0].url = 'https://example.com/'; assert.throws(() => analyzeUst(bad), /identity/); }); - Network accessline 322
check(() => { const bad = structuredClone(us); bad.sources[0].url = 'https://example.com/'; assert.throws(() => analyzeUst(bad), /identity/); }); - Network accessline 348
check(() => { assert.match(html, /한국 국고채/); assert.match(html, /미국 국채 par/); assert.match(html, /공통 관측일/); assert.ok(html.includes(us.sources[0].url.replaceAll('&', '&'))); assert.doesNotMatch(html, /NaN|undefined/); }); const sched - Network accessline 348
check(() => { assert.match(html, /한국 국고채/); assert.match(html, /미국 국채 par/); assert.match(html, /공통 관측일/); assert.ok(html.includes(us.sources[0].url.replaceAll('&', '&'))); assert.doesNotMatch(html, /NaN|undefined/); }); const sched - Network accessline 349
const schedule = { version: 1, anchorDate: '2026-09-18', checkedAt: '2026-09-18T23:00:00.000Z', events: [ { date: '2026-09-21', market: 'KR', kind: 'auction', tenor: 5, sourceUrl: 'https://ktb.moef.go.kr/mnbyIsuCldr.do', sourceE - Network accessline 349
const schedule = { version: 1, anchorDate: '2026-09-18', checkedAt: '2026-09-18T23:00:00.000Z', events: [ { date: '2026-09-21', market: 'KR', kind: 'auction', tenor: 5, sourceUrl: 'https://ktb.moef.go.kr/mnbyIsuCldr.do', sourceE - Network accessline 350
{ date: '2026-09-21', market: 'KR', kind: 'auction', tenor: 5, sourceUrl: 'https://ktb.moef.go.kr/mnbyIsuCldr.do', sourceExcerpt: '2026.09.21. | 5년물', sourceDateText: '2026.09.21.' }, - Network accessline 350
{ date: '2026-09-21', market: 'KR', kind: 'auction', tenor: 5, sourceUrl: 'https://ktb.moef.go.kr/mnbyIsuCldr.do', sourceExcerpt: '2026.09.21. | 5년물', sourceDateText: '2026.09.21.' }, - Network accessline 351
{ date: '2026-09-23', market: 'US', kind: 'auction', tenor: 5, sourceUrl: 'https://home.treasury.gov/system/files/221/TentativeAuctionScheduleQ22026.pdf', sourceExcerpt: '5-Year NOTE Thursday, September 17, 2026 Wednesday, September 23, 202 - Network accessline 351
{ date: '2026-09-23', market: 'US', kind: 'auction', tenor: 5, sourceUrl: 'https://home.treasury.gov/system/files/221/TentativeAuctionScheduleQ22026.pdf', sourceExcerpt: '5-Year NOTE Thursday, September 17, 2026 Wednesday, September 23, 202 - Network accessline 352
{ date: '2026-10-22', market: 'KR', kind: 'policy', sourceUrl: 'https://www.bok.or.kr/portal/singl/crncyPolicyDrcMtg/listYear.do?menuNo=200755&mtgSe=A', sourceExcerpt: '2026 통화정책방향 결정회의 일정 및 자료 10월 22일(목)', sourceDateText: '10월 22일' }, - Network accessline 352
{ date: '2026-10-22', market: 'KR', kind: 'policy', sourceUrl: 'https://www.bok.or.kr/portal/singl/crncyPolicyDrcMtg/listYear.do?menuNo=200755&mtgSe=A', sourceExcerpt: '2026 통화정책방향 결정회의 일정 및 자료 10월 22일(목)', sourceDateText: '10월 22일' }, - Network accessline 353
{ date: '2026-10-28', market: 'US', kind: 'policy', sourceUrl: 'https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm', sourceExcerpt: '2026 FOMC Meetings October 27-28', sourceDateText: 'October 27-28' } - Network accessline 353
{ date: '2026-10-28', market: 'US', kind: 'policy', sourceUrl: 'https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm', sourceExcerpt: '2026 FOMC Meetings October 27-28', sourceDateText: 'October 27-28' } - Network accessline 358
check(() => { assert.match(scheduledChat, /2026-09-21 \(KR\) 국고채 5년물 입찰/); assert.match(scheduledChat, /2026-09-23 \(US\) 미국 국채 5년물 입찰/); assert.match(scheduledChat, /2026-10-22 \(KR\) 한국은행 통화정책방향 결정회의/); assert.match(scheduledChat, /2026-1 - Network accessline 358
check(() => { assert.match(scheduledChat, /2026-09-21 \(KR\) 국고채 5년물 입찰/); assert.match(scheduledChat, /2026-09-23 \(US\) 미국 국채 5년물 입찰/); assert.match(scheduledChat, /2026-10-22 \(KR\) 한국은행 통화정책방향 결정회의/); assert.match(scheduledChat, /2026-1 - Network accessline 359
check(() => { const bad = structuredClone(schedule); bad.events[0].date = '2026-09-22'; assert.throws(() => analyzeSchedule(bad, '2026-09-18'), /quoted date/); }); check(() => { const bad = structuredClone(schedule); bad.events[1].sourc - Network accessline 359
check(() => { const bad = structuredClone(schedule); bad.events[0].date = '2026-09-22'; assert.throws(() => analyzeSchedule(bad, '2026-09-18'), /quoted date/); }); check(() => { const bad = structuredClone(schedule); bad.events[1].sourc - Network accessline 360
check(() => { const bad = structuredClone(schedule); bad.events[1].sourceUrl = 'https://home.treasury.gov.evil.example/schedule'; assert.throws(() => analyzeSchedule(bad, '2026-09-18'), /host/); }); - Network accessline 360
check(() => { const bad = structuredClone(schedule); bad.events[1].sourceUrl = 'https://home.treasury.gov.evil.example/schedule'; assert.throws(() => analyzeSchedule(bad, '2026-09-18'), /host/); });
government-bond-analysis/scripts/modes.mjs
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 105
let liveError = ''; try { const key = process.env.KSKILL_BOK_ECOS_API_KEY || 'sample', url = `https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/722Y001/D/${from.replaceAll('-', '')}/${to.replaceA - Network accessline 105
let liveError = ''; try { const key = process.env.KSKILL_BOK_ECOS_API_KEY || 'sample', url = `https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/722Y001/D/${from.replaceAll('-', '')}/${to.replaceA - Network accessline 106
try { const key = process.env.KSKILL_BOK_ECOS_API_KEY || 'sample', url = `https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/722Y001/D/${from.replaceAll('-', '')}/${to.replaceAll('-', '')}/0101000`, r - Network accessline 106
try { const key = process.env.KSKILL_BOK_ECOS_API_KEY || 'sample', url = `https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/722Y001/D/${from.replaceAll('-', '')}/${to.replaceAll('-', '')}/0101000`, r - Network accessline 107
[Credential-related source omitted] - Network accessline 107
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Network accessline 116
await rm(temp, { force: true }); } return { ...point, unit: '연%', status: 'live', retrievedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001', itemCode: '0101000', rawSha256: digest, ...(cacheWriteError ? { ca - Network accessline 116
await rm(temp, { force: true }); } return { ...point, unit: '연%', status: 'live', retrievedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001', itemCode: '0101000', rawSha256: digest, ...(cacheWriteError ? { ca - Network accessline 117
} return { ...point, unit: '연%', status: 'live', retrievedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001', itemCode: '0101000', rawSha256: digest, ...(cacheWriteError ? { cacheWriteError } : {}) }; } - Network accessline 117
} return { ...point, unit: '연%', status: 'live', retrievedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001', itemCode: '0101000', rawSha256: digest, ...(cacheWriteError ? { cacheWriteError } : {}) }; } - Network accessline 118
return { ...point, unit: '연%', status: 'live', retrievedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001', itemCode: '0101000', rawSha256: digest, ...(cacheWriteError ? { cacheWriteError } : {}) }; - Network accessline 118
return { ...point, unit: '연%', status: 'live', retrievedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001', itemCode: '0101000', rawSha256: digest, ...(cacheWriteError ? { cacheWriteError } : {}) }; - Network accessline 127
throw Error('Invalid policy cache'); const point = parsePolicy(data.raw, from, to); return { ...point, unit: '연%', status: 'cache', retrievedAt: data.storedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001 - Network accessline 127
throw Error('Invalid policy cache'); const point = parsePolicy(data.raw, from, to); return { ...point, unit: '연%', status: 'cache', retrievedAt: data.storedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001 - Network accessline 128
const point = parsePolicy(data.raw, from, to); return { ...point, unit: '연%', status: 'cache', retrievedAt: data.storedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001', itemCode: '0101000', rawSha256: data.rawSha256 - Network accessline 128
const point = parsePolicy(data.raw, from, to); return { ...point, unit: '연%', status: 'cache', retrievedAt: data.storedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001', itemCode: '0101000', rawSha256: data.rawSha256 - Network accessline 129
return { ...point, unit: '연%', status: 'cache', retrievedAt: data.storedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001', itemCode: '0101000', rawSha256: data.rawSha256, cacheAgeHours: Math.round(age * 100) / 100 }; - Network accessline 129
return { ...point, unit: '연%', status: 'cache', retrievedAt: data.storedAt, sourceUrl: 'https://ecos.bok.or.kr/', statCode: '722Y001', itemCode: '0101000', rawSha256: data.rawSha256, cacheAgeHours: Math.round(age * 100) / 100 };
government-bond-analysis/scripts/news.mjs
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 110
instant(retrievedAt, 'retrievedAt'); const publishedAt = new Date(`${observationDate}T00:00:00+09:00`).toISOString(); return JSON.stringify({ version: 1, observationDate, retrievedAt, articles: [{ publisher: '연합인포맥스', title: '기사 제목을 - Network accessline 110
instant(retrievedAt, 'retrievedAt'); const publishedAt = new Date(`${observationDate}T00:00:00+09:00`).toISOString(); return JSON.stringify({ version: 1, observationDate, retrievedAt, articles: [{ publisher: '연합인포맥스', title: '기사 제목을 - Network accessline 111
const publishedAt = new Date(`${observationDate}T00:00:00+09:00`).toISOString(); return JSON.stringify({ version: 1, observationDate, retrievedAt, articles: [{ publisher: '연합인포맥스', title: '기사 제목을 입력', url: 'https://news.einfomax.co.kr/n - Network accessline 111
const publishedAt = new Date(`${observationDate}T00:00:00+09:00`).toISOString(); return JSON.stringify({ version: 1, observationDate, retrievedAt, articles: [{ publisher: '연합인포맥스', title: '기사 제목을 입력', url: 'https://news.einfomax.co.kr/n - Network accessline 112
return JSON.stringify({ version: 1, observationDate, retrievedAt, articles: [{ publisher: '연합인포맥스', title: '기사 제목을 입력', url: 'https://news.einfomax.co.kr/news/articleView.html?idxno=0000000', publishedAt, sourceType: 'market-close', marketD - Network accessline 112
return JSON.stringify({ version: 1, observationDate, retrievedAt, articles: [{ publisher: '연합인포맥스', title: '기사 제목을 입력', url: 'https://news.einfomax.co.kr/news/articleView.html?idxno=0000000', publishedAt, sourceType: 'market-close', marketD
government-bond-analysis/scripts/render.mjs
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Possible obfuscationline 57
:root{--ink:#172033;--muted:#687386;--paper:#f5f3ee;--card:#fff;--blue:#165dff;--orange:#e97522;--line:#dfe4eb;--good:#17745c;--warn:#a15c00;--bad:#a9363e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:1 - Possible obfuscationline 57
:root{--ink:#172033;--muted:#687386;--paper:#f5f3ee;--card:#fff;--blue:#165dff;--orange:#e97522;--line:#dfe4eb;--good:#17745c;--warn:#a15c00;--bad:#a9363e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:1 - Possible obfuscationline 58
</style></head><body><main class="wrap"><header><div><div class="eyebrow">KOREAN RATES · VERIFIED SNAPSHOT</div><h1>${esc(p.label)}</h1><div class="meta">요청 ${esc(p.base)} → ${esc(p.asOf)} · 관측 ${esc(a.previous.actual ?? '없음')} → ${esc(a.cu - Possible obfuscationline 58
</style></head><body><main class="wrap"><header><div><div class="eyebrow">KOREAN RATES · VERIFIED SNAPSHOT</div><h1>${esc(p.label)}</h1><div class="meta">요청 ${esc(p.base)} → ${esc(p.asOf)} · 관측 ${esc(a.previous.actual ?? '없음')} → ${esc(a.cu
government-bond-analysis/scripts/schedule.mjs
government-bond-analysis/scripts/ust.mjs
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 8
}; export const UST_SOURCE = 'U.S. Treasury Daily Treasury Par Yield Curve Rates'; export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; - Network accessline 8
}; export const UST_SOURCE = 'U.S. Treasury Daily Treasury Par Yield Curve Rates'; export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; - Network accessline 9
export const UST_SOURCE = 'U.S. Treasury Daily Treasury Par Yield Curve Rates'; export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; export con - Network accessline 9
export const UST_SOURCE = 'U.S. Treasury Daily Treasury Par Yield Curve Rates'; export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; export con - Network accessline 10
export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; - Network accessline 10
export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; - Network accessline 15
if (!/^\d{4}-(0[1-9]|1[0-2])$/.test(month)) throw Error('Invalid UST month'); return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_treasury_yield_curve&field_tdr_date_value_mont - Network accessline 15
if (!/^\d{4}-(0[1-9]|1[0-2])$/.test(month)) throw Error('Invalid UST month'); return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_treasury_yield_curve&field_tdr_date_value_mont - Network accessline 16
throw Error('Invalid UST month'); return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_treasury_yield_curve&field_tdr_date_value_month=${month.replace('-', '')}`; } - Network accessline 16
throw Error('Invalid UST month'); return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_treasury_yield_curve&field_tdr_date_value_month=${month.replace('-', '')}`; } - Network accessline 17
return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_treasury_yield_curve&field_tdr_date_value_month=${month.replace('-', '')}`; - Network accessline 17
return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_treasury_yield_curve&field_tdr_date_value_month=${month.replace('-', '')}`;
government-bond-analysis/src/cli.mts
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 54
function dashboardText(d:DashboardResult):string{ const lines=[`상태: ${d.result}`,...snapshotLines('현재 관측일',d.current)];for(const [label,key] of [['전일','previousSession'],['1주','weekAgo'],['전월말','previousMonthEnd']] as const){const ref=d.r - Network accessline 54
function dashboardText(d:DashboardResult):string{ const lines=[`상태: ${d.result}`,...snapshotLines('현재 관측일',d.current)];for(const [label,key] of [['전일','previousSession'],['1주','weekAgo'],['전월말','previousMonthEnd']] as const){const ref=d.r - Network accessline 55
const lines=[`상태: ${d.result}`,...snapshotLines('현재 관측일',d.current)];for(const [label,key] of [['전일','previousSession'],['1주','weekAgo'],['전월말','previousMonthEnd']] as const){const ref=d.references[key];lines.push(`${label} 기준: ${ref.actual - Network accessline 55
const lines=[`상태: ${d.result}`,...snapshotLines('현재 관측일',d.current)];for(const [label,key] of [['전일','previousSession'],['1주','weekAgo'],['전월말','previousMonthEnd']] as const){const ref=d.references[key];lines.push(`${label} 기준: ${ref.actual - Network accessline 56
lines.push(`스프레드: ${Object.entries(d.spreads).map(([k,v])=>`${k} ${v?.toFixed(2)??'없음'}bp`).join(' · ')}`);if(d.policyRate)lines.push(`기준금리: ${d.policyRate.value.toFixed(2)}% (${d.policyRate.date}) · 3Y-기준금리 ${d.policyGap3YBp?.toFixed(2)}bp - Network accessline 56
lines.push(`스프레드: ${Object.entries(d.spreads).map(([k,v])=>`${k} ${v?.toFixed(2)??'없음'}bp`).join(' · ')}`);if(d.policyRate)lines.push(`기준금리: ${d.policyRate.value.toFixed(2)}% (${d.policyRate.date}) · 3Y-기준금리 ${d.policyGap3YBp?.toFixed(2)}bp - Network accessline 57
} function trendText(t:TrendResult):string{const lines=[`상태: ${t.result}`,`기간: ${t.from??'없음'} → ${t.to??'없음'} (${t.actualSessions}/${t.requestedSessions}거래일)`];for(const s of t.stats)lines.push(`${s.tenor}: ${s.start.toFixed(3)}% → ${s.end - Network accessline 57
} function trendText(t:TrendResult):string{const lines=[`상태: ${t.result}`,`기간: ${t.from??'없음'} → ${t.to??'없음'} (${t.actualSessions}/${t.requestedSessions}거래일)`];for(const s of t.stats)lines.push(`${s.tenor}: ${s.start.toFixed(3)}% → ${s.end - Network accessline 58
function trendText(t:TrendResult):string{const lines=[`상태: ${t.result}`,`기간: ${t.from??'없음'} → ${t.to??'없음'} (${t.actualSessions}/${t.requestedSessions}거래일)`];for(const s of t.stats)lines.push(`${s.tenor}: ${s.start.toFixed(3)}% → ${s.end.t - Network accessline 58
function trendText(t:TrendResult):string{const lines=[`상태: ${t.result}`,`기간: ${t.from??'없음'} → ${t.to??'없음'} (${t.actualSessions}/${t.requestedSessions}거래일)`];for(const s of t.stats)lines.push(`${s.tenor}: ${s.start.toFixed(3)}% → ${s.end.t - Network accessline 59
function comparison(current:CurveSnapshot,reference:CurveSnapshot,mode:string):Record<string,unknown>{const changes=TENORS.map(t=>({tenor:`${t}Y`,base:reference.values?.[`${t}Y`]??null,current:current.values?.[`${t}Y`]??null,changeBp:curren - Network accessline 59
function comparison(current:CurveSnapshot,reference:CurveSnapshot,mode:string):Record<string,unknown>{const changes=TENORS.map(t=>({tenor:`${t}Y`,base:reference.values?.[`${t}Y`]??null,current:current.values?.[`${t}Y`]??null,changeBp:curren - Network accessline 111
else if(lookback!==null){if(![5,20].includes(lookback))throw Error('--lookback-sessions must be 5 or 20');const from=shift(asOf,lookback===20?-45:-16),data=await collectWindows(rangeWindows(from,asOf),cacheDir,useCache);output=trend(data.ob - Network accessline 111
else if(lookback!==null){if(![5,20].includes(lookback))throw Error('--lookback-sessions must be 5 or 20');const from=shift(asOf,lookback===20?-45:-16),data=await collectWindows(rangeWindows(from,asOf),cacheDir,useCache);output=trend(data.ob - Network accessline 112
else if(preset==='today'){ const data=await collectWindows(pointWindows([asOf],maxLag),cacheDir,useCache),current=onOrBefore(data.observations,asOf,maxLag);output={result:current.values?'READY':'BLOCKED',mode:'today',current,spreads:s - Network accessline 112
else if(preset==='today'){ const data=await collectWindows(pointWindows([asOf],maxLag),cacheDir,useCache),current=onOrBefore(data.observations,asOf,maxLag);output={result:current.values?'READY':'BLOCKED',mode:'today',current,spreads:s - Network accessline 113
const data=await collectWindows(pointWindows([asOf],maxLag),cacheDir,useCache),current=onOrBefore(data.observations,asOf,maxLag);output={result:current.values?'READY':'BLOCKED',mode:'today',current,spreads:snapshotSpreads(current),source:'h - Network accessline 113
const data=await collectWindows(pointWindows([asOf],maxLag),cacheDir,useCache),current=onOrBefore(data.observations,asOf,maxLag);output={result:current.values?'READY':'BLOCKED',mode:'today',current,spreads:snapshotSpreads(current),source:'h - Network accessline 114
}else if(preset==='policy-gap'){ const data=await collectWindows(pointWindows([asOf],maxLag),cacheDir,useCache),current=onOrBefore(data.observations,asOf,maxLag),policyRate=await collectPolicyRate(asOf,cacheDir,useCache),current3=curr - Network accessline 114
}else if(preset==='policy-gap'){ const data=await collectWindows(pointWindows([asOf],maxLag),cacheDir,useCache),current=onOrBefore(data.observations,asOf,maxLag),policyRate=await collectPolicyRate(asOf,cacheDir,useCache),current3=curr - Network accessline 115
const data=await collectWindows(pointWindows([asOf],maxLag),cacheDir,useCache),current=onOrBefore(data.observations,asOf,maxLag),policyRate=await collectPolicyRate(asOf,cacheDir,useCache),current3=current.values?.['3Y']??null,policyGap3YBp= - Network accessline 115
const data=await collectWindows(pointWindows([asOf],maxLag),cacheDir,useCache),current=onOrBefore(data.observations,asOf,maxLag),policyRate=await collectPolicyRate(asOf,cacheDir,useCache),current3=current.values?.['3Y']??null,policyGap3YBp=
government-bond-analysis/src/collect.mts
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 68
try{ const key=process.env.KSKILL_BOK_ECOS_API_KEY||'sample',meta=TENOR_META[tenor]; const url=`https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/817Y002/D/${segment.from.replaceAll('-','')}/ - Network accessline 68
try{ const key=process.env.KSKILL_BOK_ECOS_API_KEY||'sample',meta=TENOR_META[tenor]; const url=`https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/817Y002/D/${segment.from.replaceAll('-','')}/ - Network accessline 69
[Credential-related source omitted] - Network accessline 69
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Network accessline 70
const url=`https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/817Y002/D/${segment.from.replaceAll('-','')}/${segment.to.replaceAll('-','')}/${meta.itemCode}`; - Network accessline 70
const url=`https://ecos.bok.or.kr/api/StatisticSearch/${encodeURIComponent(key)}/json/kr/1/10/817Y002/D/${segment.from.replaceAll('-','')}/${segment.to.replaceAll('-','')}/${meta.itemCode}`;
government-bond-analysis/src/core.mts
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 15
export const PACKET_VERSION=5 as const; export const SOURCE_ID='한국은행 ECOS 817Y002' as const; export const SOURCE_URL='https://ecos.bok.or.kr/' as const; - Network accessline 15
export const PACKET_VERSION=5 as const; export const SOURCE_ID='한국은행 ECOS 817Y002' as const; export const SOURCE_URL='https://ecos.bok.or.kr/' as const; - Network accessline 16
export const SOURCE_ID='한국은행 ECOS 817Y002' as const; export const SOURCE_URL='https://ecos.bok.or.kr/' as const; export const sha256=(s:string):string=>createHash('sha256').update(s).digest('hex'); - Network accessline 16
export const SOURCE_ID='한국은행 ECOS 817Y002' as const; export const SOURCE_URL='https://ecos.bok.or.kr/' as const; export const sha256=(s:string):string=>createHash('sha256').update(s).digest('hex'); - Network accessline 17
export const SOURCE_URL='https://ecos.bok.or.kr/' as const; - Network accessline 17
export const SOURCE_URL='https://ecos.bok.or.kr/' as const;
government-bond-analysis/src/dual.mts
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 50
export function dualSummary(packet: DualPacket, analysis = analyzeDual(packet)): Record<string, unknown> { const market = (name: 'KTB' | 'UST', a: Analysis | UstAnalysis) => ({ market: name, status: a.status, observed: { base: a.previous. - Network accessline 50
export function dualSummary(packet: DualPacket, analysis = analyzeDual(packet)): Record<string, unknown> { const market = (name: 'KTB' | 'UST', a: Analysis | UstAnalysis) => ({ market: name, status: a.status, observed: { base: a.previous. - Network accessline 51
const market = (name: 'KTB' | 'UST', a: Analysis | UstAnalysis) => ({ market: name, status: a.status, observed: { base: a.previous.actual, asOf: a.current.actual }, rates: TENORS.map((tenor, i) => ({ tenor: `${tenor}Y`, base: name === 'KTB' - Network accessline 51
const market = (name: 'KTB' | 'UST', a: Analysis | UstAnalysis) => ({ market: name, status: a.status, observed: { base: a.previous.actual, asOf: a.current.actual }, rates: TENORS.map((tenor, i) => ({ tenor: `${tenor}Y`, base: name === 'KTB' - Network accessline 52
return { result: analysis.status, requested: { base: packet.ktb.base, asOf: packet.ktb.asOf }, markets: [market('KTB', analysis.ktb), market('UST', analysis.ust)], cross: analysis.cross, schedule: analysis.schedule, notes: analysis.notes, s - Network accessline 52
return { result: analysis.status, requested: { base: packet.ktb.base, asOf: packet.ktb.asOf }, markets: [market('KTB', analysis.ktb), market('UST', analysis.ust)], cross: analysis.cross, schedule: analysis.schedule, notes: analysis.notes, s - Network accessline 103
'- UST는 미국 재무부의 명목 par/constant-maturity 수익률, KTB는 ECOS 국고채 시장금리입니다. 같은 날짜라도 종가 시점이 달라 단순 금리차는 동시 가격이나 환헤지 수익을 뜻하지 않습니다.', '', `**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` - Network accessline 103
'- UST는 미국 재무부의 명목 par/constant-maturity 수익률, KTB는 ECOS 국고채 시장금리입니다. 같은 날짜라도 종가 시점이 달라 단순 금리차는 동시 가격이나 환헤지 수익을 뜻하지 않습니다.', '', `**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` - Network accessline 104
'', `**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` ].join('\n'); - Network accessline 104
'', `**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` ].join('\n'); - Network accessline 105
`**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` - Network accessline 105
`**출처:** [한국은행 ECOS](https://ecos.bok.or.kr/) · [미국 재무부 일별 국채 수익률](${UST_SOURCE_PAGE})` - Possible obfuscationline 130
return `<!doctype html><html lang="ko"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>한·미 국채 금리 분석</title><style>body{font:15px/1.55 system-ui,sans-serif;background:#f4f6fa;color:#17203 - Possible obfuscationline 130
return `<!doctype html><html lang="ko"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>한·미 국채 금리 분석</title><style>body{font:15px/1.55 system-ui,sans-serif;background:#f4f6fa;color:#17203 - Network accessline 143
const summary = dualSummary(packet, a); const files: Record<(typeof FILES)[number], string> = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → $ - Network accessline 143
const summary = dualSummary(packet, a); const files: Record<(typeof FILES)[number], string> = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → $ - Network accessline 144
const files: Record<(typeof FILES)[number], string> = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.mov - Network accessline 144
const files: Record<(typeof FILES)[number], string> = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.mov - Network accessline 145
'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous.actual ?? '없음'} → ${a.ust.cu - Network accessline 145
'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous.actual ?? '없음'} → ${a.ust.cu - Network accessline 165
if (manifest.status !== a.status) throw Error('Dual status mismatch'); const expected: Record<(typeof FILES)[number], string> = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.kt - Network accessline 165
if (manifest.status !== a.status) throw Error('Dual status mismatch'); const expected: Record<(typeof FILES)[number], string> = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.kt - Network accessline 166
const expected: Record<(typeof FILES)[number], string> = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.mo - Network accessline 166
const expected: Record<(typeof FILES)[number], string> = { 'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.mo - Network accessline 167
'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous.actual ?? '없음'} → ${a.ust.cu - Network accessline 167
'brief.md': `# 한·미 국채 금리 분석\n\n요청 ${packet.ktb.base} → ${packet.ktb.asOf} · ${a.status}\n\nKTB 관측 ${a.ktb.previous.actual ?? '없음'} → ${a.ktb.current.actual ?? '없음'} · ${a.ktb.movement}\n\nUST 관측 ${a.ust.previous.actual ?? '없음'} → ${a.ust.cu
government-bond-analysis/src/harness.mts
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 25
const packetFor=(rows:Observation[]=obs):Packet=>({version:PACKET_VERSION,engine:ENGINE,asOf:'2026-09-18',base:'2026-09-11',maxLag:7,observations:rows,receipts:receiptsFor(rows),label:'테스트'}); const packet=packetFor(),analysis=analyze(packe - Network accessline 25
const packetFor=(rows:Observation[]=obs):Packet=>({version:PACKET_VERSION,engine:ENGINE,asOf:'2026-09-18',base:'2026-09-11',maxLag:7,observations:rows,receipts:receiptsFor(rows),label:'테스트'}); const packet=packetFor(),analysis=analyze(packe - Network accessline 26
const packet=packetFor(),analysis=analyze(packet); const newsInput={version:1,observationDate:'2026-09-18',retrievedAt:'2026-09-18T12:00:00.000Z',articles:[{publisher:'연합인포맥스',title:'[채권-마감] 금리 하락…외국인 선물 매수',url:'https://news.einfomax.co.kr - Network accessline 26
const packet=packetFor(),analysis=analyze(packet); const newsInput={version:1,observationDate:'2026-09-18',retrievedAt:'2026-09-18T12:00:00.000Z',articles:[{publisher:'연합인포맥스',title:'[채권-마감] 금리 하락…외국인 선물 매수',url:'https://news.einfomax.co.kr - Network accessline 27
const newsInput={version:1,observationDate:'2026-09-18',retrievedAt:'2026-09-18T12:00:00.000Z',articles:[{publisher:'연합인포맥스',title:'[채권-마감] 금리 하락…외국인 선물 매수',url:'https://news.einfomax.co.kr/news/articleView.html?idxno=4359540',publishedAt:' - Network accessline 27
const newsInput={version:1,observationDate:'2026-09-18',retrievedAt:'2026-09-18T12:00:00.000Z',articles:[{publisher:'연합인포맥스',title:'[채권-마감] 금리 하락…외국인 선물 매수',url:'https://news.einfomax.co.kr/news/articleView.html?idxno=4359540',publishedAt:' - Network accessline 29
check(()=>{assert.equal(newsAnalysis.status,'SOURCED');assert.equal(newsAnalysis.confidence,'HIGH');assert.equal(newsAnalysis.curveDirection,'lower');assert.equal(newsAnalysis.eligible.length,1);assert.match(newsAnalysis.commentary[0],/외국인의 - Network accessline 29
check(()=>{assert.equal(newsAnalysis.status,'SOURCED');assert.equal(newsAnalysis.confidence,'HIGH');assert.equal(newsAnalysis.curveDirection,'lower');assert.equal(newsAnalysis.eligible.length,1);assert.match(newsAnalysis.commentary[0],/외국인의 - Network accessline 30
check(()=>{const mismatch=structuredClone(newsInput);mismatch.articles[0].marketDirection='higher';const result=analyzeNews(newsRead(JSON.stringify(mismatch)),analysis);assert.equal(result.status,'UNATTRIBUTED');assert.equal(result.excluded - Network accessline 30
check(()=>{const mismatch=structuredClone(newsInput);mismatch.articles[0].marketDirection='higher';const result=analyzeNews(newsRead(JSON.stringify(mismatch)),analysis);assert.equal(result.status,'UNATTRIBUTED');assert.equal(result.excluded - Network accessline 31
check(()=>{const bad=structuredClone(newsInput);bad.articles[0].url='https://example.com/article';assert.throws(()=>newsRead(JSON.stringify(bad)),/Unapproved/);}); - Network accessline 31
check(()=>{const bad=structuredClone(newsInput);bad.articles[0].url='https://example.com/article';assert.throws(()=>newsRead(JSON.stringify(bad)),/Unapproved/);}); - Network accessline 36
check(()=>{const bad=structuredClone(newsInput);bad.articles.push(structuredClone(bad.articles[0]));assert.throws(()=>newsRead(JSON.stringify(bad)),/Duplicate/);}); check(()=>{const bad=structuredClone(newsEvidence);bad.articles[0].sourceFi - Network accessline 36
check(()=>{const bad=structuredClone(newsInput);bad.articles.push(structuredClone(bad.articles[0]));assert.throws(()=>newsRead(JSON.stringify(bad)),/Duplicate/);}); check(()=>{const bad=structuredClone(newsEvidence);bad.articles[0].sourceFi - Network accessline 37
check(()=>{const bad=structuredClone(newsEvidence);bad.articles[0].sourceFingerprint='0'.repeat(64);assert.throws(()=>newsRead(JSON.stringify(bad)),/fingerprint/);}); check(()=>{const contextual=structuredClone(newsInput);contextual.article - Network accessline 37
check(()=>{const bad=structuredClone(newsEvidence);bad.articles[0].sourceFingerprint='0'.repeat(64);assert.throws(()=>newsRead(JSON.stringify(bad)),/fingerprint/);}); check(()=>{const contextual=structuredClone(newsInput);contextual.article - Network accessline 38
check(()=>{const contextual=structuredClone(newsInput);contextual.articles[0].publisher='한국은행';contextual.articles[0].url='https://www.bok.or.kr/portal/bbs/B0000217/view.do?nttId=10000000';contextual.articles[0].sourceType='official-release - Network accessline 38
check(()=>{const contextual=structuredClone(newsInput);contextual.articles[0].publisher='한국은행';contextual.articles[0].url='https://www.bok.or.kr/portal/bbs/B0000217/view.do?nttId=10000000';contextual.articles[0].sourceType='official-release - Network accessline 123
await writeFile(join(first,'brief.md'),(await readFile(join(first,'brief.md'),'utf8'))+'tampered');await assert.rejects(()=>validateArtifacts(first),/hash mismatch/);checks++; }finally{await rm(root,{recursive:true,force:true});} const ustF - Network accessline 123
await writeFile(join(first,'brief.md'),(await readFile(join(first,'brief.md'),'utf8'))+'tampered');await assert.rejects(()=>validateArtifacts(first),/hash mismatch/);checks++; }finally{await rm(root,{recursive:true,force:true});} const ustF - Network accessline 124
}finally{await rm(root,{recursive:true,force:true});} const ustFixture=(dates:string[]):string=>`<?xml version="1.0"?><feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/da - Network accessline 124
}finally{await rm(root,{recursive:true,force:true});} const ustFixture=(dates:string[]):string=>`<?xml version="1.0"?><feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/da - Network accessline 125
const ustFixture=(dates:string[]):string=>`<?xml version="1.0"?><feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><title type="text">DailyTreasuryY - Network accessline 125
const ustFixture=(dates:string[]):string=>`<?xml version="1.0"?><feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><title type="text">DailyTreasuryY - Network accessline 177
} check(()=>{const tampered=structuredClone(us);tampered.sources[0].sha256='0'.repeat(64);assert.throws(()=>analyzeUst(tampered),/checksum/);}); check(()=>{const bad=structuredClone(us);bad.sources[0].url='https://example.com/';assert.t - Network accessline 177
} check(()=>{const tampered=structuredClone(us);tampered.sources[0].sha256='0'.repeat(64);assert.throws(()=>analyzeUst(tampered),/checksum/);}); check(()=>{const bad=structuredClone(us);bad.sources[0].url='https://example.com/';assert.t - Network accessline 178
check(()=>{const tampered=structuredClone(us);tampered.sources[0].sha256='0'.repeat(64);assert.throws(()=>analyzeUst(tampered),/checksum/);}); check(()=>{const bad=structuredClone(us);bad.sources[0].url='https://example.com/';assert.throw - Network accessline 178
check(()=>{const tampered=structuredClone(us);tampered.sources[0].sha256='0'.repeat(64);assert.throws(()=>analyzeUst(tampered),/checksum/);}); check(()=>{const bad=structuredClone(us);bad.sources[0].url='https://example.com/';assert.throw - Network accessline 179
check(()=>{const bad=structuredClone(us);bad.sources[0].url='https://example.com/';assert.throws(()=>analyzeUst(bad),/identity/);}); - Network accessline 179
check(()=>{const bad=structuredClone(us);bad.sources[0].url='https://example.com/';assert.throws(()=>analyzeUst(bad),/identity/);}); - Network accessline 189
const html=await readFile(join(first,'report.html'),'utf8');check(()=>{assert.match(html,/한국 국고채/);assert.match(html,/미국 국채 par/);assert.match(html,/공통 관측일/);assert.ok(html.includes(us.sources[0].url.replaceAll('&','&')));assert.doesNot - Network accessline 189
const html=await readFile(join(first,'report.html'),'utf8');check(()=>{assert.match(html,/한국 국고채/);assert.match(html,/미국 국채 par/);assert.match(html,/공통 관측일/);assert.ok(html.includes(us.sources[0].url.replaceAll('&','&')));assert.doesNot - Network accessline 190
const schedule:ScheduleEvidence={version:1,anchorDate:'2026-09-18',checkedAt:'2026-09-18T23:00:00.000Z',events:[ {date:'2026-09-21',market:'KR',kind:'auction',tenor:5,sourceUrl:'https://ktb.moef.go.kr/mnbyIsuCldr.do',sourceExcerpt:'2026 - Network accessline 190
const schedule:ScheduleEvidence={version:1,anchorDate:'2026-09-18',checkedAt:'2026-09-18T23:00:00.000Z',events:[ {date:'2026-09-21',market:'KR',kind:'auction',tenor:5,sourceUrl:'https://ktb.moef.go.kr/mnbyIsuCldr.do',sourceExcerpt:'2026 - Network accessline 191
{date:'2026-09-21',market:'KR',kind:'auction',tenor:5,sourceUrl:'https://ktb.moef.go.kr/mnbyIsuCldr.do',sourceExcerpt:'2026.09.21. | 5년물',sourceDateText:'2026.09.21.'}, - Network accessline 191
{date:'2026-09-21',market:'KR',kind:'auction',tenor:5,sourceUrl:'https://ktb.moef.go.kr/mnbyIsuCldr.do',sourceExcerpt:'2026.09.21. | 5년물',sourceDateText:'2026.09.21.'}, - Network accessline 192
{date:'2026-09-23',market:'US',kind:'auction',tenor:5,sourceUrl:'https://home.treasury.gov/system/files/221/TentativeAuctionScheduleQ22026.pdf',sourceExcerpt:'5-Year NOTE Thursday, September 17, 2026 Wednesday, September 23, 2026 Wednesday, - Network accessline 192
{date:'2026-09-23',market:'US',kind:'auction',tenor:5,sourceUrl:'https://home.treasury.gov/system/files/221/TentativeAuctionScheduleQ22026.pdf',sourceExcerpt:'5-Year NOTE Thursday, September 17, 2026 Wednesday, September 23, 2026 Wednesday, - Network accessline 193
{date:'2026-10-22',market:'KR',kind:'policy',sourceUrl:'https://www.bok.or.kr/portal/singl/crncyPolicyDrcMtg/listYear.do?menuNo=200755&mtgSe=A',sourceExcerpt:'2026 통화정책방향 결정회의 일정 및 자료 10월 22일(목)',sourceDateText:'10월 22일'}, - Network accessline 193
{date:'2026-10-22',market:'KR',kind:'policy',sourceUrl:'https://www.bok.or.kr/portal/singl/crncyPolicyDrcMtg/listYear.do?menuNo=200755&mtgSe=A',sourceExcerpt:'2026 통화정책방향 결정회의 일정 및 자료 10월 22일(목)',sourceDateText:'10월 22일'}, - Network accessline 194
{date:'2026-10-28',market:'US',kind:'policy',sourceUrl:'https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm',sourceExcerpt:'2026 FOMC Meetings October 27-28',sourceDateText:'October 27-28'} - Network accessline 194
{date:'2026-10-28',market:'US',kind:'policy',sourceUrl:'https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm',sourceExcerpt:'2026 FOMC Meetings October 27-28',sourceDateText:'October 27-28'} - Network accessline 197
const scheduledDual: DualPacket={...dual,schedule:scheduled},scheduledChat=dualChat(scheduledDual);check(()=>{assert.match(scheduledChat,/2026-09-21 \(KR\) 국고채 5년물 입찰/);assert.match(scheduledChat,/2026-09-23 \(US\) 미국 국채 5년물 입찰/);assert.mat - Network accessline 197
const scheduledDual: DualPacket={...dual,schedule:scheduled},scheduledChat=dualChat(scheduledDual);check(()=>{assert.match(scheduledChat,/2026-09-21 \(KR\) 국고채 5년물 입찰/);assert.match(scheduledChat,/2026-09-23 \(US\) 미국 국채 5년물 입찰/);assert.mat - Network accessline 198
check(()=>{const bad=structuredClone(schedule);bad.events[0].date='2026-09-22';assert.throws(()=>analyzeSchedule(bad,'2026-09-18'),/quoted date/);}); check(()=>{const bad=structuredClone(schedule);bad.events[1].sourceUrl='https://home.tre - Network accessline 198
check(()=>{const bad=structuredClone(schedule);bad.events[0].date='2026-09-22';assert.throws(()=>analyzeSchedule(bad,'2026-09-18'),/quoted date/);}); check(()=>{const bad=structuredClone(schedule);bad.events[1].sourceUrl='https://home.tre - Network accessline 199
check(()=>{const bad=structuredClone(schedule);bad.events[1].sourceUrl='https://home.treasury.gov.evil.example/schedule';assert.throws(()=>analyzeSchedule(bad,'2026-09-18'),/host/);}); - Network accessline 199
check(()=>{const bad=structuredClone(schedule);bad.events[1].sourceUrl='https://home.treasury.gov.evil.example/schedule';assert.throws(()=>analyzeSchedule(bad,'2026-09-18'),/host/);});
government-bond-analysis/src/modes.mts
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 77
date(asOf);if(typeof cacheDir!=='string'||!cacheDir.trim())throw Error('cacheDir must be a non-empty path');if(!Number.isFinite(now.getTime()))throw Error('Invalid policy-rate clock');if(!Number.isFinite(maxAgeHours)||maxAgeHours<0)throw Er - Network accessline 77
date(asOf);if(typeof cacheDir!=='string'||!cacheDir.trim())throw Error('cacheDir must be a non-empty path');if(!Number.isFinite(now.getTime()))throw Error('Invalid policy-rate clock');if(!Number.isFinite(maxAgeHours)||maxAgeHours<0)throw Er - Network accessline 78
const from=shift(asOf,-7),to=asOf,retrievedAt=now.toISOString(),file=join(cacheDir,`policy-${from}-${to}.mjson`);if(useCache)await mkdir(cacheDir,{recursive:true});let liveError=''; try{const key=process.env.KSKILL_BOK_ECOS_API_KEY||'samp - Network accessline 78
const from=shift(asOf,-7),to=asOf,retrievedAt=now.toISOString(),file=join(cacheDir,`policy-${from}-${to}.mjson`);if(useCache)await mkdir(cacheDir,{recursive:true});let liveError=''; try{const key=process.env.KSKILL_BOK_ECOS_API_KEY||'samp - Network accessline 79
[Credential-related source omitted] - Network accessline 79
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Network accessline 80
if(useCache)try{const envelope=JSON.parse(await readFile(file,'utf8')) as {data:PolicyCache;digest:string},data=envelope.data,age=(now.getTime()-Date.parse(data.storedAt))/3600000;if(envelope.digest!==sha256(JSON.stringify(data))||data.vers - Network accessline 80
if(useCache)try{const envelope=JSON.parse(await readFile(file,'utf8')) as {data:PolicyCache;digest:string},data=envelope.data,age=(now.getTime()-Date.parse(data.storedAt))/3600000;if(envelope.digest!==sha256(JSON.stringify(data))||data.vers
government-bond-analysis/src/news.mts
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 69
export function newsTemplate(observationDate:string,retrievedAt:string):string{ date(observationDate);instant(retrievedAt,'retrievedAt');const publishedAt=new Date(`${observationDate}T00:00:00+09:00`).toISOString();return JSON.stringify({ - Network accessline 69
export function newsTemplate(observationDate:string,retrievedAt:string):string{ date(observationDate);instant(retrievedAt,'retrievedAt');const publishedAt=new Date(`${observationDate}T00:00:00+09:00`).toISOString();return JSON.stringify({ - Network accessline 70
date(observationDate);instant(retrievedAt,'retrievedAt');const publishedAt=new Date(`${observationDate}T00:00:00+09:00`).toISOString();return JSON.stringify({version:1,observationDate,retrievedAt,articles:[{publisher:'연합인포맥스',title:'기사 제목을 - Network accessline 70
date(observationDate);instant(retrievedAt,'retrievedAt');const publishedAt=new Date(`${observationDate}T00:00:00+09:00`).toISOString();return JSON.stringify({version:1,observationDate,retrievedAt,articles:[{publisher:'연합인포맥스',title:'기사 제목을
government-bond-analysis/src/render.mts
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Possible obfuscationline 62
:root{--ink:#172033;--muted:#687386;--paper:#f5f3ee;--card:#fff;--blue:#165dff;--orange:#e97522;--line:#dfe4eb;--good:#17745c;--warn:#a15c00;--bad:#a9363e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:1 - Possible obfuscationline 62
:root{--ink:#172033;--muted:#687386;--paper:#f5f3ee;--card:#fff;--blue:#165dff;--orange:#e97522;--line:#dfe4eb;--good:#17745c;--warn:#a15c00;--bad:#a9363e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:1 - Possible obfuscationline 63
</style></head><body><main class="wrap"><header><div><div class="eyebrow">KOREAN RATES · VERIFIED SNAPSHOT</div><h1>${esc(p.label)}</h1><div class="meta">요청 ${esc(p.base)} → ${esc(p.asOf)} · 관측 ${esc(a.previous.actual??'없음')} → ${esc(a.curr - Possible obfuscationline 63
</style></head><body><main class="wrap"><header><div><div class="eyebrow">KOREAN RATES · VERIFIED SNAPSHOT</div><h1>${esc(p.label)}</h1><div class="meta">요청 ${esc(p.base)} → ${esc(p.asOf)} · 관측 ${esc(a.previous.actual??'없음')} → ${esc(a.curr
government-bond-analysis/src/schedule.mts
government-bond-analysis/src/ust.mts
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 9
}; export const UST_SOURCE = 'U.S. Treasury Daily Treasury Par Yield Curve Rates'; export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; - Network accessline 9
}; export const UST_SOURCE = 'U.S. Treasury Daily Treasury Par Yield Curve Rates'; export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; - Network accessline 10
export const UST_SOURCE = 'U.S. Treasury Daily Treasury Par Yield Curve Rates'; export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; export con - Network accessline 10
export const UST_SOURCE = 'U.S. Treasury Daily Treasury Par Yield Curve Rates'; export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; export con - Network accessline 11
export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; - Network accessline 11
export const UST_SOURCE_PAGE = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/TextView?type=daily_treasury_yield_curve'; - Network accessline 21
export function ustMonthUrl(month: string): string { if (!/^\d{4}-(0[1-9]|1[0-2])$/.test(month)) throw Error('Invalid UST month'); return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_t - Network accessline 21
export function ustMonthUrl(month: string): string { if (!/^\d{4}-(0[1-9]|1[0-2])$/.test(month)) throw Error('Invalid UST month'); return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_t - Network accessline 22
if (!/^\d{4}-(0[1-9]|1[0-2])$/.test(month)) throw Error('Invalid UST month'); return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_treasury_yield_curve&field_tdr_date_value_month=${month. - Network accessline 22
if (!/^\d{4}-(0[1-9]|1[0-2])$/.test(month)) throw Error('Invalid UST month'); return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_treasury_yield_curve&field_tdr_date_value_month=${month. - Network accessline 23
return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_treasury_yield_curve&field_tdr_date_value_month=${month.replace('-', '')}`; - Network accessline 23
return `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/pages/xml?data=daily_treasury_yield_curve&field_tdr_date_value_month=${month.replace('-', '')}`;
government-support-survey/SKILL.md
- Network accessline 30
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/government-support-survey/instruction.md. - Network accessline 30
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/government-support-survey/instruction.md.
government-support-survey/references/NOTICE.md
- Network accessline 5
- 프로젝트: [djfksjd/ir-search](https://github.com/djfksjd/ir-search) - Network accessline 5
- 프로젝트: [djfksjd/ir-search](https://github.com/djfksjd/ir-search) - Network accessline 6
- 라이선스: [MIT License](https://github.com/djfksjd/ir-search/blob/main/LICENSE) - Network accessline 6
- 라이선스: [MIT License](https://github.com/djfksjd/ir-search/blob/main/LICENSE) - Network accessline 15
| 소스 | 공식 URL | k-skill 처리 | |---|---|---| | K-Startup | https://www.data.go.kr/data/15125364/openapi.do | 공공데이터포털 Open API 응답의 공고 메타데이터와 링크 | - Network accessline 15
| 소스 | 공식 URL | k-skill 처리 | |---|---|---| | K-Startup | https://www.data.go.kr/data/15125364/openapi.do | 공공데이터포털 Open API 응답의 공고 메타데이터와 링크 | - Network accessline 16
|---|---|---| | K-Startup | https://www.data.go.kr/data/15125364/openapi.do | 공공데이터포털 Open API 응답의 공고 메타데이터와 링크 | | 기업마당 | https://www.bizinfo.go.kr/ | 공개 모집 목록의 메타데이터와 공식 상세 링크 | - Network accessline 16
|---|---|---| | K-Startup | https://www.data.go.kr/data/15125364/openapi.do | 공공데이터포털 Open API 응답의 공고 메타데이터와 링크 | | 기업마당 | https://www.bizinfo.go.kr/ | 공개 모집 목록의 메타데이터와 공식 상세 링크 | - Network accessline 17
| K-Startup | https://www.data.go.kr/data/15125364/openapi.do | 공공데이터포털 Open API 응답의 공고 메타데이터와 링크 | - Network accessline 17
| K-Startup | https://www.data.go.kr/data/15125364/openapi.do | 공공데이터포털 Open API 응답의 공고 메타데이터와 링크 | - Network accessline 18
| 기업마당 | https://www.bizinfo.go.kr/ | 공개 모집 목록의 메타데이터와 공식 상세 링크 | - Network accessline 18
| 기업마당 | https://www.bizinfo.go.kr/ | 공개 모집 목록의 메타데이터와 공식 상세 링크 | - Network accessline 19
| NIPA | https://www.nipa.kr/home/2-2 | 공개 사업공고 목록의 메타데이터와 공식 상세 링크 | - Network accessline 19
| NIPA | https://www.nipa.kr/home/2-2 | 공개 사업공고 목록의 메타데이터와 공식 상세 링크 | - Network accessline 20
| KOCCA | https://www.kocca.kr/kocca/pims/list.do | 공개 지원공고 목록의 메타데이터와 공식 상세 링크 | - Network accessline 20
| KOCCA | https://www.kocca.kr/kocca/pims/list.do | 공개 지원공고 목록의 메타데이터와 공식 상세 링크 | - Network accessline 21
| SMTECH | https://www.smtech.go.kr/front/ifg/no/notice02_list.do | 공개 R&D 공고 목록의 메타데이터와 공식 상세 링크 | - Network accessline 21
| SMTECH | https://www.smtech.go.kr/front/ifg/no/notice02_list.do | 공개 R&D 공고 목록의 메타데이터와 공식 상세 링크 |
government-support-survey/scripts/run_survey.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 13
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 13
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Network accessline 48
if not 1 <= args.per_page <= 100: parser().error("--per-page must be between 1 and 100") request = urllib.request.Request( - Network accessline 48
if not 1 <= args.per_page <= 100: parser().error("--per-page must be between 1 and 100") request = urllib.request.Request( - Network accessline 49
parser().error("--per-page must be between 1 and 100") request = urllib.request.Request( build_url(args), - Network accessline 49
parser().error("--per-page must be between 1 and 100") request = urllib.request.Request( build_url(args), - Network accessline 50
request = urllib.request.Request( - Network accessline 50
request = urllib.request.Request( - Network accessline 53
) try: with urllib.request.urlopen(request, timeout=args.timeout) as response: - Network accessline 53
) try: with urllib.request.urlopen(request, timeout=args.timeout) as response: - Network accessline 54
try: with urllib.request.urlopen(request, timeout=args.timeout) as response: payload = json.load(response) - Network accessline 54
try: with urllib.request.urlopen(request, timeout=args.timeout) as response: payload = json.load(response) - Network accessline 55
with urllib.request.urlopen(request, timeout=args.timeout) as response: - Network accessline 55
with urllib.request.urlopen(request, timeout=args.timeout) as response:
government-support-survey/tests/test_run_survey.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 17
max_pages=2, per_page=50, proxy_base_url="https://proxy.example/", - Network accessline 17
max_pages=2, per_page=50, proxy_base_url="https://proxy.example/", - Network accessline 18
per_page=50, proxy_base_url="https://proxy.example/", ) - Network accessline 18
per_page=50, proxy_base_url="https://proxy.example/", ) - Network accessline 19
proxy_base_url="https://proxy.example/", - Network accessline 19
proxy_base_url="https://proxy.example/", - Network accessline 21
self.assertEqual( run_survey.build_url(args), "https://proxy.example/v1/government-support/survey?" - Network accessline 21
self.assertEqual( run_survey.build_url(args), "https://proxy.example/v1/government-support/survey?" - Network accessline 22
run_survey.build_url(args), "https://proxy.example/v1/government-support/survey?" "sources=kstartup%2Cbizinfo&maxPages=2&perPage=50&keyword=AI+%EB%B0%94%EC%9A%B0%EC%B2%98", - Network accessline 22
run_survey.build_url(args), "https://proxy.example/v1/government-support/survey?" "sources=kstartup%2Cbizinfo&maxPages=2&perPage=50&keyword=AI+%EB%B0%94%EC%9A%B0%EC%B2%98", - Network accessline 23
"https://proxy.example/v1/government-support/survey?" - Network accessline 23
"https://proxy.example/v1/government-support/survey?"
han-river-water-level/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/han-river-water-level/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/han-river-water-level/instruction.md.
han-river-water-level/instruction.md
- Network accessline 5
기본적으로 `https://k-skill-proxy.nomadamas.org/v1/han-river/water-level` 로 요청해서 현재 수위와 유량을 요약한다. - Network accessline 5
기본적으로 `https://k-skill-proxy.nomadamas.org/v1/han-river/water-level` 로 요청해서 현재 수위와 유량을 요약한다. - Network accessline 28
`KSKILL_PROXY_BASE_URL` 환경변수가 있으면 그 값을 사용하고, 없으면 기본 경로 `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 28
`KSKILL_PROXY_BASE_URL` 환경변수가 있으면 그 값을 사용하고, 없으면 기본 경로 `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 33
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/han-river/water-level' \ - Network accessline 33
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/han-river/water-level' \ - Network accessline 40
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/han-river/water-level' \ - Network accessline 40
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/han-river/water-level' \ - Network accessline 59
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/han-river/water-level' \ - Network accessline 59
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/han-river/water-level' \ - Access to secretsline 76
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted]
hankookilbo-news/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/hankookilbo-news/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/hankookilbo-news/instruction.md.
hankookilbo-news/instruction.md
- Network accessline 7
- 엔드포인트: `https://mcp.hankookilbo.com/mcp` (Streamable HTTP MCP, 인증 불필요) - Network accessline 7
- 엔드포인트: `https://mcp.hankookilbo.com/mcp` (Streamable HTTP MCP, 인증 불필요) - Network accessline 42
curl -fsS --max-time 35 https://mcp.hankookilbo.com/mcp \ - Network accessline 42
curl -fsS --max-time 35 https://mcp.hankookilbo.com/mcp \ - Dangerous shell operationline 52
curl -fsS --max-time 35 https://mcp.hankookilbo.com/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -H 'User-Agent: k-skill-hankookilbo/1.0' -d '{"jsonrpc":"2.0","id":1,"method":"tools/ca - Dangerous shell operationline 52
curl -fsS --max-time 35 https://mcp.hankookilbo.com/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -H 'User-Agent: k-skill-hankookilbo/1.0' -d '{"jsonrpc":"2.0","id":1,"method":"tools/ca - Network accessline 52
curl -fsS --max-time 35 https://mcp.hankookilbo.com/mcp \ - Network accessline 52
curl -fsS --max-time 35 https://mcp.hankookilbo.com/mcp \ - Network accessline 65
claude mcp add --transport http hankookilbo https://mcp.hankookilbo.com/mcp - Network accessline 65
claude mcp add --transport http hankookilbo https://mcp.hankookilbo.com/mcp - Network accessline 66
codex mcp add hankookilbo --url https://mcp.hankookilbo.com/mcp - Network accessline 66
codex mcp add hankookilbo --url https://mcp.hankookilbo.com/mcp - Network accessline 102
curl -fsS --max-time 35 https://mcp.hankookilbo.com/mcp \ - Network accessline 102
curl -fsS --max-time 35 https://mcp.hankookilbo.com/mcp \
heyyumi/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/heyyumi/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/heyyumi/instruction.md.
heyyumi/instruction.md
- Network accessline 5
헤이유미 공식 CLI(`heyyumi`, npm, https://github.com/hmp-dev/heyyumi-cli)로 한국 식당·카페·바를 찾고, 예약 요청을 보낸 뒤 매장의 수락/거절/만료까지 확인한다. 같은 CLI로 "지금 자리 있어요? 웨이팅 몇 분이에요?" 같은 실시간 문의도 매장에 보낸다. - Network accessline 5
헤이유미 공식 CLI(`heyyumi`, npm, https://github.com/hmp-dev/heyyumi-cli)로 한국 식당·카페·바를 찾고, 예약 요청을 보낸 뒤 매장의 수락/거절/만료까지 확인한다. 같은 CLI로 "지금 자리 있어요? 웨이팅 몇 분이에요?" 같은 실시간 문의도 매장에 보낸다. - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted]
highway-traffic-status/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/highway-traffic-status/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/highway-traffic-status/instruction.md.
highway-traffic-status/instruction.md
- Network accessline 30
[Credential-related source omitted] - Network accessline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Network accessline 31
[Credential-related source omitted] - Network accessline 31
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Network accessline 70
1. `https://data.ex.co.kr/openapi/odtraffic/trafficAmountByRealtime?key=<key>&type=json` — 전국 VDS 실시간 스냅샷. 필터(노선/구간)는 helper가 클라이언트 측에서 수행한다. - Network accessline 70
1. `https://data.ex.co.kr/openapi/odtraffic/trafficAmountByRealtime?key=<key>&type=json` — 전국 VDS 실시간 스냅샷. 필터(노선/구간)는 helper가 클라이언트 측에서 수행한다. - Network accessline 71
[Credential-related source omitted] - Network accessline 71
[Credential-related source omitted]
highway-traffic-status/scripts/highway_traffic.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 6
1. 한국도로공사 공공데이터포털 (data.ex.co.kr) GET https://data.ex.co.kr/openapi/odtraffic/trafficAmountByRealtime - Network accessline 6
1. 한국도로공사 공공데이터포털 (data.ex.co.kr) GET https://data.ex.co.kr/openapi/odtraffic/trafficAmountByRealtime - Network accessline 7
GET https://data.ex.co.kr/openapi/odtraffic/trafficAmountByRealtime - Network accessline 7
GET https://data.ex.co.kr/openapi/odtraffic/trafficAmountByRealtime - Network accessline 14
2. 국가교통정보센터 ITS (openapi.its.go.kr:9443) GET https://openapi.its.go.kr:9443/cctvInfo - Network accessline 14
2. 국가교통정보센터 ITS (openapi.its.go.kr:9443) GET https://openapi.its.go.kr:9443/cctvInfo - Network accessline 15
GET https://openapi.its.go.kr:9443/cctvInfo - Network accessline 15
GET https://openapi.its.go.kr:9443/cctvInfo - Network accessline 41
EXDATA_BASE_URL = "https://data.ex.co.kr/openapi/odtraffic/trafficAmountByRealtime" - Network accessline 41
EXDATA_BASE_URL = "https://data.ex.co.kr/openapi/odtraffic/trafficAmountByRealtime" - Network accessline 42
ITS_CCTV_BASE_URL = "https://openapi.its.go.kr:9443/cctvInfo" - Network accessline 42
ITS_CCTV_BASE_URL = "https://openapi.its.go.kr:9443/cctvInfo" - Network accessline 54
USER_AGENT = "k-skill-highway-traffic/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 54
USER_AGENT = "k-skill-highway-traffic/0.1 (+https://github.com/NomaDamas/k-skill)" - Access to secretsline 76
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted] - Network accessline 122
def http_get_text(url: str, timeout: int) -> str: request = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 122
def http_get_text(url: str, timeout: int) -> str: request = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 123
request = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 123
request = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 124
try: with urllib.request.urlopen(request, timeout=timeout) as response: return response.read().decode("utf-8", "replace") - Network accessline 124
try: with urllib.request.urlopen(request, timeout=timeout) as response: return response.read().decode("utf-8", "replace") - Network accessline 125
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 125
with urllib.request.urlopen(request, timeout=timeout) as response: - Access to secretsline 276
[Credential-related source omitted] - Access to secretsline 276
[Credential-related source omitted] - Access to secretsline 277
[Credential-related source omitted] - Access to secretsline 277
[Credential-related source omitted] - Access to secretsline 293
[Credential-related source omitted] - Access to secretsline 293
[Credential-related source omitted] - Access to secretsline 294
[Credential-related source omitted] - Access to secretsline 294
[Credential-related source omitted]
highway-traffic-status/tests/test_highway_traffic.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 69
<data> <cctvtype>1</cctvtype> <cctvurl>http://cctvsec.example/stream1</cctvurl> - Network accessline 69
<data> <cctvtype>1</cctvtype> <cctvurl>http://cctvsec.example/stream1</cctvurl> - Network accessline 70
<cctvtype>1</cctvtype> <cctvurl>http://cctvsec.example/stream1</cctvurl> <coordy>37.42889</coordy> - Network accessline 70
<cctvtype>1</cctvtype> <cctvurl>http://cctvsec.example/stream1</cctvurl> <coordy>37.42889</coordy> - Network accessline 71
<cctvurl>http://cctvsec.example/stream1</cctvurl> - Network accessline 71
<cctvurl>http://cctvsec.example/stream1</cctvurl> - Network accessline 77
<data> <cctvtype>1</cctvtype> <cctvurl>http://cctvsec.example/stream2</cctvurl> - Network accessline 77
<data> <cctvtype>1</cctvtype> <cctvurl>http://cctvsec.example/stream2</cctvurl> - Network accessline 78
<cctvtype>1</cctvtype> <cctvurl>http://cctvsec.example/stream2</cctvurl> <coordy>37.5</coordy> - Network accessline 78
<cctvtype>1</cctvtype> <cctvurl>http://cctvsec.example/stream2</cctvurl> <coordy>37.5</coordy> - Network accessline 79
<cctvurl>http://cctvsec.example/stream2</cctvurl> - Network accessline 79
<cctvurl>http://cctvsec.example/stream2</cctvurl> - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 114
[Credential-related source omitted] - Access to secretsline 114
[Credential-related source omitted] - Access to secretsline 127
[Credential-related source omitted] - Access to secretsline 127
[Credential-related source omitted] - Access to secretsline 134
[Credential-related source omitted] - Access to secretsline 134
[Credential-related source omitted] - Network accessline 174
self.assertAlmostEqual(cams[0]["lat"], 37.42889) self.assertAlmostEqual(cams[0]["lon"], 127.12361) self.assertTrue(cams[0]["url"].startswith("http://cctvsec.example/")) - Network accessline 174
self.assertAlmostEqual(cams[0]["lat"], 37.42889) self.assertAlmostEqual(cams[0]["lon"], 127.12361) self.assertTrue(cams[0]["url"].startswith("http://cctvsec.example/")) - Network accessline 176
self.assertTrue(cams[0]["url"].startswith("http://cctvsec.example/")) - Network accessline 176
self.assertTrue(cams[0]["url"].startswith("http://cctvsec.example/"))
hola-poke-yeoksam/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/hola-poke-yeoksam/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/hola-poke-yeoksam/instruction.md.
hola-poke-yeoksam/instruction.md
- Network accessline 5
올라포케 역삼점 전용 remote MCP server(`https://hola-poke-yeoksam-skill.onrender.com/mcp`)를 기준으로 아래 작업을 처리한다. - Network accessline 5
올라포케 역삼점 전용 remote MCP server(`https://hola-poke-yeoksam-skill.onrender.com/mcp`)를 기준으로 아래 작업을 처리한다. - Network accessline 63
- endpoint: `https://hola-poke-yeoksam-skill.onrender.com/mcp` - Network accessline 63
- endpoint: `https://hola-poke-yeoksam-skill.onrender.com/mcp` - Network accessline 64
- reference repo: `https://github.com/mnspkm/hola-poke-yeoksam-skill` - Network accessline 64
- reference repo: `https://github.com/mnspkm/hola-poke-yeoksam-skill`
household-waste-info/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/household-waste-info/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/household-waste-info/instruction.md.
household-waste-info/instruction.md
- Network accessline 8
- 기본 조회 단위는 시군구명(`SGG_NM`)이다. - 응답은 사용자에게 이해하기 쉬운 요약 형태로 정리한다. - Base URL은 원본 API(`https://apis.data.go.kr/1741000/household_waste_info`)를 기준으로 한다. - Network accessline 8
- 기본 조회 단위는 시군구명(`SGG_NM`)이다. - 응답은 사용자에게 이해하기 쉬운 요약 형태로 정리한다. - Base URL은 원본 API(`https://apis.data.go.kr/1741000/household_waste_info`)를 기준으로 한다. - Network accessline 9
- 응답은 사용자에게 이해하기 쉬운 요약 형태로 정리한다. - Base URL은 원본 API(`https://apis.data.go.kr/1741000/household_waste_info`)를 기준으로 한다. - `serviceKey`(`DATA_GO_KR_API_KEY`)만 proxy 서버에서 주입/관리한다. - Network accessline 9
- 응답은 사용자에게 이해하기 쉬운 요약 형태로 정리한다. - Base URL은 원본 API(`https://apis.data.go.kr/1741000/household_waste_info`)를 기준으로 한다. - `serviceKey`(`DATA_GO_KR_API_KEY`)만 proxy 서버에서 주입/관리한다. - Network accessline 10
- Base URL은 원본 API(`https://apis.data.go.kr/1741000/household_waste_info`)를 기준으로 한다. - Network accessline 10
- Base URL은 원본 API(`https://apis.data.go.kr/1741000/household_waste_info`)를 기준으로 한다. - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted] - Network accessline 43
- Base URL: `https://apis.data.go.kr/1741000/household_waste_info` - Network accessline 43
- Base URL: `https://apis.data.go.kr/1741000/household_waste_info` - Network accessline 78
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/household-waste/info' \ - Network accessline 78
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/household-waste/info' \ - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 114
[Credential-related source omitted] - Access to secretsline 114
[Credential-related source omitted] - Network accessline 115
- API raw payload를 그대로 노출하지 말고 사용자 친화적으로 요약한다. - 응답이 여러 건이면 최신 `DAT_UPDT_PNT` 기준으로 우선 정렬해 보여준다. - 공식 데이터 출처: 공공데이터포털 (`https://www.data.go.kr`) - Network accessline 115
- API raw payload를 그대로 노출하지 말고 사용자 친화적으로 요약한다. - 응답이 여러 건이면 최신 `DAT_UPDT_PNT` 기준으로 우선 정렬해 보여준다. - 공식 데이터 출처: 공공데이터포털 (`https://www.data.go.kr`) - Network accessline 117
- 공식 데이터 출처: 공공데이터포털 (`https://www.data.go.kr`) - Network accessline 117
- 공식 데이터 출처: 공공데이터포털 (`https://www.data.go.kr`)
housing-official-price/SKILL.md
- Network accessline 40
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/housing-official-price/instruction.md. - Network accessline 40
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/housing-official-price/instruction.md.
housing-subscription-reference/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/housing-subscription-reference/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/housing-subscription-reference/instruction.md.
housing-subscription-reference/references/housing_subscription_score.csv
- Network accessline 1
category,condition,score,checked_date,source_basis,source_url homeless_period,no_eligible_period,0,2026-10-30,주택공급에 관한 규칙 별표 1 제1호가목3) 및 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 1
category,condition,score,checked_date,source_basis,source_url homeless_period,no_eligible_period,0,2026-10-30,주택공급에 관한 규칙 별표 1 제1호가목3) 및 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 2
homeless_period,no_eligible_period,0,2026-10-30,주택공급에 관한 규칙 별표 1 제1호가목3) 및 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 2
homeless_period,no_eligible_period,0,2026-10-30,주택공급에 관한 규칙 별표 1 제1호가목3) 및 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 3
homeless_period,under_1_year,2,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 3
homeless_period,under_1_year,2,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 4
homeless_period,1_to_2_years,4,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 4
homeless_period,1_to_2_years,4,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 5
homeless_period,2_to_3_years,6,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 5
homeless_period,2_to_3_years,6,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 6
homeless_period,3_to_4_years,8,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 6
homeless_period,3_to_4_years,8,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 7
homeless_period,4_to_5_years,10,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 7
homeless_period,4_to_5_years,10,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 8
homeless_period,5_to_6_years,12,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 8
homeless_period,5_to_6_years,12,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 9
homeless_period,6_to_7_years,14,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 9
homeless_period,6_to_7_years,14,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 10
homeless_period,7_to_8_years,16,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 10
homeless_period,7_to_8_years,16,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 11
homeless_period,8_to_9_years,18,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 11
homeless_period,8_to_9_years,18,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 12
homeless_period,9_to_10_years,20,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 12
homeless_period,9_to_10_years,20,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 13
homeless_period,10_to_11_years,22,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 13
homeless_period,10_to_11_years,22,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 14
homeless_period,11_to_12_years,24,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 14
homeless_period,11_to_12_years,24,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 15
homeless_period,12_to_13_years,26,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 15
homeless_period,12_to_13_years,26,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 16
homeless_period,13_to_14_years,28,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 16
homeless_period,13_to_14_years,28,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 17
homeless_period,14_to_15_years,30,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 17
homeless_period,14_to_15_years,30,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 18
homeless_period,15_years_or_more,32,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 18
homeless_period,15_years_or_more,32,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 19
dependents,0,5,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 19
dependents,0,5,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 20
dependents,1,10,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 20
dependents,1,10,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 21
dependents,2,15,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 21
dependents,2,15,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 22
dependents,3,20,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 22
dependents,3,20,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 23
dependents,4,25,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 23
dependents,4,25,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 24
dependents,5,30,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 24
dependents,5,30,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 25
dependents,6_or_more,35,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 25
dependents,6_or_more,35,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 26
subscription_account_period,under_6_months,1,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 26
subscription_account_period,under_6_months,1,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 27
subscription_account_period,6_months_to_1_year,2,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 27
subscription_account_period,6_months_to_1_year,2,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 28
subscription_account_period,1_to_2_years,3,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 28
subscription_account_period,1_to_2_years,3,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 29
subscription_account_period,2_to_3_years,4,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 29
subscription_account_period,2_to_3_years,4,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 30
subscription_account_period,3_to_4_years,5,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 30
subscription_account_period,3_to_4_years,5,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 31
subscription_account_period,4_to_5_years,6,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 31
subscription_account_period,4_to_5_years,6,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 32
subscription_account_period,5_to_6_years,7,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 32
subscription_account_period,5_to_6_years,7,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 33
subscription_account_period,6_to_7_years,8,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 33
subscription_account_period,6_to_7_years,8,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 34
subscription_account_period,7_to_8_years,9,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 34
subscription_account_period,7_to_8_years,9,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 35
subscription_account_period,8_to_9_years,10,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 35
subscription_account_period,8_to_9_years,10,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 36
subscription_account_period,9_to_10_years,11,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 36
subscription_account_period,9_to_10_years,11,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 37
subscription_account_period,10_to_11_years,12,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 37
subscription_account_period,10_to_11_years,12,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 38
subscription_account_period,11_to_12_years,13,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 38
subscription_account_period,11_to_12_years,13,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 39
subscription_account_period,12_to_13_years,14,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 39
subscription_account_period,12_to_13_years,14,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 40
subscription_account_period,13_to_14_years,15,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 40
subscription_account_period,13_to_14_years,15,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 41
subscription_account_period,14_to_15_years,16,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 41
subscription_account_period,14_to_15_years,16,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 42
subscription_account_period,15_years_or_more,17,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 42
subscription_account_period,15_years_or_more,17,2026-10-30,주택공급에 관한 규칙 별표 1 제2호나목,https://www.law.go.kr/법령/주택공급에관한규칙
housing-subscription-reference/references/private_housing_deposit.csv
- Network accessline 1
housing_area,lower_sqm_exclusive,upper_sqm_inclusive,seoul_busan,other_metropolitan,other_city_county,unit,checked_date,source_basis,source_url 85sqm_or_less,0,85,300,250,200,KRW_10k,2026-10-30,주택공급에 관한 규칙 별표 2,https://www.law.go.kr/법령/주택공급 - Network accessline 1
housing_area,lower_sqm_exclusive,upper_sqm_inclusive,seoul_busan,other_metropolitan,other_city_county,unit,checked_date,source_basis,source_url 85sqm_or_less,0,85,300,250,200,KRW_10k,2026-10-30,주택공급에 관한 규칙 별표 2,https://www.law.go.kr/법령/주택공급 - Network accessline 2
85sqm_or_less,0,85,300,250,200,KRW_10k,2026-10-30,주택공급에 관한 규칙 별표 2,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 2
85sqm_or_less,0,85,300,250,200,KRW_10k,2026-10-30,주택공급에 관한 규칙 별표 2,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 3
102sqm_or_less,85,102,600,400,300,KRW_10k,2026-10-30,주택공급에 관한 규칙 별표 2,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 3
102sqm_or_less,85,102,600,400,300,KRW_10k,2026-10-30,주택공급에 관한 규칙 별표 2,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 4
135sqm_or_less,102,135,1000,700,400,KRW_10k,2026-10-30,주택공급에 관한 규칙 별표 2,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 4
135sqm_or_less,102,135,1000,700,400,KRW_10k,2026-10-30,주택공급에 관한 규칙 별표 2,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 5
all_areas,135,,1500,1000,500,KRW_10k,2026-10-30,주택공급에 관한 규칙 별표 2,https://www.law.go.kr/법령/주택공급에관한규칙 - Network accessline 5
all_areas,135,,1500,1000,500,KRW_10k,2026-10-30,주택공급에 관한 규칙 별표 2,https://www.law.go.kr/법령/주택공급에관한규칙
hwp/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/hwp/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/hwp/instruction.md.
intercity-bus-booking/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/intercity-bus-booking/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/intercity-bus-booking/instruction.md.
intercity-bus-booking/instruction.md
- Network accessline 23
- Use official Tmoney 시외버스 surfaces: `https://intercitybus.tmoney.co.kr`. - Network accessline 23
- Use official Tmoney 시외버스 surfaces: `https://intercitybus.tmoney.co.kr`. - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Network accessline 38
GET https://intercitybus.tmoney.co.kr/ - Network accessline 38
GET https://intercitybus.tmoney.co.kr/ - Network accessline 39
GET https://intercitybus.tmoney.co.kr/otck/trmlInfEnty.do - Network accessline 39
GET https://intercitybus.tmoney.co.kr/otck/trmlInfEnty.do - Access to secretsline 121
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Network accessline 146
https://intercitybus.tmoney.co.kr/otck/readPcpySats.do - Network accessline 146
https://intercitybus.tmoney.co.kr/otck/readPcpySats.do
intercity-bus-booking/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
intercity-bus-booking/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
intercity-bus-booking/references/tmoney-intercity-http-flow.md
intercity-bus-booking/scripts/intercity_bus_search.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 24
BASE_URL = "https://intercitybus.tmoney.co.kr" - Network accessline 24
BASE_URL = "https://intercitybus.tmoney.co.kr" - Network accessline 70
# Tmoney has historically required curl -k in probes on some machines. - Network accessline 70
# Tmoney has historically required curl -k in probes on some machines. - Network accessline 85
def _open(opener: urllib.request.OpenerDirector, request: urllib.request.Request, timeout: int) -> str: - Network accessline 85
def _open(opener: urllib.request.OpenerDirector, request: urllib.request.Request, timeout: int) -> str: - Network accessline 99
def _request(url: str, data: list[tuple[str, str]] | dict[str, str] | None = None, referer: str | None = None) -> urllib.request.Request: - Network accessline 99
def _request(url: str, data: list[tuple[str, str]] | dict[str, str] | None = None, referer: str | None = None) -> urllib.request.Request: - Network accessline 102
headers["Referer"] = referer if data is None: return urllib.request.Request(url, headers=headers, method="GET") - Network accessline 102
headers["Referer"] = referer if data is None: return urllib.request.Request(url, headers=headers, method="GET") - Network accessline 103
if data is None: return urllib.request.Request(url, headers=headers, method="GET") headers["Content-Type"] = "application/x-www-form-urlencoded" - Network accessline 103
if data is None: return urllib.request.Request(url, headers=headers, method="GET") headers["Content-Type"] = "application/x-www-form-urlencoded" - Network accessline 104
return urllib.request.Request(url, headers=headers, method="GET") - Network accessline 104
return urllib.request.Request(url, headers=headers, method="GET") - Network accessline 105
headers["Content-Type"] = "application/x-www-form-urlencoded" encoded = urllib.parse.urlencode(data).encode("utf-8") return urllib.request.Request(url, data=encoded, headers=headers, method="POST") - Network accessline 105
headers["Content-Type"] = "application/x-www-form-urlencoded" encoded = urllib.parse.urlencode(data).encode("utf-8") return urllib.request.Request(url, data=encoded, headers=headers, method="POST") - Network accessline 107
return urllib.request.Request(url, data=encoded, headers=headers, method="POST") - Network accessline 107
return urllib.request.Request(url, data=encoded, headers=headers, method="POST")
iros-registry-automation/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/iros-registry-automation/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/iros-registry-automation/instruction.md.
iros-registry-automation/instruction.md
- Network accessline 5
대법원 인터넷등기소(IROS, `https://www.iros.go.kr`)에서 **법인/부동산 등기부등본(등기사항증명서)** 을 여러 건 발급해야 할 때, 원 저작자 `challengekim`의 참고 구현 [`challengekim/iros-registry-automation`](https://github.com/challengekim/iros-registry-automation) (MIT)을 기준으로 안전한 작업 순서와 로 - Network accessline 5
대법원 인터넷등기소(IROS, `https://www.iros.go.kr`)에서 **법인/부동산 등기부등본(등기사항증명서)** 을 여러 건 발급해야 할 때, 원 저작자 `challengekim`의 참고 구현 [`challengekim/iros-registry-automation`](https://github.com/challengekim/iros-registry-automation) (MIT)을 기준으로 안전한 작업 순서와 로 - Network accessline 39
git clone https://github.com/challengekim/iros-registry-automation.git - Network accessline 39
git clone https://github.com/challengekim/iros-registry-automation.git - Network accessline 202
스캔 PDF 변환 참고 구현(로컬 self-host, 사용자가 직접 실행): `NomaDamas/marker-api-server` — https://github.com/NomaDamas/marker-api-server (PDF→Markdown). 이 스킬은 marker에 PDF를 원격으로 보내지 않으며, 사용자가 로컬 변환 결과를 `--from-text`로 넘기는 경우에만 이용한다. - Network accessline 202
스캔 PDF 변환 참고 구현(로컬 self-host, 사용자가 직접 실행): `NomaDamas/marker-api-server` — https://github.com/NomaDamas/marker-api-server (PDF→Markdown). 이 스킬은 marker에 PDF를 원격으로 보내지 않으며, 사용자가 로컬 변환 결과를 `--from-text`로 넘기는 경우에만 이용한다. - Network accessline 210
- 법률 자문이나 권리관계 해석으로 보일 수 있는 표현을 피하고, 등기부등본 발급 보조와 파일 정리까지만 돕는다. - PDF 요약(섹션 7)은 "PDF에 이렇게 적혀 있다"는 **사실 추출까지만** 한다. 요약이나 답변에서 "안전/위험/추천/괜찮다" 같은 판단형 결론을 내지 않는다. 요약 결과는 개인정보를 포함할 수 있으므로 저장소·PR·로그에 남기지 않는다. - 원 저작자/참고 구현 링크를 문서나 답변에 남긴다: `chall - Network accessline 210
- 법률 자문이나 권리관계 해석으로 보일 수 있는 표현을 피하고, 등기부등본 발급 보조와 파일 정리까지만 돕는다. - PDF 요약(섹션 7)은 "PDF에 이렇게 적혀 있다"는 **사실 추출까지만** 한다. 요약이나 답변에서 "안전/위험/추천/괜찮다" 같은 판단형 결론을 내지 않는다. 요약 결과는 개인정보를 포함할 수 있으므로 저장소·PR·로그에 남기지 않는다. - 원 저작자/참고 구현 링크를 문서나 답변에 남긴다: `chall - Network accessline 212
- 원 저작자/참고 구현 링크를 문서나 답변에 남긴다: `challengekim/iros-registry-automation` — https://github.com/challengekim/iros-registry-automation. PDF→Markdown 변환 참고: `NomaDamas/marker-api-server` — https://github.com/NomaDamas/marker-api-server. - Network accessline 212
- 원 저작자/참고 구현 링크를 문서나 답변에 남긴다: `challengekim/iros-registry-automation` — https://github.com/challengekim/iros-registry-automation. PDF→Markdown 변환 참고: `NomaDamas/marker-api-server` — https://github.com/NomaDamas/marker-api-server.
iros-registry-automation/scripts/iros_pdf_summary.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 15
- PDF 경로 → 로컬 텍스트 추출(pdfplumber → pypdf). 텍스트 레이어가 있는 등기 PDF에 적합. - 이미 변환된 텍스트/마크다운(`--from-text`) → 스캔 PDF를 사용자가 self-host 변환기 (예: marker, https://github.com/NomaDamas/marker-api-server)로 변환한 결과를 그대로 요약. - Network accessline 15
- PDF 경로 → 로컬 텍스트 추출(pdfplumber → pypdf). 텍스트 레이어가 있는 등기 PDF에 적합. - 이미 변환된 텍스트/마크다운(`--from-text`) → 스캔 PDF를 사용자가 self-host 변환기 (예: marker, https://github.com/NomaDamas/marker-api-server)로 변환한 결과를 그대로 요약. - Network accessline 16
- 이미 변환된 텍스트/마크다운(`--from-text`) → 스캔 PDF를 사용자가 self-host 변환기 (예: marker, https://github.com/NomaDamas/marker-api-server)로 변환한 결과를 그대로 요약. ※ marker는 로컬에서 사용자가 직접 실행하며, 이 스크립트가 원격으로 PDF를 보내지 않는다. - Network accessline 16
- 이미 변환된 텍스트/마크다운(`--from-text`) → 스캔 PDF를 사용자가 self-host 변환기 (예: marker, https://github.com/NomaDamas/marker-api-server)로 변환한 결과를 그대로 요약. ※ marker는 로컬에서 사용자가 직접 실행하며, 이 스크립트가 원격으로 PDF를 보내지 않는다. - Network accessline 17
(예: marker, https://github.com/NomaDamas/marker-api-server)로 변환한 결과를 그대로 요약. - Network accessline 17
(예: marker, https://github.com/NomaDamas/marker-api-server)로 변환한 결과를 그대로 요약.
iros-registry-automation/tests/test_iros_pdf_summary.py
job-posting-match/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/job-posting-match/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/job-posting-match/instruction.md.
job-posting-match/instruction.md
- Network accessline 35
- JobKorea: `https://www.jobkorea.co.kr/Search/?stext=<검색어>` - Network accessline 35
- JobKorea: `https://www.jobkorea.co.kr/Search/?stext=<검색어>` - Network accessline 36
- Result links are public anchors like `/Recruit/GI_Read/<id>`. - Modern JobKorea pages may include Next.js data and repeated anchors; dedupe by posting id. - Saramin: `https://www.saramin.co.kr/zf_user/search/recruit?searchword=<검색어>` - Network accessline 36
- Result links are public anchors like `/Recruit/GI_Read/<id>`. - Modern JobKorea pages may include Next.js data and repeated anchors; dedupe by posting id. - Saramin: `https://www.saramin.co.kr/zf_user/search/recruit?searchword=<검색어>` - Network accessline 37
- Modern JobKorea pages may include Next.js data and repeated anchors; dedupe by posting id. - Saramin: `https://www.saramin.co.kr/zf_user/search/recruit?searchword=<검색어>` - Result cards contain `rec_idx` links such as `/zf_user/jobs/rela - Network accessline 37
- Modern JobKorea pages may include Next.js data and repeated anchors; dedupe by posting id. - Saramin: `https://www.saramin.co.kr/zf_user/search/recruit?searchword=<검색어>` - Result cards contain `rec_idx` links such as `/zf_user/jobs/rela - Network accessline 38
- Saramin: `https://www.saramin.co.kr/zf_user/search/recruit?searchword=<검색어>` - Network accessline 38
- Saramin: `https://www.saramin.co.kr/zf_user/search/recruit?searchword=<검색어>`
job-posting-match/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
job-posting-match/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
job-posting-match/scripts/job_posting_match.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 21
USER_AGENT = "Mozilla/5.0 (compatible; k-skill job-posting-match/1.0; +https://github.com/NomaDamas/k-skill)" - Network accessline 21
USER_AGENT = "Mozilla/5.0 (compatible; k-skill job-posting-match/1.0; +https://github.com/NomaDamas/k-skill)" - Network accessline 65
def fetch(url: str) -> str: - Network accessline 65
def fetch(url: str) -> str: - Network accessline 66
req = urllib.request.Request(url, headers={"User-Agent": USER_AGENT, "Accept-Language": "ko-KR,ko;q=0.9"}) - Network accessline 66
req = urllib.request.Request(url, headers={"User-Agent": USER_AGENT, "Accept-Language": "ko-KR,ko;q=0.9"}) - Network accessline 67
with urllib.request.urlopen(req, timeout=25) as response: - Network accessline 67
with urllib.request.urlopen(req, timeout=25) as response: - Network accessline 73
def absolute_url(source: str, href: str) -> str: href = html.unescape(href) base = "https://www.jobkorea.co.kr" if source == "jobkorea" else "https://www.saramin.co.kr" - Network accessline 73
def absolute_url(source: str, href: str) -> str: href = html.unescape(href) base = "https://www.jobkorea.co.kr" if source == "jobkorea" else "https://www.saramin.co.kr" - Network accessline 74
href = html.unescape(href) base = "https://www.jobkorea.co.kr" if source == "jobkorea" else "https://www.saramin.co.kr" return urllib.parse.urljoin(base, href) - Network accessline 74
href = html.unescape(href) base = "https://www.jobkorea.co.kr" if source == "jobkorea" else "https://www.saramin.co.kr" return urllib.parse.urljoin(base, href) - Network accessline 75
base = "https://www.jobkorea.co.kr" if source == "jobkorea" else "https://www.saramin.co.kr" - Network accessline 75
base = "https://www.jobkorea.co.kr" if source == "jobkorea" else "https://www.saramin.co.kr" - Network accessline 216
def search_jobkorea(query: str, limit: int) -> list[Posting]: url = "https://www.jobkorea.co.kr/Search/?" + urllib.parse.urlencode({"stext": query}) - Network accessline 216
def search_jobkorea(query: str, limit: int) -> list[Posting]: url = "https://www.jobkorea.co.kr/Search/?" + urllib.parse.urlencode({"stext": query}) - Network accessline 217
url = "https://www.jobkorea.co.kr/Search/?" + urllib.parse.urlencode({"stext": query}) - Network accessline 217
url = "https://www.jobkorea.co.kr/Search/?" + urllib.parse.urlencode({"stext": query}) - Network accessline 218
markup = fetch(url) - Network accessline 218
markup = fetch(url) - Network accessline 224
def search_saramin(query: str, limit: int) -> list[Posting]: url = "https://www.saramin.co.kr/zf_user/search/recruit?" + urllib.parse.urlencode({"searchword": query}) - Network accessline 224
def search_saramin(query: str, limit: int) -> list[Posting]: url = "https://www.saramin.co.kr/zf_user/search/recruit?" + urllib.parse.urlencode({"searchword": query}) - Network accessline 225
url = "https://www.saramin.co.kr/zf_user/search/recruit?" + urllib.parse.urlencode({"searchword": query}) - Network accessline 225
url = "https://www.saramin.co.kr/zf_user/search/recruit?" + urllib.parse.urlencode({"searchword": query}) - Network accessline 226
markup = fetch(url) - Network accessline 226
markup = fetch(url)
job-posting-match/scripts/test_job_posting_match.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 6
JOBKOREA_FIXTURE = '\n<div data-sentry-component="CardJob">\n <a href="https://www.jobkorea.co.kr/Recruit/GI_Read/111?x=1">퍼포먼스 마케터 채용</a>\n <a href="https://www.jobkorea.co.kr/Recruit/GI_Read/111?x=1">커머스A</a>\n <p>서울 강남구 경력 3년 GA4 Goog - Network accessline 6
JOBKOREA_FIXTURE = '\n<div data-sentry-component="CardJob">\n <a href="https://www.jobkorea.co.kr/Recruit/GI_Read/111?x=1">퍼포먼스 마케터 채용</a>\n <a href="https://www.jobkorea.co.kr/Recruit/GI_Read/111?x=1">커머스A</a>\n <p>서울 강남구 경력 3년 GA4 Goog
jobkorea-talent-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/jobkorea-talent-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/jobkorea-talent-search/instruction.md.
jobkorea-talent-search/instruction.md
jobkorea-talent-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
jobkorea-talent-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
jobkorea-talent-search/scripts/jobkorea_talent_models.py
jobkorea-talent-search/scripts/jobkorea_talent_parse.py
jobkorea-talent-search/scripts/jobkorea_talent_search.py
jobkorea-talent-search/scripts/jobkorea_talent_search_condition.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 13
def fetch(url: str, *, data: bytes | None = None, headers: dict[str, str] | None = None) -> str: - Network accessline 13
def fetch(url: str, *, data: bytes | None = None, headers: dict[str, str] | None = None) -> str: - Network accessline 15
if headers: req_headers.update(headers) req = urllib.request.Request(url, data=data, headers=req_headers, method="POST" if data else "GET") - Network accessline 15
if headers: req_headers.update(headers) req = urllib.request.Request(url, data=data, headers=req_headers, method="POST" if data else "GET") - Network accessline 16
req_headers.update(headers) req = urllib.request.Request(url, data=data, headers=req_headers, method="POST" if data else "GET") with urllib.request.urlopen(req, timeout=30) as resp: - Network accessline 16
req_headers.update(headers) req = urllib.request.Request(url, data=data, headers=req_headers, method="POST" if data else "GET") with urllib.request.urlopen(req, timeout=30) as resp: - Network accessline 17
req = urllib.request.Request(url, data=data, headers=req_headers, method="POST" if data else "GET") - Network accessline 17
req = urllib.request.Request(url, data=data, headers=req_headers, method="POST" if data else "GET") - Network accessline 18
with urllib.request.urlopen(req, timeout=30) as resp: - Network accessline 18
with urllib.request.urlopen(req, timeout=30) as resp: - Network accessline 87
def build_search_condition(args: argparse.Namespace) -> tuple[dict[str, Any], dict[str, list[str]]]: first = fetch(BASE_URL + FIND_PATH) - Network accessline 87
def build_search_condition(args: argparse.Namespace) -> tuple[dict[str, Any], dict[str, list[str]]]: first = fetch(BASE_URL + FIND_PATH) - Network accessline 88
first = fetch(BASE_URL + FIND_PATH) - Network accessline 88
first = fetch(BASE_URL + FIND_PATH) - Network accessline 127
def post_search(sc: dict[str, Any]) -> str: body = urllib.parse.urlencode({"searchCondition": json.dumps(sc, ensure_ascii=False)}).encode() return fetch( - Network accessline 127
def post_search(sc: dict[str, Any]) -> str: body = urllib.parse.urlencode({"searchCondition": json.dumps(sc, ensure_ascii=False)}).encode() return fetch( - Network accessline 128
body = urllib.parse.urlencode({"searchCondition": json.dumps(sc, ensure_ascii=False)}).encode() return fetch( BASE_URL + AJAX_PATH, - Network accessline 128
body = urllib.parse.urlencode({"searchCondition": json.dumps(sc, ensure_ascii=False)}).encode() return fetch( BASE_URL + AJAX_PATH, - Network accessline 129
return fetch( - Network accessline 129
return fetch(
jobkorea-talent-search/scripts/test_jobkorea_talent_search.py
joseon-sillok-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/joseon-sillok-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/joseon-sillok-search/instruction.md.
joseon-sillok-search/instruction.md
- Network accessline 5
국사편찬위원회 조선왕조실록 사이트(`https://sillok.history.go.kr`)에서 **공식 검색 결과 HTML과 기사 상세 페이지를 직접 읽어** 조선왕조실록 기록을 찾는다. - Network accessline 5
국사편찬위원회 조선왕조실록 사이트(`https://sillok.history.go.kr`)에서 **공식 검색 결과 HTML과 기사 상세 페이지를 직접 읽어** 조선왕조실록 기록을 찾는다. - Network accessline 67
- 필요 시 왕/연도 필터가 적용되었다. - 적어도 하나 이상의 기사 detail excerpt가 포함되었다. - 링크가 `https://sillok.history.go.kr/id/...` 형태로 정리되었다. - Network accessline 67
- 필요 시 왕/연도 필터가 적용되었다. - 적어도 하나 이상의 기사 detail excerpt가 포함되었다. - 링크가 `https://sillok.history.go.kr/id/...` 형태로 정리되었다. - Network accessline 69
- 링크가 `https://sillok.history.go.kr/id/...` 형태로 정리되었다. - Network accessline 69
- 링크가 `https://sillok.history.go.kr/id/...` 형태로 정리되었다. - Network accessline 73
- 공식 메인: `https://sillok.history.go.kr` - Network accessline 73
- 공식 메인: `https://sillok.history.go.kr` - Network accessline 74
- 검색 endpoint: `https://sillok.history.go.kr/search/searchResultList.do` - Network accessline 74
- 검색 endpoint: `https://sillok.history.go.kr/search/searchResultList.do` - Network accessline 75
- 기사 상세: `https://sillok.history.go.kr/id/<article_id>` - Network accessline 75
- 기사 상세: `https://sillok.history.go.kr/id/<article_id>`
joseon-sillok-search/scripts/sillok_search.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 23
BASE_URL = "https://sillok.history.go.kr" - Network accessline 23
BASE_URL = "https://sillok.history.go.kr" - Network accessline 280
try: if data is not None: response = requests.post(url, data=data, timeout=timeout, headers=headers) - Network accessline 280
try: if data is not None: response = requests.post(url, data=data, timeout=timeout, headers=headers) - Network accessline 281
if data is not None: response = requests.post(url, data=data, timeout=timeout, headers=headers) else: - Network accessline 281
if data is not None: response = requests.post(url, data=data, timeout=timeout, headers=headers) else: - Network accessline 282
response = requests.post(url, data=data, timeout=timeout, headers=headers) - Network accessline 282
response = requests.post(url, data=data, timeout=timeout, headers=headers) - Network accessline 283
else: response = requests.get(url, timeout=timeout, headers=headers) response.raise_for_status() - Network accessline 283
else: response = requests.get(url, timeout=timeout, headers=headers) response.raise_for_status() - Network accessline 284
response = requests.get(url, timeout=timeout, headers=headers) - Network accessline 284
response = requests.get(url, timeout=timeout, headers=headers) - Network accessline 291
body = urllib.parse.urlencode(data).encode("utf-8") if data is not None else None request = urllib.request.Request(url, data=body, headers=headers, method="POST" if body else "GET") - Network accessline 291
body = urllib.parse.urlencode(data).encode("utf-8") if data is not None else None request = urllib.request.Request(url, data=body, headers=headers, method="POST" if body else "GET") - Network accessline 292
request = urllib.request.Request(url, data=body, headers=headers, method="POST" if body else "GET") - Network accessline 292
request = urllib.request.Request(url, data=body, headers=headers, method="POST" if body else "GET")
k-dart/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/k-dart/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/k-dart/instruction.md.
k-dart/instruction.md
- Network accessline 5
`API_K_DART` 환경변수에 담긴 인증키로 DART OpenAPI(`https://opendart.fss.or.kr/api/`)를 직접 호출해 공시·재무·주요사항 정보를 조회한다. 프록시를 거치지 않는다. - Network accessline 5
`API_K_DART` 환경변수에 담긴 인증키로 DART OpenAPI(`https://opendart.fss.or.kr/api/`)를 직접 호출해 공시·재무·주요사항 정보를 조회한다. 프록시를 거치지 않는다. - Network accessline 27
`API_K_DART` 환경변수가 설정되어 있어야 한다. 키 발급: <https://opendart.fss.or.kr/uss/umt/EgovMberInsertView.do> - Network accessline 27
`API_K_DART` 환경변수가 설정되어 있어야 한다. 키 발급: <https://opendart.fss.or.kr/uss/umt/EgovMberInsertView.do> - Network accessline 38
# ZIP 다운로드 → 압축 해제 (이미 있으면 생략) [ -f /tmp/dart_corp/CORPCODE.xml ] || { curl -fsS -o /tmp/dart_corp.zip \ - Network accessline 38
# ZIP 다운로드 → 압축 해제 (이미 있으면 생략) [ -f /tmp/dart_corp/CORPCODE.xml ] || { curl -fsS -o /tmp/dart_corp.zip \ - Network accessline 39
[ -f /tmp/dart_corp/CORPCODE.xml ] || { curl -fsS -o /tmp/dart_corp.zip \ "https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$API_K_DART" - Network accessline 39
[ -f /tmp/dart_corp/CORPCODE.xml ] || { curl -fsS -o /tmp/dart_corp.zip \ "https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$API_K_DART" - Network accessline 40
curl -fsS -o /tmp/dart_corp.zip \ - Network accessline 40
curl -fsS -o /tmp/dart_corp.zip \ - Network accessline 41
"https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$API_K_DART" - Network accessline 41
"https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$API_K_DART" - Network accessline 58
$dartDir = "$env:TEMP\dart_corp" if (-not (Test-Path "$dartDir\CORPCODE.xml")) { Invoke-WebRequest "https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$env:API_K_DART" -OutFile "$dartDir.zip" - Network accessline 58
$dartDir = "$env:TEMP\dart_corp" if (-not (Test-Path "$dartDir\CORPCODE.xml")) { Invoke-WebRequest "https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$env:API_K_DART" -OutFile "$dartDir.zip" - Network accessline 59
if (-not (Test-Path "$dartDir\CORPCODE.xml")) { Invoke-WebRequest "https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$env:API_K_DART" -OutFile "$dartDir.zip" New-Item -ItemType Directory -Path $dartDir -Force | Out-Null - Network accessline 59
if (-not (Test-Path "$dartDir\CORPCODE.xml")) { Invoke-WebRequest "https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$env:API_K_DART" -OutFile "$dartDir.zip" New-Item -ItemType Directory -Path $dartDir -Force | Out-Null - Network accessline 60
Invoke-WebRequest "https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$env:API_K_DART" -OutFile "$dartDir.zip" - Network accessline 60
Invoke-WebRequest "https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$env:API_K_DART" -OutFile "$dartDir.zip" - Network accessline 78
모든 요청은 `GET https://opendart.fss.or.kr/api/{endpoint}.json?crtfc_key=$API_K_DART&...` 형식이다. - Network accessline 78
모든 요청은 `GET https://opendart.fss.or.kr/api/{endpoint}.json?crtfc_key=$API_K_DART&...` 형식이다. - Network accessline 207
# 1. 먼저 위 "corp_code 확보 절차"로 corp_code(예: 삼성전자=00126380) 획득 # 2. corp_code로 기간 내 공시 조회 curl -fsS --get 'https://opendart.fss.or.kr/api/list.json' \ - Network accessline 207
# 1. 먼저 위 "corp_code 확보 절차"로 corp_code(예: 삼성전자=00126380) 획득 # 2. corp_code로 기간 내 공시 조회 curl -fsS --get 'https://opendart.fss.or.kr/api/list.json' \ - Network accessline 208
# 2. corp_code로 기간 내 공시 조회 curl -fsS --get 'https://opendart.fss.or.kr/api/list.json' \ --data-urlencode "crtfc_key=$API_K_DART" \ - Network accessline 208
# 2. corp_code로 기간 내 공시 조회 curl -fsS --get 'https://opendart.fss.or.kr/api/list.json' \ --data-urlencode "crtfc_key=$API_K_DART" \ - Network accessline 209
curl -fsS --get 'https://opendart.fss.or.kr/api/list.json' \ - Network accessline 209
curl -fsS --get 'https://opendart.fss.or.kr/api/list.json' \ - Network accessline 220
curl -fsS --get 'https://opendart.fss.or.kr/api/list.json' \ - Network accessline 220
curl -fsS --get 'https://opendart.fss.or.kr/api/list.json' \ - Network accessline 232
curl -fsS --get 'https://opendart.fss.or.kr/api/company.json' \ - Network accessline 232
curl -fsS --get 'https://opendart.fss.or.kr/api/company.json' \ - Network accessline 240
curl -fsS --get 'https://opendart.fss.or.kr/api/fnlttSinglAcntAll.json' \ - Network accessline 240
curl -fsS --get 'https://opendart.fss.or.kr/api/fnlttSinglAcntAll.json' \ - Network accessline 251
curl -fsS --get 'https://opendart.fss.or.kr/api/alotMatter.json' \ - Network accessline 251
curl -fsS --get 'https://opendart.fss.or.kr/api/alotMatter.json' \ - Network accessline 261
curl -fsS --get 'https://opendart.fss.or.kr/api/empSttus.json' \ - Network accessline 261
curl -fsS --get 'https://opendart.fss.or.kr/api/empSttus.json' \ - Network accessline 271
curl -fsS --get 'https://opendart.fss.or.kr/api/pifricDecsn.json' \ - Network accessline 271
curl -fsS --get 'https://opendart.fss.or.kr/api/pifricDecsn.json' \ - Network accessline 281
curl -fsS --get 'https://opendart.fss.or.kr/api/cvbdIsDecsn.json' \ - Network accessline 281
curl -fsS --get 'https://opendart.fss.or.kr/api/cvbdIsDecsn.json' \ - Network accessline 404
- 공식 데이터 출처: [DART OpenAPI](https://opendart.fss.or.kr/intro/main.do) - Network accessline 404
- 공식 데이터 출처: [DART OpenAPI](https://opendart.fss.or.kr/intro/main.do) - Network accessline 406
- DART API 요청 한도: 공식 가이드(`020` 메시지 설명)는 "**일반적으로 20,000건 이상의 요청** 에 대해 `020` (요청 제한 초과)이 발생하며, **키별로 별도 한도가 설정된 경우** 다른 임계치에서도 동일 코드가 반환될 수 있다"고 명시한다. 분당 throttle 등 세부 제약 수치는 공개 가이드에 별도로 게시되어 있지 않다. 본인 키의 정확한 사용 현황은 로그인 후 [OpenDART 이용현황](ht - Network accessline 406
- DART API 요청 한도: 공식 가이드(`020` 메시지 설명)는 "**일반적으로 20,000건 이상의 요청** 에 대해 `020` (요청 제한 초과)이 발생하며, **키별로 별도 한도가 설정된 경우** 다른 임계치에서도 동일 코드가 반환될 수 있다"고 명시한다. 분당 throttle 등 세부 제약 수치는 공개 가이드에 별도로 게시되어 있지 않다. 본인 키의 정확한 사용 현황은 로그인 후 [OpenDART 이용현황](ht
k-schoollunch-menu/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/k-schoollunch-menu/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/k-schoollunch-menu/instruction.md.
k-schoollunch-menu/instruction.md
- Network accessline 26
- 사용자 측 **필수** 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 26
- 사용자 측 **필수** 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 27
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 27
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 35
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" - Network accessline 35
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" - Network accessline 54
curl -fsS --get "${BASE}/v1/neis/school-search" \ - Network accessline 54
curl -fsS --get "${BASE}/v1/neis/school-search" \ - Network accessline 71
curl -fsS --get "${BASE}/v1/neis/school-meal" \ - Network accessline 71
curl -fsS --get "${BASE}/v1/neis/school-meal" \ - Network accessline 89
- 급식·학교기본정보 데이터: [나이스 교육정보 개방 포털](https://open.neis.go.kr/) - Network accessline 89
- 급식·학교기본정보 데이터: [나이스 교육정보 개방 포털](https://open.neis.go.kr/)
k-skill-cleaner/SKILL.md
- Network accessline 30
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/k-skill-cleaner/instruction.md. - Network accessline 30
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/k-skill-cleaner/instruction.md.
k-skill-cleaner/scripts/k_skill_cleaner.py
k-skill-setup/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/k-skill-setup/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/k-skill-setup/instruction.md.
k-skill-setup/instruction.md
- Network accessline 110
KSKILL_PROXY_BASE_URL= # KSKILL_PROXY_BASE_URL=https://your-proxy.example.com - Network accessline 110
KSKILL_PROXY_BASE_URL= # KSKILL_PROXY_BASE_URL=https://your-proxy.example.com - Network accessline 111
# KSKILL_PROXY_BASE_URL=https://your-proxy.example.com - Network accessline 111
# KSKILL_PROXY_BASE_URL=https://your-proxy.example.com - Access to secretsline 121
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Access to secretsline 122
[Credential-related source omitted] - Access to secretsline 122
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted]
k-skill-setup/scripts/check-setup.sh
kakao-bar-nearby/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kakao-bar-nearby/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kakao-bar-nearby/instruction.md.
kakao-bar-nearby/instruction.md
- Network accessline 31
- hosted proxy: `https://k-skill-proxy.nomadamas.org` - Network accessline 31
- hosted proxy: `https://k-skill-proxy.nomadamas.org` - Network accessline 36
패키지는 기준 장소를 공식 API로 찾은 뒤 같은 좌표를 중심으로 `<location> 술집`을 거리순 검색한다. 결과의 `sourceUrl`과 `detailLookup.url`은 Kakao Local 응답의 `place_url`을 사용하며, 누락 시 공식 장소 ID로 `https://place.map.kakao.com/<id>`를 구성한다. - Network accessline 36
패키지는 기준 장소를 공식 API로 찾은 뒤 같은 좌표를 중심으로 `<location> 술집`을 거리순 검색한다. 결과의 `sourceUrl`과 `detailLookup.url`은 Kakao Local 응답의 `place_url`을 사용하며, 누락 시 공식 장소 ID로 `https://place.map.kakao.com/<id>`를 구성한다. - Network accessline 40
- place detail: `https://place.map.kakao.com/<id>` - Network accessline 40
- place detail: `https://place.map.kakao.com/<id>`
kakao-bar-nearby/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 표장이 출처표시가 아니라 기능·적용 기종 설명에 쓰이고 상표 사용으로 인식되지 않는 경우를 구별했습니다. 이는 포괄적 허용이 아니며 [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www. - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 표장이 출처표시가 아니라 기능·적용 기종 설명에 쓰이고 상표 사용으로 인식되지 않는 경우를 구별했습니다. 이는 포괄적 허용이 아니며 [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www. - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 보호조치·이용약관 등 객관적 사정상 접근권한 제한이 없고 일반 이용자에게 공개된 정보를 수집한 사안에서 침입을 인정하지 않았습니다. 따라서 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https:// - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 보호조치·이용약관 등 객관적 사정상 접근권한 제한이 없고 일반 이용자에게 공개된 정보를 수집한 사안에서 침입을 인정하지 않았습니다. 따라서 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://
kakao-bar-nearby/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
kakao-map/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kakao-map/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kakao-map/instruction.md.
kakao-map/instruction.md
- Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 10
[Credential-related source omitted] - Network accessline 32
- Python 3 표준 라이브러리만 사용 가능. JS/curl 호출도 동일하게 지원. - Network accessline 32
- Python 3 표준 라이브러리만 사용 가능. JS/curl 호출도 동일하게 지원. - Network accessline 33
- optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시 사용 시. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 기본). - Network accessline 33
- optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시 사용 시. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 기본). - Access to secretsline 39
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted] - Network accessline 76
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/kakao-map/search/keyword" \ - Network accessline 76
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/kakao-map/search/keyword" \ - Network accessline 77
curl -fsS --get "${BASE}/v1/kakao-map/search/keyword" \ - Network accessline 77
curl -fsS --get "${BASE}/v1/kakao-map/search/keyword" \ - Network accessline 90
curl -fsS --get "${BASE}/v1/kakao-map/search/category" \ - Network accessline 90
curl -fsS --get "${BASE}/v1/kakao-map/search/category" \ - Network accessline 100
curl -fsS --get "${BASE}/v1/kakao-map/coord2address" \ - Network accessline 100
curl -fsS --get "${BASE}/v1/kakao-map/coord2address" \ - Network accessline 110
curl -fsS --get "${BASE}/v1/kakao-map/coord2region" \ - Network accessline 110
curl -fsS --get "${BASE}/v1/kakao-map/coord2region" \ - Network accessline 120
curl -fsS --get "${BASE}/v1/kakao-mobility/directions" \ - Network accessline 120
curl -fsS --get "${BASE}/v1/kakao-mobility/directions" \ - Access to secretsline 157
[Credential-related source omitted] - Access to secretsline 157
[Credential-related source omitted] - Access to secretsline 168
[Credential-related source omitted] - Access to secretsline 168
[Credential-related source omitted]
kakao-map/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 표장이 출처표시가 아니라 기능·적용 기종 설명에 쓰이고 상표 사용으로 인식되지 않는 경우를 구별했습니다. 이는 포괄적 허용이 아니며 [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www. - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 표장이 출처표시가 아니라 기능·적용 기종 설명에 쓰이고 상표 사용으로 인식되지 않는 경우를 구별했습니다. 이는 포괄적 허용이 아니며 [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www. - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 보호조치·이용약관 등 객관적 사정상 접근권한 제한이 없고 일반 이용자에게 공개된 정보를 수집한 사안에서 침입을 인정하지 않았습니다. 따라서 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https:// - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 보호조치·이용약관 등 객관적 사정상 접근권한 제한이 없고 일반 이용자에게 공개된 정보를 수집한 사안에서 침입을 인정하지 않았습니다. 따라서 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://
kakao-map/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
kakaotalk-mac/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kakaotalk-mac/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kakaotalk-mac/instruction.md.
kakaotalk-mac/instruction.md
kakaotalk-mac/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 표장이 출처표시가 아니라 기능·적용 기종 설명에 쓰이고 상표 사용으로 인식되지 않는 경우를 구별했습니다. 이는 포괄적 허용이 아니며 [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www. - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 표장이 출처표시가 아니라 기능·적용 기종 설명에 쓰이고 상표 사용으로 인식되지 않는 경우를 구별했습니다. 이는 포괄적 허용이 아니며 [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www. - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 공개정보 접근에 관한 판단으로, 비공개 대화·첨부파일이나 인증된 개인 데이터의 수집을 허용하지 않습니다. 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 공개정보 접근에 관한 판단으로, 비공개 대화·첨부파일이나 인증된 개인 데이터의 수집을 허용하지 않습니다. 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보
kakaotalk-mac/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
kamis-food-price/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kamis-food-price/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kamis-food-price/instruction.md.
kamis-food-price/instruction.md
- Network accessline 27
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/kamis/food-price/daily-category" \ - Network accessline 27
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/kamis/food-price/daily-category" \ - Network accessline 28
curl -fsS --get "$BASE/v1/kamis/food-price/daily-category" \ - Network accessline 28
curl -fsS --get "$BASE/v1/kamis/food-price/daily-category" \ - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Network accessline 48
공식 문서: <https://www.kamis.or.kr/customer/reference/openapi_list.do?action=detail&boardno=1> - Network accessline 48
공식 문서: <https://www.kamis.or.kr/customer/reference/openapi_list.do?action=detail&boardno=1> - Network accessline 49
<https://www.kamis.or.kr/customer/reference/openapi_list.do?action=detail&boardno=1> - Network accessline 49
<https://www.kamis.or.kr/customer/reference/openapi_list.do?action=detail&boardno=1> - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted]
kamis-food-price/scripts/run_kamis.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 11
DEFAULT_PROXY = "https://k-skill-proxy.nomadamas.org" - Network accessline 11
DEFAULT_PROXY = "https://k-skill-proxy.nomadamas.org" - Network accessline 12
UPSTREAM = "https://www.kamis.or.kr/service/price/xml.do" - Network accessline 12
UPSTREAM = "https://www.kamis.or.kr/service/price/xml.do" - Access to secretsline 148
[Credential-related source omitted] - Access to secretsline 148
[Credential-related source omitted] - Access to secretsline 150
[Credential-related source omitted] - Access to secretsline 150
[Credential-related source omitted] - Network accessline 166
try: with urllib.request.urlopen(urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/kamis-food-price"}), timeout=30) as response: - Network accessline 166
try: with urllib.request.urlopen(urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/kamis-food-price"}), timeout=30) as response: - Network accessline 167
with urllib.request.urlopen(urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/kamis-food-price"}), timeout=30) as response: - Network accessline 167
with urllib.request.urlopen(urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/kamis-food-price"}), timeout=30) as response:
kbl-results/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kbl-results/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kbl-results/instruction.md.
kbl-results/instruction.md
- Network accessline 35
공식 KBL 웹앱은 `https://api.kbl.or.kr` JSON API를 사용한다. 따라서 브라우저 크롤링 전에 아래 표면을 우선 사용한다. - Network accessline 35
공식 KBL 웹앱은 `https://api.kbl.or.kr` JSON API를 사용한다. 따라서 브라우저 크롤링 전에 아래 표면을 우선 사용한다. - Network accessline 37
- 일정/결과: `https://api.kbl.or.kr/match/list` - Network accessline 37
- 일정/결과: `https://api.kbl.or.kr/match/list` - Network accessline 38
- 팀 순위: `https://api.kbl.or.kr/league/rank/team` - Network accessline 38
- 팀 순위: `https://api.kbl.or.kr/league/rank/team`
kbl-results/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아니라고 볼 수 있는 사정을 제시했지만, 크롤링의 일반적 허용을 뜻하지 않습니다. [저작권법 제 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아니라고 볼 수 있는 사정을 제시했지만, 크롤링의 일반적 허용을 뜻하지 않습니다. [저작권법 제
kbl-results/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
kbo-results/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kbo-results/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kbo-results/instruction.md.
kbo-results/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아니라고 볼 수 있는 사정을 제시했지만, 크롤링의 일반적 허용을 뜻하지 않습니다. [저작권법 제 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아니라고 볼 수 있는 사정을 제시했지만, 크롤링의 일반적 허용을 뜻하지 않습니다. [저작권법 제
kbo-results/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
keris-academic-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/keris-academic-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/keris-academic-search/instruction.md.
keris-academic-search/instruction.md
- Network accessline 11
1. 기본 경로: 사용자 본인의 RISS 검색 API 키로 상류(`https://www.riss.kr/openApi`)를 직접 호출한다. 이 스킬은 `k-skill-proxy`를 사용하지 않는다. - Network accessline 11
1. 기본 경로: 사용자 본인의 RISS 검색 API 키로 상류(`https://www.riss.kr/openApi`)를 직접 호출한다. 이 스킬은 `k-skill-proxy`를 사용하지 않는다. - Network accessline 13
3. 공식 문서: RISS API 센터(<https://www.riss.kr/apicenter/apiMain.do>)의 학위논문/국내학술논문/해외학술논문/단행본/연구보고서/학술지 검색 API 정보 - Network accessline 13
3. 공식 문서: RISS API 센터(<https://www.riss.kr/apicenter/apiMain.do>)의 학위논문/국내학술논문/해외학술논문/단행본/연구보고서/학술지 검색 API 정보 - Network accessline 19
1. RISS(<https://www.riss.kr>)에 기관 소속으로 회원가입/로그인 - Network accessline 19
1. RISS(<https://www.riss.kr>)에 기관 소속으로 회원가입/로그인 - Network accessline 20
2. RISS API 센터 → **RISS 검색 API** 선택 → 이용신청(<https://riss.kr/openAPI/OpenApiRegisterFinal.do>) - Network accessline 20
2. RISS API 센터 → **RISS 검색 API** 선택 → 이용신청(<https://riss.kr/openAPI/OpenApiRegisterFinal.do>) - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted]
keris-academic-search/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집 사안의 객관적 접근 제한을 기준으로 판단했으나, 기관·비영리 자격으로 발급된 API 키의 범위를 넘는 사용이나 학술 원문 다운로드를 허용하지 않습니다. 공개되어 누구나 얻을 수 있는 메타데이터의 기계적 수집만으로 곧바로 [정보통신망법 제48조](http - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집 사안의 객관적 접근 제한을 기준으로 판단했으나, 기관·비영리 자격으로 발급된 API 키의 범위를 넘는 사용이나 학술 원문 다운로드를 허용하지 않습니다. 공개되어 누구나 얻을 수 있는 메타데이터의 기계적 수집만으로 곧바로 [정보통신망법 제48조](http
keris-academic-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 기능 또는 적용 대상을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우를 구별했습니다. 실제 표시 태양과 거래계 인식에 따라 결론이 달라질 수 있으므로 평문으로 필요한 범위에서만 사용하고 로고·공식·제휴·후원·인증 표현을 사용하 - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 기능 또는 적용 대상을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우를 구별했습니다. 실제 표시 태양과 거래계 인식에 따라 결론이 달라질 수 있으므로 평문으로 필요한 범위에서만 사용하고 로고·공식·제휴·후원·인증 표현을 사용하
keris-academic-search/scripts/keris_academic.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
RISS 검색 Open API는 기관/대학 전용 인증키를 요구하므로 k-skill-proxy를 거치지 않고, 사용자가 직접 발급받은 RISS 키로 상류(``https://www.riss.kr/openApi``)를 - Network accessline 4
RISS 검색 Open API는 기관/대학 전용 인증키를 요구하므로 k-skill-proxy를 거치지 않고, 사용자가 직접 발급받은 RISS 키로 상류(``https://www.riss.kr/openApi``)를 - Network accessline 5
않고, 사용자가 직접 발급받은 RISS 키로 상류(``https://www.riss.kr/openApi``)를 - Network accessline 5
않고, 사용자가 직접 발급받은 RISS 키로 상류(``https://www.riss.kr/openApi``)를 - Network accessline 22
DEFAULT_SECRETS_PATH = pathlib.Path("~/.config/k-skill/secrets.env").expanduser() RISS_OPEN_API_URL = "https://www.riss.kr/openApi" - Network accessline 22
DEFAULT_SECRETS_PATH = pathlib.Path("~/.config/k-skill/secrets.env").expanduser() RISS_OPEN_API_URL = "https://www.riss.kr/openApi" - Network accessline 23
RISS_OPEN_API_URL = "https://www.riss.kr/openApi" - Network accessline 23
RISS_OPEN_API_URL = "https://www.riss.kr/openApi" - Network accessline 24
RESOURCE_TYPE_MAP = {"ALL": ["T", "A", "O", "U", "F", "S"], "T": ["T"], "A": ["A", "O"], "D": ["A"], "B": ["U"]} MISSING_KEY_MSG = ( "RISS API 키가 없습니다. RISS API 센터(https://www.riss.kr/apicenter/apiMain.do)에서 " - Network accessline 24
RESOURCE_TYPE_MAP = {"ALL": ["T", "A", "O", "U", "F", "S"], "T": ["T"], "A": ["A", "O"], "D": ["A"], "B": ["U"]} MISSING_KEY_MSG = ( "RISS API 키가 없습니다. RISS API 센터(https://www.riss.kr/apicenter/apiMain.do)에서 " - Network accessline 25
MISSING_KEY_MSG = ( "RISS API 키가 없습니다. RISS API 센터(https://www.riss.kr/apicenter/apiMain.do)에서 " "검색 API 키를 발급받아 KSKILL_RISS_API_KEY(호환 RISS_API_KEY) 환경변수 또는 " - Network accessline 25
MISSING_KEY_MSG = ( "RISS API 키가 없습니다. RISS API 센터(https://www.riss.kr/apicenter/apiMain.do)에서 " "검색 API 키를 발급받아 KSKILL_RISS_API_KEY(호환 RISS_API_KEY) 환경변수 또는 " - Network accessline 26
"RISS API 키가 없습니다. RISS API 센터(https://www.riss.kr/apicenter/apiMain.do)에서 " - Network accessline 26
"RISS API 키가 없습니다. RISS API 센터(https://www.riss.kr/apicenter/apiMain.do)에서 " - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 56
[Credential-related source omitted] - Access to secretsline 56
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Network accessline 130
results = [] for url in urls: request = urllib.request.Request(url, headers={"accept": "application/xml", "user-agent": "k-skill/keris-academic-search"}) - Network accessline 130
results = [] for url in urls: request = urllib.request.Request(url, headers={"accept": "application/xml", "user-agent": "k-skill/keris-academic-search"}) - Network accessline 131
for url in urls: request = urllib.request.Request(url, headers={"accept": "application/xml", "user-agent": "k-skill/keris-academic-search"}) try: - Network accessline 131
for url in urls: request = urllib.request.Request(url, headers={"accept": "application/xml", "user-agent": "k-skill/keris-academic-search"}) try: - Network accessline 132
request = urllib.request.Request(url, headers={"accept": "application/xml", "user-agent": "k-skill/keris-academic-search"}) - Network accessline 132
request = urllib.request.Request(url, headers={"accept": "application/xml", "user-agent": "k-skill/keris-academic-search"}) - Network accessline 133
try: with urllib.request.urlopen(request, timeout=timeout) as response: results.append(parse_riss_xml(response.read())) - Network accessline 133
try: with urllib.request.urlopen(request, timeout=timeout) as response: results.append(parse_riss_xml(response.read())) - Network accessline 134
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 134
with urllib.request.urlopen(request, timeout=timeout) as response: - Access to secretsline 197
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted] - Access to secretsline 198
[Credential-related source omitted] - Access to secretsline 198
[Credential-related source omitted] - Access to secretsline 200
[Credential-related source omitted] - Access to secretsline 200
[Credential-related source omitted]
keris-academic-search/tests/test_keris_academic.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Network accessline 137
"publisher": "한국교육학회", "year": "2025", "link": "https://www.riss.kr/link?id=A123", - Network accessline 137
"publisher": "한국교육학회", "year": "2025", "link": "https://www.riss.kr/link?id=A123", - Network accessline 138
"year": "2025", "link": "https://www.riss.kr/link?id=A123", "full_text_available": True, - Network accessline 138
"year": "2025", "link": "https://www.riss.kr/link?id=A123", "full_text_available": True, - Network accessline 139
"link": "https://www.riss.kr/link?id=A123", - Network accessline 139
"link": "https://www.riss.kr/link?id=A123", - Network accessline 146
self.assertIn("김연구, 이학술", text) self.assertIn("원문 있음(무료 표시)", text) self.assertIn("https://www.riss.kr/link?id=A123", text) - Network accessline 146
self.assertIn("김연구, 이학술", text) self.assertIn("원문 있음(무료 표시)", text) self.assertIn("https://www.riss.kr/link?id=A123", text) - Network accessline 148
self.assertIn("https://www.riss.kr/link?id=A123", text) - Network accessline 148
self.assertIn("https://www.riss.kr/link?id=A123", text) - Access to secretsline 161
[Credential-related source omitted] - Access to secretsline 161
[Credential-related source omitted]
kleague-results/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kleague-results/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kleague-results/instruction.md.
kleague-results/instruction.md
kleague-results/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아니라고 볼 수 있는 사정을 제시했지만, 크롤링의 일반적 허용을 뜻하지 않습니다. [저작권법 제 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아니라고 볼 수 있는 사정을 제시했지만, 크롤링의 일반적 허용을 뜻하지 않습니다. [저작권법 제
kleague-results/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
komsa-ferry-info/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/komsa-ferry-info/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/komsa-ferry-info/instruction.md.
komsa-ferry-info/instruction.md
- Network accessline 11
- 공식 포털: <https://mtisopenapi.komsa.or.kr/> - Network accessline 11
- 공식 포털: <https://mtisopenapi.komsa.or.kr/> - Network accessline 12
- 운항 일정: `https://mtisopenapi.komsa.or.kr/eopt/api/oprt-schd-info` - Network accessline 12
- 운항 일정: `https://mtisopenapi.komsa.or.kr/eopt/api/oprt-schd-info` - Network accessline 13
- 운항노선: `https://mtisopenapi.komsa.or.kr/eopt/api/oprt-line-info` - Network accessline 13
- 운항노선: `https://mtisopenapi.komsa.or.kr/eopt/api/oprt-line-info` - Network accessline 14
- 선박 제원: `https://mtisopenapi.komsa.or.kr/eopt/api/psnshp-spec` - Network accessline 14
- 선박 제원: `https://mtisopenapi.komsa.or.kr/eopt/api/psnshp-spec` - Access to secretsline 17
[Credential-related source omitted] - Access to secretsline 17
[Credential-related source omitted] - Network accessline 31
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/komsa/ferry/schedules" \ - Network accessline 31
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/komsa/ferry/schedules" \ - Network accessline 32
curl -fsS --get "$BASE/v1/komsa/ferry/schedules" \ - Network accessline 32
curl -fsS --get "$BASE/v1/komsa/ferry/schedules" \ - Access to secretsline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted]
komsa-ferry-info/scripts/komsa_ferry_info.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 11
DEFAULT_PROXY = "https://k-skill-proxy.nomadamas.org" - Network accessline 11
DEFAULT_PROXY = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 15
[Credential-related source omitted] - Network accessline 23
url = f"{proxy_base_url(base_url)}/v1/komsa/ferry/{urllib.parse.quote(dataset, safe='')}" query_string = urllib.parse.urlencode({k: v for k, v in params.items() if v is not None}) request = urllib.request.Request( - Network accessline 23
url = f"{proxy_base_url(base_url)}/v1/komsa/ferry/{urllib.parse.quote(dataset, safe='')}" query_string = urllib.parse.urlencode({k: v for k, v in params.items() if v is not None}) request = urllib.request.Request( - Network accessline 24
query_string = urllib.parse.urlencode({k: v for k, v in params.items() if v is not None}) request = urllib.request.Request( f"{url}?{query_string}", - Network accessline 24
query_string = urllib.parse.urlencode({k: v for k, v in params.items() if v is not None}) request = urllib.request.Request( f"{url}?{query_string}", - Network accessline 25
request = urllib.request.Request( - Network accessline 25
request = urllib.request.Request( - Network accessline 31
return read_json(request) try: with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 31
return read_json(request) try: with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 32
try: with urllib.request.urlopen(request, timeout=30) as response: return json.loads(response.read().decode("utf-8")) - Network accessline 32
try: with urllib.request.urlopen(request, timeout=30) as response: return json.loads(response.read().decode("utf-8")) - Network accessline 33
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 33
with urllib.request.urlopen(request, timeout=30) as response:
kopis-performance-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kopis-performance-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kopis-performance-search/instruction.md.
kopis-performance-search/instruction.md
- Network accessline 5
KOPIS 공연예술통합전산망 Open API `https://kopis.or.kr/openApi/restful` 을 `k-skill-proxy` 경유로 호출한다. `www.kopis.or.kr` redirect는 일부 요청을 차단할 수 있어 canonical host를 직접 사용한다. - Network accessline 5
KOPIS 공연예술통합전산망 Open API `https://kopis.or.kr/openApi/restful` 을 `k-skill-proxy` 경유로 호출한다. `www.kopis.or.kr` redirect는 일부 요청을 차단할 수 있어 canonical host를 직접 사용한다. - Network accessline 29
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 29
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 30
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 30
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Network accessline 33
키 발급: KOPIS Open API 안내 <https://www.kopis.or.kr/por/cs/openapi/openApiInfo.do?menuId=MNU_00074> 에서 회원가입/로그인 후 OpenAPI 이용신청으로 발급한다. - Network accessline 33
키 발급: KOPIS Open API 안내 <https://www.kopis.or.kr/por/cs/openapi/openApiInfo.do?menuId=MNU_00074> 에서 회원가입/로그인 후 OpenAPI 이용신청으로 발급한다. - Network accessline 59
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/kopis/performances" \ - Network accessline 59
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/kopis/performances" \ - Network accessline 60
curl -fsS --get "$BASE/v1/kopis/performances" \ - Network accessline 60
curl -fsS --get "$BASE/v1/kopis/performances" \ - Network accessline 70
curl -fsS "$BASE/v1/kopis/performances/PF132236" - Network accessline 70
curl -fsS "$BASE/v1/kopis/performances/PF132236" - Network accessline 76
curl -fsS --get "$BASE/v1/kopis/facilities" \ - Network accessline 76
curl -fsS --get "$BASE/v1/kopis/facilities" \ - Access to secretsline 84
[Credential-related source omitted] - Access to secretsline 84
[Credential-related source omitted] - Network accessline 99
- `./scripts/validate-skills.sh` - `node --test packages/k-skill-proxy/test/server.test.js` - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/kopis/performances" --data-urlencode "start=20260701" --data-urlencode "end=20260731"` (키 미설정이면 503 확인) - Network accessline 99
- `./scripts/validate-skills.sh` - `node --test packages/k-skill-proxy/test/server.test.js` - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/kopis/performances" --data-urlencode "start=20260701" --data-urlencode "end=20260731"` (키 미설정이면 503 확인) - Network accessline 101
- `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/kopis/performances" --data-urlencode "start=20260701" --data-urlencode "end=20260731"` (키 미설정이면 503 확인) - Network accessline 101
- `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/kopis/performances" --data-urlencode "start=20260701" --data-urlencode "end=20260731"` (키 미설정이면 503 확인) - Access to secretsline 103
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted]
kopis-performance-search/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 크롤링·좌석 선점·결제 자동화를 일반적으로 허용하지 않습니다. [저작권법 제93 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 크롤링·좌석 선점·결제 자동화를 일반적으로 허용하지 않습니다. [저작권법 제93
kopis-performance-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 기능 또는 적용 대상을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우를 구별했습니다. 실제 표시 태양과 거래계 인식에 따라 결론이 달라질 수 있으므로 평문으로 필요한 범위에서만 사용하고 로고·공식·제휴·후원·인증 표현을 사용하 - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 기능 또는 적용 대상을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우를 구별했습니다. 실제 표시 태양과 거래계 인식에 따라 결론이 달라질 수 있으므로 평문으로 필요한 범위에서만 사용하고 로고·공식·제휴·후원·인증 표현을 사용하
korea-weather/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korea-weather/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korea-weather/instruction.md.
korea-weather/instruction.md
- Access to secretsline 6
[Credential-related source omitted] - Access to secretsline 6
[Credential-related source omitted] - Network accessline 16
- optional: `jq` - optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Network accessline 16
- optional: `jq` - optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Network accessline 17
- optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Network accessline 17
- optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Network accessline 21
- 없음. `KSKILL_PROXY_BASE_URL` 은 선택 사항이며, 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 21
- 없음. `KSKILL_PROXY_BASE_URL` 은 선택 사항이며, 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Access to secretsline 23
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted] - Network accessline 37
`KSKILL_PROXY_BASE_URL` 이 있으면 그 값을 사용하고, 없거나 비어 있으면 기본 hosted proxy `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 37
`KSKILL_PROXY_BASE_URL` 이 있으면 그 값을 사용하고, 없거나 비어 있으면 기본 hosted proxy `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 54
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/korea-weather/vsrt" \ - Network accessline 54
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/korea-weather/vsrt" \ - Network accessline 55
curl -fsS --get "${BASE}/v1/korea-weather/vsrt" \ - Network accessline 55
curl -fsS --get "${BASE}/v1/korea-weather/vsrt" \ - Network accessline 63
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/korea-weather/now" \ - Network accessline 63
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/korea-weather/now" \ - Network accessline 64
curl -fsS --get "${BASE}/v1/korea-weather/now" \ - Network accessline 64
curl -fsS --get "${BASE}/v1/korea-weather/now" \ - Network accessline 72
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/korea-weather/forecast" \ - Network accessline 72
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/korea-weather/forecast" \ - Network accessline 73
curl -fsS --get "${BASE}/v1/korea-weather/forecast" \ - Network accessline 73
curl -fsS --get "${BASE}/v1/korea-weather/forecast" \
korean-bond-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-bond-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-bond-search/instruction.md.
korean-bond-search/instruction.md
korean-bond-search/references/source-notes.md
- Network accessline 3
1. SEIBro 채권정보를 1차 원천으로 사용한다. ISIN을 알면 모바일 상세 페이지 `https://m.seibro.or.kr/cnts/bond/selectDetailSearch.do?txt_code=<ISIN>`를 직접 연다. - Network accessline 3
1. SEIBro 채권정보를 1차 원천으로 사용한다. ISIN을 알면 모바일 상세 페이지 `https://m.seibro.or.kr/cnts/bond/selectDetailSearch.do?txt_code=<ISIN>`를 직접 연다.
korean-bond-search/scripts/bond_search.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 21
SEIBRO_URL = "https://seibro.or.kr/websquare/control.jsp?w2xPath=/IPORTAL/user/bond/BIP_CNTS02001V.xml&menuNo=285" - Network accessline 21
SEIBRO_URL = "https://seibro.or.kr/websquare/control.jsp?w2xPath=/IPORTAL/user/bond/BIP_CNTS02001V.xml&menuNo=285" - Access to secretsline 446
[Credential-related source omitted] - Access to secretsline 446
[Credential-related source omitted]
korean-bond-search/tests/test_bond_search.py
korean-character-count/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-character-count/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-character-count/instruction.md.
korean-character-count/instruction.md
- Network accessline 85
- Unicode grapheme clusters: https://www.unicode.org/reports/tr29/ - Network accessline 85
- Unicode grapheme clusters: https://www.unicode.org/reports/tr29/ - Network accessline 86
- WHATWG Encoding Standard: https://encoding.spec.whatwg.org/ - Network accessline 86
- WHATWG Encoding Standard: https://encoding.spec.whatwg.org/ - Network accessline 87
- Node `Buffer.byteLength`: https://nodejs.org/api/buffer.html - Network accessline 87
- Node `Buffer.byteLength`: https://nodejs.org/api/buffer.html
korean-character-count/scripts/korean_character_count.js
korean-cinema-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-cinema-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-cinema-search/instruction.md.
korean-cinema-search/instruction.md
- Network accessline 5
upstream 원본 [`hmmhmmhm/daiso-mcp`](https://github.com/hmmhmmhm/daiso-mcp) 와 npm package [`daiso`](https://www.npmjs.com/package/daiso) 를 사용해 **CGV, 메가박스, 롯데시네마 영화관 검색, 상영작, 시간표, 잔여석 조회**를 안내한다. - Network accessline 5
upstream 원본 [`hmmhmmhm/daiso-mcp`](https://github.com/hmmhmmhm/daiso-mcp) 와 npm package [`daiso`](https://www.npmjs.com/package/daiso) 를 사용해 **CGV, 메가박스, 롯데시네마 영화관 검색, 상영작, 시간표, 잔여석 조회**를 안내한다. - Network accessline 68
git clone https://github.com/hmmhmmhm/daiso-mcp.git - Network accessline 68
git clone https://github.com/hmmhmmhm/daiso-mcp.git - Network accessline 139
CGV 공개 endpoint가 `503 CGV_UPSTREAM_UNAVAILABLE`을 반환하면 CGV 공식 웹사이트 (`https://www.cgv.co.kr`)를 브라우저 사용 스킬로 대체 조회한다. 이때도 공개 상영정보 - Network accessline 139
CGV 공개 endpoint가 `503 CGV_UPSTREAM_UNAVAILABLE`을 반환하면 CGV 공식 웹사이트 (`https://www.cgv.co.kr`)를 브라우저 사용 스킬로 대체 조회한다. 이때도 공개 상영정보 - Network accessline 140
(`https://www.cgv.co.kr`)를 브라우저 사용 스킬로 대체 조회한다. 이때도 공개 상영정보 - Network accessline 140
(`https://www.cgv.co.kr`)를 브라우저 사용 스킬로 대체 조회한다. 이때도 공개 상영정보 - Network accessline 181
- 원본 프로젝트: `https://github.com/hmmhmmhm/daiso-mcp` - Network accessline 181
- 원본 프로젝트: `https://github.com/hmmhmmhm/daiso-mcp` - Network accessline 182
- npm package: `https://www.npmjs.com/package/daiso` - Network accessline 182
- npm package: `https://www.npmjs.com/package/daiso`
korean-cinema-search/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 크롤링·좌석 선점·결제 자동화를 일반적으로 허용하지 않습니다. [저작권법 제93 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 크롤링·좌석 선점·결제 자동화를 일반적으로 허용하지 않습니다. [저작권법 제93
korean-cinema-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
korean-heritage-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-heritage-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-heritage-search/instruction.md.
korean-heritage-search/instruction.md
- Network accessline 102
- 목록 API: `https://www.khs.go.kr/cha/SearchKindOpenapiList.do` - Network accessline 102
- 목록 API: `https://www.khs.go.kr/cha/SearchKindOpenapiList.do` - Network accessline 103
- 상세 API: `https://www.khs.go.kr/cha/SearchKindOpenapiDt.do` - Network accessline 103
- 상세 API: `https://www.khs.go.kr/cha/SearchKindOpenapiDt.do` - Network accessline 104
- 행사 API: `https://www.khs.go.kr/cha/openapi/selectEventListOpenapi.do` - Network accessline 104
- 행사 API: `https://www.khs.go.kr/cha/openapi/selectEventListOpenapi.do` - Network accessline 105
- 공식 Open API 안내: `https://www.khs.go.kr/html/HtmlPage.do?mn=NS_04_04_03&pg=%2Fpublicinfo%2Fpbinfo3_0201.jsp` - Network accessline 105
- 공식 Open API 안내: `https://www.khs.go.kr/html/HtmlPage.do?mn=NS_04_04_03&pg=%2Fpublicinfo%2Fpbinfo3_0201.jsp`
korean-heritage-search/scripts/korean_heritage_search.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 15
LIST_URL = "https://www.khs.go.kr/cha/SearchKindOpenapiList.do" - Network accessline 15
LIST_URL = "https://www.khs.go.kr/cha/SearchKindOpenapiList.do" - Network accessline 16
DETAIL_URL = "https://www.khs.go.kr/cha/SearchKindOpenapiDt.do" - Network accessline 16
DETAIL_URL = "https://www.khs.go.kr/cha/SearchKindOpenapiDt.do" - Network accessline 17
EVENT_URL = "https://www.khs.go.kr/cha/openapi/selectEventListOpenapi.do" - Network accessline 17
EVENT_URL = "https://www.khs.go.kr/cha/openapi/selectEventListOpenapi.do" - Network accessline 18
OPEN_API_GUIDE_URL = "https://www.khs.go.kr/html/HtmlPage.do?mn=NS_04_04_03&pg=%2Fpublicinfo%2Fpbinfo3_0201.jsp" - Network accessline 18
OPEN_API_GUIDE_URL = "https://www.khs.go.kr/html/HtmlPage.do?mn=NS_04_04_03&pg=%2Fpublicinfo%2Fpbinfo3_0201.jsp" - Network accessline 77
def _request_xml(url: str, params: dict[str, str], timeout: float = 20.0) -> ET.Element: query = urllib.parse.urlencode({key: value for key, value in params.items() if value != ""}) request = urllib.request.Request( - Network accessline 77
def _request_xml(url: str, params: dict[str, str], timeout: float = 20.0) -> ET.Element: query = urllib.parse.urlencode({key: value for key, value in params.items() if value != ""}) request = urllib.request.Request( - Network accessline 78
query = urllib.parse.urlencode({key: value for key, value in params.items() if value != ""}) request = urllib.request.Request( f"{url}?{query}", - Network accessline 78
query = urllib.parse.urlencode({key: value for key, value in params.items() if value != ""}) request = urllib.request.Request( f"{url}?{query}", - Network accessline 79
request = urllib.request.Request( - Network accessline 79
request = urllib.request.Request( - Network accessline 82
) try: with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 82
) try: with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 83
try: with urllib.request.urlopen(request, timeout=timeout) as response: body = response.read() - Network accessline 83
try: with urllib.request.urlopen(request, timeout=timeout) as response: body = response.read() - Network accessline 84
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 84
with urllib.request.urlopen(request, timeout=timeout) as response:
korean-holiday-calendar/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-holiday-calendar/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-holiday-calendar/instruction.md.
korean-holiday-calendar/instruction.md
- Network accessline 29
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 29
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 30
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 30
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Network accessline 35
- API 페이지: <https://www.data.go.kr/data/15012690/openapi.do> - Network accessline 35
- API 페이지: <https://www.data.go.kr/data/15012690/openapi.do> - Network accessline 36
- 공공데이터포털 이용 가이드: <https://www.data.go.kr/ugs/selectPublicDataUseGuideView.do> - Network accessline 36
- 공공데이터포털 이용 가이드: <https://www.data.go.kr/ugs/selectPublicDataUseGuideView.do> - Network accessline 51
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/korean-holiday/calendar" \ - Network accessline 51
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/korean-holiday/calendar" \ - Network accessline 52
curl -fsS --get "$BASE/v1/korean-holiday/calendar" \ - Network accessline 52
curl -fsS --get "$BASE/v1/korean-holiday/calendar" \ - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Network accessline 87
- `./scripts/validate-skills.sh` - `node --test packages/k-skill-proxy/test/server.test.js` - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/korean-holiday/calendar" --data-urlencode "year=2026"` (키 미설정이면 503 확인) - Network accessline 87
- `./scripts/validate-skills.sh` - `node --test packages/k-skill-proxy/test/server.test.js` - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/korean-holiday/calendar" --data-urlencode "year=2026"` (키 미설정이면 503 확인) - Network accessline 89
- `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/korean-holiday/calendar" --data-urlencode "year=2026"` (키 미설정이면 503 확인) - Network accessline 89
- `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/korean-holiday/calendar" --data-urlencode "year=2026"` (키 미설정이면 503 확인) - Access to secretsline 91
[Credential-related source omitted] - Access to secretsline 91
[Credential-related source omitted]
korean-humanizer/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-humanizer/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-humanizer/instruction.md.
korean-humanizer/instruction.md
- Network accessline 386
- 이 스킬의 분류 체계(번역체 A · 영어 인용 B · 구조 C · 관용구 D · 리듬 E · 수식 F · hedging G · 접속사 H · 형식명사 I · 시각 장식 J), 심각도(S1/S2/S3), 4대 철칙, 변경률 30%/50% 가드, 품질 등급(A~D)은 **[epoko77-ai/im-not-ai](https://github.com/epoko77-ai/im-not-ai)** (Humanize KR, MIT)의 방법 - Network accessline 386
- 이 스킬의 분류 체계(번역체 A · 영어 인용 B · 구조 C · 관용구 D · 리듬 E · 수식 F · hedging G · 접속사 H · 형식명사 I · 시각 장식 J), 심각도(S1/S2/S3), 4대 철칙, 변경률 30%/50% 가드, 품질 등급(A~D)은 **[epoko77-ai/im-not-ai](https://github.com/epoko77-ai/im-not-ai)** (Humanize KR, MIT)의 방법 - Network accessline 387
- 최초 한국어 humanizer 스킬과 33개 패턴 카탈로그·예문·triage/length-control 설계는 **happy-nut(Hyungsun Song)** 님이 PR #311로 기여했다. 이 v2는 그 토대 위에 im-not-ai의 프레임워크를 얹은 것이다. - 영어권 원형은 [blader/humanizer](https://github.com/blader/humanizer)이고, 영어판이 [Wikipedia: Sig - Network accessline 387
- 최초 한국어 humanizer 스킬과 33개 패턴 카탈로그·예문·triage/length-control 설계는 **happy-nut(Hyungsun Song)** 님이 PR #311로 기여했다. 이 v2는 그 토대 위에 im-not-ai의 프레임워크를 얹은 것이다. - 영어권 원형은 [blader/humanizer](https://github.com/blader/humanizer)이고, 영어판이 [Wikipedia: Sig - Network accessline 388
- 영어권 원형은 [blader/humanizer](https://github.com/blader/humanizer)이고, 영어판이 [Wikipedia: Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing)에 기반하듯 한국어판은 **번역체**와 격식을 가장한 **상투어**를 1순위 정체로 본다. - Network accessline 388
- 영어권 원형은 [blader/humanizer](https://github.com/blader/humanizer)이고, 영어판이 [Wikipedia: Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing)에 기반하듯 한국어판은 **번역체**와 격식을 가장한 **상투어**를 1순위 정체로 본다.
korean-humanizer/references/ai-tell-taxonomy.md
- Network accessline 5
이 분류 체계·심각도·처방은 [epoko77-ai/im-not-ai](https://github.com/epoko77-ai/im-not-ai) (Humanize KR, MIT)의 `ai-tell-taxonomy.md` / `quick-rules.md`를 한국어 단일 스킬 형식에 맞게 재구성한 것이다. 학술 anchor는 해당 프로젝트의 `scholarship.md` 인용을 따른다. - Network accessline 5
이 분류 체계·심각도·처방은 [epoko77-ai/im-not-ai](https://github.com/epoko77-ai/im-not-ai) (Humanize KR, MIT)의 `ai-tell-taxonomy.md` / `quick-rules.md`를 한국어 단일 스킬 형식에 맞게 재구성한 것이다. 학술 anchor는 해당 프로젝트의 `scholarship.md` 인용을 따른다.
korean-jangbu-for/LICENSE.upstream
- Network accessline 1
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - Network accessline 1
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - Network accessline 3
http://www.apache.org/licenses/ - Network accessline 3
http://www.apache.org/licenses/ - Network accessline 184
http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 184
http://www.apache.org/licenses/LICENSE-2.0
korean-jangbu-for/NOTICE
- Network accessline 7
Upstream repository: https://github.com/kimlawtech/korean-jangbu-for - Network accessline 7
Upstream repository: https://github.com/kimlawtech/korean-jangbu-for - Network accessline 8
https://github.com/kimlawtech/korean-jangbu-for - Network accessline 8
https://github.com/kimlawtech/korean-jangbu-for - Network accessline 10
Original author / maintainer: @kimlawtech (https://github.com/kimlawtech), SpeciAI - Network accessline 10
Original author / maintainer: @kimlawtech (https://github.com/kimlawtech), SpeciAI - Network accessline 11
@kimlawtech (https://github.com/kimlawtech), SpeciAI - Network accessline 11
@kimlawtech (https://github.com/kimlawtech), SpeciAI
korean-jangbu-for/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-jangbu-for/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-jangbu-for/instruction.md.
korean-jangbu-for/instruction.md
- Network accessline 5
[`kimlawtech/korean-jangbu-for`](https://github.com/kimlawtech/korean-jangbu-for) (Apache-2.0) 업스트림을 중심으로 한국 사업자 장부 자동화 흐름을 안내한다. 원저작자·관리자는 **[@kimlawtech](https://github.com/kimlawtech) (SpeciAI)** 이며, k-skill 측은 원본 발견·설치 진입점·출처/면책 고지·agen - Network accessline 5
[`kimlawtech/korean-jangbu-for`](https://github.com/kimlawtech/korean-jangbu-for) (Apache-2.0) 업스트림을 중심으로 한국 사업자 장부 자동화 흐름을 안내한다. 원저작자·관리자는 **[@kimlawtech](https://github.com/kimlawtech) (SpeciAI)** 이며, k-skill 측은 원본 발견·설치 진입점·출처/면책 고지·agen - Network accessline 9
**중요:** 이 스킬을 사용할 때 모든 답변에는 원본 링크 `https://github.com/kimlawtech/korean-jangbu-for` 와 원저작자 **@kimlawtech (SpeciAI)** 를 반드시 멘션한다. - Network accessline 9
**중요:** 이 스킬을 사용할 때 모든 답변에는 원본 링크 `https://github.com/kimlawtech/korean-jangbu-for` 와 원저작자 **@kimlawtech (SpeciAI)** 를 반드시 멘션한다. - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Network accessline 113
- 원본: https://github.com/kimlawtech/korean-jangbu-for - Network accessline 113
- 원본: https://github.com/kimlawtech/korean-jangbu-for
korean-jangbu-for/scripts/install.sh
- Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Network accessline 18
UPSTREAM_REPO="${KOREAN_JANGBU_FOR_UPSTREAM_REPO:-https://github.com/kimlawtech/korean-jangbu-for.git}" - Network accessline 18
UPSTREAM_REPO="${KOREAN_JANGBU_FOR_UPSTREAM_REPO:-https://github.com/kimlawtech/korean-jangbu-for.git}" - Dangerous shell operationline 53
rm -rf "${target_dir}" - Dangerous shell operationline 53
rm -rf "${target_dir}" - Network accessline 153
- 원본: https://github.com/kimlawtech/korean-jangbu-for - Network accessline 153
- 원본: https://github.com/kimlawtech/korean-jangbu-for - Network accessline 163
if [[ ! -d "${CLONE_DIR}/.git" ]]; then echo "[korean-jangbu-for] cloning upstream into ${CLONE_DIR}" if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then - Network accessline 163
if [[ ! -d "${CLONE_DIR}/.git" ]]; then echo "[korean-jangbu-for] cloning upstream into ${CLONE_DIR}" if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then - Network accessline 164
echo "[korean-jangbu-for] cloning upstream into ${CLONE_DIR}" if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then echo "" >&2 - Network accessline 164
echo "[korean-jangbu-for] cloning upstream into ${CLONE_DIR}" if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then echo "" >&2 - Network accessline 165
if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then - Network accessline 165
if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then - Network accessline 166
echo "" >&2 echo "[korean-jangbu-for] upstream clone failed (network required)." >&2 echo " upstream: ${UPSTREAM_REPO}" >&2 - Network accessline 166
echo "" >&2 echo "[korean-jangbu-for] upstream clone failed (network required)." >&2 echo " upstream: ${UPSTREAM_REPO}" >&2 - Network accessline 167
echo "[korean-jangbu-for] upstream clone failed (network required)." >&2 echo " upstream: ${UPSTREAM_REPO}" >&2 echo " 오프라인 환경에서는 이 스킬의 장부 자동화 흐름을 실행할 수 없다." >&2 - Network accessline 167
echo "[korean-jangbu-for] upstream clone failed (network required)." >&2 echo " upstream: ${UPSTREAM_REPO}" >&2 echo " 오프라인 환경에서는 이 스킬의 장부 자동화 흐름을 실행할 수 없다." >&2 - Network accessline 168
echo " upstream: ${UPSTREAM_REPO}" >&2 - Network accessline 168
echo " upstream: ${UPSTREAM_REPO}" >&2 - Dangerous shell operationline 196
rm -f "${HOME_SKILL_DIR}" - Dangerous shell operationline 196
rm -f "${HOME_SKILL_DIR}" - Network accessline 228
echo "[korean-jangbu-for] done." echo " pinned upstream SHA: ${UPSTREAM_SHA}" echo " upstream repo: ${UPSTREAM_REPO}" - Network accessline 228
echo "[korean-jangbu-for] done." echo " pinned upstream SHA: ${UPSTREAM_SHA}" echo " upstream repo: ${UPSTREAM_REPO}" - Network accessline 229
echo " pinned upstream SHA: ${UPSTREAM_SHA}" echo " upstream repo: ${UPSTREAM_REPO}" echo " runtime install: bash ~/.claude/skills/korean-jangbu-for/upstream/scripts/install.sh" - Network accessline 229
echo " pinned upstream SHA: ${UPSTREAM_SHA}" echo " upstream repo: ${UPSTREAM_REPO}" echo " runtime install: bash ~/.claude/skills/korean-jangbu-for/upstream/scripts/install.sh" - Network accessline 230
echo " upstream repo: ${UPSTREAM_REPO}" - Network accessline 230
echo " upstream repo: ${UPSTREAM_REPO}"
korean-law-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-law-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-law-search/instruction.md.
korean-law-search/instruction.md
- Network accessline 5
기본적으로 `https://k-skill-proxy.nomadamas.org/v1/korean-law/...` 로 요청해서 한국 법령/조문/판례/유권해석/자치법규를 조회한다. 법제처(국가법령정보센터) 공식 Open API(`open.law.go.kr` 의 DRF `lawSearch.do`/`lawService.do`)를 기반으로 하며, 설계는 `chrisryugj/korean-law-mcp` 의 read-only 도구 표면을 - Network accessline 5
기본적으로 `https://k-skill-proxy.nomadamas.org/v1/korean-law/...` 로 요청해서 한국 법령/조문/판례/유권해석/자치법규를 조회한다. 법제처(국가법령정보센터) 공식 Open API(`open.law.go.kr` 의 DRF `lawSearch.do`/`lawService.do`)를 기반으로 하며, 설계는 `chrisryugj/korean-law-mcp` 의 read-only 도구 표면을 - Network accessline 37
`KSKILL_PROXY_BASE_URL` 환경변수가 있으면 그 값을 사용하고, 없으면 기본 경로 `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 37
`KSKILL_PROXY_BASE_URL` 환경변수가 있으면 그 값을 사용하고, 없으면 기본 경로 `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 77
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-law/search' \ - Network accessline 77
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-law/search' \ - Network accessline 85
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-law/search' \ - Network accessline 85
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-law/search' \ - Network accessline 93
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-law/detail' \ - Network accessline 93
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-law/detail' \ - Network accessline 160
- 설계 참고(upstream): `https://github.com/chrisryugj/korean-law-mcp` - Network accessline 160
- 설계 참고(upstream): `https://github.com/chrisryugj/korean-law-mcp` - Network accessline 161
- official data source: 법제처 Open API (`https://open.law.go.kr`, DRF `lawSearch.do`/`lawService.do`) - Network accessline 161
- official data source: 법제처 Open API (`https://open.law.go.kr`, DRF `lawSearch.do`/`lawService.do`) - Network accessline 162
- 운영자(proxy) 전용 시크릿: `LAW_OC` (사용자는 불필요). 무료 발급: `https://open.law.go.kr` - Network accessline 162
- 운영자(proxy) 전용 시크릿: `LAW_OC` (사용자는 불필요). 무료 발급: `https://open.law.go.kr`
korean-law-search/scripts/amendment/LICENSE-korean-law-mcp
korean-law-search/scripts/amendment/align.js
korean-law-search/scripts/amendment/current.js
korean-law-search/scripts/amendment/diff.js
korean-law-search/scripts/amendment/errors.js
korean-law-search/scripts/amendment/format.js
korean-law-search/scripts/amendment/hwpx-header.js
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 12
* "설 및 공동주택", "- - - -"처럼 벌어졌다(한글 화면 확인). 한글은 글자 단위라 왼쪽이어도 줄이 꽉 찬다. */ const NS_HEAD = "http://www.hancom.co.kr/hwpml/2011/head"; - Network accessline 12
* "설 및 공동주택", "- - - -"처럼 벌어졌다(한글 화면 확인). 한글은 글자 단위라 왼쪽이어도 줄이 꽉 찬다. */ const NS_HEAD = "http://www.hancom.co.kr/hwpml/2011/head"; - Network accessline 13
*/ const NS_HEAD = "http://www.hancom.co.kr/hwpml/2011/head"; const NS_PARA = "http://www.hancom.co.kr/hwpml/2011/paragraph"; - Network accessline 13
*/ const NS_HEAD = "http://www.hancom.co.kr/hwpml/2011/head"; const NS_PARA = "http://www.hancom.co.kr/hwpml/2011/paragraph"; - Network accessline 14
const NS_HEAD = "http://www.hancom.co.kr/hwpml/2011/head"; - Network accessline 14
const NS_HEAD = "http://www.hancom.co.kr/hwpml/2011/head"; - Network accessline 15
const NS_PARA = "http://www.hancom.co.kr/hwpml/2011/paragraph"; - Network accessline 15
const NS_PARA = "http://www.hancom.co.kr/hwpml/2011/paragraph"; - Network accessline 16
const NS_CORE = "http://www.hancom.co.kr/hwpml/2011/core"; - Network accessline 16
const NS_CORE = "http://www.hancom.co.kr/hwpml/2011/core"; - Network accessline 17
const CONTAINER_XML = `<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <ocf:container xmlns:ocf="urn:oasis:names:tc:opendocument:xmlns:container" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf"> <ocf:rootfiles> - Network accessline 17
const CONTAINER_XML = `<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <ocf:container xmlns:ocf="urn:oasis:names:tc:opendocument:xmlns:container" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf"> <ocf:rootfiles> - Network accessline 18
<ocf:container xmlns:ocf="urn:oasis:names:tc:opendocument:xmlns:container" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf"> - Network accessline 18
<ocf:container xmlns:ocf="urn:oasis:names:tc:opendocument:xmlns:container" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf"> - Network accessline 22
</ocf:container>`; const CONTENT_HPF = `<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <opf:package xmlns:opf="http://www.idpf.org/2007/opf/" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf" xmlns:hh="${NS_HEAD}"> - Network accessline 22
</ocf:container>`; const CONTENT_HPF = `<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <opf:package xmlns:opf="http://www.idpf.org/2007/opf/" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf" xmlns:hh="${NS_HEAD}"> - Network accessline 23
const CONTENT_HPF = `<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <opf:package xmlns:opf="http://www.idpf.org/2007/opf/" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf" xmlns:hh="${NS_HEAD}"> <opf:metadata> - Network accessline 23
const CONTENT_HPF = `<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <opf:package xmlns:opf="http://www.idpf.org/2007/opf/" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf" xmlns:hh="${NS_HEAD}"> <opf:metadata> - Network accessline 24
<opf:package xmlns:opf="http://www.idpf.org/2007/opf/" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf" xmlns:hh="${NS_HEAD}"> - Network accessline 24
<opf:package xmlns:opf="http://www.idpf.org/2007/opf/" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf" xmlns:hh="${NS_HEAD}">
korean-law-search/scripts/amendment/hwpx.js
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 9
const { BORDER, CHAR, CONTAINER_XML, CONTENT_HPF, PARA, headerXml } = require("./hwpx-header.js"); const { createZip } = require("./zip.js"); const NS_SEC = "http://www.hancom.co.kr/hwpml/2011/section"; - Network accessline 9
const { BORDER, CHAR, CONTAINER_XML, CONTENT_HPF, PARA, headerXml } = require("./hwpx-header.js"); const { createZip } = require("./zip.js"); const NS_SEC = "http://www.hancom.co.kr/hwpml/2011/section"; - Network accessline 10
const { createZip } = require("./zip.js"); const NS_SEC = "http://www.hancom.co.kr/hwpml/2011/section"; const NS_PARA = "http://www.hancom.co.kr/hwpml/2011/paragraph"; - Network accessline 10
const { createZip } = require("./zip.js"); const NS_SEC = "http://www.hancom.co.kr/hwpml/2011/section"; const NS_PARA = "http://www.hancom.co.kr/hwpml/2011/paragraph"; - Network accessline 11
const NS_SEC = "http://www.hancom.co.kr/hwpml/2011/section"; - Network accessline 11
const NS_SEC = "http://www.hancom.co.kr/hwpml/2011/section"; - Network accessline 12
const NS_PARA = "http://www.hancom.co.kr/hwpml/2011/paragraph"; - Network accessline 12
const NS_PARA = "http://www.hancom.co.kr/hwpml/2011/paragraph";
korean-law-search/scripts/amendment/law-json.js
korean-law-search/scripts/amendment/marks.js
korean-law-search/scripts/amendment/render.js
korean-law-search/scripts/amendment/table.js
korean-law-search/scripts/amendment/units.js
korean-law-search/scripts/amendment/zip.js
korean-law-search/scripts/amendment_table.js
korean-marathon-schedule/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-marathon-schedule/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-marathon-schedule/instruction.md.
korean-marathon-schedule/instruction.md
- Network accessline 34
- list entry point: `https://gorunning.kr/races/` - Network accessline 34
- list entry point: `https://gorunning.kr/races/` - Network accessline 41
- list entry point: `https://triathlon.or.kr/events/tour/?sYear=<YYYY>&vType=list` - detail pages: same-host `triathlon.or.kr` links matching `/events/tour/overview/?mode=overview&tourcd=<id>` - detail fields used: title, event date, venue, - Network accessline 41
- list entry point: `https://triathlon.or.kr/events/tour/?sYear=<YYYY>&vType=list` - detail pages: same-host `triathlon.or.kr` links matching `/events/tour/overview/?mode=overview&tourcd=<id>` - detail fields used: title, event date, venue,
korean-middle-korean/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-middle-korean/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-middle-korean/instruction.md.
korean-middle-korean/scripts/korean_middle_korean.js
korean-patent-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-patent-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-patent-search/instruction.md.
korean-patent-search/instruction.md
- Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 44
[Credential-related source omitted] - Access to secretsline 44
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Network accessline 76
- KIPRIS Plus 포털: `https://plus.kipris.or.kr/portal/data/service/List.do?subTab=SC001&entYn=N&menuNo=200100` - Network accessline 76
- KIPRIS Plus 포털: `https://plus.kipris.or.kr/portal/data/service/List.do?subTab=SC001&entYn=N&menuNo=200100` - Network accessline 77
- 공공데이터포털 문서: `https://www.data.go.kr/data/15058788/openapi.do` - Network accessline 77
- 공공데이터포털 문서: `https://www.data.go.kr/data/15058788/openapi.do`
korean-patent-search/scripts/patent_search.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 15
[Credential-related source omitted] - Network accessline 17
DEFAULT_NUM_ROWS = 10 DEFAULT_PAGE_NO = 1 BASE_API_URL = "https://plus.kipris.or.kr/kipo-api/kipi/patUtiModInfoSearchSevice" - Network accessline 17
DEFAULT_NUM_ROWS = 10 DEFAULT_PAGE_NO = 1 BASE_API_URL = "https://plus.kipris.or.kr/kipo-api/kipi/patUtiModInfoSearchSevice" - Network accessline 18
DEFAULT_PAGE_NO = 1 BASE_API_URL = "https://plus.kipris.or.kr/kipo-api/kipi/patUtiModInfoSearchSevice" SEARCH_OPERATION = "getWordSearch" - Network accessline 18
DEFAULT_PAGE_NO = 1 BASE_API_URL = "https://plus.kipris.or.kr/kipo-api/kipi/patUtiModInfoSearchSevice" SEARCH_OPERATION = "getWordSearch" - Network accessline 19
BASE_API_URL = "https://plus.kipris.or.kr/kipo-api/kipi/patUtiModInfoSearchSevice" - Network accessline 19
BASE_API_URL = "https://plus.kipris.or.kr/kipo-api/kipi/patUtiModInfoSearchSevice" - Network accessline 170
def fetch_xml(url: str, params: dict[str, str], timeout: int = DEFAULT_TIMEOUT) -> str: request_url = f"{url}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(request_url, headers=DEFAULT_HEADERS) - Network accessline 170
def fetch_xml(url: str, params: dict[str, str], timeout: int = DEFAULT_TIMEOUT) -> str: request_url = f"{url}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(request_url, headers=DEFAULT_HEADERS) - Network accessline 171
request_url = f"{url}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(request_url, headers=DEFAULT_HEADERS) try: - Network accessline 171
request_url = f"{url}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(request_url, headers=DEFAULT_HEADERS) try: - Network accessline 172
request = urllib.request.Request(request_url, headers=DEFAULT_HEADERS) - Network accessline 172
request = urllib.request.Request(request_url, headers=DEFAULT_HEADERS) - Network accessline 173
try: with urllib.request.urlopen(request, timeout=timeout) as response: return response.read().decode("utf-8", errors="replace") - Network accessline 173
try: with urllib.request.urlopen(request, timeout=timeout) as response: return response.read().decode("utf-8", errors="replace") - Network accessline 174
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 174
with urllib.request.urlopen(request, timeout=timeout) as response:
korean-privacy-terms/LICENSE.upstream
- Network accessline 2
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - Network accessline 2
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - Network accessline 4
http://www.apache.org/licenses/ - Network accessline 4
http://www.apache.org/licenses/ - Network accessline 196
http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 196
http://www.apache.org/licenses/LICENSE-2.0
korean-privacy-terms/NOTICE
- Network accessline 11
http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 11
http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 42
SpeciAI - Korean Legal AI Hub https://discord.gg/qmCbMaER - Network accessline 42
SpeciAI - Korean Legal AI Hub https://discord.gg/qmCbMaER - Network accessline 43
https://discord.gg/qmCbMaER - Network accessline 43
https://discord.gg/qmCbMaER
korean-privacy-terms/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-privacy-terms/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-privacy-terms/instruction.md.
korean-privacy-terms/instruction.md
- Network accessline 5
[`kimlawtech/korean-privacy-terms`](https://github.com/kimlawtech/korean-privacy-terms) (Apache-2.0) 업스트림을 사용해 한국 법령 기반 **개인정보처리방침·이용약관·쿠키 배너·회원가입 동의 모달** 생성을 수행한다. k-skill 측은 **얇은 wrapper** 만 유지하고, 실제 인터뷰/렌더/설치 로직은 업스트림에 위임한다. - Network accessline 5
[`kimlawtech/korean-privacy-terms`](https://github.com/kimlawtech/korean-privacy-terms) (Apache-2.0) 업스트림을 사용해 한국 법령 기반 **개인정보처리방침·이용약관·쿠키 배너·회원가입 동의 모달** 생성을 수행한다. k-skill 측은 **얇은 wrapper** 만 유지하고, 실제 인터뷰/렌더/설치 로직은 업스트림에 위임한다. - Network accessline 122
- upstream: https://github.com/kimlawtech/korean-privacy-terms (Apache-2.0) - Network accessline 122
- upstream: https://github.com/kimlawtech/korean-privacy-terms (Apache-2.0)
korean-privacy-terms/scripts/install.sh
- Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Network accessline 24
UPSTREAM_REPO="https://github.com/kimlawtech/korean-privacy-terms.git" - Network accessline 24
UPSTREAM_REPO="https://github.com/kimlawtech/korean-privacy-terms.git" - Network accessline 46
if [[ ! -d "${CLONE_DIR}/.git" ]]; then echo "[korean-privacy-terms] cloning upstream into ${CLONE_DIR}" if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then - Network accessline 46
if [[ ! -d "${CLONE_DIR}/.git" ]]; then echo "[korean-privacy-terms] cloning upstream into ${CLONE_DIR}" if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then - Network accessline 47
echo "[korean-privacy-terms] cloning upstream into ${CLONE_DIR}" if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then echo "" >&2 - Network accessline 47
echo "[korean-privacy-terms] cloning upstream into ${CLONE_DIR}" if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then echo "" >&2 - Network accessline 48
if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then - Network accessline 48
if ! git clone --filter=blob:none "${UPSTREAM_REPO}" "${CLONE_DIR}" >&2; then - Network accessline 49
echo "" >&2 echo "[korean-privacy-terms] upstream clone failed (network required)." >&2 echo " upstream: ${UPSTREAM_REPO}" >&2 - Network accessline 49
echo "" >&2 echo "[korean-privacy-terms] upstream clone failed (network required)." >&2 echo " upstream: ${UPSTREAM_REPO}" >&2 - Network accessline 50
echo "[korean-privacy-terms] upstream clone failed (network required)." >&2 echo " upstream: ${UPSTREAM_REPO}" >&2 echo " 오프라인 환경에서는 이 스킬의 생성 흐름을 실행할 수 없다." >&2 - Network accessline 50
echo "[korean-privacy-terms] upstream clone failed (network required)." >&2 echo " upstream: ${UPSTREAM_REPO}" >&2 echo " 오프라인 환경에서는 이 스킬의 생성 흐름을 실행할 수 없다." >&2 - Network accessline 51
echo " upstream: ${UPSTREAM_REPO}" >&2 - Network accessline 51
echo " upstream: ${UPSTREAM_REPO}" >&2 - Dangerous shell operationline 98
rm -rf "${HOME_UPSTREAM}" - Dangerous shell operationline 98
rm -rf "${HOME_UPSTREAM}" - Network accessline 121
echo "[korean-privacy-terms] done." echo " pinned upstream SHA: ${UPSTREAM_SHA}" echo " upstream repo: ${UPSTREAM_REPO}" - Network accessline 121
echo "[korean-privacy-terms] done." echo " pinned upstream SHA: ${UPSTREAM_SHA}" echo " upstream repo: ${UPSTREAM_REPO}" - Network accessline 122
echo " pinned upstream SHA: ${UPSTREAM_SHA}" echo " upstream repo: ${UPSTREAM_REPO}" echo " 이 스킬이 생성하는 모든 문서는 참고용 초안이며 법률 자문이 아니다." - Network accessline 122
echo " pinned upstream SHA: ${UPSTREAM_SHA}" echo " upstream repo: ${UPSTREAM_REPO}" echo " 이 스킬이 생성하는 모든 문서는 참고용 초안이며 법률 자문이 아니다." - Network accessline 123
echo " upstream repo: ${UPSTREAM_REPO}" - Network accessline 123
echo " upstream repo: ${UPSTREAM_REPO}"
korean-scholarship-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-scholarship-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-scholarship-search/instruction.md.
korean-scholarship-search/instruction.md
- Network accessline 143
"type": "foundation" }, "source_url": "https://official.example.com/notice/123", - Network accessline 143
"type": "foundation" }, "source_url": "https://official.example.com/notice/123", - Network accessline 144
}, "source_url": "https://official.example.com/notice/123", "apply_url": "https://official.example.com/apply", - Network accessline 144
}, "source_url": "https://official.example.com/notice/123", "apply_url": "https://official.example.com/apply", - Network accessline 145
"source_url": "https://official.example.com/notice/123", - Network accessline 145
"source_url": "https://official.example.com/notice/123", - Network accessline 146
"apply_url": "https://official.example.com/apply", - Network accessline 146
"apply_url": "https://official.example.com/apply",
korean-scholarship-search/scripts/scholarship_filter.py
korean-scholarship-search/scripts/test_scholarship_filter.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 197
record = { "organization": {"name": "한국장학재단"}, "source_url": "https://www.kosaf.go.kr/snu-notice", - Network accessline 197
record = { "organization": {"name": "한국장학재단"}, "source_url": "https://www.kosaf.go.kr/snu-notice", - Network accessline 198
"organization": {"name": "한국장학재단"}, "source_url": "https://www.kosaf.go.kr/snu-notice", } - Network accessline 198
"organization": {"name": "한국장학재단"}, "source_url": "https://www.kosaf.go.kr/snu-notice", } - Network accessline 199
"source_url": "https://www.kosaf.go.kr/snu-notice", - Network accessline 199
"source_url": "https://www.kosaf.go.kr/snu-notice",
korean-scholarship-search/scripts/university_search_plan.py
korean-slang-writing/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-slang-writing/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-slang-writing/instruction.md.
korean-slang-writing/data/seed-slang.json
- Network accessline 1
{ "schema_version": "1.0", "source": "https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4 (분류:유행어) + 큐레이션", - Network accessline 1
{ "schema_version": "1.0", "source": "https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4 (분류:유행어) + 큐레이션", - Network accessline 2
"schema_version": "1.0", "source": "https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4 (분류:유행어) + 큐레이션", "last_reviewed": "2026-04-22", - Network accessline 2
"schema_version": "1.0", "source": "https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4 (분류:유행어) + 큐레이션", "last_reviewed": "2026-04-22", - Network accessline 3
"source": "https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4 (분류:유행어) + 큐레이션", - Network accessline 3
"source": "https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4 (분류:유행어) + 큐레이션", - Network accessline 17
"중꺾마, 올해도 잘 버텨보자." ], "namuwiki_url": "https://namu.wiki/w/%EC%A4%91%EA%BA%BE%EB%A7%88", - Network accessline 17
"중꺾마, 올해도 잘 버텨보자." ], "namuwiki_url": "https://namu.wiki/w/%EC%A4%91%EA%BA%BE%EB%A7%88", - Network accessline 18
], "namuwiki_url": "https://namu.wiki/w/%EC%A4%91%EA%BA%BE%EB%A7%88", "era": "2022", - Network accessline 18
], "namuwiki_url": "https://namu.wiki/w/%EC%A4%91%EA%BA%BE%EB%A7%88", "era": "2022", - Network accessline 19
"namuwiki_url": "https://namu.wiki/w/%EC%A4%91%EA%BA%BE%EB%A7%88", - Network accessline 19
"namuwiki_url": "https://namu.wiki/w/%EC%A4%91%EA%BA%BE%EB%A7%88", - Network accessline 33
"갓생러들의 아침 루틴 모음." ], "namuwiki_url": "https://namu.wiki/w/%EA%B0%93%EC%83%9D", - Network accessline 33
"갓생러들의 아침 루틴 모음." ], "namuwiki_url": "https://namu.wiki/w/%EA%B0%93%EC%83%9D", - Network accessline 34
], "namuwiki_url": "https://namu.wiki/w/%EA%B0%93%EC%83%9D", "era": "2021", - Network accessline 34
], "namuwiki_url": "https://namu.wiki/w/%EA%B0%93%EC%83%9D", "era": "2021", - Network accessline 35
"namuwiki_url": "https://namu.wiki/w/%EA%B0%93%EC%83%9D", - Network accessline 35
"namuwiki_url": "https://namu.wiki/w/%EA%B0%93%EC%83%9D", - Network accessline 49
"#오운완 #헬창의일상" ], "namuwiki_url": "https://namu.wiki/w/%EC%98%A4%EC%9A%B4%EC%99%84", - Network accessline 49
"#오운완 #헬창의일상" ], "namuwiki_url": "https://namu.wiki/w/%EC%98%A4%EC%9A%B4%EC%99%84", - Network accessline 50
], "namuwiki_url": "https://namu.wiki/w/%EC%98%A4%EC%9A%B4%EC%99%84", "era": "2020", - Network accessline 50
], "namuwiki_url": "https://namu.wiki/w/%EC%98%A4%EC%9A%B4%EC%99%84", "era": "2020", - Network accessline 51
"namuwiki_url": "https://namu.wiki/w/%EC%98%A4%EC%9A%B4%EC%99%84", - Network accessline 51
"namuwiki_url": "https://namu.wiki/w/%EC%98%A4%EC%9A%B4%EC%99%84", - Network accessline 65
"꾸안꾸가 제일 어렵다." ], "namuwiki_url": "https://namu.wiki/w/%EA%BE%B8%EC%95%88%EA%BE%B8", - Network accessline 65
"꾸안꾸가 제일 어렵다." ], "namuwiki_url": "https://namu.wiki/w/%EA%BE%B8%EC%95%88%EA%BE%B8", - Network accessline 66
], "namuwiki_url": "https://namu.wiki/w/%EA%BE%B8%EC%95%88%EA%BE%B8", "era": "2019", - Network accessline 66
], "namuwiki_url": "https://namu.wiki/w/%EA%BE%B8%EC%95%88%EA%BE%B8", "era": "2019", - Network accessline 67
"namuwiki_url": "https://namu.wiki/w/%EA%BE%B8%EC%95%88%EA%BE%B8", - Network accessline 67
"namuwiki_url": "https://namu.wiki/w/%EA%BE%B8%EC%95%88%EA%BE%B8", - Network accessline 81
"TMI 주의, 스크롤 내리세요." ], "namuwiki_url": "https://namu.wiki/w/TMI", - Network accessline 81
"TMI 주의, 스크롤 내리세요." ], "namuwiki_url": "https://namu.wiki/w/TMI", - Network accessline 82
], "namuwiki_url": "https://namu.wiki/w/TMI", "era": "2018", - Network accessline 82
], "namuwiki_url": "https://namu.wiki/w/TMI", "era": "2018", - Network accessline 83
"namuwiki_url": "https://namu.wiki/w/TMI", - Network accessline 83
"namuwiki_url": "https://namu.wiki/w/TMI", - Network accessline 97
"몰아보기 끝나고 오는 그 현타..." ], "namuwiki_url": "https://namu.wiki/w/%ED%98%84%ED%83%80", - Network accessline 97
"몰아보기 끝나고 오는 그 현타..." ], "namuwiki_url": "https://namu.wiki/w/%ED%98%84%ED%83%80", - Network accessline 98
], "namuwiki_url": "https://namu.wiki/w/%ED%98%84%ED%83%80", "era": "2015", - Network accessline 98
], "namuwiki_url": "https://namu.wiki/w/%ED%98%84%ED%83%80", "era": "2015", - Network accessline 99
"namuwiki_url": "https://namu.wiki/w/%ED%98%84%ED%83%80", - Network accessline 99
"namuwiki_url": "https://namu.wiki/w/%ED%98%84%ED%83%80", - Network accessline 113
"갑분싸 만들기 장인" ], "namuwiki_url": "https://namu.wiki/w/%EA%B0%91%EB%B6%84%EC%8B%B8", - Network accessline 113
"갑분싸 만들기 장인" ], "namuwiki_url": "https://namu.wiki/w/%EA%B0%91%EB%B6%84%EC%8B%B8", - Network accessline 114
], "namuwiki_url": "https://namu.wiki/w/%EA%B0%91%EB%B6%84%EC%8B%B8", "era": "2018", - Network accessline 114
], "namuwiki_url": "https://namu.wiki/w/%EA%B0%91%EB%B6%84%EC%8B%B8", "era": "2018", - Network accessline 115
"namuwiki_url": "https://namu.wiki/w/%EA%B0%91%EB%B6%84%EC%8B%B8", - Network accessline 115
"namuwiki_url": "https://namu.wiki/w/%EA%B0%91%EB%B6%84%EC%8B%B8", - Network accessline 129
"워라밸 지키면서 일하기." ], "namuwiki_url": "https://namu.wiki/w/%EC%9B%8C%EB%9D%BC%EB%B0%B8", - Network accessline 129
"워라밸 지키면서 일하기." ], "namuwiki_url": "https://namu.wiki/w/%EC%9B%8C%EB%9D%BC%EB%B0%B8", - Network accessline 130
], "namuwiki_url": "https://namu.wiki/w/%EC%9B%8C%EB%9D%BC%EB%B0%B8", "era": "2017", - Network accessline 130
], "namuwiki_url": "https://namu.wiki/w/%EC%9B%8C%EB%9D%BC%EB%B0%B8", "era": "2017", - Network accessline 131
"namuwiki_url": "https://namu.wiki/w/%EC%9B%8C%EB%9D%BC%EB%B0%B8", - Network accessline 131
"namuwiki_url": "https://namu.wiki/w/%EC%9B%8C%EB%9D%BC%EB%B0%B8", - Network accessline 145
"존버는 승리한다." ], "namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%B2%84", - Network accessline 145
"존버는 승리한다." ], "namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%B2%84", - Network accessline 146
], "namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%B2%84", "era": "2018", - Network accessline 146
], "namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%B2%84", "era": "2018", - Network accessline 147
"namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%B2%84", - Network accessline 147
"namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%B2%84", - Network accessline 161
"만반잘부 💕" ], "namuwiki_url": "https://namu.wiki/w/%EB%A7%8C%EB%B0%98%EC%9E%98%EB%B6%80", - Network accessline 161
"만반잘부 💕" ], "namuwiki_url": "https://namu.wiki/w/%EB%A7%8C%EB%B0%98%EC%9E%98%EB%B6%80", - Network accessline 162
], "namuwiki_url": "https://namu.wiki/w/%EB%A7%8C%EB%B0%98%EC%9E%98%EB%B6%80", "era": "2020", - Network accessline 162
], "namuwiki_url": "https://namu.wiki/w/%EB%A7%8C%EB%B0%98%EC%9E%98%EB%B6%80", "era": "2020", - Network accessline 163
"namuwiki_url": "https://namu.wiki/w/%EB%A7%8C%EB%B0%98%EC%9E%98%EB%B6%80", - Network accessline 163
"namuwiki_url": "https://namu.wiki/w/%EB%A7%8C%EB%B0%98%EC%9E%98%EB%B6%80", - Network accessline 177
"억텐 아니고 찐텐이야." ], "namuwiki_url": "https://namu.wiki/w/%EC%96%B5%ED%85%90", - Network accessline 177
"억텐 아니고 찐텐이야." ], "namuwiki_url": "https://namu.wiki/w/%EC%96%B5%ED%85%90", - Network accessline 178
], "namuwiki_url": "https://namu.wiki/w/%EC%96%B5%ED%85%90", "era": "2021", - Network accessline 178
], "namuwiki_url": "https://namu.wiki/w/%EC%96%B5%ED%85%90", "era": "2021", - Network accessline 179
"namuwiki_url": "https://namu.wiki/w/%EC%96%B5%ED%85%90", - Network accessline 179
"namuwiki_url": "https://namu.wiki/w/%EC%96%B5%ED%85%90", - Network accessline 193
"찐텐 터지는 순간" ], "namuwiki_url": "https://namu.wiki/w/%EC%B0%90%ED%85%90", - Network accessline 193
"찐텐 터지는 순간" ], "namuwiki_url": "https://namu.wiki/w/%EC%B0%90%ED%85%90", - Network accessline 194
], "namuwiki_url": "https://namu.wiki/w/%EC%B0%90%ED%85%90", "era": "2021", - Network accessline 194
], "namuwiki_url": "https://namu.wiki/w/%EC%B0%90%ED%85%90", "era": "2021", - Network accessline 195
"namuwiki_url": "https://namu.wiki/w/%EC%B0%90%ED%85%90", - Network accessline 195
"namuwiki_url": "https://namu.wiki/w/%EC%B0%90%ED%85%90", - Network accessline 209
"이 주식 손절할까 고민 중." ], "namuwiki_url": "https://namu.wiki/w/%EC%86%90%EC%A0%88", - Network accessline 209
"이 주식 손절할까 고민 중." ], "namuwiki_url": "https://namu.wiki/w/%EC%86%90%EC%A0%88", - Network accessline 210
], "namuwiki_url": "https://namu.wiki/w/%EC%86%90%EC%A0%88", "era": "2018", - Network accessline 210
], "namuwiki_url": "https://namu.wiki/w/%EC%86%90%EC%A0%88", "era": "2018", - Network accessline 211
"namuwiki_url": "https://namu.wiki/w/%EC%86%90%EC%A0%88", - Network accessline 211
"namuwiki_url": "https://namu.wiki/w/%EC%86%90%EC%A0%88", - Network accessline 225
"입덕 축하해요!" ], "namuwiki_url": "https://namu.wiki/w/%EC%9E%85%EB%8D%95", - Network accessline 225
"입덕 축하해요!" ], "namuwiki_url": "https://namu.wiki/w/%EC%9E%85%EB%8D%95", - Network accessline 226
], "namuwiki_url": "https://namu.wiki/w/%EC%9E%85%EB%8D%95", "era": "2015", - Network accessline 226
], "namuwiki_url": "https://namu.wiki/w/%EC%9E%85%EB%8D%95", "era": "2015", - Network accessline 227
"namuwiki_url": "https://namu.wiki/w/%EC%9E%85%EB%8D%95", - Network accessline 227
"namuwiki_url": "https://namu.wiki/w/%EC%9E%85%EB%8D%95", - Network accessline 241
"덕질은 돈이 참 많이 드는 취미야." ], "namuwiki_url": "https://namu.wiki/w/%EB%8D%95%EC%A7%88", - Network accessline 241
"덕질은 돈이 참 많이 드는 취미야." ], "namuwiki_url": "https://namu.wiki/w/%EB%8D%95%EC%A7%88", - Network accessline 242
], "namuwiki_url": "https://namu.wiki/w/%EB%8D%95%EC%A7%88", "era": "2015", - Network accessline 242
], "namuwiki_url": "https://namu.wiki/w/%EB%8D%95%EC%A7%88", "era": "2015", - Network accessline 243
"namuwiki_url": "https://namu.wiki/w/%EB%8D%95%EC%A7%88", - Network accessline 243
"namuwiki_url": "https://namu.wiki/w/%EB%8D%95%EC%A7%88", - Network accessline 257
"한겨울에도 아아 시키는 한국인." ], "namuwiki_url": "https://namu.wiki/w/%EC%95%84%EC%9D%B4%EC%8A%A4%20%EC%95%84%EB%A9%94%EB%A6%AC%EC%B9%B4%EB%85%B8", - Network accessline 257
"한겨울에도 아아 시키는 한국인." ], "namuwiki_url": "https://namu.wiki/w/%EC%95%84%EC%9D%B4%EC%8A%A4%20%EC%95%84%EB%A9%94%EB%A6%AC%EC%B9%B4%EB%85%B8", - Network accessline 258
], "namuwiki_url": "https://namu.wiki/w/%EC%95%84%EC%9D%B4%EC%8A%A4%20%EC%95%84%EB%A9%94%EB%A6%AC%EC%B9%B4%EB%85%B8", "era": "2015", - Network accessline 258
], "namuwiki_url": "https://namu.wiki/w/%EC%95%84%EC%9D%B4%EC%8A%A4%20%EC%95%84%EB%A9%94%EB%A6%AC%EC%B9%B4%EB%85%B8", "era": "2015", - Network accessline 259
"namuwiki_url": "https://namu.wiki/w/%EC%95%84%EC%9D%B4%EC%8A%A4%20%EC%95%84%EB%A9%94%EB%A6%AC%EC%B9%B4%EB%85%B8", - Network accessline 259
"namuwiki_url": "https://namu.wiki/w/%EC%95%84%EC%9D%B4%EC%8A%A4%20%EC%95%84%EB%A9%94%EB%A6%AC%EC%B9%B4%EB%85%B8", - Network accessline 273
"존맛탱! 다시 올 거야." ], "namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%A7%9B%ED%83%B1", - Network accessline 273
"존맛탱! 다시 올 거야." ], "namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%A7%9B%ED%83%B1", - Network accessline 274
], "namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%A7%9B%ED%83%B1", "era": "2015", - Network accessline 274
], "namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%A7%9B%ED%83%B1", "era": "2015", - Network accessline 275
"namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%A7%9B%ED%83%B1", - Network accessline 275
"namuwiki_url": "https://namu.wiki/w/%EC%A1%B4%EB%A7%9B%ED%83%B1", - Network accessline 289
"오늘 하루 진짜 노잼." ], "namuwiki_url": "https://namu.wiki/w/%EB%85%B8%EC%9E%BC", - Network accessline 289
"오늘 하루 진짜 노잼." ], "namuwiki_url": "https://namu.wiki/w/%EB%85%B8%EC%9E%BC", - Network accessline 290
], "namuwiki_url": "https://namu.wiki/w/%EB%85%B8%EC%9E%BC", "era": "2015", - Network accessline 290
], "namuwiki_url": "https://namu.wiki/w/%EB%85%B8%EC%9E%BC", "era": "2015", - Network accessline 291
"namuwiki_url": "https://namu.wiki/w/%EB%85%B8%EC%9E%BC", - Network accessline 291
"namuwiki_url": "https://namu.wiki/w/%EB%85%B8%EC%9E%BC", - Network accessline 305
"이거 생각보다 꿀잼이네." ], "namuwiki_url": "https://namu.wiki/w/%EA%BF%80%EC%9E%BC", - Network accessline 305
"이거 생각보다 꿀잼이네." ], "namuwiki_url": "https://namu.wiki/w/%EA%BF%80%EC%9E%BC", - Network accessline 306
], "namuwiki_url": "https://namu.wiki/w/%EA%BF%80%EC%9E%BC", "era": "2015", - Network accessline 306
], "namuwiki_url": "https://namu.wiki/w/%EA%BF%80%EC%9E%BC", "era": "2015", - Network accessline 307
"namuwiki_url": "https://namu.wiki/w/%EA%BF%80%EC%9E%BC", - Network accessline 307
"namuwiki_url": "https://namu.wiki/w/%EA%BF%80%EC%9E%BC", - Network accessline 321
"스불재지만 어쩌겠어." ], "namuwiki_url": "https://namu.wiki/w/%EC%8A%A4%EB%B6%88%EC%9E%AC", - Network accessline 321
"스불재지만 어쩌겠어." ], "namuwiki_url": "https://namu.wiki/w/%EC%8A%A4%EB%B6%88%EC%9E%AC", - Network accessline 322
], "namuwiki_url": "https://namu.wiki/w/%EC%8A%A4%EB%B6%88%EC%9E%AC", "era": "2019", - Network accessline 322
], "namuwiki_url": "https://namu.wiki/w/%EC%8A%A4%EB%B6%88%EC%9E%AC", "era": "2019", - Network accessline 323
"namuwiki_url": "https://namu.wiki/w/%EC%8A%A4%EB%B6%88%EC%9E%AC", - Network accessline 323
"namuwiki_url": "https://namu.wiki/w/%EC%8A%A4%EB%B6%88%EC%9E%AC", - Network accessline 337
"너 그러면 나 마상 입어." ], "namuwiki_url": "https://namu.wiki/w/%EB%A7%88%EC%83%81", - Network accessline 337
"너 그러면 나 마상 입어." ], "namuwiki_url": "https://namu.wiki/w/%EB%A7%88%EC%83%81", - Network accessline 338
], "namuwiki_url": "https://namu.wiki/w/%EB%A7%88%EC%83%81", "era": "2020", - Network accessline 338
], "namuwiki_url": "https://namu.wiki/w/%EB%A7%88%EC%83%81", "era": "2020", - Network accessline 339
"namuwiki_url": "https://namu.wiki/w/%EB%A7%88%EC%83%81", - Network accessline 339
"namuwiki_url": "https://namu.wiki/w/%EB%A7%88%EC%83%81", - Network accessline 353
"이것도 럭키비키야." ], "namuwiki_url": "https://namu.wiki/w/%EB%9F%AD%ED%82%A4%EB%B9%84%ED%82%A4", - Network accessline 353
"이것도 럭키비키야." ], "namuwiki_url": "https://namu.wiki/w/%EB%9F%AD%ED%82%A4%EB%B9%84%ED%82%A4", - Network accessline 354
], "namuwiki_url": "https://namu.wiki/w/%EB%9F%AD%ED%82%A4%EB%B9%84%ED%82%A4", "era": "2024", - Network accessline 354
], "namuwiki_url": "https://namu.wiki/w/%EB%9F%AD%ED%82%A4%EB%B9%84%ED%82%A4", "era": "2024", - Network accessline 355
"namuwiki_url": "https://namu.wiki/w/%EB%9F%AD%ED%82%A4%EB%B9%84%ED%82%A4", - Network accessline 355
"namuwiki_url": "https://namu.wiki/w/%EB%9F%AD%ED%82%A4%EB%B9%84%ED%82%A4", - Network accessline 369
"스스로 꼰대가 되지 않기 위해 노력 중." ], "namuwiki_url": "https://namu.wiki/w/%EA%BC%B0%EB%8C%80", - Network accessline 369
"스스로 꼰대가 되지 않기 위해 노력 중." ], "namuwiki_url": "https://namu.wiki/w/%EA%BC%B0%EB%8C%80", - Network accessline 370
], "namuwiki_url": "https://namu.wiki/w/%EA%BC%B0%EB%8C%80", "era": "2015", - Network accessline 370
], "namuwiki_url": "https://namu.wiki/w/%EA%BC%B0%EB%8C%80", "era": "2015", - Network accessline 371
"namuwiki_url": "https://namu.wiki/w/%EA%BC%B0%EB%8C%80", - Network accessline 371
"namuwiki_url": "https://namu.wiki/w/%EA%BC%B0%EB%8C%80", - Network accessline 385
"현생 리셋 시간." ], "namuwiki_url": "https://namu.wiki/w/%ED%98%84%EC%83%9D", - Network accessline 385
"현생 리셋 시간." ], "namuwiki_url": "https://namu.wiki/w/%ED%98%84%EC%83%9D", - Network accessline 386
], "namuwiki_url": "https://namu.wiki/w/%ED%98%84%EC%83%9D", "era": "2018", - Network accessline 386
], "namuwiki_url": "https://namu.wiki/w/%ED%98%84%EC%83%9D", "era": "2018", - Network accessline 387
"namuwiki_url": "https://namu.wiki/w/%ED%98%84%EC%83%9D", - Network accessline 387
"namuwiki_url": "https://namu.wiki/w/%ED%98%84%EC%83%9D", - Network accessline 401
"진짜 킹받는다 오늘." ], "namuwiki_url": "https://namu.wiki/w/%ED%82%B9%EB%B0%9B%EB%8B%A4", - Network accessline 401
"진짜 킹받는다 오늘." ], "namuwiki_url": "https://namu.wiki/w/%ED%82%B9%EB%B0%9B%EB%8B%A4", - Network accessline 402
], "namuwiki_url": "https://namu.wiki/w/%ED%82%B9%EB%B0%9B%EB%8B%A4", "era": "2021", - Network accessline 402
], "namuwiki_url": "https://namu.wiki/w/%ED%82%B9%EB%B0%9B%EB%8B%A4", "era": "2021", - Network accessline 403
"namuwiki_url": "https://namu.wiki/w/%ED%82%B9%EB%B0%9B%EB%8B%A4", - Network accessline 403
"namuwiki_url": "https://namu.wiki/w/%ED%82%B9%EB%B0%9B%EB%8B%A4", - Network accessline 417
"어쩔티비 저쩔티비." ], "namuwiki_url": "https://namu.wiki/w/%EC%96%B4%EC%A9%94%ED%8B%B0%EB%B9%84", - Network accessline 417
"어쩔티비 저쩔티비." ], "namuwiki_url": "https://namu.wiki/w/%EC%96%B4%EC%A9%94%ED%8B%B0%EB%B9%84", - Network accessline 418
], "namuwiki_url": "https://namu.wiki/w/%EC%96%B4%EC%A9%94%ED%8B%B0%EB%B9%84", "era": "2021", - Network accessline 418
], "namuwiki_url": "https://namu.wiki/w/%EC%96%B4%EC%A9%94%ED%8B%B0%EB%B9%84", "era": "2021", - Network accessline 419
"namuwiki_url": "https://namu.wiki/w/%EC%96%B4%EC%A9%94%ED%8B%B0%EB%B9%84", - Network accessline 419
"namuwiki_url": "https://namu.wiki/w/%EC%96%B4%EC%A9%94%ED%8B%B0%EB%B9%84", - Network accessline 433
"혼밥 하기 좋은 가게 추천해줘." ], "namuwiki_url": "https://namu.wiki/w/%ED%98%BC%EB%B0%A5", - Network accessline 433
"혼밥 하기 좋은 가게 추천해줘." ], "namuwiki_url": "https://namu.wiki/w/%ED%98%BC%EB%B0%A5", - Network accessline 434
], "namuwiki_url": "https://namu.wiki/w/%ED%98%BC%EB%B0%A5", "era": "2015", - Network accessline 434
], "namuwiki_url": "https://namu.wiki/w/%ED%98%BC%EB%B0%A5", "era": "2015", - Network accessline 435
"namuwiki_url": "https://namu.wiki/w/%ED%98%BC%EB%B0%A5", - Network accessline 435
"namuwiki_url": "https://namu.wiki/w/%ED%98%BC%EB%B0%A5", - Network accessline 449
"인싸템 하나 사볼까." ], "namuwiki_url": "https://namu.wiki/w/%EC%9D%B8%EC%8B%B8", - Network accessline 449
"인싸템 하나 사볼까." ], "namuwiki_url": "https://namu.wiki/w/%EC%9D%B8%EC%8B%B8", - Network accessline 450
], "namuwiki_url": "https://namu.wiki/w/%EC%9D%B8%EC%8B%B8", "era": "2017", - Network accessline 450
], "namuwiki_url": "https://namu.wiki/w/%EC%9D%B8%EC%8B%B8", "era": "2017", - Network accessline 451
"namuwiki_url": "https://namu.wiki/w/%EC%9D%B8%EC%8B%B8", - Network accessline 451
"namuwiki_url": "https://namu.wiki/w/%EC%9D%B8%EC%8B%B8", - Network accessline 465
"역대급 폭염." ], "namuwiki_url": "https://namu.wiki/w/%EC%97%AD%EB%8C%80%EA%B8%89", - Network accessline 465
"역대급 폭염." ], "namuwiki_url": "https://namu.wiki/w/%EC%97%AD%EB%8C%80%EA%B8%89", - Network accessline 466
], "namuwiki_url": "https://namu.wiki/w/%EC%97%AD%EB%8C%80%EA%B8%89", "era": "2015", - Network accessline 466
], "namuwiki_url": "https://namu.wiki/w/%EC%97%AD%EB%8C%80%EA%B8%89", "era": "2015", - Network accessline 467
"namuwiki_url": "https://namu.wiki/w/%EC%97%AD%EB%8C%80%EA%B8%89", - Network accessline 467
"namuwiki_url": "https://namu.wiki/w/%EC%97%AD%EB%8C%80%EA%B8%89",
korean-slang-writing/instruction.md
- Network accessline 7
- 스킬은 **데이터와 조회 도구**만 제공한다: 큐레이션된 시드 인덱스 검색 + 나무위키 best-effort 요약. - 실제 문장 작성은 **에이전트(LLM)** 가 스킬이 돌려준 후보 중에서 사용자 의도에 맞는 표현을 골라 한다. - 시드 인덱스 출처는 [나무위키 분류:유행어](https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4) 를 기준으로 수작업 큐레 - Network accessline 7
- 스킬은 **데이터와 조회 도구**만 제공한다: 큐레이션된 시드 인덱스 검색 + 나무위키 best-effort 요약. - 실제 문장 작성은 **에이전트(LLM)** 가 스킬이 돌려준 후보 중에서 사용자 의도에 맞는 표현을 골라 한다. - 시드 인덱스 출처는 [나무위키 분류:유행어](https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4) 를 기준으로 수작업 큐레 - Network accessline 8
- 실제 문장 작성은 **에이전트(LLM)** 가 스킬이 돌려준 후보 중에서 사용자 의도에 맞는 표현을 골라 한다. - 시드 인덱스 출처는 [나무위키 분류:유행어](https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4) 를 기준으로 수작업 큐레이션한다. - risky 수준의 혐오·차별·집단 조롱 가능성이 있는 표현은 시드에 넣지 않는다. - Network accessline 8
- 실제 문장 작성은 **에이전트(LLM)** 가 스킬이 돌려준 후보 중에서 사용자 의도에 맞는 표현을 골라 한다. - 시드 인덱스 출처는 [나무위키 분류:유행어](https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4) 를 기준으로 수작업 큐레이션한다. - risky 수준의 혐오·차별·집단 조롱 가능성이 있는 표현은 시드에 넣지 않는다. - Network accessline 9
- 시드 인덱스 출처는 [나무위키 분류:유행어](https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4) 를 기준으로 수작업 큐레이션한다. - Network accessline 9
- 시드 인덱스 출처는 [나무위키 분류:유행어](https://namu.wiki/w/%EB%B6%84%EB%A5%98:%EC%9C%A0%ED%96%89%EC%96%B4) 를 기준으로 수작업 큐레이션한다. - Network accessline 67
"safety": "safe", "example_usage": ["힘들지만 중꺾마 정신으로 이겨내자!"], "namuwiki_url": "https://namu.wiki/w/...", - Network accessline 67
"safety": "safe", "example_usage": ["힘들지만 중꺾마 정신으로 이겨내자!"], "namuwiki_url": "https://namu.wiki/w/...", - Network accessline 68
"example_usage": ["힘들지만 중꺾마 정신으로 이겨내자!"], "namuwiki_url": "https://namu.wiki/w/...", "era": "2022", - Network accessline 68
"example_usage": ["힘들지만 중꺾마 정신으로 이겨내자!"], "namuwiki_url": "https://namu.wiki/w/...", "era": "2022", - Network accessline 69
"namuwiki_url": "https://namu.wiki/w/...", - Network accessline 69
"namuwiki_url": "https://namu.wiki/w/...", - Network accessline 87
"url": "https://namu.wiki/w/%EC%A4%91%EA%BA%BE%EB%A7%88", - Network accessline 87
"url": "https://namu.wiki/w/%EC%A4%91%EA%BA%BE%EB%A7%88", - Network accessline 131
npx -y @nomadamas/k-skill@0 exec korean-slang-writing scripts/slang_lookup.py -- "중꺾마" --format json 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-le - Network accessline 131
npx -y @nomadamas/k-skill@0 exec korean-slang-writing scripts/slang_lookup.py -- "중꺾마" --format json 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-le - Network accessline 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 - Network accessline 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
korean-slang-writing/scripts/_slang_http.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 9
NAMUWIKI_BASE = "https://namu.wiki/w/" - Network accessline 9
NAMUWIKI_BASE = "https://namu.wiki/w/" - Network accessline 71
if not is_namuwiki_url(url): raise ValueError(f"not a namuwiki URL: {url}") request = urllib.request.Request(url, headers=browser_headers()) - Network accessline 71
if not is_namuwiki_url(url): raise ValueError(f"not a namuwiki URL: {url}") request = urllib.request.Request(url, headers=browser_headers()) - Network accessline 72
raise ValueError(f"not a namuwiki URL: {url}") request = urllib.request.Request(url, headers=browser_headers()) try: - Network accessline 72
raise ValueError(f"not a namuwiki URL: {url}") request = urllib.request.Request(url, headers=browser_headers()) try: - Network accessline 73
request = urllib.request.Request(url, headers=browser_headers()) - Network accessline 73
request = urllib.request.Request(url, headers=browser_headers()) - Network accessline 74
try: with urllib.request.urlopen(request, timeout=timeout, context=_get_ssl_context()) as response: body = response.read() - Network accessline 74
try: with urllib.request.urlopen(request, timeout=timeout, context=_get_ssl_context()) as response: body = response.read() - Network accessline 75
with urllib.request.urlopen(request, timeout=timeout, context=_get_ssl_context()) as response: - Network accessline 75
with urllib.request.urlopen(request, timeout=timeout, context=_get_ssl_context()) as response:
korean-slang-writing/scripts/slang_lookup.py
korean-slang-writing/scripts/slang_search.py
korean-spell-check/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-spell-check/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-spell-check/instruction.md.
korean-spell-check/instruction.md
- Network accessline 7
- 기본 진입점은 공개 웹 표면 `https://nara-speller.co.kr/speller/` 이다. - Network accessline 7
- 기본 진입점은 공개 웹 표면 `https://nara-speller.co.kr/speller/` 이다. - Network accessline 8
- 자동화가 필요하면 이전 버전 폼 POST 표면 `https://nara-speller.co.kr/old_speller/results` 를 **낮은 요청량으로만** 사용한다. - Network accessline 8
- 자동화가 필요하면 이전 버전 폼 POST 표면 `https://nara-speller.co.kr/old_speller/results` 를 **낮은 요청량으로만** 사용한다. - Network accessline 14
- `https://nara-speller.co.kr/old_speller/` 는 **비상업적 용도** 안내와 **개인이나 학생만 무료**라는 문구를 명시한다. - Network accessline 14
- `https://nara-speller.co.kr/old_speller/` 는 **비상업적 용도** 안내와 **개인이나 학생만 무료**라는 문구를 명시한다. - Network accessline 15
- `https://nara-speller.co.kr/robots.txt` 는 `/` 를 허용하지만 `/test_speller/` 는 금지한다. - Network accessline 15
- `https://nara-speller.co.kr/robots.txt` 는 `/` 를 허용하지만 `/test_speller/` 는 금지한다. - Network accessline 40
- 현재 공개 사이트는 `https://nara-speller.co.kr/speller/` 로 제공된다. - 이 환경에서 일반 shell/Node fetch는 Cloudflare 때문에 `403` 이 나올 수 있었다. - 같은 환경에서도 **브라우저형 User-Agent + Python stdlib `urllib` POST** 는 `old_speller/results` 에서 실제 검사 결과 HTML을 반환했다. - Network accessline 40
- 현재 공개 사이트는 `https://nara-speller.co.kr/speller/` 로 제공된다. - 이 환경에서 일반 shell/Node fetch는 Cloudflare 때문에 `403` 이 나올 수 있었다. - 같은 환경에서도 **브라우저형 User-Agent + Python stdlib `urllib` POST** 는 `old_speller/results` 에서 실제 검사 결과 HTML을 반환했다. - Network accessline 102
- guide: `https://nara-speller.co.kr/guide/` - Network accessline 102
- guide: `https://nara-speller.co.kr/guide/` - Network accessline 103
- main UI: `https://nara-speller.co.kr/speller/` - Network accessline 103
- main UI: `https://nara-speller.co.kr/speller/` - Network accessline 104
- old UI / form post: `https://nara-speller.co.kr/old_speller/`, `https://nara-speller.co.kr/old_speller/results` - Network accessline 104
- old UI / form post: `https://nara-speller.co.kr/old_speller/`, `https://nara-speller.co.kr/old_speller/results` - Network accessline 105
- robots: `https://nara-speller.co.kr/robots.txt` - Network accessline 105
- robots: `https://nara-speller.co.kr/robots.txt`
korean-spell-check/scripts/korean_spell_check.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 16
DEFAULT_RESULTS_URL = "https://nara-speller.co.kr/old_speller/results" - Network accessline 16
DEFAULT_RESULTS_URL = "https://nara-speller.co.kr/old_speller/results" - Network accessline 29
"Accept-Language": "ko,en-US;q=0.9,en;q=0.8", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Origin": "https://nara-speller.co.kr", - Network accessline 29
"Accept-Language": "ko,en-US;q=0.9,en;q=0.8", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Origin": "https://nara-speller.co.kr", - Network accessline 30
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Origin": "https://nara-speller.co.kr", "Referer": "https://nara-speller.co.kr/old_speller/", - Network accessline 30
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Origin": "https://nara-speller.co.kr", "Referer": "https://nara-speller.co.kr/old_speller/", - Network accessline 31
"Origin": "https://nara-speller.co.kr", - Network accessline 31
"Origin": "https://nara-speller.co.kr", - Network accessline 32
"Referer": "https://nara-speller.co.kr/old_speller/", - Network accessline 32
"Referer": "https://nara-speller.co.kr/old_speller/", - Network accessline 201
request = urllib.request.Request( - Network accessline 201
request = urllib.request.Request( - Network accessline 208
try: with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 208
try: with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 209
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 209
with urllib.request.urlopen(request, timeout=timeout) as response:
korean-stock-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-stock-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-stock-search/instruction.md.
korean-stock-search/instruction.md
- Network accessline 5
기본적으로 `https://k-skill-proxy.nomadamas.org/v1/korean-stock/...` 로 요청해서 KRX 상장 종목 검색, 종목 기본정보, 일별 시세를 조회한다. - Network accessline 5
기본적으로 `https://k-skill-proxy.nomadamas.org/v1/korean-stock/...` 로 요청해서 KRX 상장 종목 검색, 종목 기본정보, 일별 시세를 조회한다. - Network accessline 7
[Credential-related source omitted] - Network accessline 7
[Credential-related source omitted] - Access to secretsline 7
[Credential-related source omitted] - Access to secretsline 7
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 39
`KSKILL_PROXY_BASE_URL` 환경변수가 있으면 그 값을 사용하고, 없으면 기본 경로 `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 39
`KSKILL_PROXY_BASE_URL` 환경변수가 있으면 그 값을 사용하고, 없으면 기본 경로 `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 66
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-stock/search' \ - Network accessline 66
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-stock/search' \ - Network accessline 74
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-stock/base-info' \ - Network accessline 74
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-stock/base-info' \ - Network accessline 83
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-stock/trade-info' \ - Network accessline 83
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/korean-stock/trade-info' \ - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 187
[Credential-related source omitted] - Access to secretsline 187
[Credential-related source omitted] - Network accessline 192
- 원본 참고: `https://github.com/jjlabsio/korea-stock-mcp` - Network accessline 192
- 원본 참고: `https://github.com/jjlabsio/korea-stock-mcp` - Network accessline 193
- 공식 데이터 출처: KRX Open API (`https://openapi.krx.co.kr/contents/OPP/MAIN/main/index.cmd`) - Network accessline 193
- 공식 데이터 출처: KRX Open API (`https://openapi.krx.co.kr/contents/OPP/MAIN/main/index.cmd`)
korean-stock-search/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 시장데이터의 대량 재배포나 계약·quota 위반을 허용하지 않습니다. [저작권법 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 시장데이터의 대량 재배포나 계약·quota 위반을 허용하지 않습니다. [저작권법
korean-stock-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 기능 또는 적용 대상을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우를 구별했습니다. 실제 표시 태양과 거래계 인식에 따라 결론이 달라질 수 있으므로 평문으로 필요한 범위에서만 사용하고 로고·공식·제휴·후원·인증 표현을 사용하 - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 기능 또는 적용 대상을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우를 구별했습니다. 실제 표시 태양과 거래계 인식에 따라 결론이 달라질 수 있으므로 평문으로 필요한 범위에서만 사용하고 로고·공식·제휴·후원·인증 표현을 사용하
korean-transit-route/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-transit-route/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/korean-transit-route/instruction.md.
korean-transit-route/instruction.md
- Network accessline 11
[Credential-related source omitted] - Network accessline 11
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Network accessline 12
- ODsay Server 키는 호출 IP 화이트리스트 등록 필수. 발급은 https://lab.odsay.com - Network accessline 12
- ODsay Server 키는 호출 IP 화이트리스트 등록 필수. 발급은 https://lab.odsay.com - Access to secretsline 13
[Credential-related source omitted] - Access to secretsline 13
[Credential-related source omitted] - Network accessline 23
1. `https://k-skill-proxy.nomadamas.org/v1/kakao-local/geocode?q=<주소/장소명>` - Network accessline 23
1. `https://k-skill-proxy.nomadamas.org/v1/kakao-local/geocode?q=<주소/장소명>` - Network accessline 29
import os, urllib.parse, urllib.request, json PROXY=os.environ.get('KSKILL_PROXY_BASE_URL','https://k-skill-proxy.nomadamas.org').rstrip('/') - Network accessline 29
import os, urllib.parse, urllib.request, json PROXY=os.environ.get('KSKILL_PROXY_BASE_URL','https://k-skill-proxy.nomadamas.org').rstrip('/') - Network accessline 30
[Credential-related source omitted] - Network accessline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Network accessline 31
def geocode(q): url=PROXY+'/v1/kakao-local/geocode?q='+urllib.parse.quote(q) with urllib.request.urlopen(urllib.request.Request(url,headers={'user-agent':'k-skill/korean-transit-route'}),timeout=10) as resp: - Network accessline 31
def geocode(q): url=PROXY+'/v1/kakao-local/geocode?q='+urllib.parse.quote(q) with urllib.request.urlopen(urllib.request.Request(url,headers={'user-agent':'k-skill/korean-transit-route'}),timeout=10) as resp: - Network accessline 32
url=PROXY+'/v1/kakao-local/geocode?q='+urllib.parse.quote(q) with urllib.request.urlopen(urllib.request.Request(url,headers={'user-agent':'k-skill/korean-transit-route'}),timeout=10) as resp: d=json.loads(resp.read()) - Network accessline 32
url=PROXY+'/v1/kakao-local/geocode?q='+urllib.parse.quote(q) with urllib.request.urlopen(urllib.request.Request(url,headers={'user-agent':'k-skill/korean-transit-route'}),timeout=10) as resp: d=json.loads(resp.read()) - Network accessline 33
with urllib.request.urlopen(urllib.request.Request(url,headers={'user-agent':'k-skill/korean-transit-route'}),timeout=10) as resp: - Network accessline 33
with urllib.request.urlopen(urllib.request.Request(url,headers={'user-agent':'k-skill/korean-transit-route'}),timeout=10) as resp: - Network accessline 46
[Credential-related source omitted] - Network accessline 46
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Network accessline 48
[Credential-related source omitted] - Network accessline 48
[Credential-related source omitted] - Network accessline 92
[Credential-related source omitted] - Network accessline 92
[Credential-related source omitted]
korean-transit-route/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아니라고 볼 수 있는 사정을 제시했지만, 크롤링의 일반적 허용을 뜻하지 않습니다. [저작권법 제 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아니라고 볼 수 있는 사정을 제시했지만, 크롤링의 일반적 허용을 뜻하지 않습니다. [저작권법 제
korean-transit-route/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
kosis-stats/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kosis-stats/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kosis-stats/instruction.md.
kosis-stats/instruction.md
- Network accessline 5
국가데이터처(구 통계청)가 운영하는 KOSIS(국가통계포털) Open API `https://kosis.kr/openapi/` 로 한국 공식 통계 자료를 조회 자동화한다. - Network accessline 5
국가데이터처(구 통계청)가 운영하는 KOSIS(국가통계포털) Open API `https://kosis.kr/openapi/` 로 한국 공식 통계 자료를 조회 자동화한다. - Network accessline 38
- Python 3.9+ (stdlib only, 외부 패키지 없음) - 일반 `search`/`meta`/`data`/`list`/`explain`/`indicator`: `k-skill-proxy`의 KOSIS route가 있는 hosted/self-host 프록시에 접근 가능할 것 - `bigdata` 또는 `--direct`: KOSIS Open API 인증키 (무료, https://kosis.kr/openapi/ 에서 - Network accessline 38
- Python 3.9+ (stdlib only, 외부 패키지 없음) - 일반 `search`/`meta`/`data`/`list`/`explain`/`indicator`: `k-skill-proxy`의 KOSIS route가 있는 hosted/self-host 프록시에 접근 가능할 것 - `bigdata` 또는 `--direct`: KOSIS Open API 인증키 (무료, https://kosis.kr/openapi/ 에서 - Network accessline 40
- `bigdata` 또는 `--direct`: KOSIS Open API 인증키 (무료, https://kosis.kr/openapi/ 에서 회원가입 후 활용신청) - Network accessline 40
- `bigdata` 또는 `--direct`: KOSIS Open API 인증키 (무료, https://kosis.kr/openapi/ 에서 회원가입 후 활용신청) - Network accessline 55
- 일반 `search`/`meta`/`data`/`list`/`explain`/`indicator`: 없음. 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 55
- 일반 `search`/`meta`/`data`/`list`/`explain`/`indicator`: 없음. 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Access to secretsline 198
[Credential-related source omitted] - Access to secretsline 198
[Credential-related source omitted] - Network accessline 209
- 비표준 JSON: KOSIS는 따옴표 없는 키를 가끔 반환한다. helper는 자동 보정한다. - 응답에 `UNIT_NM` 누락: 일부 표는 KOSIS 응답에 단위가 비어 있다. helper text 출력의 `[summary]` 라인에 `unit=(KOSIS 응답에 UNIT_NM 미포함)` 으로 명시되며, 단위는 `meta` 응답이나 KOSIS 웹 화면에서 별도 확인한다. - HTTPS 전용 (2026-03-05 이후): - Network accessline 209
- 비표준 JSON: KOSIS는 따옴표 없는 키를 가끔 반환한다. helper는 자동 보정한다. - 응답에 `UNIT_NM` 누락: 일부 표는 KOSIS 응답에 단위가 비어 있다. helper text 출력의 `[summary]` 라인에 `unit=(KOSIS 응답에 UNIT_NM 미포함)` 으로 명시되며, 단위는 `meta` 응답이나 KOSIS 웹 화면에서 별도 확인한다. - HTTPS 전용 (2026-03-05 이후): - Network accessline 211
- HTTPS 전용 (2026-03-05 이후): URL은 항상 `https://`. HTTP 요청은 차단된다. - Network accessline 211
- HTTPS 전용 (2026-03-05 이후): URL은 항상 `https://`. HTTP 요청은 차단된다. - Access to secretsline 233
[Credential-related source omitted] - Access to secretsline 233
[Credential-related source omitted]
kosis-stats/references/kosis-openapi-guide.md
- Network accessline 3
이 문서는 **국가데이터처**(구 통계청)가 운영하는 **KOSIS(국가통계포털, https://kosis.kr)** Open API의 인증키 발급 절차, 호출 한도, 주요 endpoint 사용법, 응답 포맷, 에러 코드를 한국어로 정리한 reference이다. 영문 명칭은 기존 KOSIS / Statistics Korea 그대로 사용된다. - Network accessline 3
이 문서는 **국가데이터처**(구 통계청)가 운영하는 **KOSIS(국가통계포털, https://kosis.kr)** Open API의 인증키 발급 절차, 호출 한도, 주요 endpoint 사용법, 응답 포맷, 에러 코드를 한국어로 정리한 reference이다. 영문 명칭은 기존 KOSIS / Statistics Korea 그대로 사용된다. - Network accessline 7
- KOSIS Open API 공식 진입: https://kosis.kr/openapi/ - Network accessline 7
- KOSIS Open API 공식 진입: https://kosis.kr/openapi/ - Network accessline 19
1. **KOSIS 회원가입** — https://kosis.kr/ 우측 상단 "회원가입" - Network accessline 19
1. **KOSIS 회원가입** — https://kosis.kr/ 우측 상단 "회원가입" - Network accessline 20
2. **활용신청** — https://kosis.kr/openapi/serviceUse/serviceUseUnityReg_01Detail.do - Network accessline 20
2. **활용신청** — https://kosis.kr/openapi/serviceUse/serviceUseUnityReg_01Detail.do - Network accessline 21
- 활용 목적, 호출 빈도, 사용 서비스 종류를 입력한다 - 신청 후 인증키가 즉시 발급된다 (관리자 승인 불필요) 3. **인증키 확인** — https://kosis.kr/openapi/serviceUse/myMain_01List.do - Network accessline 21
- 활용 목적, 호출 빈도, 사용 서비스 종류를 입력한다 - 신청 후 인증키가 즉시 발급된다 (관리자 승인 불필요) 3. **인증키 확인** — https://kosis.kr/openapi/serviceUse/myMain_01List.do - Network accessline 22
- 신청 후 인증키가 즉시 발급된다 (관리자 승인 불필요) 3. **인증키 확인** — https://kosis.kr/openapi/serviceUse/myMain_01List.do 4. **`KSKILL_KOSIS_API_KEY` 환경변수에 저장** - Network accessline 22
- 신청 후 인증키가 즉시 발급된다 (관리자 승인 불필요) 3. **인증키 확인** — https://kosis.kr/openapi/serviceUse/myMain_01List.do 4. **`KSKILL_KOSIS_API_KEY` 환경변수에 저장** - Network accessline 23
3. **인증키 확인** — https://kosis.kr/openapi/serviceUse/myMain_01List.do - Network accessline 23
3. **인증키 확인** — https://kosis.kr/openapi/serviceUse/myMain_01List.do - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Network accessline 37
| 대용량 SDMX | 40,000셀 초과 시 SDMX 불가 → XLS 사용 | `statisticsBigData.do` | | 대용량 XLS | 200,000셀 초과 시 XLS 불가 → 쿼리 분할 | | | 프로토콜 | **HTTPS 전용** (HTTP 차단) | 모든 URL은 `https://` | - Network accessline 37
| 대용량 SDMX | 40,000셀 초과 시 SDMX 불가 → XLS 사용 | `statisticsBigData.do` | | 대용량 XLS | 200,000셀 초과 시 XLS 불가 → 쿼리 분할 | | | 프로토콜 | **HTTPS 전용** (HTTP 차단) | 모든 URL은 `https://` | - Network accessline 39
| 프로토콜 | **HTTPS 전용** (HTTP 차단) | 모든 URL은 `https://` | - Network accessline 39
| 프로토콜 | **HTTPS 전용** (HTTP 차단) | 모든 URL은 `https://` | - Network accessline 52
GET https://kosis.kr/openapi/statisticsSearch.do - Network accessline 52
GET https://kosis.kr/openapi/statisticsSearch.do - Network accessline 68
GET https://kosis.kr/openapi/statisticsData.do - Network accessline 68
GET https://kosis.kr/openapi/statisticsData.do - Network accessline 84
GET https://kosis.kr/openapi/Param/statisticsParameterData.do - Network accessline 84
GET https://kosis.kr/openapi/Param/statisticsParameterData.do - Network accessline 113
GET https://kosis.kr/openapi/statisticsBigData.do - Network accessline 113
GET https://kosis.kr/openapi/statisticsBigData.do - Network accessline 154
[Credential-related source omitted] - Network accessline 154
[Credential-related source omitted] - Network accessline 155
[Credential-related source omitted] - Network accessline 155
[Credential-related source omitted] - Network accessline 156
| 11 | 인증키 기간만료 | auth | https://kosis.kr/openapi/ 에서 갱신 | - Network accessline 156
| 11 | 인증키 기간만료 | auth | https://kosis.kr/openapi/ 에서 갱신 |
kosis-stats/scripts/run_kosis_stats.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 29
SEARCH_URL = "https://kosis.kr/openapi/statisticsSearch.do" - Network accessline 29
SEARCH_URL = "https://kosis.kr/openapi/statisticsSearch.do" - Network accessline 30
META_URL = "https://kosis.kr/openapi/statisticsData.do" - Network accessline 30
META_URL = "https://kosis.kr/openapi/statisticsData.do" - Network accessline 31
DATA_URL = "https://kosis.kr/openapi/Param/statisticsParameterData.do" - Network accessline 31
DATA_URL = "https://kosis.kr/openapi/Param/statisticsParameterData.do" - Network accessline 32
BIGDATA_URL = "https://kosis.kr/openapi/statisticsBigData.do" - Network accessline 32
BIGDATA_URL = "https://kosis.kr/openapi/statisticsBigData.do" - Network accessline 33
LIST_URL = "https://kosis.kr/openapi/statisticsList.do" - Network accessline 33
LIST_URL = "https://kosis.kr/openapi/statisticsList.do" - Network accessline 34
EXPLAIN_URL = "https://kosis.kr/openapi/statisticsExplData.do" - Network accessline 34
EXPLAIN_URL = "https://kosis.kr/openapi/statisticsExplData.do" - Network accessline 35
INDICATOR_URL = "https://kosis.kr/openapi/pkNumberService.do" - Network accessline 35
INDICATOR_URL = "https://kosis.kr/openapi/pkNumberService.do" - Network accessline 37
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 37
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 56
ERROR_CODE_HINTS: dict[str, str] = { "10": "인증키가 누락되었습니다. KSKILL_KOSIS_API_KEY 환경변수를 확인하세요.", "11": "인증키가 만료되었거나 해당 endpoint에서 무효입니다. https://kosis.kr/openapi/ 에서 갱신하거나, bigdata는 본인이 등록한 userStatsId 인지 확인하세요.", - Network accessline 56
ERROR_CODE_HINTS: dict[str, str] = { "10": "인증키가 누락되었습니다. KSKILL_KOSIS_API_KEY 환경변수를 확인하세요.", "11": "인증키가 만료되었거나 해당 endpoint에서 무효입니다. https://kosis.kr/openapi/ 에서 갱신하거나, bigdata는 본인이 등록한 userStatsId 인지 확인하세요.", - Network accessline 57
[Credential-related source omitted] - Network accessline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 58
"11": "인증키가 만료되었거나 해당 endpoint에서 무효입니다. https://kosis.kr/openapi/ 에서 갱신하거나, bigdata는 본인이 등록한 userStatsId 인지 확인하세요.", - Network accessline 58
"11": "인증키가 만료되었거나 해당 endpoint에서 무효입니다. https://kosis.kr/openapi/ 에서 갱신하거나, bigdata는 본인이 등록한 userStatsId 인지 확인하세요.", - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 149
[Credential-related source omitted] - Access to secretsline 149
[Credential-related source omitted] - Network accessline 236
"--new-est-prd-cnt", type=int, help="Count of latest periods to fetch (alternative to start/end).", - Network accessline 236
"--new-est-prd-cnt", type=int, help="Count of latest periods to fetch (alternative to start/end).", - Network accessline 237
type=int, help="Count of latest periods to fetch (alternative to start/end).", ) - Network accessline 237
type=int, help="Count of latest periods to fetch (alternative to start/end).", ) - Network accessline 238
help="Count of latest periods to fetch (alternative to start/end).", - Network accessline 238
help="Count of latest periods to fetch (alternative to start/end).", - Access to secretsline 324
[Credential-related source omitted] - Access to secretsline 324
[Credential-related source omitted] - Access to secretsline 329
[Credential-related source omitted] - Access to secretsline 329
[Credential-related source omitted] - Access to secretsline 330
[Credential-related source omitted] - Access to secretsline 330
[Credential-related source omitted] - Access to secretsline 336
[Credential-related source omitted] - Access to secretsline 336
[Credential-related source omitted] - Network accessline 340
raise SystemExit( "missing required environment variable: KSKILL_KOSIS_API_KEY\n" "발급: https://kosis.kr/openapi/ (무료, KOSIS 회원가입 후 활용신청)\n" - Network accessline 340
raise SystemExit( "missing required environment variable: KSKILL_KOSIS_API_KEY\n" "발급: https://kosis.kr/openapi/ (무료, KOSIS 회원가입 후 활용신청)\n" - Network accessline 341
[Credential-related source omitted] - Network accessline 341
[Credential-related source omitted] - Access to secretsline 341
[Credential-related source omitted] - Access to secretsline 341
[Credential-related source omitted] - Network accessline 342
"발급: https://kosis.kr/openapi/ (무료, KOSIS 회원가입 후 활용신청)\n" - Network accessline 342
"발급: https://kosis.kr/openapi/ (무료, KOSIS 회원가입 후 활용신청)\n" - Access to secretsline 351
[Credential-related source omitted] - Access to secretsline 351
[Credential-related source omitted] - Access to secretsline 354
[Credential-related source omitted] - Access to secretsline 354
[Credential-related source omitted] - Access to secretsline 375
[Credential-related source omitted] - Access to secretsline 375
[Credential-related source omitted] - Access to secretsline 378
[Credential-related source omitted] - Access to secretsline 378
[Credential-related source omitted] - Access to secretsline 387
[Credential-related source omitted] - Access to secretsline 387
[Credential-related source omitted] - Access to secretsline 391
[Credential-related source omitted] - Access to secretsline 391
[Credential-related source omitted] - Access to secretsline 399
[Credential-related source omitted] - Access to secretsline 399
[Credential-related source omitted] - Access to secretsline 402
[Credential-related source omitted] - Access to secretsline 402
[Credential-related source omitted] - Access to secretsline 416
[Credential-related source omitted] - Access to secretsline 416
[Credential-related source omitted] - Access to secretsline 419
[Credential-related source omitted] - Access to secretsline 419
[Credential-related source omitted] - Access to secretsline 431
[Credential-related source omitted] - Access to secretsline 431
[Credential-related source omitted] - Access to secretsline 434
[Credential-related source omitted] - Access to secretsline 434
[Credential-related source omitted] - Access to secretsline 442
[Credential-related source omitted] - Access to secretsline 442
[Credential-related source omitted] - Access to secretsline 445
[Credential-related source omitted] - Access to secretsline 445
[Credential-related source omitted] - Access to secretsline 462
[Credential-related source omitted] - Access to secretsline 462
[Credential-related source omitted] - Access to secretsline 465
[Credential-related source omitted] - Access to secretsline 465
[Credential-related source omitted] - Network accessline 490
def fetch_text(url: str, timeout: int, *, via_proxy: bool = False) -> str: request = urllib.request.Request(url, headers={"User-Agent": "k-skill/kosis-stats"}) - Network accessline 490
def fetch_text(url: str, timeout: int, *, via_proxy: bool = False) -> str: request = urllib.request.Request(url, headers={"User-Agent": "k-skill/kosis-stats"}) - Network accessline 491
request = urllib.request.Request(url, headers={"User-Agent": "k-skill/kosis-stats"}) - Network accessline 491
request = urllib.request.Request(url, headers={"User-Agent": "k-skill/kosis-stats"}) - Network accessline 492
try: with urllib.request.urlopen(request, timeout=timeout) as response: charset = response.headers.get_content_charset() or "utf-8" - Network accessline 492
try: with urllib.request.urlopen(request, timeout=timeout) as response: charset = response.headers.get_content_charset() or "utf-8" - Network accessline 493
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 493
with urllib.request.urlopen(request, timeout=timeout) as response: - Access to secretsline 813
[Credential-related source omitted] - Access to secretsline 813
[Credential-related source omitted] - Access to secretsline 823
[Credential-related source omitted] - Access to secretsline 823
[Credential-related source omitted] - Access to secretsline 825
[Credential-related source omitted] - Access to secretsline 825
[Credential-related source omitted] - Access to secretsline 837
[Credential-related source omitted] - Access to secretsline 837
[Credential-related source omitted] - Access to secretsline 840
[Credential-related source omitted] - Access to secretsline 840
[Credential-related source omitted]
kosis-stats/tests/__init__.py
kosis-stats/tests/fixtures/search_response.json
- Network accessline 11
"STRT_PRD_DE": "2015", "END_PRD_DE": "2024", "TBL_VIEW_URL": "https://kosis.kr/statisticsList/example", - Network accessline 11
"STRT_PRD_DE": "2015", "END_PRD_DE": "2024", "TBL_VIEW_URL": "https://kosis.kr/statisticsList/example", - Network accessline 12
"END_PRD_DE": "2024", "TBL_VIEW_URL": "https://kosis.kr/statisticsList/example", "LINK_URL": "https://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1JC1501", - Network accessline 12
"END_PRD_DE": "2024", "TBL_VIEW_URL": "https://kosis.kr/statisticsList/example", "LINK_URL": "https://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1JC1501", - Network accessline 13
"TBL_VIEW_URL": "https://kosis.kr/statisticsList/example", - Network accessline 13
"TBL_VIEW_URL": "https://kosis.kr/statisticsList/example", - Network accessline 14
"LINK_URL": "https://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1JC1501", - Network accessline 14
"LINK_URL": "https://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1JC1501",
kosis-stats/tests/test_run_kosis_stats.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 105
[Credential-related source omitted] - Access to secretsline 105
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Access to secretsline 114
[Credential-related source omitted] - Access to secretsline 114
[Credential-related source omitted] - Access to secretsline 122
[Credential-related source omitted] - Access to secretsline 122
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Network accessline 128
self.assertEqual( helper.resolve_proxy_base_url(env={}), "https://k-skill-proxy.nomadamas.org" - Network accessline 128
self.assertEqual( helper.resolve_proxy_base_url(env={}), "https://k-skill-proxy.nomadamas.org" - Network accessline 129
helper.resolve_proxy_base_url(env={}), "https://k-skill-proxy.nomadamas.org" ) - Network accessline 129
helper.resolve_proxy_base_url(env={}), "https://k-skill-proxy.nomadamas.org" ) - Network accessline 130
"https://k-skill-proxy.nomadamas.org" - Network accessline 130
"https://k-skill-proxy.nomadamas.org" - Network accessline 133
def test_proxy_base_url_env_override_is_trimmed(self): self.assertEqual( helper.resolve_proxy_base_url(env={"KSKILL_PROXY_BASE_URL": "https://proxy.example/"}), - Network accessline 133
def test_proxy_base_url_env_override_is_trimmed(self): self.assertEqual( helper.resolve_proxy_base_url(env={"KSKILL_PROXY_BASE_URL": "https://proxy.example/"}), - Network accessline 134
self.assertEqual( helper.resolve_proxy_base_url(env={"KSKILL_PROXY_BASE_URL": "https://proxy.example/"}), "https://proxy.example" - Network accessline 134
self.assertEqual( helper.resolve_proxy_base_url(env={"KSKILL_PROXY_BASE_URL": "https://proxy.example/"}), "https://proxy.example" - Network accessline 135
helper.resolve_proxy_base_url(env={"KSKILL_PROXY_BASE_URL": "https://proxy.example/"}), - Network accessline 135
helper.resolve_proxy_base_url(env={"KSKILL_PROXY_BASE_URL": "https://proxy.example/"}), - Network accessline 136
"https://proxy.example" - Network accessline 136
"https://proxy.example" - Network accessline 200
def test_build_url_round_trip(self): url = helper.build_url("https://example.com/x", {"a": "1", "b": "한글"}) - Network accessline 200
def test_build_url_round_trip(self): url = helper.build_url("https://example.com/x", {"a": "1", "b": "한글"}) - Network accessline 201
url = helper.build_url("https://example.com/x", {"a": "1", "b": "한글"}) - Network accessline 201
url = helper.build_url("https://example.com/x", {"a": "1", "b": "한글"}) - Network accessline 202
self.assertTrue(url.startswith("https://example.com/x?")) - Network accessline 202
self.assertTrue(url.startswith("https://example.com/x?")) - Access to secretsline 280
[Credential-related source omitted] - Access to secretsline 280
[Credential-related source omitted] - Network accessline 326
def test_call_kosis_returns_payload_on_success(self): with mock.patch.object(helper, "fetch_text", return_value=read_fixture("search_response.json")): payload = helper.call_kosis("https://example", 5) - Network accessline 326
def test_call_kosis_returns_payload_on_success(self): with mock.patch.object(helper, "fetch_text", return_value=read_fixture("search_response.json")): payload = helper.call_kosis("https://example", 5) - Network accessline 327
with mock.patch.object(helper, "fetch_text", return_value=read_fixture("search_response.json")): payload = helper.call_kosis("https://example", 5) self.assertIsInstance(payload, list) - Network accessline 327
with mock.patch.object(helper, "fetch_text", return_value=read_fixture("search_response.json")): payload = helper.call_kosis("https://example", 5) self.assertIsInstance(payload, list) - Network accessline 328
payload = helper.call_kosis("https://example", 5) - Network accessline 328
payload = helper.call_kosis("https://example", 5) - Network accessline 334
with mock.patch.object(helper, "fetch_text", return_value=body): with self.assertRaises(helper.KosisError) as ctx: helper.call_kosis("https://example", 5) - Network accessline 334
with mock.patch.object(helper, "fetch_text", return_value=body): with self.assertRaises(helper.KosisError) as ctx: helper.call_kosis("https://example", 5) - Network accessline 335
with self.assertRaises(helper.KosisError) as ctx: helper.call_kosis("https://example", 5) self.assertEqual(ctx.exception.code, "31") - Network accessline 335
with self.assertRaises(helper.KosisError) as ctx: helper.call_kosis("https://example", 5) self.assertEqual(ctx.exception.code, "31") - Network accessline 336
helper.call_kosis("https://example", 5) - Network accessline 336
helper.call_kosis("https://example", 5) - Network accessline 339
def test_call_kosis_returns_text_for_non_json_format(self): with mock.patch.object(helper, "fetch_text", return_value="<sdmx/>"): payload = helper.call_kosis("https://example", 5, format_hint="sdmx") - Network accessline 339
def test_call_kosis_returns_text_for_non_json_format(self): with mock.patch.object(helper, "fetch_text", return_value="<sdmx/>"): payload = helper.call_kosis("https://example", 5, format_hint="sdmx") - Network accessline 340
with mock.patch.object(helper, "fetch_text", return_value="<sdmx/>"): payload = helper.call_kosis("https://example", 5, format_hint="sdmx") self.assertEqual(payload, "<sdmx/>") - Network accessline 340
with mock.patch.object(helper, "fetch_text", return_value="<sdmx/>"): payload = helper.call_kosis("https://example", 5, format_hint="sdmx") self.assertEqual(payload, "<sdmx/>") - Network accessline 341
payload = helper.call_kosis("https://example", 5, format_hint="sdmx") - Network accessline 341
payload = helper.call_kosis("https://example", 5, format_hint="sdmx") - Network accessline 346
with mock.patch.object(helper, "fetch_text", return_value=body): with self.assertRaises(helper.KosisError) as ctx: helper.call_kosis("https://example", 5, format_hint="csv") - Network accessline 346
with mock.patch.object(helper, "fetch_text", return_value=body): with self.assertRaises(helper.KosisError) as ctx: helper.call_kosis("https://example", 5, format_hint="csv") - Network accessline 347
with self.assertRaises(helper.KosisError) as ctx: helper.call_kosis("https://example", 5, format_hint="csv") self.assertEqual(ctx.exception.code, "11") - Network accessline 347
with self.assertRaises(helper.KosisError) as ctx: helper.call_kosis("https://example", 5, format_hint="csv") self.assertEqual(ctx.exception.code, "11") - Network accessline 348
helper.call_kosis("https://example", 5, format_hint="csv") - Network accessline 348
helper.call_kosis("https://example", 5, format_hint="csv") - Network accessline 352
body = "PRD_DE,DT\n2024,1\n" with mock.patch.object(helper, "fetch_text", return_value=body): payload = helper.call_kosis("https://example", 5, format_hint="csv") - Network accessline 352
body = "PRD_DE,DT\n2024,1\n" with mock.patch.object(helper, "fetch_text", return_value=body): payload = helper.call_kosis("https://example", 5, format_hint="csv") - Network accessline 353
with mock.patch.object(helper, "fetch_text", return_value=body): payload = helper.call_kosis("https://example", 5, format_hint="csv") self.assertEqual(payload, body) - Network accessline 353
with mock.patch.object(helper, "fetch_text", return_value=body): payload = helper.call_kosis("https://example", 5, format_hint="csv") self.assertEqual(payload, body) - Network accessline 354
payload = helper.call_kosis("https://example", 5, format_hint="csv") - Network accessline 354
payload = helper.call_kosis("https://example", 5, format_hint="csv") - Access to secretsline 485
[Credential-related source omitted] - Access to secretsline 485
[Credential-related source omitted] - Access to secretsline 498
[Credential-related source omitted] - Access to secretsline 498
[Credential-related source omitted] - Access to secretsline 556
[Credential-related source omitted] - Access to secretsline 556
[Credential-related source omitted] - Access to secretsline 562
[Credential-related source omitted] - Access to secretsline 562
[Credential-related source omitted]
kpic-drug-search/SKILL.md
- Network accessline 6
category: public-health locale: ko-KR source: https://github.com/antegral/kpic-mcp - Network accessline 6
category: public-health locale: ko-KR source: https://github.com/antegral/kpic-mcp - Network accessline 7
locale: ko-KR source: https://github.com/antegral/kpic-mcp --- - Network accessline 7
locale: ko-KR source: https://github.com/antegral/kpic-mcp --- - Network accessline 8
source: https://github.com/antegral/kpic-mcp - Network accessline 8
source: https://github.com/antegral/kpic-mcp - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kpic-drug-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kpic-drug-search/instruction.md.
kpic-drug-search/instruction.md
- Network accessline 5
약학정보원(KPIC) 공개 웹 정보를 조회합니다. 원본 [antegral/kpic-mcp](https://github.com/antegral/kpic-mcp)의 두 동작을 별도 MCP 서버 없이 번들 Node.js helper로 실행합니다. - Network accessline 5
약학정보원(KPIC) 공개 웹 정보를 조회합니다. 원본 [antegral/kpic-mcp](https://github.com/antegral/kpic-mcp)의 두 동작을 별도 MCP 서버 없이 번들 Node.js helper로 실행합니다. - Network accessline 65
2. 이름을 검색하고 제품명, 성분, 함량, 업체 등 응답에서 확인되는 정보로 후보를 구분합니다. 3. 후보의 `drug_code`를 사용해 상세를 조회합니다. 사용자가 코드를 이미 제공했다면 상세 조회부터 실행할 수 있습니다. 4. 요청한 항목을 실제 반환된 필드에 근거해 정리하고 조회 시각과 공식 상세 링크 `https://www.health.kr/drug/<drug_code>`를 함께 안내합니다. - Network accessline 65
2. 이름을 검색하고 제품명, 성분, 함량, 업체 등 응답에서 확인되는 정보로 후보를 구분합니다. 3. 후보의 `drug_code`를 사용해 상세를 조회합니다. 사용자가 코드를 이미 제공했다면 상세 조회부터 실행할 수 있습니다. 4. 요청한 항목을 실제 반환된 필드에 근거해 정리하고 조회 시각과 공식 상세 링크 `https://www.health.kr/drug/<drug_code>`를 함께 안내합니다. - Network accessline 66
3. 후보의 `drug_code`를 사용해 상세를 조회합니다. 사용자가 코드를 이미 제공했다면 상세 조회부터 실행할 수 있습니다. 4. 요청한 항목을 실제 반환된 필드에 근거해 정리하고 조회 시각과 공식 상세 링크 `https://www.health.kr/drug/<drug_code>`를 함께 안내합니다. 5. 여러 후보 중 제품을 특정할 근거가 부족하면 사용자에게 확인합니다. 미제공 필드나 빈 값을 추론해 채우지 않습니다. - Network accessline 66
3. 후보의 `drug_code`를 사용해 상세를 조회합니다. 사용자가 코드를 이미 제공했다면 상세 조회부터 실행할 수 있습니다. 4. 요청한 항목을 실제 반환된 필드에 근거해 정리하고 조회 시각과 공식 상세 링크 `https://www.health.kr/drug/<drug_code>`를 함께 안내합니다. 5. 여러 후보 중 제품을 특정할 근거가 부족하면 사용자에게 확인합니다. 미제공 필드나 빈 값을 추론해 채우지 않습니다. - Network accessline 67
4. 요청한 항목을 실제 반환된 필드에 근거해 정리하고 조회 시각과 공식 상세 링크 `https://www.health.kr/drug/<drug_code>`를 함께 안내합니다. - Network accessline 67
4. 요청한 항목을 실제 반환된 필드에 근거해 정리하고 조회 시각과 공식 상세 링크 `https://www.health.kr/drug/<drug_code>`를 함께 안내합니다. - Network accessline 86
- 공식 검색 페이지: `https://www.health.kr/searchResult` - Network accessline 86
- 공식 검색 페이지: `https://www.health.kr/searchResult` - Network accessline 87
- 공개 이름 검색 API: `GET https://www.health.kr/api/searchDrug?page=1&limit=5&drugName=<drugname>&total=1` - Network accessline 87
- 공개 이름 검색 API: `GET https://www.health.kr/api/searchDrug?page=1&limit=5&drugName=<drugname>&total=1` - Network accessline 88
- 상세 JSON: `GET https://health.kr/searchDrug/ajax/ajax_result_drug2.asp?drug_cd=<drugcode>` - Network accessline 88
- 상세 JSON: `GET https://health.kr/searchDrug/ajax/ajax_result_drug2.asp?drug_cd=<drugcode>` - Network accessline 89
- 공식 상세 페이지: `https://www.health.kr/drug/<drug_code>` - Network accessline 89
- 공식 상세 페이지: `https://www.health.kr/drug/<drug_code>` - Network accessline 103
원본은 [antegral/kpic-mcp](https://github.com/antegral/kpic-mcp)이며 MIT 라이선스 저작권 표시는 `Copyright (c) 2025 SeongUk Moon`입니다. 번들된 원본 라이선스는 다음 명령으로 읽습니다. - Network accessline 103
원본은 [antegral/kpic-mcp](https://github.com/antegral/kpic-mcp)이며 MIT 라이선스 저작권 표시는 `Copyright (c) 2025 SeongUk Moon`입니다. 번들된 원본 라이선스는 다음 명령으로 읽습니다.
kpic-drug-search/scripts/kpic_drug_search.mjs
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Network accessline 5
const SEARCH_URL = "https://www.health.kr/api/searchDrug"; - Network accessline 5
const SEARCH_URL = "https://www.health.kr/api/searchDrug"; - Network accessline 6
const DETAIL_URL = "https://health.kr/searchDrug/ajax/ajax_result_drug2.asp"; - Network accessline 6
const DETAIL_URL = "https://health.kr/searchDrug/ajax/ajax_result_drug2.asp"; - Network accessline 17
async function fetchJson(url, headers) { try { const response = await fetch(url, { method: "GET", headers }); - Network accessline 17
async function fetchJson(url, headers) { try { const response = await fetch(url, { method: "GET", headers }); - Network accessline 18
try { const response = await fetch(url, { method: "GET", headers }); if (!response.ok) { - Network accessline 18
try { const response = await fetch(url, { method: "GET", headers }); if (!response.ok) { - Network accessline 19
const response = await fetch(url, { method: "GET", headers }); - Network accessline 19
const response = await fetch(url, { method: "GET", headers }); - Network accessline 104
"cache-control": "no-cache", pragma: "no-cache", Referer: `https://health.kr/searchDrug/result_drug.asp?drug_cd=${encodeURIComponent(drugcode)}`, - Network accessline 104
"cache-control": "no-cache", pragma: "no-cache", Referer: `https://health.kr/searchDrug/result_drug.asp?drug_cd=${encodeURIComponent(drugcode)}`, - Network accessline 105
pragma: "no-cache", Referer: `https://health.kr/searchDrug/result_drug.asp?drug_cd=${encodeURIComponent(drugcode)}`, }); - Network accessline 105
pragma: "no-cache", Referer: `https://health.kr/searchDrug/result_drug.asp?drug_cd=${encodeURIComponent(drugcode)}`, }); - Network accessline 106
Referer: `https://health.kr/searchDrug/result_drug.asp?drug_cd=${encodeURIComponent(drugcode)}`, - Network accessline 106
Referer: `https://health.kr/searchDrug/result_drug.asp?drug_cd=${encodeURIComponent(drugcode)}`,
kpic-drug-search/skill.json
- Network accessline 5
"lookup" ], "frontmatter": "name: kpic-drug-search\ndescription: 약학정보원(KPIC) 공개 정보에서 의약품 이름을 검색하고 약품 코드로 효능, 용법, 주의사항 등 상세 원문을 조회하는 읽기 전용 스킬입니다.\nlicense: MIT\nmetadata:\n category: public-health\n locale: ko-KR\n source: https://git - Network accessline 5
"lookup" ], "frontmatter": "name: kpic-drug-search\ndescription: 약학정보원(KPIC) 공개 정보에서 의약품 이름을 검색하고 약품 코드로 효능, 용법, 주의사항 등 상세 원문을 조회하는 읽기 전용 스킬입니다.\nlicense: MIT\nmetadata:\n category: public-health\n locale: ko-KR\n source: https://git - Network accessline 6
], "frontmatter": "name: kpic-drug-search\ndescription: 약학정보원(KPIC) 공개 정보에서 의약품 이름을 검색하고 약품 코드로 효능, 용법, 주의사항 등 상세 원문을 조회하는 읽기 전용 스킬입니다.\nlicense: MIT\nmetadata:\n category: public-health\n locale: ko-KR\n source: https://github.com/ant - Network accessline 6
], "frontmatter": "name: kpic-drug-search\ndescription: 약학정보원(KPIC) 공개 정보에서 의약품 이름을 검색하고 약품 코드로 효능, 용법, 주의사항 등 상세 원문을 조회하는 읽기 전용 스킬입니다.\nlicense: MIT\nmetadata:\n category: public-health\n locale: ko-KR\n source: https://github.com/ant - Network accessline 7
"frontmatter": "name: kpic-drug-search\ndescription: 약학정보원(KPIC) 공개 정보에서 의약품 이름을 검색하고 약품 코드로 효능, 용법, 주의사항 등 상세 원문을 조회하는 읽기 전용 스킬입니다.\nlicense: MIT\nmetadata:\n category: public-health\n locale: ko-KR\n source: https://github.com/antegral - Network accessline 7
"frontmatter": "name: kpic-drug-search\ndescription: 약학정보원(KPIC) 공개 정보에서 의약품 이름을 검색하고 약품 코드로 효능, 용법, 주의사항 등 상세 원문을 조회하는 읽기 전용 스킬입니다.\nlicense: MIT\nmetadata:\n category: public-health\n locale: ko-KR\n source: https://github.com/antegral
kr-whois-lookup/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kr-whois-lookup/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kr-whois-lookup/instruction.md.
kr-whois-lookup/instruction.md
- Network accessline 30
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 30
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 31
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 31
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Network accessline 34
키 발급: <https://www.data.go.kr/data/15094277/openapi.do> 에서 활용신청 후 공공데이터포털 마이페이지의 일반 인증키를 확인한다. 포털 이용 가이드는 <https://www.data.go.kr/ugs/selectPublicDataUseGuideView.do> 를 참고한다. - Network accessline 34
키 발급: <https://www.data.go.kr/data/15094277/openapi.do> 에서 활용신청 후 공공데이터포털 마이페이지의 일반 인증키를 확인한다. 포털 이용 가이드는 <https://www.data.go.kr/ugs/selectPublicDataUseGuideView.do> 를 참고한다. - Network accessline 51
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/kr-whois/domain" \ - Network accessline 51
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/kr-whois/domain" \ - Network accessline 52
curl -fsS --get "$BASE/v1/kr-whois/domain" \ - Network accessline 52
curl -fsS --get "$BASE/v1/kr-whois/domain" \ - Network accessline 55
curl -fsS --get "$BASE/v1/kr-whois/ip" \ - Network accessline 55
curl -fsS --get "$BASE/v1/kr-whois/ip" \ - Network accessline 58
curl -fsS --get "$BASE/v1/kr-whois/as" \ - Network accessline 58
curl -fsS --get "$BASE/v1/kr-whois/as" \ - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Network accessline 95
- `./scripts/validate-skills.sh` - `node --test packages/k-skill-proxy/test/server.test.js` - `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/domain" --data-urlencode "domain=kisa.or.kr"` - Network accessline 95
- `./scripts/validate-skills.sh` - `node --test packages/k-skill-proxy/test/server.test.js` - `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/domain" --data-urlencode "domain=kisa.or.kr"` - Network accessline 96
- `node --test packages/k-skill-proxy/test/server.test.js` - `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/domain" --data-urlencode "domain=kisa.or.kr"` - `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/ip" --data-urlencode "ip= - Network accessline 96
- `node --test packages/k-skill-proxy/test/server.test.js` - `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/domain" --data-urlencode "domain=kisa.or.kr"` - `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/ip" --data-urlencode "ip= - Network accessline 97
- `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/domain" --data-urlencode "domain=kisa.or.kr"` - Network accessline 97
- `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/domain" --data-urlencode "domain=kisa.or.kr"` - Network accessline 98
- `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/ip" --data-urlencode "ip=202.30.50.51"` - Network accessline 98
- `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/ip" --data-urlencode "ip=202.30.50.51"` - Network accessline 99
- `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/as" --data-urlencode "asn=AS9700"` - Network accessline 99
- `curl -fsS --get "$KSKILL_PROXY_BASE_URL/v1/kr-whois/as" --data-urlencode "asn=AS9700"` - Access to secretsline 101
[Credential-related source omitted] - Access to secretsline 101
[Credential-related source omitted]
kstartup-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kstartup-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/kstartup-search/instruction.md.
kstartup-search/instruction.md
- Network accessline 36
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org`. - Network accessline 36
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org`. - Network accessline 37
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org`. - Network accessline 37
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org`. - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 90
[Credential-related source omitted] - Access to secretsline 90
[Credential-related source omitted] - Network accessline 119
응답을 요약할 때는 endpoint 이름, 호출 page/perPage, 응답의 `pbanc_sn` 또는 `detl_pg_url`을 함께 적는다. 상세는 https://www.k-startup.go.kr 의 해당 URL로 안내한다. - Network accessline 119
응답을 요약할 때는 endpoint 이름, 호출 page/perPage, 응답의 `pbanc_sn` 또는 `detl_pg_url`을 함께 적는다. 상세는 https://www.k-startup.go.kr 의 해당 URL로 안내한다. - Network accessline 148
curl -fsS "$KSKILL_PROXY_BASE_URL/v1/kstartup/announcements?supt_regin=$(python3 -c 'import urllib.parse;print(urllib.parse.quote(\"서울특별시\"))')&rcrt_prgs_yn=Y&perPage=5" - Network accessline 148
curl -fsS "$KSKILL_PROXY_BASE_URL/v1/kstartup/announcements?supt_regin=$(python3 -c 'import urllib.parse;print(urllib.parse.quote(\"서울특별시\"))')&rcrt_prgs_yn=Y&perPage=5" - Access to secretsline 154
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted] - Access to secretsline 180
[Credential-related source omitted] - Access to secretsline 180
[Credential-related source omitted]
kstartup-search/scripts/run_kstartup.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 20
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 20
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 21
PROXY_DOWN_MSG = "설정된 k-skill-proxy 서버가 응답하지 않습니다. 잠시 후 재시도하거나 운영자에게 문의하세요." PROXY_KEY_NOT_CONFIGURED_MSG = "k-skill-proxy에 필요한 API 키가 설정되어 있지 않습니다. 운영자에게 문의하세요." KSTARTUP_UPSTREAM_BASE_URL = "https://apis.data.go.kr/B552735/kisedKstartupSe - Network accessline 21
PROXY_DOWN_MSG = "설정된 k-skill-proxy 서버가 응답하지 않습니다. 잠시 후 재시도하거나 운영자에게 문의하세요." PROXY_KEY_NOT_CONFIGURED_MSG = "k-skill-proxy에 필요한 API 키가 설정되어 있지 않습니다. 운영자에게 문의하세요." KSTARTUP_UPSTREAM_BASE_URL = "https://apis.data.go.kr/B552735/kisedKstartupSe - Network accessline 22
PROXY_KEY_NOT_CONFIGURED_MSG = "k-skill-proxy에 필요한 API 키가 설정되어 있지 않습니다. 운영자에게 문의하세요." KSTARTUP_UPSTREAM_BASE_URL = "https://apis.data.go.kr/B552735/kisedKstartupService01" DEFAULT_SECRETS_PATH = os.path.expanduser("~/.config/k-skill/secrets - Network accessline 22
PROXY_KEY_NOT_CONFIGURED_MSG = "k-skill-proxy에 필요한 API 키가 설정되어 있지 않습니다. 운영자에게 문의하세요." KSTARTUP_UPSTREAM_BASE_URL = "https://apis.data.go.kr/B552735/kisedKstartupService01" DEFAULT_SECRETS_PATH = os.path.expanduser("~/.config/k-skill/secrets - Network accessline 23
KSTARTUP_UPSTREAM_BASE_URL = "https://apis.data.go.kr/B552735/kisedKstartupService01" - Network accessline 23
KSTARTUP_UPSTREAM_BASE_URL = "https://apis.data.go.kr/B552735/kisedKstartupService01" - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 130
[Credential-related source omitted] - Access to secretsline 130
[Credential-related source omitted] - Access to secretsline 193
[Credential-related source omitted] - Access to secretsline 193
[Credential-related source omitted] - Access to secretsline 195
[Credential-related source omitted] - Access to secretsline 195
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted] - Access to secretsline 202
[Credential-related source omitted] - Access to secretsline 202
[Credential-related source omitted] - Network accessline 219
"user-agent": "k-skill/kstartup-search", } request = urllib.request.Request(url, headers=headers, method="GET") - Network accessline 219
"user-agent": "k-skill/kstartup-search", } request = urllib.request.Request(url, headers=headers, method="GET") - Network accessline 220
} request = urllib.request.Request(url, headers=headers, method="GET") context = ssl.create_default_context() - Network accessline 220
} request = urllib.request.Request(url, headers=headers, method="GET") context = ssl.create_default_context() - Network accessline 221
request = urllib.request.Request(url, headers=headers, method="GET") - Network accessline 221
request = urllib.request.Request(url, headers=headers, method="GET") - Network accessline 222
context = ssl.create_default_context() try: with urllib.request.urlopen(request, timeout=timeout, context=context) as response: - Network accessline 222
context = ssl.create_default_context() try: with urllib.request.urlopen(request, timeout=timeout, context=context) as response: - Network accessline 223
try: with urllib.request.urlopen(request, timeout=timeout, context=context) as response: body = response.read().decode("utf-8", errors="replace") - Network accessline 223
try: with urllib.request.urlopen(request, timeout=timeout, context=context) as response: body = response.read().decode("utf-8", errors="replace") - Network accessline 224
with urllib.request.urlopen(request, timeout=timeout, context=context) as response: - Network accessline 224
with urllib.request.urlopen(request, timeout=timeout, context=context) as response: - Access to secretsline 355
[Credential-related source omitted] - Access to secretsline 355
[Credential-related source omitted] - Access to secretsline 357
[Credential-related source omitted] - Access to secretsline 357
[Credential-related source omitted] - Access to secretsline 377
[Credential-related source omitted] - Access to secretsline 377
[Credential-related source omitted] - Access to secretsline 379
[Credential-related source omitted] - Access to secretsline 379
[Credential-related source omitted] - Access to secretsline 380
[Credential-related source omitted] - Access to secretsline 380
[Credential-related source omitted] - Access to secretsline 381
[Credential-related source omitted] - Access to secretsline 381
[Credential-related source omitted] - Access to secretsline 386
[Credential-related source omitted] - Access to secretsline 386
[Credential-related source omitted] - Access to secretsline 388
[Credential-related source omitted] - Access to secretsline 388
[Credential-related source omitted]
kstartup-search/tests/__init__.py
kstartup-search/tests/test_run_kstartup.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Network accessline 37
"dry_run": True, "timeout": 30, "proxy_base_url": "https://example.test", - Network accessline 37
"dry_run": True, "timeout": 30, "proxy_base_url": "https://example.test", - Network accessline 38
"timeout": 30, "proxy_base_url": "https://example.test", "direct": False, - Network accessline 38
"timeout": 30, "proxy_base_url": "https://example.test", "direct": False, - Network accessline 39
"proxy_base_url": "https://example.test", - Network accessline 39
"proxy_base_url": "https://example.test", - Network accessline 121
[Credential-related source omitted] - Network accessline 121
[Credential-related source omitted] - Network accessline 122
[Credential-related source omitted] - Network accessline 122
[Credential-related source omitted] - Access to secretsline 122
[Credential-related source omitted] - Access to secretsline 122
[Credential-related source omitted] - Network accessline 123
self.assertTrue(url.startswith("https://example.test/v1/kstartup/announcements?")) - Network accessline 123
self.assertTrue(url.startswith("https://example.test/v1/kstartup/announcements?")) - Access to secretsline 130
[Credential-related source omitted] - Access to secretsline 130
[Credential-related source omitted] - Access to secretsline 138
[Credential-related source omitted] - Access to secretsline 138
[Credential-related source omitted] - Access to secretsline 148
[Credential-related source omitted] - Access to secretsline 148
[Credential-related source omitted] - Access to secretsline 151
[Credential-related source omitted] - Access to secretsline 151
[Credential-related source omitted] - Access to secretsline 152
[Credential-related source omitted] - Access to secretsline 152
[Credential-related source omitted] - Network accessline 166
"--per-page", "5", "--dry-run", "--proxy-base-url", "https://example.test", - Network accessline 166
"--per-page", "5", "--dry-run", "--proxy-base-url", "https://example.test", - Network accessline 167
"--dry-run", "--proxy-base-url", "https://example.test", ]) - Network accessline 167
"--dry-run", "--proxy-base-url", "https://example.test", ]) - Network accessline 168
"--proxy-base-url", "https://example.test", - Network accessline 168
"--proxy-base-url", "https://example.test", - Network accessline 172
payload = json.loads(out) self.assertEqual(payload["operation"], "announcements") self.assertTrue(payload["url"].startswith("https://example.test/v1/kstartup/announcements?")) - Network accessline 172
payload = json.loads(out) self.assertEqual(payload["operation"], "announcements") self.assertTrue(payload["url"].startswith("https://example.test/v1/kstartup/announcements?")) - Network accessline 173
self.assertEqual(payload["operation"], "announcements") self.assertTrue(payload["url"].startswith("https://example.test/v1/kstartup/announcements?")) self.assertEqual(payload["query"]["rcrt_prgs_yn"], "Y") - Network accessline 173
self.assertEqual(payload["operation"], "announcements") self.assertTrue(payload["url"].startswith("https://example.test/v1/kstartup/announcements?")) self.assertEqual(payload["query"]["rcrt_prgs_yn"], "Y") - Network accessline 174
self.assertTrue(payload["url"].startswith("https://example.test/v1/kstartup/announcements?")) - Network accessline 174
self.assertTrue(payload["url"].startswith("https://example.test/v1/kstartup/announcements?")) - Access to secretsline 180
[Credential-related source omitted] - Access to secretsline 180
[Credential-related source omitted] - Access to secretsline 181
[Credential-related source omitted] - Access to secretsline 181
[Credential-related source omitted] - Access to secretsline 182
[Credential-related source omitted] - Access to secretsline 182
[Credential-related source omitted]
lck-analytics/README.md
lck-analytics/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/lck-analytics/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/lck-analytics/instruction.md.
lck-analytics/instruction.md
- Network accessline 20
이 스킬은 `jerjangmin` 님이 만든 원본 [`lck-analytics` skill pack](https://github.com/jerjangmin/share/tree/main/SKILL/lck-analytics)을 k-skill 저장소 안으로 옮기고, 이 저장소의 npm workspace / Changesets 배포 방식에 맞게 정리한 버전이다. - Network accessline 20
이 스킬은 `jerjangmin` 님이 만든 원본 [`lck-analytics` skill pack](https://github.com/jerjangmin/share/tree/main/SKILL/lck-analytics)을 k-skill 저장소 안으로 옮기고, 이 저장소의 npm workspace / Changesets 배포 방식에 맞게 정리한 버전이다. - Network accessline 74
- 순위: `getStandings` - 이벤트 상세: `getEventDetails` - 라이브 window: `https://feed.lolesports.com/livestats/v1/window/{gameId}` - Network accessline 74
- 순위: `getStandings` - 이벤트 상세: `getEventDetails` - 라이브 window: `https://feed.lolesports.com/livestats/v1/window/{gameId}` - Network accessline 75
- 이벤트 상세: `getEventDetails` - 라이브 window: `https://feed.lolesports.com/livestats/v1/window/{gameId}` - 라이브 details: `https://feed.lolesports.com/livestats/v1/details/{gameId}` - Network accessline 75
- 이벤트 상세: `getEventDetails` - 라이브 window: `https://feed.lolesports.com/livestats/v1/window/{gameId}` - 라이브 details: `https://feed.lolesports.com/livestats/v1/details/{gameId}` - Network accessline 76
- 라이브 window: `https://feed.lolesports.com/livestats/v1/window/{gameId}` - Network accessline 76
- 라이브 window: `https://feed.lolesports.com/livestats/v1/window/{gameId}` - Network accessline 77
- 라이브 details: `https://feed.lolesports.com/livestats/v1/details/{gameId}` - Network accessline 77
- 라이브 details: `https://feed.lolesports.com/livestats/v1/details/{gameId}` - Access to secretsline 185
[Credential-related source omitted] - Access to secretsline 185
[Credential-related source omitted]
lck-analytics/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 크롤링을 일반적으로 허용하지 않습니다. [저작권법 제93조](https://ww - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 크롤링을 일반적으로 허용하지 않습니다. [저작권법 제93조](https://ww
lck-analytics/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
lck-analytics/scripts/_lib.js
lck-analytics/scripts/analyze-live-game.js
lck-analytics/scripts/build-match-report.js
lck-analytics/scripts/sync-oracle.js
lh-notice-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/lh-notice-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/lh-notice-search/instruction.md.
lh-notice-search/instruction.md
- Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Network accessline 47
`KSKILL_PROXY_BASE_URL` 환경변수가 있으면 그 값, 없으면 기본 `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 47
`KSKILL_PROXY_BASE_URL` 환경변수가 있으면 그 값, 없으면 기본 `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 50
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" - Network accessline 50
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" - Network accessline 77
curl -fsS --get "${BASE}/v1/lh-notice/search" \ - Network accessline 77
curl -fsS --get "${BASE}/v1/lh-notice/search" \ - Network accessline 87
curl -fsS --get "${BASE}/v1/lh-notice/search" \ - Network accessline 87
curl -fsS --get "${BASE}/v1/lh-notice/search" \ - Network accessline 95
curl -fsS --get "${BASE}/v1/lh-notice/detail" \ - Network accessline 95
curl -fsS --get "${BASE}/v1/lh-notice/detail" \ - Network accessline 119
"spl_inf_tp_cd": "051", "ccr_cnnt_sys_ds_cd": "03", "detail_url": "https://apply.lh.or.kr/lhapply/apply/wt/wrtanc/selectWrtancInfo.do?panId=2015122300019828&..." - Network accessline 119
"spl_inf_tp_cd": "051", "ccr_cnnt_sys_ds_cd": "03", "detail_url": "https://apply.lh.or.kr/lhapply/apply/wt/wrtanc/selectWrtancInfo.do?panId=2015122300019828&..." - Network accessline 120
"ccr_cnnt_sys_ds_cd": "03", "detail_url": "https://apply.lh.or.kr/lhapply/apply/wt/wrtanc/selectWrtancInfo.do?panId=2015122300019828&..." } - Network accessline 120
"ccr_cnnt_sys_ds_cd": "03", "detail_url": "https://apply.lh.or.kr/lhapply/apply/wt/wrtanc/selectWrtancInfo.do?panId=2015122300019828&..." } - Network accessline 121
"detail_url": "https://apply.lh.or.kr/lhapply/apply/wt/wrtanc/selectWrtancInfo.do?panId=2015122300019828&..." - Network accessline 121
"detail_url": "https://apply.lh.or.kr/lhapply/apply/wt/wrtanc/selectWrtancInfo.do?panId=2015122300019828&..." - Access to secretsline 186
[Credential-related source omitted] - Access to secretsline 186
[Credential-related source omitted] - Network accessline 200
- 공식 LH 청약플러스 포털: `https://apply.lh.or.kr/lhapply/apply/wt/wrtanc/selectWrtancList.do?mi=1026` - Network accessline 200
- 공식 LH 청약플러스 포털: `https://apply.lh.or.kr/lhapply/apply/wt/wrtanc/selectWrtancList.do?mi=1026` - Network accessline 201
- 공공데이터포털 카탈로그: `https://www.data.go.kr/data/15058530/openapi.do` (LH 임대공고문 정보) - Network accessline 201
- 공공데이터포털 카탈로그: `https://www.data.go.kr/data/15058530/openapi.do` (LH 임대공고문 정보)
library-book-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/library-book-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/library-book-search/instruction.md.
library-book-search/instruction.md
- Network accessline 29
- 사용자 측 **필수 시크릿 없음**. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 29
- 사용자 측 **필수 시크릿 없음**. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 30
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 30
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 36
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" - Network accessline 36
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" - Network accessline 56
curl -fsS --get "${BASE}/v1/data4library/book-search" \ - Network accessline 56
curl -fsS --get "${BASE}/v1/data4library/book-search" \ - Network accessline 75
curl -fsS --get "${BASE}/v1/data4library/book-detail" \ - Network accessline 75
curl -fsS --get "${BASE}/v1/data4library/book-detail" \ - Network accessline 86
curl -fsS --get "${BASE}/v1/data4library/libraries-by-book" \ - Network accessline 86
curl -fsS --get "${BASE}/v1/data4library/libraries-by-book" \ - Network accessline 100
curl -fsS --get "${BASE}/v1/data4library/book-exists" \ - Network accessline 100
curl -fsS --get "${BASE}/v1/data4library/book-exists" \ - Network accessline 111
curl -fsS --get "${BASE}/v1/data4library/library-search" \ - Network accessline 111
curl -fsS --get "${BASE}/v1/data4library/library-search" \ - Network accessline 125
- 도서관 정보나루 Open API 활용방법: `https://www.data4library.kr/apiUtilization` - Network accessline 125
- 도서관 정보나루 Open API 활용방법: `https://www.data4library.kr/apiUtilization`
localdata-business-status/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/localdata-business-status/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/localdata-business-status/instruction.md.
localdata-business-status/instruction.md
- Network accessline 63
- 인허가 영업상태: `https://file.localdata.go.kr/file/download/<업종slug>/info?orgCode=<지자체코드>` (무인증, Referer 필요, CP949 CSV) - Network accessline 63
- 인허가 영업상태: `https://file.localdata.go.kr/file/download/<업종slug>/info?orgCode=<지자체코드>` (무인증, Referer 필요, CP949 CSV) - Network accessline 64
- 본체: <https://www.localdata.go.kr> - Network accessline 64
- 본체: <https://www.localdata.go.kr>
localdata-business-status/scripts/localdata_business_status.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 27
BASE = "https://file.localdata.go.kr" - Network accessline 27
BASE = "https://file.localdata.go.kr" - Network accessline 104
return cache.read_text(encoding="utf-8") params = urllib.parse.urlencode({"orgCode": org_code}) request = urllib.request.Request( - Network accessline 104
return cache.read_text(encoding="utf-8") params = urllib.parse.urlencode({"orgCode": org_code}) request = urllib.request.Request( - Network accessline 105
params = urllib.parse.urlencode({"orgCode": org_code}) request = urllib.request.Request( f"{BASE}/file/download/{slug}/info?{params}", - Network accessline 105
params = urllib.parse.urlencode({"orgCode": org_code}) request = urllib.request.Request( f"{BASE}/file/download/{slug}/info?{params}", - Network accessline 106
request = urllib.request.Request( - Network accessline 106
request = urllib.request.Request( - Network accessline 109
method="GET", ) open_fn = opener or urllib.request.urlopen - Network accessline 109
method="GET", ) open_fn = opener or urllib.request.urlopen - Network accessline 110
) open_fn = opener or urllib.request.urlopen with open_fn(request, timeout=120) as response: - Network accessline 110
) open_fn = opener or urllib.request.urlopen with open_fn(request, timeout=120) as response: - Network accessline 111
open_fn = opener or urllib.request.urlopen - Network accessline 111
open_fn = opener or urllib.request.urlopen - Network accessline 176
return _envelope("unavailable", note=f"전 업종 다운로드 실패: {', '.join(failures)}. " f"수동 확인: https://www.localdata.go.kr") - Network accessline 176
return _envelope("unavailable", note=f"전 업종 다운로드 실패: {', '.join(failures)}. " f"수동 확인: https://www.localdata.go.kr") - Network accessline 178
f"수동 확인: https://www.localdata.go.kr") - Network accessline 178
f"수동 확인: https://www.localdata.go.kr")
lotto-results/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/lotto-results/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/lotto-results/instruction.md.
lotto-results/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제9 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제9
lotto-results/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
market-event-impact/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/market-event-impact/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/market-event-impact/instruction.md.
market-event-impact/references/event-taxonomy.md
- Network accessline 38
"stage": "prelude", "event": "채권매각 손실 및 자본조달 이슈 공개", "source": {"name": "당시 원문 보도", "url": "https://..."} - Network accessline 38
"stage": "prelude", "event": "채권매각 손실 및 자본조달 이슈 공개", "source": {"name": "당시 원문 보도", "url": "https://..."} - Network accessline 39
"event": "채권매각 손실 및 자본조달 이슈 공개", "source": {"name": "당시 원문 보도", "url": "https://..."} }, - Network accessline 39
"event": "채권매각 손실 및 자본조달 이슈 공개", "source": {"name": "당시 원문 보도", "url": "https://..."} }, - Network accessline 40
"source": {"name": "당시 원문 보도", "url": "https://..."} - Network accessline 40
"source": {"name": "당시 원문 보도", "url": "https://..."} - Network accessline 46
"stage": "trigger", "event": "캘리포니아 규제당국의 은행 폐쇄", "source": {"name": "FDIC", "url": "https://..."} - Network accessline 46
"stage": "trigger", "event": "캘리포니아 규제당국의 은행 폐쇄", "source": {"name": "FDIC", "url": "https://..."} - Network accessline 47
"event": "캘리포니아 규제당국의 은행 폐쇄", "source": {"name": "FDIC", "url": "https://..."} }, - Network accessline 47
"event": "캘리포니아 규제당국의 은행 폐쇄", "source": {"name": "FDIC", "url": "https://..."} }, - Network accessline 48
"source": {"name": "FDIC", "url": "https://..."} - Network accessline 48
"source": {"name": "FDIC", "url": "https://..."} - Network accessline 52
"stage": "policy_response", "event": "예금자 보호 및 BTFP 발표", "source": {"name": "Federal Reserve", "url": "https://..."} - Network accessline 52
"stage": "policy_response", "event": "예금자 보호 및 BTFP 발표", "source": {"name": "Federal Reserve", "url": "https://..."} - Network accessline 53
"event": "예금자 보호 및 BTFP 발표", "source": {"name": "Federal Reserve", "url": "https://..."} } - Network accessline 53
"event": "예금자 보호 및 BTFP 발표", "source": {"name": "Federal Reserve", "url": "https://..."} } - Network accessline 54
"source": {"name": "Federal Reserve", "url": "https://..."} - Network accessline 54
"source": {"name": "Federal Reserve", "url": "https://..."} - Network accessline 55
} ], "source": {"name": "직접 원천", "url": "https://..."} - Network accessline 55
} ], "source": {"name": "직접 원천", "url": "https://..."} - Network accessline 56
], "source": {"name": "직접 원천", "url": "https://..."} } - Network accessline 56
], "source": {"name": "직접 원천", "url": "https://..."} } - Network accessline 57
"source": {"name": "직접 원천", "url": "https://..."} - Network accessline 57
"source": {"name": "직접 원천", "url": "https://..."}
market-event-impact/references/methodology.md
- Network accessline 19
"roles": ["short_rates", "government_bond", "safe_haven"], "selection_priority": 10, "source": {"name": "U.S. Treasury", "url": "https://..."}, - Network accessline 19
"roles": ["short_rates", "government_bond", "safe_haven"], "selection_priority": 10, "source": {"name": "U.S. Treasury", "url": "https://..."}, - Network accessline 20
"selection_priority": 10, "source": {"name": "U.S. Treasury", "url": "https://..."}, "observations": [ - Network accessline 20
"selection_priority": 10, "source": {"name": "U.S. Treasury", "url": "https://..."}, "observations": [ - Network accessline 21
"source": {"name": "U.S. Treasury", "url": "https://..."}, - Network accessline 21
"source": {"name": "U.S. Treasury", "url": "https://..."}, - Network accessline 41
"market_timezone": "Asia/Seoul", "price_type": "noon_buying_rate", "source": {"name": "Federal Reserve H.10 via FRED", "url": "https://fred.stlouisfed.org/data/DEXKOUS"}, - Network accessline 41
"market_timezone": "Asia/Seoul", "price_type": "noon_buying_rate", "source": {"name": "Federal Reserve H.10 via FRED", "url": "https://fred.stlouisfed.org/data/DEXKOUS"}, - Network accessline 42
"price_type": "noon_buying_rate", "source": {"name": "Federal Reserve H.10 via FRED", "url": "https://fred.stlouisfed.org/data/DEXKOUS"}, "observations": [{"date": "2023-03-10", "value": 1324.51}] - Network accessline 42
"price_type": "noon_buying_rate", "source": {"name": "Federal Reserve H.10 via FRED", "url": "https://fred.stlouisfed.org/data/DEXKOUS"}, "observations": [{"date": "2023-03-10", "value": 1324.51}] - Network accessline 43
"source": {"name": "Federal Reserve H.10 via FRED", "url": "https://fred.stlouisfed.org/data/DEXKOUS"}, - Network accessline 43
"source": {"name": "Federal Reserve H.10 via FRED", "url": "https://fred.stlouisfed.org/data/DEXKOUS"},
market-event-impact/references/research-contract.md
- Network accessline 22
"surprise_assessment": "사전 기대와 달랐던 지점", "classification": "충격 메커니즘 중심 분류", "source": {"name": "직접 원천", "url": "https://..."} - Network accessline 22
"surprise_assessment": "사전 기대와 달랐던 지점", "classification": "충격 메커니즘 중심 분류", "source": {"name": "직접 원천", "url": "https://..."} - Network accessline 23
"classification": "충격 메커니즘 중심 분류", "source": {"name": "직접 원천", "url": "https://..."} }, - Network accessline 23
"classification": "충격 메커니즘 중심 분류", "source": {"name": "직접 원천", "url": "https://..."} }, - Network accessline 24
"source": {"name": "직접 원천", "url": "https://..."} - Network accessline 24
"source": {"name": "직접 원천", "url": "https://..."} - Network accessline 28
"finding": "확인된 변화", "significance": "시장에 중요한 이유", "source": {"name": "직접 원천", "url": "https://..."} - Network accessline 28
"finding": "확인된 변화", "significance": "시장에 중요한 이유", "source": {"name": "직접 원천", "url": "https://..."} - Network accessline 29
"significance": "시장에 중요한 이유", "source": {"name": "직접 원천", "url": "https://..."} }], - Network accessline 29
"significance": "시장에 중요한 이유", "source": {"name": "직접 원천", "url": "https://..."} }], - Network accessline 30
"source": {"name": "직접 원천", "url": "https://..."} - Network accessline 30
"source": {"name": "직접 원천", "url": "https://..."} - Network accessline 35
"finding": "당일 기사와 가격이 함께 지지한 해석", "significance": "재가격과 연결되는 이유", "source": {"name": "시장 반응 원천", "url": "https://..."} - Network accessline 35
"finding": "당일 기사와 가격이 함께 지지한 해석", "significance": "재가격과 연결되는 이유", "source": {"name": "시장 반응 원천", "url": "https://..."} - Network accessline 36
"significance": "재가격과 연결되는 이유", "source": {"name": "시장 반응 원천", "url": "https://..."} }], - Network accessline 36
"significance": "재가격과 연결되는 이유", "source": {"name": "시장 반응 원천", "url": "https://..."} }], - Network accessline 37
"source": {"name": "시장 반응 원천", "url": "https://..."} - Network accessline 37
"source": {"name": "시장 반응 원천", "url": "https://..."} - Network accessline 42
"status": "consistent", "evidence": "실제 가격 근거", "source": {"name": "가격 원천", "url": "https://..."} - Network accessline 42
"status": "consistent", "evidence": "실제 가격 근거", "source": {"name": "가격 원천", "url": "https://..."} - Network accessline 43
"evidence": "실제 가격 근거", "source": {"name": "가격 원천", "url": "https://..."} }], - Network accessline 43
"evidence": "실제 가격 근거", "source": {"name": "가격 원천", "url": "https://..."} }], - Network accessline 44
"source": {"name": "가격 원천", "url": "https://..."} - Network accessline 44
"source": {"name": "가격 원천", "url": "https://..."} - Network accessline 50
"event": "후속 정책대응", "why_it_matters": "현재 해석을 확인하거나 뒤집는 조건", "source": {"name": "공식 일정", "url": "https://..."} - Network accessline 50
"event": "후속 정책대응", "why_it_matters": "현재 해석을 확인하거나 뒤집는 조건", "source": {"name": "공식 일정", "url": "https://..."} - Network accessline 51
"why_it_matters": "현재 해석을 확인하거나 뒤집는 조건", "source": {"name": "공식 일정", "url": "https://..."} }], - Network accessline 51
"why_it_matters": "현재 해석을 확인하거나 뒤집는 조건", "source": {"name": "공식 일정", "url": "https://..."} }], - Network accessline 52
"source": {"name": "공식 일정", "url": "https://..."} - Network accessline 52
"source": {"name": "공식 일정", "url": "https://..."} - Network accessline 61
"similarity": "공통점", "difference": "중요한 차이", "source": {"name": "직접 원천", "url": "https://..."} - Network accessline 61
"similarity": "공통점", "difference": "중요한 차이", "source": {"name": "직접 원천", "url": "https://..."} - Network accessline 62
"difference": "중요한 차이", "source": {"name": "직접 원천", "url": "https://..."} }] - Network accessline 62
"difference": "중요한 차이", "source": {"name": "직접 원천", "url": "https://..."} }] - Network accessline 63
"source": {"name": "직접 원천", "url": "https://..."} - Network accessline 63
"source": {"name": "직접 원천", "url": "https://..."} - Network accessline 73
"similarity": "은행 유동성 충격과 정책 백스톱이 단기금리·변동성에 함께 반영됐다.", "difference": "도매자금시장과 투자은행이 충격의 중심이었다.", "source": {"name": "직접 원천", "url": "https://..."} - Network accessline 73
"similarity": "은행 유동성 충격과 정책 백스톱이 단기금리·변동성에 함께 반영됐다.", "difference": "도매자금시장과 투자은행이 충격의 중심이었다.", "source": {"name": "직접 원천", "url": "https://..."} - Network accessline 74
"difference": "도매자금시장과 투자은행이 충격의 중심이었다.", "source": {"name": "직접 원천", "url": "https://..."} }] - Network accessline 74
"difference": "도매자금시장과 투자은행이 충격의 중심이었다.", "source": {"name": "직접 원천", "url": "https://..."} }] - Network accessline 75
"source": {"name": "직접 원천", "url": "https://..."} - Network accessline 75
"source": {"name": "직접 원천", "url": "https://..."}
market-event-impact/references/source-priority.md
- Network accessline 18
2. 거래소·재무부·중앙은행·공식 지수 제공자의 일별 종가를 먼저 조회한다. 3. 공식 원천으로 보강할 수 없으면 Investing.com 역사적 데이터 화면에서 해당 날짜의 확정 종가를 확인한다. - KOSPI: `https://www.investing.com/indices/kospi-historical-data` - Network accessline 18
2. 거래소·재무부·중앙은행·공식 지수 제공자의 일별 종가를 먼저 조회한다. 3. 공식 원천으로 보강할 수 없으면 Investing.com 역사적 데이터 화면에서 해당 날짜의 확정 종가를 확인한다. - KOSPI: `https://www.investing.com/indices/kospi-historical-data` - Network accessline 19
3. 공식 원천으로 보강할 수 없으면 Investing.com 역사적 데이터 화면에서 해당 날짜의 확정 종가를 확인한다. - KOSPI: `https://www.investing.com/indices/kospi-historical-data` - USD/KRW: `https://www.investing.com/currencies/usd-krw-historical-data` - Network accessline 19
3. 공식 원천으로 보강할 수 없으면 Investing.com 역사적 데이터 화면에서 해당 날짜의 확정 종가를 확인한다. - KOSPI: `https://www.investing.com/indices/kospi-historical-data` - USD/KRW: `https://www.investing.com/currencies/usd-krw-historical-data` - Network accessline 20
- KOSPI: `https://www.investing.com/indices/kospi-historical-data` - Network accessline 20
- KOSPI: `https://www.investing.com/indices/kospi-historical-data` - Network accessline 21
- USD/KRW: `https://www.investing.com/currencies/usd-krw-historical-data` - Network accessline 21
- USD/KRW: `https://www.investing.com/currencies/usd-krw-historical-data`
market-event-impact/scripts/adapters.py
market-event-impact/scripts/asset_selector.py
market-event-impact/scripts/calendars.py
market-event-impact/scripts/event_resolver.py
market-event-impact/scripts/event_study.py
market-event-impact/scripts/market_data.py
market-event-impact/scripts/market_event.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 27
SOURCES = { ("US", "FOMC"): ("Federal Reserve", "https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm", "America/New_York"), - Network accessline 27
SOURCES = { ("US", "FOMC"): ("Federal Reserve", "https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm", "America/New_York"), - Network accessline 28
("US", "FOMC"): ("Federal Reserve", "https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm", "America/New_York"), - Network accessline 28
("US", "FOMC"): ("Federal Reserve", "https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm", "America/New_York"), - Network accessline 29
("EU", "ECB"): ("European Central Bank", "https://www.ecb.europa.eu/press/calendars/mgcgc/html/index.en.html", "Europe/Frankfurt"), - Network accessline 29
("EU", "ECB"): ("European Central Bank", "https://www.ecb.europa.eu/press/calendars/mgcgc/html/index.en.html", "Europe/Frankfurt"), - Network accessline 30
("KR", "BOK_MPC"): ("Bank of Korea", "https://www.bok.or.kr/portal/singl/baseRate/list.do?dataSeCd=01&menuNo=200643", "Asia/Seoul"), - Network accessline 30
("KR", "BOK_MPC"): ("Bank of Korea", "https://www.bok.or.kr/portal/singl/baseRate/list.do?dataSeCd=01&menuNo=200643", "Asia/Seoul"), - Network accessline 523
def fetch_text(url: str) -> str: request = urllib.request.Request(url, headers={"User-Agent": "k-skill/1.0 (+https://github.com/NomaDamas/k-skill)"}) - Network accessline 523
def fetch_text(url: str) -> str: request = urllib.request.Request(url, headers={"User-Agent": "k-skill/1.0 (+https://github.com/NomaDamas/k-skill)"}) - Network accessline 524
request = urllib.request.Request(url, headers={"User-Agent": "k-skill/1.0 (+https://github.com/NomaDamas/k-skill)"}) - Network accessline 524
request = urllib.request.Request(url, headers={"User-Agent": "k-skill/1.0 (+https://github.com/NomaDamas/k-skill)"}) - Network accessline 525
try: with urllib.request.urlopen(request, timeout=30) as response: data = response.read(2_000_000) - Network accessline 525
try: with urllib.request.urlopen(request, timeout=30) as response: data = response.read(2_000_000) - Network accessline 526
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 526
with urllib.request.urlopen(request, timeout=30) as response:
market-event-impact/scripts/research.py
market-event-impact/tests/fixtures/events.json
- Network accessline 15
"consensus": "hold", "previous": "hold", "source": {"name": "fixture", "url": "https://example.test/fomc"} - Network accessline 15
"consensus": "hold", "previous": "hold", "source": {"name": "fixture", "url": "https://example.test/fomc"} - Network accessline 16
"previous": "hold", "source": {"name": "fixture", "url": "https://example.test/fomc"} }, - Network accessline 16
"previous": "hold", "source": {"name": "fixture", "url": "https://example.test/fomc"} }, - Network accessline 17
"source": {"name": "fixture", "url": "https://example.test/fomc"} - Network accessline 17
"source": {"name": "fixture", "url": "https://example.test/fomc"} - Network accessline 28
"event_time_local": "14:15", "event_timezone": "Europe/Frankfurt", "source": {"name": "fixture", "url": "https://example.test/ecb"} - Network accessline 28
"event_time_local": "14:15", "event_timezone": "Europe/Frankfurt", "source": {"name": "fixture", "url": "https://example.test/ecb"} - Network accessline 29
"event_timezone": "Europe/Frankfurt", "source": {"name": "fixture", "url": "https://example.test/ecb"} }, - Network accessline 29
"event_timezone": "Europe/Frankfurt", "source": {"name": "fixture", "url": "https://example.test/ecb"} }, - Network accessline 30
"source": {"name": "fixture", "url": "https://example.test/ecb"} - Network accessline 30
"source": {"name": "fixture", "url": "https://example.test/ecb"} - Network accessline 41
"event_time_local": "14:00", "event_timezone": "America/New_York", "source": {"name": "fixture", "url": "https://example.test/fomc-next"} - Network accessline 41
"event_time_local": "14:00", "event_timezone": "America/New_York", "source": {"name": "fixture", "url": "https://example.test/fomc-next"} - Network accessline 42
"event_timezone": "America/New_York", "source": {"name": "fixture", "url": "https://example.test/fomc-next"} }, - Network accessline 42
"event_timezone": "America/New_York", "source": {"name": "fixture", "url": "https://example.test/fomc-next"} }, - Network accessline 43
"source": {"name": "fixture", "url": "https://example.test/fomc-next"} - Network accessline 43
"source": {"name": "fixture", "url": "https://example.test/fomc-next"} - Network accessline 54
"event_timezone": "America/New_York", "event_sequence": [ {"date": "2023-03-09", "stage": "prelude", "event": "채권매각 손실 및 자본조달 이슈 공개", "source": {"name": "fixture news", "url": "https://example.test/svb-prelude"}}, - Network accessline 54
"event_timezone": "America/New_York", "event_sequence": [ {"date": "2023-03-09", "stage": "prelude", "event": "채권매각 손실 및 자본조달 이슈 공개", "source": {"name": "fixture news", "url": "https://example.test/svb-prelude"}}, - Network accessline 55
"event_sequence": [ {"date": "2023-03-09", "stage": "prelude", "event": "채권매각 손실 및 자본조달 이슈 공개", "source": {"name": "fixture news", "url": "https://example.test/svb-prelude"}}, {"date": "2023-03-10", "time_local": "11:15", "t - Network accessline 55
"event_sequence": [ {"date": "2023-03-09", "stage": "prelude", "event": "채권매각 손실 및 자본조달 이슈 공개", "source": {"name": "fixture news", "url": "https://example.test/svb-prelude"}}, {"date": "2023-03-10", "time_local": "11:15", "t - Network accessline 56
{"date": "2023-03-09", "stage": "prelude", "event": "채권매각 손실 및 자본조달 이슈 공개", "source": {"name": "fixture news", "url": "https://example.test/svb-prelude"}}, - Network accessline 56
{"date": "2023-03-09", "stage": "prelude", "event": "채권매각 손실 및 자본조달 이슈 공개", "source": {"name": "fixture news", "url": "https://example.test/svb-prelude"}}, - Network accessline 57
{"date": "2023-03-10", "time_local": "11:15", "timezone": "America/New_York", "stage": "trigger", "event": "규제당국의 은행 폐쇄", "source": {"name": "fixture FDIC", "url": "https://example.test/svb-regulator"}}, - Network accessline 57
{"date": "2023-03-10", "time_local": "11:15", "timezone": "America/New_York", "stage": "trigger", "event": "규제당국의 은행 폐쇄", "source": {"name": "fixture FDIC", "url": "https://example.test/svb-regulator"}}, - Network accessline 58
{"date": "2023-03-12", "stage": "policy_response", "event": "예금자 보호 및 유동성 대책 발표", "source": {"name": "fixture Federal Reserve", "url": "https://example.test/svb-policy"}}, - Network accessline 58
{"date": "2023-03-12", "stage": "policy_response", "event": "예금자 보호 및 유동성 대책 발표", "source": {"name": "fixture Federal Reserve", "url": "https://example.test/svb-policy"}}, - Network accessline 59
{"date": "2023-03-13", "stage": "market_reopen", "event": "주말 이후 첫 시장 재개", "source": {"name": "fixture market data", "url": "https://example.test/svb-reopen"}} - Network accessline 59
{"date": "2023-03-13", "stage": "market_reopen", "event": "주말 이후 첫 시장 재개", "source": {"name": "fixture market data", "url": "https://example.test/svb-reopen"}} - Network accessline 60
], "source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} } - Network accessline 60
], "source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} } - Network accessline 61
"source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} - Network accessline 61
"source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"}
market-event-impact/tests/fixtures/fitch-event.json
- Network accessline 13
"source": { "name": "Fitch Ratings — U.S. rating action, 1 Aug 2023", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" - Network accessline 13
"source": { "name": "Fitch Ratings — U.S. rating action, 1 Aug 2023", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" - Network accessline 14
"name": "Fitch Ratings — U.S. rating action, 1 Aug 2023", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" }, - Network accessline 14
"name": "Fitch Ratings — U.S. rating action, 1 Aug 2023", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" }, - Network accessline 15
"url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" - Network accessline 15
"url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" - Network accessline 24
"source": { "name": "Fitch Ratings", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" - Network accessline 24
"source": { "name": "Fitch Ratings", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" - Network accessline 25
"name": "Fitch Ratings", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" } - Network accessline 25
"name": "Fitch Ratings", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" } - Network accessline 26
"url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" - Network accessline 26
"url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023" - Network accessline 33
"source": { "name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671" - Network accessline 33
"source": { "name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671" - Network accessline 34
"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671" } - Network accessline 34
"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671" } - Network accessline 35
"url": "https://home.treasury.gov/news/press-releases/jy1671" - Network accessline 35
"url": "https://home.treasury.gov/news/press-releases/jy1671"
market-event-impact/tests/fixtures/fitch-market-series.json
- Network accessline 6
"observation_timezone": "America/New_York", "observation_time": "15:30", "market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed. - Network accessline 6
"observation_timezone": "America/New_York", "observation_time": "15:30", "market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed. - Network accessline 7
"market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed.org/data/DGS2"}, "observations": [ - Network accessline 7
"market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed.org/data/DGS2"}, "observations": [ - Network accessline 8
"source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed.org/data/DGS2"}, - Network accessline 8
"source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed.org/data/DGS2"}, - Network accessline 19
"observation_timezone": "America/New_York", "observation_time": "15:30", "market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed - Network accessline 19
"observation_timezone": "America/New_York", "observation_time": "15:30", "market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed - Network accessline 20
"market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed.org/data/DGS10"}, "observations": [ - Network accessline 20
"market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed.org/data/DGS10"}, "observations": [ - Network accessline 21
"source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed.org/data/DGS10"}, - Network accessline 21
"source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed.org/data/DGS10"}, - Network accessline 32
"observation_timezone": "America/New_York", "observation_time": "16:00", "market_timezone": "America/New_York", "price_type": "daily cash-market close", "source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/S - Network accessline 32
"observation_timezone": "America/New_York", "observation_time": "16:00", "market_timezone": "America/New_York", "price_type": "daily cash-market close", "source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/S - Network accessline 33
"market_timezone": "America/New_York", "price_type": "daily cash-market close", "source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/SP500"}, "observations": [ - Network accessline 33
"market_timezone": "America/New_York", "price_type": "daily cash-market close", "source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/SP500"}, "observations": [ - Network accessline 34
"source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/SP500"}, - Network accessline 34
"source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/SP500"}, - Network accessline 45
"observation_timezone": null, "observation_time": null, "market_timezone": "Asia/Seoul", "price_type": "daily cash-market close", "source": {"name": "Countryeconomy KOSPI August 2023", "url": "https://countryeconomy.com/stock-ex - Network accessline 45
"observation_timezone": null, "observation_time": null, "market_timezone": "Asia/Seoul", "price_type": "daily cash-market close", "source": {"name": "Countryeconomy KOSPI August 2023", "url": "https://countryeconomy.com/stock-ex - Network accessline 46
"market_timezone": "Asia/Seoul", "price_type": "daily cash-market close", "source": {"name": "Countryeconomy KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"}, "observations": [ - Network accessline 46
"market_timezone": "Asia/Seoul", "price_type": "daily cash-market close", "source": {"name": "Countryeconomy KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"}, "observations": [ - Network accessline 47
"source": {"name": "Countryeconomy KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"}, - Network accessline 47
"source": {"name": "Countryeconomy KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"}, - Network accessline 58
"observation_timezone": "America/New_York", "observation_time": "12:00", "market_timezone": "America/New_York", "price_type": "NYC noon buying rate; USD per EUR", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfe - Network accessline 58
"observation_timezone": "America/New_York", "observation_time": "12:00", "market_timezone": "America/New_York", "price_type": "NYC noon buying rate; USD per EUR", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfe - Network accessline 59
"market_timezone": "America/New_York", "price_type": "NYC noon buying rate; USD per EUR", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"}, "observations": [ - Network accessline 59
"market_timezone": "America/New_York", "price_type": "NYC noon buying rate; USD per EUR", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"}, "observations": [ - Network accessline 60
"source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"}, - Network accessline 60
"source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"}, - Network accessline 69
"symbol": "VIXCLS", "region": "US", "asset_class": "volatility", "unit": "index", "roles": ["volatility"], "price_type": "daily index close", "source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"}, - Network accessline 69
"symbol": "VIXCLS", "region": "US", "asset_class": "volatility", "unit": "index", "roles": ["volatility"], "price_type": "daily index close", "source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"}, - Network accessline 70
"roles": ["volatility"], "price_type": "daily index close", "source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"}, "observations": [ - Network accessline 70
"roles": ["volatility"], "price_type": "daily index close", "source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"}, "observations": [ - Network accessline 71
"source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"}, - Network accessline 71
"source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"},
market-event-impact/tests/fixtures/fitch-research.json
- Network accessline 18
"surprise_assessment": "부정적 관찰대상 지정으로 등급 조정 위험은 알려져 있었지만, 6월 부채한도 협상 타결 뒤의 강등 시점은 투자자에게 뜻밖이었다. 따라서 새 정보는 단순한 등급 한 단계보다 피치가 재정 악화와 거버넌스 문제를 여전히 지속적인 위험으로 본다는 판단이었다.", "classification": "미국 국가신용 재평가와 국채 발행 확대 뉴스가 겹친 사건", "sour - Network accessline 18
"surprise_assessment": "부정적 관찰대상 지정으로 등급 조정 위험은 알려져 있었지만, 6월 부채한도 협상 타결 뒤의 강등 시점은 투자자에게 뜻밖이었다. 따라서 새 정보는 단순한 등급 한 단계보다 피치가 재정 악화와 거버넌스 문제를 여전히 지속적인 위험으로 본다는 판단이었다.", "classification": "미국 국가신용 재평가와 국채 발행 확대 뉴스가 겹친 사건", "sour - Network accessline 19
"classification": "미국 국가신용 재평가와 국채 발행 확대 뉴스가 겹친 사건", "source": {"name": "Fitch Ratings — U.S. rating action", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-o - Network accessline 19
"classification": "미국 국가신용 재평가와 국채 발행 확대 뉴스가 겹친 사건", "source": {"name": "Fitch Ratings — U.S. rating action", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-o - Network accessline 20
"source": {"name": "Fitch Ratings — U.S. rating action", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023"} - Network accessline 20
"source": {"name": "Fitch Ratings — U.S. rating action", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023"} - Network accessline 25
"finding": "장기 외화표시 발행자등급은 AAA에서 AA+로 하향됐고, Rating Watch Negative는 해제되며 전망은 Stable이 됐다. 단기등급과 국가상한은 그대로 유지됐다.", "significance": "즉각적인 지급불능 선언이 아니라 중기 재정·제도 위험에 대한 신용평가 변경이다.", "source": {"name": "Fitch Ratings", "url": " - Network accessline 25
"finding": "장기 외화표시 발행자등급은 AAA에서 AA+로 하향됐고, Rating Watch Negative는 해제되며 전망은 Stable이 됐다. 단기등급과 국가상한은 그대로 유지됐다.", "significance": "즉각적인 지급불능 선언이 아니라 중기 재정·제도 위험에 대한 신용평가 변경이다.", "source": {"name": "Fitch Ratings", "url": " - Network accessline 26
"significance": "즉각적인 지급불능 선언이 아니라 중기 재정·제도 위험에 대한 신용평가 변경이다.", "source": {"name": "Fitch Ratings", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-s - Network accessline 26
"significance": "즉각적인 지급불능 선언이 아니라 중기 재정·제도 위험에 대한 신용평가 변경이다.", "source": {"name": "Fitch Ratings", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-s - Network accessline 27
"source": {"name": "Fitch Ratings", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023"} - Network accessline 27
"source": {"name": "Fitch Ratings", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023"} - Network accessline 31
"finding": "피치는 향후 3년의 재정 악화 예상, 높은 정부부채, 반복된 부채한도 대치에 나타난 거버넌스 약화를 근거로 들었다.", "significance": "시장의 확인 지점은 국채의 당일 신용손실보다 장기 발행 부담과 위험 프리미엄 경로였다.", "source": {"name": "Fitch Ratings — Key Rating Drivers", "url": "https:// - Network accessline 31
"finding": "피치는 향후 3년의 재정 악화 예상, 높은 정부부채, 반복된 부채한도 대치에 나타난 거버넌스 약화를 근거로 들었다.", "significance": "시장의 확인 지점은 국채의 당일 신용손실보다 장기 발행 부담과 위험 프리미엄 경로였다.", "source": {"name": "Fitch Ratings — Key Rating Drivers", "url": "https:// - Network accessline 32
"significance": "시장의 확인 지점은 국채의 당일 신용손실보다 장기 발행 부담과 위험 프리미엄 경로였다.", "source": {"name": "Fitch Ratings — Key Rating Drivers", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings - Network accessline 32
"significance": "시장의 확인 지점은 국채의 당일 신용손실보다 장기 발행 부담과 위험 프리미엄 경로였다.", "source": {"name": "Fitch Ratings — Key Rating Drivers", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings - Network accessline 33
"source": {"name": "Fitch Ratings — Key Rating Drivers", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023"} - Network accessline 33
"source": {"name": "Fitch Ratings — Key Rating Drivers", "url": "https://www.fitchratings.com/research/sovereigns/fitch-downgrades-united-states-long-term-ratings-to-aa-from-aaa-outlook-stable-01-08-2023"} - Network accessline 37
"finding": "재무장관 옐런은 판단에 동의하지 않는다며 미국 국채의 안전성과 유동성을 강조했다.", "significance": "등급 변경을 곧바로 국채 수요 붕괴나 달러 약세로 등치하지 말아야 한다.", "source": {"name": "U.S. Treasury — Yellen statement", "url": "https://home.treasury.gov/news/press- - Network accessline 37
"finding": "재무장관 옐런은 판단에 동의하지 않는다며 미국 국채의 안전성과 유동성을 강조했다.", "significance": "등급 변경을 곧바로 국채 수요 붕괴나 달러 약세로 등치하지 말아야 한다.", "source": {"name": "U.S. Treasury — Yellen statement", "url": "https://home.treasury.gov/news/press- - Network accessline 38
"significance": "등급 변경을 곧바로 국채 수요 붕괴나 달러 약세로 등치하지 말아야 한다.", "source": {"name": "U.S. Treasury — Yellen statement", "url": "https://home.treasury.gov/news/press-releases/jy1665"} } - Network accessline 38
"significance": "등급 변경을 곧바로 국채 수요 붕괴나 달러 약세로 등치하지 말아야 한다.", "source": {"name": "U.S. Treasury — Yellen statement", "url": "https://home.treasury.gov/news/press-releases/jy1665"} } - Network accessline 39
"source": {"name": "U.S. Treasury — Yellen statement", "url": "https://home.treasury.gov/news/press-releases/jy1665"} - Network accessline 39
"source": {"name": "U.S. Treasury — Yellen statement", "url": "https://home.treasury.gov/news/press-releases/jy1665"} - Network accessline 45
"finding": "첫 미국 거래일인 8월 2일 S&P 500은 1.38% 하락하고 VIX는 13.93에서 16.09로 올랐다. Reuters는 강등 뒤 위험자산 약세와 기존 상승분의 차익실현을 함께 보도했다.", "significance": "등급 뉴스가 위험회피의 계기였다는 해석과 일치하지만, 하루 전체 하락을 피치 결정 하나에 귀속할 수는 없다.", "source": {"name": - Network accessline 45
"finding": "첫 미국 거래일인 8월 2일 S&P 500은 1.38% 하락하고 VIX는 13.93에서 16.09로 올랐다. Reuters는 강등 뒤 위험자산 약세와 기존 상승분의 차익실현을 함께 보도했다.", "significance": "등급 뉴스가 위험회피의 계기였다는 해석과 일치하지만, 하루 전체 하락을 피치 결정 하나에 귀속할 수는 없다.", "source": {"name": - Network accessline 46
"significance": "등급 뉴스가 위험회피의 계기였다는 해석과 일치하지만, 하루 전체 하락을 피치 결정 하나에 귀속할 수는 없다.", "source": {"name": "Reuters — Wall Street after Fitch downgrade", "url": "https://www.marketscreener.com/news/latest/Wall-Street-ends-lower-as-investo - Network accessline 46
"significance": "등급 뉴스가 위험회피의 계기였다는 해석과 일치하지만, 하루 전체 하락을 피치 결정 하나에 귀속할 수는 없다.", "source": {"name": "Reuters — Wall Street after Fitch downgrade", "url": "https://www.marketscreener.com/news/latest/Wall-Street-ends-lower-as-investo - Network accessline 47
"source": {"name": "Reuters — Wall Street after Fitch downgrade", "url": "https://www.marketscreener.com/news/latest/Wall-Street-ends-lower-as-investors-step-back-after-Fitch-downgrades-US-44498808/"} - Network accessline 47
"source": {"name": "Reuters — Wall Street after Fitch downgrade", "url": "https://www.marketscreener.com/news/latest/Wall-Street-ends-lower-as-investors-step-back-after-Fitch-downgrades-US-44498808/"} - Network accessline 51
"finding": "코스피는 뉴욕 장 마감 뒤 나온 강등 발표 다음 날인 8월 2일 2,667.07에서 2,616.47로 1.90% 하락했다.", "significance": "미국 주식과 같은 위험회피 방향이지만 한국 현물시장 하락의 단일 원인을 피치 발표로 확정하지 않는다.", "source": {"name": "Countryeconomy — KOSPI August 2023", "url - Network accessline 51
"finding": "코스피는 뉴욕 장 마감 뒤 나온 강등 발표 다음 날인 8월 2일 2,667.07에서 2,616.47로 1.90% 하락했다.", "significance": "미국 주식과 같은 위험회피 방향이지만 한국 현물시장 하락의 단일 원인을 피치 발표로 확정하지 않는다.", "source": {"name": "Countryeconomy — KOSPI August 2023", "url - Network accessline 52
"significance": "미국 주식과 같은 위험회피 방향이지만 한국 현물시장 하락의 단일 원인을 피치 발표로 확정하지 않는다.", "source": {"name": "Countryeconomy — KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"} }, - Network accessline 52
"significance": "미국 주식과 같은 위험회피 방향이지만 한국 현물시장 하락의 단일 원인을 피치 발표로 확정하지 않는다.", "source": {"name": "Countryeconomy — KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"} }, - Network accessline 53
"source": {"name": "Countryeconomy — KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"} - Network accessline 53
"source": {"name": "Countryeconomy — KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"} - Network accessline 57
"finding": "8월 2일 미국 2년물 수익률은 전일보다 4bp 낮고 10년물은 3bp 높았다. 같은 날 재무부는 1,030억 달러 규모의 분기 차환과 국채 발행 확대를 발표했다.", "significance": "장단기 금리의 방향도 달랐고 발행 공급 뉴스가 겹쳤다. 10년물 상승을 강등의 직접 비용으로 단정할 근거가 부족하다.", "source": {"name": "U.S. Trea - Network accessline 57
"finding": "8월 2일 미국 2년물 수익률은 전일보다 4bp 낮고 10년물은 3bp 높았다. 같은 날 재무부는 1,030억 달러 규모의 분기 차환과 국채 발행 확대를 발표했다.", "significance": "장단기 금리의 방향도 달랐고 발행 공급 뉴스가 겹쳤다. 10년물 상승을 강등의 직접 비용으로 단정할 근거가 부족하다.", "source": {"name": "U.S. Trea - Network accessline 58
"significance": "장단기 금리의 방향도 달랐고 발행 공급 뉴스가 겹쳤다. 10년물 상승을 강등의 직접 비용으로 단정할 근거가 부족하다.", "source": {"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671"} }, - Network accessline 58
"significance": "장단기 금리의 방향도 달랐고 발행 공급 뉴스가 겹쳤다. 10년물 상승을 강등의 직접 비용으로 단정할 근거가 부족하다.", "source": {"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671"} }, - Network accessline 59
"source": {"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671"} - Network accessline 59
"source": {"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671"} - Network accessline 63
"finding": "FRED 뉴욕 정오 EUR/USD는 8월 1일 1.0971에서 8월 2일 1.0939로 내려갔다. 이 관측 구간에는 달러가 유로 대비 강세였다.", "significance": "미국 등급 하향이면 달러가 약해질 것이라는 단선적 경로와 반대다. 뉴욕 정오 값이므로 발표 직후 장외 움직임은 따로 측정하지 못한다.", "source": {"name": "FRED DEXUSE - Network accessline 63
"finding": "FRED 뉴욕 정오 EUR/USD는 8월 1일 1.0971에서 8월 2일 1.0939로 내려갔다. 이 관측 구간에는 달러가 유로 대비 강세였다.", "significance": "미국 등급 하향이면 달러가 약해질 것이라는 단선적 경로와 반대다. 뉴욕 정오 값이므로 발표 직후 장외 움직임은 따로 측정하지 못한다.", "source": {"name": "FRED DEXUSE - Network accessline 64
"significance": "미국 등급 하향이면 달러가 약해질 것이라는 단선적 경로와 반대다. 뉴욕 정오 값이므로 발표 직후 장외 움직임은 따로 측정하지 못한다.", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"} } - Network accessline 64
"significance": "미국 등급 하향이면 달러가 약해질 것이라는 단선적 경로와 반대다. 뉴욕 정오 값이므로 발표 직후 장외 움직임은 따로 측정하지 못한다.", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"} } - Network accessline 65
"source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"} - Network accessline 65
"source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"} - Network accessline 72
"status": "CONSISTENT", "evidence": "Reuters는 강등 뒤 주식 약세를 연결해 보도했다. S&P 500 -1.38%와 VIX 상승이 방향을 뒷받침하지만 차익실현·금리 상승·고용지표도 겹쳤다.", "source": {"name": "Reuters — Wall Street after Fitch downgrade", "url": "https://www.markets - Network accessline 72
"status": "CONSISTENT", "evidence": "Reuters는 강등 뒤 주식 약세를 연결해 보도했다. S&P 500 -1.38%와 VIX 상승이 방향을 뒷받침하지만 차익실현·금리 상승·고용지표도 겹쳤다.", "source": {"name": "Reuters — Wall Street after Fitch downgrade", "url": "https://www.markets - Network accessline 73
"evidence": "Reuters는 강등 뒤 주식 약세를 연결해 보도했다. S&P 500 -1.38%와 VIX 상승이 방향을 뒷받침하지만 차익실현·금리 상승·고용지표도 겹쳤다.", "source": {"name": "Reuters — Wall Street after Fitch downgrade", "url": "https://www.marketscreener.com/news/latest/Wall-Stree - Network accessline 73
"evidence": "Reuters는 강등 뒤 주식 약세를 연결해 보도했다. S&P 500 -1.38%와 VIX 상승이 방향을 뒷받침하지만 차익실현·금리 상승·고용지표도 겹쳤다.", "source": {"name": "Reuters — Wall Street after Fitch downgrade", "url": "https://www.marketscreener.com/news/latest/Wall-Stree - Network accessline 74
"source": {"name": "Reuters — Wall Street after Fitch downgrade", "url": "https://www.marketscreener.com/news/latest/Wall-Street-ends-lower-as-investors-step-back-after-Fitch-downgrades-US-44498808/"} - Network accessline 74
"source": {"name": "Reuters — Wall Street after Fitch downgrade", "url": "https://www.marketscreener.com/news/latest/Wall-Street-ends-lower-as-investors-step-back-after-Fitch-downgrades-US-44498808/"} - Network accessline 79
"status": "CONSISTENT", "evidence": "코스피는 발표 다음 한국 거래일에 1.90% 하락했다. 시간순서와 방향은 일치하지만 동시 국내외 요인을 분리할 장중 근거는 없다.", "source": {"name": "Countryeconomy — KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/s - Network accessline 79
"status": "CONSISTENT", "evidence": "코스피는 발표 다음 한국 거래일에 1.90% 하락했다. 시간순서와 방향은 일치하지만 동시 국내외 요인을 분리할 장중 근거는 없다.", "source": {"name": "Countryeconomy — KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/s - Network accessline 80
"evidence": "코스피는 발표 다음 한국 거래일에 1.90% 하락했다. 시간순서와 방향은 일치하지만 동시 국내외 요인을 분리할 장중 근거는 없다.", "source": {"name": "Countryeconomy — KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"} }, - Network accessline 80
"evidence": "코스피는 발표 다음 한국 거래일에 1.90% 하락했다. 시간순서와 방향은 일치하지만 동시 국내외 요인을 분리할 장중 근거는 없다.", "source": {"name": "Countryeconomy — KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"} }, - Network accessline 81
"source": {"name": "Countryeconomy — KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"} - Network accessline 81
"source": {"name": "Countryeconomy — KOSPI August 2023", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2023-08"} - Network accessline 86
"status": "MIXED", "evidence": "8월 2일 10년물은 +3bp지만 2년물은 -4bp였다. 재무부의 차환·발행 확대 발표가 같은 날 있었으므로 국채금리 반응을 강등 단일 효과로 식별할 수 없다.", "source": {"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news - Network accessline 86
"status": "MIXED", "evidence": "8월 2일 10년물은 +3bp지만 2년물은 -4bp였다. 재무부의 차환·발행 확대 발표가 같은 날 있었으므로 국채금리 반응을 강등 단일 효과로 식별할 수 없다.", "source": {"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news - Network accessline 87
"evidence": "8월 2일 10년물은 +3bp지만 2년물은 -4bp였다. 재무부의 차환·발행 확대 발표가 같은 날 있었으므로 국채금리 반응을 강등 단일 효과로 식별할 수 없다.", "source": {"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671"} - Network accessline 87
"evidence": "8월 2일 10년물은 +3bp지만 2년물은 -4bp였다. 재무부의 차환·발행 확대 발표가 같은 날 있었으므로 국채금리 반응을 강등 단일 효과로 식별할 수 없다.", "source": {"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671"} - Network accessline 88
"source": {"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671"} - Network accessline 88
"source": {"name": "U.S. Treasury — Quarterly Refunding", "url": "https://home.treasury.gov/news/press-releases/jy1671"} - Network accessline 93
"status": "CONTRADICTED", "evidence": "첫 뉴욕 정오 관측에서 EUR/USD가 1.0971에서 1.0939로 내려 달러는 유로 대비 강세였다. 단일 통화쌍 결과이며 전체 달러지수의 판정은 아니다.", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"} - Network accessline 93
"status": "CONTRADICTED", "evidence": "첫 뉴욕 정오 관측에서 EUR/USD가 1.0971에서 1.0939로 내려 달러는 유로 대비 강세였다. 단일 통화쌍 결과이며 전체 달러지수의 판정은 아니다.", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"} - Network accessline 94
"evidence": "첫 뉴욕 정오 관측에서 EUR/USD가 1.0971에서 1.0939로 내려 달러는 유로 대비 강세였다. 단일 통화쌍 결과이며 전체 달러지수의 판정은 아니다.", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"} } - Network accessline 94
"evidence": "첫 뉴욕 정오 관측에서 EUR/USD가 1.0971에서 1.0939로 내려 달러는 유로 대비 강세였다. 단일 통화쌍 결과이며 전체 달러지수의 판정은 아니다.", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"} } - Network accessline 95
"source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"} - Network accessline 95
"source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"} - Network accessline 101
"event": "ADP 미국 7월 민간고용", "why_it_matters": "민간고용은 32만4천 명 증가했다. 첫 거래일 금리와 주식 가격에는 신용등급 이외의 노동시장 정보도 반영될 수 있다.", "source": {"name": "ADP Research Institute", "url": "https://mediacenter.adp.com/2023-08-02-ADP-National-E - Network accessline 101
"event": "ADP 미국 7월 민간고용", "why_it_matters": "민간고용은 32만4천 명 증가했다. 첫 거래일 금리와 주식 가격에는 신용등급 이외의 노동시장 정보도 반영될 수 있다.", "source": {"name": "ADP Research Institute", "url": "https://mediacenter.adp.com/2023-08-02-ADP-National-E - Network accessline 102
"why_it_matters": "민간고용은 32만4천 명 증가했다. 첫 거래일 금리와 주식 가격에는 신용등급 이외의 노동시장 정보도 반영될 수 있다.", "source": {"name": "ADP Research Institute", "url": "https://mediacenter.adp.com/2023-08-02-ADP-National-Employment-Report-Private-Sector-Emplo - Network accessline 102
"why_it_matters": "민간고용은 32만4천 명 증가했다. 첫 거래일 금리와 주식 가격에는 신용등급 이외의 노동시장 정보도 반영될 수 있다.", "source": {"name": "ADP Research Institute", "url": "https://mediacenter.adp.com/2023-08-02-ADP-National-Employment-Report-Private-Sector-Emplo - Network accessline 103
"source": {"name": "ADP Research Institute", "url": "https://mediacenter.adp.com/2023-08-02-ADP-National-Employment-Report-Private-Sector-Employment-Increased-by-324%2C000-Jobs-in-July-Annual-Pay-was-Up-6-2"} - Network accessline 103
"source": {"name": "ADP Research Institute", "url": "https://mediacenter.adp.com/2023-08-02-ADP-National-Employment-Report-Private-Sector-Employment-Increased-by-324%2C000-Jobs-in-July-Annual-Pay-was-Up-6-2"} - Network accessline 107
"event": "미 재무부 분기 차환 발표", "why_it_matters": "국채 공급 증가와 등급 뉴스가 같은 첫 거래일 금리에 겹친 교란요인이다. 1,030억 달러의 차환 규모가 제시됐다.", "source": {"name": "U.S. Treasury", "url": "https://home.treasury.gov/news/press-releases/jy1671"} - Network accessline 107
"event": "미 재무부 분기 차환 발표", "why_it_matters": "국채 공급 증가와 등급 뉴스가 같은 첫 거래일 금리에 겹친 교란요인이다. 1,030억 달러의 차환 규모가 제시됐다.", "source": {"name": "U.S. Treasury", "url": "https://home.treasury.gov/news/press-releases/jy1671"} - Network accessline 108
"why_it_matters": "국채 공급 증가와 등급 뉴스가 같은 첫 거래일 금리에 겹친 교란요인이다. 1,030억 달러의 차환 규모가 제시됐다.", "source": {"name": "U.S. Treasury", "url": "https://home.treasury.gov/news/press-releases/jy1671"} }, - Network accessline 108
"why_it_matters": "국채 공급 증가와 등급 뉴스가 같은 첫 거래일 금리에 겹친 교란요인이다. 1,030억 달러의 차환 규모가 제시됐다.", "source": {"name": "U.S. Treasury", "url": "https://home.treasury.gov/news/press-releases/jy1671"} }, - Network accessline 109
"source": {"name": "U.S. Treasury", "url": "https://home.treasury.gov/news/press-releases/jy1671"} - Network accessline 109
"source": {"name": "U.S. Treasury", "url": "https://home.treasury.gov/news/press-releases/jy1671"} - Network accessline 113
"event": "미국 7월 고용보고서", "why_it_matters": "비농업고용 18만7천 명 증가와 실업률 3.5%는 D+2 이후 단기금리와 경기 해석을 바꿀 수 있는 독립 변수다.", "source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archives/empsit_ - Network accessline 113
"event": "미국 7월 고용보고서", "why_it_matters": "비농업고용 18만7천 명 증가와 실업률 3.5%는 D+2 이후 단기금리와 경기 해석을 바꿀 수 있는 독립 변수다.", "source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archives/empsit_ - Network accessline 114
"why_it_matters": "비농업고용 18만7천 명 증가와 실업률 3.5%는 D+2 이후 단기금리와 경기 해석을 바꿀 수 있는 독립 변수다.", "source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archives/empsit_08042023.htm"} }, - Network accessline 114
"why_it_matters": "비농업고용 18만7천 명 증가와 실업률 3.5%는 D+2 이후 단기금리와 경기 해석을 바꿀 수 있는 독립 변수다.", "source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archives/empsit_08042023.htm"} }, - Network accessline 115
"source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archives/empsit_08042023.htm"} - Network accessline 115
"source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archives/empsit_08042023.htm"} - Network accessline 119
"event": "미국 7월 CPI", "why_it_matters": "헤드라인 CPI는 전월 대비 0.2%, 전년 대비 3.2%였다. D+5 이후 금리 변화가 신용 뉴스보다 물가 경로를 반영하는지 확인한다.", "source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archi - Network accessline 119
"event": "미국 7월 CPI", "why_it_matters": "헤드라인 CPI는 전월 대비 0.2%, 전년 대비 3.2%였다. D+5 이후 금리 변화가 신용 뉴스보다 물가 경로를 반영하는지 확인한다.", "source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archi - Network accessline 120
"why_it_matters": "헤드라인 CPI는 전월 대비 0.2%, 전년 대비 3.2%였다. D+5 이후 금리 변화가 신용 뉴스보다 물가 경로를 반영하는지 확인한다.", "source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archives/cpi_08102023.htm"} } - Network accessline 120
"why_it_matters": "헤드라인 CPI는 전월 대비 0.2%, 전년 대비 3.2%였다. D+5 이후 금리 변화가 신용 뉴스보다 물가 경로를 반영하는지 확인한다.", "source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archives/cpi_08102023.htm"} } - Network accessline 121
"source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archives/cpi_08102023.htm"} - Network accessline 121
"source": {"name": "U.S. Bureau of Labor Statistics", "url": "https://www.bls.gov/news.release/archives/cpi_08102023.htm"} - Network accessline 125
"event": "7월 FOMC 회의록 공개", "why_it_matters": "단기금리와 장기금리가 다른 방향으로 움직인 해석에서 통화정책 경로가 얼마나 중요한지 다시 확인할 일정이다.", "source": {"name": "Federal Reserve — 2023 FOMC calendar", "url": "https://www.federalreserve.gov/monetarypolicy - Network accessline 125
"event": "7월 FOMC 회의록 공개", "why_it_matters": "단기금리와 장기금리가 다른 방향으로 움직인 해석에서 통화정책 경로가 얼마나 중요한지 다시 확인할 일정이다.", "source": {"name": "Federal Reserve — 2023 FOMC calendar", "url": "https://www.federalreserve.gov/monetarypolicy - Network accessline 126
"why_it_matters": "단기금리와 장기금리가 다른 방향으로 움직인 해석에서 통화정책 경로가 얼마나 중요한지 다시 확인할 일정이다.", "source": {"name": "Federal Reserve — 2023 FOMC calendar", "url": "https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm"} } - Network accessline 126
"why_it_matters": "단기금리와 장기금리가 다른 방향으로 움직인 해석에서 통화정책 경로가 얼마나 중요한지 다시 확인할 일정이다.", "source": {"name": "Federal Reserve — 2023 FOMC calendar", "url": "https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm"} } - Network accessline 127
"source": {"name": "Federal Reserve — 2023 FOMC calendar", "url": "https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm"} - Network accessline 127
"source": {"name": "Federal Reserve — 2023 FOMC calendar", "url": "https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm"} - Network accessline 137
"similarity": "미국 최고 국가신용등급이 재정·정치 문제를 이유로 하향됐고 위험자산이 약세였다.", "difference": "2011년에는 국채가 안전자산으로 매수돼 금리가 하락했으며 유럽 재정위기 등 동시 충격도 컸다.", "source": {"name": "U.S. Treasury — 2012 Financial Stability Annual Report", "url": "ht - Network accessline 137
"similarity": "미국 최고 국가신용등급이 재정·정치 문제를 이유로 하향됐고 위험자산이 약세였다.", "difference": "2011년에는 국채가 안전자산으로 매수돼 금리가 하락했으며 유럽 재정위기 등 동시 충격도 컸다.", "source": {"name": "U.S. Treasury — 2012 Financial Stability Annual Report", "url": "ht - Network accessline 138
"difference": "2011년에는 국채가 안전자산으로 매수돼 금리가 하락했으며 유럽 재정위기 등 동시 충격도 컸다.", "source": {"name": "U.S. Treasury — 2012 Financial Stability Annual Report", "url": "https://home.treasury.gov/system/files/261/2012-Annual-Report.pdf"} - Network accessline 138
"difference": "2011년에는 국채가 안전자산으로 매수돼 금리가 하락했으며 유럽 재정위기 등 동시 충격도 컸다.", "source": {"name": "U.S. Treasury — 2012 Financial Stability Annual Report", "url": "https://home.treasury.gov/system/files/261/2012-Annual-Report.pdf"} - Network accessline 139
"source": {"name": "U.S. Treasury — 2012 Financial Stability Annual Report", "url": "https://home.treasury.gov/system/files/261/2012-Annual-Report.pdf"} - Network accessline 139
"source": {"name": "U.S. Treasury — 2012 Financial Stability Annual Report", "url": "https://home.treasury.gov/system/files/261/2012-Annual-Report.pdf"}
market-event-impact/tests/fixtures/market-series.json
- Network accessline 12
"roles": ["short_rates", "government_bond", "safe_haven"], "selection_priority": 10, "source": {"name": "fixture", "url": "https://example.test/ust2y"}, - Network accessline 12
"roles": ["short_rates", "government_bond", "safe_haven"], "selection_priority": 10, "source": {"name": "fixture", "url": "https://example.test/ust2y"}, - Network accessline 13
"selection_priority": 10, "source": {"name": "fixture", "url": "https://example.test/ust2y"}, "observations": [ - Network accessline 13
"selection_priority": 10, "source": {"name": "fixture", "url": "https://example.test/ust2y"}, "observations": [ - Network accessline 14
"source": {"name": "fixture", "url": "https://example.test/ust2y"}, - Network accessline 14
"source": {"name": "fixture", "url": "https://example.test/ust2y"}, - Network accessline 41
"price_type": "market_close", "roles": ["long_rates", "government_bond", "curve"], "source": {"name": "fixture", "url": "https://example.test/ust10y"}, - Network accessline 41
"price_type": "market_close", "roles": ["long_rates", "government_bond", "curve"], "source": {"name": "fixture", "url": "https://example.test/ust10y"}, - Network accessline 42
"roles": ["long_rates", "government_bond", "curve"], "source": {"name": "fixture", "url": "https://example.test/ust10y"}, "observations": [ - Network accessline 42
"roles": ["long_rates", "government_bond", "curve"], "source": {"name": "fixture", "url": "https://example.test/ust10y"}, "observations": [ - Network accessline 43
"source": {"name": "fixture", "url": "https://example.test/ust10y"}, - Network accessline 43
"source": {"name": "fixture", "url": "https://example.test/ust10y"}, - Network accessline 63
"price_type": "market_close", "roles": ["broad_equity", "affected_equity"], "source": {"name": "fixture", "url": "https://example.test/kospi"}, - Network accessline 63
"price_type": "market_close", "roles": ["broad_equity", "affected_equity"], "source": {"name": "fixture", "url": "https://example.test/kospi"}, - Network accessline 64
"roles": ["broad_equity", "affected_equity"], "source": {"name": "fixture", "url": "https://example.test/kospi"}, "observations": [ - Network accessline 64
"roles": ["broad_equity", "affected_equity"], "source": {"name": "fixture", "url": "https://example.test/kospi"}, "observations": [ - Network accessline 65
"source": {"name": "fixture", "url": "https://example.test/kospi"}, - Network accessline 65
"source": {"name": "fixture", "url": "https://example.test/kospi"}, - Network accessline 85
"price_type": "daily_close", "roles": ["fx", "safe_haven"], "source": {"name": "fixture", "url": "https://example.test/dxy"}, - Network accessline 85
"price_type": "daily_close", "roles": ["fx", "safe_haven"], "source": {"name": "fixture", "url": "https://example.test/dxy"}, - Network accessline 86
"roles": ["fx", "safe_haven"], "source": {"name": "fixture", "url": "https://example.test/dxy"}, "observations": [ - Network accessline 86
"roles": ["fx", "safe_haven"], "source": {"name": "fixture", "url": "https://example.test/dxy"}, "observations": [ - Network accessline 87
"source": {"name": "fixture", "url": "https://example.test/dxy"}, - Network accessline 87
"source": {"name": "fixture", "url": "https://example.test/dxy"}, - Network accessline 107
"price_type": "noon_buying_rate", "roles": ["fx"], "source": {"name": "fixture", "url": "https://example.test/usdkrw"}, - Network accessline 107
"price_type": "noon_buying_rate", "roles": ["fx"], "source": {"name": "fixture", "url": "https://example.test/usdkrw"}, - Network accessline 108
"roles": ["fx"], "source": {"name": "fixture", "url": "https://example.test/usdkrw"}, "observations": [ - Network accessline 108
"roles": ["fx"], "source": {"name": "fixture", "url": "https://example.test/usdkrw"}, "observations": [ - Network accessline 109
"source": {"name": "fixture", "url": "https://example.test/usdkrw"}, - Network accessline 109
"source": {"name": "fixture", "url": "https://example.test/usdkrw"}, - Network accessline 130
"roles": ["bank_equity", "affected_equity"], "selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/kre"}, - Network accessline 130
"roles": ["bank_equity", "affected_equity"], "selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/kre"}, - Network accessline 131
"selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/kre"}, "observations": [ - Network accessline 131
"selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/kre"}, "observations": [ - Network accessline 132
"source": {"name": "fixture", "url": "https://example.test/kre"}, - Network accessline 132
"source": {"name": "fixture", "url": "https://example.test/kre"}, - Network accessline 152
"roles": ["credit"], "selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/cdx"}, - Network accessline 152
"roles": ["credit"], "selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/cdx"}, - Network accessline 153
"selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/cdx"}, "observations": [ - Network accessline 153
"selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/cdx"}, "observations": [ - Network accessline 154
"source": {"name": "fixture", "url": "https://example.test/cdx"}, - Network accessline 154
"source": {"name": "fixture", "url": "https://example.test/cdx"}, - Network accessline 174
"roles": ["volatility"], "selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/vix"}, - Network accessline 174
"roles": ["volatility"], "selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/vix"}, - Network accessline 175
"selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/vix"}, "observations": [ - Network accessline 175
"selection_priority": 20, "source": {"name": "fixture", "url": "https://example.test/vix"}, "observations": [ - Network accessline 176
"source": {"name": "fixture", "url": "https://example.test/vix"}, - Network accessline 176
"source": {"name": "fixture", "url": "https://example.test/vix"},
market-event-impact/tests/fixtures/research.json
- Network accessline 13
"surprise_assessment": "시장이 새롭게 반영한 핵심은 동결 여부가 아니라 향후 인하 속도와 최종금리 경로였다.", "event_type": "동결보다 향후 정책경로 재가격이 중심인 이벤트", "source": {"name": "fixture FOMC statement", "url": "https://example.test/fomc-statement"} - Network accessline 13
"surprise_assessment": "시장이 새롭게 반영한 핵심은 동결 여부가 아니라 향후 인하 속도와 최종금리 경로였다.", "event_type": "동결보다 향후 정책경로 재가격이 중심인 이벤트", "source": {"name": "fixture FOMC statement", "url": "https://example.test/fomc-statement"} - Network accessline 14
"event_type": "동결보다 향후 정책경로 재가격이 중심인 이벤트", "source": {"name": "fixture FOMC statement", "url": "https://example.test/fomc-statement"} }, - Network accessline 14
"event_type": "동결보다 향후 정책경로 재가격이 중심인 이벤트", "source": {"name": "fixture FOMC statement", "url": "https://example.test/fomc-statement"} }, - Network accessline 15
"source": {"name": "fixture FOMC statement", "url": "https://example.test/fomc-statement"} - Network accessline 15
"source": {"name": "fixture FOMC statement", "url": "https://example.test/fomc-statement"} - Network accessline 20
"finding": "인플레이션 진전에 대한 표현이 이전보다 신중해졌다.", "significance": "조기 인하의 문턱이 높아졌다는 신호로 해석될 수 있다.", "source": {"name": "fixture statement comparison", "url": "https://example.test/statement-redline"} - Network accessline 20
"finding": "인플레이션 진전에 대한 표현이 이전보다 신중해졌다.", "significance": "조기 인하의 문턱이 높아졌다는 신호로 해석될 수 있다.", "source": {"name": "fixture statement comparison", "url": "https://example.test/statement-redline"} - Network accessline 21
"significance": "조기 인하의 문턱이 높아졌다는 신호로 해석될 수 있다.", "source": {"name": "fixture statement comparison", "url": "https://example.test/statement-redline"} }, - Network accessline 21
"significance": "조기 인하의 문턱이 높아졌다는 신호로 해석될 수 있다.", "source": {"name": "fixture statement comparison", "url": "https://example.test/statement-redline"} }, - Network accessline 22
"source": {"name": "fixture statement comparison", "url": "https://example.test/statement-redline"} - Network accessline 22
"source": {"name": "fixture statement comparison", "url": "https://example.test/statement-redline"} - Network accessline 26
"finding": "위원들의 중간 정책금리 경로가 이전 전망보다 높아졌다.", "significance": "동결 결정과 별개로 향후 완화 속도가 느려질 가능성을 보여줬다.", "source": {"name": "fixture SEP", "url": "https://example.test/sep"} - Network accessline 26
"finding": "위원들의 중간 정책금리 경로가 이전 전망보다 높아졌다.", "significance": "동결 결정과 별개로 향후 완화 속도가 느려질 가능성을 보여줬다.", "source": {"name": "fixture SEP", "url": "https://example.test/sep"} - Network accessline 27
"significance": "동결 결정과 별개로 향후 완화 속도가 느려질 가능성을 보여줬다.", "source": {"name": "fixture SEP", "url": "https://example.test/sep"} }, - Network accessline 27
"significance": "동결 결정과 별개로 향후 완화 속도가 느려질 가능성을 보여줬다.", "source": {"name": "fixture SEP", "url": "https://example.test/sep"} }, - Network accessline 28
"source": {"name": "fixture SEP", "url": "https://example.test/sep"} - Network accessline 28
"source": {"name": "fixture SEP", "url": "https://example.test/sep"} - Network accessline 32
"finding": "인하 재개에는 물가 둔화에 대한 추가 확신이 필요하다는 조건이 강조됐다.", "significance": "다음 회의보다 데이터 의존적인 경로가 중요해졌다.", "source": {"name": "fixture press conference", "url": "https://example.test/presser"} - Network accessline 32
"finding": "인하 재개에는 물가 둔화에 대한 추가 확신이 필요하다는 조건이 강조됐다.", "significance": "다음 회의보다 데이터 의존적인 경로가 중요해졌다.", "source": {"name": "fixture press conference", "url": "https://example.test/presser"} - Network accessline 33
"significance": "다음 회의보다 데이터 의존적인 경로가 중요해졌다.", "source": {"name": "fixture press conference", "url": "https://example.test/presser"} } - Network accessline 33
"significance": "다음 회의보다 데이터 의존적인 경로가 중요해졌다.", "source": {"name": "fixture press conference", "url": "https://example.test/presser"} } - Network accessline 34
"source": {"name": "fixture press conference", "url": "https://example.test/presser"} - Network accessline 34
"source": {"name": "fixture press conference", "url": "https://example.test/presser"} - Network accessline 40
"finding": "단기물 금리가 장기물보다 크게 상승했다.", "significance": "시장이 장기 성장률보다 가까운 시기의 정책금리 경로를 더 크게 재가격한 움직임과 일관된다.", "source": {"name": "fixture market wrap", "url": "https://example.test/market-wrap"} - Network accessline 40
"finding": "단기물 금리가 장기물보다 크게 상승했다.", "significance": "시장이 장기 성장률보다 가까운 시기의 정책금리 경로를 더 크게 재가격한 움직임과 일관된다.", "source": {"name": "fixture market wrap", "url": "https://example.test/market-wrap"} - Network accessline 41
"significance": "시장이 장기 성장률보다 가까운 시기의 정책금리 경로를 더 크게 재가격한 움직임과 일관된다.", "source": {"name": "fixture market wrap", "url": "https://example.test/market-wrap"} }, - Network accessline 41
"significance": "시장이 장기 성장률보다 가까운 시기의 정책금리 경로를 더 크게 재가격한 움직임과 일관된다.", "source": {"name": "fixture market wrap", "url": "https://example.test/market-wrap"} }, - Network accessline 42
"source": {"name": "fixture market wrap", "url": "https://example.test/market-wrap"} - Network accessline 42
"source": {"name": "fixture market wrap", "url": "https://example.test/market-wrap"} - Network accessline 46
"finding": "향후 인하 여부가 다음 CPI와 고용지표에 더 민감해졌다.", "significance": "이번 회의 해석은 후속 데이터에 의해 빠르게 뒤집힐 수 있다.", "source": {"name": "fixture policy analysis", "url": "https://example.test/policy-analysis"} - Network accessline 46
"finding": "향후 인하 여부가 다음 CPI와 고용지표에 더 민감해졌다.", "significance": "이번 회의 해석은 후속 데이터에 의해 빠르게 뒤집힐 수 있다.", "source": {"name": "fixture policy analysis", "url": "https://example.test/policy-analysis"} - Network accessline 47
"significance": "이번 회의 해석은 후속 데이터에 의해 빠르게 뒤집힐 수 있다.", "source": {"name": "fixture policy analysis", "url": "https://example.test/policy-analysis"} } - Network accessline 47
"significance": "이번 회의 해석은 후속 데이터에 의해 빠르게 뒤집힐 수 있다.", "source": {"name": "fixture policy analysis", "url": "https://example.test/policy-analysis"} } - Network accessline 48
"source": {"name": "fixture policy analysis", "url": "https://example.test/policy-analysis"} - Network accessline 48
"source": {"name": "fixture policy analysis", "url": "https://example.test/policy-analysis"} - Network accessline 55
"status": "consistent", "evidence": "UST 2Y가 D-1 대비 6bp 올라 UST 10Y의 1bp 상승을 웃돌았다.", "source": {"name": "fixture Treasury data", "url": "https://example.test/treasury"} - Network accessline 55
"status": "consistent", "evidence": "UST 2Y가 D-1 대비 6bp 올라 UST 10Y의 1bp 상승을 웃돌았다.", "source": {"name": "fixture Treasury data", "url": "https://example.test/treasury"} - Network accessline 56
"evidence": "UST 2Y가 D-1 대비 6bp 올라 UST 10Y의 1bp 상승을 웃돌았다.", "source": {"name": "fixture Treasury data", "url": "https://example.test/treasury"} }, - Network accessline 56
"evidence": "UST 2Y가 D-1 대비 6bp 올라 UST 10Y의 1bp 상승을 웃돌았다.", "source": {"name": "fixture Treasury data", "url": "https://example.test/treasury"} }, - Network accessline 57
"source": {"name": "fixture Treasury data", "url": "https://example.test/treasury"} - Network accessline 57
"source": {"name": "fixture Treasury data", "url": "https://example.test/treasury"} - Network accessline 62
"status": "limited", "evidence": "DXY 상승폭은 0.15%에 그쳐 금리 반응보다 제한적이었다.", "source": {"name": "fixture FX data", "url": "https://example.test/dxy"} - Network accessline 62
"status": "limited", "evidence": "DXY 상승폭은 0.15%에 그쳐 금리 반응보다 제한적이었다.", "source": {"name": "fixture FX data", "url": "https://example.test/dxy"} - Network accessline 63
"evidence": "DXY 상승폭은 0.15%에 그쳐 금리 반응보다 제한적이었다.", "source": {"name": "fixture FX data", "url": "https://example.test/dxy"} }, - Network accessline 63
"evidence": "DXY 상승폭은 0.15%에 그쳐 금리 반응보다 제한적이었다.", "source": {"name": "fixture FX data", "url": "https://example.test/dxy"} }, - Network accessline 64
"source": {"name": "fixture FX data", "url": "https://example.test/dxy"} - Network accessline 64
"source": {"name": "fixture FX data", "url": "https://example.test/dxy"} - Network accessline 69
"status": "consistent", "evidence": "다음 한국 거래일 USD/KRW는 0.36% 상승했고 KOSPI는 1.00% 하락했다.", "source": {"name": "fixture Korea market data", "url": "https://example.test/korea-market"} - Network accessline 69
"status": "consistent", "evidence": "다음 한국 거래일 USD/KRW는 0.36% 상승했고 KOSPI는 1.00% 하락했다.", "source": {"name": "fixture Korea market data", "url": "https://example.test/korea-market"} - Network accessline 70
"evidence": "다음 한국 거래일 USD/KRW는 0.36% 상승했고 KOSPI는 1.00% 하락했다.", "source": {"name": "fixture Korea market data", "url": "https://example.test/korea-market"} } - Network accessline 70
"evidence": "다음 한국 거래일 USD/KRW는 0.36% 상승했고 KOSPI는 1.00% 하락했다.", "source": {"name": "fixture Korea market data", "url": "https://example.test/korea-market"} } - Network accessline 71
"source": {"name": "fixture Korea market data", "url": "https://example.test/korea-market"} - Network accessline 71
"source": {"name": "fixture Korea market data", "url": "https://example.test/korea-market"} - Network accessline 77
"event": "미국 고용보고서(NFP)", "why_it_matters": "노동시장 둔화 여부가 인하 재개 조건을 바꿀 수 있다.", "source": {"name": "fixture BLS calendar", "url": "https://example.test/nfp-calendar"} - Network accessline 77
"event": "미국 고용보고서(NFP)", "why_it_matters": "노동시장 둔화 여부가 인하 재개 조건을 바꿀 수 있다.", "source": {"name": "fixture BLS calendar", "url": "https://example.test/nfp-calendar"} - Network accessline 78
"why_it_matters": "노동시장 둔화 여부가 인하 재개 조건을 바꿀 수 있다.", "source": {"name": "fixture BLS calendar", "url": "https://example.test/nfp-calendar"} }, - Network accessline 78
"why_it_matters": "노동시장 둔화 여부가 인하 재개 조건을 바꿀 수 있다.", "source": {"name": "fixture BLS calendar", "url": "https://example.test/nfp-calendar"} }, - Network accessline 79
"source": {"name": "fixture BLS calendar", "url": "https://example.test/nfp-calendar"} - Network accessline 79
"source": {"name": "fixture BLS calendar", "url": "https://example.test/nfp-calendar"} - Network accessline 83
"event": "FOMC 의사록", "why_it_matters": "점도표 분산과 위원별 정책경로 판단의 배경을 확인할 수 있다.", "source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/minutes-calendar"} - Network accessline 83
"event": "FOMC 의사록", "why_it_matters": "점도표 분산과 위원별 정책경로 판단의 배경을 확인할 수 있다.", "source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/minutes-calendar"} - Network accessline 84
"why_it_matters": "점도표 분산과 위원별 정책경로 판단의 배경을 확인할 수 있다.", "source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/minutes-calendar"} }, - Network accessline 84
"why_it_matters": "점도표 분산과 위원별 정책경로 판단의 배경을 확인할 수 있다.", "source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/minutes-calendar"} }, - Network accessline 85
"source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/minutes-calendar"} - Network accessline 85
"source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/minutes-calendar"} - Network accessline 89
"event": "미국 CPI", "why_it_matters": "물가 둔화에 대한 추가 확신이라는 연준의 조건을 직접 시험한다.", "source": {"name": "fixture BLS calendar", "url": "https://example.test/cpi-calendar"} - Network accessline 89
"event": "미국 CPI", "why_it_matters": "물가 둔화에 대한 추가 확신이라는 연준의 조건을 직접 시험한다.", "source": {"name": "fixture BLS calendar", "url": "https://example.test/cpi-calendar"} - Network accessline 90
"why_it_matters": "물가 둔화에 대한 추가 확신이라는 연준의 조건을 직접 시험한다.", "source": {"name": "fixture BLS calendar", "url": "https://example.test/cpi-calendar"} }, - Network accessline 90
"why_it_matters": "물가 둔화에 대한 추가 확신이라는 연준의 조건을 직접 시험한다.", "source": {"name": "fixture BLS calendar", "url": "https://example.test/cpi-calendar"} }, - Network accessline 91
"source": {"name": "fixture BLS calendar", "url": "https://example.test/cpi-calendar"} - Network accessline 91
"source": {"name": "fixture BLS calendar", "url": "https://example.test/cpi-calendar"} - Network accessline 95
"event": "다음 FOMC", "why_it_matters": "고용·물가 데이터가 실제 정책경로 변경으로 이어졌는지 확인한다.", "source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/fomc-calendar"} - Network accessline 95
"event": "다음 FOMC", "why_it_matters": "고용·물가 데이터가 실제 정책경로 변경으로 이어졌는지 확인한다.", "source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/fomc-calendar"} - Network accessline 96
"why_it_matters": "고용·물가 데이터가 실제 정책경로 변경으로 이어졌는지 확인한다.", "source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/fomc-calendar"} } - Network accessline 96
"why_it_matters": "고용·물가 데이터가 실제 정책경로 변경으로 이어졌는지 확인한다.", "source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/fomc-calendar"} } - Network accessline 97
"source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/fomc-calendar"} - Network accessline 97
"source": {"name": "fixture Federal Reserve calendar", "url": "https://example.test/fomc-calendar"} - Network accessline 107
"similarity": "결정보다 점도표와 기자회견이 단기금리를 움직였다는 점이다.", "difference": "당시에는 달러 반응이 더 강했다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-1"} - Network accessline 107
"similarity": "결정보다 점도표와 기자회견이 단기금리를 움직였다는 점이다.", "difference": "당시에는 달러 반응이 더 강했다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-1"} - Network accessline 108
"difference": "당시에는 달러 반응이 더 강했다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-1"} }, - Network accessline 108
"difference": "당시에는 달러 반응이 더 강했다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-1"} }, - Network accessline 109
"source": {"name": "fixture historical study", "url": "https://example.test/history-1"} - Network accessline 109
"source": {"name": "fixture historical study", "url": "https://example.test/history-1"} - Network accessline 114
"similarity": "데이터 의존성과 인하 조건이 핵심이었다는 점이다.", "difference": "당시 장기금리 반응은 이번보다 컸다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-2"} - Network accessline 114
"similarity": "데이터 의존성과 인하 조건이 핵심이었다는 점이다.", "difference": "당시 장기금리 반응은 이번보다 컸다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-2"} - Network accessline 115
"difference": "당시 장기금리 반응은 이번보다 컸다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-2"} }, - Network accessline 115
"difference": "당시 장기금리 반응은 이번보다 컸다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-2"} }, - Network accessline 116
"source": {"name": "fixture historical study", "url": "https://example.test/history-2"} - Network accessline 116
"source": {"name": "fixture historical study", "url": "https://example.test/history-2"} - Network accessline 121
"similarity": "동결이 예상됐고 정책경로 재가격이 중심이었다는 점이다.", "difference": "이번에는 한국 주식의 다음 거래일 반응이 더 뚜렷했다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-3"} - Network accessline 121
"similarity": "동결이 예상됐고 정책경로 재가격이 중심이었다는 점이다.", "difference": "이번에는 한국 주식의 다음 거래일 반응이 더 뚜렷했다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-3"} - Network accessline 122
"difference": "이번에는 한국 주식의 다음 거래일 반응이 더 뚜렷했다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-3"} } - Network accessline 122
"difference": "이번에는 한국 주식의 다음 거래일 반응이 더 뚜렷했다는 점이다.", "source": {"name": "fixture historical study", "url": "https://example.test/history-3"} } - Network accessline 123
"source": {"name": "fixture historical study", "url": "https://example.test/history-3"} - Network accessline 123
"source": {"name": "fixture historical study", "url": "https://example.test/history-3"} - Network accessline 137
"surprise_assessment": "폐쇄 자체와 손실 인식 속도가 사전 예상보다 빨랐고, 시장의 핵심 서프라이즈는 개별 은행 문제가 지역은행 전반의 예금·유동성 위험으로 번질 가능성이었다.", "classification": "지역은행에서 시작된 금융스트레스와 정책경로 재가격 이벤트", "source": {"name": "fixture regulator release", "url": "htt - Network accessline 137
"surprise_assessment": "폐쇄 자체와 손실 인식 속도가 사전 예상보다 빨랐고, 시장의 핵심 서프라이즈는 개별 은행 문제가 지역은행 전반의 예금·유동성 위험으로 번질 가능성이었다.", "classification": "지역은행에서 시작된 금융스트레스와 정책경로 재가격 이벤트", "source": {"name": "fixture regulator release", "url": "htt - Network accessline 138
"classification": "지역은행에서 시작된 금융스트레스와 정책경로 재가격 이벤트", "source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} }, - Network accessline 138
"classification": "지역은행에서 시작된 금융스트레스와 정책경로 재가격 이벤트", "source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} }, - Network accessline 139
"source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} - Network accessline 139
"source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} - Network accessline 144
"finding": "자본조달 계획 발표 이후 예금 인출이 가속됐고 규제당국이 은행을 폐쇄했다.", "significance": "유동성 문제가 독립적인 자본조달 실패에서 시스템 전염 가능성으로 바뀌었다.", "source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} - Network accessline 144
"finding": "자본조달 계획 발표 이후 예금 인출이 가속됐고 규제당국이 은행을 폐쇄했다.", "significance": "유동성 문제가 독립적인 자본조달 실패에서 시스템 전염 가능성으로 바뀌었다.", "source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} - Network accessline 145
"significance": "유동성 문제가 독립적인 자본조달 실패에서 시스템 전염 가능성으로 바뀌었다.", "source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} }, - Network accessline 145
"significance": "유동성 문제가 독립적인 자본조달 실패에서 시스템 전염 가능성으로 바뀌었다.", "source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} }, - Network accessline 146
"source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} - Network accessline 146
"source": {"name": "fixture regulator release", "url": "https://example.test/svb-regulator"} - Network accessline 150
"finding": "당국은 예금자 보호와 은행권 유동성 공급 방안을 준비했다.", "significance": "신용위험 확대와 정책 백스톱 기대가 동시에 가격에 반영될 조건이 형성됐다.", "source": {"name": "fixture policy release", "url": "https://example.test/svb-policy"} - Network accessline 150
"finding": "당국은 예금자 보호와 은행권 유동성 공급 방안을 준비했다.", "significance": "신용위험 확대와 정책 백스톱 기대가 동시에 가격에 반영될 조건이 형성됐다.", "source": {"name": "fixture policy release", "url": "https://example.test/svb-policy"} - Network accessline 151
"significance": "신용위험 확대와 정책 백스톱 기대가 동시에 가격에 반영될 조건이 형성됐다.", "source": {"name": "fixture policy release", "url": "https://example.test/svb-policy"} } - Network accessline 151
"significance": "신용위험 확대와 정책 백스톱 기대가 동시에 가격에 반영될 조건이 형성됐다.", "source": {"name": "fixture policy release", "url": "https://example.test/svb-policy"} } - Network accessline 152
"source": {"name": "fixture policy release", "url": "https://example.test/svb-policy"} - Network accessline 152
"source": {"name": "fixture policy release", "url": "https://example.test/svb-policy"} - Network accessline 158
"finding": "미국 2년물 금리가 급락했다.", "significance": "시장은 금융안정 위험이 추가 긴축 여력을 제한할 가능성을 가격에 반영했다.", "source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} - Network accessline 158
"finding": "미국 2년물 금리가 급락했다.", "significance": "시장은 금융안정 위험이 추가 긴축 여력을 제한할 가능성을 가격에 반영했다.", "source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} - Network accessline 159
"significance": "시장은 금융안정 위험이 추가 긴축 여력을 제한할 가능성을 가격에 반영했다.", "source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} }, - Network accessline 159
"significance": "시장은 금융안정 위험이 추가 긴축 여력을 제한할 가능성을 가격에 반영했다.", "source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} }, - Network accessline 160
"source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} - Network accessline 160
"source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} - Network accessline 164
"finding": "지역은행 주가는 하락하고 신용스프레드와 변동성은 상승했다.", "significance": "충격이 단일 은행 주가가 아니라 은행권과 신용시장으로 전달됐음을 보여준다.", "source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} - Network accessline 164
"finding": "지역은행 주가는 하락하고 신용스프레드와 변동성은 상승했다.", "significance": "충격이 단일 은행 주가가 아니라 은행권과 신용시장으로 전달됐음을 보여준다.", "source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} - Network accessline 165
"significance": "충격이 단일 은행 주가가 아니라 은행권과 신용시장으로 전달됐음을 보여준다.", "source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} } - Network accessline 165
"significance": "충격이 단일 은행 주가가 아니라 은행권과 신용시장으로 전달됐음을 보여준다.", "source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} } - Network accessline 166
"source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} - Network accessline 166
"source": {"name": "fixture market wrap", "url": "https://example.test/svb-market"} - Network accessline 173
"status": "confirmed", "evidence": "KRE가 D-1 대비 D0에 하락하고 다음 거래일 낙폭이 확대됐다.", "source": {"name": "fixture KRE", "url": "https://example.test/kre"} - Network accessline 173
"status": "confirmed", "evidence": "KRE가 D-1 대비 D0에 하락하고 다음 거래일 낙폭이 확대됐다.", "source": {"name": "fixture KRE", "url": "https://example.test/kre"} - Network accessline 174
"evidence": "KRE가 D-1 대비 D0에 하락하고 다음 거래일 낙폭이 확대됐다.", "source": {"name": "fixture KRE", "url": "https://example.test/kre"} }, - Network accessline 174
"evidence": "KRE가 D-1 대비 D0에 하락하고 다음 거래일 낙폭이 확대됐다.", "source": {"name": "fixture KRE", "url": "https://example.test/kre"} }, - Network accessline 175
"source": {"name": "fixture KRE", "url": "https://example.test/kre"} - Network accessline 175
"source": {"name": "fixture KRE", "url": "https://example.test/kre"} - Network accessline 180
"status": "consistent", "evidence": "CDX IG와 VIX가 함께 상승해 위험회피가 주식 밖으로 확산됐다.", "source": {"name": "fixture risk data", "url": "https://example.test/svb-risk"} - Network accessline 180
"status": "consistent", "evidence": "CDX IG와 VIX가 함께 상승해 위험회피가 주식 밖으로 확산됐다.", "source": {"name": "fixture risk data", "url": "https://example.test/svb-risk"} - Network accessline 181
"evidence": "CDX IG와 VIX가 함께 상승해 위험회피가 주식 밖으로 확산됐다.", "source": {"name": "fixture risk data", "url": "https://example.test/svb-risk"} }, - Network accessline 181
"evidence": "CDX IG와 VIX가 함께 상승해 위험회피가 주식 밖으로 확산됐다.", "source": {"name": "fixture risk data", "url": "https://example.test/svb-risk"} }, - Network accessline 182
"source": {"name": "fixture risk data", "url": "https://example.test/svb-risk"} - Network accessline 182
"source": {"name": "fixture risk data", "url": "https://example.test/svb-risk"} - Network accessline 187
"status": "consistent", "evidence": "UST 2Y가 D0에 46bp 하락해 향후 긴축경로가 빠르게 낮아졌다.", "source": {"name": "fixture Treasury data", "url": "https://example.test/ust2y"} - Network accessline 187
"status": "consistent", "evidence": "UST 2Y가 D0에 46bp 하락해 향후 긴축경로가 빠르게 낮아졌다.", "source": {"name": "fixture Treasury data", "url": "https://example.test/ust2y"} - Network accessline 188
"evidence": "UST 2Y가 D0에 46bp 하락해 향후 긴축경로가 빠르게 낮아졌다.", "source": {"name": "fixture Treasury data", "url": "https://example.test/ust2y"} } - Network accessline 188
"evidence": "UST 2Y가 D0에 46bp 하락해 향후 긴축경로가 빠르게 낮아졌다.", "source": {"name": "fixture Treasury data", "url": "https://example.test/ust2y"} } - Network accessline 189
"source": {"name": "fixture Treasury data", "url": "https://example.test/ust2y"} - Network accessline 189
"source": {"name": "fixture Treasury data", "url": "https://example.test/ust2y"} - Network accessline 195
"event": "미국 당국의 예금자 보호·유동성 대책", "why_it_matters": "정책 백스톱의 범위가 은행권 전염 위험을 제한하는지 확인한다.", "source": {"name": "fixture policy calendar", "url": "https://example.test/svb-policy"} - Network accessline 195
"event": "미국 당국의 예금자 보호·유동성 대책", "why_it_matters": "정책 백스톱의 범위가 은행권 전염 위험을 제한하는지 확인한다.", "source": {"name": "fixture policy calendar", "url": "https://example.test/svb-policy"} - Network accessline 196
"why_it_matters": "정책 백스톱의 범위가 은행권 전염 위험을 제한하는지 확인한다.", "source": {"name": "fixture policy calendar", "url": "https://example.test/svb-policy"} }, - Network accessline 196
"why_it_matters": "정책 백스톱의 범위가 은행권 전염 위험을 제한하는지 확인한다.", "source": {"name": "fixture policy calendar", "url": "https://example.test/svb-policy"} }, - Network accessline 197
"source": {"name": "fixture policy calendar", "url": "https://example.test/svb-policy"} - Network accessline 197
"source": {"name": "fixture policy calendar", "url": "https://example.test/svb-policy"} - Network accessline 201
"event": "FOMC 결정", "why_it_matters": "금융안정 위험이 실제 정책금리 경로에 반영되는지 확인한다.", "source": {"name": "fixture Fed calendar", "url": "https://example.test/fomc-calendar-2023"} - Network accessline 201
"event": "FOMC 결정", "why_it_matters": "금융안정 위험이 실제 정책금리 경로에 반영되는지 확인한다.", "source": {"name": "fixture Fed calendar", "url": "https://example.test/fomc-calendar-2023"} - Network accessline 202
"why_it_matters": "금융안정 위험이 실제 정책금리 경로에 반영되는지 확인한다.", "source": {"name": "fixture Fed calendar", "url": "https://example.test/fomc-calendar-2023"} } - Network accessline 202
"why_it_matters": "금융안정 위험이 실제 정책금리 경로에 반영되는지 확인한다.", "source": {"name": "fixture Fed calendar", "url": "https://example.test/fomc-calendar-2023"} } - Network accessline 203
"source": {"name": "fixture Fed calendar", "url": "https://example.test/fomc-calendar-2023"} - Network accessline 203
"source": {"name": "fixture Fed calendar", "url": "https://example.test/fomc-calendar-2023"} - Network accessline 214
"similarity": "금융불안이 단기금리와 변동성에 즉시 반영됐다는 점이다.", "difference": "당시에는 투자은행과 도매자금시장이 충격의 중심이었다.", "source": {"name": "fixture historical source", "url": "https://example.test/bear-stearns"} - Network accessline 214
"similarity": "금융불안이 단기금리와 변동성에 즉시 반영됐다는 점이다.", "difference": "당시에는 투자은행과 도매자금시장이 충격의 중심이었다.", "source": {"name": "fixture historical source", "url": "https://example.test/bear-stearns"} - Network accessline 215
"difference": "당시에는 투자은행과 도매자금시장이 충격의 중심이었다.", "source": {"name": "fixture historical source", "url": "https://example.test/bear-stearns"} }, - Network accessline 215
"difference": "당시에는 투자은행과 도매자금시장이 충격의 중심이었다.", "source": {"name": "fixture historical source", "url": "https://example.test/bear-stearns"} }, - Network accessline 216
"source": {"name": "fixture historical source", "url": "https://example.test/bear-stearns"} - Network accessline 216
"source": {"name": "fixture historical source", "url": "https://example.test/bear-stearns"} - Network accessline 222
"similarity": "은행주·신용스프레드·변동성이 동시에 악화됐다는 점이다.", "difference": "Lehman 충격은 글로벌 결제·자금시장 전염 규모가 훨씬 컸다.", "source": {"name": "fixture historical source", "url": "https://example.test/lehman"} - Network accessline 222
"similarity": "은행주·신용스프레드·변동성이 동시에 악화됐다는 점이다.", "difference": "Lehman 충격은 글로벌 결제·자금시장 전염 규모가 훨씬 컸다.", "source": {"name": "fixture historical source", "url": "https://example.test/lehman"} - Network accessline 223
"difference": "Lehman 충격은 글로벌 결제·자금시장 전염 규모가 훨씬 컸다.", "source": {"name": "fixture historical source", "url": "https://example.test/lehman"} }, - Network accessline 223
"difference": "Lehman 충격은 글로벌 결제·자금시장 전염 규모가 훨씬 컸다.", "source": {"name": "fixture historical source", "url": "https://example.test/lehman"} }, - Network accessline 224
"source": {"name": "fixture historical source", "url": "https://example.test/lehman"} - Network accessline 224
"source": {"name": "fixture historical source", "url": "https://example.test/lehman"} - Network accessline 230
"similarity": "유동성 부족이 정책 대응 기대와 단기금리에 영향을 줬다는 점이다.", "difference": "당시에는 예금 손실 우려보다 단기자금시장 기능이 핵심이었다.", "source": {"name": "fixture historical source", "url": "https://example.test/repo-stress"} - Network accessline 230
"similarity": "유동성 부족이 정책 대응 기대와 단기금리에 영향을 줬다는 점이다.", "difference": "당시에는 예금 손실 우려보다 단기자금시장 기능이 핵심이었다.", "source": {"name": "fixture historical source", "url": "https://example.test/repo-stress"} - Network accessline 231
"difference": "당시에는 예금 손실 우려보다 단기자금시장 기능이 핵심이었다.", "source": {"name": "fixture historical source", "url": "https://example.test/repo-stress"} } - Network accessline 231
"difference": "당시에는 예금 손실 우려보다 단기자금시장 기능이 핵심이었다.", "source": {"name": "fixture historical source", "url": "https://example.test/repo-stress"} } - Network accessline 232
"source": {"name": "fixture historical source", "url": "https://example.test/repo-stress"} - Network accessline 232
"source": {"name": "fixture historical source", "url": "https://example.test/repo-stress"}
market-event-impact/tests/fixtures/tariff-event.json
- Network accessline 13
"source": { "name": "The White House — Executive Order 14257", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-a - Network accessline 13
"source": { "name": "The White House — Executive Order 14257", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-a - Network accessline 14
"name": "The White House — Executive Order 14257", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annual - Network accessline 14
"name": "The White House — Executive Order 14257", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annual - Network accessline 15
"url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annual-united-states-goods-trade-deficits/" - Network accessline 15
"url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annual-united-states-goods-trade-deficits/" - Network accessline 24
"source": { "name": "GovInfo — Presidential Daily Diary", "url": "https://www.govinfo.gov/app/details/DCPD-202500423" - Network accessline 24
"source": { "name": "GovInfo — Presidential Daily Diary", "url": "https://www.govinfo.gov/app/details/DCPD-202500423" - Network accessline 25
"name": "GovInfo — Presidential Daily Diary", "url": "https://www.govinfo.gov/app/details/DCPD-202500423" } - Network accessline 25
"name": "GovInfo — Presidential Daily Diary", "url": "https://www.govinfo.gov/app/details/DCPD-202500423" } - Network accessline 26
"url": "https://www.govinfo.gov/app/details/DCPD-202500423" - Network accessline 26
"url": "https://www.govinfo.gov/app/details/DCPD-202500423" - Network accessline 33
"source": { "name": "중국 재정부 관세세칙위원회", "url": "https://gss.mof.gov.cn/gzdt/zhengcefabu/202504/t20250404_3961451.htm" - Network accessline 33
"source": { "name": "중국 재정부 관세세칙위원회", "url": "https://gss.mof.gov.cn/gzdt/zhengcefabu/202504/t20250404_3961451.htm" - Network accessline 34
"name": "중국 재정부 관세세칙위원회", "url": "https://gss.mof.gov.cn/gzdt/zhengcefabu/202504/t20250404_3961451.htm" } - Network accessline 34
"name": "중국 재정부 관세세칙위원회", "url": "https://gss.mof.gov.cn/gzdt/zhengcefabu/202504/t20250404_3961451.htm" } - Network accessline 35
"url": "https://gss.mof.gov.cn/gzdt/zhengcefabu/202504/t20250404_3961451.htm" - Network accessline 35
"url": "https://gss.mof.gov.cn/gzdt/zhengcefabu/202504/t20250404_3961451.htm" - Network accessline 42
"source": { "name": "The White House — Executive Order 14257", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to - Network accessline 42
"source": { "name": "The White House — Executive Order 14257", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to - Network accessline 43
"name": "The White House — Executive Order 14257", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-an - Network accessline 43
"name": "The White House — Executive Order 14257", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-an - Network accessline 44
"url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annual-united-states-goods-trade-deficits/" - Network accessline 44
"url": "https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annual-united-states-goods-trade-deficits/" - Network accessline 51
"source": { "name": "The White House — Executive Order 14266 background", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-a - Network accessline 51
"source": { "name": "The White House — Executive Order 14266 background", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-a - Network accessline 52
"name": "The White House — Executive Order 14266 background", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/" } - Network accessline 52
"name": "The White House — Executive Order 14266 background", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/" } - Network accessline 53
"url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/" - Network accessline 53
"url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/" - Network accessline 60
"source": { "name": "중국 재정부 관세세칙위원회", "url": "https://gss.mof.gov.cn/gzdt/zhengcejiedu/202504/t20250409_3961685.htm" - Network accessline 60
"source": { "name": "중국 재정부 관세세칙위원회", "url": "https://gss.mof.gov.cn/gzdt/zhengcejiedu/202504/t20250409_3961685.htm" - Network accessline 61
"name": "중국 재정부 관세세칙위원회", "url": "https://gss.mof.gov.cn/gzdt/zhengcejiedu/202504/t20250409_3961685.htm" } - Network accessline 61
"name": "중국 재정부 관세세칙위원회", "url": "https://gss.mof.gov.cn/gzdt/zhengcejiedu/202504/t20250409_3961685.htm" } - Network accessline 62
"url": "https://gss.mof.gov.cn/gzdt/zhengcejiedu/202504/t20250409_3961685.htm" - Network accessline 62
"url": "https://gss.mof.gov.cn/gzdt/zhengcejiedu/202504/t20250409_3961685.htm" - Network accessline 69
"source": { "name": "The White House — Executive Order 14266", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/" - Network accessline 69
"source": { "name": "The White House — Executive Order 14266", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/" - Network accessline 70
"name": "The White House — Executive Order 14266", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/" } - Network accessline 70
"name": "The White House — Executive Order 14266", "url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/" } - Network accessline 71
"url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/" - Network accessline 71
"url": "https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/"
market-event-impact/tests/fixtures/tariff-market-series.json
- Network accessline 11
"market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed.org/data/DGS2"}, - Network accessline 11
"market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed.org/data/DGS2"}, - Network accessline 12
"price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed.org/data/DGS2"}, "observations": [ - Network accessline 12
"price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed.org/data/DGS2"}, "observations": [ - Network accessline 13
"source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed.org/data/DGS2"}, - Network accessline 13
"source": {"name": "FRED DGS2", "url": "https://fred.stlouisfed.org/data/DGS2"}, - Network accessline 26
"market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed.org/data/DGS10"}, - Network accessline 26
"market_timezone": "America/New_York", "price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed.org/data/DGS10"}, - Network accessline 27
"price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed.org/data/DGS10"}, "observations": [ - Network accessline 27
"price_type": "H.15 Treasury yield, closing quote", "source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed.org/data/DGS10"}, "observations": [ - Network accessline 28
"source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed.org/data/DGS10"}, - Network accessline 28
"source": {"name": "FRED DGS10", "url": "https://fred.stlouisfed.org/data/DGS10"}, - Network accessline 41
"market_timezone": "America/New_York", "price_type": "daily cash-market close", "source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/SP500"}, - Network accessline 41
"market_timezone": "America/New_York", "price_type": "daily cash-market close", "source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/SP500"}, - Network accessline 42
"price_type": "daily cash-market close", "source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/SP500"}, "observations": [ - Network accessline 42
"price_type": "daily cash-market close", "source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/SP500"}, "observations": [ - Network accessline 43
"source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/SP500"}, - Network accessline 43
"source": {"name": "FRED SP500", "url": "https://fred.stlouisfed.org/data/SP500"}, - Network accessline 56
"market_timezone": "Asia/Seoul", "price_type": "일별 종가", "source": {"name": "Countryeconomy KOSPI history", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2025-04"}, - Network accessline 56
"market_timezone": "Asia/Seoul", "price_type": "일별 종가", "source": {"name": "Countryeconomy KOSPI history", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2025-04"}, - Network accessline 57
"price_type": "일별 종가", "source": {"name": "Countryeconomy KOSPI history", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2025-04"}, "observations": [ - Network accessline 57
"price_type": "일별 종가", "source": {"name": "Countryeconomy KOSPI history", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2025-04"}, "observations": [ - Network accessline 58
"source": {"name": "Countryeconomy KOSPI history", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2025-04"}, - Network accessline 58
"source": {"name": "Countryeconomy KOSPI history", "url": "https://countryeconomy.com/stock-exchange/south-korea?dr=2025-04"}, - Network accessline 71
"market_timezone": "America/New_York", "price_type": "NYC noon buying rate", "source": {"name": "FRED DEXKOUS", "url": "https://fred.stlouisfed.org/data/DEXKOUS"}, - Network accessline 71
"market_timezone": "America/New_York", "price_type": "NYC noon buying rate", "source": {"name": "FRED DEXKOUS", "url": "https://fred.stlouisfed.org/data/DEXKOUS"}, - Network accessline 72
"price_type": "NYC noon buying rate", "source": {"name": "FRED DEXKOUS", "url": "https://fred.stlouisfed.org/data/DEXKOUS"}, "observations": [ - Network accessline 72
"price_type": "NYC noon buying rate", "source": {"name": "FRED DEXKOUS", "url": "https://fred.stlouisfed.org/data/DEXKOUS"}, "observations": [ - Network accessline 73
"source": {"name": "FRED DEXKOUS", "url": "https://fred.stlouisfed.org/data/DEXKOUS"}, - Network accessline 73
"source": {"name": "FRED DEXKOUS", "url": "https://fred.stlouisfed.org/data/DEXKOUS"}, - Network accessline 86
"market_timezone": "America/New_York", "price_type": "NYC noon buying rate", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"}, - Network accessline 86
"market_timezone": "America/New_York", "price_type": "NYC noon buying rate", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"}, - Network accessline 87
"price_type": "NYC noon buying rate", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"}, "observations": [ - Network accessline 87
"price_type": "NYC noon buying rate", "source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"}, "observations": [ - Network accessline 88
"source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"}, - Network accessline 88
"source": {"name": "FRED DEXUSEU", "url": "https://fred.stlouisfed.org/data/DEXUSEU"}, - Network accessline 98
"roles": ["oil", "commodity"], "price_type": "daily spot price", "source": {"name": "FRED DCOILWTICO", "url": "https://fred.stlouisfed.org/data/DCOILWTICO"}, - Network accessline 98
"roles": ["oil", "commodity"], "price_type": "daily spot price", "source": {"name": "FRED DCOILWTICO", "url": "https://fred.stlouisfed.org/data/DCOILWTICO"}, - Network accessline 99
"price_type": "daily spot price", "source": {"name": "FRED DCOILWTICO", "url": "https://fred.stlouisfed.org/data/DCOILWTICO"}, "observations": [ - Network accessline 99
"price_type": "daily spot price", "source": {"name": "FRED DCOILWTICO", "url": "https://fred.stlouisfed.org/data/DCOILWTICO"}, "observations": [ - Network accessline 100
"source": {"name": "FRED DCOILWTICO", "url": "https://fred.stlouisfed.org/data/DCOILWTICO"}, - Network accessline 100
"source": {"name": "FRED DCOILWTICO", "url": "https://fred.stlouisfed.org/data/DCOILWTICO"}, - Network accessline 110
"roles": ["volatility"], "price_type": "daily index close", "source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"}, - Network accessline 110
"roles": ["volatility"], "price_type": "daily index close", "source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"}, - Network accessline 111
"price_type": "daily index close", "source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"}, "observations": [ - Network accessline 111
"price_type": "daily index close", "source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"}, "observations": [ - Network accessline 112
"source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"}, - Network accessline 112
"source": {"name": "FRED VIXCLS", "url": "https://fred.stlouisfed.org/data/VIXCLS"},
market-event-impact/tests/fixtures/tariff-research.json
- Network accessline 17
"surprise_assessment": "관세 발표가 예고돼 있었더라도 광범위한 10% 기본관세와 높은 국가별 세율의 범위·강도는 시장의 우려를 웃돌았다. 핵심 surprise는 관세 자체보다 적용 범위와 보복 가능성이었다.", "classification": "보복과 정책 유예가 연속된 전개형 무역정책·정책불확실성 충격", "source": {"name":"The White House — Exe - Network accessline 17
"surprise_assessment": "관세 발표가 예고돼 있었더라도 광범위한 10% 기본관세와 높은 국가별 세율의 범위·강도는 시장의 우려를 웃돌았다. 핵심 surprise는 관세 자체보다 적용 범위와 보복 가능성이었다.", "classification": "보복과 정책 유예가 연속된 전개형 무역정책·정책불확실성 충격", "source": {"name":"The White House — Exe - Network accessline 18
"classification": "보복과 정책 유예가 연속된 전개형 무역정책·정책불확실성 충격", "source": {"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectif - Network accessline 18
"classification": "보복과 정책 유예가 연속된 전개형 무역정책·정책불확실성 충격", "source": {"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectif - Network accessline 19
"source": {"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annua - Network accessline 19
"source": {"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annua - Network accessline 24
"finding":"미국은 수입품에 10% 추가 관세를 발표하고, 별도 국가별 세율은 4월 9일부터 적용하도록 했다. 기본세율은 4월 5일 시행됐다.", "significance":"발표 당일 가격은 시행 전이라도 향후 수입비용·기업 마진·교역량의 불확실성을 먼저 반영할 수 있다.", "source":{"name":"The White House — Executive Order 14257", - Network accessline 24
"finding":"미국은 수입품에 10% 추가 관세를 발표하고, 별도 국가별 세율은 4월 9일부터 적용하도록 했다. 기본세율은 4월 5일 시행됐다.", "significance":"발표 당일 가격은 시행 전이라도 향후 수입비용·기업 마진·교역량의 불확실성을 먼저 반영할 수 있다.", "source":{"name":"The White House — Executive Order 14257", - Network accessline 25
"significance":"발표 당일 가격은 시행 전이라도 향후 수입비용·기업 마진·교역량의 불확실성을 먼저 반영할 수 있다.", "source":{"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-recipro - Network accessline 25
"significance":"발표 당일 가격은 시행 전이라도 향후 수입비용·기업 마진·교역량의 불확실성을 먼저 반영할 수 있다.", "source":{"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-recipro - Network accessline 26
"source":{"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annual - Network accessline 26
"source":{"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annual - Network accessline 30
"finding":"중국은 4월 4일 미국산 수입품에 34% 추가 관세를 발표했고 4월 10일 시행한다고 밝혔다.", "significance":"D+1 이후 가격에는 최초 발표뿐 아니라 보복·재보복 위험이 함께 들어가 단일 발표 효과로 분리할 수 없다.", "source":{"name":"중국 재정부 관세세칙위원회", "url":"https://gss.mof.gov.cn/gzdt/zheng - Network accessline 30
"finding":"중국은 4월 4일 미국산 수입품에 34% 추가 관세를 발표했고 4월 10일 시행한다고 밝혔다.", "significance":"D+1 이후 가격에는 최초 발표뿐 아니라 보복·재보복 위험이 함께 들어가 단일 발표 효과로 분리할 수 없다.", "source":{"name":"중국 재정부 관세세칙위원회", "url":"https://gss.mof.gov.cn/gzdt/zheng - Network accessline 31
"significance":"D+1 이후 가격에는 최초 발표뿐 아니라 보복·재보복 위험이 함께 들어가 단일 발표 효과로 분리할 수 없다.", "source":{"name":"중국 재정부 관세세칙위원회", "url":"https://gss.mof.gov.cn/gzdt/zhengcefabu/202504/t20250404_3961451.htm"} }, - Network accessline 31
"significance":"D+1 이후 가격에는 최초 발표뿐 아니라 보복·재보복 위험이 함께 들어가 단일 발표 효과로 분리할 수 없다.", "source":{"name":"중국 재정부 관세세칙위원회", "url":"https://gss.mof.gov.cn/gzdt/zhengcefabu/202504/t20250404_3961451.htm"} }, - Network accessline 32
"source":{"name":"중국 재정부 관세세칙위원회", "url":"https://gss.mof.gov.cn/gzdt/zhengcefabu/202504/t20250404_3961451.htm"} - Network accessline 32
"source":{"name":"중국 재정부 관세세칙위원회", "url":"https://gss.mof.gov.cn/gzdt/zhengcefabu/202504/t20250404_3961451.htm"} - Network accessline 36
"finding":"미국은 4월 8일 대중 추가 관세율을 34%에서 84%로 높였고, 중국도 4월 9일 미국산 수입품의 추가 관세를 84%로 높여 4월 10일부터 적용한다고 발표했다.", "significance":"양국의 보복이 실제 세율 인상으로 가속돼, 위험회피 구간은 최초 미국 발표만으로 설명되지 않는다.", "source":{"name":"중국 재정부 관세세칙위원회 — 4월 9일 조 - Network accessline 36
"finding":"미국은 4월 8일 대중 추가 관세율을 34%에서 84%로 높였고, 중국도 4월 9일 미국산 수입품의 추가 관세를 84%로 높여 4월 10일부터 적용한다고 발표했다.", "significance":"양국의 보복이 실제 세율 인상으로 가속돼, 위험회피 구간은 최초 미국 발표만으로 설명되지 않는다.", "source":{"name":"중국 재정부 관세세칙위원회 — 4월 9일 조 - Network accessline 37
"significance":"양국의 보복이 실제 세율 인상으로 가속돼, 위험회피 구간은 최초 미국 발표만으로 설명되지 않는다.", "source":{"name":"중국 재정부 관세세칙위원회 — 4월 9일 조정", "url":"https://gss.mof.gov.cn/gzdt/zhengcejiedu/202504/t20250409_3961685.htm"} }, - Network accessline 37
"significance":"양국의 보복이 실제 세율 인상으로 가속돼, 위험회피 구간은 최초 미국 발표만으로 설명되지 않는다.", "source":{"name":"중국 재정부 관세세칙위원회 — 4월 9일 조정", "url":"https://gss.mof.gov.cn/gzdt/zhengcejiedu/202504/t20250409_3961685.htm"} }, - Network accessline 38
"source":{"name":"중국 재정부 관세세칙위원회 — 4월 9일 조정", "url":"https://gss.mof.gov.cn/gzdt/zhengcejiedu/202504/t20250409_3961685.htm"} - Network accessline 38
"source":{"name":"중국 재정부 관세세칙위원회 — 4월 9일 조정", "url":"https://gss.mof.gov.cn/gzdt/zhengcejiedu/202504/t20250409_3961685.htm"} - Network accessline 42
"finding":"미국은 4월 9일 중국산 수입품의 추가 관세를 125%로 높이는 동시에 중국 외 국가별 상호관세를 90일간 유예하고 10% 기본관세를 유지한다고 발표했다. 대부분 조치는 4월 10일부터 적용됐다.", "significance":"중국과의 긴장은 악화됐지만 다른 교역국에는 유예를 발표해, 같은 날 시장에는 악화와 완화 신호가 동시에 전달됐다.", "source":{"name - Network accessline 42
"finding":"미국은 4월 9일 중국산 수입품의 추가 관세를 125%로 높이는 동시에 중국 외 국가별 상호관세를 90일간 유예하고 10% 기본관세를 유지한다고 발표했다. 대부분 조치는 4월 10일부터 적용됐다.", "significance":"중국과의 긴장은 악화됐지만 다른 교역국에는 유예를 발표해, 같은 날 시장에는 악화와 완화 신호가 동시에 전달됐다.", "source":{"name - Network accessline 43
"significance":"중국과의 긴장은 악화됐지만 다른 교역국에는 유예를 발표해, 같은 날 시장에는 악화와 완화 신호가 동시에 전달됐다.", "source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tari - Network accessline 43
"significance":"중국과의 긴장은 악화됐지만 다른 교역국에는 유예를 발표해, 같은 날 시장에는 악화와 완화 신호가 동시에 전달됐다.", "source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tari - Network accessline 44
"source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/"} - Network accessline 44
"source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/"} - Network accessline 50
"finding":"4월 3일 미국 주식과 국제 주식이 급락하고 원유와 달러도 약세를 보였으며, 미 국채수익률은 하락하고 변동성은 뛰었다. Reuters는 이를 예상보다 강한 관세 발표와 성장 둔화 우려에 연결했다.", "significance":"주식·원유 하락과 단기 국채금리 하락은 발표 직후 시장이 인플레이션 단독 충격보다 교역·성장 하방위험을 크게 가격에 반영한 흐름과 일치한다.", - Network accessline 50
"finding":"4월 3일 미국 주식과 국제 주식이 급락하고 원유와 달러도 약세를 보였으며, 미 국채수익률은 하락하고 변동성은 뛰었다. Reuters는 이를 예상보다 강한 관세 발표와 성장 둔화 우려에 연결했다.", "significance":"주식·원유 하락과 단기 국채금리 하락은 발표 직후 시장이 인플레이션 단독 충격보다 교역·성장 하방위험을 크게 가격에 반영한 흐름과 일치한다.", - Network accessline 51
"significance":"주식·원유 하락과 단기 국채금리 하락은 발표 직후 시장이 인플레이션 단독 충격보다 교역·성장 하방위험을 크게 가격에 반영한 흐름과 일치한다.", "source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www.investing.com/news/economy-news/dollar-slides-as-tr - Network accessline 51
"significance":"주식·원유 하락과 단기 국채금리 하락은 발표 직후 시장이 인플레이션 단독 충격보다 교역·성장 하방위험을 크게 가격에 반영한 흐름과 일치한다.", "source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www.investing.com/news/economy-news/dollar-slides-as-tr - Network accessline 52
"source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www.investing.com/news/economy-news/dollar-slides-as-traders-rush-into-safe-havens-after-us-tariffs-3964053"} - Network accessline 52
"source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www.investing.com/news/economy-news/dollar-slides-as-traders-rush-into-safe-havens-after-us-tariffs-3964053"} - Network accessline 56
"finding":"EUR/USD 뉴욕 정오 기준값은 4월 2일 1.0868에서 4월 3일 1.1052로 상승했다. USD/KRW도 FRED 뉴욕 정오 매입환율 기준 1,462.06원에서 1,450.55원으로 낮아졌다.", "significance":"달러 약세는 전통적인 달러 안전자산 강세와 달랐다. 미국 정책 불확실성의 가격 반영과 일관되지만, 동시 움직임만으로 원인을 확정하지 않는다. USD/KRW 값은 - Network accessline 56
"finding":"EUR/USD 뉴욕 정오 기준값은 4월 2일 1.0868에서 4월 3일 1.1052로 상승했다. USD/KRW도 FRED 뉴욕 정오 매입환율 기준 1,462.06원에서 1,450.55원으로 낮아졌다.", "significance":"달러 약세는 전통적인 달러 안전자산 강세와 달랐다. 미국 정책 불확실성의 가격 반영과 일관되지만, 동시 움직임만으로 원인을 확정하지 않는다. USD/KRW 값은 - Network accessline 57
"significance":"달러 약세는 전통적인 달러 안전자산 강세와 달랐다. 미국 정책 불확실성의 가격 반영과 일관되지만, 동시 움직임만으로 원인을 확정하지 않는다. USD/KRW 값은 서울 종가가 아니다.", "source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www.investing.com/news/economy-n - Network accessline 57
"significance":"달러 약세는 전통적인 달러 안전자산 강세와 달랐다. 미국 정책 불확실성의 가격 반영과 일관되지만, 동시 움직임만으로 원인을 확정하지 않는다. USD/KRW 값은 서울 종가가 아니다.", "source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www.investing.com/news/economy-n - Network accessline 58
"source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www.investing.com/news/economy-news/dollar-slides-as-traders-rush-into-safe-havens-after-us-tariffs-3964053"} - Network accessline 58
"source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www.investing.com/news/economy-news/dollar-slides-as-traders-rush-into-safe-havens-after-us-tariffs-3964053"} - Network accessline 62
"finding":"S&P 500은 4월 3일 4.84% 하락했고, 4월 9일 중국 외 국가 유예 발표 뒤에는 9.5% 반등했다. 반면 중국 대상 추가 관세는 125%로 높아졌고 한국 코스피는 다음 날 6.6% 올랐다.", "significance":"D+5는 최초 충격과 중국에 대한 추가 긴장, 다른 국가에 대한 유예에 따른 강한 되돌림을 함께 포함한다. 반등을 모든 관세의 철회나 최초 발표의 긍정 효과로 - Network accessline 62
"finding":"S&P 500은 4월 3일 4.84% 하락했고, 4월 9일 중국 외 국가 유예 발표 뒤에는 9.5% 반등했다. 반면 중국 대상 추가 관세는 125%로 높아졌고 한국 코스피는 다음 날 6.6% 올랐다.", "significance":"D+5는 최초 충격과 중국에 대한 추가 긴장, 다른 국가에 대한 유예에 따른 강한 되돌림을 함께 포함한다. 반등을 모든 관세의 철회나 최초 발표의 긍정 효과로 - Network accessline 63
"significance":"D+5는 최초 충격과 중국에 대한 추가 긴장, 다른 국가에 대한 유예에 따른 강한 되돌림을 함께 포함한다. 반등을 모든 관세의 철회나 최초 발표의 긍정 효과로 읽으면 안 된다.", "source":{"name":"Associated Press — April 9 tariff pause rally", "url":"https://apnews.com/article/e8e54a68397e6 - Network accessline 63
"significance":"D+5는 최초 충격과 중국에 대한 추가 긴장, 다른 국가에 대한 유예에 따른 강한 되돌림을 함께 포함한다. 반등을 모든 관세의 철회나 최초 발표의 긍정 효과로 읽으면 안 된다.", "source":{"name":"Associated Press — April 9 tariff pause rally", "url":"https://apnews.com/article/e8e54a68397e6 - Network accessline 64
"source":{"name":"Associated Press — April 9 tariff pause rally", "url":"https://apnews.com/article/e8e54a68397e6829e1d27552a1d7bfb9"} - Network accessline 64
"source":{"name":"Associated Press — April 9 tariff pause rally", "url":"https://apnews.com/article/e8e54a68397e6829e1d27552a1d7bfb9"} - Network accessline 68
"finding":"미 10년물 수익률은 이벤트 기준일 대비 4월 3일 14bp 하락했지만 4월 10일에는 기준일보다 20bp 높았다. 같은 기간 2년물은 기준일보다 7bp 낮았다.", "significance":"초기 안전자산 매수·성장 우려만으로 후속 금리경로를 설명할 수 없다. 4월 10일까지는 장기물 매도와 커브 스티프닝이 겹친 복합 국면이었고, 10년물은 그 주에 이례적으로 급등했다.", - Network accessline 68
"finding":"미 10년물 수익률은 이벤트 기준일 대비 4월 3일 14bp 하락했지만 4월 10일에는 기준일보다 20bp 높았다. 같은 기간 2년물은 기준일보다 7bp 낮았다.", "significance":"초기 안전자산 매수·성장 우려만으로 후속 금리경로를 설명할 수 없다. 4월 10일까지는 장기물 매도와 커브 스티프닝이 겹친 복합 국면이었고, 10년물은 그 주에 이례적으로 급등했다.", - Network accessline 69
"significance":"초기 안전자산 매수·성장 우려만으로 후속 금리경로를 설명할 수 없다. 4월 10일까지는 장기물 매도와 커브 스티프닝이 겹친 복합 국면이었고, 10년물은 그 주에 이례적으로 급등했다.", "source":{"name":"Reuters — April 11 U.S. bond and dollar selloff", "url":"https://www.investing.com/news/econ - Network accessline 69
"significance":"초기 안전자산 매수·성장 우려만으로 후속 금리경로를 설명할 수 없다. 4월 10일까지는 장기물 매도와 커브 스티프닝이 겹친 복합 국면이었고, 10년물은 그 주에 이례적으로 급등했다.", "source":{"name":"Reuters — April 11 U.S. bond and dollar selloff", "url":"https://www.investing.com/news/econ - Network accessline 70
"source":{"name":"Reuters — April 11 U.S. bond and dollar selloff", "url":"https://www.investing.com/news/economy-news/trading-day-a-crushing-week-for-us-bonds-dollar-3982264"} - Network accessline 70
"source":{"name":"Reuters — April 11 U.S. bond and dollar selloff", "url":"https://www.investing.com/news/economy-news/trading-day-a-crushing-week-for-us-bonds-dollar-3982264"} - Network accessline 77
"status":"CONFIRMED", "evidence":"Reuters는 관세 발표 뒤 주식·원유 하락과 변동성 급등을 직접 보도했다. 일별 자료에서 S&P 500은 4월 3일 -4.84%, WTI는 -6.50%, VIX는 21.51에서 30.02로 상승했다. 일별 변화는 장중 인과효과가 아니다.", "source":{"name":"Reuters — Dollar slides after U - Network accessline 77
"status":"CONFIRMED", "evidence":"Reuters는 관세 발표 뒤 주식·원유 하락과 변동성 급등을 직접 보도했다. 일별 자료에서 S&P 500은 4월 3일 -4.84%, WTI는 -6.50%, VIX는 21.51에서 30.02로 상승했다. 일별 변화는 장중 인과효과가 아니다.", "source":{"name":"Reuters — Dollar slides after U - Network accessline 78
"evidence":"Reuters는 관세 발표 뒤 주식·원유 하락과 변동성 급등을 직접 보도했다. 일별 자료에서 S&P 500은 4월 3일 -4.84%, WTI는 -6.50%, VIX는 21.51에서 30.02로 상승했다. 일별 변화는 장중 인과효과가 아니다.", "source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www - Network accessline 78
"evidence":"Reuters는 관세 발표 뒤 주식·원유 하락과 변동성 급등을 직접 보도했다. 일별 자료에서 S&P 500은 4월 3일 -4.84%, WTI는 -6.50%, VIX는 21.51에서 30.02로 상승했다. 일별 변화는 장중 인과효과가 아니다.", "source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www - Network accessline 79
"source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www.investing.com/news/economy-news/dollar-slides-as-traders-rush-into-safe-havens-after-us-tariffs-3964053"} - Network accessline 79
"source":{"name":"Reuters — Dollar slides after U.S. tariffs", "url":"https://www.investing.com/news/economy-news/dollar-slides-as-traders-rush-into-safe-havens-after-us-tariffs-3964053"} - Network accessline 84
"status":"CONSISTENT", "evidence":"미 2년물 수익률은 4월 2일 3.91%에서 4월 3일 3.71%로 20bp 하락했다. 이는 성장 우려와 완화 기대 경로에 부합하지만, 금리 변동의 단일 원인으로 단정하지 않는다.", "source":{"name":"FRED DGS2", "url":"https://fred.stlouisfed.org/data/DGS2"} - Network accessline 84
"status":"CONSISTENT", "evidence":"미 2년물 수익률은 4월 2일 3.91%에서 4월 3일 3.71%로 20bp 하락했다. 이는 성장 우려와 완화 기대 경로에 부합하지만, 금리 변동의 단일 원인으로 단정하지 않는다.", "source":{"name":"FRED DGS2", "url":"https://fred.stlouisfed.org/data/DGS2"} - Network accessline 85
"evidence":"미 2년물 수익률은 4월 2일 3.91%에서 4월 3일 3.71%로 20bp 하락했다. 이는 성장 우려와 완화 기대 경로에 부합하지만, 금리 변동의 단일 원인으로 단정하지 않는다.", "source":{"name":"FRED DGS2", "url":"https://fred.stlouisfed.org/data/DGS2"} }, - Network accessline 85
"evidence":"미 2년물 수익률은 4월 2일 3.91%에서 4월 3일 3.71%로 20bp 하락했다. 이는 성장 우려와 완화 기대 경로에 부합하지만, 금리 변동의 단일 원인으로 단정하지 않는다.", "source":{"name":"FRED DGS2", "url":"https://fred.stlouisfed.org/data/DGS2"} }, - Network accessline 86
"source":{"name":"FRED DGS2", "url":"https://fred.stlouisfed.org/data/DGS2"} - Network accessline 86
"source":{"name":"FRED DGS2", "url":"https://fred.stlouisfed.org/data/DGS2"} - Network accessline 91
"status":"CONFIRMED", "evidence":"연합뉴스는 미국의 일시 유예 뒤 코스피가 4월 10일 6.6% 상승했다고 보도했다. 이는 관세 위험 프리미엄 축소와 일치하나, 한국 현물시장은 미국 발표 시점에 열려 있지 않았다.", "source":{"name":"연합뉴스 — 관세 유예 뒤 서울 증시", "url":"https://m-en.yna.co.kr/view/AEN2025 - Network accessline 91
"status":"CONFIRMED", "evidence":"연합뉴스는 미국의 일시 유예 뒤 코스피가 4월 10일 6.6% 상승했다고 보도했다. 이는 관세 위험 프리미엄 축소와 일치하나, 한국 현물시장은 미국 발표 시점에 열려 있지 않았다.", "source":{"name":"연합뉴스 — 관세 유예 뒤 서울 증시", "url":"https://m-en.yna.co.kr/view/AEN2025 - Network accessline 92
"evidence":"연합뉴스는 미국의 일시 유예 뒤 코스피가 4월 10일 6.6% 상승했다고 보도했다. 이는 관세 위험 프리미엄 축소와 일치하나, 한국 현물시장은 미국 발표 시점에 열려 있지 않았다.", "source":{"name":"연합뉴스 — 관세 유예 뒤 서울 증시", "url":"https://m-en.yna.co.kr/view/AEN20250410007451320"} } - Network accessline 92
"evidence":"연합뉴스는 미국의 일시 유예 뒤 코스피가 4월 10일 6.6% 상승했다고 보도했다. 이는 관세 위험 프리미엄 축소와 일치하나, 한국 현물시장은 미국 발표 시점에 열려 있지 않았다.", "source":{"name":"연합뉴스 — 관세 유예 뒤 서울 증시", "url":"https://m-en.yna.co.kr/view/AEN20250410007451320"} } - Network accessline 93
"source":{"name":"연합뉴스 — 관세 유예 뒤 서울 증시", "url":"https://m-en.yna.co.kr/view/AEN20250410007451320"} - Network accessline 93
"source":{"name":"연합뉴스 — 관세 유예 뒤 서울 증시", "url":"https://m-en.yna.co.kr/view/AEN20250410007451320"} - Network accessline 99
"event":"미국 3월 고용보고서", "why_it_matters":"당시 D+1 가격창의 별도 성장 촉매였다. 비농업고용은 22만8천 명 증가했고 실업률은 4.2%로 큰 변화가 없어, 관세 충격만으로 그날 시장변화를 설명할 수 없다.", "source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news. - Network accessline 99
"event":"미국 3월 고용보고서", "why_it_matters":"당시 D+1 가격창의 별도 성장 촉매였다. 비농업고용은 22만8천 명 증가했고 실업률은 4.2%로 큰 변화가 없어, 관세 충격만으로 그날 시장변화를 설명할 수 없다.", "source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news. - Network accessline 100
"why_it_matters":"당시 D+1 가격창의 별도 성장 촉매였다. 비농업고용은 22만8천 명 증가했고 실업률은 4.2%로 큰 변화가 없어, 관세 충격만으로 그날 시장변화를 설명할 수 없다.", "source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news.release/archives/empsit_04042025. - Network accessline 100
"why_it_matters":"당시 D+1 가격창의 별도 성장 촉매였다. 비농업고용은 22만8천 명 증가했고 실업률은 4.2%로 큰 변화가 없어, 관세 충격만으로 그날 시장변화를 설명할 수 없다.", "source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news.release/archives/empsit_04042025. - Network accessline 101
"source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news.release/archives/empsit_04042025.htm"} - Network accessline 101
"source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news.release/archives/empsit_04042025.htm"} - Network accessline 105
"event":"미국 기본 10% 추가 관세 시행", "why_it_matters":"발표된 정책이 실제 통관 비용에 적용되는 첫 시점이어서 적용 범위·면제·공급망 전가가 다음 확인 대상이었다.", "source":{"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-ac - Network accessline 105
"event":"미국 기본 10% 추가 관세 시행", "why_it_matters":"발표된 정책이 실제 통관 비용에 적용되는 첫 시점이어서 적용 범위·면제·공급망 전가가 다음 확인 대상이었다.", "source":{"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-ac - Network accessline 106
"why_it_matters":"발표된 정책이 실제 통관 비용에 적용되는 첫 시점이어서 적용 범위·면제·공급망 전가가 다음 확인 대상이었다.", "source":{"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a- - Network accessline 106
"why_it_matters":"발표된 정책이 실제 통관 비용에 적용되는 첫 시점이어서 적용 범위·면제·공급망 전가가 다음 확인 대상이었다.", "source":{"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a- - Network accessline 107
"source":{"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annual - Network accessline 107
"source":{"name":"The White House — Executive Order 14257", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annual - Network accessline 111
"event":"3월 FOMC 회의록", "why_it_matters":"관세 불확실성이 성장·물가와 향후 금리경로를 어떻게 바꾸는지 확인할 정책 자료였다. 같은 날 관세 유예 발표가 추가돼 금리·주식 반응은 복합 뉴스에 노출됐다.", "source":{"name":"Federal Reserve — April 2025 calendar", "url":"https://www.federalrese - Network accessline 111
"event":"3월 FOMC 회의록", "why_it_matters":"관세 불확실성이 성장·물가와 향후 금리경로를 어떻게 바꾸는지 확인할 정책 자료였다. 같은 날 관세 유예 발표가 추가돼 금리·주식 반응은 복합 뉴스에 노출됐다.", "source":{"name":"Federal Reserve — April 2025 calendar", "url":"https://www.federalrese - Network accessline 112
"why_it_matters":"관세 불확실성이 성장·물가와 향후 금리경로를 어떻게 바꾸는지 확인할 정책 자료였다. 같은 날 관세 유예 발표가 추가돼 금리·주식 반응은 복합 뉴스에 노출됐다.", "source":{"name":"Federal Reserve — April 2025 calendar", "url":"https://www.federalreserve.gov/newsevents/2025-april.htm - Network accessline 112
"why_it_matters":"관세 불확실성이 성장·물가와 향후 금리경로를 어떻게 바꾸는지 확인할 정책 자료였다. 같은 날 관세 유예 발표가 추가돼 금리·주식 반응은 복합 뉴스에 노출됐다.", "source":{"name":"Federal Reserve — April 2025 calendar", "url":"https://www.federalreserve.gov/newsevents/2025-april.htm - Network accessline 113
"source":{"name":"Federal Reserve — April 2025 calendar", "url":"https://www.federalreserve.gov/newsevents/2025-april.htm"} - Network accessline 113
"source":{"name":"Federal Reserve — April 2025 calendar", "url":"https://www.federalreserve.gov/newsevents/2025-april.htm"} - Network accessline 117
"event":"미국, 국가별 관세 90일 유예 발표", "why_it_matters":"중국은 유예에서 제외되고 대중 관세는 125%로 인상됐지만, 다른 교역국은 90일 유예 대상이었다. 실제 발표 뒤 미국 주식은 급반등했으므로 D+5 누적 반응은 순수한 최초 충격이 아니다.", "source":{"name":"The White House — Executive Order 14266", "u - Network accessline 117
"event":"미국, 국가별 관세 90일 유예 발표", "why_it_matters":"중국은 유예에서 제외되고 대중 관세는 125%로 인상됐지만, 다른 교역국은 90일 유예 대상이었다. 실제 발표 뒤 미국 주식은 급반등했으므로 D+5 누적 반응은 순수한 최초 충격이 아니다.", "source":{"name":"The White House — Executive Order 14266", "u - Network accessline 118
"why_it_matters":"중국은 유예에서 제외되고 대중 관세는 125%로 인상됐지만, 다른 교역국은 90일 유예 대상이었다. 실제 발표 뒤 미국 주식은 급반등했으므로 D+5 누적 반응은 순수한 최초 충격이 아니다.", "source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidenti - Network accessline 118
"why_it_matters":"중국은 유예에서 제외되고 대중 관세는 125%로 인상됐지만, 다른 교역국은 90일 유예 대상이었다. 실제 발표 뒤 미국 주식은 급반등했으므로 D+5 누적 반응은 순수한 최초 충격이 아니다.", "source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidenti - Network accessline 119
"source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/"} - Network accessline 119
"source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/"} - Network accessline 123
"event":"미·중 상호 관세 인상 조치 적용", "why_it_matters":"미국의 대중 125% 추가 관세와 중국의 대미 84% 추가 관세가 이날 발효됐다. D+5 관측은 관세 경로가 여전히 악화된 상태에서 발생한 CPI·시장 재가격을 포함한다.", "source":{"name":"The White House — Executive Order 14266", "url":"https:/ - Network accessline 123
"event":"미·중 상호 관세 인상 조치 적용", "why_it_matters":"미국의 대중 125% 추가 관세와 중국의 대미 84% 추가 관세가 이날 발효됐다. D+5 관측은 관세 경로가 여전히 악화된 상태에서 발생한 CPI·시장 재가격을 포함한다.", "source":{"name":"The White House — Executive Order 14266", "url":"https:/ - Network accessline 124
"why_it_matters":"미국의 대중 125% 추가 관세와 중국의 대미 84% 추가 관세가 이날 발효됐다. D+5 관측은 관세 경로가 여전히 악화된 상태에서 발생한 CPI·시장 재가격을 포함한다.", "source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidential-actions - Network accessline 124
"why_it_matters":"미국의 대중 125% 추가 관세와 중국의 대미 84% 추가 관세가 이날 발효됐다. D+5 관측은 관세 경로가 여전히 악화된 상태에서 발생한 CPI·시장 재가격을 포함한다.", "source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidential-actions - Network accessline 125
"source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/"} - Network accessline 125
"source":{"name":"The White House — Executive Order 14266", "url":"https://www.whitehouse.gov/presidential-actions/2025/04/modifying-reciprocal-tariff-rates-to-reflect-trading-partner-retaliation-and-alignment/"} - Network accessline 129
"event":"미국 3월 CPI", "why_it_matters":"헤드라인 CPI는 전월 대비 -0.1%, 전년 대비 2.4%였다. 조사기간이 관세 시행 전이므로 관세 전가효과의 증거가 아니라 물가의 기존 출발점이다.", "source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news.release/ar - Network accessline 129
"event":"미국 3월 CPI", "why_it_matters":"헤드라인 CPI는 전월 대비 -0.1%, 전년 대비 2.4%였다. 조사기간이 관세 시행 전이므로 관세 전가효과의 증거가 아니라 물가의 기존 출발점이다.", "source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news.release/ar - Network accessline 130
"why_it_matters":"헤드라인 CPI는 전월 대비 -0.1%, 전년 대비 2.4%였다. 조사기간이 관세 시행 전이므로 관세 전가효과의 증거가 아니라 물가의 기존 출발점이다.", "source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news.release/archives/cpi_04102025.htm"} - Network accessline 130
"why_it_matters":"헤드라인 CPI는 전월 대비 -0.1%, 전년 대비 2.4%였다. 조사기간이 관세 시행 전이므로 관세 전가효과의 증거가 아니라 물가의 기존 출발점이다.", "source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news.release/archives/cpi_04102025.htm"} - Network accessline 131
"source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news.release/archives/cpi_04102025.htm"} - Network accessline 131
"source":{"name":"U.S. Bureau of Labor Statistics", "url":"https://www.bls.gov/news.release/archives/cpi_04102025.htm"} - Network accessline 142
"similarity":"관세 발표가 무역전쟁 우려를 키우며 주식 하락·국채 선호·변동성 상승으로 이어졌다.", "difference":"중국 대상의 제한된 조치였고 같은 날 예정된 FOMC 금리인상 해석이 혼재했다.", "source":{"name":"Reuters via Yahoo Finance", "url":"https://finance.yahoo.com/news/us-stocks-st - Network accessline 142
"similarity":"관세 발표가 무역전쟁 우려를 키우며 주식 하락·국채 선호·변동성 상승으로 이어졌다.", "difference":"중국 대상의 제한된 조치였고 같은 날 예정된 FOMC 금리인상 해석이 혼재했다.", "source":{"name":"Reuters via Yahoo Finance", "url":"https://finance.yahoo.com/news/us-stocks-st - Network accessline 143
"difference":"중국 대상의 제한된 조치였고 같은 날 예정된 FOMC 금리인상 해석이 혼재했다.", "source":{"name":"Reuters via Yahoo Finance", "url":"https://finance.yahoo.com/news/us-stocks-stocks-tumble-worst-204110408.html"} }, - Network accessline 143
"difference":"중국 대상의 제한된 조치였고 같은 날 예정된 FOMC 금리인상 해석이 혼재했다.", "source":{"name":"Reuters via Yahoo Finance", "url":"https://finance.yahoo.com/news/us-stocks-stocks-tumble-worst-204110408.html"} }, - Network accessline 144
"source":{"name":"Reuters via Yahoo Finance", "url":"https://finance.yahoo.com/news/us-stocks-stocks-tumble-worst-204110408.html"} - Network accessline 144
"source":{"name":"Reuters via Yahoo Finance", "url":"https://finance.yahoo.com/news/us-stocks-stocks-tumble-worst-204110408.html"} - Network accessline 153
"similarity":"주말 중 관세 위협이 커진 뒤 다음 거래일 중국·유럽 주식과 미국 주가지수 선물이 하락했다.", "difference":"새로운 광범위 관세체계의 발표가 아니라 기존 미중 협상 중 관세율 인상 위협이었다.", "source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/stock - Network accessline 153
"similarity":"주말 중 관세 위협이 커진 뒤 다음 거래일 중국·유럽 주식과 미국 주가지수 선물이 하락했다.", "difference":"새로운 광범위 관세체계의 발표가 아니라 기존 미중 협상 중 관세율 인상 위협이었다.", "source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/stock - Network accessline 154
"difference":"새로운 광범위 관세체계의 발표가 아니라 기존 미중 협상 중 관세율 인상 위협이었다.", "source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/stock-market-news/global-shares-oil-drop-after-trump-tariff-threat-1856987"} - Network accessline 154
"difference":"새로운 광범위 관세체계의 발표가 아니라 기존 미중 협상 중 관세율 인상 위협이었다.", "source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/stock-market-news/global-shares-oil-drop-after-trump-tariff-threat-1856987"} - Network accessline 155
"source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/stock-market-news/global-shares-oil-drop-after-trump-tariff-threat-1856987"} - Network accessline 155
"source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/stock-market-news/global-shares-oil-drop-after-trump-tariff-threat-1856987"} - Network accessline 164
"similarity":"중국의 보복이 교역갈등을 키워 원유 가격과 위험자산에 하방 압력을 줬다.", "difference":"미국의 전면 관세 발표가 아니라 중국의 특정 미국산 원유 관세 등 보복 조치가 촉발점이었다.", "source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/commodities - Network accessline 164
"similarity":"중국의 보복이 교역갈등을 키워 원유 가격과 위험자산에 하방 압력을 줬다.", "difference":"미국의 전면 관세 발표가 아니라 중국의 특정 미국산 원유 관세 등 보복 조치가 촉발점이었다.", "source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/commodities - Network accessline 165
"difference":"미국의 전면 관세 발표가 아니라 중국의 특정 미국산 원유 관세 등 보복 조치가 촉발점이었다.", "source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/commodities-news/oil-spills-into-uschina-trade-war-prices-slump-1962658"} - Network accessline 165
"difference":"미국의 전면 관세 발표가 아니라 중국의 특정 미국산 원유 관세 등 보복 조치가 촉발점이었다.", "source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/commodities-news/oil-spills-into-uschina-trade-war-prices-slump-1962658"} - Network accessline 166
"source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/commodities-news/oil-spills-into-uschina-trade-war-prices-slump-1962658"} - Network accessline 166
"source":{"name":"Reuters via Investing.com", "url":"https://www.investing.com/news/commodities-news/oil-spills-into-uschina-trade-war-prices-slump-1962658"}
market-event-impact/tests/test_event_study.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 35
"asset_class": "spread", "unit": "bp", "source": {"name": "fixture", "url": "https://example.test/spread"}, - Network accessline 35
"asset_class": "spread", "unit": "bp", "source": {"name": "fixture", "url": "https://example.test/spread"}, - Network accessline 36
"unit": "bp", "source": {"name": "fixture", "url": "https://example.test/spread"}, "observations": [{"date": "2026-09-15", "value": -42}, {"date": "2026-09-16", "value": -47}], - Network accessline 36
"unit": "bp", "source": {"name": "fixture", "url": "https://example.test/spread"}, "observations": [{"date": "2026-09-15", "value": -42}, {"date": "2026-09-16", "value": -47}], - Network accessline 37
"source": {"name": "fixture", "url": "https://example.test/spread"}, - Network accessline 37
"source": {"name": "fixture", "url": "https://example.test/spread"}, - Network accessline 79
series = { "symbol": "SPX", "asset_class": "equity", "unit": "index", "market_timezone": "America/New_York", "source": {"name": "fixture", "url": "https://example.test/spx"}, - Network accessline 79
series = { "symbol": "SPX", "asset_class": "equity", "unit": "index", "market_timezone": "America/New_York", "source": {"name": "fixture", "url": "https://example.test/spx"}, - Network accessline 80
"symbol": "SPX", "asset_class": "equity", "unit": "index", "market_timezone": "America/New_York", "source": {"name": "fixture", "url": "https://example.test/spx"}, "intraday_observations": [ - Network accessline 80
"symbol": "SPX", "asset_class": "equity", "unit": "index", "market_timezone": "America/New_York", "source": {"name": "fixture", "url": "https://example.test/spx"}, "intraday_observations": [ - Network accessline 81
"source": {"name": "fixture", "url": "https://example.test/spx"}, - Network accessline 81
"source": {"name": "fixture", "url": "https://example.test/spx"}, - Network accessline 139
"asset_class": "rates", "unit": "pct", "source": {"name": "source", "url": "https://example.test"}, - Network accessline 139
"asset_class": "rates", "unit": "pct", "source": {"name": "source", "url": "https://example.test"}, - Network accessline 140
"unit": "pct", "source": {"name": "source", "url": "https://example.test"}, "observations": [{"date": "2026-02-30", "value": 1}], - Network accessline 140
"unit": "pct", "source": {"name": "source", "url": "https://example.test"}, "observations": [{"date": "2026-02-30", "value": 1}], - Network accessline 141
"source": {"name": "source", "url": "https://example.test"}, - Network accessline 141
"source": {"name": "source", "url": "https://example.test"}, - Network accessline 156
"asset_class": "rates", "unit": "index", "source": {"name": "source", "url": "https://example.test"}, - Network accessline 156
"asset_class": "rates", "unit": "index", "source": {"name": "source", "url": "https://example.test"}, - Network accessline 157
"unit": "index", "source": {"name": "source", "url": "https://example.test"}, "observations": [{"date": "2026-09-16", "value": 1}], - Network accessline 157
"unit": "index", "source": {"name": "source", "url": "https://example.test"}, "observations": [{"date": "2026-09-16", "value": 1}], - Network accessline 158
"source": {"name": "source", "url": "https://example.test"}, - Network accessline 158
"source": {"name": "source", "url": "https://example.test"}, - Network accessline 174
base = { "symbol": "USDKRW", "region": "KR", "asset_class": "fx", "unit": "krw_per_usd", "source": {"name": "FRED", "url": "https://example.test/fred"}, - Network accessline 174
base = { "symbol": "USDKRW", "region": "KR", "asset_class": "fx", "unit": "krw_per_usd", "source": {"name": "FRED", "url": "https://example.test/fred"}, - Network accessline 175
"symbol": "USDKRW", "region": "KR", "asset_class": "fx", "unit": "krw_per_usd", "source": {"name": "FRED", "url": "https://example.test/fred"}, "observations": [{"date": "2023-03-10", "value": 1324.51}], - Network accessline 175
"symbol": "USDKRW", "region": "KR", "asset_class": "fx", "unit": "krw_per_usd", "source": {"name": "FRED", "url": "https://example.test/fred"}, "observations": [{"date": "2023-03-10", "value": 1324.51}], - Network accessline 176
"source": {"name": "FRED", "url": "https://example.test/fred"}, - Network accessline 176
"source": {"name": "FRED", "url": "https://example.test/fred"},
market-event-impact/tests/test_generic_engine.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 18
"roles": roles, "selection_priority": 0, "source": {"name": "fixture", "url": "https://example.test"}, - Network accessline 18
"roles": roles, "selection_priority": 0, "source": {"name": "fixture", "url": "https://example.test"}, - Network accessline 19
"selection_priority": 0, "source": {"name": "fixture", "url": "https://example.test"}, "observations": [{"date": "2024-01-01", "value": 100}], - Network accessline 19
"selection_priority": 0, "source": {"name": "fixture", "url": "https://example.test"}, "observations": [{"date": "2024-01-01", "value": 100}], - Network accessline 20
"source": {"name": "fixture", "url": "https://example.test"}, - Network accessline 20
"source": {"name": "fixture", "url": "https://example.test"}, - Network accessline 174
"region": "GLOBAL", "event_date": "2024-02-01", "source": {"name": "fixture", "url": "https://example.test"}, - Network accessline 174
"region": "GLOBAL", "event_date": "2024-02-01", "source": {"name": "fixture", "url": "https://example.test"}, - Network accessline 175
"event_date": "2024-02-01", "source": {"name": "fixture", "url": "https://example.test"}, }) - Network accessline 175
"event_date": "2024-02-01", "source": {"name": "fixture", "url": "https://example.test"}, }) - Network accessline 176
"source": {"name": "fixture", "url": "https://example.test"}, - Network accessline 176
"source": {"name": "fixture", "url": "https://example.test"},
market-event-impact/tests/test_market_event.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 78
with self.assertRaisesRegex(ValueError, "http"): load_events_file(str(path)) base["source"]["url"] = "https://example.test" - Network accessline 78
with self.assertRaisesRegex(ValueError, "http"): load_events_file(str(path)) base["source"]["url"] = "https://example.test" - Network accessline 79
load_events_file(str(path)) base["source"]["url"] = "https://example.test" base["event_time_local"] = "14:00" - Network accessline 79
load_events_file(str(path)) base["source"]["url"] = "https://example.test" base["event_time_local"] = "14:00" - Network accessline 80
base["source"]["url"] = "https://example.test" - Network accessline 80
base["source"]["url"] = "https://example.test" - Network accessline 92
with tempfile.TemporaryDirectory() as temp: path = Path(temp) / "events.json" item = {"region": "US", "event_family": "FOMC", "event_date": "2026-09-16", "source": {"name": "Fed", "url": "https://example.test"}} - Network accessline 92
with tempfile.TemporaryDirectory() as temp: path = Path(temp) / "events.json" item = {"region": "US", "event_family": "FOMC", "event_date": "2026-09-16", "source": {"name": "Fed", "url": "https://example.test"}} - Network accessline 93
path = Path(temp) / "events.json" item = {"region": "US", "event_family": "FOMC", "event_date": "2026-09-16", "source": {"name": "Fed", "url": "https://example.test"}} path.write_text(json.dumps({"events": [item, dic - Network accessline 93
path = Path(temp) / "events.json" item = {"region": "US", "event_family": "FOMC", "event_date": "2026-09-16", "source": {"name": "Fed", "url": "https://example.test"}} path.write_text(json.dumps({"events": [item, dic - Network accessline 94
item = {"region": "US", "event_family": "FOMC", "event_date": "2026-09-16", "source": {"name": "Fed", "url": "https://example.test"}} - Network accessline 94
item = {"region": "US", "event_family": "FOMC", "event_date": "2026-09-16", "source": {"name": "Fed", "url": "https://example.test"}} - Network accessline 236
event = { "event_name": "SVB 파산", "event_date": "2023-03-10", "event_type": "financial_stress", "source": {"name": "fixture", "url": "https://example.test/svb"}, - Network accessline 236
event = { "event_name": "SVB 파산", "event_date": "2023-03-10", "event_type": "financial_stress", "source": {"name": "fixture", "url": "https://example.test/svb"}, - Network accessline 237
"event_name": "SVB 파산", "event_date": "2023-03-10", "event_type": "financial_stress", "source": {"name": "fixture", "url": "https://example.test/svb"}, } - Network accessline 237
"event_name": "SVB 파산", "event_date": "2023-03-10", "event_type": "financial_stress", "source": {"name": "fixture", "url": "https://example.test/svb"}, } - Network accessline 238
"source": {"name": "fixture", "url": "https://example.test/svb"}, - Network accessline 238
"source": {"name": "fixture", "url": "https://example.test/svb"}, - Network accessline 306
"market_shock_pattern": {"short_rates": "up", "fx": "up", "equity": "down"}, "similarity": "단기금리·달러 동반 상승", "difference": "충격의 배경은 달랐다.", "source": {"name": "검증 자료", "url": f"https://example.test/{day}"}, - Network accessline 306
"market_shock_pattern": {"short_rates": "up", "fx": "up", "equity": "down"}, "similarity": "단기금리·달러 동반 상승", "difference": "충격의 배경은 달랐다.", "source": {"name": "검증 자료", "url": f"https://example.test/{day}"}, - Network accessline 307
"similarity": "단기금리·달러 동반 상승", "difference": "충격의 배경은 달랐다.", "source": {"name": "검증 자료", "url": f"https://example.test/{day}"}, }) - Network accessline 307
"similarity": "단기금리·달러 동반 상승", "difference": "충격의 배경은 달랐다.", "source": {"name": "검증 자료", "url": f"https://example.test/{day}"}, }) - Network accessline 308
"source": {"name": "검증 자료", "url": f"https://example.test/{day}"}, - Network accessline 308
"source": {"name": "검증 자료", "url": f"https://example.test/{day}"}, - Network accessline 313
"market_shock_pattern": {"short_rates": "down", "fx": "down"}, "similarity": "가격방향 불일치", "difference": "핵심 시장 충격 방향이 반대다.", "source": {"name": "검증 자료", "url": "https://example.test/low-match"}, - Network accessline 313
"market_shock_pattern": {"short_rates": "down", "fx": "down"}, "similarity": "가격방향 불일치", "difference": "핵심 시장 충격 방향이 반대다.", "source": {"name": "검증 자료", "url": "https://example.test/low-match"}, - Network accessline 314
"similarity": "가격방향 불일치", "difference": "핵심 시장 충격 방향이 반대다.", "source": {"name": "검증 자료", "url": "https://example.test/low-match"}, }) - Network accessline 314
"similarity": "가격방향 불일치", "difference": "핵심 시장 충격 방향이 반대다.", "source": {"name": "검증 자료", "url": "https://example.test/low-match"}, }) - Network accessline 315
"source": {"name": "검증 자료", "url": "https://example.test/low-match"}, - Network accessline 315
"source": {"name": "검증 자료", "url": "https://example.test/low-match"}, - Network accessline 327
"event_name": "SVB failure", "event_type": "financial_stress", "region": "US", "event_date": "2023-03-10", "event_time_local": "11:15", "event_timezone": "America/New_York", "source": {"name": "regulator", "url": "ht - Network accessline 327
"event_name": "SVB failure", "event_type": "financial_stress", "region": "US", "event_date": "2023-03-10", "event_time_local": "11:15", "event_timezone": "America/New_York", "source": {"name": "regulator", "url": "ht - Network accessline 328
"event_date": "2023-03-10", "event_time_local": "11:15", "event_timezone": "America/New_York", "source": {"name": "regulator", "url": "https://example.test/event"}, } - Network accessline 328
"event_date": "2023-03-10", "event_time_local": "11:15", "event_timezone": "America/New_York", "source": {"name": "regulator", "url": "https://example.test/event"}, } - Network accessline 329
"source": {"name": "regulator", "url": "https://example.test/event"}, - Network accessline 329
"source": {"name": "regulator", "url": "https://example.test/event"}, - Network accessline 331
base["event_structure"] = "developing_event" base["event_sequence"] = [ {"date": "2023-03-09", "event": "자금조달 이슈 공개", "stage": "prelude", "source": {"name": "News", "url": "https://example.test/prelude"}}, - Network accessline 331
base["event_structure"] = "developing_event" base["event_sequence"] = [ {"date": "2023-03-09", "event": "자금조달 이슈 공개", "stage": "prelude", "source": {"name": "News", "url": "https://example.test/prelude"}}, - Network accessline 332
base["event_sequence"] = [ {"date": "2023-03-09", "event": "자금조달 이슈 공개", "stage": "prelude", "source": {"name": "News", "url": "https://example.test/prelude"}}, {"date": "2023-03-10", "time_local": "11:15", "timezone - Network accessline 332
base["event_sequence"] = [ {"date": "2023-03-09", "event": "자금조달 이슈 공개", "stage": "prelude", "source": {"name": "News", "url": "https://example.test/prelude"}}, {"date": "2023-03-10", "time_local": "11:15", "timezone - Network accessline 333
{"date": "2023-03-09", "event": "자금조달 이슈 공개", "stage": "prelude", "source": {"name": "News", "url": "https://example.test/prelude"}}, - Network accessline 333
{"date": "2023-03-09", "event": "자금조달 이슈 공개", "stage": "prelude", "source": {"name": "News", "url": "https://example.test/prelude"}}, - Network accessline 334
{"date": "2023-03-10", "time_local": "11:15", "timezone": "America/New_York", "event": "규제당국의 폐쇄", "stage": "trigger", "source": {"name": "FDIC", "url": "https://example.test/closure"}}, - Network accessline 334
{"date": "2023-03-10", "time_local": "11:15", "timezone": "America/New_York", "event": "규제당국의 폐쇄", "stage": "trigger", "source": {"name": "FDIC", "url": "https://example.test/closure"}}, - Network accessline 335
{"date": "2023-03-12", "event": "예금자 보호 조치", "stage": "response", "source": {"name": "Fed", "url": "https://example.test/response"}}, - Network accessline 335
{"date": "2023-03-12", "event": "예금자 보호 조치", "stage": "response", "source": {"name": "Fed", "url": "https://example.test/response"}}, - Network accessline 350
"event_name": "SVB failure", "event_date": "2023-03-10", "event_time_local": "11:15", "event_timezone": "America/New_York", "event_timestamp_quality": "exact_timestamp", "event_structure": "developing_event", "source - Network accessline 350
"event_name": "SVB failure", "event_date": "2023-03-10", "event_time_local": "11:15", "event_timezone": "America/New_York", "event_timestamp_quality": "exact_timestamp", "event_structure": "developing_event", "source - Network accessline 351
"event_timezone": "America/New_York", "event_timestamp_quality": "exact_timestamp", "event_structure": "developing_event", "source": {"name": "FDIC", "url": "https://example.test/event"}, } - Network accessline 351
"event_timezone": "America/New_York", "event_timestamp_quality": "exact_timestamp", "event_structure": "developing_event", "source": {"name": "FDIC", "url": "https://example.test/event"}, } - Network accessline 352
"event_structure": "developing_event", "source": {"name": "FDIC", "url": "https://example.test/event"}, - Network accessline 352
"event_structure": "developing_event", "source": {"name": "FDIC", "url": "https://example.test/event"}, - Network accessline 378
"region": "글로벌", "event_date": "2024-01-01", "source": {"name": "fixture", "url": "https://example.test/event"}, - Network accessline 378
"region": "글로벌", "event_date": "2024-01-01", "source": {"name": "fixture", "url": "https://example.test/event"}, - Network accessline 379
"event_date": "2024-01-01", "source": {"name": "fixture", "url": "https://example.test/event"}, } - Network accessline 379
"event_date": "2024-01-01", "source": {"name": "fixture", "url": "https://example.test/event"}, } - Network accessline 380
"source": {"name": "fixture", "url": "https://example.test/event"}, - Network accessline 380
"source": {"name": "fixture", "url": "https://example.test/event"}, - Network accessline 445
"region": "US", "event_date": "2022-11-10", "event_time_local": "08:30", "event_timezone": "America/New_York", "source": {"name": "BLS", "url": "https://example.test/event"}, - Network accessline 445
"region": "US", "event_date": "2022-11-10", "event_time_local": "08:30", "event_timezone": "America/New_York", "source": {"name": "BLS", "url": "https://example.test/event"}, - Network accessline 446
"event_timezone": "America/New_York", "source": {"name": "BLS", "url": "https://example.test/event"}, } - Network accessline 446
"event_timezone": "America/New_York", "source": {"name": "BLS", "url": "https://example.test/event"}, } - Network accessline 447
"source": {"name": "BLS", "url": "https://example.test/event"}, - Network accessline 447
"source": {"name": "BLS", "url": "https://example.test/event"}, - Network accessline 449
base = { "region": "US", "market_timezone": "America/New_York", "selection_priority": 0, "source": {"name": "fixture", "url": "https://example.test/series"}, - Network accessline 449
base = { "region": "US", "market_timezone": "America/New_York", "selection_priority": 0, "source": {"name": "fixture", "url": "https://example.test/series"}, - Network accessline 450
"region": "US", "market_timezone": "America/New_York", "selection_priority": 0, "source": {"name": "fixture", "url": "https://example.test/series"}, } - Network accessline 450
"region": "US", "market_timezone": "America/New_York", "selection_priority": 0, "source": {"name": "fixture", "url": "https://example.test/series"}, } - Network accessline 451
"selection_priority": 0, "source": {"name": "fixture", "url": "https://example.test/series"}, - Network accessline 451
"selection_priority": 0, "source": {"name": "fixture", "url": "https://example.test/series"}, - Network accessline 520
"result": "ok", "trigger": "UST2Y", "trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, - Network accessline 520
"result": "ok", "trigger": "UST2Y", "trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, - Network accessline 521
"trigger": "UST2Y", "trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, "events": [{"date": "2026-09-16", "metric": "bp_change", "value": 6.0, "threshold": 6.0, "responses": []}], - Network accessline 521
"trigger": "UST2Y", "trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, "events": [{"date": "2026-09-16", "metric": "bp_change", "value": 6.0, "threshold": 6.0, "responses": []}], - Network accessline 522
"trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, - Network accessline 522
"trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, - Network accessline 525
}) self.assertIn("+6.00bp", rendered) self.assertIn("[Treasury](https://example.test/ust2y)", rendered) - Network accessline 525
}) self.assertIn("+6.00bp", rendered) self.assertIn("[Treasury](https://example.test/ust2y)", rendered) - Network accessline 526
self.assertIn("+6.00bp", rendered) self.assertIn("[Treasury](https://example.test/ust2y)", rendered) self.assertNotIn("미확인", rendered) - Network accessline 526
self.assertIn("+6.00bp", rendered) self.assertIn("[Treasury](https://example.test/ust2y)", rendered) self.assertNotIn("미확인", rendered) - Network accessline 527
self.assertIn("[Treasury](https://example.test/ust2y)", rendered) - Network accessline 527
self.assertIn("[Treasury](https://example.test/ust2y)", rendered) - Network accessline 532
rendered = render_chat({ "result": "ok", "trigger": "UST2Y", "trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, - Network accessline 532
rendered = render_chat({ "result": "ok", "trigger": "UST2Y", "trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, - Network accessline 533
"result": "ok", "trigger": "UST2Y", "trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, "events": [{"date": "2026-09-15", "metric": "bp_change", "value": 7.0, "threshold": 6.0, "responses": [ - Network accessline 533
"result": "ok", "trigger": "UST2Y", "trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, "events": [{"date": "2026-09-15", "metric": "bp_change", "value": 7.0, "threshold": 6.0, "responses": [ - Network accessline 534
"trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, - Network accessline 534
"trigger_source": {"name": "Treasury", "url": "https://example.test/ust2y"}, - Network accessline 544
event = { "event_name": "테스트 사건", "event_date": "2024-01-02", "source": {"name": "fixture", "url": "https://example.test/event"}, - Network accessline 544
event = { "event_name": "테스트 사건", "event_date": "2024-01-02", "source": {"name": "fixture", "url": "https://example.test/event"}, - Network accessline 545
"event_name": "테스트 사건", "event_date": "2024-01-02", "source": {"name": "fixture", "url": "https://example.test/event"}, } - Network accessline 545
"event_name": "테스트 사건", "event_date": "2024-01-02", "source": {"name": "fixture", "url": "https://example.test/event"}, } - Network accessline 546
"source": {"name": "fixture", "url": "https://example.test/event"}, - Network accessline 546
"source": {"name": "fixture", "url": "https://example.test/event"},
market-kurly-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/market-kurly-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/market-kurly-search/instruction.md.
market-kurly-search/instruction.md
- Network accessline 58
- search list: `https://api.kurly.com/search/v4/sites/market/normal-search?keyword=<keyword>&page=1` - Network accessline 58
- search list: `https://api.kurly.com/search/v4/sites/market/normal-search?keyword=<keyword>&page=1` - Network accessline 59
- search count: `https://api.kurly.com/search/v3/sites/market/normal-search/count?keyword=<keyword>&filters=&allow_replace=true` - Network accessline 59
- search count: `https://api.kurly.com/search/v3/sites/market/normal-search/count?keyword=<keyword>&filters=&allow_replace=true` - Network accessline 60
- product detail page: `https://www.kurly.com/goods/<productNo>` - Network accessline 60
- product detail page: `https://www.kurly.com/goods/<productNo>`
market-kurly-search/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제9 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제9
market-kurly-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
mfds-drug-safety/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/mfds-drug-safety/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/mfds-drug-safety/instruction.md.
mfds-drug-safety/instruction.md
- Network accessline 35
- 사용자 측 **필수** 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 35
- 사용자 측 **필수** 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 36
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 36
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Network accessline 50
- 공공데이터포털 문서: `https://www.data.go.kr/data/15075057/openapi.do` - Network accessline 50
- 공공데이터포털 문서: `https://www.data.go.kr/data/15075057/openapi.do` - Network accessline 51
- e약은요 endpoint: `https://apis.data.go.kr/1471000/DrbEasyDrugInfoService/getDrbEasyDrugList` - Network accessline 51
- e약은요 endpoint: `https://apis.data.go.kr/1471000/DrbEasyDrugInfoService/getDrbEasyDrugList` - Network accessline 52
- 공공데이터포털 문서: `https://www.data.go.kr/data/15097208/openapi.do` - Network accessline 52
- 공공데이터포털 문서: `https://www.data.go.kr/data/15097208/openapi.do` - Network accessline 53
- 안전상비의약품 endpoint: `https://apis.data.go.kr/1471000/SafeStadDrugService/getSafeStadDrugInq` - Network accessline 53
- 안전상비의약품 endpoint: `https://apis.data.go.kr/1471000/SafeStadDrugService/getSafeStadDrugInq`
mfds-drug-safety/scripts/mfds_drug_safety.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 14
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 14
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 15
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 15
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Network accessline 106
def read_json_response(request: urllib.request.Request | str) -> dict[str, Any]: - Network accessline 106
def read_json_response(request: urllib.request.Request | str) -> dict[str, Any]: - Network accessline 107
try: with urllib.request.urlopen(request, timeout=30) as response: return json.loads(response.read().decode("utf-8")) - Network accessline 107
try: with urllib.request.urlopen(request, timeout=30) as response: return json.loads(response.read().decode("utf-8")) - Network accessline 108
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 108
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 140
params.append(("limit", str(limit))) query = urllib.parse.urlencode(params) request = urllib.request.Request( - Network accessline 140
params.append(("limit", str(limit))) query = urllib.parse.urlencode(params) request = urllib.request.Request( - Network accessline 141
query = urllib.parse.urlencode(params) request = urllib.request.Request( f"{url}?{query}", - Network accessline 141
query = urllib.parse.urlencode(params) request = urllib.request.Request( f"{url}?{query}", - Network accessline 142
request = urllib.request.Request( - Network accessline 142
request = urllib.request.Request(
mfds-food-safety/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/mfds-food-safety/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/mfds-food-safety/instruction.md.
mfds-food-safety/instruction.md
- Network accessline 43
- 사용자 측 **필수** 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 43
- 사용자 측 **필수** 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 44
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 44
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 45
[Credential-related source omitted] - Network accessline 45
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Network accessline 47
[Credential-related source omitted] - Network accessline 47
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Network accessline 60
- 공공데이터포털 문서: `https://www.data.go.kr/data/15056516/openapi.do` - Network accessline 60
- 공공데이터포털 문서: `https://www.data.go.kr/data/15056516/openapi.do` - Network accessline 61
- 부적합 식품 endpoint: `https://apis.data.go.kr/1471000/PrsecImproptFoodInfoService03/getPrsecImproptFoodList01` - Network accessline 61
- 부적합 식품 endpoint: `https://apis.data.go.kr/1471000/PrsecImproptFoodInfoService03/getPrsecImproptFoodList01` - Network accessline 62
- 식품안전나라 회수·판매중지 (I0490): `https://www.foodsafetykorea.go.kr/api/openApiInfo.do?menu_grp=MENU_GRP31&menu_no=661&show_cnt=10&start_idx=1&svc_no=I0490&svc_type_cd=API_TYPE06` - Network accessline 62
- 식품안전나라 회수·판매중지 (I0490): `https://www.foodsafetykorea.go.kr/api/openApiInfo.do?menu_grp=MENU_GRP31&menu_no=661&show_cnt=10&start_idx=1&svc_no=I0490&svc_type_cd=API_TYPE06` - Network accessline 63
- 식품안전나라 회수 sample: `https://openapi.foodsafetykorea.go.kr/api/sample/I0490/json/1/5` - Network accessline 63
- 식품안전나라 회수 sample: `https://openapi.foodsafetykorea.go.kr/api/sample/I0490/json/1/5` - Network accessline 64
- 건강기능식품 기능성 원료 인정현황 (I-0040): `https://www.foodsafetykorea.go.kr/api/openApiInfo.do?menu_grp=MENU_GRP31&menu_no=661&show_cnt=10&start_idx=1&svc_no=I-0040&svc_type_cd=API_TYPE06` - Network accessline 64
- 건강기능식품 기능성 원료 인정현황 (I-0040): `https://www.foodsafetykorea.go.kr/api/openApiInfo.do?menu_grp=MENU_GRP31&menu_no=661&show_cnt=10&start_idx=1&svc_no=I-0040&svc_type_cd=API_TYPE06` - Network accessline 65
- 건강기능식품 기능성 원료 sample: `https://openapi.foodsafetykorea.go.kr/api/sample/I-0040/json/1/5` - Network accessline 65
- 건강기능식품 기능성 원료 sample: `https://openapi.foodsafetykorea.go.kr/api/sample/I-0040/json/1/5` - Network accessline 66
- 건강기능식품 개별인정형 정보 (I-0050): `https://www.foodsafetykorea.go.kr/api/openApiInfo.do?menu_grp=MENU_GRP31&menu_no=661&show_cnt=10&start_idx=1&svc_no=I-0050&svc_type_cd=API_TYPE06` - Network accessline 66
- 건강기능식품 개별인정형 정보 (I-0050): `https://www.foodsafetykorea.go.kr/api/openApiInfo.do?menu_grp=MENU_GRP31&menu_no=661&show_cnt=10&start_idx=1&svc_no=I-0050&svc_type_cd=API_TYPE06` - Network accessline 67
- 건강기능식품 개별인정형 sample: `https://openapi.foodsafetykorea.go.kr/api/sample/I-0050/json/1/5` - Network accessline 67
- 건강기능식품 개별인정형 sample: `https://openapi.foodsafetykorea.go.kr/api/sample/I-0050/json/1/5` - Network accessline 68
- 검사부적합(국내) (I2620): `https://www.foodsafetykorea.go.kr/api/openApiInfo.do?menu_grp=MENU_GRP31&menu_no=661&show_cnt=10&start_idx=1&svc_no=I2620&svc_type_cd=API_TYPE06` - Network accessline 68
- 검사부적합(국내) (I2620): `https://www.foodsafetykorea.go.kr/api/openApiInfo.do?menu_grp=MENU_GRP31&menu_no=661&show_cnt=10&start_idx=1&svc_no=I2620&svc_type_cd=API_TYPE06` - Network accessline 69
- 검사부적합(국내) sample: `https://openapi.foodsafetykorea.go.kr/api/sample/I2620/json/1/5` - Network accessline 69
- 검사부적합(국내) sample: `https://openapi.foodsafetykorea.go.kr/api/sample/I2620/json/1/5` - Network accessline 70
- 건강기능식품 품목제조 신고사항 (I0030): `https://www.foodsafetykorea.go.kr/api/openApiInfo.do?menu_grp=MENU_GRP31&menu_no=661&show_cnt=10&start_idx=1&svc_no=I0030&svc_type_cd=API_TYPE06` - Network accessline 70
- 건강기능식품 품목제조 신고사항 (I0030): `https://www.foodsafetykorea.go.kr/api/openApiInfo.do?menu_grp=MENU_GRP31&menu_no=661&show_cnt=10&start_idx=1&svc_no=I0030&svc_type_cd=API_TYPE06` - Network accessline 71
- 건강기능식품 품목제조 신고 sample: `https://openapi.foodsafetykorea.go.kr/api/sample/I0030/json/1/5` - Network accessline 71
- 건강기능식품 품목제조 신고 sample: `https://openapi.foodsafetykorea.go.kr/api/sample/I0030/json/1/5` - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted]
mfds-food-safety/scripts/mfds_food_safety.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 14
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 14
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 15
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 15
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Network accessline 112
def read_json_response(request: urllib.request.Request | str) -> dict[str, Any]: - Network accessline 112
def read_json_response(request: urllib.request.Request | str) -> dict[str, Any]: - Network accessline 113
try: with urllib.request.urlopen(request, timeout=30) as response: return json.loads(response.read().decode("utf-8")) - Network accessline 113
try: with urllib.request.urlopen(request, timeout=30) as response: return json.loads(response.read().decode("utf-8")) - Network accessline 114
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 114
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 144
url = f"{resolved_base_url}/v1/mfds/food-safety/search" params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( - Network accessline 144
url = f"{resolved_base_url}/v1/mfds/food-safety/search" params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( - Network accessline 145
params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( f"{url}?{params}", - Network accessline 145
params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( f"{url}?{params}", - Network accessline 146
request = urllib.request.Request( - Network accessline 146
request = urllib.request.Request( - Network accessline 161
url = f"{resolved_base_url}/v1/mfds/food-safety/health-food-ingredient" params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( - Network accessline 161
url = f"{resolved_base_url}/v1/mfds/food-safety/health-food-ingredient" params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( - Network accessline 162
params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( f"{url}?{params}", - Network accessline 162
params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( f"{url}?{params}", - Network accessline 163
request = urllib.request.Request( - Network accessline 163
request = urllib.request.Request( - Network accessline 178
url = f"{resolved_base_url}/v1/mfds/food-safety/product-report" params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( - Network accessline 178
url = f"{resolved_base_url}/v1/mfds/food-safety/product-report" params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( - Network accessline 179
params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( f"{url}?{params}", - Network accessline 179
params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( f"{url}?{params}", - Network accessline 180
request = urllib.request.Request( - Network accessline 180
request = urllib.request.Request( - Network accessline 195
url = f"{resolved_base_url}/v1/mfds/food-safety/inspection-fail" params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( - Network accessline 195
url = f"{resolved_base_url}/v1/mfds/food-safety/inspection-fail" params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( - Network accessline 196
params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( f"{url}?{params}", - Network accessline 196
params = urllib.parse.urlencode({"query": query, "limit": str(limit)}) request = urllib.request.Request( f"{url}?{params}", - Network accessline 197
request = urllib.request.Request( - Network accessline 197
request = urllib.request.Request(
mofa-travel-safety/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/mofa-travel-safety/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/mofa-travel-safety/instruction.md.
mofa-travel-safety/instruction.md
- Network accessline 25
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/mofa-travel-safety/travel-alerts" \ - Network accessline 25
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/mofa-travel-safety/travel-alerts" \ - Network accessline 26
curl -fsS --get "$BASE/v1/mofa-travel-safety/travel-alerts" \ - Network accessline 26
curl -fsS --get "$BASE/v1/mofa-travel-safety/travel-alerts" \ - Access to secretsline 39
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted] - Network accessline 42
공식 API: <https://www.data.go.kr/data/15095500/openapi.do> - Network accessline 42
공식 API: <https://www.data.go.kr/data/15095500/openapi.do> - Network accessline 43
<https://www.data.go.kr/data/15095500/openapi.do> - Network accessline 43
<https://www.data.go.kr/data/15095500/openapi.do> - Network accessline 45
실제 upstream: `https://apis.data.go.kr/1262000/TravelAlarmService0404/getTravelAlarm0404List` - Network accessline 45
실제 upstream: `https://apis.data.go.kr/1262000/TravelAlarmService0404/getTravelAlarm0404List` - Network accessline 46
`https://apis.data.go.kr/1262000/TravelAlarmService0404/getTravelAlarm0404List` - Network accessline 46
`https://apis.data.go.kr/1262000/TravelAlarmService0404/getTravelAlarm0404List`
mofa-travel-safety/scripts/run_mofa_travel_safety.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 11
DEFAULT_PROXY = "https://k-skill-proxy.nomadamas.org" - Network accessline 11
DEFAULT_PROXY = "https://k-skill-proxy.nomadamas.org" - Network accessline 41
return 0 try: with urllib.request.urlopen(urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/mofa-travel-safety"}), timeout=30) as response: - Network accessline 41
return 0 try: with urllib.request.urlopen(urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/mofa-travel-safety"}), timeout=30) as response: - Network accessline 42
try: with urllib.request.urlopen(urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/mofa-travel-safety"}), timeout=30) as response: payload = json.loads(response.read()) - Network accessline 42
try: with urllib.request.urlopen(urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/mofa-travel-safety"}), timeout=30) as response: payload = json.loads(response.read()) - Network accessline 43
with urllib.request.urlopen(urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/mofa-travel-safety"}), timeout=30) as response: - Network accessline 43
with urllib.request.urlopen(urllib.request.Request(url, headers={"accept": "application/json", "user-agent": "k-skill/mofa-travel-safety"}), timeout=30) as response:
multi-asset-morning-briefing/README.md
- Network accessline 5
[](https://www.python.org/) - Network accessline 5
[](https://www.python.org/) - Network accessline 6
[](scripts/market_data.py) - Network accessline 6
[](scripts/market_data.py) - Network accessline 7
[](#공식-데이터-원천) - Network accessline 7
[](#공식-데이터-원천) - Network accessline 8
[](tests/test_market_data.py) - Network accessline 8
[](tests/test_market_data.py) - Network accessline 9
[](https://github.com/NomaDamas/k-skill/pull/675) - Network accessline 9
[](https://github.com/NomaDamas/k-skill/pull/675) - Network accessline 55
• 연준이 기준금리 목표범위를 `3.75~4.00%`로 25bp 인상하고 연말 정책금리 중앙값을 `4.1%`로 제시해 시장의 중심축이 인하 기대에서 추가 긴축 위험으로 이동. [Federal Reserve Statement](https://www.federalreserve.gov/newsevents/pressreleases/monetary20260916a.htm) [Federal Reserve SEP](https://www.f - Network accessline 55
• 연준이 기준금리 목표범위를 `3.75~4.00%`로 25bp 인상하고 연말 정책금리 중앙값을 `4.1%`로 제시해 시장의 중심축이 인하 기대에서 추가 긴축 위험으로 이동. [Federal Reserve Statement](https://www.federalreserve.gov/newsevents/pressreleases/monetary20260916a.htm) [Federal Reserve SEP](https://www.f - Network accessline 57
• S&P 500 `-0.45%`, Dow `-1.21%`, Russell 2000 `-0.40%`로 약세였지만 Nasdaq `-0.01%`, SOX `+0.63%`로 반도체·기술주 상대강도 지속. [AP](https://apnews.com/article/b082e78c9b572b6b0a94b8033a0ee96b) [Nasdaq](https://indexes.nasdaq.com/index/Overview/SOX) - Network accessline 57
• S&P 500 `-0.45%`, Dow `-1.21%`, Russell 2000 `-0.40%`로 약세였지만 Nasdaq `-0.01%`, SOX `+0.63%`로 반도체·기술주 상대강도 지속. [AP](https://apnews.com/article/b082e78c9b572b6b0a94b8033a0ee96b) [Nasdaq](https://indexes.nasdaq.com/index/Overview/SOX) - Network accessline 59
• 미 2년물 `+7bp`와 원/달러 `+9.2원`이 동시에 상승해 연준 인상 충격이 단기금리와 원화 약세로 전달, 외국인 수급에는 부담. [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv/2026/all?type=daily_treasury_yield_curve&field - Network accessline 59
• 미 2년물 `+7bp`와 원/달러 `+9.2원`이 동시에 상승해 연준 인상 충격이 단기금리와 원화 약세로 전달, 외국인 수급에는 부담. [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv/2026/all?type=daily_treasury_yield_curve&field - Network accessline 61
• 유가는 전일 급등분을 일부 반납했지만 배럴당 `100달러`를 웃돌고 미국 수입물가는 전년 대비 `7.0%` 상승해 인플레이션 재가속 위험 잔존. [PFL Petroleum](https://pflpetroleum.com/reports/petroleum-daily-report-9-16-2026/) [BLS](https://www.bls.gov/news.release/ximpim.nr0.htm) - Network accessline 61
• 유가는 전일 급등분을 일부 반납했지만 배럴당 `100달러`를 웃돌고 미국 수입물가는 전년 대비 `7.0%` 상승해 인플레이션 재가속 위험 잔존. [PFL Petroleum](https://pflpetroleum.com/reports/petroleum-daily-report-9-16-2026/) [BLS](https://www.bls.gov/news.release/ximpim.nr0.htm) - Network accessline 63
• KOSPI 주간시장의 `+1.37%` 반등과 달리 미국 상장 한국 ETF EWY는 오버나이트 `-0.54%`로 마감해 국내 반도체 강세와 연준 이후 해외 위험선호 간 괴리 확인 필요. [서울경제](https://dcb0ucee30q2g.cloudfront.net/finance/2026/09/16/kospi-rebounds-past-6700-despite-17-trillion-won-foreign) [EWY](https:// - Network accessline 63
• KOSPI 주간시장의 `+1.37%` 반등과 달리 미국 상장 한국 ETF EWY는 오버나이트 `-0.54%`로 마감해 국내 반도체 강세와 연준 이후 해외 위험선호 간 괴리 확인 필요. [서울경제](https://dcb0ucee30q2g.cloudfront.net/finance/2026/09/16/kospi-rebounds-past-6700-despite-17-trillion-won-foreign) [EWY](https:// - Network accessline 67
• 연준은 `12대 0` 만장일치로 25bp 인상해 연방기금금리 목표범위를 `3.75~4.00%`로 조정하고 지급준비금 이율을 `3.90%`로 인상, 긴축 재개 확정. [Federal Reserve](https://www.federalreserve.gov/newsevents/pressreleases/monetary20260916a.htm) [Implementation Note](https://www.federalreserve. - Network accessline 67
• 연준은 `12대 0` 만장일치로 25bp 인상해 연방기금금리 목표범위를 `3.75~4.00%`로 조정하고 지급준비금 이율을 `3.90%`로 인상, 긴축 재개 확정. [Federal Reserve](https://www.federalreserve.gov/newsevents/pressreleases/monetary20260916a.htm) [Implementation Note](https://www.federalreserve. - Network accessline 69
• 2026년 SEP 중앙값은 GDP `2.3%(6월 2.2%)`, 실업률 `4.1%(4.3%)`, PCE `3.7%(3.6%)`, Core PCE `3.4%(3.3%)`, 연말 정책금리 `4.1%(3.8%)`로 성장·물가·금리 전망 동반 상향. [Federal Reserve SEP](https://www.federalreserve.gov/monetarypolicy/fomcprojtabl20260916.htm) - Network accessline 69
• 2026년 SEP 중앙값은 GDP `2.3%(6월 2.2%)`, 실업률 `4.1%(4.3%)`, PCE `3.7%(3.6%)`, Core PCE `3.4%(3.3%)`, 연말 정책금리 `4.1%(3.8%)`로 성장·물가·금리 전망 동반 상향. [Federal Reserve SEP](https://www.federalreserve.gov/monetarypolicy/fomcprojtabl20260916.htm) - Network accessline 71
• 미 국채 2년물 `4.74%(+7bp)`, 10년물 `5.01%(+1bp)`, 30년물 `5.35%(-1bp)`로 단기물 중심 Bear Flattening 발생. [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv/2026/all?type=daily_treasury_yi - Network accessline 71
• 미 국채 2년물 `4.74%(+7bp)`, 10년물 `5.01%(+1bp)`, 30년물 `5.35%(-1bp)`로 단기물 중심 Bear Flattening 발생. [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv/2026/all?type=daily_treasury_yi - Network accessline 73
• 2s10s는 `+27bp`로 전일 `+33bp`에서 `6bp` 축소돼 추가 긴축 기대가 단기 구간에 집중, 성장주 할인율과 레버리지 자산에 부담. [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv/2026/all?type=daily_treasury_yield_curve - Network accessline 73
• 2s10s는 `+27bp`로 전일 `+33bp`에서 `6bp` 축소돼 추가 긴축 기대가 단기 구간에 집중, 성장주 할인율과 레버리지 자산에 부담. [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv/2026/all?type=daily_treasury_yield_curve - Network accessline 75
• 미국 8월 수입물가 `+0.7% MoM·+7.0% YoY`, 수출물가 `+0.6% MoM·+8.6% YoY`, 비연료 수입물가 `+0.8% MoM`로 관세·상품가격발 물가 압력이 연준의 추가 긴축 논리를 지지. [BLS](https://www.bls.gov/news.release/ximpim.nr0.htm) - Network accessline 75
• 미국 8월 수입물가 `+0.7% MoM·+7.0% YoY`, 수출물가 `+0.6% MoM·+8.6% YoY`, 비연료 수입물가 `+0.8% MoM`로 관세·상품가격발 물가 압력이 연준의 추가 긴축 논리를 지지. [BLS](https://www.bls.gov/news.release/ximpim.nr0.htm) - Network accessline 79
• DXY 보조 종가는 `99.68(+0.03%)`로 상승했으며 ICE 공식 정산값이 아닌 Yahoo Finance 기반 집계값이므로 방향 확인용 SECONDARY. [Aegean DXY](https://aegeanintel.com/data/series/dxy/) - Network accessline 79
• DXY 보조 종가는 `99.68(+0.03%)`로 상승했으며 ICE 공식 정산값이 아닌 Yahoo Finance 기반 집계값이므로 방향 확인용 SECONDARY. [Aegean DXY](https://aegeanintel.com/data/series/dxy/) - Network accessline 81
• ECB 기준 EUR/USD `1.1537(-0.02%)`, GBP/USD `1.34558(-0.20%)`로 하락해 유럽통화 대비 달러 우위 확인. [ECB](https://data-api.ecb.europa.eu/service/data/EXR/D.USD+JPY+GBP.EUR.SP00.A?format=csvdata&startPeriod=2026-09-03&endPeriod=2026-09-17) - Network accessline 81
• ECB 기준 EUR/USD `1.1537(-0.02%)`, GBP/USD `1.34558(-0.20%)`로 하락해 유럽통화 대비 달러 우위 확인. [ECB](https://data-api.ecb.europa.eu/service/data/EXR/D.USD+JPY+GBP.EUR.SP00.A?format=csvdata&startPeriod=2026-09-03&endPeriod=2026-09-17) - Network accessline 83
• USD/JPY는 `155.049(+0.03%)`로 상승해 엔화 약세가 이어졌으며 일본 수입물가와 아시아 통화 변동성에는 부담. [ECB](https://data-api.ecb.europa.eu/service/data/EXR/D.USD+JPY+GBP.EUR.SP00.A?format=csvdata&startPeriod=2026-09-03&endPeriod=2026-09-17) - Network accessline 83
• USD/JPY는 `155.049(+0.03%)`로 상승해 엔화 약세가 이어졌으며 일본 수입물가와 아시아 통화 변동성에는 부담. [ECB](https://data-api.ecb.europa.eu/service/data/EXR/D.USD+JPY+GBP.EUR.SP00.A?format=csvdata&startPeriod=2026-09-03&endPeriod=2026-09-17) - Network accessline 85
• 서울 현물 원/달러 종가는 `1,368.6원`, 전일 대비 `+9.2원(+0.68%)`으로 원화 약세 심화, 외국인 현물 수급에는 부담이나 수출주 환산 실적에는 완충 변수. [서울경제](https://en.sedaily.com/finance/2026/09/16/won-slides-past-1370-as-oil-prices-push-us-yields-to-5) - Network accessline 85
• 서울 현물 원/달러 종가는 `1,368.6원`, 전일 대비 `+9.2원(+0.68%)`으로 원화 약세 심화, 외국인 현물 수급에는 부담이나 수출주 환산 실적에는 완충 변수. [서울경제](https://en.sedaily.com/finance/2026/09/16/won-slides-past-1370-as-oil-prices-push-us-yields-to-5) - Network accessline 87
• 확인 가능한 동일 기준시점의 원/달러 1개월 NDF 종가를 확보하지 못해 서울 현물 종가와 오버나이트 환율을 혼합하지 않음. [한국은행 ECOS](https://ecos.bok.or.kr/) - Network accessline 87
• 확인 가능한 동일 기준시점의 원/달러 1개월 NDF 종가를 확보하지 못해 서울 현물 종가와 오버나이트 환율을 혼합하지 않음. [한국은행 ECOS](https://ecos.bok.or.kr/) - Network accessline 91
• WTI 10월물은 `102.43달러/배럴(-3.21%)`, Brent 11월물은 `105.83달러/배럴(-2.69%)`에 정산돼 전일 급등분 일부 반납, 정유·에너지에는 차익실현 부담이고 항공·운송에는 비용 압력 완화. [PFL Petroleum](https://pflpetroleum.com/reports/petroleum-daily-report-9-16-2026/) [Gate](https://www.gate.com/en- - Network accessline 91
• WTI 10월물은 `102.43달러/배럴(-3.21%)`, Brent 11월물은 `105.83달러/배럴(-2.69%)`에 정산돼 전일 급등분 일부 반납, 정유·에너지에는 차익실현 부담이고 항공·운송에는 비용 압력 완화. [PFL Petroleum](https://pflpetroleum.com/reports/petroleum-daily-report-9-16-2026/) [Gate](https://www.gate.com/en- - Network accessline 93
• 유가 하락 배경은 사우디의 추가 아시아 공급과 수출 차질 완화 기대였지만 월간 상승률은 여전히 `16% 이상`으로 국내 물가·항공·화학 마진의 불확실성 지속. [PFL Petroleum](https://pflpetroleum.com/reports/petroleum-daily-report-9-16-2026/) - Network accessline 93
• 유가 하락 배경은 사우디의 추가 아시아 공급과 수출 차질 완화 기대였지만 월간 상승률은 여전히 `16% 이상`으로 국내 물가·항공·화학 마진의 불확실성 지속. [PFL Petroleum](https://pflpetroleum.com/reports/petroleum-daily-report-9-16-2026/) - Network accessline 95
• COMEX 금 12월물은 `4,346.30달러/온스(+1.27%)`에 정산돼 연준 결정 전후 안전자산 수요 유지, 다만 단일 2차 원천 기준 SECONDARY. [Indy Finance](https://www.indy.finance/news/gold-settles-at-4-346-30-as-traders-brace-for-fed-rate-decision) - Network accessline 95
• COMEX 금 12월물은 `4,346.30달러/온스(+1.27%)`에 정산돼 연준 결정 전후 안전자산 수요 유지, 다만 단일 2차 원천 기준 SECONDARY. [Indy Finance](https://www.indy.finance/news/gold-settles-at-4-346-30-as-traders-brace-for-fed-rate-decision) - Network accessline 97
• LME 구리 Cash Settlement는 `14,227달러/톤(+1.30%)`, 3개월물은 `14,232달러/톤(+1.10%)`, 재고는 `254,150톤(+1.98%)`으로 가격과 재고가 동반 상승해 수요 신호로 단정하기보다 공급·재고 흐름 확인 필요. [Westmetall LME data](https://www.westmetall.com/en/markdaten.php/leistungen/en/en/westmetall. - Network accessline 97
• LME 구리 Cash Settlement는 `14,227달러/톤(+1.30%)`, 3개월물은 `14,232달러/톤(+1.10%)`, 재고는 `254,150톤(+1.98%)`으로 가격과 재고가 동반 상승해 수요 신호로 단정하기보다 공급·재고 흐름 확인 필요. [Westmetall LME data](https://www.westmetall.com/en/markdaten.php/leistungen/en/en/westmetall. - Network accessline 101
• S&P 500 `7,551.81(-0.45%)`, Dow `51,461.90(-1.21%)`, Nasdaq `25,978.42(-0.01%)`, Russell 2000 `2,858.81(-0.40%)`로 대형 기술주 대비 금융·경기민감주 상대 약세. [AP](https://apnews.com/article/b082e78c9b572b6b0a94b8033a0ee96b) - Network accessline 101
• S&P 500 `7,551.81(-0.45%)`, Dow `51,461.90(-1.21%)`, Nasdaq `25,978.42(-0.01%)`, Russell 2000 `2,858.81(-0.40%)`로 대형 기술주 대비 금융·경기민감주 상대 약세. [AP](https://apnews.com/article/b082e78c9b572b6b0a94b8033a0ee96b) - Network accessline 103
• VIX는 `17.71pt`, 전일 `17.20pt` 대비 `+0.51pt` 상승해 지수 낙폭보다 헤지 수요 증가가 두드러진 세션. [Cboe](https://cdn.cboe.com/api/global/us_indices/daily_prices/VIX_History.csv) - Network accessline 103
• VIX는 `17.71pt`, 전일 `17.20pt` 대비 `+0.51pt` 상승해 지수 낙폭보다 헤지 수요 증가가 두드러진 세션. [Cboe](https://cdn.cboe.com/api/global/us_indices/daily_prices/VIX_History.csv) - Network accessline 105
• SOX는 `11,246.11(+0.63%)`로 상승했고 Nvidia `+0.8%`, AMD `+1.6%`로 반도체 바스켓이 연준 인상에도 상대강도 유지. [Nasdaq](https://indexes.nasdaq.com/index/Overview/SOX) [AP](https://apnews.com/article/e2e82957e490b7be205db6013f621c3d) - Network accessline 105
• SOX는 `11,246.11(+0.63%)`로 상승했고 Nvidia `+0.8%`, AMD `+1.6%`로 반도체 바스켓이 연준 인상에도 상대강도 유지. [Nasdaq](https://indexes.nasdaq.com/index/Overview/SOX) [AP](https://apnews.com/article/e2e82957e490b7be205db6013f621c3d) - Network accessline 107
• S&P 500 11개 업종 중 기술주만 `+0.12%`로 상승하고 10개 업종이 하락해 지수 보합에 가까운 Nasdaq과 달리 시장 폭은 취약. [WMTMT market note](https://www.wmtmt.com/notes/daily-2026-09-16) - Network accessline 107
• S&P 500 11개 업종 중 기술주만 `+0.12%`로 상승하고 10개 업종이 하락해 지수 보합에 가까운 Nasdaq과 달리 시장 폭은 취약. [WMTMT market note](https://www.wmtmt.com/notes/daily-2026-09-16) - Network accessline 109
• Huntington Bancshares `-5.6%`, Citizens Financial `-4.8%`, JPMorgan `-1.0%`로 은행주가 하락해 금리 인상이 금융주 전반의 즉각적 호재로 연결되지 않음. [AP](https://apnews.com/article/e2e82957e490b7be205db6013f621c3d) - Network accessline 109
• Huntington Bancshares `-5.6%`, Citizens Financial `-4.8%`, JPMorgan `-1.0%`로 은행주가 하락해 금리 인상이 금융주 전반의 즉각적 호재로 연결되지 않음. [AP](https://apnews.com/article/e2e82957e490b7be205db6013f621c3d) - Network accessline 111
• J.B. Hunt `-13.3%`는 3분기 이익이 2분기 대비 `5~10%` 감소할 수 있다는 비용 경고에 따른 개별 실적 충격, 운송주 비용 압력 확인 필요. [AP](https://apnews.com/article/e2e82957e490b7be205db6013f621c3d) - Network accessline 111
• J.B. Hunt `-13.3%`는 3분기 이익이 2분기 대비 `5~10%` 감소할 수 있다는 비용 경고에 따른 개별 실적 충격, 운송주 비용 압력 확인 필요. [AP](https://apnews.com/article/e2e82957e490b7be205db6013f621c3d) - Network accessline 115
• KOSPI `6,717.97(+1.37%)`, KOSDAQ `815.98(+0.44%)`로 동반 상승해 KOSPI는 4거래일 연속 하락 뒤 반등. [한국은행 ECOS](https://ecos.bok.or.kr/api/StatisticSearch/sample/json/kr/1/10/802Y001/D/20260916/20260916) [서울경제](https://dcb0ucee30q2g.cloudfront.net/finance/ - Network accessline 115
• KOSPI `6,717.97(+1.37%)`, KOSDAQ `815.98(+0.44%)`로 동반 상승해 KOSPI는 4거래일 연속 하락 뒤 반등. [한국은행 ECOS](https://ecos.bok.or.kr/api/StatisticSearch/sample/json/kr/1/10/802Y001/D/20260916/20260916) [서울경제](https://dcb0ucee30q2g.cloudfront.net/finance/ - Network accessline 117
• 삼성전자 `+2.01%`, SK하이닉스 `+4.08%`로 대형 반도체가 반등을 주도했고 미국 SOX `+0.63%`가 오버나이트 상대강도 신호, 장중 외국인 수급이 지속성의 핵심 변수. [서울경제](https://dcb0ucee30q2g.cloudfront.net/finance/2026/09/16/kospi-rebounds-past-6700-despite-17-trillion-won-foreign) [Nasdaq SOX]( - Network accessline 117
• 삼성전자 `+2.01%`, SK하이닉스 `+4.08%`로 대형 반도체가 반등을 주도했고 미국 SOX `+0.63%`가 오버나이트 상대강도 신호, 장중 외국인 수급이 지속성의 핵심 변수. [서울경제](https://dcb0ucee30q2g.cloudfront.net/finance/2026/09/16/kospi-rebounds-past-6700-despite-17-trillion-won-foreign) [Nasdaq SOX]( - Network accessline 119
• KOSPI에서 기관이 약 `1.21조원` 순매수했지만 외국인은 약 `1.68조원`, 개인은 약 `1.18조원` 순매도해 지수 반등과 수급의 괴리 확대. [서울경제](https://dcb0ucee30q2g.cloudfront.net/finance/2026/09/16/kospi-rebounds-past-6700-despite-17-trillion-won-foreign) - Network accessline 119
• KOSPI에서 기관이 약 `1.21조원` 순매수했지만 외국인은 약 `1.68조원`, 개인은 약 `1.18조원` 순매도해 지수 반등과 수급의 괴리 확대. [서울경제](https://dcb0ucee30q2g.cloudfront.net/finance/2026/09/16/kospi-rebounds-past-6700-despite-17-trillion-won-foreign) - Network accessline 121
• 미국 상장 한국 ETF EWY는 `175.54달러(-0.54%)`로 마감해 국내 현물 반등을 이어가지 못했고, 연준 인상·원화 약세를 반영한 해외 투자심리는 부담. [EWY](https://stockanalysis.com/etf/ewy/) - Network accessline 121
• 미국 상장 한국 ETF EWY는 `175.54달러(-0.54%)`로 마감해 국내 현물 반등을 이어가지 못했고, 연준 인상·원화 약세를 반영한 해외 투자심리는 부담. [EWY](https://stockanalysis.com/etf/ewy/) - Network accessline 123
• 원/달러 현물 `1,368.6원(+9.2원)`과 외국인 대규모 순매도가 동반돼 환율 안정 전까지 외국인 주도 추세 전환 판단은 유보. [서울경제 FX](https://en.sedaily.com/finance/2026/09/16/won-slides-past-1370-as-oil-prices-push-us-yields-to-5) [연합뉴스](https://en.yna.co.kr/view/AEN20260916008600320) - Network accessline 123
• 원/달러 현물 `1,368.6원(+9.2원)`과 외국인 대규모 순매도가 동반돼 환율 안정 전까지 외국인 주도 추세 전환 판단은 유보. [서울경제 FX](https://en.sedaily.com/finance/2026/09/16/won-slides-past-1370-as-oil-prices-push-us-yields-to-5) [연합뉴스](https://en.yna.co.kr/view/AEN20260916008600320) - Network accessline 125
• 동일 세션 국내 국고채 3년·10년 종가, KOSPI200 야간선물, 주요 한국 ADR의 일관된 종가를 신뢰 가능한 원천에서 교차 확인하지 못해 해당 수치는 확보하지 못함. [금융투자협회 채권정보센터](https://www.kofiabond.or.kr/) - Network accessline 125
• 동일 세션 국내 국고채 3년·10년 종가, KOSPI200 야간선물, 주요 한국 ADR의 일관된 종가를 신뢰 가능한 원천에서 교차 확인하지 못해 해당 수치는 확보하지 못함. [금융투자협회 채권정보센터](https://www.kofiabond.or.kr/) - Network accessline 129
• 향후 한국 거래일 5개는 `09.17·09.18·09.21·09.22·09.23`, 일정 시각은 모두 KST 기준. [한국은행](https://www.bok.or.kr/eng/stats/statsPublictSchdul/listCldr.do?date=25135-09&menuNo=400359) [New York Fed](https://www.newyorkfed.org/research/calendars/i-sep26.html) - Network accessline 129
• 향후 한국 거래일 5개는 `09.17·09.18·09.21·09.22·09.23`, 일정 시각은 모두 KST 기준. [한국은행](https://www.bok.or.kr/eng/stats/statsPublictSchdul/listCldr.do?date=25135-09&menuNo=400359) [New York Fed](https://www.newyorkfed.org/research/calendars/i-sep26.html) - Network accessline 131
• `09.17 12:00 KST` 한국은행 2026년 상반기 지식재산권 무역수지 잠정치는 서비스수지와 원화 펀더멘털 점검 변수. [한국은행](https://www.bok.or.kr/eng/stats/statsPublictSchdul/listCldr.do?date=25135-09&menuNo=400359) - Network accessline 131
• `09.17 12:00 KST` 한국은행 2026년 상반기 지식재산권 무역수지 잠정치는 서비스수지와 원화 펀더멘털 점검 변수. [한국은행](https://www.bok.or.kr/eng/stats/statsPublictSchdul/listCldr.do?date=25135-09&menuNo=400359) - Network accessline 133
• `09.17 21:30 KST(08:30 ET)` 미국 신규 실업수당 청구건수는 컨센서스 `207K`, 이전 `206K`; 같은 시각 8월 주택착공은 `1.30M` 예상, 이전 `1.239M`으로 연준 인상 직후 고용·주택 민감도 확인 핵심. [New York Fed Calendar](https://www.newyorkfed.org/research/calendars/i-sep26.html) [Census](https://w - Network accessline 133
• `09.17 21:30 KST(08:30 ET)` 미국 신규 실업수당 청구건수는 컨센서스 `207K`, 이전 `206K`; 같은 시각 8월 주택착공은 `1.30M` 예상, 이전 `1.239M`으로 연준 인상 직후 고용·주택 민감도 확인 핵심. [New York Fed Calendar](https://www.newyorkfed.org/research/calendars/i-sep26.html) [Census](https://w - Network accessline 135
• `09.17 21:30 KST` 필라델피아 연은 제조업지수는 `34.0` 예상, 이전 `47.4`; `23:00 KST` 잠정주택판매는 `+0.5%` 예상, 이전 `-2.3%`로 성장 모멘텀 교차 확인 변수. [New York Fed Calendar](https://www.newyorkfed.org/research/calendars/i-sep26.html) [WSJ survey via MarketScreener](https - Network accessline 135
• `09.17 21:30 KST` 필라델피아 연은 제조업지수는 `34.0` 예상, 이전 `47.4`; `23:00 KST` 잠정주택판매는 `+0.5%` 예상, 이전 `-2.3%`로 성장 모멘텀 교차 확인 변수. [New York Fed Calendar](https://www.newyorkfed.org/research/calendars/i-sep26.html) [WSJ survey via MarketScreener](https - Network accessline 137
• `09.18 06:00 KST` 한국 8월 생산자물가지수, `12:00 KST` 2025년 공공부문계정 발표로 국내 물가·재정 흐름 점검 핵심. [한국은행](https://www.bok.or.kr/eng/stats/statsPublictSchdul/listCldr.do?date=25135-09&menuNo=400359) - Network accessline 137
• `09.18 06:00 KST` 한국 8월 생산자물가지수, `12:00 KST` 2025년 공공부문계정 발표로 국내 물가·재정 흐름 점검 핵심. [한국은행](https://www.bok.or.kr/eng/stats/statsPublictSchdul/listCldr.do?date=25135-09&menuNo=400359) - Network accessline 139
• `09.18 22:15 KST(09:15 ET)` 미국 8월 산업생산은 `+0.3%` 예상, 이전 `+0.2%`; 설비가동률은 `76.4%` 예상, 이전 `76.3%`로 경기 강도와 추가 긴축 여력 판단 변수. [Federal Reserve G.17](https://www.federalreserve.gov/releases/g17/) [WSJ survey via MarketScreener](https://www.markets - Network accessline 139
• `09.18 22:15 KST(09:15 ET)` 미국 8월 산업생산은 `+0.3%` 예상, 이전 `+0.2%`; 설비가동률은 `76.4%` 예상, 이전 `76.3%`로 경기 강도와 추가 긴축 여력 판단 변수. [Federal Reserve G.17](https://www.federalreserve.gov/releases/g17/) [WSJ survey via MarketScreener](https://www.markets - Network accessline 141
• `09.18 23:00 KST(10:00 ET)` 미국 8월 주별 고용·실업 발표로 지역별 노동시장 확산 정도 확인 필요. [BLS](https://www.bls.gov/schedule/2026/) - Network accessline 141
• `09.18 23:00 KST(10:00 ET)` 미국 8월 주별 고용·실업 발표로 지역별 노동시장 확산 정도 확인 필요. [BLS](https://www.bls.gov/schedule/2026/) - Network accessline 143
• `09.21 12:00 KST` 한국은행 2024년 연장표 산업연관표 발표로 반도체·에너지 가격 충격의 업종별 투입 경로 확인 필요. [한국은행](https://www.bok.or.kr/eng/stats/statsPublictSchdul/listCldr.do?date=25135-09&menuNo=400359) - Network accessline 143
• `09.21 12:00 KST` 한국은행 2024년 연장표 산업연관표 발표로 반도체·에너지 가격 충격의 업종별 투입 경로 확인 필요. [한국은행](https://www.bok.or.kr/eng/stats/statsPublictSchdul/listCldr.do?date=25135-09&menuNo=400359) - Network accessline 145
• `09.22 23:00 KST(10:00 ET)` 미국 9월 리치먼드 연은 제조업지수 발표, 이전 `4`로 지역 제조업 확장 지속 여부가 경기·금리의 확인 변수. [New York Fed Calendar](https://www.newyorkfed.org/research/calendars/i-sep26.html) [Richmond Fed series](https://www.investing.com/economic-calend - Network accessline 145
• `09.22 23:00 KST(10:00 ET)` 미국 9월 리치먼드 연은 제조업지수 발표, 이전 `4`로 지역 제조업 확장 지속 여부가 경기·금리의 확인 변수. [New York Fed Calendar](https://www.newyorkfed.org/research/calendars/i-sep26.html) [Richmond Fed series](https://www.investing.com/economic-calend - Network accessline 147
• `09.23 06:00 KST` 한국 9월 소비자동향조사 발표, 8월 소비자심리지수 `104.5`에서의 반등 여부가 내수·소비 업종의 핵심 변수. [한국은행](https://www.bok.or.kr/eng/stats/statsPublictSchdul/listCldr.do?date=25135-09&menuNo=400359) [이전치](https://tradingeconomics.com/south-korea/consumer-c - Network accessline 147
• `09.23 06:00 KST` 한국 9월 소비자동향조사 발표, 8월 소비자심리지수 `104.5`에서의 반등 여부가 내수·소비 업종의 핵심 변수. [한국은행](https://www.bok.or.kr/eng/stats/statsPublictSchdul/listCldr.do?date=25135-09&menuNo=400359) [이전치](https://tradingeconomics.com/south-korea/consumer-c - Network accessline 168
| 원천 | 수집 항목 | 검증 기준 | |---|---|---| | [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates) | 미국 국채 2Y·10Y·30Y, 2s10s | 미국 목표 세션과 동일한 관측일 | - Network accessline 168
| 원천 | 수집 항목 | 검증 기준 | |---|---|---| | [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates) | 미국 국채 2Y·10Y·30Y, 2s10s | 미국 목표 세션과 동일한 관측일 | - Network accessline 169
|---|---|---| | [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates) | 미국 국채 2Y·10Y·30Y, 2s10s | 미국 목표 세션과 동일한 관측일 | | [Cboe](https://www.cboe.com/tradable_products/vix/) | VIX 종가, 미국 최근 완료 세션 | `pt`, - Network accessline 169
|---|---|---| | [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates) | 미국 국채 2Y·10Y·30Y, 2s10s | 미국 목표 세션과 동일한 관측일 | | [Cboe](https://www.cboe.com/tradable_products/vix/) | VIX 종가, 미국 최근 완료 세션 | `pt`, - Network accessline 170
| [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates) | 미국 국채 2Y·10Y·30Y, 2s10s | 미국 목표 세션과 동일한 관측일 | - Network accessline 170
| [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates) | 미국 국채 2Y·10Y·30Y, 2s10s | 미국 목표 세션과 동일한 관측일 | - Network accessline 171
| [Cboe](https://www.cboe.com/tradable_products/vix/) | VIX 종가, 미국 최근 완료 세션 | `pt`, regular close | - Network accessline 171
| [Cboe](https://www.cboe.com/tradable_products/vix/) | VIX 종가, 미국 최근 완료 세션 | `pt`, regular close | - Network accessline 172
| [ECB Data Portal](https://data.ecb.europa.eu/data/datasets/EXR) | EUR/USD·USD/JPY·GBP/USD | reference rate, 통화쌍별 단위 | - Network accessline 172
| [ECB Data Portal](https://data.ecb.europa.eu/data/datasets/EXR) | EUR/USD·USD/JPY·GBP/USD | reference rate, 통화쌍별 단위 | - Network accessline 173
| [한국은행 ECOS](https://ecos.bok.or.kr/) | KOSPI·KOSDAQ, 한국 최근 완료 세션 | `pt`, 한국시장 종가 | - Network accessline 173
| [한국은행 ECOS](https://ecos.bok.or.kr/) | KOSPI·KOSDAQ, 한국 최근 완료 세션 | `pt`, 한국시장 종가 | - Network accessline 259
- 제안 이슈: [NomaDamas/k-skill #674](https://github.com/NomaDamas/k-skill/issues/674) - Network accessline 259
- 제안 이슈: [NomaDamas/k-skill #674](https://github.com/NomaDamas/k-skill/issues/674) - Network accessline 260
- 업스트림 PR: [NomaDamas/k-skill #675](https://github.com/NomaDamas/k-skill/pull/675) - Network accessline 260
- 업스트림 PR: [NomaDamas/k-skill #675](https://github.com/NomaDamas/k-skill/pull/675) - Network accessline 261
- 라이선스: [MIT](https://github.com/NomaDamas/k-skill/blob/dev/LICENSE) - Network accessline 261
- 라이선스: [MIT](https://github.com/NomaDamas/k-skill/blob/dev/LICENSE)
multi-asset-morning-briefing/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/multi-asset-morning-briefing/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/multi-asset-morning-briefing/instruction.md.
multi-asset-morning-briefing/scripts/market_data.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 29
"확보 실패로 처리하고 해당 자산군을 본문에서 빼세요." ) USER_AGENT = "multi-asset-morning-briefing/1.0 (+https://github.com/NomaDamas/k-skill)" - Network accessline 29
"확보 실패로 처리하고 해당 자산군을 본문에서 빼세요." ) USER_AGENT = "multi-asset-morning-briefing/1.0 (+https://github.com/NomaDamas/k-skill)" - Network accessline 31
USER_AGENT = "multi-asset-morning-briefing/1.0 (+https://github.com/NomaDamas/k-skill)" - Network accessline 31
USER_AGENT = "multi-asset-morning-briefing/1.0 (+https://github.com/NomaDamas/k-skill)" - Network accessline 33
TREASURY_URL = ( "https://home.treasury.gov/resource-center/data-chart-center/interest-rates/" - Network accessline 33
TREASURY_URL = ( "https://home.treasury.gov/resource-center/data-chart-center/interest-rates/" - Network accessline 34
"https://home.treasury.gov/resource-center/data-chart-center/interest-rates/" - Network accessline 34
"https://home.treasury.gov/resource-center/data-chart-center/interest-rates/" - Network accessline 36
"&field_tdr_date_value={year}&page&_format=csv" ) FRED_URL = "https://fred.stlouisfed.org/graph/fredgraph.csv?id={ids}" - Network accessline 36
"&field_tdr_date_value={year}&page&_format=csv" ) FRED_URL = "https://fred.stlouisfed.org/graph/fredgraph.csv?id={ids}" - Network accessline 37
) FRED_URL = "https://fred.stlouisfed.org/graph/fredgraph.csv?id={ids}" CBOE_VIX_URL = "https://cdn.cboe.com/api/global/us_indices/daily_prices/VIX_History.csv" - Network accessline 37
) FRED_URL = "https://fred.stlouisfed.org/graph/fredgraph.csv?id={ids}" CBOE_VIX_URL = "https://cdn.cboe.com/api/global/us_indices/daily_prices/VIX_History.csv" - Network accessline 38
FRED_URL = "https://fred.stlouisfed.org/graph/fredgraph.csv?id={ids}" - Network accessline 38
FRED_URL = "https://fred.stlouisfed.org/graph/fredgraph.csv?id={ids}" - Network accessline 39
CBOE_VIX_URL = "https://cdn.cboe.com/api/global/us_indices/daily_prices/VIX_History.csv" - Network accessline 39
CBOE_VIX_URL = "https://cdn.cboe.com/api/global/us_indices/daily_prices/VIX_History.csv" - Network accessline 40
ECB_FX_URL = ( "https://data-api.ecb.europa.eu/service/data/EXR/" "D.USD+JPY+GBP.EUR.SP00.A?format=csvdata&startPeriod={start}&endPeriod={end}" - Network accessline 40
ECB_FX_URL = ( "https://data-api.ecb.europa.eu/service/data/EXR/" "D.USD+JPY+GBP.EUR.SP00.A?format=csvdata&startPeriod={start}&endPeriod={end}" - Network accessline 41
"https://data-api.ecb.europa.eu/service/data/EXR/" - Network accessline 41
"https://data-api.ecb.europa.eu/service/data/EXR/" - Network accessline 43
) ECOS_URL = ( "https://ecos.bok.or.kr/api/StatisticSearch/sample/json/kr/1/10/" - Network accessline 43
) ECOS_URL = ( "https://ecos.bok.or.kr/api/StatisticSearch/sample/json/kr/1/10/" - Network accessline 44
ECOS_URL = ( "https://ecos.bok.or.kr/api/StatisticSearch/sample/json/kr/1/10/" "802Y001/D/{start}/{end}" - Network accessline 44
ECOS_URL = ( "https://ecos.bok.or.kr/api/StatisticSearch/sample/json/kr/1/10/" "802Y001/D/{start}/{end}" - Network accessline 45
"https://ecos.bok.or.kr/api/StatisticSearch/sample/json/kr/1/10/" - Network accessline 45
"https://ecos.bok.or.kr/api/StatisticSearch/sample/json/kr/1/10/" - Network accessline 70
request = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 70
request = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 71
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 71
with urllib.request.urlopen(request, timeout=timeout) as response:
multi-asset-morning-briefing/tests/fixtures/sample_briefing.md
- Network accessline 3
1. Summary • 미국 주식 약세와 VIX 상승이 위험선호를 제약해 한국 성장주에 부담 [Cboe](https://www.cboe.com/tradable_products/vix/) - Network accessline 3
1. Summary • 미국 주식 약세와 VIX 상승이 위험선호를 제약해 한국 성장주에 부담 [Cboe](https://www.cboe.com/tradable_products/vix/) - Network accessline 4
• 미국 주식 약세와 VIX 상승이 위험선호를 제약해 한국 성장주에 부담 [Cboe](https://www.cboe.com/tradable_products/vix/) - Network accessline 4
• 미국 주식 약세와 VIX 상승이 위험선호를 제약해 한국 성장주에 부담 [Cboe](https://www.cboe.com/tradable_products/vix/) - Network accessline 6
2. Rates • 미 국채 2년·10년 금리 상승과 2s10s 확대가 장기물 약세를 시사하는 핵심 [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates) - Network accessline 6
2. Rates • 미 국채 2년·10년 금리 상승과 2s10s 확대가 장기물 약세를 시사하는 핵심 [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates) - Network accessline 7
• 미 국채 2년·10년 금리 상승과 2s10s 확대가 장기물 약세를 시사하는 핵심 [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates) - Network accessline 7
• 미 국채 2년·10년 금리 상승과 2s10s 확대가 장기물 약세를 시사하는 핵심 [U.S. Treasury](https://home.treasury.gov/resource-center/data-chart-center/interest-rates) - Network accessline 9
3. FX • EUR/USD 하락과 USD/JPY 상승이 달러 강세 압력으로 연결될 가능성 [ECB](https://data.ecb.europa.eu/data/datasets/EXR) - Network accessline 9
3. FX • EUR/USD 하락과 USD/JPY 상승이 달러 강세 압력으로 연결될 가능성 [ECB](https://data.ecb.europa.eu/data/datasets/EXR) - Network accessline 10
• EUR/USD 하락과 USD/JPY 상승이 달러 강세 압력으로 연결될 가능성 [ECB](https://data.ecb.europa.eu/data/datasets/EXR) - Network accessline 10
• EUR/USD 하락과 USD/JPY 상승이 달러 강세 압력으로 연결될 가능성 [ECB](https://data.ecb.europa.eu/data/datasets/EXR) - Network accessline 12
4. Commodity • WTI·Brent 상승이 에너지 업종에는 긍정적이나 운송비에는 부담 [EIA](https://www.eia.gov/petroleum/) - Network accessline 12
4. Commodity • WTI·Brent 상승이 에너지 업종에는 긍정적이나 운송비에는 부담 [EIA](https://www.eia.gov/petroleum/) - Network accessline 13
• WTI·Brent 상승이 에너지 업종에는 긍정적이나 운송비에는 부담 [EIA](https://www.eia.gov/petroleum/) - Network accessline 13
• WTI·Brent 상승이 에너지 업종에는 긍정적이나 운송비에는 부담 [EIA](https://www.eia.gov/petroleum/) - Network accessline 15
5. Equity, Vol • S&P 500 하락과 VIX 상승 조합으로 방어주 상대강도 확대 [Cboe](https://www.cboe.com/tradable_products/vix/) - Network accessline 15
5. Equity, Vol • S&P 500 하락과 VIX 상승 조합으로 방어주 상대강도 확대 [Cboe](https://www.cboe.com/tradable_products/vix/) - Network accessline 16
• S&P 500 하락과 VIX 상승 조합으로 방어주 상대강도 확대 [Cboe](https://www.cboe.com/tradable_products/vix/) - Network accessline 16
• S&P 500 하락과 VIX 상승 조합으로 방어주 상대강도 확대 [Cboe](https://www.cboe.com/tradable_products/vix/) - Network accessline 18
6. 한국 증시 • 원/달러 상승과 미국 반도체 약세가 외국인 수급과 대형 기술주에 부담 [한국은행](https://ecos.bok.or.kr/) - Network accessline 18
6. 한국 증시 • 원/달러 상승과 미국 반도체 약세가 외국인 수급과 대형 기술주에 부담 [한국은행](https://ecos.bok.or.kr/) - Network accessline 19
• 원/달러 상승과 미국 반도체 약세가 외국인 수급과 대형 기술주에 부담 [한국은행](https://ecos.bok.or.kr/) - Network accessline 19
• 원/달러 상승과 미국 반도체 약세가 외국인 수급과 대형 기술주에 부담 [한국은행](https://ecos.bok.or.kr/) - Network accessline 21
7. 주요 일정 • 2026.09.17 21:30 KST 미국 고용지표 발표가 금리와 달러의 당일 핵심 변수 [BLS](https://www.bls.gov/schedule/) - Network accessline 21
7. 주요 일정 • 2026.09.17 21:30 KST 미국 고용지표 발표가 금리와 달러의 당일 핵심 변수 [BLS](https://www.bls.gov/schedule/) - Network accessline 22
• 2026.09.17 21:30 KST 미국 고용지표 발표가 금리와 달러의 당일 핵심 변수 [BLS](https://www.bls.gov/schedule/) - Network accessline 22
• 2026.09.17 21:30 KST 미국 고용지표 발표가 금리와 달러의 당일 핵심 변수 [BLS](https://www.bls.gov/schedule/)
multi-asset-morning-briefing/tests/test_market_data.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 398
original = market_data.urllib.request.urlopen - Network accessline 398
original = market_data.urllib.request.urlopen - Network accessline 399
market_data.urllib.request.urlopen = forbidden - Network accessline 399
market_data.urllib.request.urlopen = forbidden - Network accessline 404
market_data.assess_staleness("2026-09-11", "2026-09-15") finally: market_data.urllib.request.urlopen = original - Network accessline 404
market_data.assess_staleness("2026-09-11", "2026-09-15") finally: market_data.urllib.request.urlopen = original - Network accessline 406
market_data.urllib.request.urlopen = original - Network accessline 406
market_data.urllib.request.urlopen = original - Network accessline 428
def test_declared_oversized_response_is_rejected_before_read(self): response = FakeResponse(b"x", market_data.MAX_RESPONSE_BYTES + 1) with patch("market_data.urllib.request.urlopen", return_value=response): - Network accessline 428
def test_declared_oversized_response_is_rejected_before_read(self): response = FakeResponse(b"x", market_data.MAX_RESPONSE_BYTES + 1) with patch("market_data.urllib.request.urlopen", return_value=response): - Network accessline 429
response = FakeResponse(b"x", market_data.MAX_RESPONSE_BYTES + 1) with patch("market_data.urllib.request.urlopen", return_value=response): with self.assertRaises(market_data.DataError) as context: - Network accessline 429
response = FakeResponse(b"x", market_data.MAX_RESPONSE_BYTES + 1) with patch("market_data.urllib.request.urlopen", return_value=response): with self.assertRaises(market_data.DataError) as context: - Network accessline 430
with patch("market_data.urllib.request.urlopen", return_value=response): - Network accessline 430
with patch("market_data.urllib.request.urlopen", return_value=response): - Network accessline 431
with self.assertRaises(market_data.DataError) as context: market_data.fetch_bytes("https://example.com") self.assertEqual(context.exception.code, "LIMIT") - Network accessline 431
with self.assertRaises(market_data.DataError) as context: market_data.fetch_bytes("https://example.com") self.assertEqual(context.exception.code, "LIMIT") - Network accessline 432
market_data.fetch_bytes("https://example.com") - Network accessline 432
market_data.fetch_bytes("https://example.com") - Network accessline 436
def test_streamed_oversized_response_uses_bounded_reads(self): response = FakeResponse(b"x" * (market_data.MAX_RESPONSE_BYTES + 1)) with patch("market_data.urllib.request.urlopen", return_value=response): - Network accessline 436
def test_streamed_oversized_response_uses_bounded_reads(self): response = FakeResponse(b"x" * (market_data.MAX_RESPONSE_BYTES + 1)) with patch("market_data.urllib.request.urlopen", return_value=response): - Network accessline 437
response = FakeResponse(b"x" * (market_data.MAX_RESPONSE_BYTES + 1)) with patch("market_data.urllib.request.urlopen", return_value=response): with self.assertRaises(market_data.DataError) as context: - Network accessline 437
response = FakeResponse(b"x" * (market_data.MAX_RESPONSE_BYTES + 1)) with patch("market_data.urllib.request.urlopen", return_value=response): with self.assertRaises(market_data.DataError) as context: - Network accessline 438
with patch("market_data.urllib.request.urlopen", return_value=response): - Network accessline 438
with patch("market_data.urllib.request.urlopen", return_value=response): - Network accessline 439
with self.assertRaises(market_data.DataError) as context: market_data.fetch_bytes("https://example.com") self.assertEqual(context.exception.code, "LIMIT") - Network accessline 439
with self.assertRaises(market_data.DataError) as context: market_data.fetch_bytes("https://example.com") self.assertEqual(context.exception.code, "LIMIT") - Network accessline 440
market_data.fetch_bytes("https://example.com") - Network accessline 440
market_data.fetch_bytes("https://example.com") - Network accessline 465
self.assertEqual(len(bullets), 7) self.assertTrue( all(re.search(r"\[[^]]+\]\(https://[^)]+\)$", line) for line in bullets) - Network accessline 465
self.assertEqual(len(bullets), 7) self.assertTrue( all(re.search(r"\[[^]]+\]\(https://[^)]+\)$", line) for line in bullets) - Network accessline 466
self.assertTrue( all(re.search(r"\[[^]]+\]\(https://[^)]+\)$", line) for line in bullets) ) - Network accessline 466
self.assertTrue( all(re.search(r"\[[^]]+\]\(https://[^)]+\)$", line) for line in bullets) ) - Network accessline 467
all(re.search(r"\[[^]]+\]\(https://[^)]+\)$", line) for line in bullets) - Network accessline 467
all(re.search(r"\[[^]]+\]\(https://[^)]+\)$", line) for line in bullets)
myrealtrip-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/myrealtrip-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/myrealtrip-search/instruction.md.
myrealtrip-search/instruction.md
- Network accessline 7
- MCP 엔드포인트: `https://mcp-servers.myrealtrip.com/mcp` - Network accessline 7
- MCP 엔드포인트: `https://mcp-servers.myrealtrip.com/mcp` - Network accessline 8
- 문서: <https://docs.myrealtrip.com/#/api/mcp/overview> - Network accessline 8
- 문서: <https://docs.myrealtrip.com/#/api/mcp/overview> - Network accessline 9
- 연결 가이드: <https://docs.myrealtrip.com/#/api/mcp/setup> - Network accessline 9
- 연결 가이드: <https://docs.myrealtrip.com/#/api/mcp/setup> - Network accessline 23
Claude Code / Codex / Hermes Agent → myrealtrip-search/scripts/myrealtrip_mcp.py → https://mcp-servers.myrealtrip.com/mcp (Streamable HTTP MCP) - Network accessline 23
Claude Code / Codex / Hermes Agent → myrealtrip-search/scripts/myrealtrip_mcp.py → https://mcp-servers.myrealtrip.com/mcp (Streamable HTTP MCP) - Network accessline 24
→ myrealtrip-search/scripts/myrealtrip_mcp.py → https://mcp-servers.myrealtrip.com/mcp (Streamable HTTP MCP) ├─ searchDomesticFlights / searchInternationalFlights - Network accessline 24
→ myrealtrip-search/scripts/myrealtrip_mcp.py → https://mcp-servers.myrealtrip.com/mcp (Streamable HTTP MCP) ├─ searchDomesticFlights / searchInternationalFlights - Network accessline 25
→ https://mcp-servers.myrealtrip.com/mcp (Streamable HTTP MCP) - Network accessline 25
→ https://mcp-servers.myrealtrip.com/mcp (Streamable HTTP MCP) - Network accessline 65
export MYREALTRIP_MCP_ENDPOINT="https://mcp-servers.myrealtrip.com/mcp" - Network accessline 65
export MYREALTRIP_MCP_ENDPOINT="https://mcp-servers.myrealtrip.com/mcp" - Network accessline 71
mcp_servers: myrealtrip: url: "https://mcp-servers.myrealtrip.com/mcp" - Network accessline 71
mcp_servers: myrealtrip: url: "https://mcp-servers.myrealtrip.com/mcp" - Network accessline 73
url: "https://mcp-servers.myrealtrip.com/mcp" - Network accessline 73
url: "https://mcp-servers.myrealtrip.com/mcp" - Network accessline 79
claude mcp add --transport http myrealtrip https://mcp-servers.myrealtrip.com/mcp - Network accessline 79
claude mcp add --transport http myrealtrip https://mcp-servers.myrealtrip.com/mcp - Network accessline 80
codex mcp add myrealtrip --url https://mcp-servers.myrealtrip.com/mcp - Network accessline 80
codex mcp add myrealtrip --url https://mcp-servers.myrealtrip.com/mcp - Network accessline 81
gemini mcp add -t http -s user myrealtrip https://mcp-servers.myrealtrip.com/mcp - Network accessline 81
gemini mcp add -t http -s user myrealtrip https://mcp-servers.myrealtrip.com/mcp - Network accessline 173
npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call getTnaDetail \ --json '{"gid":"123456","url":"https://www.myrealtrip.com/offers/123456"}' - Network accessline 173
npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call getTnaDetail \ --json '{"gid":"123456","url":"https://www.myrealtrip.com/offers/123456"}' - Network accessline 174
--json '{"gid":"123456","url":"https://www.myrealtrip.com/offers/123456"}' - Network accessline 174
--json '{"gid":"123456","url":"https://www.myrealtrip.com/offers/123456"}' - Network accessline 180
npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call getTnaOptions \ --json '{"gid":"123456","url":"https://www.myrealtrip.com/offers/123456","selectedDate":"2026-06-10"}' - Network accessline 180
npx -y @nomadamas/k-skill@0 exec myrealtrip-search scripts/myrealtrip_mcp.py -- call getTnaOptions \ --json '{"gid":"123456","url":"https://www.myrealtrip.com/offers/123456","selectedDate":"2026-06-10"}' - Network accessline 181
--json '{"gid":"123456","url":"https://www.myrealtrip.com/offers/123456","selectedDate":"2026-06-10"}' - Network accessline 181
--json '{"gid":"123456","url":"https://www.myrealtrip.com/offers/123456","selectedDate":"2026-06-10"}'
myrealtrip-search/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 크롤링·예약 선점·결제 자동화를 일반적으로 허용하지 않습니다. [저작권법 제93 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 크롤링·예약 선점·결제 자동화를 일반적으로 허용하지 않습니다. [저작권법 제93
myrealtrip-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
myrealtrip-search/scripts/myrealtrip_mcp.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
엔드포인트는 https://docs.myrealtrip.com/#/api/mcp/overview 에 문서화되어 - Network accessline 4
엔드포인트는 https://docs.myrealtrip.com/#/api/mcp/overview 에 문서화되어 - Network accessline 20
DEFAULT_ENDPOINT = "https://mcp-servers.myrealtrip.com/mcp" - Network accessline 20
DEFAULT_ENDPOINT = "https://mcp-servers.myrealtrip.com/mcp"
myrealtrip-search/scripts/test_myrealtrip_mcp.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 61
[ "--endpoint", "https://example.invalid/mcp", - Network accessline 61
[ "--endpoint", "https://example.invalid/mcp", - Network accessline 62
"--endpoint", "https://example.invalid/mcp", "--timeout-seconds", - Network accessline 62
"--endpoint", "https://example.invalid/mcp", "--timeout-seconds", - Network accessline 63
"https://example.invalid/mcp", - Network accessline 63
"https://example.invalid/mcp", - Network accessline 75
self.assertEqual(exit_code, 0) self.assertEqual(captured["endpoint"], "https://example.invalid/mcp") - Network accessline 75
self.assertEqual(exit_code, 0) self.assertEqual(captured["endpoint"], "https://example.invalid/mcp") - Network accessline 76
self.assertEqual(captured["endpoint"], "https://example.invalid/mcp") - Network accessline 76
self.assertEqual(captured["endpoint"], "https://example.invalid/mcp") - Network accessline 90
asyncio.run( myrealtrip_mcp.run_mcp( "https://example.invalid/mcp", - Network accessline 90
asyncio.run( myrealtrip_mcp.run_mcp( "https://example.invalid/mcp", - Network accessline 91
myrealtrip_mcp.run_mcp( "https://example.invalid/mcp", "tools", - Network accessline 91
myrealtrip_mcp.run_mcp( "https://example.invalid/mcp", "tools", - Network accessline 92
"https://example.invalid/mcp", - Network accessline 92
"https://example.invalid/mcp", - Network accessline 151
asyncio.run( myrealtrip_mcp.run_mcp( "https://example.invalid/mcp", - Network accessline 151
asyncio.run( myrealtrip_mcp.run_mcp( "https://example.invalid/mcp", - Network accessline 152
myrealtrip_mcp.run_mcp( "https://example.invalid/mcp", "tools", - Network accessline 152
myrealtrip_mcp.run_mcp( "https://example.invalid/mcp", "tools", - Network accessline 153
"https://example.invalid/mcp", - Network accessline 153
"https://example.invalid/mcp",
naming-house/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/naming-house/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/naming-house/instruction.md.
national-pension-workplace/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/national-pension-workplace/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/national-pension-workplace/instruction.md.
national-pension-workplace/instruction.md
- Network accessline 32
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Network accessline 32
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Network accessline 33
- `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Network accessline 33
- `KSKILL_PROXY_BASE_URL` — self-host 프록시를 쓸 때만 설정. 비우면 hosted `https://k-skill-proxy.nomadamas.org` 사용. - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Network accessline 68
- 공공데이터포털: <https://www.data.go.kr/data/3046071/openapi.do> - Network accessline 68
- 공공데이터포털: <https://www.data.go.kr/data/3046071/openapi.do> - Network accessline 69
- upstream: `https://apis.data.go.kr/B552015/NpsBplcInfoInqireServiceV2` (요청 파라미터 camelCase) - Network accessline 69
- upstream: `https://apis.data.go.kr/B552015/NpsBplcInfoInqireServiceV2` (요청 파라미터 camelCase)
national-pension-workplace/scripts/national_pension_workplace.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Network accessline 19
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 19
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 20
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 20
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 40
[Credential-related source omitted] - Access to secretsline 40
[Credential-related source omitted] - Network accessline 49
def read_json_response(request: urllib.request.Request) -> dict[str, Any]: - Network accessline 49
def read_json_response(request: urllib.request.Request) -> dict[str, Any]: - Network accessline 50
try: with urllib.request.urlopen(request, timeout=30) as response: try: - Network accessline 50
try: with urllib.request.urlopen(request, timeout=30) as response: try: - Network accessline 51
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 51
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 84
params["b_no"] = digits url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(url, headers={ - Network accessline 84
params["b_no"] = digits url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(url, headers={ - Network accessline 85
url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(url, headers={ "Accept": "application/json", - Network accessline 85
url = f"{resolve_proxy_base_url(base_url)}{ROUTE}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(url, headers={ "Accept": "application/json", - Network accessline 86
request = urllib.request.Request(url, headers={ - Network accessline 86
request = urllib.request.Request(url, headers={
naver-ad-performance/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/naver-ad-performance/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/naver-ad-performance/instruction.md.
naver-ad-performance/instruction.md
- Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Network accessline 107
- 대용량 기간 리포트(TSV 비동기 생성, `/stat-reports`)는 이번 v1 범위 밖이다. 필요해지면 별도로 추가한다. - 참고 구현: [`NariP/naver-searchad`](https://github.com/NariP/naver-searchad) (MIT) — 서명 방식과 명령 설계를 참고했다. - Network accessline 107
- 대용량 기간 리포트(TSV 비동기 생성, `/stat-reports`)는 이번 v1 범위 밖이다. 필요해지면 별도로 추가한다. - 참고 구현: [`NariP/naver-searchad`](https://github.com/NariP/naver-searchad) (MIT) — 서명 방식과 명령 설계를 참고했다. - Network accessline 108
- 참고 구현: [`NariP/naver-searchad`](https://github.com/NariP/naver-searchad) (MIT) — 서명 방식과 명령 설계를 참고했다. - Network accessline 108
- 참고 구현: [`NariP/naver-searchad`](https://github.com/NariP/naver-searchad) (MIT) — 서명 방식과 명령 설계를 참고했다.
naver-ad-performance/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 접근에 관한 판단이며, 인증된 광고계정의 비공개 데이터에 대한 권한을 부여하지 않습니다. 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 접근에 관한 판단이며, 인증된 광고계정의 비공개 데이터에 대한 권한을 부여하지 않습니다. 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률
naver-ad-performance/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
naver-ad-performance/scripts/naver_ad_performance.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 15
BASE_URL = "https://api.searchad.naver.com" - Network accessline 15
BASE_URL = "https://api.searchad.naver.com" - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 56
[Credential-related source omitted] - Access to secretsline 56
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Network accessline 94
if params: url += "?" + urllib.parse.urlencode(params) req = urllib.request.Request(url, headers=headers, method=method) - Network accessline 94
if params: url += "?" + urllib.parse.urlencode(params) req = urllib.request.Request(url, headers=headers, method=method) - Network accessline 95
url += "?" + urllib.parse.urlencode(params) req = urllib.request.Request(url, headers=headers, method=method) try: - Network accessline 95
url += "?" + urllib.parse.urlencode(params) req = urllib.request.Request(url, headers=headers, method=method) try: - Network accessline 96
req = urllib.request.Request(url, headers=headers, method=method) - Network accessline 96
req = urllib.request.Request(url, headers=headers, method=method) - Network accessline 97
try: with urllib.request.urlopen(req, timeout=timeout) as resp: return json.loads(resp.read().decode("utf-8")) - Network accessline 97
try: with urllib.request.urlopen(req, timeout=timeout) as resp: return json.loads(resp.read().decode("utf-8")) - Network accessline 98
with urllib.request.urlopen(req, timeout=timeout) as resp: - Network accessline 98
with urllib.request.urlopen(req, timeout=timeout) as resp: - Network accessline 139
result["env"][name] = bool(os.getenv(name)) try: req = urllib.request.Request(BASE_URL, method="GET") - Network accessline 139
result["env"][name] = bool(os.getenv(name)) try: req = urllib.request.Request(BASE_URL, method="GET") - Network accessline 140
try: req = urllib.request.Request(BASE_URL, method="GET") urllib.request.urlopen(req, timeout=8).close() - Network accessline 140
try: req = urllib.request.Request(BASE_URL, method="GET") urllib.request.urlopen(req, timeout=8).close() - Network accessline 141
req = urllib.request.Request(BASE_URL, method="GET") - Network accessline 141
req = urllib.request.Request(BASE_URL, method="GET") - Network accessline 142
urllib.request.urlopen(req, timeout=8).close() - Network accessline 142
urllib.request.urlopen(req, timeout=8).close()
naver-blog-research/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/naver-blog-research/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/naver-blog-research/instruction.md.
naver-blog-research/instruction.md
- Network accessline 55
{ "title": "결혼식 체크리스트 총정리", "url": "https://blog.naver.com/user123/224212849946", - Network accessline 55
{ "title": "결혼식 체크리스트 총정리", "url": "https://blog.naver.com/user123/224212849946", - Network accessline 56
"title": "결혼식 체크리스트 총정리", "url": "https://blog.naver.com/user123/224212849946", "mobile_url": "https://m.blog.naver.com/user123/224212849946", - Network accessline 56
"title": "결혼식 체크리스트 총정리", "url": "https://blog.naver.com/user123/224212849946", "mobile_url": "https://m.blog.naver.com/user123/224212849946", - Network accessline 57
"url": "https://blog.naver.com/user123/224212849946", - Network accessline 57
"url": "https://blog.naver.com/user123/224212849946", - Network accessline 58
"mobile_url": "https://m.blog.naver.com/user123/224212849946", - Network accessline 58
"mobile_url": "https://m.blog.naver.com/user123/224212849946", - Network accessline 71
npx -y @nomadamas/k-skill@0 exec naver-blog-research scripts/naver_read.py -- "https://blog.naver.com/user123/224212849946" - Network accessline 71
npx -y @nomadamas/k-skill@0 exec naver-blog-research scripts/naver_read.py -- "https://blog.naver.com/user123/224212849946" - Network accessline 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/ - Network accessline 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/
naver-blog-research/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 공개 게시물의 저작권까지 소멸시키지 않습니다. [저작권법 제93조](https: - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 공개 게시물의 저작권까지 소멸시키지 않습니다. [저작권법 제93조](https:
naver-blog-research/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
naver-blog-research/scripts/_naver_http.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 41
def urlopen(request: urllib.request.Request, timeout: int, *, insecure: bool = False): - Network accessline 41
def urlopen(request: urllib.request.Request, timeout: int, *, insecure: bool = False): - Network accessline 53
file=sys.stderr, ) return urllib.request.urlopen( - Network accessline 53
file=sys.stderr, ) return urllib.request.urlopen( - Network accessline 54
) return urllib.request.urlopen( request, timeout=timeout, context=_get_ssl_context(insecure=True), - Network accessline 54
) return urllib.request.urlopen( request, timeout=timeout, context=_get_ssl_context(insecure=True), - Network accessline 55
return urllib.request.urlopen( - Network accessline 55
return urllib.request.urlopen( - Network accessline 56
request, timeout=timeout, context=_get_ssl_context(insecure=True), ) return urllib.request.urlopen(request, timeout=timeout, context=_get_ssl_context()) - Network accessline 56
request, timeout=timeout, context=_get_ssl_context(insecure=True), ) return urllib.request.urlopen(request, timeout=timeout, context=_get_ssl_context()) - Network accessline 58
return urllib.request.urlopen(request, timeout=timeout, context=_get_ssl_context()) - Network accessline 58
return urllib.request.urlopen(request, timeout=timeout, context=_get_ssl_context())
naver-blog-research/scripts/naver_download_images.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 19
"Accept": "image/webp,image/apng,image/*,*/*;q=0.8", "Accept-Language": "ko,en-US;q=0.9,en;q=0.8", "Referer": "https://m.blog.naver.com/", - Network accessline 19
"Accept": "image/webp,image/apng,image/*,*/*;q=0.8", "Accept-Language": "ko,en-US;q=0.9,en;q=0.8", "Referer": "https://m.blog.naver.com/", - Network accessline 20
"Accept-Language": "ko,en-US;q=0.9,en;q=0.8", "Referer": "https://m.blog.naver.com/", "User-Agent": ( - Network accessline 20
"Accept-Language": "ko,en-US;q=0.9,en;q=0.8", "Referer": "https://m.blog.naver.com/", "User-Agent": ( - Network accessline 21
"Referer": "https://m.blog.naver.com/", - Network accessline 21
"Referer": "https://m.blog.naver.com/", - Network accessline 83
request = urllib.request.Request(url, headers=DEFAULT_HEADERS) - Network accessline 83
request = urllib.request.Request(url, headers=DEFAULT_HEADERS)
naver-blog-research/scripts/naver_read.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 53
def to_mobile_url(url: str) -> str: url = url.strip() url = PC_BLOG_RE.sub("https://m.blog.naver.com/", url) - Network accessline 53
def to_mobile_url(url: str) -> str: url = url.strip() url = PC_BLOG_RE.sub("https://m.blog.naver.com/", url) - Network accessline 54
url = url.strip() url = PC_BLOG_RE.sub("https://m.blog.naver.com/", url) if not url.startswith("https://m.blog.naver.com/"): - Network accessline 54
url = url.strip() url = PC_BLOG_RE.sub("https://m.blog.naver.com/", url) if not url.startswith("https://m.blog.naver.com/"): - Network accessline 55
url = PC_BLOG_RE.sub("https://m.blog.naver.com/", url) - Network accessline 55
url = PC_BLOG_RE.sub("https://m.blog.naver.com/", url) - Network accessline 56
if not url.startswith("https://m.blog.naver.com/"): - Network accessline 56
if not url.startswith("https://m.blog.naver.com/"): - Network accessline 57
match = BLOG_ID_RE.search(url) if match: url = f"https://m.blog.naver.com/{match.group(1)}/{match.group(2)}" - Network accessline 57
match = BLOG_ID_RE.search(url) if match: url = f"https://m.blog.naver.com/{match.group(1)}/{match.group(2)}" - Network accessline 58
if match: url = f"https://m.blog.naver.com/{match.group(1)}/{match.group(2)}" return url - Network accessline 58
if match: url = f"https://m.blog.naver.com/{match.group(1)}/{match.group(2)}" return url - Network accessline 59
url = f"https://m.blog.naver.com/{match.group(1)}/{match.group(2)}" - Network accessline 59
url = f"https://m.blog.naver.com/{match.group(1)}/{match.group(2)}" - Network accessline 65
if not is_naver_url(mobile_url): raise ValueError(f"Not a Naver blog URL: {url}") request = urllib.request.Request(mobile_url, headers=DEFAULT_HEADERS) - Network accessline 65
if not is_naver_url(mobile_url): raise ValueError(f"Not a Naver blog URL: {url}") request = urllib.request.Request(mobile_url, headers=DEFAULT_HEADERS) - Network accessline 67
request = urllib.request.Request(mobile_url, headers=DEFAULT_HEADERS) - Network accessline 67
request = urllib.request.Request(mobile_url, headers=DEFAULT_HEADERS)
naver-blog-research/scripts/naver_search.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 16
SEARCH_URL = "https://search.naver.com/search.naver" - Network accessline 16
SEARCH_URL = "https://search.naver.com/search.naver" - Network accessline 57
params = build_search_params(query, start=start, sort=sort) url = f"{SEARCH_URL}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(url, headers=DEFAULT_HEADERS) - Network accessline 57
params = build_search_params(query, start=start, sort=sort) url = f"{SEARCH_URL}?{urllib.parse.urlencode(params)}" request = urllib.request.Request(url, headers=DEFAULT_HEADERS) - Network accessline 59
request = urllib.request.Request(url, headers=DEFAULT_HEADERS) - Network accessline 59
request = urllib.request.Request(url, headers=DEFAULT_HEADERS) - Network accessline 79
pending[full_url] = { "url": full_url, "mobile_url": f"https://m.blog.naver.com/{user_id}/{post_id}", - Network accessline 79
pending[full_url] = { "url": full_url, "mobile_url": f"https://m.blog.naver.com/{user_id}/{post_id}", - Network accessline 80
"url": full_url, "mobile_url": f"https://m.blog.naver.com/{user_id}/{post_id}", "author": user_id, - Network accessline 80
"url": full_url, "mobile_url": f"https://m.blog.naver.com/{user_id}/{post_id}", "author": user_id, - Network accessline 81
"mobile_url": f"https://m.blog.naver.com/{user_id}/{post_id}", - Network accessline 81
"mobile_url": f"https://m.blog.naver.com/{user_id}/{post_id}",
naver-news-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/naver-news-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/naver-news-search/instruction.md.
naver-news-search/instruction.md
- Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Network accessline 41
curl -fsS --get "${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}/v1/naver-news/search" \ - Network accessline 41
curl -fsS --get "${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}/v1/naver-news/search" \ - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted]
naver-news-search/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 기사 본문의 저작권까지 소멸시키지 않습니다. [저작권법 제93조](https:/ - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 기사 본문의 저작권까지 소멸시키지 않습니다. [저작권법 제93조](https:/
naver-news-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
naver-shopping-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/naver-shopping-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/naver-shopping-search/instruction.md.
naver-shopping-search/instruction.md
- Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Network accessline 40
curl -fsS --get "${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}/v1/naver-shopping/search" \ - Network accessline 40
curl -fsS --get "${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}/v1/naver-shopping/search" \
naver-shopping-search/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제9 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제9
naver-shopping-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
nhis-care-checkup-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/nhis-care-checkup-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/nhis-care-checkup-search/instruction.md.
nhis-care-checkup-search/instruction.md
- Network accessline 28
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 28
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 29
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 29
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Network accessline 34
- 장기요양기관 검색 서비스: <https://www.data.go.kr/data/15059029/openapi.do> - Network accessline 34
- 장기요양기관 검색 서비스: <https://www.data.go.kr/data/15059029/openapi.do> - Network accessline 35
- 건강검진기관 검색 서비스: <https://www.data.go.kr/data/15154419/openapi.do> - Network accessline 35
- 건강검진기관 검색 서비스: <https://www.data.go.kr/data/15154419/openapi.do> - Network accessline 36
- 공공데이터포털 이용 가이드: <https://www.data.go.kr/ugs/selectPublicDataUseGuideView.do> - Network accessline 36
- 공공데이터포털 이용 가이드: <https://www.data.go.kr/ugs/selectPublicDataUseGuideView.do> - Network accessline 68
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/nhis/long-term-care" \ - Network accessline 68
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/nhis/long-term-care" \ - Network accessline 69
curl -fsS --get "$BASE/v1/nhis/long-term-care" \ - Network accessline 69
curl -fsS --get "$BASE/v1/nhis/long-term-care" \ - Network accessline 78
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/nhis/checkup/by-region" \ - Network accessline 78
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "$BASE/v1/nhis/checkup/by-region" \ - Network accessline 79
curl -fsS --get "$BASE/v1/nhis/checkup/by-region" \ - Network accessline 79
curl -fsS --get "$BASE/v1/nhis/checkup/by-region" \ - Access to secretsline 92
[Credential-related source omitted] - Access to secretsline 92
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Network accessline 107
- `./scripts/validate-skills.sh` - `node --test packages/k-skill-proxy/test/server.test.js` - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/nhis/long-term-care" --data-urlencode "q=강남"` (키 미설정이면 503 확인) - Network accessline 107
- `./scripts/validate-skills.sh` - `node --test packages/k-skill-proxy/test/server.test.js` - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/nhis/long-term-care" --data-urlencode "q=강남"` (키 미설정이면 503 확인) - Network accessline 108
- `node --test packages/k-skill-proxy/test/server.test.js` - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/nhis/long-term-care" --data-urlencode "q=강남"` (키 미설정이면 503 확인) - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/nhis/checkup/by-region" --data - Network accessline 108
- `node --test packages/k-skill-proxy/test/server.test.js` - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/nhis/long-term-care" --data-urlencode "q=강남"` (키 미설정이면 503 확인) - `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/nhis/checkup/by-region" --data - Network accessline 109
- `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/nhis/long-term-care" --data-urlencode "q=강남"` (키 미설정이면 503 확인) - Network accessline 109
- `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/nhis/long-term-care" --data-urlencode "q=강남"` (키 미설정이면 503 확인) - Network accessline 110
- `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/nhis/checkup/by-region" --data-urlencode "q=검진" --data-urlencode "sido=11"` (키 미설정이면 503 확인) - Network accessline 110
- `curl -i --get "$KSKILL_PROXY_BASE_URL/v1/nhis/checkup/by-region" --data-urlencode "q=검진" --data-urlencode "sido=11"` (키 미설정이면 503 확인) - Access to secretsline 112
[Credential-related source omitted] - Access to secretsline 112
[Credential-related source omitted]
nts-business-registration/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/nts-business-registration/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/nts-business-registration/instruction.md.
nts-business-registration/instruction.md
- Network accessline 26
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 26
- 사용자 측 필수 시크릿 없음. - `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 27
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 27
- `KSKILL_PROXY_BASE_URL` — self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Network accessline 39
- 공공데이터포털 문서: `https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15081808` - Network accessline 39
- 공공데이터포털 문서: `https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15081808` - Network accessline 40
- 상태조회 upstream: `POST https://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=...` - Network accessline 40
- 상태조회 upstream: `POST https://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=...` - Network accessline 41
- 진위확인 upstream: `POST https://api.odcloud.kr/api/nts-businessman/v1/validate?serviceKey=...` - Network accessline 41
- 진위확인 upstream: `POST https://api.odcloud.kr/api/nts-businessman/v1/validate?serviceKey=...` - Network accessline 93
curl -fsS -X POST "$KSKILL_PROXY_BASE_URL/v1/nts-business/status" \ - Network accessline 93
curl -fsS -X POST "$KSKILL_PROXY_BASE_URL/v1/nts-business/status" \ - Network accessline 99
curl -fsS -X POST "$KSKILL_PROXY_BASE_URL/v1/nts-business/validate" \ - Network accessline 99
curl -fsS -X POST "$KSKILL_PROXY_BASE_URL/v1/nts-business/validate" \ - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted]
nts-business-registration/scripts/nts_business_registration.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 13
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 13
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 14
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 14
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Network accessline 136
def read_json_response(request: urllib.request.Request) -> dict[str, Any]: - Network accessline 136
def read_json_response(request: urllib.request.Request) -> dict[str, Any]: - Network accessline 137
try: with urllib.request.urlopen(request, timeout=30) as response: return json.loads(response.read().decode("utf-8")) - Network accessline 137
try: with urllib.request.urlopen(request, timeout=30) as response: return json.loads(response.read().decode("utf-8")) - Network accessline 138
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 138
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 155
def _post_json(path: str, payload: dict[str, Any], *, base_url: str | None = None, read_json: Any = read_json_response) -> dict[str, Any]: resolved_base_url = resolve_proxy_base_url(base_url) request = urllib.request.Request( - Network accessline 155
def _post_json(path: str, payload: dict[str, Any], *, base_url: str | None = None, read_json: Any = read_json_response) -> dict[str, Any]: resolved_base_url = resolve_proxy_base_url(base_url) request = urllib.request.Request( - Network accessline 156
resolved_base_url = resolve_proxy_base_url(base_url) request = urllib.request.Request( f"{resolved_base_url}{path}", - Network accessline 156
resolved_base_url = resolve_proxy_base_url(base_url) request = urllib.request.Request( f"{resolved_base_url}{path}", - Network accessline 157
request = urllib.request.Request( - Network accessline 157
request = urllib.request.Request(
nts-tax-delinquency/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/nts-tax-delinquency/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/nts-tax-delinquency/instruction.md.
nts-tax-delinquency/instruction.md
nts-tax-delinquency/scripts/nts_tax_delinquency.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 23
URL = "https://www.nts.go.kr/nts/ad/openInfo/selectList.do" - Network accessline 23
URL = "https://www.nts.go.kr/nts/ad/openInfo/selectList.do" - Network accessline 93
def _post(data: dict[str, str], *, opener: Any = None) -> str: request = urllib.request.Request( - Network accessline 93
def _post(data: dict[str, str], *, opener: Any = None) -> str: request = urllib.request.Request( - Network accessline 94
request = urllib.request.Request( - Network accessline 94
request = urllib.request.Request( - Network accessline 101
method="POST", ) open_fn = opener or urllib.request.urlopen - Network accessline 101
method="POST", ) open_fn = opener or urllib.request.urlopen - Network accessline 102
) open_fn = opener or urllib.request.urlopen with open_fn(request, timeout=20) as response: - Network accessline 102
) open_fn = opener or urllib.request.urlopen with open_fn(request, timeout=20) as response: - Network accessline 103
open_fn = opener or urllib.request.urlopen - Network accessline 103
open_fn = opener or urllib.request.urlopen
nts-tax-delinquency/scripts/test_nts_tax_delinquency.py
ohou-today-deal/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/ohou-today-deal/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/ohou-today-deal/instruction.md.
ohou-today-deal/instruction.md
- Network accessline 5
오늘의집 공개 오늘의딜 페이지(`https://ohou.se/commerces/today_deals`)의 서버 렌더링 초기 데이터(`__NEXT_DATA__`)를 읽어 특가 상품을 조회한다. - Network accessline 5
오늘의집 공개 오늘의딜 페이지(`https://ohou.se/commerces/today_deals`)의 서버 렌더링 초기 데이터(`__NEXT_DATA__`)를 읽어 특가 상품을 조회한다. - Network accessline 39
- 오늘의집 오늘의딜 페이지: `https://ohou.se/commerces/today_deals` - Network accessline 39
- 오늘의집 오늘의딜 페이지: `https://ohou.se/commerces/today_deals` - Network accessline 40
- 현재 웹 페이지는 canonical/OG URL로 `https://store.ohou.se/today_deals`를 노출하지만, 브라우저 접근용 공개 URL은 `ohou.se/commerces/today_deals`다. - Network accessline 40
- 현재 웹 페이지는 canonical/OG URL로 `https://store.ohou.se/today_deals`를 노출하지만, 브라우저 접근용 공개 URL은 `ohou.se/commerces/today_deals`다. - Network accessline 42
- HTTP 요청은 `User-Agent: k-skill-ohou-today-deal/1.0 (+https://github.com/NomaDamas/k-skill)`로 보낸다. ohou.se 앞단 Akamai bot manager는 익명/단축 UA를 차단하지만 봇 이름 + contact URL이 포함된 well-formed UA는 통과시키므로 우회/조작 없이 정직한 자기소개로 요청한다. - Network accessline 42
- HTTP 요청은 `User-Agent: k-skill-ohou-today-deal/1.0 (+https://github.com/NomaDamas/k-skill)`로 보낸다. ohou.se 앞단 Akamai bot manager는 익명/단축 UA를 차단하지만 봇 이름 + contact URL이 포함된 well-formed UA는 통과시키므로 우회/조작 없이 정직한 자기소개로 요청한다. - Network accessline 62
"source": { "name": "ohou-today-deal", "url": "https://ohou.se/commerces/today_deals", - Network accessline 62
"source": { "name": "ohou-today-deal", "url": "https://ohou.se/commerces/today_deals", - Network accessline 63
"name": "ohou-today-deal", "url": "https://ohou.se/commerces/today_deals", "fetched_at": "2026-05-18T01:44:16+00:00", - Network accessline 63
"name": "ohou-today-deal", "url": "https://ohou.se/commerces/today_deals", "fetched_at": "2026-05-18T01:44:16+00:00", - Network accessline 64
"url": "https://ohou.se/commerces/today_deals", - Network accessline 64
"url": "https://ohou.se/commerces/today_deals", - Network accessline 75
"title": "삼익가구 BEST상품 총집합", "brand": "삼익가구", "url": "https://ohou.se/productions/823405/selling", - Network accessline 75
"title": "삼익가구 BEST상품 총집합", "brand": "삼익가구", "url": "https://ohou.se/productions/823405/selling", - Network accessline 76
"brand": "삼익가구", "url": "https://ohou.se/productions/823405/selling", "original_price": 449000, - Network accessline 76
"brand": "삼익가구", "url": "https://ohou.se/productions/823405/selling", "original_price": 449000, - Network accessline 77
"url": "https://ohou.se/productions/823405/selling", - Network accessline 77
"url": "https://ohou.se/productions/823405/selling", - Network accessline 148
| Method | URL | 용도 | |---|---|---| | GET | `https://ohou.se/commerces/today_deals` | 오늘의딜 공개 HTML (서버 렌더링) | - Network accessline 148
| Method | URL | 용도 | |---|---|---| | GET | `https://ohou.se/commerces/today_deals` | 오늘의딜 공개 HTML (서버 렌더링) | - Network accessline 150
| GET | `https://ohou.se/commerces/today_deals` | 오늘의딜 공개 HTML (서버 렌더링) | - Network accessline 150
| GET | `https://ohou.se/commerces/today_deals` | 오늘의딜 공개 HTML (서버 렌더링) |
ohou-today-deal/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제9 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제9
ohou-today-deal/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
ohou-today-deal/scripts/ohou_today_deal.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 12
Supported surface: https://ohou.se/commerces/today_deals (공개 HTML) - Network accessline 12
Supported surface: https://ohou.se/commerces/today_deals (공개 HTML) - Network accessline 13
https://ohou.se/commerces/today_deals (공개 HTML) - Network accessline 13
https://ohou.se/commerces/today_deals (공개 HTML) - Network accessline 28
DEFAULT_URL = "https://ohou.se/commerces/today_deals" - Network accessline 28
DEFAULT_URL = "https://ohou.se/commerces/today_deals" - Network accessline 29
DEFAULT_USER_AGENT = ( "k-skill-ohou-today-deal/1.0 (+https://github.com/NomaDamas/k-skill)" ) - Network accessline 29
DEFAULT_USER_AGENT = ( "k-skill-ohou-today-deal/1.0 (+https://github.com/NomaDamas/k-skill)" ) - Network accessline 30
"k-skill-ohou-today-deal/1.0 (+https://github.com/NomaDamas/k-skill)" - Network accessline 30
"k-skill-ohou-today-deal/1.0 (+https://github.com/NomaDamas/k-skill)" - Network accessline 85
request = urllib.request.Request( - Network accessline 85
request = urllib.request.Request( - Network accessline 90
}, ) with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 90
}, ) with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 91
) with urllib.request.urlopen(request, timeout=timeout) as response: charset = response.headers.get_content_charset() or "utf-8" - Network accessline 91
) with urllib.request.urlopen(request, timeout=timeout) as response: charset = response.headers.get_content_charset() or "utf-8" - Network accessline 92
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 92
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 183
title=str(deal.get("name") or node.get("title") or ""), brand=brand.get("name"), url=f"https://ohou.se/productions/{deal_id}/selling", - Network accessline 183
title=str(deal.get("name") or node.get("title") or ""), brand=brand.get("name"), url=f"https://ohou.se/productions/{deal_id}/selling", - Network accessline 184
brand=brand.get("name"), url=f"https://ohou.se/productions/{deal_id}/selling", image_url=deal.get("imageUrl"), - Network accessline 184
brand=brand.get("name"), url=f"https://ohou.se/productions/{deal_id}/selling", image_url=deal.get("imageUrl"), - Network accessline 185
url=f"https://ohou.se/productions/{deal_id}/selling", - Network accessline 185
url=f"https://ohou.se/productions/{deal_id}/selling",
olive-young-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/olive-young-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/olive-young-search/instruction.md.
olive-young-search/instruction.md
- Network accessline 5
upstream 원본 [`hmmhmmhm/daiso-mcp`](https://github.com/hmmhmmhm/daiso-mcp) 와 npm package [`daiso`](https://www.npmjs.com/package/daiso) 를 그대로 사용해 **올리브영 매장 검색, 상품 검색, 재고 확인** 흐름을 안내한다. - Network accessline 5
upstream 원본 [`hmmhmmhm/daiso-mcp`](https://github.com/hmmhmmhm/daiso-mcp) 와 npm package [`daiso`](https://www.npmjs.com/package/daiso) 를 그대로 사용해 **올리브영 매장 검색, 상품 검색, 재고 확인** 흐름을 안내한다. - Network accessline 63
git clone https://github.com/hmmhmmhm/daiso-mcp.git - Network accessline 63
git clone https://github.com/hmmhmmhm/daiso-mcp.git - Network accessline 152
- 원본 프로젝트: `https://github.com/hmmhmmhm/daiso-mcp` - Network accessline 152
- 원본 프로젝트: `https://github.com/hmmhmmhm/daiso-mcp` - Network accessline 153
- npm package: `https://www.npmjs.com/package/daiso` - Network accessline 153
- npm package: `https://www.npmjs.com/package/daiso`
olive-young-search/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제9 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제9
olive-young-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
parking-lot-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/parking-lot-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/parking-lot-search/instruction.md.
parking-lot-search/instruction.md
- Network accessline 35
- 표준데이터 안내: `https://www.data.go.kr/data/15012896/standard.do` - Network accessline 35
- 표준데이터 안내: `https://www.data.go.kr/data/15012896/standard.do` - Network accessline 36
- Open API 안내: `https://www.data.go.kr/data/15012896/openapi.do` - Network accessline 36
- Open API 안내: `https://www.data.go.kr/data/15012896/openapi.do` - Network accessline 37
- Open API endpoint: `https://api.data.go.kr/openapi/tn_pubr_prkplce_info_api` - Network accessline 37
- Open API endpoint: `https://api.data.go.kr/openapi/tn_pubr_prkplce_info_api` - Network accessline 38
- k-skill proxy: `/v1/parking-lots/search` - Kakao Map 모바일 검색: `https://m.map.kakao.com/actions/searchView?q=<query>` - Kakao Map 장소 패널 JSON: `https://place-api.map.kakao.com/places/panel3/<confirmId>` - Network accessline 38
- k-skill proxy: `/v1/parking-lots/search` - Kakao Map 모바일 검색: `https://m.map.kakao.com/actions/searchView?q=<query>` - Kakao Map 장소 패널 JSON: `https://place-api.map.kakao.com/places/panel3/<confirmId>` - Network accessline 39
- Kakao Map 모바일 검색: `https://m.map.kakao.com/actions/searchView?q=<query>` - Network accessline 39
- Kakao Map 모바일 검색: `https://m.map.kakao.com/actions/searchView?q=<query>` - Network accessline 40
- Kakao Map 장소 패널 JSON: `https://place-api.map.kakao.com/places/panel3/<confirmId>` - Network accessline 40
- Kakao Map 장소 패널 JSON: `https://place-api.map.kakao.com/places/panel3/<confirmId>`
popbill/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/popbill/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/popbill/instruction.md.
popbill/instruction.md
popbill/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 접근에 관한 판단이며, 인증된 세금·계좌·메시지 데이터에 대한 권한을 부여하지 않습니다. 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 접근에 관한 판단이며, 인증된 세금·계좌·메시지 데이터에 대한 권한을 부여하지 않습니다. 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률
popbill/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
popbill/scripts/popbill_cli.py
- Executable scriptline 1
#!/usr/bin/env -S uv run --script - Executable scriptline 1
#!/usr/bin/env -S uv run --script - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 139
[Credential-related source omitted] - Access to secretsline 139
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted]
popbill/scripts/popbill_registry.py
popbill/scripts/popbill_safety.py
popbill/scripts/popbill_templates.py
popbill/tests/fake_popbill.py
popbill/tests/run_tests.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted]
popbill/tests/test_popbill_cli.py
public-restroom-nearby/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/public-restroom-nearby/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/public-restroom-nearby/instruction.md.
public-restroom-nearby/instruction.md
- Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 10
[Credential-related source omitted] - Network accessline 30
- 공공데이터포털 공중화장실 표준데이터 안내: `https://www.data.go.kr/data/15012892/standard.do` - 전국 CSV: `https://file.localdata.go.kr/file/download/public_restroom_info/info` - Network accessline 30
- 공공데이터포털 공중화장실 표준데이터 안내: `https://www.data.go.kr/data/15012892/standard.do` - 전국 CSV: `https://file.localdata.go.kr/file/download/public_restroom_info/info` - Network accessline 31
- 전국 CSV: `https://file.localdata.go.kr/file/download/public_restroom_info/info` - Network accessline 31
- 전국 CSV: `https://file.localdata.go.kr/file/download/public_restroom_info/info` - Network accessline 32
- 지역별 CSV: `https://file.localdata.go.kr/file/download/public_restroom_info/info?orgCode=<시도코드>` - Network accessline 32
- 지역별 CSV: `https://file.localdata.go.kr/file/download/public_restroom_info/info?orgCode=<시도코드>` - Network accessline 33
- 파일 소개 페이지: `https://file.localdata.go.kr/file/public_restroom_info/info` - Network accessline 33
- 파일 소개 페이지: `https://file.localdata.go.kr/file/public_restroom_info/info` - Network accessline 34
- Kakao Map 모바일 검색: `https://m.map.kakao.com/actions/searchView?q=<query>` - Network accessline 34
- Kakao Map 모바일 검색: `https://m.map.kakao.com/actions/searchView?q=<query>` - Network accessline 35
- Kakao Map 장소 패널 JSON: `https://place-api.map.kakao.com/places/panel3/<confirmId>` - Network accessline 35
- Kakao Map 장소 패널 JSON: `https://place-api.map.kakao.com/places/panel3/<confirmId>`
railway-timetable/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/railway-timetable/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/railway-timetable/instruction.md.
railway-timetable/scripts/ktx_backend.py
- Executable scriptline 1
#!/usr/bin/env -S uv run --locked --script - Executable scriptline 1
#!/usr/bin/env -S uv run --locked --script - Network accessline 25
BOARD_URL = ( "https://www.korail.com/com/userBoard.do" - Network accessline 25
BOARD_URL = ( "https://www.korail.com/com/userBoard.do" - Network accessline 26
"https://www.korail.com/com/userBoard.do" - Network accessline 26
"https://www.korail.com/com/userBoard.do" - Network accessline 27
"?schBcid=ticketTable&mode=list&page=1&schStr=KTX&bdCode=&Device=BH&Version=999999999" ) FILE_BASE_URL = "https://www.korail.com/file/cubedata/COMMON/" - Network accessline 27
"?schBcid=ticketTable&mode=list&page=1&schStr=KTX&bdCode=&Device=BH&Version=999999999" ) FILE_BASE_URL = "https://www.korail.com/file/cubedata/COMMON/" - Network accessline 28
) FILE_BASE_URL = "https://www.korail.com/file/cubedata/COMMON/" BOOKING_URL = "https://www.korail.com/ticket/search" - Network accessline 28
) FILE_BASE_URL = "https://www.korail.com/file/cubedata/COMMON/" BOOKING_URL = "https://www.korail.com/ticket/search" - Network accessline 29
FILE_BASE_URL = "https://www.korail.com/file/cubedata/COMMON/" - Network accessline 29
FILE_BASE_URL = "https://www.korail.com/file/cubedata/COMMON/" - Network accessline 30
BOOKING_URL = "https://www.korail.com/ticket/search" - Network accessline 30
BOOKING_URL = "https://www.korail.com/ticket/search" - Network accessline 31
USER_AGENT = "k-skill/ktx-readonly (+https://github.com/NomaDamas/k-skill)" - Network accessline 31
USER_AGENT = "k-skill/ktx-readonly (+https://github.com/NomaDamas/k-skill)"
railway-timetable/scripts/ktx_backend.py.lock
- Network accessline 9
name = "et-xmlfile" version = "2.0.0" source = { registry = "https://pypi.org/simple" } - Network accessline 9
name = "et-xmlfile" version = "2.0.0" source = { registry = "https://pypi.org/simple" } - Network accessline 10
version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f47 - Network accessline 10
version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f47 - Network accessline 11
source = { registry = "https://pypi.org/simple" } - Network accessline 11
source = { registry = "https://pypi.org/simple" } - Network accessline 12
sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54", size = 1 - Network accessline 12
sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54", size = 1 - Network accessline 13
wheels = [ { url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f53615 - Network accessline 13
wheels = [ { url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f53615 - Network accessline 14
{ url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa", size = - Network accessline 14
{ url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa", size = - Network accessline 18
name = "openpyxl" version = "3.1.5" source = { registry = "https://pypi.org/simple" } - Network accessline 18
name = "openpyxl" version = "3.1.5" source = { registry = "https://pypi.org/simple" } - Network accessline 19
version = "3.1.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 19
version = "3.1.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 20
source = { registry = "https://pypi.org/simple" } - Network accessline 20
source = { registry = "https://pypi.org/simple" } - Network accessline 22
{ name = "et-xmlfile" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0f - Network accessline 22
{ name = "et-xmlfile" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0f - Network accessline 23
] sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 1 - Network accessline 23
] sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 1 - Network accessline 24
sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 186 - Network accessline 24
sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 186 - Network accessline 25
wheels = [ { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef307 - Network accessline 25
wheels = [ { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef307 - Network accessline 26
{ url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size - Network accessline 26
{ url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size
railway-timetable/scripts/ktx_timetable.py
railway-timetable/scripts/railway_timetable.py
railway-timetable/scripts/railway_timetable.py.lock
- Network accessline 9
name = "et-xmlfile" version = "2.0.0" source = { registry = "https://pypi.org/simple" } - Network accessline 9
name = "et-xmlfile" version = "2.0.0" source = { registry = "https://pypi.org/simple" } - Network accessline 10
version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f47 - Network accessline 10
version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f47 - Network accessline 11
source = { registry = "https://pypi.org/simple" } - Network accessline 11
source = { registry = "https://pypi.org/simple" } - Network accessline 12
sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54", size = 1 - Network accessline 12
sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54", size = 1 - Network accessline 13
wheels = [ { url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f53615 - Network accessline 13
wheels = [ { url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f53615 - Network accessline 14
{ url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa", size = - Network accessline 14
{ url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa", size = - Network accessline 18
name = "openpyxl" version = "3.1.5" source = { registry = "https://pypi.org/simple" } - Network accessline 18
name = "openpyxl" version = "3.1.5" source = { registry = "https://pypi.org/simple" } - Network accessline 19
version = "3.1.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 19
version = "3.1.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 20
source = { registry = "https://pypi.org/simple" } - Network accessline 20
source = { registry = "https://pypi.org/simple" } - Network accessline 22
{ name = "et-xmlfile" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0f - Network accessline 22
{ name = "et-xmlfile" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0f - Network accessline 23
] sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 1 - Network accessline 23
] sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 1 - Network accessline 24
sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 186 - Network accessline 24
sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 186 - Network accessline 25
wheels = [ { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef307 - Network accessline 25
wheels = [ { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef307 - Network accessline 26
{ url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size - Network accessline 26
{ url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size
real-estate-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/real-estate-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/real-estate-search/instruction.md.
real-estate-search/instruction.md
- Network accessline 5
기본적으로 `https://k-skill-proxy.nomadamas.org/v1/real-estate/...` 로 요청해서 한국 부동산 실거래가/전월세 데이터를 조회한다. 국토교통부(MOLIT) 실거래가 신고 데이터를 기반으로 한다. - Network accessline 5
기본적으로 `https://k-skill-proxy.nomadamas.org/v1/real-estate/...` 로 요청해서 한국 부동산 실거래가/전월세 데이터를 조회한다. 국토교통부(MOLIT) 실거래가 신고 데이터를 기반으로 한다. - Network accessline 48
한 조합이라도 실패하면 보고서는 성공/빈 결과/실패 범위를 모두 출력하고 종료코드 1을 반환한다. 원문 근거는 실제로 접속한 `https://rt.molit.go.kr/pt/xls/xls.do`로 고정한다. - Network accessline 48
한 조합이라도 실패하면 보고서는 성공/빈 결과/실패 범위를 모두 출력하고 종료코드 1을 반환한다. 원문 근거는 실제로 접속한 `https://rt.molit.go.kr/pt/xls/xls.do`로 고정한다. - Network accessline 54
`KSKILL_PROXY_BASE_URL` 환경변수가 있으면 그 값을 사용하고, 없으면 기본 경로 `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 54
`KSKILL_PROXY_BASE_URL` 환경변수가 있으면 그 값을 사용하고, 없으면 기본 경로 `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 89
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/real-estate/region-code' \ - Network accessline 89
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/real-estate/region-code' \ - Network accessline 96
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/real-estate/apartment/trade' \ - Network accessline 96
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/real-estate/apartment/trade' \ - Network accessline 104
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/real-estate/officetel/rent' \ - Network accessline 104
curl -fsS --get 'https://k-skill-proxy.nomadamas.org/v1/real-estate/officetel/rent' \ - Access to secretsline 173
[Credential-related source omitted] - Access to secretsline 173
[Credential-related source omitted] - Network accessline 188
- 원본 참고: `https://github.com/tae0y/real-estate-mcp/tree/main` - Network accessline 188
- 원본 참고: `https://github.com/tae0y/real-estate-mcp/tree/main` - Network accessline 189
- 공식 데이터 출처: 공공데이터포털 (`https://www.data.go.kr`) - Network accessline 189
- 공식 데이터 출처: 공공데이터포털 (`https://www.data.go.kr`) - Network accessline 190
- 공식 RTMS CSV 자료제공: `https://rt.molit.go.kr/pt/xls/xls.do` - Network accessline 190
- 공식 RTMS CSV 자료제공: `https://rt.molit.go.kr/pt/xls/xls.do`
real-estate-search/scripts/nationwide_daily_report.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 24
BASE_URL = "https://rt.molit.go.kr" - Network accessline 24
BASE_URL = "https://rt.molit.go.kr" - Network accessline 133
) -> bytes: data = urllib.parse.urlencode(payload).encode("ascii") if payload is not None else None request = urllib.request.Request( - Network accessline 133
) -> bytes: data = urllib.parse.urlencode(payload).encode("ascii") if payload is not None else None request = urllib.request.Request( - Network accessline 134
data = urllib.parse.urlencode(payload).encode("ascii") if payload is not None else None request = urllib.request.Request( url, - Network accessline 134
data = urllib.parse.urlencode(payload).encode("ascii") if payload is not None else None request = urllib.request.Request( url, - Network accessline 135
request = urllib.request.Request( - Network accessline 135
request = urllib.request.Request(
real-estate-search/tests/test_nationwide_daily_report.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 98
self.assertIn("성공 조합: 0 · 빈 결과: 16 · 실패: 0 · 미실행: 0", rendered) self.assertIn("<https://rt.molit.go.kr/pt/xls/xls.do|국토교통부 실거래가 자료제공>", rendered) - Network accessline 98
self.assertIn("성공 조합: 0 · 빈 결과: 16 · 실패: 0 · 미실행: 0", rendered) self.assertIn("<https://rt.molit.go.kr/pt/xls/xls.do|국토교통부 실거래가 자료제공>", rendered) - Network accessline 99
self.assertIn("<https://rt.molit.go.kr/pt/xls/xls.do|국토교통부 실거래가 자료제공>", rendered) - Network accessline 99
self.assertIn("<https://rt.molit.go.kr/pt/xls/xls.do|국토교통부 실거래가 자료제공>", rendered)
religious-facility-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/religious-facility-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/religious-facility-search/instruction.md.
religious-facility-search/instruction.md
- Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Network accessline 55
`{proxy}`는 기본 `https://k-skill-proxy.nomadamas.org`이며 `KSKILL_PROXY_BASE_URL`로 - Network accessline 55
`{proxy}`는 기본 `https://k-skill-proxy.nomadamas.org`이며 `KSKILL_PROXY_BASE_URL`로 - Network accessline 65
직접 돌릴 필요가 없다. - **전국 커버리지**: 지자체 공공데이터(예: 서울 종로구 교회 현황 `https://www.data.go.kr/data/15117640/fileData.do`)는 구 단위로만 공개되어 전국 - Network accessline 65
직접 돌릴 필요가 없다. - **전국 커버리지**: 지자체 공공데이터(예: 서울 종로구 교회 현황 `https://www.data.go.kr/data/15117640/fileData.do`)는 구 단위로만 공개되어 전국 - Network accessline 66
- **전국 커버리지**: 지자체 공공데이터(예: 서울 종로구 교회 현황 `https://www.data.go.kr/data/15117640/fileData.do`)는 구 단위로만 공개되어 전국 표준데이터가 없다. 주 경로로 쓸 수 없어 참고 출처로만 둔다. - Network accessline 66
- **전국 커버리지**: 지자체 공공데이터(예: 서울 종로구 교회 현황 `https://www.data.go.kr/data/15117640/fileData.do`)는 구 단위로만 공개되어 전국 표준데이터가 없다. 주 경로로 쓸 수 없어 참고 출처로만 둔다. - Network accessline 67
`https://www.data.go.kr/data/15117640/fileData.do`)는 구 단위로만 공개되어 전국 - Network accessline 67
`https://www.data.go.kr/data/15117640/fileData.do`)는 구 단위로만 공개되어 전국 - Network accessline 135
약 313m 전화 02-3474-3609 지도 https://place.map.kakao.com/85095074 - Network accessline 135
약 313m 전화 02-3474-3609 지도 https://place.map.kakao.com/85095074 - Network accessline 137
지도 https://place.map.kakao.com/85095074 - Network accessline 137
지도 https://place.map.kakao.com/85095074 - Network accessline 158
"phone": "02-3474-3609", "homepage": null, "place_url": "https://place.map.kakao.com/85095074", - Network accessline 158
"phone": "02-3474-3609", "homepage": null, "place_url": "https://place.map.kakao.com/85095074", - Network accessline 159
"homepage": null, "place_url": "https://place.map.kakao.com/85095074", "distance_m": 313 - Network accessline 159
"homepage": null, "place_url": "https://place.map.kakao.com/85095074", "distance_m": 313 - Network accessline 160
"place_url": "https://place.map.kakao.com/85095074", - Network accessline 160
"place_url": "https://place.map.kakao.com/85095074", - Access to secretsline 181
[Credential-related source omitted] - Access to secretsline 181
[Credential-related source omitted]
religious-facility-search/scripts/religious_facility_search.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 24
DEFAULT_PROXY_BASE = "https://k-skill-proxy.nomadamas.org" - Network accessline 24
DEFAULT_PROXY_BASE = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Network accessline 53
def fetch_json(url, timeout=15): request = urllib.request.Request(url, headers={"user-agent": USER_AGENT, "accept": "application/json"}) - Network accessline 53
def fetch_json(url, timeout=15): request = urllib.request.Request(url, headers={"user-agent": USER_AGENT, "accept": "application/json"}) - Network accessline 54
request = urllib.request.Request(url, headers={"user-agent": USER_AGENT, "accept": "application/json"}) - Network accessline 54
request = urllib.request.Request(url, headers={"user-agent": USER_AGENT, "accept": "application/json"}) - Network accessline 55
try: with urllib.request.urlopen(request, timeout=timeout) as response: raw = response.read().decode("utf-8", errors="replace") - Network accessline 55
try: with urllib.request.urlopen(request, timeout=timeout) as response: raw = response.read().decode("utf-8", errors="replace") - Network accessline 56
with urllib.request.urlopen(request, timeout=timeout) as response: - Network accessline 56
with urllib.request.urlopen(request, timeout=timeout) as response:
religious-facility-search/tests/test_religious_facility_search.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 26
"address_name": jibun, "phone": phone, "place_url": place_url or f"https://place.map.kakao.com/{place_id}", - Network accessline 26
"address_name": jibun, "phone": phone, "place_url": place_url or f"https://place.map.kakao.com/{place_id}", - Network accessline 27
"phone": phone, "place_url": place_url or f"https://place.map.kakao.com/{place_id}", } - Network accessline 27
"phone": phone, "place_url": place_url or f"https://place.map.kakao.com/{place_id}", } - Network accessline 28
"place_url": place_url or f"https://place.map.kakao.com/{place_id}", - Network accessline 28
"place_url": place_url or f"https://place.map.kakao.com/{place_id}", - Network accessline 268
"address": "서울 서초구 강남대로55길 9-11", "distance_m": 313, "phone": "02-3474-3609", "homepage": None, "place_url": "https://place.map.kakao.com/85095074", - Network accessline 268
"address": "서울 서초구 강남대로55길 9-11", "distance_m": 313, "phone": "02-3474-3609", "homepage": None, "place_url": "https://place.map.kakao.com/85095074", - Network accessline 269
"phone": "02-3474-3609", "homepage": None, "place_url": "https://place.map.kakao.com/85095074", }] - Network accessline 269
"phone": "02-3474-3609", "homepage": None, "place_url": "https://place.map.kakao.com/85095074", }] - Network accessline 270
"place_url": "https://place.map.kakao.com/85095074", - Network accessline 270
"place_url": "https://place.map.kakao.com/85095074", - Network accessline 281
places = [{"name": "강남성서침례교회", "category": "교회", "denomination": "기독교", "address": "서울 서초구", "distance_m": 313, "phone": None, "homepage": None, "place_url": "https://place.map.kakao.com/1"}] - Network accessline 281
places = [{"name": "강남성서침례교회", "category": "교회", "denomination": "기독교", "address": "서울 서초구", "distance_m": 313, "phone": None, "homepage": None, "place_url": "https://place.map.kakao.com/1"}] - Network accessline 283
"place_url": "https://place.map.kakao.com/1"}] - Network accessline 283
"place_url": "https://place.map.kakao.com/1"}]
rhwp-advanced/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/rhwp-advanced/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/rhwp-advanced/instruction.md.
rhwp-advanced/instruction.md
- Network accessline 28
- **rhwp CLI 바이너리**. 다음 중 하나: - `cargo install rhwp` (Rust toolchain 필요. Rust 1.75+. 네이티브 빌드이므로 PDF export 포함 전체 서브커맨드 가능) - 또는 업스트림 릴리스 페이지 https://github.com/edwardkim/rhwp/releases 에서 플랫폼별 사전 빌드 바이너리 다운로드(있는 플랫폼 한정) - Network accessline 28
- **rhwp CLI 바이너리**. 다음 중 하나: - `cargo install rhwp` (Rust toolchain 필요. Rust 1.75+. 네이티브 빌드이므로 PDF export 포함 전체 서브커맨드 가능) - 또는 업스트림 릴리스 페이지 https://github.com/edwardkim/rhwp/releases 에서 플랫폼별 사전 빌드 바이너리 다운로드(있는 플랫폼 한정) - Network accessline 29
- `cargo install rhwp` (Rust toolchain 필요. Rust 1.75+. 네이티브 빌드이므로 PDF export 포함 전체 서브커맨드 가능) - 또는 업스트림 릴리스 페이지 https://github.com/edwardkim/rhwp/releases 에서 플랫폼별 사전 빌드 바이너리 다운로드(있는 플랫폼 한정) - PATH 에 `rhwp` 실행 파일이 있는지 `rhwp --help` 로 먼저 확인한 - Network accessline 29
- `cargo install rhwp` (Rust toolchain 필요. Rust 1.75+. 네이티브 빌드이므로 PDF export 포함 전체 서브커맨드 가능) - 또는 업스트림 릴리스 페이지 https://github.com/edwardkim/rhwp/releases 에서 플랫폼별 사전 빌드 바이너리 다운로드(있는 플랫폼 한정) - PATH 에 `rhwp` 실행 파일이 있는지 `rhwp --help` 로 먼저 확인한 - Network accessline 30
- 또는 업스트림 릴리스 페이지 https://github.com/edwardkim/rhwp/releases 에서 플랫폼별 사전 빌드 바이너리 다운로드(있는 플랫폼 한정) - Network accessline 30
- 또는 업스트림 릴리스 페이지 https://github.com/edwardkim/rhwp/releases 에서 플랫폼별 사전 빌드 바이너리 다운로드(있는 플랫폼 한정) - Network accessline 142
- 업스트림: https://github.com/edwardkim/rhwp - Network accessline 142
- 업스트림: https://github.com/edwardkim/rhwp
rhwp-edit/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/rhwp-edit/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/rhwp-edit/instruction.md.
rhwp-edit/instruction.md
- Network accessline 150
- 업스트림 rhwp: https://github.com/edwardkim/rhwp - Network accessline 150
- 업스트림 rhwp: https://github.com/edwardkim/rhwp - Network accessline 151
- 업스트림 `@rhwp/core` npm: https://www.npmjs.com/package/@rhwp/core - Network accessline 151
- 업스트림 `@rhwp/core` npm: https://www.npmjs.com/package/@rhwp/core
s2b-notice-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/s2b-notice-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/s2b-notice-search/instruction.md.
s2b-notice-search/instruction.md
- Network accessline 19
https://www.s2b.kr/S2BNCustomer/tcmo001.do - Network accessline 19
https://www.s2b.kr/S2BNCustomer/tcmo001.do - Network accessline 26
1. Aside Browser REPL snapshot/action: 공개 페이지를 열고 snapshot으로 검색 폼과 결과 테이블을 확인한 뒤, 입력/제출/action metadata를 브라우저 표면에서 읽는다. 2. BrowserOS CDP 또는 로컬 브라우저: Aside를 사용할 수 없으면 사용자가 띄운 BrowserOS 세션에 CDP로 붙거나 로컬 브라우저로 `https://www.s2b.kr/S2BNCustomer/t - Network accessline 26
1. Aside Browser REPL snapshot/action: 공개 페이지를 열고 snapshot으로 검색 폼과 결과 테이블을 확인한 뒤, 입력/제출/action metadata를 브라우저 표면에서 읽는다. 2. BrowserOS CDP 또는 로컬 브라우저: Aside를 사용할 수 없으면 사용자가 띄운 BrowserOS 세션에 CDP로 붙거나 로컬 브라우저로 `https://www.s2b.kr/S2BNCustomer/t - Network accessline 27
2. BrowserOS CDP 또는 로컬 브라우저: Aside를 사용할 수 없으면 사용자가 띄운 BrowserOS 세션에 CDP로 붙거나 로컬 브라우저로 `https://www.s2b.kr/S2BNCustomer/tcmo001.do`를 열고 검색 폼을 제출한 뒤 렌더링된 목록/상세 HTML을 파싱한다. - Network accessline 27
2. BrowserOS CDP 또는 로컬 브라우저: Aside를 사용할 수 없으면 사용자가 띄운 BrowserOS 세션에 CDP로 붙거나 로컬 브라우저로 `https://www.s2b.kr/S2BNCustomer/tcmo001.do`를 열고 검색 폼을 제출한 뒤 렌더링된 목록/상세 HTML을 파싱한다.
saju-fortune/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/saju-fortune/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/saju-fortune/instruction.md.
saramin-talent-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/saramin-talent-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/saramin-talent-search/instruction.md.
saramin-talent-search/instruction.md
saramin-talent-search/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 접근에 관한 판단이며, 인증된 후보자·이력서 개인정보에 대한 권한을 부여하지 않습니다. 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/ - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 접근에 관한 판단이며, 인증된 후보자·이력서 개인정보에 대한 권한을 부여하지 않습니다. 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/
saramin-talent-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
scripts/build-manus-bundle.js
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 9
* Each `.skill` archive contains a single top-level `<skill-name>/` folder * that matches the layout produced by the public Anthropic skill-creator * packager (https://github.com/anthropics/skills/blob/main/skills/skill-creator/scripts/pa - Network accessline 10
* that matches the layout produced by the public Anthropic skill-creator * packager (https://github.com/anthropics/skills/blob/main/skills/skill-creator/scripts/package_skill.py). * That nested layout is load-bearing: flattening it breaks - Network accessline 11
* packager (https://github.com/anthropics/skills/blob/main/skills/skill-creator/scripts/package_skill.py). - Dangerous shell operationline 56
" - Debian/Ubuntu: sudo apt-get install -y zip\n" +
scripts/build-region-codes.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/check-setup.sh
- Executable scriptline 1
#!/usr/bin/env bash
scripts/ci-paths.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/ci-run.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/fine_dust.py
scripts/fixtures/geeknews-feed.xml
- Network accessline 1
<?xml version='1.0' encoding='UTF-8'?> <feed xmlns='http://www.w3.org/2005/Atom'> - Network accessline 2
<feed xmlns='http://www.w3.org/2005/Atom'> - Network accessline 3
<title>GeekNews - 개발/기술/스타트업 뉴스 서비스</title> <subtitle>개발 뉴스, 기술 관련 새소식, 스타트업 정보와 노하우</subtitle> <link ref='alternate' type='text/html' href='https://news.hada.io' /> - Network accessline 4
<subtitle>개발 뉴스, 기술 관련 새소식, 스타트업 정보와 노하우</subtitle> <link ref='alternate' type='text/html' href='https://news.hada.io' /> <link ref='self' type='application/atom+xml' href='https://news.hada.io/rss/news' /> - Network accessline 5
<link ref='alternate' type='text/html' href='https://news.hada.io' /> - Network accessline 6
<link ref='self' type='application/atom+xml' href='https://news.hada.io/rss/news' /> - Network accessline 7
<id>https://news.hada.io/rss/news</id> - Network accessline 9
<entry> <title><![CDATA[Ask GN: 기억이 안나는 웹사이트를 찾고 있습니다.]]></title> <link rel='alternate' type='text/html' href='https://news.hada.io/topic?id=28441' /> - Network accessline 10
<title><![CDATA[Ask GN: 기억이 안나는 웹사이트를 찾고 있습니다.]]></title> <link rel='alternate' type='text/html' href='https://news.hada.io/topic?id=28441' /> <id>https://news.hada.io/topic?id=28441</id> - Network accessline 11
<link rel='alternate' type='text/html' href='https://news.hada.io/topic?id=28441' /> - Network accessline 12
<id>https://news.hada.io/topic?id=28441</id> - Network accessline 15
<author> <name>princox</name> <uri>https://news.hada.io/user/princox</uri> - Network accessline 16
<name>princox</name> <uri>https://news.hada.io/user/princox</uri> </author> - Network accessline 17
<uri>https://news.hada.io/user/princox</uri> - Network accessline 21
<entry> <title><![CDATA[AI 에이전트 벤치마크를 무너뜨린 방법과 그 다음 단계]]></title> <link rel='alternate' type='text/html' href='https://news.hada.io/topic?id=28440' /> - Network accessline 22
<title><![CDATA[AI 에이전트 벤치마크를 무너뜨린 방법과 그 다음 단계]]></title> <link rel='alternate' type='text/html' href='https://news.hada.io/topic?id=28440' /> <id>https://news.hada.io/topic?id=28440</id> - Network accessline 23
<link rel='alternate' type='text/html' href='https://news.hada.io/topic?id=28440' /> - Network accessline 24
<id>https://news.hada.io/topic?id=28440</id> - Network accessline 27
<author> <name>neo</name> <uri>https://news.hada.io/user/neo</uri> - Network accessline 28
<name>neo</name> <uri>https://news.hada.io/user/neo</uri> </author> - Network accessline 29
<uri>https://news.hada.io/user/neo</uri> - Network accessline 33
<entry> <title><![CDATA[Show GN: [GN] 비개발자 + Claude로 프로덕션 운영 238일 — 무엇이 됐고 무엇이 안 됐나?]]></title> <link rel='alternate' type='text/html' href='https://news.hada.io/topic?id=28439' /> - Network accessline 34
<title><![CDATA[Show GN: [GN] 비개발자 + Claude로 프로덕션 운영 238일 — 무엇이 됐고 무엇이 안 됐나?]]></title> <link rel='alternate' type='text/html' href='https://news.hada.io/topic?id=28439' /> <id>https://news.hada.io/topic?id=28439</id> - Network accessline 35
<link rel='alternate' type='text/html' href='https://news.hada.io/topic?id=28439' /> - Network accessline 36
<id>https://news.hada.io/topic?id=28439</id> - Network accessline 39
<author> <name>workdriver</name> <uri>https://news.hada.io/user/workdriver</uri> - Network accessline 40
<name>workdriver</name> <uri>https://news.hada.io/user/workdriver</uri> </author> - Network accessline 41
<uri>https://news.hada.io/user/workdriver</uri>
scripts/fixtures/hola-poke-yeoksam-contract-smoke.json
- Network accessline 1
{ "verified_at": "2026-04-16 KST", "endpoint": "https://hola-poke-yeoksam-skill.onrender.com/mcp", - Network accessline 2
"verified_at": "2026-04-16 KST", "endpoint": "https://hola-poke-yeoksam-skill.onrender.com/mcp", "initialize": { - Network accessline 3
"endpoint": "https://hola-poke-yeoksam-skill.onrender.com/mcp",
scripts/geeknews_search.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 14
GEEKNEWS_FEED_URL = "https://feeds.feedburner.com/geeknews-feed" - Network accessline 242
def fetch_feed(url: str = GEEKNEWS_FEED_URL, timeout: int = 20) -> str: request = urllib.request.Request(url, headers={"User-Agent": "k-skill-geeknews/1.0"}) - Network accessline 243
request = urllib.request.Request(url, headers={"User-Agent": "k-skill-geeknews/1.0"}) - Network accessline 244
with urllib.request.urlopen(request, timeout=timeout) as response:
scripts/generate-plugin-manifest.js
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 66
version: "1.0.0", author: { name: "NomaDamas" }, homepage: "https://github.com/NomaDamas/k-skill", - Network accessline 67
author: { name: "NomaDamas" }, homepage: "https://github.com/NomaDamas/k-skill", repository: "https://github.com/NomaDamas/k-skill", - Network accessline 68
homepage: "https://github.com/NomaDamas/k-skill", - Network accessline 69
repository: "https://github.com/NomaDamas/k-skill",
scripts/generate-skill-list.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/generate-skill-stubs.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md. - Network accessline 69
If \`npx\` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/${skillName}/instruction.md.
scripts/k_skill_cleaner.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/korean_character_count.js
- Executable scriptline 1
Executable file
scripts/korean_heritage_search.py
scripts/korean_middle_korean.js
- Executable scriptline 1
Executable file
scripts/korean_spell_check.py
scripts/mfds_drug_safety.py
scripts/mfds_food_safety.py
scripts/migrate-cli-asset-instructions.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/nts_business_registration.py
- Executable scriptline 1
Executable file - Network accessline 13
PROXY_BASE_URL_ENV_VAR = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 14
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 41
[Credential-related source omitted] - Network accessline 134
def read_json_response(request: urllib.request.Request) -> dict[str, Any]: - Network accessline 135
try: with urllib.request.urlopen(request, timeout=30) as response: return json.loads(response.read().decode("utf-8")) - Network accessline 136
with urllib.request.urlopen(request, timeout=30) as response: - Network accessline 151
def _post_json(path: str, payload: dict[str, Any], *, base_url: str | None = None, read_json: Any = read_json_response) -> dict[str, Any]: resolved_base_url = resolve_proxy_base_url(base_url) request = urllib.request.Request( - Network accessline 152
resolved_base_url = resolve_proxy_base_url(base_url) request = urllib.request.Request( f"{resolved_base_url}{path}", - Network accessline 153
request = urllib.request.Request(
scripts/pack-dry-run.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/patent_search.py
scripts/prepare-python-test-env.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/registry-e2e-k-skill-cli.js
scripts/run-lint.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/run-store-longevity-mirror-test.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/run-tests.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/seoul_density.py
- Executable scriptline 1
Executable file - Network accessline 74
TIMEOUT_SEC = 10 PROXY_BASE_URL_NAME = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 76
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 144
[Credential-related source omitted] - Network accessline 152
query = urllib.parse.urlencode({"area": area}) url = f"{base_url}/v1/seoul-density/citydata?{query}" req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-density"}) - Network accessline 153
url = f"{base_url}/v1/seoul-density/citydata?{query}" req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-density"}) with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp: - Network accessline 154
req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-density"}) - Network accessline 155
with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp:
scripts/sillok_search.py
scripts/skill-docs.test.js
- Executable scriptline 1
Executable file - Access to secretsline 897
[Credential-related source omitted] - Access to secretsline 928
[Credential-related source omitted] - Access to secretsline 936
[Credential-related source omitted] - Access to secretsline 937
[Credential-related source omitted] - Access to secretsline 948
[Credential-related source omitted] - Access to secretsline 950
[Credential-related source omitted] - Access to secretsline 953
[Credential-related source omitted] - Access to secretsline 954
[Credential-related source omitted] - Access to secretsline 997
[Credential-related source omitted] - Access to secretsline 1001
[Credential-related source omitted] - Access to secretsline 1003
[Credential-related source omitted] - Network accessline 1028
for (const doc of [subwaySkill, weatherSkill, subwayFeatureDoc, weatherFeatureDoc]) { assert.match(doc, /BASE="\$\{KSKILL_PROXY_BASE_URL:-https:\/\/k-skill-proxy\.nomadamas\.org\}"/); assert.match(doc, /curl -fsS --get "\$\{BASE\}/) - Network accessline 1029
assert.match(doc, /BASE="\$\{KSKILL_PROXY_BASE_URL:-https:\/\/k-skill-proxy\.nomadamas\.org\}"/); assert.match(doc, /curl -fsS --get "\$\{BASE\}/); assert.doesNotMatch(doc, /curl -fsS --get 'https:\/\/k-skill-proxy\.nomadamas\.org/) - Network accessline 1030
assert.match(doc, /curl -fsS --get "\$\{BASE\}/); - Network accessline 1031
assert.doesNotMatch(doc, /curl -fsS --get 'https:\/\/k-skill-proxy\.nomadamas\.org/); - Network accessline 1034
assert.match(proxyDoc, /BASE="\$\{KSKILL_PROXY_BASE_URL:-https:\/\/k-skill-proxy\.nomadamas\.org\}"/); for (const endpoint of ["seoul-subway/arrival", "korea-weather/forecast"]) { assert.match(proxyDoc, new RegExp(`curl -fsS --get "\\ - Network accessline 1035
for (const endpoint of ["seoul-subway/arrival", "korea-weather/forecast"]) { assert.match(proxyDoc, new RegExp(`curl -fsS --get "\\$\\{BASE\\}/v1/${endpoint}"`)); assert.doesNotMatch(proxyDoc, /http:\/\/127\.0\.0\.1:\d+/); - Network accessline 1036
assert.match(proxyDoc, new RegExp(`curl -fsS --get "\\$\\{BASE\\}/v1/${endpoint}"`)); - Network accessline 1254
assert.match(doc, /English\/집배코드/); assert.match(doc, /Rep\. of KOREA/); assert.match(doc, /curl --http1\.1 --tls-max 1\.2/); - Network accessline 1255
assert.match(doc, /Rep\. of KOREA/); assert.match(doc, /curl --http1\.1 --tls-max 1\.2/); assert.match(doc, /--max-time/); - Network accessline 1256
assert.match(doc, /curl --http1\.1 --tls-max 1\.2/); - Network accessline 1310
assert.match(doc, /sid1/); assert.match(doc, /13자리/); assert.match(doc, /curl --http1\.1 --tls-max 1\.2/); - Network accessline 1311
assert.match(doc, /13자리/); assert.match(doc, /curl --http1\.1 --tls-max 1\.2/); assert.match(doc, /carrier adapter/i); - Network accessline 1312
assert.match(doc, /curl --http1\.1 --tls-max 1\.2/); - Access to secretsline 2199
[Credential-related source omitted] - Access to secretsline 2200
[Credential-related source omitted] - Access to secretsline 2201
[Credential-related source omitted] - Access to secretsline 2228
[Credential-related source omitted] - Access to secretsline 2569
[Credential-related source omitted] - Access to secretsline 2574
[Credential-related source omitted] - Access to secretsline 2575
[Credential-related source omitted] - Access to secretsline 2576
[Credential-related source omitted] - Access to secretsline 2577
[Credential-related source omitted] - Access to secretsline 2664
[Credential-related source omitted] - Network accessline 2738
name: "테스트재단 생활비 장학금", organization: { name: "테스트재단", type: "foundation" }, source_url: "https://foundation.example.com/notice/1", - Network accessline 2739
organization: { name: "테스트재단", type: "foundation" }, source_url: "https://foundation.example.com/notice/1", apply_url: "https://foundation.example.com/apply/1", - Network accessline 2740
source_url: "https://foundation.example.com/notice/1", - Network accessline 2741
apply_url: "https://foundation.example.com/apply/1", - Network accessline 2756
name: "교내 성적우수 장학금", organization: { name: "샘플대학교", type: "school" }, source_url: "https://sample.ac.kr/notice/2", - Network accessline 2757
organization: { name: "샘플대학교", type: "school" }, source_url: "https://sample.ac.kr/notice/2", apply_url: "https://sample.ac.kr/apply/2", - Network accessline 2758
source_url: "https://sample.ac.kr/notice/2", - Network accessline 2759
apply_url: "https://sample.ac.kr/apply/2", - Access to secretsline 3006
[Credential-related source omitted] - Access to secretsline 3007
[Credential-related source omitted] - Access to secretsline 3013
[Credential-related source omitted] - Access to secretsline 3038
[Credential-related source omitted] - Access to secretsline 3042
[Credential-related source omitted] - Access to secretsline 3181
[Credential-related source omitted] - Access to secretsline 3185
[Credential-related source omitted] - Access to secretsline 3198
[Credential-related source omitted] - Access to secretsline 3237
[Credential-related source omitted] - Access to secretsline 3244
[Credential-related source omitted] - Access to secretsline 3298
[Credential-related source omitted] - Access to secretsline 3313
[Credential-related source omitted] - Access to secretsline 3314
[Credential-related source omitted] - Access to secretsline 3329
[Credential-related source omitted] - Access to secretsline 3342
[Credential-related source omitted] - Access to secretsline 3355
[Credential-related source omitted] - Access to secretsline 3360
[Credential-related source omitted]
scripts/store_longevity_mirror.py
scripts/store_longevity_source.py
- Executable scriptline 1
Executable file - Network accessline 14
DATASET_ID = "15083033" DATASET_PAGE = f"https://www.data.go.kr/data/{DATASET_ID}/fileData.do" - Network accessline 15
DATASET_PAGE = f"https://www.data.go.kr/data/{DATASET_ID}/fileData.do" - Network accessline 16
RENDERED_DATASET_PAGE = f"https://r.jina.ai/{DATASET_PAGE}" - Network accessline 17
DOWNLOAD_URL = "https://www.data.go.kr/cmm/cmm/fileDownload.do?atchFileId={file_id}&fileDetailSn=1" - Network accessline 48
if headers: request_headers.update(headers) req = urllib.request.Request(url, headers=request_headers) - Network accessline 49
request_headers.update(headers) req = urllib.request.Request(url, headers=request_headers) response: BinaryResponse = urllib.request.urlopen(req, timeout=timeout) - Network accessline 50
req = urllib.request.Request(url, headers=request_headers) - Network accessline 51
response: BinaryResponse = urllib.request.urlopen(req, timeout=timeout) - Network accessline 80
for url, headers in attempts: try: return extract_file_id(fetch(url, headers)) - Network accessline 81
try: return extract_file_id(fetch(url, headers)) except (MirrorError, TimeoutError, urllib.error.URLError) as exc: - Network accessline 82
return extract_file_id(fetch(url, headers))
scripts/subway_lost_property.py
scripts/sync-cli-skills.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/test-kpic-drug-search.test.js
- Executable scriptline 1
Executable file - Network accessline 10
const records = [ { drug_code: "001", drug_name: "타이레놀", drug_enm: "Tylenol", new_field: { raw: [null, "한글"] } }, { drug_code: "002", drug_name: "Tylenol ER", pack_img: "https://example.invalid/약.png" }, - Network accessline 11
{ drug_code: "001", drug_name: "타이레놀", drug_enm: "Tylenol", new_field: { raw: [null, "한글"] } }, { drug_code: "002", drug_name: "Tylenol ER", pack_img: "https://example.invalid/약.png" }, { drug_code: "003", drug_name: "타이레놀정", price: 0 } - Network accessline 12
{ drug_code: "002", drug_name: "Tylenol ER", pack_img: "https://example.invalid/약.png" },
scripts/test_animal_pharmacy_mcp.py
- Executable scriptline 1
Executable file
scripts/test_build_manus_bundle.js
- Executable scriptline 1
Executable file
scripts/test_daangn_realty.py
- Executable scriptline 1
Executable file - Network accessline 102
def test_parse_detail_handles_missing_graph_and_extracts_floor(self): html = """ <script type="application/ld+json">{"@context":"https://schema.org","@graph":null}</script> - Network accessline 103
html = """ <script type="application/ld+json">{"@context":"https://schema.org","@graph":null}</script> <script type="application/ld+json"> - Network accessline 104
<script type="application/ld+json">{"@context":"https://schema.org","@graph":null}</script> - Network accessline 117
with mock.patch.object(daangn_realty, "fetch_text", return_value=html): detail = daangn_realty.parse_detail("https://realty.daangn.com/articles/123") - Network accessline 118
detail = daangn_realty.parse_detail("https://realty.daangn.com/articles/123") - Network accessline 133
with mock.patch.object(daangn_realty, "fetch_text", return_value=html): detail = daangn_realty.parse_detail("https://realty.daangn.com/articles/456") - Network accessline 134
detail = daangn_realty.parse_detail("https://realty.daangn.com/articles/456") - Network accessline 148
with mock.patch.object(daangn_realty, "fetch_text", return_value=html): detail = daangn_realty.parse_detail("https://realty.daangn.com/articles/789") - Network accessline 149
detail = daangn_realty.parse_detail("https://realty.daangn.com/articles/789")
scripts/test_danawa_price_search.py
- Executable scriptline 1
Executable file - Network accessline 35
return_value={ "pcode": "75001853", "source_url": "https://prod.danawa.com/info/?pcode=75001853", - Network accessline 36
"pcode": "75001853", "source_url": "https://prod.danawa.com/info/?pcode=75001853", "sProductFullName": "테스트 상품", - Network accessline 37
"source_url": "https://prod.danawa.com/info/?pcode=75001853", - Network accessline 144
return_value={ "pcode": "75001853", "source_url": "https://prod.danawa.com/info/?pcode=75001853", - Network accessline 145
"pcode": "75001853", "source_url": "https://prod.danawa.com/info/?pcode=75001853", "sProductFullName": "테스트 상품", - Network accessline 146
"source_url": "https://prod.danawa.com/info/?pcode=75001853",
scripts/test_fine_dust.py
- Executable scriptline 1
Executable file - Access to secretsline 193
[Credential-related source omitted] - Access to secretsline 244
[Credential-related source omitted] - Network accessline 270
with ( redirect_stdout(stdout), mock.patch.dict(fine_dust.os.environ, {"KSKILL_PROXY_BASE_URL": "https://k-skill-proxy.nomadamas.org"}), - Network accessline 271
redirect_stdout(stdout), mock.patch.dict(fine_dust.os.environ, {"KSKILL_PROXY_BASE_URL": "https://k-skill-proxy.nomadamas.org"}), mock.patch.object(fine_dust, "fetch_proxy_report", return_value=proxy_report), - Network accessline 272
[Credential-related source omitted] - Access to secretsline 272
[Credential-related source omitted]
scripts/test_g2b_order_plan.py
- Executable scriptline 1
Executable file - Network accessline 53
payload = search_order_plans( {"kind": "service", "keyword": "청소"}, base_url="https://proxy.example.com/", - Network accessline 54
{"kind": "service", "keyword": "청소"}, base_url="https://proxy.example.com/", read_json=fake_read_json, - Network accessline 55
base_url="https://proxy.example.com/", - Network accessline 59
self.assertEqual(payload["items"][0]["bizNm"], "청소 용역") self.assertEqual(captured["method"], "GET") self.assertTrue(captured["url"].startswith("https://proxy.example.com/v1/g2b/order-plans?")) - Network accessline 60
self.assertEqual(captured["method"], "GET") self.assertTrue(captured["url"].startswith("https://proxy.example.com/v1/g2b/order-plans?")) self.assertIn("k-skill-g2b-order-plan-search", captured["headers"]["User-agent"]) - Network accessline 61
self.assertTrue(captured["url"].startswith("https://proxy.example.com/v1/g2b/order-plans?")) - Network accessline 66
def test_resolve_proxy_base_url_defaults_to_hosted_proxy(self): self.assertEqual(resolve_proxy_base_url(None, env={}), "https://k-skill-proxy.nomadamas.org") - Network accessline 67
self.assertEqual(resolve_proxy_base_url(None, env={}), "https://k-skill-proxy.nomadamas.org") - Network accessline 68
self.assertEqual(resolve_proxy_base_url(None, env={"KSKILL_PROXY_BASE_URL": "https://proxy.example.com/"}), "https://proxy.example.com")
scripts/test_geeknews_search.py
- Executable scriptline 1
Executable file - Network accessline 28
self.assertEqual(feed.title, "GeekNews - 개발/기술/스타트업 뉴스 서비스") self.assertEqual(feed.updated, "2026-04-12T22:53:56+09:00") self.assertEqual(feed.home_url, "https://news.hada.io") - Network accessline 29
self.assertEqual(feed.updated, "2026-04-12T22:53:56+09:00") self.assertEqual(feed.home_url, "https://news.hada.io") self.assertEqual(feed.feed_url, "https://news.hada.io/rss/news") - Network accessline 30
self.assertEqual(feed.home_url, "https://news.hada.io") - Network accessline 31
self.assertEqual(feed.feed_url, "https://news.hada.io/rss/news") - Network accessline 34
first = feed.items[0] self.assertEqual(first.title, "Ask GN: 기억이 안나는 웹사이트를 찾고 있습니다.") self.assertEqual(first.link, "https://news.hada.io/topic?id=28441") - Network accessline 35
self.assertEqual(first.title, "Ask GN: 기억이 안나는 웹사이트를 찾고 있습니다.") self.assertEqual(first.link, "https://news.hada.io/topic?id=28441") self.assertEqual(first.id, "https://news.hada.io/topic?id=28441") - Network accessline 36
self.assertEqual(first.link, "https://news.hada.io/topic?id=28441") - Network accessline 37
self.assertEqual(first.id, "https://news.hada.io/topic?id=28441") - Network accessline 38
self.assertEqual(first.author_name, "princox") self.assertEqual(first.author_url, "https://news.hada.io/user/princox") self.assertEqual(first.published, "2026-04-12T22:53:56+09:00") - Network accessline 39
self.assertEqual(first.author_url, "https://news.hada.io/user/princox") - Network accessline 50
self.assertEqual([item.id for item in items], [ "https://news.hada.io/topic?id=28441", - Network accessline 51
"https://news.hada.io/topic?id=28441", - Network accessline 52
"https://news.hada.io/topic?id=28440", - Network accessline 61
self.assertEqual([item.id for item in ai_matches], ["https://news.hada.io/topic?id=28440"]) - Network accessline 62
self.assertEqual([item.id for item in author_matches], ["https://news.hada.io/topic?id=28439"]) - Network accessline 67
item = get_item_detail(feed, "https://news.hada.io/topic?id=28439") - Network accessline 86
self.assertEqual(search_payload["query"], "claude") self.assertEqual(search_payload["count"], 1) self.assertEqual(detail_payload["item"]["id"], "https://news.hada.io/topic?id=28439") - Network accessline 87
self.assertEqual(search_payload["count"], 1) self.assertEqual(detail_payload["item"]["id"], "https://news.hada.io/topic?id=28439") self.assertIn("summary", detail_payload["item"]) - Network accessline 88
self.assertEqual(detail_payload["item"]["id"], "https://news.hada.io/topic?id=28439")
scripts/test_generate_plugin_manifest.js
- Executable scriptline 1
Executable file
scripts/test_k_skill_cleaner.py
- Executable scriptline 1
Executable file
scripts/test_komsa_ferry_info.py
- Executable scriptline 1
Executable file - Network accessline 22
"schedules", {"date": "20260824", "vessel": "섬사랑12호", "limit": "5"}, base_url="https://proxy.example.com/", - Network accessline 23
{"date": "20260824", "vessel": "섬사랑12호", "limit": "5"}, base_url="https://proxy.example.com/", read_json=fake_read_json, - Network accessline 24
base_url="https://proxy.example.com/", - Network accessline 33
def test_proxy_base_defaults_and_rejects_disabled(self): self.assertEqual(module.proxy_base_url(None, {}), "https://k-skill-proxy.nomadamas.org") - Network accessline 34
self.assertEqual(module.proxy_base_url(None, {}), "https://k-skill-proxy.nomadamas.org")
scripts/test_korean_character_count.js
- Executable scriptline 1
Executable file
scripts/test_korean_heritage_search.py
- Executable scriptline 1
Executable file - Network accessline 47
<ccbaLcad><![CDATA[서울 중구 세종대로 40]]></ccbaLcad> <ccbaAdmin><![CDATA[국가유산청 덕수궁관리소]]></ccbaAdmin> <imageUrl>http://www.khs.go.kr/image.jpg</imageUrl> - Network accessline 48
<ccbaAdmin><![CDATA[국가유산청 덕수궁관리소]]></ccbaAdmin> <imageUrl>http://www.khs.go.kr/image.jpg</imageUrl> <content><![CDATA[조선시대 한양도성의 정문이다.]]></content> - Network accessline 49
<imageUrl>http://www.khs.go.kr/image.jpg</imageUrl> - Network accessline 70
<gugun>종로구</gugun> <subDesc>경복궁</subDesc> <subPath>https://example.com/event</subPath> - Network accessline 71
<subDesc>경복궁</subDesc> <subPath>https://example.com/event</subPath> </item> - Network accessline 72
<subPath>https://example.com/event</subPath> - Network accessline 125
self.assertEqual(events["returned_count"], 1) self.assertEqual(events["items"][0]["description"], "서울에서 열리는 행사") self.assertEqual(events["items"][0]["url"], "https://example.com/event") - Network accessline 127
self.assertEqual(events["items"][0]["url"], "https://example.com/event") - Network accessline 136
with patch("korean_heritage_search.urllib.request.urlopen", return_value=response) as urlopen:
scripts/test_korean_law_amendment_table.js
- Executable scriptline 1
Executable file - Network accessline 465
const requests = []; const server = http.createServer((req, res) => { const url = new URL(req.url, "http://x"); - Network accessline 466
const server = http.createServer((req, res) => { const url = new URL(req.url, "http://x"); requests.push({ path: url.pathname, query: Object.fromEntries(url.searchParams) }); - Network accessline 467
const url = new URL(req.url, "http://x"); requests.push({ path: url.pathname, query: Object.fromEntries(url.searchParams) }); const out = handler(url); - Network accessline 468
requests.push({ path: url.pathname, query: Object.fromEntries(url.searchParams) }); - Network accessline 472
}); return new Promise((resolve) => server.listen(0, "127.0.0.1", () => resolve({ base: `http://127.0.0.1:${server.address().port}`, requests, close: () => new Promise((r) => server.close(r)), - Network accessline 473
return new Promise((resolve) => server.listen(0, "127.0.0.1", () => resolve({ base: `http://127.0.0.1:${server.address().port}`, requests, close: () => new Promise((r) => server.close(r)), }))); - Network accessline 474
base: `http://127.0.0.1:${server.address().port}`, requests, close: () => new Promise((r) => server.close(r)), - Network accessline 501
const json = await client.getLawJson({ mst: "273437", jo: "002200" }); assert.equal(json.법령.조문.조문단위.조문번호, "22"); assert.deepEqual(proxy.requests.map((r) => r.path), ["/v1/korean-law/search", "/v1/korean-law/detail"]); - Network accessline 502
assert.equal(json.법령.조문.조문단위.조문번호, "22"); assert.deepEqual(proxy.requests.map((r) => r.path), ["/v1/korean-law/search", "/v1/korean-law/detail"]); assert.deepEqual(proxy.requests[0].query, { target: "law", query: "건축법", type: "J - Network accessline 503
assert.deepEqual(proxy.requests.map((r) => r.path), ["/v1/korean-law/search", "/v1/korean-law/detail"]); - Network accessline 529
await assert.rejects(createProxyClient({ baseUrl: bad.base }).searchLaws("건축법"), /upstream_unstable|502/); await assert.rejects(createProxyClient({ baseUrl: html.base }).getLawJson({ mst: "1", jo: "000100" }), /JSON/); await ass - Network accessline 530
await assert.rejects(createProxyClient({ baseUrl: html.base }).getLawJson({ mst: "1", jo: "000100" }), /JSON/); await assert.rejects(createProxyClient({ baseUrl: "http://127.0.0.1:9" }).searchLaws("건축법"), /proxy|fetch|ECONN/i); } - Network accessline 531
await assert.rejects(createProxyClient({ baseUrl: "http://127.0.0.1:9" }).searchLaws("건축법"), /proxy|fetch|ECONN/i); - Network accessline 571
assert.equal(entries[0].name, "mimetype"); assert.match(entries.find((e) => e.name === "Contents/section0.xml").data.toString(), /공사완료도서/); assert.deepEqual(proxy.requests.map((q) => q.path), ["/v1/korean-law/search", "/v1/korea - Network accessline 572
assert.match(entries.find((e) => e.name === "Contents/section0.xml").data.toString(), /공사완료도서/); assert.deepEqual(proxy.requests.map((q) => q.path), ["/v1/korean-law/search", "/v1/korean-law/detail"]); } finally { await proxy.clos - Network accessline 573
assert.deepEqual(proxy.requests.map((q) => q.path), ["/v1/korean-law/search", "/v1/korean-law/detail"]); - Network accessline 579
const input = path.join(dir, "in.json"); fs.writeFileSync(input, JSON.stringify({ title: "복무 조례 일부개정조례안", amendments: [{ currentText: "제3조(근무시간) 근무시간은 9시부터 18시까지로 한다.", text: "제3조(근무시간) 근무시간은 8시부터 17시까지로 한다." }] })); const r = run([ - Network accessline 580
fs.writeFileSync(input, JSON.stringify({ title: "복무 조례 일부개정조례안", amendments: [{ currentText: "제3조(근무시간) 근무시간은 9시부터 18시까지로 한다.", text: "제3조(근무시간) 근무시간은 8시부터 17시까지로 한다." }] })); const r = run(["--input", input, "--output", "~/바탕/대비표.hwpx" - Network accessline 581
const r = run(["--input", input, "--output", "~/바탕/대비표.hwpx"], { env: { HOME: dir, KSKILL_PROXY_BASE_URL: "http://127.0.0.1:9" } });
scripts/test_korean_middle_korean.js
- Executable scriptline 1
Executable file - Network accessline 56
test("converter preserves URLs, emails, Markdown links, and code spans unchanged", () => { const input = [ "https://example.com에서 확인했다.", - Network accessline 57
const input = [ "https://example.com에서 확인했다.", "contact@example.com은 말했다.", - Network accessline 58
"https://example.com에서 확인했다.", - Network accessline 59
"contact@example.com은 말했다.", "[학교에서 보기](https://example.com/학교에서)은 유지했다.", "`학교에서` 테스트했다.", - Network accessline 60
"[학교에서 보기](https://example.com/학교에서)은 유지했다.",
scripts/test_korean_slang_writing.py
- Executable scriptline 1
Executable file - Network accessline 51
safety: str = "safe", example_usage=None, namuwiki_url: str = "https://namu.wiki/w/test", - Network accessline 52
example_usage=None, namuwiki_url: str = "https://namu.wiki/w/test", era: str = "2020", - Network accessline 53
namuwiki_url: str = "https://namu.wiki/w/test", - Network accessline 115
self.assertIn(entry["intensity"], {"subtle", "medium", "strong"}) self.assertIn(entry["safety"], {"safe", "spicy", "risky"}) self.assertTrue(entry["namuwiki_url"].startswith("https://namu.wiki/")) - Network accessline 117
self.assertTrue(entry["namuwiki_url"].startswith("https://namu.wiki/")) - Network accessline 131
prefix = "https://namu.wiki/w/" - Network accessline 726
with mock.patch.object(slang_lookup, "fetch_page", side_effect=fake_fetch): result = slang_lookup.lookup( term_or_url="https://namu.wiki/w/test", timeout=5, max_length=1500 - Network accessline 727
result = slang_lookup.lookup( term_or_url="https://namu.wiki/w/test", timeout=5, max_length=1500 ) - Network accessline 728
term_or_url="https://namu.wiki/w/test", timeout=5, max_length=1500 - Network accessline 740
with mock.patch.object(slang_lookup, "fetch_page", side_effect=fake_fetch): result = slang_lookup.lookup( term_or_url="https://namu.wiki/w/test", timeout=5, max_length=1500 - Network accessline 741
result = slang_lookup.lookup( term_or_url="https://namu.wiki/w/test", timeout=5, max_length=1500 ) - Network accessline 742
term_or_url="https://namu.wiki/w/test", timeout=5, max_length=1500 - Network accessline 760
self.assertTrue(captured["url"].startswith("https://namu.wiki/w/")) - Network accessline 767
def test_build_namuwiki_url_encodes_korean_title(self) -> None: url = slang_http.build_namuwiki_url("중꺾마") self.assertTrue(url.startswith("https://namu.wiki/w/")) - Network accessline 768
url = slang_http.build_namuwiki_url("중꺾마") self.assertTrue(url.startswith("https://namu.wiki/w/")) expected_suffix = urllib.parse.quote("중꺾마", safe="/") - Network accessline 769
self.assertTrue(url.startswith("https://namu.wiki/w/")) expected_suffix = urllib.parse.quote("중꺾마", safe="/") self.assertEqual(url, f"https://namu.wiki/w/{expected_suffix}") - Network accessline 770
expected_suffix = urllib.parse.quote("중꺾마", safe="/") self.assertEqual(url, f"https://namu.wiki/w/{expected_suffix}") self.assertIn("%", url) - Network accessline 771
self.assertEqual(url, f"https://namu.wiki/w/{expected_suffix}") - Network accessline 774
def test_build_namuwiki_url_leaves_existing_url_alone(self) -> None: existing = "https://namu.wiki/w/%ED%85%8C%EC%8A%A4%ED%8A%B8" - Network accessline 775
existing = "https://namu.wiki/w/%ED%85%8C%EC%8A%A4%ED%8A%B8" - Network accessline 778
def test_is_namuwiki_url_detects_namuwiki(self) -> None: self.assertTrue(slang_http.is_namuwiki_url("https://namu.wiki/w/test")) - Network accessline 779
self.assertTrue(slang_http.is_namuwiki_url("https://namu.wiki/w/test")) - Network accessline 780
self.assertTrue(slang_http.is_namuwiki_url("https://en.namu.wiki/w/test")) - Network accessline 781
self.assertFalse(slang_http.is_namuwiki_url("https://example.com/test")) - Network accessline 806
with mock.patch.object(slang_lookup, "fetch_page", side_effect=raise_blocked): argv = ["https://namu.wiki/w/test"] - Network accessline 807
argv = ["https://namu.wiki/w/test"]
scripts/test_korean_spell_check.py
scripts/test_mfds_drug_safety.py
- Executable scriptline 1
Executable file - Network accessline 70
class ProxyResolutionTest(unittest.TestCase): def test_resolve_proxy_base_url_defaults_to_hosted_proxy(self): self.assertEqual(resolve_proxy_base_url(None, env={}), "https://k-skill-proxy.nomadamas.org") - Network accessline 71
def test_resolve_proxy_base_url_defaults_to_hosted_proxy(self): self.assertEqual(resolve_proxy_base_url(None, env={}), "https://k-skill-proxy.nomadamas.org") self.assertEqual(resolve_proxy_base_url(None, env={"KSKILL_PROXY_B - Network accessline 72
self.assertEqual(resolve_proxy_base_url(None, env={}), "https://k-skill-proxy.nomadamas.org") - Network accessline 73
self.assertEqual(resolve_proxy_base_url(None, env={"KSKILL_PROXY_BASE_URL": "https://proxy.example.com/"}), "https://proxy.example.com") - Network accessline 84
payload = lookup_drugs(["타이레놀", "판콜"], limit=3, base_url="https://proxy.example.com", request_json=fake_request_json) - Network accessline 86
self.assertEqual(payload, {"items": []}) self.assertIn("https://proxy.example.com/v1/mfds/drug-safety/lookup", captured["url"]) - Network accessline 87
self.assertIn("https://proxy.example.com/v1/mfds/drug-safety/lookup", captured["url"])
scripts/test_mfds_food_safety.py
- Executable scriptline 1
Executable file - Network accessline 81
class ProxyResolutionTest(unittest.TestCase): def test_resolve_proxy_base_url_defaults_to_hosted_proxy(self): self.assertEqual(resolve_proxy_base_url(None, env={}), "https://k-skill-proxy.nomadamas.org") - Network accessline 82
def test_resolve_proxy_base_url_defaults_to_hosted_proxy(self): self.assertEqual(resolve_proxy_base_url(None, env={}), "https://k-skill-proxy.nomadamas.org") self.assertEqual(resolve_proxy_base_url(None, env={"KSKILL_PROXY_B - Network accessline 83
self.assertEqual(resolve_proxy_base_url(None, env={}), "https://k-skill-proxy.nomadamas.org") - Network accessline 84
self.assertEqual(resolve_proxy_base_url(None, env={"KSKILL_PROXY_BASE_URL": "https://proxy.example.com/"}), "https://proxy.example.com") - Network accessline 95
payload = search_food_safety("김밥", limit=4, base_url="https://proxy.example.com", request_json=fake_request_json) - Network accessline 97
self.assertEqual(payload, {"items": [], "warnings": []}) self.assertIn("https://proxy.example.com/v1/mfds/food-safety/search", captured["url"]) - Network accessline 98
self.assertIn("https://proxy.example.com/v1/mfds/food-safety/search", captured["url"])
scripts/test_myrealtrip_mcp.py
- Executable scriptline 1
Executable file
scripts/test_naver_ad_performance.py
- Executable scriptline 1
Executable file - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Access to secretsline 123
[Credential-related source omitted] - Access to secretsline 129
[Credential-related source omitted] - Access to secretsline 130
[Credential-related source omitted]
scripts/test_naver_blog_search.py
- Executable scriptline 1
Executable file - Network accessline 14
def make_result(index: int) -> dict[str, str]: return { "url": f"https://blog.naver.com/author{index}/{200000000000 + index}", - Network accessline 15
return { "url": f"https://blog.naver.com/author{index}/{200000000000 + index}", "mobile_url": f"https://m.blog.naver.com/author{index}/{200000000000 + index}", - Network accessline 16
"url": f"https://blog.naver.com/author{index}/{200000000000 + index}", - Network accessline 17
"mobile_url": f"https://m.blog.naver.com/author{index}/{200000000000 + index}", - Network accessline 40
def make_anchor(user_id: str, post_id: str, inner_html: str) -> str: return f'<a href="https://blog.naver.com/{user_id}/{post_id}" class="link">{inner_html}</a>' - Network accessline 41
return f'<a href="https://blog.naver.com/{user_id}/{post_id}" class="link">{inner_html}</a>'
scripts/test_nts_business_registration.py
- Executable scriptline 1
Executable file - Network accessline 104
payload = query_status(["123-45-67890"], base_url="https://proxy.example.com", read_json=fake_read_json) - Network accessline 106
self.assertEqual(payload["data"][0]["b_stt"], "계속사업자") self.assertEqual(captured["url"], "https://proxy.example.com/v1/nts-business/status") - Network accessline 107
self.assertEqual(captured["url"], "https://proxy.example.com/v1/nts-business/status") - Network accessline 119
payload = validate_businesses( [{"b_no": "1234567890", "start_dt": "20200101", "p_nm": "홍길동"}], base_url="https://proxy.example.com/", - Network accessline 120
[{"b_no": "1234567890", "start_dt": "20200101", "p_nm": "홍길동"}], base_url="https://proxy.example.com/", read_json=fake_read_json, - Network accessline 121
base_url="https://proxy.example.com/", - Network accessline 125
self.assertEqual(payload["data"][0]["valid"], "01") self.assertEqual(captured["url"], "https://proxy.example.com/v1/nts-business/validate") - Network accessline 126
self.assertEqual(captured["url"], "https://proxy.example.com/v1/nts-business/validate") - Network accessline 129
def test_resolve_proxy_base_url_defaults_to_hosted_proxy(self): self.assertEqual(resolve_proxy_base_url(None, env={}), "https://k-skill-proxy.nomadamas.org") - Network accessline 130
self.assertEqual(resolve_proxy_base_url(None, env={}), "https://k-skill-proxy.nomadamas.org") - Network accessline 131
self.assertEqual(resolve_proxy_base_url(None, env={"KSKILL_PROXY_BASE_URL": "https://proxy.example.com/"}), "https://proxy.example.com")
scripts/test_ohou_today_deal.py
- Executable scriptline 1
Executable file - Network accessline 37
"id": "1215312", "name": "디아망 방수러그", "imageUrl": "https://example.com/rug.png", - Network accessline 38
"name": "디아망 방수러그", "imageUrl": "https://example.com/rug.png", "isSoldOut": False, - Network accessline 39
"imageUrl": "https://example.com/rug.png", - Network accessline 98
self.assertEqual(first.best_discount_rate, 47) self.assertTrue(first.free_delivery) self.assertEqual(first.url, "https://ohou.se/productions/1215312/selling") - Network accessline 100
self.assertEqual(first.url, "https://ohou.se/productions/1215312/selling")
scripts/test_patent_search.py
- Executable scriptline 1
Executable file - Network accessline 43
<publicationDate>2025/07/09 00:00:00</publicationDate> <astrtCont>배터리 수명 향상을 위한 열 관리 구조.</astrtCont> <bigDrawing>http://example.com/big.png</bigDrawing> - Network accessline 44
<astrtCont>배터리 수명 향상을 위한 열 관리 구조.</astrtCont> <bigDrawing>http://example.com/big.png</bigDrawing> <drawing>http://example.com/thumb.png</drawing> - Network accessline 45
<bigDrawing>http://example.com/big.png</bigDrawing> - Network accessline 46
<drawing>http://example.com/thumb.png</drawing> - Network accessline 86
<applicantName>주식회사 오픈에이아이코리아</applicantName> <astrtCont>배터리 수명 향상을 위한 열 관리 구조.</astrtCont> <drawing>http://example.com/thumb.png</drawing> - Network accessline 87
<astrtCont>배터리 수명 향상을 위한 열 관리 구조.</astrtCont> <drawing>http://example.com/thumb.png</drawing> <bigDrawing>http://example.com/big.png</bigDrawing> - Network accessline 88
<drawing>http://example.com/thumb.png</drawing> - Network accessline 89
<bigDrawing>http://example.com/big.png</bigDrawing> - Network accessline 128
self.assertEqual(detail.invention_title, "이차 전지 배터리 팩") self.assertEqual(detail.register_status, "공개") self.assertEqual(detail.big_drawing, "http://example.com/big.png") - Network accessline 130
self.assertEqual(detail.big_drawing, "http://example.com/big.png") - Access to secretsline 174
[Credential-related source omitted] - Access to secretsline 175
[Credential-related source omitted] - Network accessline 198
with mock.patch("urllib.request.urlopen", side_effect=fake_urlopen): - Network accessline 199
fetch_xml( "https://example.test/patent", build_search_params(query="배터리", service_key=resolve_service_key("abc%2Bdef%3D%3D")), - Network accessline 200
"https://example.test/patent", - Network accessline 230
with mock.patch("urllib.request.urlopen", side_effect=fake_urlopen): - Network accessline 231
fetch_xml( "https://example.test/patent", build_search_params(query="배터리", service_key="abc%2Bdef%3D%3D"), - Network accessline 232
"https://example.test/patent", - Network accessline 258
with mock.patch("urllib.request.urlopen", side_effect=fake_urlopen): - Network accessline 259
fetch_xml( "https://example.test/patent", build_detail_params(application_number="1020240001234", service_key="abc%2Bdef%3D%3D"), - Network accessline 260
"https://example.test/patent", - Network accessline 339
abstract_text="배터리 수명 향상을 위한 열 관리 구조.", applicant_name="주식회사 오픈에이아이코리아", drawing="http://example.com/thumb.png", - Network accessline 340
applicant_name="주식회사 오픈에이아이코리아", drawing="http://example.com/thumb.png", big_drawing="http://example.com/big.png", - Network accessline 341
drawing="http://example.com/thumb.png", - Network accessline 342
big_drawing="http://example.com/big.png", - Access to secretsline 353
[Credential-related source omitted] - Access to secretsline 359
[Credential-related source omitted]
scripts/test_railway_timetable.py
- Executable scriptline 1
Executable file - Network accessline 34
"trains": [{"train_no": "601", "dep_time": "05:08"}], "source": {"operator": "한국철도공사"}, "booking_url": "https://www.korail.com/ticket/search", - Network accessline 35
"source": {"operator": "한국철도공사"}, "booking_url": "https://www.korail.com/ticket/search", } - Network accessline 36
"booking_url": "https://www.korail.com/ticket/search",
scripts/test_run_kamis.py
- Executable scriptline 1
Executable file - Network accessline 36
[Credential-related source omitted] - Network accessline 37
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Network accessline 38
with mock.patch("urllib.request.urlopen", return_value=FakeResponse(payload)): - Access to secretsline 49
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted]
scripts/test_saju_fortune_skill.js
- Executable scriptline 1
Executable file
scripts/test_seoul_bike.py
- Executable scriptline 1
Executable file - Network accessline 145
def test_proxy_base_url_defaults_to_hosted_proxy(self): with mock.patch.dict(seoul_bike.os.environ, {}, clear=True): self.assertEqual(seoul_bike.get_proxy_base_url(), "https://k-skill-proxy.nomadamas.org") - Access to secretsline 146
[Credential-related source omitted] - Network accessline 147
self.assertEqual(seoul_bike.get_proxy_base_url(), "https://k-skill-proxy.nomadamas.org")
scripts/test_seoul_density.py
- Executable scriptline 1
Executable file - Access to secretsline 143
[Credential-related source omitted] - Network accessline 146
def test_proxy_base_url_custom_strips_trailing_slash(self) -> None: with mock.patch.dict("os.environ", {"KSKILL_PROXY_BASE_URL": "https://example.com/"}, clear=True): - Network accessline 147
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted] - Network accessline 148
self.assertEqual(sd.get_proxy_base_url(), "https://example.com")
scripts/test_sillok_search.py
- Executable scriptline 1
Executable file - Network accessline 149
self.assertEqual(len(report.items), 2) self.assertEqual(report.items[0].article_id, "kda_12512030_002") self.assertEqual(report.items[0].url, "https://sillok.history.go.kr/id/kda_12512030_002") - Network accessline 150
self.assertEqual(report.items[0].article_id, "kda_12512030_002") self.assertEqual(report.items[0].url, "https://sillok.history.go.kr/id/kda_12512030_002") self.assertEqual(report.items[0].king, "세종") - Network accessline 151
self.assertEqual(report.items[0].url, "https://sillok.history.go.kr/id/kda_12512030_002") - Network accessline 225
html_text = fetch_text( None, "https://sillok.history.go.kr/search/searchResultList.do", - Network accessline 226
None, "https://sillok.history.go.kr/search/searchResultList.do", data={"topSearchWord": "훈민정음"}, - Network accessline 227
"https://sillok.history.go.kr/search/searchResultList.do", - Network accessline 252
html_text = fetch_text( opener, "https://sillok.history.go.kr/search/searchResultList.do", - Network accessline 253
opener, "https://sillok.history.go.kr/search/searchResultList.do", data={"topSearchWord": "훈민정음"}, - Network accessline 254
"https://sillok.history.go.kr/search/searchResultList.do", - Network accessline 266
SearchResult( article_id=f"page1_{index}", url=f"https://sillok.history.go.kr/id/page1_{index}", - Network accessline 267
article_id=f"page1_{index}", url=f"https://sillok.history.go.kr/id/page1_{index}", title=f"정조실록 {index} / 다른 기사", - Network accessline 268
url=f"https://sillok.history.go.kr/id/page1_{index}", - Network accessline 278
matching_item = SearchResult( article_id="kda_12512030_002", url="https://sillok.history.go.kr/id/kda_12512030_002", - Network accessline 279
article_id="kda_12512030_002", url="https://sillok.history.go.kr/id/kda_12512030_002", title="세종실록 102권, 세종 25년 12월 30일 / 훈민정음을 창제하다", - Network accessline 280
url="https://sillok.history.go.kr/id/kda_12512030_002", - Network accessline 292
detail = ArticleDetail( article_id="kda_12512030_002", url="https://sillok.history.go.kr/id/kda_12512030_002", - Network accessline 293
article_id="kda_12512030_002", url="https://sillok.history.go.kr/id/kda_12512030_002", header="세종실록102권, 세종 25년 12월 30일 경술 2/2 기사 / 1443년 명 정통(正統) 8년", - Network accessline 294
url="https://sillok.history.go.kr/id/kda_12512030_002",
scripts/test_store_longevity_mirror.py
- Executable scriptline 1
Executable file - Network accessline 88
def test_invalid_explicit_file_id_is_rejected(self): with self.assertRaises(source.MirrorError): source.resolve_source_file_id("https://attacker.example/file.zip") - Network accessline 90
source.resolve_source_file_id("https://attacker.example/file.zip") - Network accessline 97
with mock.patch("scripts.store_longevity_mirror.subprocess.run") as run: mirror.download_source_snapshot( "https://example.test/source.zip", - Network accessline 98
mirror.download_source_snapshot( "https://example.test/source.zip", destination, - Network accessline 99
"https://example.test/source.zip", - Network accessline 121
"--output", str(destination), "https://example.test/source.zip", - Network accessline 122
str(destination), "https://example.test/source.zip", ], - Network accessline 123
"https://example.test/source.zip", - Network accessline 132
), self.assertRaisesRegex(source.MirrorError, "source download failed"): mirror.download_source_snapshot( "https://example.test/source.zip", - Network accessline 133
mirror.download_source_snapshot( "https://example.test/source.zip", Path("/tmp/source.zip"), - Network accessline 134
"https://example.test/source.zip", - Network accessline 144
manifest = mirror.build_manifest( source_file_id="FILE_000000003676619", public_base_url="https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev", - Network accessline 145
source_file_id="FILE_000000003676619", public_base_url="https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev", prefix="store-longevity-radar", - Network accessline 146
public_base_url="https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev", - Network accessline 156
manifest["object_url"], ( "https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/" - Network accessline 157
( "https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/" "store-longevity-radar/objects/FILE_000000003676619.zip" - Network accessline 158
"https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/"
scripts/test_subway_lost_property.py
- Executable scriptline 1
Executable file - Network accessline 64
self.assertEqual(command[command.index("--max-time") + 1], "60") self.assertIn("--referer", command) self.assertEqual(command[command.index("--referer") + 1], "https://www.lost112.go.kr/") - Network accessline 65
self.assertIn("--referer", command) self.assertEqual(command[command.index("--referer") + 1], "https://www.lost112.go.kr/") self.assertIn("--output", command) - Network accessline 66
self.assertEqual(command[command.index("--referer") + 1], "https://www.lost112.go.kr/")
scripts/test_ticket_availability.py
- Executable scriptline 1
Executable file - Network accessline 19
def test_yes24_full_url(self): self.assertEqual( parse_url("https://ticket.yes24.com/Perf/58026"), - Network accessline 20
self.assertEqual( parse_url("https://ticket.yes24.com/Perf/58026"), ("yes24", "58026"), - Network accessline 21
parse_url("https://ticket.yes24.com/Perf/58026"), - Network accessline 25
def test_yes24_detail_view_url(self): self.assertEqual( parse_url("https://ticket.yes24.com/New/Perf/Detail/View/58026"), - Network accessline 26
self.assertEqual( parse_url("https://ticket.yes24.com/New/Perf/Detail/View/58026"), ("yes24", "58026"), - Network accessline 27
parse_url("https://ticket.yes24.com/New/Perf/Detail/View/58026"), - Network accessline 34
def test_interpark_full_url(self): self.assertEqual( parse_url("https://tickets.interpark.com/goods/26000541"), - Network accessline 35
self.assertEqual( parse_url("https://tickets.interpark.com/goods/26000541"), ("interpark", "26000541"), - Network accessline 36
parse_url("https://tickets.interpark.com/goods/26000541"), - Network accessline 49
def test_unrecognized_url_raises(self): with self.assertRaisesRegex(ValueError, "인식할 수 없습니다"): parse_url("https://example.com/foo") - Network accessline 51
parse_url("https://example.com/foo") - Network accessline 204
def test_bases_are_known_public_hosts(self): self.assertEqual(YES24_BASE, "https://ticket.yes24.com") - Network accessline 205
self.assertEqual(YES24_BASE, "https://ticket.yes24.com") - Network accessline 206
self.assertEqual(INTERPARK_BASE, "https://api-ticketfront.interpark.com")
scripts/test_zipcode_search.py
- Executable scriptline 1
Executable file
scripts/ticket_availability.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 12
Supported URLs: YES24: https://ticket.yes24.com/Perf/<perf_id> - Network accessline 13
YES24: https://ticket.yes24.com/Perf/<perf_id> - Network accessline 14
https://ticket.yes24.com/New/Perf/Detail/View/<perf_id> - Network accessline 15
yes24:<perf_id> 인터파크: https://tickets.interpark.com/goods/<goods_code> interpark:<goods_code> - Network accessline 16
인터파크: https://tickets.interpark.com/goods/<goods_code> - Network accessline 98
HEADERS_YES24 = { "User-Agent": UA, "Referer": "https://ticket.yes24.com/", - Network accessline 99
"User-Agent": UA, "Referer": "https://ticket.yes24.com/", "Content-Type": "application/x-www-form-urlencoded", - Network accessline 100
"Referer": "https://ticket.yes24.com/", - Network accessline 106
HEADERS_INTERPARK = { "User-Agent": UA, "Referer": "https://tickets.interpark.com/", - Network accessline 107
"User-Agent": UA, "Referer": "https://tickets.interpark.com/", "Accept": "application/json", - Network accessline 108
"Referer": "https://tickets.interpark.com/", - Network accessline 112
YES24_BASE = "https://ticket.yes24.com" - Network accessline 113
INTERPARK_BASE = "https://api-ticketfront.interpark.com" - Network accessline 120
def __init__(self) -> None: http = _require_httpx() self.http = http.Client( - Network accessline 121
http = _require_httpx() self.http = http.Client( headers=HEADERS_YES24, timeout=20, follow_redirects=True - Network accessline 122
self.http = http.Client( - Network accessline 250
def __init__(self) -> None: http = _require_httpx() self.http = http.Client( - Network accessline 251
http = _require_httpx() self.http = http.Client( headers=HEADERS_INTERPARK, timeout=20, follow_redirects=True - Network accessline 252
self.http = http.Client(
scripts/validate-skills.sh
- Executable scriptline 1
#!/usr/bin/env bash
scripts/workflow-actions.test.js
- Executable scriptline 1
Executable file - Network accessline 18
reviewedAt: "2026-05-22", sourceUrls: new Map([ ["actions/checkout", "https://github.com/actions/checkout/blob/v5/action.yml"], - Network accessline 19
sourceUrls: new Map([ ["actions/checkout", "https://github.com/actions/checkout/blob/v5/action.yml"], ["actions/setup-node", "https://github.com/actions/setup-node/blob/v5/action.yml"], - Network accessline 20
["actions/checkout", "https://github.com/actions/checkout/blob/v5/action.yml"], - Network accessline 21
["actions/setup-node", "https://github.com/actions/setup-node/blob/v5/action.yml"], - Network accessline 22
[ "google-github-actions/setup-gcloud", "https://github.com/google-github-actions/setup-gcloud/blob/v3/action.yml", - Network accessline 23
"google-github-actions/setup-gcloud", "https://github.com/google-github-actions/setup-gcloud/blob/v3/action.yml", ], - Network accessline 24
"https://github.com/google-github-actions/setup-gcloud/blob/v3/action.yml", - Network accessline 26
[ "googleapis/release-please-action", "https://github.com/googleapis/release-please-action/blob/v5/action.yml", - Network accessline 27
"googleapis/release-please-action", "https://github.com/googleapis/release-please-action/blob/v5/action.yml", ], - Network accessline 28
"https://github.com/googleapis/release-please-action/blob/v5/action.yml",
scripts/zipcode_search.py
seoul-bike/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/seoul-bike/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/seoul-bike/instruction.md.
seoul-bike/instruction.md
- Network accessline 15
- Python 3 표준 라이브러리만 사용한다. - optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Network accessline 15
- Python 3 표준 라이브러리만 사용한다. - optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Network accessline 16
- optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Network accessline 16
- optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted]
seoul-bike/scripts/seoul_bike.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 29
TIMEOUT_SEC = 15 PROXY_BASE_URL_NAME = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 29
TIMEOUT_SEC = 15 PROXY_BASE_URL_NAME = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 30
PROXY_BASE_URL_NAME = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" PROXY_DOWN_MSG = "설정된 k-skill-proxy 서버가 응답하지 않습니다. 잠시 후 재시도하거나 운영자에게 문의하세요." - Network accessline 30
PROXY_BASE_URL_NAME = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" PROXY_DOWN_MSG = "설정된 k-skill-proxy 서버가 응답하지 않습니다. 잠시 후 재시도하거나 운영자에게 문의하세요." - Network accessline 31
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 31
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Network accessline 44
query = urllib.parse.urlencode(params) url = f"{get_proxy_base_url()}{path}?{query}" req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-bike"}) - Network accessline 44
query = urllib.parse.urlencode(params) url = f"{get_proxy_base_url()}{path}?{query}" req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-bike"}) - Network accessline 45
url = f"{get_proxy_base_url()}{path}?{query}" req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-bike"}) with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp: - Network accessline 45
url = f"{get_proxy_base_url()}{path}?{query}" req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-bike"}) with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp: - Network accessline 46
req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-bike"}) - Network accessline 46
req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-bike"}) - Network accessline 47
with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp: - Network accessline 47
with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp:
seoul-density/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/seoul-density/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/seoul-density/instruction.md.
seoul-density/instruction.md
seoul-density/scripts/seoul_density.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 74
TIMEOUT_SEC = 10 PROXY_BASE_URL_NAME = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 74
TIMEOUT_SEC = 10 PROXY_BASE_URL_NAME = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 75
PROXY_BASE_URL_NAME = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" PROXY_DOWN_MSG = "설정된 k-skill-proxy 서버가 응답하지 않습니다. 잠시 후 재시도하거나 운영자에게 문의하세요." - Network accessline 75
PROXY_BASE_URL_NAME = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" PROXY_DOWN_MSG = "설정된 k-skill-proxy 서버가 응답하지 않습니다. 잠시 후 재시도하거나 운영자에게 문의하세요." - Network accessline 76
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 76
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 146
[Credential-related source omitted] - Access to secretsline 146
[Credential-related source omitted] - Network accessline 154
query = urllib.parse.urlencode({"area": area}) url = f"{base_url}/v1/seoul-density/citydata?{query}" req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-density"}) - Network accessline 154
query = urllib.parse.urlencode({"area": area}) url = f"{base_url}/v1/seoul-density/citydata?{query}" req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-density"}) - Network accessline 155
url = f"{base_url}/v1/seoul-density/citydata?{query}" req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-density"}) with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp: - Network accessline 155
url = f"{base_url}/v1/seoul-density/citydata?{query}" req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-density"}) with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp: - Network accessline 156
req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-density"}) - Network accessline 156
req = urllib.request.Request(url, headers={"User-Agent": "k-skill/seoul-density"}) - Network accessline 157
with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp: - Network accessline 157
with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp:
seoul-subway-arrival/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/seoul-subway-arrival/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/seoul-subway-arrival/instruction.md.
seoul-subway-arrival/instruction.md
- Network accessline 15
- optional: `jq` - optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Network accessline 15
- optional: `jq` - optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Network accessline 16
- optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Network accessline 16
- optional: `KSKILL_PROXY_BASE_URL` (self-host·별도 프록시를 쓸 때만 설정. 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다.) - Network accessline 20
- 없음. `KSKILL_PROXY_BASE_URL` 은 선택 사항이며, 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 20
- 없음. `KSKILL_PROXY_BASE_URL` 은 선택 사항이며, 비우면 기본 hosted `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 26
1. **`KSKILL_PROXY_BASE_URL` 이 있으면** 그 값을 사용한다. 2. **없거나 빈 값이면** 기본 hosted proxy `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 26
1. **`KSKILL_PROXY_BASE_URL` 이 있으면** 그 값을 사용한다. 2. **없거나 빈 값이면** 기본 hosted proxy `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 27
2. **없거나 빈 값이면** 기본 hosted proxy `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 27
2. **없거나 빈 값이면** 기본 hosted proxy `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 41
`KSKILL_PROXY_BASE_URL` 이 있으면 그 값을 사용하고, 없거나 비어 있으면 기본 hosted proxy `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 41
`KSKILL_PROXY_BASE_URL` 이 있으면 그 값을 사용하고, 없거나 비어 있으면 기본 hosted proxy `https://k-skill-proxy.nomadamas.org` 를 사용한다. - Network accessline 48
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/seoul-subway/arrival" \ - Network accessline 48
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}" curl -fsS --get "${BASE}/v1/seoul-subway/arrival" \ - Network accessline 49
curl -fsS --get "${BASE}/v1/seoul-subway/arrival" \ - Network accessline 49
curl -fsS --get "${BASE}/v1/seoul-subway/arrival" \
seoul-weather-risk/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/seoul-weather-risk/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/seoul-weather-risk/instruction.md.
seoul-weather-risk/instruction.md
- Network accessline 81
- 알 수 없는 제품이나 필터를 추측해 보정하지 않는다. - 행정동 이름을 fuzzy match하거나 모호한 후보 중 하나로 임의 선택하지 않는다. 생활권·통칭 또는 부분 이름(예: `성수동`)도 행정동으로 추측하지 않는다. helper는 로컬 reference에서 `place_id`를 해석하고 proxy에는 행정동·자치구 문자열을 보내지 않는다. - 기본 proxy origin은 `https://k-skill-proxy.no - Network accessline 81
- 알 수 없는 제품이나 필터를 추측해 보정하지 않는다. - 행정동 이름을 fuzzy match하거나 모호한 후보 중 하나로 임의 선택하지 않는다. 생활권·통칭 또는 부분 이름(예: `성수동`)도 행정동으로 추측하지 않는다. helper는 로컬 reference에서 `place_id`를 해석하고 proxy에는 행정동·자치구 문자열을 보내지 않는다. - 기본 proxy origin은 `https://k-skill-proxy.no - Network accessline 82
- 행정동 이름을 fuzzy match하거나 모호한 후보 중 하나로 임의 선택하지 않는다. 생활권·통칭 또는 부분 이름(예: `성수동`)도 행정동으로 추측하지 않는다. helper는 로컬 reference에서 `place_id`를 해석하고 proxy에는 행정동·자치구 문자열을 보내지 않는다. - 기본 proxy origin은 `https://k-skill-proxy.nomadamas.org`이다. 별도 self-host pro - Network accessline 82
- 행정동 이름을 fuzzy match하거나 모호한 후보 중 하나로 임의 선택하지 않는다. 생활권·통칭 또는 부분 이름(예: `성수동`)도 행정동으로 추측하지 않는다. helper는 로컬 reference에서 `place_id`를 해석하고 proxy에는 행정동·자치구 문자열을 보내지 않는다. - 기본 proxy origin은 `https://k-skill-proxy.nomadamas.org`이다. 별도 self-host pro - Network accessline 83
- 기본 proxy origin은 `https://k-skill-proxy.nomadamas.org`이다. 별도 self-host proxy를 쓸 때만 `KSKILL_PROXY_BASE_URL`을 HTTPS origin으로 설정한다. 값은 명령행 인수, 문서, 로그에 넣지 않는다. - Network accessline 83
- 기본 proxy origin은 `https://k-skill-proxy.nomadamas.org`이다. 별도 self-host proxy를 쓸 때만 `KSKILL_PROXY_BASE_URL`을 HTTPS origin으로 설정한다. 값은 명령행 인수, 문서, 로그에 넣지 않는다.
seoul-weather-risk/scripts/seoul_weather_risk.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 20
SKILL_BUNDLE_ID = "seoul-weather-risk" PROXY_BASE_URL_ENV = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 20
SKILL_BUNDLE_ID = "seoul-weather-risk" PROXY_BASE_URL_ENV = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 21
PROXY_BASE_URL_ENV = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" PROXY_DISABLED_VALUES = frozenset({"off", "false", "0", "disable", "disabled", "none"}) - Network accessline 21
PROXY_BASE_URL_ENV = "KSKILL_PROXY_BASE_URL" DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" PROXY_DISABLED_VALUES = frozenset({"off", "false", "0", "disable", "disabled", "none"}) - Network accessline 22
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Network accessline 22
DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org" - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted]
seoul-weather-risk/tests/test_seoul_weather_risk.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 84
[Credential-related source omitted] - Network accessline 84
[Credential-related source omitted] - Network accessline 85
[Credential-related source omitted] - Network accessline 85
[Credential-related source omitted] - Network accessline 86
[Credential-related source omitted] - Network accessline 86
[Credential-related source omitted] - Network accessline 102
@property def base_url(self): return f"http://127.0.0.1:{self.server.server_port}/" - Network accessline 102
@property def base_url(self): return f"http://127.0.0.1:{self.server.server_port}/" - Network accessline 104
return f"http://127.0.0.1:{self.server.server_port}/" - Network accessline 104
return f"http://127.0.0.1:{self.server.server_port}/" - Access to secretsline 153
[Credential-related source omitted] - Access to secretsline 153
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted] - Access to secretsline 155
[Credential-related source omitted] - Access to secretsline 155
[Credential-related source omitted] - Access to secretsline 166
[Credential-related source omitted] - Access to secretsline 166
[Credential-related source omitted] - Access to secretsline 168
[Credential-related source omitted] - Access to secretsline 168
[Credential-related source omitted] - Access to secretsline 216
[Credential-related source omitted] - Access to secretsline 216
[Credential-related source omitted] - Access to secretsline 219
[Credential-related source omitted] - Access to secretsline 219
[Credential-related source omitted] - Access to secretsline 459
[Credential-related source omitted] - Access to secretsline 459
[Credential-related source omitted] - Network accessline 468
with self.assertRaisesRegex(seoul_weather_risk.SkillError, "HTTPS"): seoul_weather_risk._api_config({ self.proxy_base_url_env: "http://example.test", - Network accessline 468
with self.assertRaisesRegex(seoul_weather_risk.SkillError, "HTTPS"): seoul_weather_risk._api_config({ self.proxy_base_url_env: "http://example.test", - Network accessline 469
seoul_weather_risk._api_config({ self.proxy_base_url_env: "http://example.test", }) - Network accessline 469
seoul_weather_risk._api_config({ self.proxy_base_url_env: "http://example.test", }) - Network accessline 470
self.proxy_base_url_env: "http://example.test", - Network accessline 470
self.proxy_base_url_env: "http://example.test", - Network accessline 476
with self.assertRaisesRegex(seoul_weather_risk.SkillError, "origin"): seoul_weather_risk._api_config({ self.proxy_base_url_env: "https://api.example.test/untrusted-path", - Network accessline 476
with self.assertRaisesRegex(seoul_weather_risk.SkillError, "origin"): seoul_weather_risk._api_config({ self.proxy_base_url_env: "https://api.example.test/untrusted-path", - Network accessline 477
seoul_weather_risk._api_config({ self.proxy_base_url_env: "https://api.example.test/untrusted-path", }) - Network accessline 477
seoul_weather_risk._api_config({ self.proxy_base_url_env: "https://api.example.test/untrusted-path", }) - Network accessline 478
self.proxy_base_url_env: "https://api.example.test/untrusted-path", - Network accessline 478
self.proxy_base_url_env: "https://api.example.test/untrusted-path", - Network accessline 677
[Credential-related source omitted] - Network accessline 677
[Credential-related source omitted] - Access to secretsline 677
[Credential-related source omitted] - Access to secretsline 677
[Credential-related source omitted] - Network accessline 678
[Credential-related source omitted] - Network accessline 678
[Credential-related source omitted] - Access to secretsline 678
[Credential-related source omitted] - Access to secretsline 678
[Credential-related source omitted] - Network accessline 679
[Credential-related source omitted] - Network accessline 679
[Credential-related source omitted] - Access to secretsline 679
[Credential-related source omitted] - Access to secretsline 679
[Credential-related source omitted] - Access to secretsline 680
[Credential-related source omitted] - Access to secretsline 680
[Credential-related source omitted]
sh-notice-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/sh-notice-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/sh-notice-search/instruction.md.
sh-notice-search/instruction.md
- Network accessline 31
- default rent list: `https://www.i-sh.co.kr/app/lay2/program/S1T294C297/www/brd/m_247/list.do?multi_itm_seq=2` - Network accessline 31
- default rent list: `https://www.i-sh.co.kr/app/lay2/program/S1T294C297/www/brd/m_247/list.do?multi_itm_seq=2` - Network accessline 32
- default rent detail: `https://www.i-sh.co.kr/app/lay2/program/S1T294C297/www/brd/m_247/view.do?multi_itm_seq=2&seq=<seq>` - Network accessline 32
- default rent detail: `https://www.i-sh.co.kr/app/lay2/program/S1T294C297/www/brd/m_247/view.do?multi_itm_seq=2&seq=<seq>`
sharenuri-facility-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/sharenuri-facility-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/sharenuri-facility-search/instruction.md.
sharenuri-facility-search/instruction.md
- Network accessline 5
`sharenuri-facility-search`는 행정안전부 **공유누리**(공공개방자원 포털, `https://www.eshare.go.kr`)의 로그인 없이 열려 있는 통합검색 표면을 호출해 전국 공공개방자원을 조회한다. - Network accessline 5
`sharenuri-facility-search`는 행정안전부 **공유누리**(공공개방자원 포털, `https://www.eshare.go.kr`)의 로그인 없이 열려 있는 통합검색 표면을 호출해 전국 공공개방자원을 조회한다. - Network accessline 17
2026-09-12 curl 실측으로 확인한 공개 read-only 경로다. 모두 익명 세션 쿠키만으로 동작했다. - Network accessline 17
2026-09-12 curl 실측으로 확인한 공개 read-only 경로다. 모두 익명 세션 쿠키만으로 동작했다. - Network accessline 42
- 공유누리 OPEN API (`https://www.eshare.go.kr/OpenApi/Info/index.do`): 담당자 승인제 인증키 발급 - Network accessline 42
- 공유누리 OPEN API (`https://www.eshare.go.kr/OpenApi/Info/index.do`): 담당자 승인제 인증키 발급 - Network accessline 116
- `총 0건`: 조건에 맞는 자원이 없음. 검색어를 넓히거나 필터를 해제해 재시도한다. - 시군구/대분류 응답이 JSON이 아님: 공유누리 화면 구조 변경 가능성. 공유누리 통합검색 화면(`https://www.eshare.go.kr/UserPortal/adv/unifdSearch/UnifiedSearchMainView.do`)을 브라우저로 직접 안내한다. - Network accessline 116
- `총 0건`: 조건에 맞는 자원이 없음. 검색어를 넓히거나 필터를 해제해 재시도한다. - 시군구/대분류 응답이 JSON이 아님: 공유누리 화면 구조 변경 가능성. 공유누리 통합검색 화면(`https://www.eshare.go.kr/UserPortal/adv/unifdSearch/UnifiedSearchMainView.do`)을 브라우저로 직접 안내한다. - Network accessline 117
- 시군구/대분류 응답이 JSON이 아님: 공유누리 화면 구조 변경 가능성. 공유누리 통합검색 화면(`https://www.eshare.go.kr/UserPortal/adv/unifdSearch/UnifiedSearchMainView.do`)을 브라우저로 직접 안내한다. - Network accessline 117
- 시군구/대분류 응답이 JSON이 아님: 공유누리 화면 구조 변경 가능성. 공유누리 통합검색 화면(`https://www.eshare.go.kr/UserPortal/adv/unifdSearch/UnifiedSearchMainView.do`)을 브라우저로 직접 안내한다. - Network accessline 124
- 공유누리 포털: <https://www.eshare.go.kr> - Network accessline 124
- 공유누리 포털: <https://www.eshare.go.kr> - Network accessline 125
- 통합검색 화면: <https://www.eshare.go.kr/UserPortal/adv/unifdSearch/UnifiedSearchMainView.do> - Network accessline 125
- 통합검색 화면: <https://www.eshare.go.kr/UserPortal/adv/unifdSearch/UnifiedSearchMainView.do> - Network accessline 126
- 공유누리 OPEN API 안내: <https://www.eshare.go.kr/OpenApi/Info/index.do> - Network accessline 126
- 공유누리 OPEN API 안내: <https://www.eshare.go.kr/OpenApi/Info/index.do> - Network accessline 127
- 공공데이터포털 공유누리 데이터셋: <https://www.data.go.kr/data/15077523/openapi.do>, <https://www.data.go.kr/data/15077518/openapi.do>, <https://www.data.go.kr/data/15076186/openapi.do> - Network accessline 127
- 공공데이터포털 공유누리 데이터셋: <https://www.data.go.kr/data/15077523/openapi.do>, <https://www.data.go.kr/data/15077518/openapi.do>, <https://www.data.go.kr/data/15076186/openapi.do>
sharenuri-facility-search/references/DISCLAIMER.md
- Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 7
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 타인의 표장을 자기 상품의 출처표시가 아니라 상품의 기능 또는 적용 기종을 설명하기 위해 사용하고, 실제 표시 태양도 상표 사용으로 인식될 수 없는 경우에는 상표권 침해가 아니라고 판시했습니다. 다만 이는 제3자 상표 사용을 포괄적으로 허용한다는 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 11
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)(야놀자 정보 수집 사건)은 서비스 제공자가 접근권한을 제한했는지를 보호조치·이용약관 등 객관적으로 드러난 사정을 종합해 판단해야 한다고 판시했습니다. 그 사건에서는 별도 보호조치 없이 일반 이용자가 접근할 수 있었고 이미 공개된 정보를 수집한 사정 등에 비추어 정보통신 - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht - Network accessline 13
그러나 위 판결은 크롤링을 일반적으로 허용한 판결이 아닙니다. 접근통제나 명시적 제한을 우회하는 행위, 데이터베이스의 전부·상당한 부분을 복제하거나 반복적·체계적으로 수집하여 같은 결과를 내는 행위는 별도로 판단됩니다. 특히 [저작권법 제93조](https://www.law.go.kr/법령/저작권법/제93조)는 데이터베이스제작자의 권리를 보호하며, 정보처리에 현실적 장애를 일으켜 영업을 방해하면 [형법 제314조 제2항](ht
sharenuri-facility-search/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
sharenuri-facility-search/scripts/sharenuri_search.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 20
BASE_URL = "https://www.eshare.go.kr" - Network accessline 20
BASE_URL = "https://www.eshare.go.kr" - Network accessline 23
SIGUNGU_URL = BASE_URL + "/UserPortal/comm/zip/selectsigunguList.do" CATEGORY_URL = BASE_URL + "/UserPortal/Upm/searchUserPortalRsrcCls.do" USER_AGENT = "k-skill-sharenuri-facility-search/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 23
SIGUNGU_URL = BASE_URL + "/UserPortal/comm/zip/selectsigunguList.do" CATEGORY_URL = BASE_URL + "/UserPortal/Upm/searchUserPortalRsrcCls.do" USER_AGENT = "k-skill-sharenuri-facility-search/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 24
CATEGORY_URL = BASE_URL + "/UserPortal/Upm/searchUserPortalRsrcCls.do" USER_AGENT = "k-skill-sharenuri-facility-search/0.1 (+https://github.com/NomaDamas/k-skill)" REQUEST_TIMEOUT = 20 - Network accessline 24
CATEGORY_URL = BASE_URL + "/UserPortal/Upm/searchUserPortalRsrcCls.do" USER_AGENT = "k-skill-sharenuri-facility-search/0.1 (+https://github.com/NomaDamas/k-skill)" REQUEST_TIMEOUT = 20 - Network accessline 25
USER_AGENT = "k-skill-sharenuri-facility-search/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 25
USER_AGENT = "k-skill-sharenuri-facility-search/0.1 (+https://github.com/NomaDamas/k-skill)" - Network accessline 81
if referer: headers["Referer"] = referer req = urllib.request.Request(url, data=body, headers=headers) - Network accessline 81
if referer: headers["Referer"] = referer req = urllib.request.Request(url, data=body, headers=headers) - Network accessline 82
headers["Referer"] = referer req = urllib.request.Request(url, data=body, headers=headers) try: - Network accessline 82
headers["Referer"] = referer req = urllib.request.Request(url, data=body, headers=headers) try: - Network accessline 83
req = urllib.request.Request(url, data=body, headers=headers) - Network accessline 83
req = urllib.request.Request(url, data=body, headers=headers)
sharenuri-facility-search/tests/__init__.py
sharenuri-facility-search/tests/test_sharenuri_search.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 46
self.assertEqual( item["detail_url"], "https://www.eshare.go.kr/UserPortal/Upv/UprResrcFacl/index.do" - Network accessline 46
self.assertEqual( item["detail_url"], "https://www.eshare.go.kr/UserPortal/Upv/UprResrcFacl/index.do" - Network accessline 47
item["detail_url"], "https://www.eshare.go.kr/UserPortal/Upv/UprResrcFacl/index.do" "?rsrc_no=FF20O3200420&rsrc_dcd=CPS001.002", - Network accessline 47
item["detail_url"], "https://www.eshare.go.kr/UserPortal/Upv/UprResrcFacl/index.do" "?rsrc_no=FF20O3200420&rsrc_dcd=CPS001.002", - Network accessline 48
"https://www.eshare.go.kr/UserPortal/Upv/UprResrcFacl/index.do" - Network accessline 48
"https://www.eshare.go.kr/UserPortal/Upv/UprResrcFacl/index.do"
store-longevity-radar/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/store-longevity-radar/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/store-longevity-radar/instruction.md.
store-longevity-radar/instruction.md
- Network accessline 48
- `--max-dist`: (`match` 전용) 동일 상호 허용 좌표 거리(m), 기본 150 - `--out`, `--format`: 출력 파일/형식 (csv 기본, json 가능) - `KSKILL_STORE_LONGEVITY_MIRROR_MANIFEST_URL`: 검증 미러 manifest override. 기본 `https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/store- - Network accessline 48
- `--max-dist`: (`match` 전용) 동일 상호 허용 좌표 거리(m), 기본 150 - `--out`, `--format`: 출력 파일/형식 (csv 기본, json 가능) - `KSKILL_STORE_LONGEVITY_MIRROR_MANIFEST_URL`: 검증 미러 manifest override. 기본 `https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/store- - Network accessline 50
- `KSKILL_STORE_LONGEVITY_MIRROR_MANIFEST_URL`: 검증 미러 manifest override. 기본 `https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/store-longevity-radar/latest.json` - Network accessline 50
- `KSKILL_STORE_LONGEVITY_MIRROR_MANIFEST_URL`: 검증 미러 manifest override. 기본 `https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/store-longevity-radar/latest.json` - Network accessline 86
- 데이터셋: <https://www.data.go.kr/data/15083033/fileData.do> - Network accessline 86
- 데이터셋: <https://www.data.go.kr/data/15083033/fileData.do> - Network accessline 87
- 다운로드: `https://www.data.go.kr/cmm/cmm/fileDownload.do?atchFileId=<FILE_ID>&fileDetailSn=1` (무인증) - Network accessline 87
- 다운로드: `https://www.data.go.kr/cmm/cmm/fileDownload.do?atchFileId=<FILE_ID>&fileDetailSn=1` (무인증) - Network accessline 88
- 검증 미러 manifest: <https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/store-longevity-radar/latest.json> - Network accessline 88
- 검증 미러 manifest: <https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/store-longevity-radar/latest.json>
store-longevity-radar/scripts/store_longevity_download.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 13
DATASET_PAGE = "https://www.data.go.kr/data/15083033/fileData.do" - Network accessline 13
DATASET_PAGE = "https://www.data.go.kr/data/15083033/fileData.do" - Network accessline 14
DOWNLOAD_URL = "https://www.data.go.kr/cmm/cmm/fileDownload.do?atchFileId={fid}&fileDetailSn=1" - Network accessline 14
DOWNLOAD_URL = "https://www.data.go.kr/cmm/cmm/fileDownload.do?atchFileId={fid}&fileDetailSn=1" - Network accessline 18
[Credential-related source omitted] - Network accessline 18
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Network accessline 19
"KSKILL_STORE_LONGEVITY_MIRROR_MANIFEST_URL", "https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/store-longevity-radar/latest.json", ) - Network accessline 19
"KSKILL_STORE_LONGEVITY_MIRROR_MANIFEST_URL", "https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/store-longevity-radar/latest.json", ) - Network accessline 20
"https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/store-longevity-radar/latest.json", - Network accessline 20
"https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/store-longevity-radar/latest.json", - Network accessline 28
def http_get(url, timeout=60): req = urllib.request.Request( - Network accessline 28
def http_get(url, timeout=60): req = urllib.request.Request( - Network accessline 29
req = urllib.request.Request( - Network accessline 29
req = urllib.request.Request( - Network accessline 31
headers={"User-Agent": USER_AGENT, "Accept": "*/*"}, ) return urllib.request.urlopen(req, timeout=timeout) - Network accessline 31
headers={"User-Agent": USER_AGENT, "Accept": "*/*"}, ) return urllib.request.urlopen(req, timeout=timeout) - Network accessline 33
return urllib.request.urlopen(req, timeout=timeout) - Network accessline 33
return urllib.request.urlopen(req, timeout=timeout)
store-longevity-radar/scripts/store_longevity_radar.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 10
데이터 출처: 공공데이터포털 「소상공인시장진흥공단_상가(상권)정보」 파일데이터 (https://www.data.go.kr/data/15083033/fileData.do) — 비회원 다운로드 가능. - Network accessline 10
데이터 출처: 공공데이터포털 「소상공인시장진흥공단_상가(상권)정보」 파일데이터 (https://www.data.go.kr/data/15083033/fileData.do) — 비회원 다운로드 가능. - Network accessline 11
(https://www.data.go.kr/data/15083033/fileData.do) — 비회원 다운로드 가능. - Network accessline 11
(https://www.data.go.kr/data/15083033/fileData.do) — 비회원 다운로드 가능.
store-longevity-radar/tests/test_store_longevity_radar.py
- Executable scriptline 1
Executable file - Executable scriptline 1
Executable file - Network accessline 49
zip_bytes = zip_buffer.getvalue() object_url = ( "https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/" - Network accessline 49
zip_bytes = zip_buffer.getvalue() object_url = ( "https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/" - Network accessline 50
object_url = ( "https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/" "store-longevity-radar/objects/FILE_1.zip" - Network accessline 50
object_url = ( "https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/" "store-longevity-radar/objects/FILE_1.zip" - Network accessline 51
"https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/" - Network accessline 51
"https://pub-c974105a1e4840bcaa264cb2a55d99a1.r2.dev/"
subway-lost-property/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/subway-lost-property/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/subway-lost-property/instruction.md.
subway-lost-property/instruction.md
- Network accessline 24
- LOST112 습득물 목록: `https://www.lost112.go.kr/find/findList.do` - Network accessline 24
- LOST112 습득물 목록: `https://www.lost112.go.kr/find/findList.do` - Network accessline 25
- 서울교통공사 유실물센터: `https://www.seoulmetro.co.kr/kr/page.do?menuIdx=541` - Network accessline 25
- 서울교통공사 유실물센터: `https://www.seoulmetro.co.kr/kr/page.do?menuIdx=541`
subway-lost-property/scripts/subway_lost_property.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 13
LOST112_LIST_URL = "https://www.lost112.go.kr/find/findList.do" - Network accessline 13
LOST112_LIST_URL = "https://www.lost112.go.kr/find/findList.do" - Network accessline 14
LOST112_REFERER_URL = "https://www.lost112.go.kr/" - Network accessline 14
LOST112_REFERER_URL = "https://www.lost112.go.kr/" - Network accessline 15
LOST112_OUTPUT_FILE = "lost112-search-result.html" LOST112_CURL_MAX_TIME = 60 SEOUL_METRO_LOST_CENTER_URL = "https://www.seoulmetro.co.kr/kr/page.do?menuIdx=541" - Network accessline 15
LOST112_OUTPUT_FILE = "lost112-search-result.html" LOST112_CURL_MAX_TIME = 60 SEOUL_METRO_LOST_CENTER_URL = "https://www.seoulmetro.co.kr/kr/page.do?menuIdx=541" - Network accessline 16
LOST112_CURL_MAX_TIME = 60 SEOUL_METRO_LOST_CENTER_URL = "https://www.seoulmetro.co.kr/kr/page.do?menuIdx=541" CURL_USER_AGENT = "Mozilla/5.0" - Network accessline 16
LOST112_CURL_MAX_TIME = 60 SEOUL_METRO_LOST_CENTER_URL = "https://www.seoulmetro.co.kr/kr/page.do?menuIdx=541" CURL_USER_AGENT = "Mozilla/5.0" - Network accessline 17
SEOUL_METRO_LOST_CENTER_URL = "https://www.seoulmetro.co.kr/kr/page.do?menuIdx=541" - Network accessline 17
SEOUL_METRO_LOST_CENTER_URL = "https://www.seoulmetro.co.kr/kr/page.do?menuIdx=541"
ticket-availability/SKILL.md
- Network accessline 36
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/ticket-availability/instruction.md. - Network accessline 36
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/ticket-availability/instruction.md.
ticket-availability/instruction.md
- Network accessline 33
> 확인하실 공연의 YES24 또는 인터파크 URL을 알려주세요. > 예: `https://tickets.interpark.com/goods/26000541` - Network accessline 33
> 확인하실 공연의 YES24 또는 인터파크 URL을 알려주세요. > 예: `https://tickets.interpark.com/goods/26000541` - Network accessline 34
> 예: `https://tickets.interpark.com/goods/26000541` - Network accessline 34
> 예: `https://tickets.interpark.com/goods/26000541` - Network accessline 35
> `https://ticket.yes24.com/Perf/58026` - Network accessline 35
> `https://ticket.yes24.com/Perf/58026` - Network accessline 52
| 입력 | 매칭 | |---|---| | `https://tickets.interpark.com/goods/<goods_code>` | platform=interpark | - Network accessline 52
| 입력 | 매칭 | |---|---| | `https://tickets.interpark.com/goods/<goods_code>` | platform=interpark | - Network accessline 53
|---|---| | `https://tickets.interpark.com/goods/<goods_code>` | platform=interpark | | `https://ticket.yes24.com/Perf/<perf_id>` | platform=yes24 | - Network accessline 53
|---|---| | `https://tickets.interpark.com/goods/<goods_code>` | platform=interpark | | `https://ticket.yes24.com/Perf/<perf_id>` | platform=yes24 | - Network accessline 54
| `https://tickets.interpark.com/goods/<goods_code>` | platform=interpark | - Network accessline 54
| `https://tickets.interpark.com/goods/<goods_code>` | platform=interpark | - Network accessline 55
| `https://ticket.yes24.com/Perf/<perf_id>` | platform=yes24 | - Network accessline 55
| `https://ticket.yes24.com/Perf/<perf_id>` | platform=yes24 | - Network accessline 56
| `https://ticket.yes24.com/New/Perf/Detail/View/<perf_id>` | platform=yes24 | - Network accessline 56
| `https://ticket.yes24.com/New/Perf/Detail/View/<perf_id>` | platform=yes24 | - Network accessline 62
npx -y @nomadamas/k-skill@0 exec ticket-availability scripts/ticket_availability.py -- schedule "https://tickets.interpark.com/goods/26000541" - Network accessline 62
npx -y @nomadamas/k-skill@0 exec ticket-availability scripts/ticket_availability.py -- schedule "https://tickets.interpark.com/goods/26000541" - Network accessline 139
| Platform | Method | URL | |---|---|---| | YES24 | POST | `https://ticket.yes24.com/New/Perf/Sale/Ajax/axPerfDay.aspx` | - Network accessline 139
| Platform | Method | URL | |---|---|---| | YES24 | POST | `https://ticket.yes24.com/New/Perf/Sale/Ajax/axPerfDay.aspx` | - Network accessline 140
|---|---|---| | YES24 | POST | `https://ticket.yes24.com/New/Perf/Sale/Ajax/axPerfDay.aspx` | | YES24 | POST | `https://ticket.yes24.com/NEw/Perf/Detail/Ajax/axPerfPlayTime.aspx` | - Network accessline 140
|---|---|---| | YES24 | POST | `https://ticket.yes24.com/New/Perf/Sale/Ajax/axPerfDay.aspx` | | YES24 | POST | `https://ticket.yes24.com/NEw/Perf/Detail/Ajax/axPerfPlayTime.aspx` | - Network accessline 141
| YES24 | POST | `https://ticket.yes24.com/New/Perf/Sale/Ajax/axPerfDay.aspx` | - Network accessline 141
| YES24 | POST | `https://ticket.yes24.com/New/Perf/Sale/Ajax/axPerfDay.aspx` | - Network accessline 142
| YES24 | POST | `https://ticket.yes24.com/NEw/Perf/Detail/Ajax/axPerfPlayTime.aspx` | - Network accessline 142
| YES24 | POST | `https://ticket.yes24.com/NEw/Perf/Detail/Ajax/axPerfPlayTime.aspx` | - Network accessline 143
| YES24 | POST | `https://ticket.yes24.com/New/Perf/Detail/Ajax/axPerfRemainSeat.aspx` | - Network accessline 143
| YES24 | POST | `https://ticket.yes24.com/New/Perf/Detail/Ajax/axPerfRemainSeat.aspx` | - Network accessline 144
| Interpark | GET | `https://api-ticketfront.interpark.com/v1/goods/<id>/playSeq` | - Network accessline 144
| Interpark | GET | `https://api-ticketfront.interpark.com/v1/goods/<id>/playSeq` | - Network accessline 145
| Interpark | GET | `https://api-ticketfront.interpark.com/v1/goods/<id>/playSeq/PlaySeq/<seq>/REMAINSEAT` | - Network accessline 145
| Interpark | GET | `https://api-ticketfront.interpark.com/v1/goods/<id>/playSeq/PlaySeq/<seq>/REMAINSEAT` |
ticket-availability/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 좌석 선점·구매 자동화나 차단 우회를 허용하지 않습니다. [저작권법 제93조]( - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제48조) 위반이 되는 것은 아닌 사정을 제시했지만, 좌석 선점·구매 자동화나 차단 우회를 허용하지 않습니다. [저작권법 제93조](
ticket-availability/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
ticket-availability/scripts/ticket_availability.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 12
Supported URLs: YES24: https://ticket.yes24.com/Perf/<perf_id> - Network accessline 12
Supported URLs: YES24: https://ticket.yes24.com/Perf/<perf_id> - Network accessline 13
YES24: https://ticket.yes24.com/Perf/<perf_id> - Network accessline 13
YES24: https://ticket.yes24.com/Perf/<perf_id> - Network accessline 14
https://ticket.yes24.com/New/Perf/Detail/View/<perf_id> - Network accessline 14
https://ticket.yes24.com/New/Perf/Detail/View/<perf_id> - Network accessline 15
yes24:<perf_id> 인터파크: https://tickets.interpark.com/goods/<goods_code> interpark:<goods_code> - Network accessline 15
yes24:<perf_id> 인터파크: https://tickets.interpark.com/goods/<goods_code> interpark:<goods_code> - Network accessline 16
인터파크: https://tickets.interpark.com/goods/<goods_code> - Network accessline 16
인터파크: https://tickets.interpark.com/goods/<goods_code> - Network accessline 98
HEADERS_YES24 = { "User-Agent": UA, "Referer": "https://ticket.yes24.com/", - Network accessline 98
HEADERS_YES24 = { "User-Agent": UA, "Referer": "https://ticket.yes24.com/", - Network accessline 99
"User-Agent": UA, "Referer": "https://ticket.yes24.com/", "Content-Type": "application/x-www-form-urlencoded", - Network accessline 99
"User-Agent": UA, "Referer": "https://ticket.yes24.com/", "Content-Type": "application/x-www-form-urlencoded", - Network accessline 100
"Referer": "https://ticket.yes24.com/", - Network accessline 100
"Referer": "https://ticket.yes24.com/", - Network accessline 106
HEADERS_INTERPARK = { "User-Agent": UA, "Referer": "https://tickets.interpark.com/", - Network accessline 106
HEADERS_INTERPARK = { "User-Agent": UA, "Referer": "https://tickets.interpark.com/", - Network accessline 107
"User-Agent": UA, "Referer": "https://tickets.interpark.com/", "Accept": "application/json", - Network accessline 107
"User-Agent": UA, "Referer": "https://tickets.interpark.com/", "Accept": "application/json", - Network accessline 108
"Referer": "https://tickets.interpark.com/", - Network accessline 108
"Referer": "https://tickets.interpark.com/", - Network accessline 112
YES24_BASE = "https://ticket.yes24.com" - Network accessline 112
YES24_BASE = "https://ticket.yes24.com" - Network accessline 113
INTERPARK_BASE = "https://api-ticketfront.interpark.com" - Network accessline 113
INTERPARK_BASE = "https://api-ticketfront.interpark.com" - Network accessline 120
def __init__(self) -> None: http = _require_httpx() self.http = http.Client( - Network accessline 120
def __init__(self) -> None: http = _require_httpx() self.http = http.Client( - Network accessline 121
http = _require_httpx() self.http = http.Client( headers=HEADERS_YES24, timeout=20, follow_redirects=True - Network accessline 121
http = _require_httpx() self.http = http.Client( headers=HEADERS_YES24, timeout=20, follow_redirects=True - Network accessline 122
self.http = http.Client( - Network accessline 122
self.http = http.Client( - Network accessline 250
def __init__(self) -> None: http = _require_httpx() self.http = http.Client( - Network accessline 250
def __init__(self) -> None: http = _require_httpx() self.http = http.Client( - Network accessline 251
http = _require_httpx() self.http = http.Client( headers=HEADERS_INTERPARK, timeout=20, follow_redirects=True - Network accessline 251
http = _require_httpx() self.http = http.Client( headers=HEADERS_INTERPARK, timeout=20, follow_redirects=True - Network accessline 252
self.http = http.Client( - Network accessline 252
self.http = http.Client(
toss-investment/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/toss-investment/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/toss-investment/instruction.md.
toss-investment/instruction.md
- Network accessline 5
토스증권 **공식 Open API 전용 조회(read-only)** 흐름을 실행한다. 토스증권 공식 Open API(`https://openapi.tossinvest.com`)를 OAuth 2.0 Client Credentials 토큰으로 직접 호출한다. - Network accessline 5
토스증권 **공식 Open API 전용 조회(read-only)** 흐름을 실행한다. 토스증권 공식 Open API(`https://openapi.tossinvest.com`)를 OAuth 2.0 Client Credentials 토큰으로 직접 호출한다. - Access to secretsline 25
[Credential-related source omitted] - Access to secretsline 25
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Network accessline 38
[Credential-related source omitted] - Network accessline 38
[Credential-related source omitted] - Access to secretsline 66
[Credential-related source omitted] - Access to secretsline 66
[Credential-related source omitted]
toss-investment/references/DISCLAIMER.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)(소니용 리모컨 사건)은 기능 설명용 표장과 출처표시를 구별했습니다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.go.kr/법령/상표법/제89조), [제90조](https://www.law.go - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 접근에 관한 판단이며, 인증된 계좌·보유자산 데이터에 대한 권한을 부여하지 않습니다. 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제 - Network accessline 7
대법원 2022. 5. 12. 선고 [2021도1533 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=221765)은 공개정보 접근에 관한 판단이며, 인증된 계좌·보유자산 데이터에 대한 권한을 부여하지 않습니다. 공개되어 누구나 얻을 수 있는 정보의 기계적 수집만으로 곧바로 [정보통신망법 제48조](https://www.law.go.kr/법령/정보통신망이용촉진및정보보호등에관한법률/제
toss-investment/references/TRADEMARK-LEGAL-STATEMENT.md
- Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 5
대법원 2005. 6. 10. 선고 [2005도1637 판결](https://www.law.go.kr/LSW/precInfoP.do?precSeq=83920)은 타인의 표장을 출처표시가 아니라 상품 기능 또는 적용 기종을 밝히기 위해 사용하고 상표 사용으로 인식될 수 없는 경우 침해가 아니라고 판시했다. [상표법 제2조](https://www.law.go.kr/법령/상표법/제2조), [제89조](https://www.law.g - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md) - Network accessline 9
전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademark-use-review.md)
zipcode-search/SKILL.md
- Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/zipcode-search/instruction.md. - Network accessline 35
If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, or read the source instructions at https://github.com/NomaDamas/k-skill/blob/main/zipcode-search/instruction.md.
zipcode-search/instruction.md
- Network accessline 33
https://www.epost.kr/search.RetrieveIntegrationNewZipCdList.comm - Network accessline 33
https://www.epost.kr/search.RetrieveIntegrationNewZipCdList.comm - Network accessline 38
### 2. Fetch the HTML with curl and extract the `viewDetail(...)` rows - Network accessline 38
### 2. Fetch the HTML with curl and extract the `viewDetail(...)` rows - Network accessline 40
현재 ePost 엔드포인트는 응답이 간헐적으로 reset/timeout 될 수 있으므로, 로컬 `urllib` 대신 `curl --http1.1 --tls-max 1.2` + 재시도 경로를 기본 예시로 사용한다. - Network accessline 40
현재 ePost 엔드포인트는 응답이 간헐적으로 reset/timeout 될 수 있으므로, 로컬 `urllib` 대신 `curl --http1.1 --tls-max 1.2` + 재시도 경로를 기본 예시로 사용한다. - Network accessline 65
"--data-urlencode", f"keyword={query}", "https://www.epost.kr/search.RetrieveIntegrationNewZipCdList.comm", - Network accessline 65
"--data-urlencode", f"keyword={query}", "https://www.epost.kr/search.RetrieveIntegrationNewZipCdList.comm", - Network accessline 66
f"keyword={query}", "https://www.epost.kr/search.RetrieveIntegrationNewZipCdList.comm", ] - Network accessline 66
f"keyword={query}", "https://www.epost.kr/search.RetrieveIntegrationNewZipCdList.comm", ] - Network accessline 67
"https://www.epost.kr/search.RetrieveIntegrationNewZipCdList.comm", - Network accessline 67
"https://www.epost.kr/search.RetrieveIntegrationNewZipCdList.comm",
zipcode-search/scripts/zipcode_search.py
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 5 facts
- Contacts hkmedi.co.kr, which SKILL.md, the README and the plugin manifest do not mentionanimal-pharmacy-search/scripts/animal_pharmacy_mcp.py:14High confidence
- Contacts k-skill-proxy.nomadamas.org, which SKILL.md, the README and the plugin manifest do not mentionbccard-eatpl-search/scripts/kakao-place-rating.mjs:14High confidence
- Contacts m.map.kakao.com, which SKILL.md, the README and the plugin manifest do not mentionbccard-eatpl-search/scripts/kakao-place-rating.mjs:15High confidence
- Contacts place.map.kakao.com, which SKILL.md, the README and the plugin manifest do not mentionbccard-eatpl-search/scripts/kakao-place-rating.mjs:183High confidence
- Contacts k-skill-proxy.nomadamas.org, which SKILL.md, the README and the plugin manifest do not mentionbuilding-register-search/scripts/building_register.py:23High confidence
Signal confidence: 495 facts
- Network access in prose of the SKILL.mdanimal-pharmacy-search/SKILL.md:35Low confidence
- Network access in prose of documentationanimal-pharmacy-search/instruction.md:7Low confidence
- Network access in code of documentationanimal-pharmacy-search/instruction.md:48Low confidence
- Network access in code of documentationanimal-pharmacy-search/instruction.md:49Low confidence
- Executable script in code of a file that runsanimal-pharmacy-search/scripts/animal_pharmacy_mcp.py:1High confidence
- Network access in code of a file that runsanimal-pharmacy-search/scripts/animal_pharmacy_mcp.py:14High confidence
- Network access in code of a file that runsanimal-pharmacy-search/scripts/animal_pharmacy_mcp.py:164High confidence
- Network access in code of a file that runsanimal-pharmacy-search/scripts/animal_pharmacy_mcp.py:169High confidence
- Network access in code of a file that runsanimal-pharmacy-search/scripts/animal_pharmacy_mcp.py:170High confidence
- Network access in code of a file that runsanimal-pharmacy-search/scripts/animal_pharmacy_mcp.py:171High confidence
- Network access in prose of the SKILL.mdassembly-bill-vote-search/SKILL.md:35Low confidence
- Network access in prose of the SKILL.mdassembly-bill-vote-search/SKILL.md:35Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:5Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:5Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:26Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:26Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:27Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:27Low confidence
- Access to secrets in prose of documentationassembly-bill-vote-search/instruction.md:28Low confidence
- Access to secrets in prose of documentationassembly-bill-vote-search/instruction.md:28Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:30Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:30Low confidence
- Network access in code of documentationassembly-bill-vote-search/instruction.md:57Low confidence
- Network access in code of documentationassembly-bill-vote-search/instruction.md:57Low confidence
- Network access in code of documentationassembly-bill-vote-search/instruction.md:58Low confidence
- Network access in code of documentationassembly-bill-vote-search/instruction.md:58Low confidence
- Network access in code of documentationassembly-bill-vote-search/instruction.md:67Low confidence
- Network access in code of documentationassembly-bill-vote-search/instruction.md:67Low confidence
- Network access in code of documentationassembly-bill-vote-search/instruction.md:74Low confidence
- Network access in code of documentationassembly-bill-vote-search/instruction.md:74Low confidence
- Access to secrets in prose of documentationassembly-bill-vote-search/instruction.md:83Low confidence
- Access to secrets in prose of documentationassembly-bill-vote-search/instruction.md:83Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:101Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:101Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:103Low confidence
- Network access in prose of documentationassembly-bill-vote-search/instruction.md:103Low confidence
- Access to secrets in prose of documentationassembly-bill-vote-search/instruction.md:105Low confidence
- Access to secrets in prose of documentationassembly-bill-vote-search/instruction.md:105Low confidence
- Network access in prose of the SKILL.mdbccard-eatpl-search/SKILL.md:35Low confidence
- Network access in prose of the SKILL.mdbccard-eatpl-search/SKILL.md:35Low confidence
- Network access in code of documentationbccard-eatpl-search/instruction.md:42Low confidence
- Network access in code of documentationbccard-eatpl-search/instruction.md:42Low confidence
- Network access in prose of documentationbccard-eatpl-search/instruction.md:87Low confidence
- Network access in prose of documentationbccard-eatpl-search/instruction.md:87Low confidence
- Network access in prose of documentationbccard-eatpl-search/instruction.md:88Low confidence
- Network access in prose of documentationbccard-eatpl-search/instruction.md:88Low confidence
- Network access in prose of documentationbccard-eatpl-search/instruction.md:89Low confidence
- Network access in prose of documentationbccard-eatpl-search/instruction.md:89Low confidence
- Network access in prose of documentationbccard-eatpl-search/instruction.md:103Low confidence
- Network access in prose of documentationbccard-eatpl-search/instruction.md:103Low confidence
and 445 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md animal-pharmacy-search/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md animal-pharmacy-search/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md animal-pharmacy-search/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md animal-pharmacy-search/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/nomadamas-k-skill/)