한국인을 위한 스킬 모음집 - 에이전트를 한국인으로
This report presents the forensic synthetic code analysis of NomaDamas/k-skill, a JavaScript project with 7,361 GitHub stars. SynthScan v2.0 examined 227,386 lines of code across 1797 source files, recording 1229 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 6.1 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1229 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mfds-food-safety/scripts/mfds_food_safety.py | 69 | def normalize_food_recall_row(row: dict[str, Any]) -> dict[str, Any]: | CODE |
| LOW | mfds-food-safety/scripts/mfds_food_safety.py | 81 | def normalize_improper_food_item(item: dict[str, Any]) -> dict[str, Any]: | CODE |
| LOW | mfds-food-safety/scripts/mfds_food_safety.py | 153 | def search_health_food_ingredient( | CODE |
| LOW | iros-registry-automation/tests/test_iros_pdf_summary.py | 51 | def test_masks_resident_registration_number(self): | STRING |
| LOW⚡ | iros-registry-automation/tests/test_iros_pdf_summary.py | 63 | def test_unknown_when_no_markers(self): | STRING |
| LOW⚡ | iros-registry-automation/tests/test_iros_pdf_summary.py | 68 | def test_counts_ownership_transfers(self): | STRING |
| LOW⚡ | iros-registry-automation/tests/test_iros_pdf_summary.py | 71 | def test_excludes_transfer_claim_provisional(self): | STRING |
| LOW⚡ | iros-registry-automation/tests/test_iros_pdf_summary.py | 76 | def test_extracts_amount_and_date(self): | STRING |
| LOW⚡ | iros-registry-automation/tests/test_iros_pdf_summary.py | 82 | def test_marks_canceled_by_rank(self): | STRING |
| LOW⚡ | iros-registry-automation/tests/test_iros_pdf_summary.py | 90 | def test_counts_provisional_seizure(self): | STRING |
| LOW⚡ | iros-registry-automation/tests/test_iros_pdf_summary.py | 97 | def test_summary_shape_and_no_pii(self): | STRING |
| LOW | iros-registry-automation/tests/test_iros_pdf_summary.py | 111 | def test_render_markdown_facts_only(self): | STRING |
| LOW | iros-registry-automation/tests/test_iros_pdf_summary.py | 117 | def test_clean_registry_no_mortgages(self): | STRING |
| LOW | korean-scholarship-search/scripts/scholarship_filter.py | 155 | def normalize_deadline_status(value: Any) -> str | None: | CODE |
| LOW⚡ | …-scholarship-search/scripts/test_scholarship_filter.py | 30 | def test_current_kst_date_uses_korea_calendar_day(self): | CODE |
| LOW⚡ | …-scholarship-search/scripts/test_scholarship_filter.py | 37 | def test_resolve_today_falls_back_to_kst_when_missing_or_invalid(self): | CODE |
| LOW⚡ | …-scholarship-search/scripts/test_scholarship_filter.py | 42 | def test_infer_deadline_status_overrides_stale_cached_status_with_dates(self): | CODE |
| LOW⚡ | …-scholarship-search/scripts/test_scholarship_filter.py | 55 | def test_infer_deadline_status_returns_unknown_for_noncanonical_cached_value_without_dates(self): | CODE |
| LOW⚡ | …-scholarship-search/scripts/test_scholarship_filter.py | 62 | def test_infer_deadline_status_treats_end_date_equal_to_today_as_open(self): | CODE |
| LOW⚡ | …-scholarship-search/scripts/test_scholarship_filter.py | 69 | def test_report_does_not_crash_on_noncanonical_status_and_counts_unknown(self): | CODE |
| LOW | …-scholarship-search/scripts/test_scholarship_filter.py | 86 | def test_extract_amount_value_uses_amount_fields_and_ignores_irrelevant_notes(self): | CODE |
| LOW | …-scholarship-search/scripts/test_scholarship_filter.py | 98 | def test_match_filter_keeps_text_only_amount_by_default_and_marks_it_unknown(self): | CODE |
| LOW | …-scholarship-search/scripts/test_scholarship_filter.py | 125 | def test_match_filter_can_drop_text_only_amount_in_strict_mode(self): | CODE |
| LOW | …-scholarship-search/scripts/test_scholarship_filter.py | 154 | def test_eligibility_returns_indeterminate_when_profile_fields_are_missing(self): | CODE |
| LOW | …-scholarship-search/scripts/test_scholarship_filter.py | 176 | def test_school_name_filter_does_not_match_urls_any_more(self): | CODE |
| LOW | …-scholarship-search/scripts/test_scholarship_filter.py | 209 | def test_school_domain_suppresses_broad_ac_kr_fallback_queries(self): | CODE |
| LOW | …ilding-register-search/tests/test_building_register.py | 22 | def test_pnu_land_categories_map_to_building_api_values(self): | CODE |
| LOW | …ilding-register-search/tests/test_building_register.py | 33 | def test_explicit_api_land_category_values_remain_compatible(self): | CODE |
| LOW⚡ | …ilding-register-search/tests/test_building_register.py | 55 | def test_conflicting_and_missing_inputs_stop_explicitly(self): | CODE |
| LOW⚡ | …ilding-register-search/tests/test_building_register.py | 65 | def test_proxy_url_has_no_key(self): | CODE |
| LOW⚡ | …ilding-register-search/tests/test_building_register.py | 73 | def test_direct_missing_key_reports_dataset_and_preferred_variable(self): | CODE |
| LOW⚡ | …ilding-register-search/tests/test_building_register.py | 83 | def test_dry_run_redacts_direct_key(self): | CODE |
| LOW⚡ | …ilding-register-search/tests/test_building_register.py | 91 | def test_timeout_is_reported_without_traceback_for_proxy_and_direct(self): | CODE |
| LOW | …ilding-register-search/tests/test_building_register.py | 108 | def test_address_geocode_missing_kakao_key_is_not_building_key_error(self): | CODE |
| LOW | …ilding-register-search/tests/test_building_register.py | 135 | def test_direct_xml_rejects_invalid_pagination_metadata(self): | CODE |
| LOW | …ilding-register-search/tests/test_building_register.py | 142 | def test_address_proxy_flow_geocodes_then_calls_building_route(self): | CODE |
| LOW | …ilding-register-search/tests/test_building_register.py | 179 | def test_address_payload_constructs_standard_normal_and_mountain_pnu(self): | CODE |
| LOW | …ilding-register-search/tests/test_building_register.py | 196 | def test_address_dry_run_describes_explicit_building_query(self): | CODE |
| LOW | …ilding-register-search/tests/test_building_register.py | 213 | def test_address_ambiguity_or_missing_parcel_stops(self): | CODE |
| LOW | …ilding-register-search/tests/test_building_register.py | 226 | def test_korean_summary_and_json_output(self): | CODE |
| LOW | building-register-search/scripts/building_register.py | 144 | def query_from_address_payload(payload: Dict[str, Any]) -> Dict[str, str]: | CODE |
| LOW | korean-middle-korean/scripts/korean_middle_korean.js | 85 | function convertToMiddleKoreanStyle(input) { | CODE |
| LOW | korean-patent-search/scripts/patent_search.py | 270 | def parse_patent_search_response(xml_text: str, *, query: str) -> PatentSearchResponse: | CODE |
| LOW | korean-patent-search/scripts/patent_search.py | 285 | def parse_patent_detail_response(xml_text: str) -> PatentDetail: | CODE |
| LOW | keris-academic-search/tests/test_keris_academic.py | 22 | def test_single_type_pagination_command_contract(self): | CODE |
| LOW | keris-academic-search/tests/test_keris_academic.py | 49 | def test_build_query_strict_pagination_for_combined_types(self): | CODE |
| LOW | keris-academic-search/tests/test_keris_academic.py | 56 | def test_riss_url_uses_riss_key_only_and_maps_book_alias(self): | CODE |
| LOW | keris-academic-search/tests/test_keris_academic.py | 68 | def test_key_resolution_never_uses_data_go_kr_key(self): | CODE |
| LOW | keris-academic-search/tests/test_keris_academic.py | 85 | def test_missing_key_names_riss_variables_and_issuance(self): | CODE |
| LOW | keris-academic-search/tests/test_keris_academic.py | 98 | def test_timeout_is_reported_without_traceback(self): | CODE |
| LOW | keris-academic-search/tests/test_keris_academic.py | 108 | def test_forbidden_key_maps_to_readable_error(self): | CODE |
| LOW | keris-academic-search/tests/test_keris_academic.py | 119 | def test_dry_run_redacts_key_for_all_resource_types_without_key_env(self): | CODE |
| LOW | keris-academic-search/tests/test_keris_academic.py | 131 | def test_text_summary_includes_metadata_and_full_text_state(self): | CODE |
| LOW | keris-academic-search/tests/test_keris_academic.py | 150 | def test_riss_xml_requires_explicit_error_status(self): | CODE |
| LOW | keris-academic-search/tests/test_keris_academic.py | 158 | def test_result_supports_json_output(self): | CODE |
| LOW | …ness-registration/scripts/nts_business_registration.py | 52 | def normalize_business_number(value: Any) -> str: | CODE |
| LOW⚡ | bok-ecos-stats/tests/test_bok_ecos.py | 111 | def test_search_url_uses_sample_key_and_positional_segments(self): | CODE |
| LOW⚡ | bok-ecos-stats/tests/test_bok_ecos.py | 119 | def test_search_url_uses_user_key_and_limit(self): | CODE |
| LOW⚡ | bok-ecos-stats/tests/test_bok_ecos.py | 127 | def test_sample_key_caps_limit_to_ten(self): | CODE |
| LOW⚡ | bok-ecos-stats/tests/test_bok_ecos.py | 135 | def test_alias_resolves_to_stat_code_cycle_item(self): | CODE |
| 789 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mfds-food-safety/scripts/mfds_food_safety.py | 1 | CODE | |
| LOW | korean-spell-check/scripts/korean_spell_check.py | 1 | CODE | |
| LOW | express-bus-booking/scripts/kobus_express_booking.py | 9 | CODE | |
| LOW | iros-registry-automation/scripts/iros_pdf_summary.py | 24 | CODE | |
| LOW | korean-scholarship-search/scripts/scholarship_filter.py | 4 | CODE | |
| LOW | …n-scholarship-search/scripts/university_search_plan.py | 4 | CODE | |
| LOW | daangn-jobs-search/scripts/daangn_jobs.py | 2 | CODE | |
| LOW | k-skill-cleaner/scripts/k_skill_cleaner.py | 9 | CODE | |
| LOW | mfds-drug-safety/scripts/mfds_drug_safety.py | 1 | CODE | |
| LOW | building-register-search/scripts/building_register.py | 5 | CODE | |
| LOW | danawa-price-search/scripts/danawa_search.py | 9 | CODE | |
| LOW | ohou-today-deal/scripts/ohou_today_deal.py | 15 | CODE | |
| LOW | korean-patent-search/scripts/patent_search.py | 1 | CODE | |
| LOW | ticket-availability/scripts/ticket_availability.py | 19 | CODE | |
| LOW | …e-registration-consulting/scripts/fill_official_hwp.py | 8 | CODE | |
| LOW | keris-academic-search/scripts/keris_academic.py | 9 | CODE | |
| LOW | …ness-registration/scripts/nts_business_registration.py | 1 | CODE | |
| LOW | naver-ad-performance/scripts/naver_ad_performance.py | 1 | CODE | |
| LOW | subway-lost-property/scripts/subway_lost_property.py | 3 | CODE | |
| LOW | bok-ecos-stats/scripts/bok_ecos.py | 26 | CODE | |
| LOW | …eas-trip-report/tests/test_gov_overseas_trip_report.py | 2 | CODE | |
| LOW | …erseas-trip-report/scripts/gov_overseas_trip_report.py | 7 | CODE | |
| LOW | animal-pharmacy-search/scripts/animal_pharmacy_mcp.py | 4 | CODE | |
| LOW | …bkorea-talent-search/scripts/jobkorea_talent_search.py | 10 | CODE | |
| LOW | …ent-search/scripts/jobkorea_talent_search_condition.py | 1 | CODE | |
| LOW | …a-talent-search/scripts/test_jobkorea_talent_search.py | 3 | CODE | |
| LOW | …bkorea-talent-search/scripts/jobkorea_talent_models.py | 1 | CODE | |
| LOW | jobkorea-talent-search/scripts/jobkorea_talent_parse.py | 1 | CODE | |
| LOW | g2b-order-plan-search/scripts/g2b_order_plan.py | 7 | CODE | |
| LOW | …sanctioned-supplier/scripts/g2b_sanctioned_supplier.py | 7 | CODE | |
| LOW | fsc-corporate-info/scripts/fsc_corporate_info.py | 7 | CODE | |
| LOW | …rean-heritage-search/scripts/korean_heritage_search.py | 1 | CODE | |
| LOW | seoul-density/scripts/seoul_density.py | 12 | CODE | |
| LOW | srt-booking/scripts/srt_booking.py | 8 | CODE | |
| LOW | job-posting-match/scripts/job_posting_match.py | 7 | CODE | |
| LOW | daangn-cars-search/scripts/daangn_cars.py | 2 | CODE | |
| LOW | daangn-cars-search/scripts/daangn_cars.py | 2 | CODE | |
| LOW | daangn-cars-search/scripts/daangn_cars.py | 3 | CODE | |
| LOW | …a-business-status/scripts/localdata_business_status.py | 12 | CODE | |
| LOW | …a-business-status/scripts/localdata_business_status.py | 20 | CODE | |
| LOW | intercity-bus-booking/scripts/intercity_bus_search.py | 8 | CODE | |
| LOW | zipcode-search/scripts/zipcode_search.py | 3 | CODE | |
| LOW | korean-slang-writing/scripts/slang_search.py | 2 | CODE | |
| LOW | korean-slang-writing/scripts/slang_search.py | 6 | CODE | |
| LOW | korean-slang-writing/scripts/_slang_http.py | 1 | CODE | |
| LOW | korean-slang-writing/scripts/slang_lookup.py | 2 | CODE | |
| LOW | flight-ticket-search/scripts/flight_ticket_search.py | 7 | CODE | |
| LOW | …ension-workplace/scripts/national_pension_workplace.py | 7 | CODE | |
| LOW | kstartup-search/scripts/run_kstartup.py | 7 | CODE | |
| LOW | geeknews-search/scripts/geeknews_search.py | 3 | CODE | |
| LOW | seoul-weather-risk/scripts/seoul_weather_risk.py | 4 | CODE | |
| LOW | foresttrip-vacancy/scripts/run_foresttrip_vacancy.py | 11 | CODE | |
| LOW | scripts/test_korean_slang_writing.py | 2 | CODE | |
| LOW | scripts/patent_search.py | 1 | CODE | |
| LOW | scripts/nts_business_registration.py | 1 | CODE | |
| LOW | scripts/sillok_search.py | 1 | CODE | |
| LOW | scripts/store_longevity_mirror.py | 3 | CODE | |
| LOW | scripts/korean_heritage_search.py | 1 | CODE | |
| LOW | scripts/test_naver_ad_performance.py | 5 | CODE | |
| LOW | scripts/geeknews_search.py | 3 | CODE | |
| 117 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | ticket-availability/scripts/ticket_availability.py | 0 | ticket-availability — yes24 / 인터파크 공연 일정 + 잔여석 조회 cli. 조회 전용. 예매·결제·로그인 자동화 없음. 공연법 §4조의2 (매크로 입장권 부정구매·판매 금지) 비적용. usag | STRING |
| HIGH | scripts/ticket_availability.py | 0 | ticket-availability — yes24 / 인터파크 공연 일정 + 잔여석 조회 cli. 조회 전용. 예매·결제·로그인 자동화 없음. 공연법 §4조의2 (매크로 입장권 부정구매·판매 금지) 비적용. usag | STRING |
| HIGH | …lls/ticket-availability/scripts/ticket_availability.py | 0 | ticket-availability — yes24 / 인터파크 공연 일정 + 잔여석 조회 cli. 조회 전용. 예매·결제·로그인 자동화 없음. 공연법 §4조의2 (매크로 입장권 부정구매·판매 금지) 비적용. usag | STRING |
| HIGH | ticket-availability/scripts/ticket_availability.py | 0 | raised when the optional httpx runtime dependency is unavailable. | STRING |
| HIGH | scripts/ticket_availability.py | 0 | raised when the optional httpx runtime dependency is unavailable. | STRING |
| HIGH | …lls/ticket-availability/scripts/ticket_availability.py | 0 | raised when the optional httpx runtime dependency is unavailable. | STRING |
| HIGH | ticket-availability/scripts/ticket_availability.py | 0 | return (platform, id). accepts full url or `platform:id` shorthand. | STRING |
| HIGH | scripts/ticket_availability.py | 0 | return (platform, id). accepts full url or `platform:id` shorthand. | STRING |
| HIGH | …lls/ticket-availability/scripts/ticket_availability.py | 0 | return (platform, id). accepts full url or `platform:id` shorthand. | STRING |
| HIGH | ticket-availability/scripts/ticket_availability.py | 0 | schedule = dates × slots flattened. no seat lookup. | STRING |
| HIGH | scripts/ticket_availability.py | 0 | schedule = dates × slots flattened. no seat lookup. | STRING |
| HIGH | …lls/ticket-availability/scripts/ticket_availability.py | 0 | schedule = dates × slots flattened. no seat lookup. | STRING |
| HIGH | seoul-density/scripts/seoul_density.py | 0 | single-entrypoint cli for the seoul-density skill. all skill operations route through `python3 seoul-density/scripts/seo | STRING |
| HIGH | scripts/seoul_density.py | 0 | single-entrypoint cli for the seoul-density skill. all skill operations route through `python3 seoul-density/scripts/seo | STRING |
| HIGH | …kill-cli/skills/seoul-density/scripts/seoul_density.py | 0 | single-entrypoint cli for the seoul-density skill. all skill operations route through `python3 seoul-density/scripts/seo | STRING |
| HIGH | seoul-density/scripts/seoul_density.py | 0 | strip whitespace and common location suffixes for loose matching. | STRING |
| HIGH | scripts/seoul_density.py | 0 | strip whitespace and common location suffixes for loose matching. | STRING |
| HIGH | …kill-cli/skills/seoul-density/scripts/seoul_density.py | 0 | strip whitespace and common location suffixes for loose matching. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | iros-registry-automation/scripts/iros_pdf_summary.py | 32 | # ── 개인정보 마스킹 ────────────────────────────────────────────── | COMMENT |
| MEDIUM | iros-registry-automation/scripts/iros_pdf_summary.py | 41 | # ── 텍스트 추출 (로컬 전용, 무전송) ────────────────────────────── | COMMENT |
| MEDIUM | iros-registry-automation/scripts/iros_pdf_summary.py | 71 | # ── 파싱 헬퍼 ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | iros-registry-automation/scripts/iros_pdf_summary.py | 171 | # ── 요약 (테스트 대상 순수 함수) ───────────────────────────────── | COMMENT |
| MEDIUM | iros-registry-automation/scripts/iros_pdf_summary.py | 194 | # ── 사람이 읽는 요약 (사실만) ──────────────────────────────────── | COMMENT |
| MEDIUM | ticket-availability/scripts/ticket_availability.py | 51 | # ── URL Parsing ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ticket-availability/scripts/ticket_availability.py | 91 | # ── HTTP Setup ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ticket-availability/scripts/ticket_availability.py | 116 | # ── YES24 Client ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ticket-availability/scripts/ticket_availability.py | 246 | # ── Interpark Client ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ticket-availability/scripts/ticket_availability.py | 327 | # ── CLI ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/ticket_availability.py | 51 | # ── URL Parsing ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/ticket_availability.py | 91 | # ── HTTP Setup ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/ticket_availability.py | 116 | # ── YES24 Client ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/ticket_availability.py | 246 | # ── Interpark Client ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/ticket_availability.py | 327 | # ── CLI ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/iros-registry-automation/scripts/iros_pdf_summary.py | 32 | # ── 개인정보 마스킹 ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/iros-registry-automation/scripts/iros_pdf_summary.py | 41 | # ── 텍스트 추출 (로컬 전용, 무전송) ────────────────────────────── | COMMENT |
| MEDIUM | …s/iros-registry-automation/scripts/iros_pdf_summary.py | 71 | # ── 파싱 헬퍼 ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/iros-registry-automation/scripts/iros_pdf_summary.py | 171 | # ── 요약 (테스트 대상 순수 함수) ───────────────────────────────── | COMMENT |
| MEDIUM | …s/iros-registry-automation/scripts/iros_pdf_summary.py | 194 | # ── 사람이 읽는 요약 (사실만) ──────────────────────────────────── | COMMENT |
| MEDIUM | …lls/ticket-availability/scripts/ticket_availability.py | 51 | # ── URL Parsing ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lls/ticket-availability/scripts/ticket_availability.py | 91 | # ── HTTP Setup ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lls/ticket-availability/scripts/ticket_availability.py | 116 | # ── YES24 Client ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lls/ticket-availability/scripts/ticket_availability.py | 246 | # ── Interpark Client ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lls/ticket-availability/scripts/ticket_availability.py | 327 | # ── CLI ─────────────────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | express-bus-booking/scripts/kobus_express_booking.py | 97 | CODE | |
| LOW | korean-scholarship-search/scripts/scholarship_filter.py | 93 | CODE | |
| LOW | korean-scholarship-search/scripts/scholarship_filter.py | 461 | CODE | |
| LOW | k-skill-cleaner/scripts/k_skill_cleaner.py | 110 | CODE | |
| LOW | k-skill-cleaner/scripts/k_skill_cleaner.py | 211 | CODE | |
| LOW | danawa-price-search/scripts/danawa_search.py | 111 | CODE | |
| LOW | danawa-price-search/scripts/danawa_search.py | 155 | CODE | |
| LOW | bok-ecos-stats/scripts/bok_ecos.py | 230 | CODE | |
| LOW | …erseas-trip-report/scripts/gov_overseas_trip_report.py | 495 | CODE | |
| LOW | …erseas-trip-report/scripts/gov_overseas_trip_report.py | 926 | CODE | |
| LOW | …erseas-trip-report/scripts/gov_overseas_trip_report.py | 1058 | CODE | |
| LOW | …ent-search/scripts/jobkorea_talent_search_condition.py | 22 | CODE | |
| LOW | …ent-search/scripts/jobkorea_talent_search_condition.py | 66 | CODE | |
| LOW | job-posting-match/scripts/job_posting_match.py | 119 | CODE | |
| LOW | intercity-bus-booking/scripts/intercity_bus_search.py | 211 | CODE | |
| LOW | flight-ticket-search/scripts/flight_ticket_search.py | 269 | CODE | |
| LOW | kstartup-search/scripts/run_kstartup.py | 97 | CODE | |
| LOW | kstartup-search/scripts/run_kstartup.py | 147 | CODE | |
| LOW | seoul-weather-risk/scripts/seoul_weather_risk.py | 482 | CODE | |
| LOW | foresttrip-vacancy/tests/test_run_foresttrip_vacancy.py | 284 | CODE | |
| LOW | foresttrip-vacancy/scripts/run_foresttrip_vacancy.py | 211 | CODE | |
| LOW | foresttrip-vacancy/scripts/run_foresttrip_vacancy.py | 413 | CODE | |
| LOW | scripts/test_srt_booking.py | 203 | CODE | |
| LOW | scripts/test_korean_spell_check.py | 289 | CODE | |
| LOW | scripts/store_longevity_mirror.py | 102 | CODE | |
| LOW | …s/express-bus-booking/scripts/kobus_express_booking.py | 97 | CODE | |
| LOW | …orean-scholarship-search/scripts/scholarship_filter.py | 93 | CODE | |
| LOW | …orean-scholarship-search/scripts/scholarship_filter.py | 461 | CODE | |
| LOW | …-cli/skills/k-skill-cleaner/scripts/k_skill_cleaner.py | 110 | CODE | |
| LOW | …-cli/skills/k-skill-cleaner/scripts/k_skill_cleaner.py | 211 | CODE | |
| LOW | …li/skills/danawa-price-search/scripts/danawa_search.py | 111 | CODE | |
| LOW | …li/skills/danawa-price-search/scripts/danawa_search.py | 155 | CODE | |
| LOW | …/k-skill-cli/skills/bok-ecos-stats/scripts/bok_ecos.py | 230 | CODE | |
| LOW | …erseas-trip-report/scripts/gov_overseas_trip_report.py | 495 | CODE | |
| LOW | …erseas-trip-report/scripts/gov_overseas_trip_report.py | 926 | CODE | |
| LOW | …erseas-trip-report/scripts/gov_overseas_trip_report.py | 1058 | CODE | |
| LOW | …ent-search/scripts/jobkorea_talent_search_condition.py | 22 | CODE | |
| LOW | …ent-search/scripts/jobkorea_talent_search_condition.py | 66 | CODE | |
| LOW | …/skills/job-posting-match/scripts/job_posting_match.py | 119 | CODE | |
| LOW | …/intercity-bus-booking/scripts/intercity_bus_search.py | 211 | CODE | |
| LOW | …s/flight-ticket-search/scripts/flight_ticket_search.py | 269 | CODE | |
| LOW | …ill-cli/skills/kstartup-search/scripts/run_kstartup.py | 97 | CODE | |
| LOW | …ill-cli/skills/kstartup-search/scripts/run_kstartup.py | 147 | CODE | |
| LOW | …kills/seoul-weather-risk/scripts/seoul_weather_risk.py | 482 | CODE | |
| LOW | …s/foresttrip-vacancy/scripts/run_foresttrip_vacancy.py | 211 | CODE | |
| LOW | …s/foresttrip-vacancy/scripts/run_foresttrip_vacancy.py | 413 | CODE | |
| LOW | …l-cli/skills/naver-blog-research/scripts/naver_read.py | 88 | CODE | |
| LOW | …s/naver-blog-research/scripts/naver_download_images.py | 47 | CODE | |
| LOW | …cli/skills/naver-blog-research/scripts/naver_search.py | 71 | CODE | |
| LOW | …cli/skills/naver-blog-research/scripts/naver_search.py | 109 | CODE | |
| LOW | …ages/k-skill-cli/skills/popbill/scripts/popbill_cli.py | 202 | CODE | |
| LOW | …kills/daangn-realty-search/scripts/daangn_detail_ld.py | 50 | CODE | |
| LOW | …lls/daangn-realty-search/scripts/daangn_relay_store.py | 33 | CODE | |
| LOW | …lls/daangn-realty-search/scripts/daangn_relay_store.py | 69 | CODE | |
| LOW | …skill-cli/skills/kamis-food-price/scripts/run_kamis.py | 15 | CODE | |
| LOW | …store-longevity-radar/scripts/store_longevity_radar.py | 65 | CODE | |
| LOW | …store-longevity-radar/scripts/store_longevity_radar.py | 81 | CODE | |
| LOW | …store-longevity-radar/scripts/store_longevity_radar.py | 102 | CODE | |
| LOW | naver-blog-research/scripts/naver_read.py | 88 | CODE | |
| LOW | naver-blog-research/scripts/naver_download_images.py | 47 | CODE | |
| 10 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | daangn-jobs-search/scripts/daangn_jobs.py | 23 | except Exception: return str(v) | CODE |
| LOW | daangn-jobs-search/scripts/daangn_jobs.py | 60 | except Exception: | CODE |
| LOW | daangn-jobs-search/scripts/daangn_jobs.py | 89 | except Exception: | CODE |
| LOW | danawa-price-search/scripts/danawa_search.py | 124 | except Exception: | CODE |
| LOW | danawa-price-search/scripts/danawa_search.py | 309 | except Exception as exc: # keep search result usable if a detail call fails | CODE |
| LOW | danawa-price-search/scripts/danawa_search.py | 348 | except Exception as exc: | CODE |
| LOW | korean-patent-search/scripts/patent_search.py | 213 | except Exception as exc: # pragma: no cover - defensive fallback guard | CODE |
| LOW | ticket-availability/scripts/ticket_availability.py | 380 | except Exception as e: | CODE |
| LOW | …e-registration-consulting/scripts/fill_official_hwp.py | 104 | except Exception as exc: # noqa: BLE001 - CLI boundary | CODE |
| LOW | job-posting-match/scripts/job_posting_match.py | 146 | except Exception: | CODE |
| LOW | job-posting-match/scripts/job_posting_match.py | 191 | except Exception: | CODE |
| LOW | job-posting-match/scripts/job_posting_match.py | 366 | except Exception as exc: # noqa: BLE001 - CLI should continue with other source | CODE |
| LOW | job-posting-match/scripts/job_posting_match.py | 371 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | daangn-cars-search/scripts/daangn_cars.py | 20 | except Exception: return str(v) | CODE |
| LOW | …a-business-status/scripts/localdata_business_status.py | 172 | except Exception as err: # 경계 계약: 어떤 오류든 강등 | CODE |
| LOW | flight-ticket-search/scripts/flight_ticket_search.py | 332 | except Exception as e: # keep scans robust | CODE |
| LOW | foresttrip-vacancy/scripts/run_foresttrip_vacancy.py | 198 | except Exception: | CODE |
| LOW | foresttrip-vacancy/scripts/run_foresttrip_vacancy.py | 378 | except Exception as exc: | CODE |
| LOW | scripts/ticket_availability.py | 380 | except Exception as e: | CODE |
| LOW | …l-cli/skills/daangn-jobs-search/scripts/daangn_jobs.py | 23 | except Exception: return str(v) | CODE |
| LOW | …l-cli/skills/daangn-jobs-search/scripts/daangn_jobs.py | 60 | except Exception: | CODE |
| LOW | …l-cli/skills/daangn-jobs-search/scripts/daangn_jobs.py | 89 | except Exception: | CODE |
| LOW | …li/skills/danawa-price-search/scripts/danawa_search.py | 124 | except Exception: | CODE |
| LOW | …li/skills/danawa-price-search/scripts/danawa_search.py | 309 | except Exception as exc: # keep search result usable if a detail call fails | CODE |
| LOW | …li/skills/danawa-price-search/scripts/danawa_search.py | 348 | except Exception as exc: | CODE |
| LOW | …i/skills/korean-patent-search/scripts/patent_search.py | 213 | except Exception as exc: # pragma: no cover - defensive fallback guard | CODE |
| LOW | …lls/ticket-availability/scripts/ticket_availability.py | 380 | except Exception as e: | CODE |
| LOW | …e-registration-consulting/scripts/fill_official_hwp.py | 104 | except Exception as exc: # noqa: BLE001 - CLI boundary | CODE |
| LOW | …/skills/job-posting-match/scripts/job_posting_match.py | 146 | except Exception: | CODE |
| LOW | …/skills/job-posting-match/scripts/job_posting_match.py | 191 | except Exception: | CODE |
| LOW | …/skills/job-posting-match/scripts/job_posting_match.py | 366 | except Exception as exc: # noqa: BLE001 - CLI should continue with other source | CODE |
| LOW | …/skills/job-posting-match/scripts/job_posting_match.py | 371 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …l-cli/skills/daangn-cars-search/scripts/daangn_cars.py | 20 | except Exception: return str(v) | CODE |
| LOW | …a-business-status/scripts/localdata_business_status.py | 172 | except Exception as err: # 경계 계약: 어떤 오류든 강등 | CODE |
| LOW | …s/flight-ticket-search/scripts/flight_ticket_search.py | 332 | except Exception as e: # keep scans robust | CODE |
| LOW | …s/foresttrip-vacancy/scripts/run_foresttrip_vacancy.py | 198 | except Exception: | CODE |
| LOW | …s/foresttrip-vacancy/scripts/run_foresttrip_vacancy.py | 378 | except Exception as exc: | CODE |
| LOW | …i/skills/joseon-sillok-search/scripts/sillok_search.py | 287 | except Exception as error: # noqa: BLE001 | CODE |
| LOW | …i/skills/joseon-sillok-search/scripts/sillok_search.py | 543 | except Exception as error: # noqa: BLE001 | CODE |
| LOW | …s/naver-blog-research/scripts/naver_download_images.py | 135 | except Exception as exc: | CODE |
| LOW | …ages/k-skill-cli/skills/popbill/scripts/popbill_cli.py | 278 | except Exception as exc: | CODE |
| LOW | …lls/nts-tax-delinquency/scripts/nts_tax_delinquency.py | 138 | except Exception as err: # 경계 계약: 어떤 오류든 강등, 크래시 금지 | CODE |
| LOW | …/k-skill-cli/skills/ktx-booking/scripts/ktx_booking.py | 110 | except Exception as exc: | CODE |
| LOW | …cli/skills/myrealtrip-search/scripts/myrealtrip_mcp.py | 157 | except Exception as exc: | CODE |
| MEDIUM | …cli/skills/myrealtrip-search/scripts/myrealtrip_mcp.py | 116 | def load_mcp_client() -> tuple[Any, Any]: | CODE |
| LOW | …li/skills/biz-health-check/scripts/biz_health_check.py | 82 | except Exception as err: | CODE |
| LOW | …li/skills/biz-health-check/scripts/biz_health_check.py | 92 | except Exception as err: # 경계 계약: 한 항목 실패가 전체를 막지 않는다 | CODE |
| LOW | …/daangn-used-goods-search/scripts/daangn_used_goods.py | 20 | except Exception: return str(v) | CODE |
| LOW | joseon-sillok-search/scripts/sillok_search.py | 287 | except Exception as error: # noqa: BLE001 | CODE |
| LOW | joseon-sillok-search/scripts/sillok_search.py | 543 | except Exception as error: # noqa: BLE001 | CODE |
| LOW | naver-blog-research/scripts/naver_download_images.py | 135 | except Exception as exc: | CODE |
| LOW | popbill/scripts/popbill_cli.py | 278 | except Exception as exc: | CODE |
| LOW | nts-tax-delinquency/scripts/nts_tax_delinquency.py | 138 | except Exception as err: # 경계 계약: 어떤 오류든 강등, 크래시 금지 | CODE |
| LOW | ktx-booking/scripts/ktx_booking.py | 110 | except Exception as exc: | CODE |
| LOW | myrealtrip-search/scripts/myrealtrip_mcp.py | 157 | except Exception as exc: | CODE |
| MEDIUM | myrealtrip-search/scripts/myrealtrip_mcp.py | 116 | def load_mcp_client() -> tuple[Any, Any]: | CODE |
| LOW | biz-health-check/scripts/biz_health_check.py | 82 | except Exception as err: | CODE |
| LOW | biz-health-check/scripts/biz_health_check.py | 92 | except Exception as err: # 경계 계약: 한 항목 실패가 전체를 막지 않는다 | CODE |
| LOW | daangn-used-goods-search/scripts/daangn_used_goods.py | 20 | except Exception: return str(v) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | python-packages/README.md | 1 | # Python package release scaffold | COMMENT |
| MEDIUM | …test/snapshots/consumer-price-safety-search.generic.md | 18 | 이 스킬은 #390의 **draft scaffold**다. 참가격과 소비자24는 서로 다른 | CODE |
| MEDIUM | …test/snapshots/consumer-price-safety-search.dolshoi.md | 18 | 이 스킬은 #390의 **draft scaffold**다. 참가격과 소비자24는 서로 다른 | CODE |
| MEDIUM | …cli/skills/consumer-price-safety-search/instruction.md | 5 | 이 스킬은 #390의 **draft scaffold**다. 참가격과 소비자24는 서로 다른 | CODE |
| MEDIUM | consumer-price-safety-search/instruction.md | 5 | 이 스킬은 #390의 **draft scaffold**다. 참가격과 소비자24는 서로 다른 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | korean-jangbu-for/scripts/install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | packages/toss-investment/src/official-client.js | 1 | "use strict"; | COMMENT |
| LOW | packages/gongsijiga-search/src/realtyprice.js | 1 | // realtyprice.js — helpers for querying realtyprice.kr 공시지가 (officially published | COMMENT |
| LOW | packages/k-skill-proxy/test/server.test.js | 6721 | url: "/v1/lh-notice/detail?panId=2015122300019828&ccrCnntSysDsCd=03&splInfTpCd=051" | COMMENT |
| LOW | packages/k-skill-proxy/src/korean-law.js | 1 | // k-skill-proxy wrapper for the official 법제처 (Korea Ministry of Government | COMMENT |
| LOW | packages/k-skill-proxy/src/lh-notice.js | 1 | // LH 청약 (Korea Land & Housing Corporation lease/subscription notice) API wrapper. | COMMENT |
| LOW | …-skill-cli/skills/korean-jangbu-for/scripts/install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …ill-cli/skills/korean-privacy-terms/scripts/install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | korean-privacy-terms/scripts/install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/test_daangn_realty.py | 104 | <script type="application/ld+json">{"@context":"https://schema.org","@graph":null}</script> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | korean-patent-search/scripts/patent_search.py | 315 | CODE | |
| LOW | korean-slang-writing/scripts/slang_search.py | 94 | CODE | |
| LOW | scripts/test_korean_slang_writing.py | 43 | CODE | |
| LOW | …i/skills/korean-patent-search/scripts/patent_search.py | 315 | CODE | |
| LOW | …li/skills/korean-slang-writing/scripts/slang_search.py | 94 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | flight-ticket-search/scripts/flight_ticket_search.py | 332 | except Exception as e: # keep scans robust | CODE |
| MEDIUM | …s/flight-ticket-search/scripts/flight_ticket_search.py | 332 | except Exception as e: # keep scans robust | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …bkorea-talent-search/scripts/jobkorea_talent_search.py | 22 | __all__ = ["parse_candidates"] | CODE |
| LOW | scripts/k_skill_cleaner.py | 30 | __all__ = [ | CODE |
| LOW | …bkorea-talent-search/scripts/jobkorea_talent_search.py | 22 | __all__ = ["parse_candidates"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | kstartup-search/tests/test_run_kstartup.py | 130 | url = run_kstartup.build_url("statistics", query, direct=True, api_key="dummy-key", proxy_base_url=args.proxy_ba | CODE |
| LOW⚡ | kstartup-search/tests/test_run_kstartup.py | 132 | self.assertIn("ServiceKey=dummy-key", url) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/gongsijiga-search/src/realtyprice.js | 512 | // Step 4: fetch gsiList | COMMENT |
| LOW | packages/gongsijiga-search/src/realtyprice.js | 526 | // Step 5: normalize + build response | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/gongsijiga-search/src/realtyprice.js | 512 | // Step 4: fetch gsiList | COMMENT |
| LOW | packages/gongsijiga-search/src/realtyprice.js | 526 | // Step 5: normalize + build response | COMMENT |