#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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

bunjang-search/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

company-analysis/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

delivery-tracking/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

foresttrip-vacancy/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

geeknews-search/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

gongsijiga-search/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

hankookilbo-news/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

heyyumi/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

hwp/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

k-dart/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

kakao-map/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

kakaotalk-mac/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

kbl-results/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

kbo-results/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

kleague-results/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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: 한국 날씨를 기상청 단기예보 조회서비스(초단기예보·초단기실황 포함)와 프록시 경유로 조회해 요약한다.

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

korean-humanizer/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

kosis-stats/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

kstartup-search/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

lck-analytics/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

lotto-results/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

myrealtrip-search/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

naming-house/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

popbill/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

railway-timetable/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

rhwp-advanced/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

rhwp-edit/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

saju-fortune/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

seoul-bike/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

seoul-density/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

ticket-availability/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

toss-investment/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

zipcode-search/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

02081f83ebee → a63290d56c00

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
8.3kGitHub stars
68stars in 7 days
135skills in this repository
68commits in 30 days

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

Aug 2, 2026Nov 6, 20268,286

Individual skills in this repository

How it works

animal-pharmacy-search

When your agent uses it

홍익메디케어 공개 MCP 서버로 지역별 동물약국 목록, 동물용의약품 검색, 최근 6개월 구매 이력 기반 취급 약국을 조회한다. 조회 전용.

What it loads into context

Frontmatter

78 tokens

Always available to the agent

SKILL.md

400 tokens

When the skill is activated

Reference documents

415,600 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Get the full instructions (required first step)
  2. 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 bytes
  • SKILL.mdcore1,665 bytes
  • SKILL.mdcore1,665 bytes
  • SKILL.mdcore1,665 bytes
  • SKILL.mdcore1,665 bytes
  • SKILL.mdcore1,665 bytes
  • instruction.mddoc6,538 bytes
  • scripts/animal_pharmacy_mcp.pyruns8,981 bytes
  • skill.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 GitHub

Skills 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

  1. #172 from Oct 28 to Oct 30
  2. #173 from Oct 31 to Nov 1
  3. #174 on Nov 2
  4. #175 on Nov 3
  5. #174 on Nov 4
  6. #176 since Nov 5
61 earlier periods
  1. #150 on Aug 2
  2. #151 on Aug 7
  3. #152 on Aug 8
  4. #150 on Aug 9
  5. #154 on Aug 10
  6. #155 on Aug 11
  7. #154 on Aug 12
  8. #156 from Aug 13 to Aug 14
  9. #155 from Aug 15 to Aug 17
  10. #156 from Aug 18 to Aug 19
  11. #155 from Aug 20 to Aug 21
  12. #153 on Aug 22
  13. #156 from Aug 23 to Aug 26
  14. #157 on Aug 27
  15. #156 on Aug 28
  16. #157 on Aug 29
  17. #155 from Aug 30 to Aug 31
  18. #157 on Sep 1
  19. #153 on Sep 2
  20. #158 on Sep 3
  21. #157 on Sep 4
  22. #160 on Sep 5
  23. #157 on Sep 6
  24. #160 from Sep 7 to Sep 10
  25. #157 on Sep 11
  26. #160 on Sep 12
  27. #162 on Sep 13
  28. #161 on Sep 14
  29. #162 from Sep 15 to Sep 16
  30. #161 on Sep 17
  31. #162 on Sep 18
  32. #160 on Sep 19
  33. #163 from Sep 20 to Sep 21
  34. #162 on Sep 22
  35. #163 on Sep 23
  36. #161 on Sep 24
  37. #163 on Sep 25
  38. #164 from Sep 26 to Sep 27
  39. #166 from Sep 28 to Sep 29
  40. #163 on Sep 30
  41. #165 on Oct 1
  42. #166 on Oct 2
  43. #163 on Oct 3
  44. #162 on Oct 4
  45. #163 on Oct 5
  46. #162 on Oct 6
  47. #164 on Oct 7
  48. #163 on Oct 8
  49. #164 on Oct 9
  50. #163 on Oct 10
  51. #164 on Oct 11
  52. #165 on Oct 12
  53. #166 on Oct 13
  54. #167 from Oct 14 to Oct 15
  55. #166 on Oct 16
  56. #168 on Oct 17
  57. #169 on Oct 18
  58. #168 on Oct 19
  59. #169 on Oct 20
  60. #170 from Oct 21 to Oct 24
  61. #172 on Oct 25

Before you install

Network or broad shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • animal-pharmacy-search/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • animal-pharmacy-search/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • animal-pharmacy-search/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • corporate-registration-consulting/templates/attachment-hwp/source-manifest.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • gov-overseas-trip-report/tests/fixtures/ggc-list.html:22 Analysis incomplete: physical or joined line exceeds character limit
  • gov-overseas-trip-report/tests/fixtures/open-portal.html:42 Analysis incomplete: physical or joined line exceeds character limit
  • gov-overseas-trip-report/tests/fixtures/open-portal.html:309 Analysis incomplete: physical or joined line exceeds character limit
  • government-bond-analysis/scripts/render.mjs:55 Analysis incomplete: physical or joined line exceeds character limit
  • government-bond-analysis/scripts/render.mjs:56 Analysis incomplete: physical or joined line exceeds character limit
  • government-bond-analysis/scripts/render.mjs:57 Analysis incomplete: physical or joined line exceeds character limit
  • government-bond-analysis/src/render.mts:60 Analysis incomplete: physical or joined line exceeds character limit
  • government-bond-analysis/src/render.mts:61 Analysis incomplete: physical or joined line exceeds character limit
  • government-bond-analysis/src/render.mts:62 Analysis incomplete: physical or joined line exceeds character limit
  • naver-blog-research/skill.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • naver-blog-research/skill.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • seoul-weather-risk/references/admin-dong-place-map.json:1 Analysis incomplete: physical or joined line exceeds character limit
  • assembly-bill-vote-search/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • assembly-bill-vote-search/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • assembly-bill-vote-search/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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

  • Network accessline 7
    - 엔드포인트: `https://hkmedi.co.kr/pharmacy-mcp`
  • Network accessline 48
    claude mcp add --transport http animal-pharmacy https://hkmedi.co.kr/pharmacy-mcp
  • Network accessline 49
    codex mcp add animal-pharmacy --url https://hkmedi.co.kr/pharmacy-mcp

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

  • Access to secretsline 47
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]

biz-health-check/scripts/biz_health_check.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node

company-analysis/scripts/dart-rows.ts

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node

company-analysis/scripts/evidence.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node

company-analysis/scripts/evidence.ts

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Network accessline 4
    DETAIL_BASE = "https://realty.daangn.com/articles/"
  • Network accessline 4
    DETAIL_BASE = "https://realty.daangn.com/articles/"

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

  • Network accessline 15
    https://ev.or.kr/nportal/buySupprt/initSubsidyPaymentCheckAction.do
  • Network accessline 15
    https://ev.or.kr/nportal/buySupprt/initSubsidyPaymentCheckAction.do

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

  • Network accessline 8
    https://www.kobus.co.kr
  • Network accessline 8
    https://www.kobus.co.kr

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

express-bus-booking/tests/test_kobus_express_booking.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Network accessline 5
    숲나들e 공식 사이트(`https://foresttrip.go.kr/index.jsp`)에서 자연휴양림 예약 가능 객실을 날짜 기준으로 조회 자동화한다.
  • Network accessline 5
    숲나들e 공식 사이트(`https://foresttrip.go.kr/index.jsp`)에서 자연휴양림 예약 가능 객실을 날짜 기준으로 조회 자동화한다.

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

foresttrip-vacancy/tests/test_foresttrip_session.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

foresttrip-vacancy/tests/test_run_foresttrip_vacancy.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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('&', '&amp;'))); 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('&', '&amp;'))); 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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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('&','&amp;')));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('&','&amp;')));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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Network accessline 8
    https://intercitybus.tmoney.co.kr
  • Network accessline 8
    https://intercitybus.tmoney.co.kr
  • Access to secretsline 11
    [Credential-related source omitted]
  • Access to secretsline 11
    [Credential-related source omitted]

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Network accessline 30
    https://www.jobkorea.co.kr/corp/person/find
  • Network accessline 30
    https://www.jobkorea.co.kr/corp/person/find

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Network accessline 6
    BASE_URL: Final = "https://www.jobkorea.co.kr"
  • Network accessline 6
    BASE_URL: Final = "https://www.jobkorea.co.kr"

jobkorea-talent-search/scripts/jobkorea_talent_parse.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

jobkorea-talent-search/scripts/jobkorea_talent_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash

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

  • Network accessline 46
    brew tap NomaDamas/katok https://github.com/NomaDamas/katok.git
  • Network accessline 46
    brew tap NomaDamas/katok https://github.com/NomaDamas/katok.git

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

  • Network accessline 38
    - 일정/결과: `https://www.kleague.com/getScheduleList.do`
  • Network accessline 38
    - 일정/결과: `https://www.kleague.com/getScheduleList.do`
  • Network accessline 39
    - 팀 순위: `https://www.kleague.com/record/teamRank.do`
  • Network accessline 39
    - 팀 순위: `https://www.kleague.com/record/teamRank.do`

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

  • Network accessline 23
    - 정확한 ISIN이 있으면 SEIBro 모바일 상세 페이지를 직접 연다: `https://m.seibro.or.kr/cnts/bond/selectDetailSearch.do?txt_code=<ISIN>`.
  • Network accessline 23
    - 정확한 ISIN이 있으면 SEIBro 모바일 상세 페이지를 직접 연다: `https://m.seibro.or.kr/cnts/bond/selectDetailSearch.do?txt_code=<ISIN>`.

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

korean-law-search/scripts/amendment/align.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

korean-law-search/scripts/amendment/current.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Network accessline 12
    const DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org";
  • Network accessline 12
    const DEFAULT_PROXY_BASE_URL = "https://k-skill-proxy.nomadamas.org";

korean-law-search/scripts/amendment/diff.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

korean-law-search/scripts/amendment/errors.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

korean-law-search/scripts/amendment/format.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

korean-law-search/scripts/amendment/marks.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

korean-law-search/scripts/amendment/render.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

korean-law-search/scripts/amendment/table.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

korean-law-search/scripts/amendment/units.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

korean-law-search/scripts/amendment/zip.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

korean-law-search/scripts/amendment_table.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node

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

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

korean-slang-writing/scripts/slang_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Network accessline 5
    - Original source: <https://github.com/jerjangmin/share/tree/main/SKILL/lck-analytics>
  • Network accessline 5
    - Original source: <https://github.com/jerjangmin/share/tree/main/SKILL/lck-analytics>

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

lck-analytics/scripts/analyze-live-game.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node

lck-analytics/scripts/build-match-report.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node

lck-analytics/scripts/sync-oracle.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

market-event-impact/scripts/asset_selector.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

market-event-impact/scripts/calendars.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

market-event-impact/scripts/event_resolver.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

market-event-impact/scripts/event_study.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

market-event-impact/scripts/market_data.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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
    [![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB?logo=python&logoColor=white)](https://www.python.org/)
  • Network accessline 5
    [![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB?logo=python&logoColor=white)](https://www.python.org/)
  • Network accessline 6
    [![Dependencies](https://img.shields.io/badge/dependencies-stdlib%20only-2ea44f)](scripts/market_data.py)
  • Network accessline 6
    [![Dependencies](https://img.shields.io/badge/dependencies-stdlib%20only-2ea44f)](scripts/market_data.py)
  • Network accessline 7
    [![Data](https://img.shields.io/badge/data-official%20sources-0A66C2)](#공식-데이터-원천)
  • Network accessline 7
    [![Data](https://img.shields.io/badge/data-official%20sources-0A66C2)](#공식-데이터-원천)
  • Network accessline 8
    [![Tests](https://img.shields.io/badge/offline%20tests-30%20passing-2ea44f)](tests/test_market_data.py)
  • Network accessline 8
    [![Tests](https://img.shields.io/badge/offline%20tests-30%20passing-2ea44f)](tests/test_market_data.py)
  • Network accessline 9
    [![Upstream PR](https://img.shields.io/badge/upstream-PR%20%23675-8957e5?logo=github)](https://github.com/NomaDamas/k-skill/pull/675)
  • Network accessline 9
    [![Upstream PR](https://img.shields.io/badge/upstream-PR%20%23675-8957e5?logo=github)](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

  • Network accessline 55
    - 명단공개 검색: `https://www.nts.go.kr/nts/ad/openInfo/selectList.do`
  • Network accessline 55
    - 명단공개 검색: `https://www.nts.go.kr/nts/ad/openInfo/selectList.do`

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

popbill/scripts/popbill_safety.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

popbill/scripts/popbill_templates.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

popbill/tests/fake_popbill.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

railway-timetable/scripts/railway_timetable.py

  • Executable scriptline 1
    #!/usr/bin/env -S uv run --locked --script
  • Executable scriptline 1
    #!/usr/bin/env -S uv run --locked --script

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

  • Network accessline 31
    https://www.saramin.co.kr/zf_user/memcom/talent-pool/main/search
  • Network accessline 31
    https://www.saramin.co.kr/zf_user/memcom/talent-pool/main/search

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

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 6
    exec(compile(_CANONICAL.read_text(encoding="utf-8"), str(_CANONICAL), "exec"), globals())

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

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 16
    exec(compile(_BUNDLED_HELPER.read_text(encoding="utf-8"), str(_BUNDLED_HELPER), "exec"), globals())

scripts/korean_middle_korean.js

  • Executable scriptline 1
    Executable file

scripts/korean_spell_check.py

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 13
    exec(compile(_BUNDLED_HELPER.read_text(encoding="utf-8"), str(_BUNDLED_HELPER), "exec"), globals())

scripts/mfds_drug_safety.py

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 13
    exec(compile(_BUNDLED_HELPER.read_text(encoding="utf-8"), str(_BUNDLED_HELPER), "exec"), globals())

scripts/mfds_food_safety.py

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 13
    exec(compile(_BUNDLED_HELPER.read_text(encoding="utf-8"), str(_BUNDLED_HELPER), "exec"), globals())

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

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 13
    exec(compile(_BUNDLED_HELPER.read_text(encoding="utf-8"), str(_BUNDLED_HELPER), "exec"), globals())

scripts/prepare-python-test-env.js

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/registry-e2e-k-skill-cli.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 57
    const dolshoi = run(["instruct", skill], {     DOLSHOI_ACTION_BROKER_URL: "http://registry-e2e.invalid",
  • Network accessline 58
    DOLSHOI_ACTION_BROKER_URL: "http://registry-e2e.invalid",

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

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 13
    exec(compile(_BUNDLED_HELPER.read_text(encoding="utf-8"), str(_BUNDLED_HELPER), "exec"), globals())

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

  • Executable scriptline 1
    Executable file
  • Network accessline 74
    subprocess.run(             [                 "curl",

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Dangerous shell operationline 18
    exec(compile(_BUNDLED_HELPER.read_text(encoding="utf-8"), str(_BUNDLED_HELPER), "exec"), globals())

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

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 27
    data = eval(data);
  • Dangerous shell operationline 135
    data = eval(data);

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Dangerous shell operationline 13
    exec(compile(_BUNDLED_HELPER.read_text(encoding="utf-8"), str(_BUNDLED_HELPER), "exec"), globals())

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

  • Network accessline 20
    [Credential-related source omitted]
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]

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

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 13
    SEARCH_URL = "https://www.epost.kr/search.RetrieveIntegrationNewZipCdList.comm"
  • Network accessline 13
    SEARCH_URL = "https://www.epost.kr/search.RetrieveIntegrationNewZipCdList.comm"

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
Signal confidence: 495 facts

and 445 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md animal-pharmacy-search/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md animal-pharmacy-search/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md animal-pharmacy-search/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.

NomaDamas/k-skill: #176 on hotskills, 8.3k stars

[![NomaDamas/k-skill on hotskills](https://hotskills.dev/badge/nomadamas-k-skill.svg)](https://hotskills.dev/skill/nomadamas-k-skill/)